From 351ae7cad025b180192ea090dd92e91ff83604f3 Mon Sep 17 00:00:00 2001 From: Gil Moskowitz Date: Wed, 16 Jul 2014 18:33:28 -0400 Subject: [PATCH] add steps to post an invoice but still no tax records match the sales order --- test/database/bankrec.js | 77 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 2 deletions(-) diff --git a/test/database/bankrec.js b/test/database/bankrec.js index 2d873f746..bb7d7bcd6 100644 --- a/test/database/bankrec.js +++ b/test/database/bankrec.js @@ -46,7 +46,9 @@ var _ = require("underscore"), badTaxIds, cashrcpt, cm, + cobmisc = {}, cohead, coitem, + invchead = {}, pohead, poitem, recvid, voucher, voitem, @@ -567,14 +569,14 @@ var _ = require("underscore"), it('creates a sales order item', function (done) { var sql = mqlToSql("INSERT INTO coitem (coitem_cohead_id," + " coitem_linenumber, coitem_scheddate, coitem_taxtype_id," + - " coitem_status, coitem_promdate," + + " coitem_status, coitem_promdate, coitem_qtyreturned," + " coitem_qtyord, coitem_qtyshipped, coitem_itemsite_id," + " coitem_unitcost, coitem_price, coitem_custprice," + " coitem_qty_uom_id, coitem_price_uom_id," + " coitem_qty_invuomratio, coitem_price_invuomratio" + ") SELECT cohead_id," + " 1, CURRENT_DATE + itemsite_leadtime, cohead_taxtype_id," + - " 'O', CURRENT_DATE + itemsite_leadtime," + + " 'O', CURRENT_DATE + itemsite_leadtime, 0," + " 123, 0, itemsite_id," + " itemcost(itemsite_id), item_listprice, item_listprice," + " item_price_uom_id, item_price_uom_id," + @@ -587,6 +589,7 @@ var _ = require("underscore"), " WHERE cohead_id=" + " AND itemsite_active" + " AND item_price_uom_id=item_inv_uom_id" + +/* simplify!*/ " AND item_type != 'K'" + " LIMIT 1 RETURNING *;", { coheadid: cohead.cohead_id, testTag: testTag }); datasource.query(sql, creds, function (err, res) { @@ -622,6 +625,74 @@ var _ = require("underscore"), }); }); + it('issue the sales order to shipping', function (done) { + var sql = mqlToSql("SELECT issueToShipping(coitem_id, coitem_qtyord)" + + " AS result" + + " FROM coitem WHERE coitem_id=;", + { id: coitem.coitem_id }); + datasource.query(sql, creds, function (err, res) { + assert.equal(res.rowCount, 1); + assert(res.rows[0].result > 0, 'expected issueToShipping to succeed'); + done(); + }); + }); + + it('ships the sales order', function (done) { + var sql = mqlToSql("SELECT shipShipment(shiphead_id) AS result" + + " FROM shiphead" + + " JOIN shipitem ON shiphead_order_type = 'SO'" + + " AND shiphead_id=shipitem_shiphead_id" + + " WHERE shipitem_orderitem_id=;", + { coitem: coitem.coitem_id }); + datasource.query(sql, creds, function (err, res) { + assert.equal(res.rowCount, 1); + // TODO: why does shipShipment return NULL on success? + assert(res.rows[0].result === null || res.rows[0].result > 0, + 'expected shipShipment to succeed'); + done(); + }); + }); + + // this creates cobmisc and cobill records for all uninvoiced coitems + it('selects the shipment for billing', function (done) { + var sql = mqlToSql("SELECT selectUninvoicedShipment(shiphead_id)" + + " AS result" + + " FROM shiphead" + + " JOIN shipitem ON shiphead_order_type = 'SO'" + + " AND shiphead_id=shipitem_shiphead_id" + + " WHERE shipitem_orderitem_id=;", + { coitem: coitem.coitem_id }); + datasource.query(sql, creds, function (err, res) { + assert.equal(res.rowCount, 1); + cobmisc.cobmisc_id = res.rows[0].result; + assert(cobmisc.cobmisc_id > 0, + 'expected selectUninvoicedShipment to succeed'); + done(); + }); + }); + + it('creates an invoice', function (done) { + var sql = mqlToSql("SELECT createInvoice() AS id;", + { cobmisc: cobmisc.cobmisc_id }); + datasource.query(sql, creds, function (err, res) { + assert.equal(res.rowCount, 1); + invchead.invchead_id = res.rows[0].id; + assert(invchead.invchead_id > 0, 'expected createInvoice to succeed'); + done(); + }); + }); + + it('posts the invoice', function (done) { + var sql = mqlToSql("SELECT postInvoice() AS result;", + { id: invchead.invchead_id }); + datasource.query(sql, creds, function (err, res) { + assert.equal(res.rowCount, 1); + var result = res.rows[0].result; + assert(result === null || result > 0, 'expected postInvoice to succeed'); + done(); + }); + }); + it('creates a cash receipt to reconcile', function (done) { var sql = mqlToSql("INSERT INTO cashrcpt (" + " cashrcpt_cust_id, cashrcpt_amount," + @@ -949,6 +1020,7 @@ var _ = require("underscore"), var sql = mqlToSql(taxpayCheckSql, { taxhist: 'aropentax', taxparent: aropen.aropen_id }); datasource.query(sql, creds, function (err, res) { + console.log('aropentax records: ' + res.rowCount); //TODO assert.equal(res.rowCount, 1, 'expect 1 aropen taxpay'); //TODO assert.closeTo(res.rows[0].taxpay_tax, 0, closeEnough); done(); @@ -1146,6 +1218,7 @@ var _ = require("underscore"), var sql = mqlToSql(taxpayCheckSql, { taxhist: 'aropentax', taxparent: aropen.aropen_id }); datasource.query(sql, creds, function (err, res) { + console.log('aropentax records: ' + res.rowCount); //TODO assert.equal(res.rowCount, 1, 'expect 1 aropen taxpay'); //TODO assert.closeTo(res.rows[0].taxpay_tax, 0, closeEnough); done(); -- 2.39.2