X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=sales%2Fincludes%2Fcart_class.inc;h=adfe941a22b78c7f83a89051862175ab1482b7b9;hb=3aada292902adb788119da40db39f437fcfc7654;hp=b2d7a51f6a433749eab927143afa7a75a6592284;hpb=95ff74b5722826544743a01daf527aa3c9efe11a;p=fa-stable.git diff --git a/sales/includes/cart_class.inc b/sales/includes/cart_class.inc index b2d7a51f..adfe941a 100644 --- a/sales/includes/cart_class.inc +++ b/sales/includes/cart_class.inc @@ -21,7 +21,7 @@ iv) a delivery note include_once($path_to_root . "/inventory/includes/inventory_db.inc"); include_once($path_to_root . "/taxes/tax_calc.inc"); -class cart +class Cart { var $trans_type; // invoice, order, quotation, delivery note ... var $trans_no = array();// array (num1=>ver1,..) or 0 for new @@ -45,7 +45,7 @@ class cart var $Branch; var $email; - var $deliver_to; + var $delivery_to; var $delivery_address; var $phone; @@ -71,17 +71,18 @@ class cart var $dimension_id; var $dimension2_id; var $payment; - var $payment_terms; // cached payment terms + var $payment_terms = array('cash_sale' => false, 'days_before_due' => 0); // cached payment terms var $credit; // prepayment mode: - var $prepaid; // true for documents issued in prepayment mode - var $prep_amount; // prepayment required for SO, invoiced amount for prepaiament invoice + var $prepaid=false; // true for documents issued in prepayment mode + var $prep_amount=0; // prepayment required for SO, invoiced amount for prepaiament invoice var $sum_paid; // sum of all allocated prepayments both to order and related invoices var $alloc; // sum of payments allocated to this document var $prepayments = array(); // allocation records for this document var $ex_rate; var $fixed_asset = false; + var $bo_policy = null; //------------------------------------------------------------------------- // @@ -90,7 +91,7 @@ class cart // $trans_no!=0 && $prepare_child==true => prepare for child doc entry // $prepare_child is set to ST_SALESINVOICE for prepayment invoices // - function Cart($type, $trans_no=0, $prepare_child=false) { + function __construct($type, $trans_no=0, $prepare_child=false) { /*Constructor function initialises a new shopping cart */ $this->line_items = array(); $this->sales_type = ""; @@ -218,7 +219,8 @@ class cart read_sales_order($trans_no[0], $this, $type); } else { // other type of sales transaction read_sales_trans($type, $trans_no, $this); - $this->prepayments = get_payments_for($trans_no[0], $type); + $this->prepayments = get_payments_for($trans_no[0], $type, $this->customer_id); + $this->update_payments(); if ($this->order_no) { // free hand credit notes have no order_no $sodata = get_sales_order_header($this->order_no, ST_SALESORDER); $this->cust_ref = $sodata["customer_ref"]; @@ -284,12 +286,19 @@ class cart // Makes parent documents for direct delivery/invoice by recurent call. // $policy - 0 or 1: writeoff/return for IV, back order/cancel for DN function write($policy=0) { - + + global $SysPrefs, $Refs; + begin_transaction(); // prevents partial database changes in case of direct delivery/invoice if ($this->reference != 'auto' && $this->trans_no == 0 && !is_new_reference($this->reference, $this->trans_type)) { - commit_transaction(); - return -1; + if (!empty($SysPrefs->prefs['ref_no_auto_increase'])) + $this->reference = $Refs->get_next($this->trans_type, null, array('date' => Today())); + else + { + commit_transaction(); + return -1; + } } if (count($this->src_docs) == 0 && ($this->trans_type == ST_SALESINVOICE || $this->trans_type == ST_CUSTDELIVERY) && !$this->is_prepaid()) { // this is direct document - first add parent @@ -380,7 +389,7 @@ class cart function set_delivery($shipper, $destination, $address, $freight_cost=null) { $this->ship_via = $shipper; - $this->deliver_to = $destination; + $this->delivery_to = $destination; $this->delivery_address = $address; if (isset($freight_cost)) $this->freight_cost = $freight_cost; @@ -557,7 +566,6 @@ class cart $total = $this->get_items_total() + $this->freight_cost; $dec = user_price_dec(); if (!$this->tax_included ) { - $total += $this->get_shipping_tax(); $taxes = $this->get_taxes(); foreach($taxes as $tax) $total += round($tax['Value'], $dec); @@ -692,7 +700,7 @@ class line_details var $qty_old = 0; - function line_details ($stock_id, $qty, $prc, $disc_percent, + function __construct($stock_id, $qty, $prc, $disc_percent, $qty_done, $standard_cost, $description, $id=0, $src_no=0, $src_id=0) { /* Constructor function to add a new LineDetail object with passed params */