$this->trans_type = $type;
$this->reference = $Refs->get_next($this->trans_type);
+ if ($type == ST_CUSTCREDIT)
+ $this->src_date = $this->document_date;
+
$this->document_date = new_doc_date();
for($line_no = 0; $line_no < count($this->line_items); $line_no++) {
$this->due_date = get_invoice_duedate($this->payment, $this->document_date);
}
- if ($type == ST_CUSTCREDIT)
- $this->src_date = $this->document_date;
-
$this->src_docs = $this->trans_no;
$this->trans_no = 0;
}
// $policy - 0 or 1: writeoff/return for IV, back order/cancel for DN
function write($policy=0) {
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 (count($this->src_docs) == 0 && ($this->trans_type == ST_SALESINVOICE || $this->trans_type == ST_CUSTDELIVERY)) {
// this is direct document - first add parent
$ref = $this->reference;
$date = $this->document_date;
+ $due_date = $this->due_date;
+ $dimension_id = $this->dimension_id;
+ $dimension2_id = $this->dimension2_id;
$this->trans_type = get_parent_type($this->trans_type);
$this->reference = 'auto';
$this->read($this->trans_type, $trans_no, true);
$this->document_date = $date;
$this->reference = $ref;
+ $this->due_date = $due_date;
+ $this->dimension_id = $dimension_id;
+ $this->dimension2_id = $dimension2_id;
}
$this->reference = @html_entity_decode($this->reference, ENT_QUOTES);
$this->Comments = @html_entity_decode($this->Comments, ENT_QUOTES);
if ($tax_items != null) {
foreach ($tax_items as $item_tax) {
$index = $item_tax['tax_type_id'];
- if (isset($this->tax_group_array[$index])) {
+ if (isset($this->tax_group_array[$index]['rate'])) {
$tax_rate += $item_tax['rate'];
}
}