X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=sales%2Fincludes%2Fcart_class.inc;h=a363562eeb4f39ab5101b977a8944e62ac9056a9;hb=a84031edf2c09459a446d896191e27907d8cb188;hp=64a237f320aa824db88f3377e653e6615cbc7132;hpb=06feaeabf5f8376201cf3aeb6367a4c97e1e2cbd;p=fa-stable.git diff --git a/sales/includes/cart_class.inc b/sales/includes/cart_class.inc index 64a237f3..a363562e 100644 --- a/sales/includes/cart_class.inc +++ b/sales/includes/cart_class.inc @@ -544,6 +544,41 @@ 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; + } + } /* end of class defintion */ class line_details