function add_invoice_line() { $do_api_inv_line = new InvoiceLine(); $do_api_invoice = new Invoice(); if (!$do_api_invoice->isInvoiceOwner($this->idinvoice, $this->iduser)) { $this->setMessage("711", "Invoice does not belong to you"); return false; } elseif (!preg_match("/^[0-9]+\$/", $this->price, $parts) && !preg_match("/^[0-9]+\\.[0-9]*\$/", $this->price, $parts) && !preg_match("/^\\.[0-9]*\$/", $this->price, $parts)) { $this->setMessage("703", "Invalid Amount. (Correct Format : 100.59 , 100 , 0.78, .78 , 2987 )"); return false; } elseif (!preg_match("/^[0-9]+\$/", $this->qty, $parts) && !preg_match("/^[0-9]+\\.[0]*\$/", $this->qty, $parts)) { $this->setMessage("704", "Invalid Quantity. (Correct Format : 5 , 5.0 )"); return false; } else { $do_api_inv_line->addNew(); $do_api_inv_line->idinvoice = $this->idinvoice; $do_api_inv_line->description = $this->description; $do_api_inv_line->price = $this->price; $do_api_inv_line->qty = $this->qty; $do_api_inv_line->item = $this->item; $do_api_inv_line->total = floatval($this->price) * floatval($this->qty); $do_api_inv_line->add(); $do_api_invoice->setInvoiceCalculations($this->idinvoice); $this->setValues(array("msg" => "Invoice Line Added for the idinvoice" . $this->idinvoice, "stat" => "ok", "code" => "720", "idinvoice" => $inserted_id)); return true; } }
$do_invoice->idcompany = $do_recurrent->idcompany; $do_invoice->idcontact = $do_recurrent->idcontact; $do_invoice->datecreated = $do_recurrent->nextdate; $do_invoice->invoice_note = $do_recurrent->invoice_note; $do_invoice->due_date = date("Y-m-d"); $do_invoice->sub_total = $do_recurrent->sub_total; $do_invoice->net_total = $do_recurrent->net_total; $do_invoice->add(); // Add the Invoice Line $idinvoice = $do_invoice->getPrimaryKeyValue(); echo '<br />New Invoice Created :: ' . $idinvoice . '<br />'; $do_inv_add = new Invoice(); $do_inv_add->getId($do_recurrent->idinvoice); $inv_line = $do_inv_add->getChildinvoiceline(); while ($inv_line->next()) { $do_inv_line->addNew(); $do_inv_line->idinvoice = $idinvoice; $do_inv_line->description = $inv_line->description; $do_inv_line->price = $inv_line->price; $do_inv_line->qty = $inv_line->qty; $do_inv_line->total = $inv_line->total; $do_inv_line->item = $inv_line->item; $do_inv_line->add(); } $do_invoice->setInvoiceCalculations($idinvoice); // Call this method for other calculations //update callback $do_inv_callbak = new InvoiceCallback(); $do_inv_callbak->updateCallBack($do_recurrent->idcontact, $idinvoice); // Process RegistrationInvoiceLog will update only if the invoice is from registration Part of Ofuz.com $do_RegistrationInvoiceLog = new RegistrationInvoiceLog();