var $tax_group_id;
var $tax_group_name;
var $tax_group_array = null; // saves db queries
-
+ var $price_factor; // ditto for price calculations
//-------------------------------------------------------------------------
//
// $trans_no==0 => open new/direct document
$this->sales_type = "";
$this->trans_type = 30;
$this->read($type, $trans_no, $view );
-
}
//-------------------------------------------------------------------------
$line = &$this->line_items[$line_no];
$line->qty_dispatched = $line->quantity - $line->qty_done;
}
+ $this->document_date = Today();
}
} else { // derivative transaction
read_sales_trans($type, $trans_no, $this);
$this->trans_type = $type;
$this->trans_no = 0;
// set new sales document defaults here
- $this->customer_id = '';
+ if (get_global_customer() != reserved_words::get_all())
+ $this->customer_id = get_global_customer();
+ else
+ $this->customer_id = '';
$this->document_date = Today();
if (!is_date_in_fiscalyear($this->document_date))
$this->document_date = end_fiscalyear();
$this->reference = references::get_next($this->trans_type);
+ if ($type == 10)
+ $this->due_date =
+ get_invoice_duedate($this->customer_id, $this->document_date);
+ else
+ $this->due_date =
+ add_days($this->document_date, 10); // FIX this should be in company prefs
}
}
$this->tax_group_array = get_tax_group_items_as_array($tax_group_id);
}
- function set_sales_type($sales_type, $sales_name, $tax_included=0)
+ function set_sales_type($sales_type, $sales_name, $tax_included=0, $factor=0)
{
- $old_tax_inc = $this->tax_included;
$this->sales_type = $sales_type;
$this->sales_type_name = $sales_name;
$this->tax_included = $tax_included;
+ $this->price_factor = $factor;
}
function set_location($id, $name)
function update_cart_item($line_no, $qty, $price, $disc)
{
-
$this->line_items[$line_no]->quantity = $qty;
$this->line_items[$line_no]->qty_dispatched = $qty;
$this->line_items[$line_no]->price = $price;
$taxes = get_tax_for_items($items, $prices, $shipping_cost,
$this->tax_group_id, $this->tax_included, $this->tax_group_array);
+ // Adjustment for swiss franken, we always have 5 rappen = 1/20 franken
+ if ($this->customer_currency == 'CHF') {
+ $val = $taxes['1']['Value'];
+ $val1 = (floatval((intval(round(($val*20),0)))/20));
+ $taxes['1']['Value'] = $val1;
+ }
return $taxes;
}