X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=sales%2Fincludes%2Fcart_class.inc;h=719f661733c058e8bc11c8dc5a5b400d3011ec7d;hb=0da4935c1fb5b588bfd7ead31f05069c9566eb8d;hp=ce885a3285e12ce72f53a91f4670d322353cc9b2;hpb=bf65d2ab9bcc2d92a65d7a40763040f3ed9d1ddb;p=fa-stable.git diff --git a/sales/includes/cart_class.inc b/sales/includes/cart_class.inc index ce885a32..719f6617 100644 --- a/sales/includes/cart_class.inc +++ b/sales/includes/cart_class.inc @@ -1,5 +1,14 @@ . +***********************************************************************/ /* Definition of the cart class this class can hold all the information for: @@ -14,7 +23,7 @@ include_once($path_to_root . "/taxes/tax_calc.inc"); class cart { - var $trans_type; // invoice, order, delivery note ... + var $trans_type; // invoice, order, quotation, delivery note ... var $trans_no = array();// array (num1=>ver1,..) or 0 for new var $so_type = 0; // for sales order: simple=0 template=1 var $cart_id; // used to detect multi-tab edition conflits @@ -73,7 +82,10 @@ class cart /*Constructor function initialises a new shopping cart */ $this->line_items = array(); $this->sales_type = ""; - $this->trans_type = 30; + if ($type == 32) + $this->trans_type = $type; + else + $this->trans_type = 30; $this->dimension_id = 0; $this->dimension2_id = 0; $this->read($type, $trans_no, $view ); @@ -87,8 +99,8 @@ class cart if (!is_array($trans_no)) $trans_no = array($trans_no); if ($trans_no[0]) { - if ($type == 30) { // sales order - read_sales_order($trans_no[0], $this); + if ($type == 30 || $type == 32) { // sales order || sales quotation + read_sales_order($trans_no[0], $this, $type); if ($view) { // prepare for DN/IV entry for($line_no = 0; $line_no < count($this->line_items); $line_no++) { $line = &$this->line_items[$line_no]; @@ -99,7 +111,7 @@ class cart } else { // derivative transaction read_sales_trans($type, $trans_no, $this); if ($this->order_no) { // free hand credit notes have no order_no - $sodata = get_sales_order_header($this->order_no); + $sodata = get_sales_order_header($this->order_no, 30); $this->cust_ref = $sodata["customer_ref"]; // currently currency is hard linked to debtor account // $this->customer_currency = $sodata["curr_code"]; @@ -111,7 +123,7 @@ class cart $src_details = 0; if ($src_type == 30) { // get src data from sales_orders $this->src_docs = array( $sodata['order_no']=>$sodata['version']); - $srcdetails = get_sales_order_details($this->order_no); + $srcdetails = get_sales_order_details($this->order_no, 30); } else { // get src_data from debtor_trans $this->src_docs = get_customer_trans_version($src_type, get_parent_trans($type,$trans_no[0])); $srcdetails = get_customer_trans_details($src_type,array_keys($this->src_docs)); @@ -142,11 +154,11 @@ class cart $this->customer_id = get_global_customer(); else $this->customer_id = ''; - $this->document_date = Today(); + $this->document_date = new_doc_date(); if (!is_date_in_fiscalyear($this->document_date)) $this->document_date = end_fiscalyear(); $this->reference = references::get_next($this->trans_type); - if ($type != 30) // Added 2.1 Joe Hunt 2008-11-12 + if ($type != 30 && $type != 32) // Added 2.1 Joe Hunt 2008-11-12 { $dim = get_company_pref('use_dimension'); if ($dim > 0) @@ -213,15 +225,11 @@ class cart $this->trans_no = 0; $this->order_no= $this->trans_type==13 ? key($src->trans_no) : $src->order_no; } -// if we want to save old or derivative document first decode html entities -// from text fields. For new documents this is not needed. - if ($this->trans_no || $this->trans_type != 30) { - $this->reference = @html_entity_decode($this->reference); - $this->Comments = @html_entity_decode($this->Comments); - foreach($this->line_items as $lineno => $line) { - $this->line_items[$lineno]->stock_id = @html_entity_decode($line->stock_id); - $this->line_items[$lineno]->description = @html_entity_decode($line->description); - } + $this->reference = @html_entity_decode($this->reference); + $this->Comments = @html_entity_decode($this->Comments); + foreach($this->line_items as $lineno => $line) { + $this->line_items[$lineno]->stock_id = @html_entity_decode($line->stock_id); + $this->line_items[$lineno]->item_description = @html_entity_decode($line->item_description); } switch($this->trans_type) { case 10: @@ -231,6 +239,7 @@ class cart case 13: return write_sales_delivery($this, $policy); case 30: + case 32: if ($this->trans_no==0) // new document return add_sales_order($this); else @@ -292,8 +301,10 @@ class cart return 0; } - function update_cart_item($line_no, $qty, $price, $disc) + function update_cart_item($line_no, $qty, $price, $disc, $description="") { + if ($description != "") + $this->line_items[$line_no]->item_description = $description; $this->line_items[$line_no]->quantity = $qty; $this->line_items[$line_no]->qty_dispatched = $qty; $this->line_items[$line_no]->price = $price;