X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=sales%2Fincludes%2Fcart_class.inc;h=78f8309aaae42bb4debab6a444ec97d569c7e3f1;hb=1b9351ae81a67726e757eba55895a4f059c7f128;hp=60491f564b3202acbc4ba095236198337462d906;hpb=fa43a9c974d05b77517a0d8e3e510ef4a088632e;p=fa-stable.git diff --git a/sales/includes/cart_class.inc b/sales/includes/cart_class.inc index 60491f56..78f8309a 100644 --- a/sales/includes/cart_class.inc +++ b/sales/includes/cart_class.inc @@ -558,6 +558,40 @@ class cart return $total; } + /* + Checks cart quantities on document_date. + Returns array of stock_ids which stock quantities would go negative on some day. + */ + function check_qoh($date=null, $location=null) + { + $low_stock = array(); + // check only for customer delivery and direct sales invoice + if (!($this->trans_type == ST_CUSTDELIVERY || ($this->trans_type == ST_SALESINVOICE && $this->trans_no==0))) + return $low_stock; + + // collect quantities by stock_id + $qtys = array(); + foreach ($this->line_items as $line_no => $line_item) + { + if (has_stock_holding($line_item->mb_flag)) + { + if (!$this->trans_no) // new delivery + $qtys[$line_item->stock_id]['qty'] = $line_item->qty_dispatched + @$qtys[$line_item->stock_id]['qty']; + else // DN modification: check change in quantity + $qtys[$line_item->stock_id]['qty'] = ($line_item->qty_dispatched-$line_item->qty_old) + @$qtys[$line_item->stock_id]['qty']; + $qtys[$line_item->stock_id]['line'] = $line_no; + } + } + + foreach($qtys as $stock_id => $sum) + { + if (check_negative_stock($stock_id, -$sum['qty'], $location ? $location : $this->Location, $date ? $date : $this->document_date)) + $low_stock[] = $stock_id; + } + + return $low_stock; + } + /* Returns true for documents issued in prepayment cycle. */