+ if ($type == ST_SALESQUOTE)
+ $this->trans_type = $type;
+ else
+ $this->trans_type = ST_SALESORDER;
+ $this->dimension_id = 0;
+ $this->dimension2_id = 0;
+ $this->pos = get_sales_point(user_pos());
+ $this->read($type, $trans_no, $no_edit);
+ $this->cart_id = uniqid('');
+ }
+
+ //
+ // Prepare cart to new child document entry, just after initial parent doc read.
+ //
+ function prepare_child()
+ {
+ global $Refs;
+
+ $type = get_child_type($this->trans_type);
+
+ $this->trans_type = $type;
+ $this->reference = $Refs->get_next($this->trans_type);
+ $this->document_date = new_doc_date();
+
+ for($line_no = 0; $line_no < count($this->line_items); $line_no++) {
+ $line = &$this->line_items[$line_no];
+ $line->src_id = $line->id; // save src line ids for update
+ $line->qty_dispatched = $type == ST_CUSTCREDIT ? '0' : $line->quantity - $line->qty_done;
+ $line->qty_old = 0;
+ }
+ unset($line);
+
+ if ($type == ST_CUSTDELIVERY)
+ $this->order_no = key($this->trans_no);
+
+ if ($type == ST_SALESINVOICE) {
+ $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;