function get_links($invoiceID) { $rows = invoiceEntity::get("invoice", $invoiceID); // cheating :) foreach ($rows as $row) { if ($row["timeSheetID"]) { $timeSheet = new timeSheet($row["timeSheetID"]); $timeSheet_links[] = $timeSheet->get_link(); } if ($row["expenseFormID"]) { $expenseForm = new expenseForm($row["expenseFormID"]); $expenseForm_links[] = $expenseForm->get_link(); } if ($row["productSaleID"]) { $productSale = new productSale($row["productSaleID"]); $productSale_links[] = $productSale->get_link(); } } $timeSheet_links and $rtn[] = "Time Sheet: " . implode(", ", (array) $timeSheet_links); $expenseForm_links and $rtn[] = "Expense Form: " . implode(", ", (array) $expenseForm_links); $productSale_links and $rtn[] = "Product Sale: " . implode(", ", (array) $productSale_links); return implode(" / ", (array) $rtn); }
function get_invoice_link() { global $TPL; $rows = invoiceEntity::get("timeSheet", $this->get_id()); foreach ($rows as $row) { $str .= $sp . "<a href=\"" . $TPL["url_alloc_invoice"] . "invoiceID=" . $row["invoiceID"] . "\">" . $row["invoiceNum"] . "</a>"; $sp = " "; } return $str; }
} else { if ($_POST["expenseFormID"] && $_POST["split_expenseForm"]) { invoiceEntity::create($invoiceItem->get_value("invoiceID"), "expenseForm", $_POST["expenseFormID"], 1); invoiceEntity::save_invoice_expenseFormItems($invoiceItem->get_value("invoiceID"), $_POST["expenseFormID"]); } else { if ($_POST["expenseFormID"]) { invoiceEntity::create($invoiceItem->get_value("invoiceID"), "expenseForm", $_POST["expenseFormID"]); invoiceEntity::save_invoice_expenseForm($invoiceItem->get_value("invoiceID"), $_POST["expenseFormID"]); } else { if ($_POST["productSaleID"] && $_POST["split_productSale"]) { invoiceEntity::create($invoiceItem->get_value("invoiceID"), "productSale", $_POST["productSaleID"], 1); invoiceEntity::save_invoice_productSaleItems($invoiceItem->get_value("invoiceID"), $_POST["productSaleID"]); } else { if ($_POST["productSaleID"]) { invoiceEntity::create($invoiceItem->get_value("invoiceID"), "productSale", $_POST["productSaleID"]); invoiceEntity::save_invoice_productSale($invoiceItem->get_value("invoiceID"), $_POST["productSaleID"]); } else { $invoiceItem->save(); } } } } } } $TPL["message_good"][] = "Invoice Item saved."; alloc_redirect($TPL["url_alloc_invoice"] . "invoiceID=" . $invoiceItem->get_value("invoiceID")); } else { if ($_POST["invoiceItem_edit"]) { // Hmph. Nothing needs to go here? } else { if ($_POST["invoiceItem_delete"]) {
function delete() { $timeSheetID = $this->get_value("timeSheetID"); $db = new db_alloc(); $q = prepare("SELECT invoiceItem.*\n FROM invoiceItem\n LEFT JOIN invoice ON invoiceItem.invoiceID = invoice.invoiceID\n WHERE timeSheetID = %d\n AND invoiceStatus != 'finished'", $timeSheetID); $db->query($q); while ($row = $db->row()) { $ii = new invoiceItem(); $ii->set_id($row["invoiceItemID"]); $ii->select(); if ($ii->get_value("timeSheetItemID") == $this->get_id()) { $ii->delete(); } else { if (!$ii->get_value("timeSheetItemID")) { invoiceEntity::save_invoice_timeSheet($row["invoiceID"], $timeSheetID); // will update the existing invoice item } } } return parent::delete(); }
function add_timeSheet($timeSheetID = false) { if ($timeSheetID) { $q = prepare("SELECT * \n FROM invoiceItem \n WHERE invoiceID = %d \n AND timeSheetID = %d", $this->get_id(), $timeSheetID); $db = new db_alloc(); $db->query($q); // Add this time sheet to the invoice if the timeSheet hasn't already // been added to this invoice if (!$db->row()) { invoiceEntity::save_invoice_timeSheet($this->get_id(), $timeSheetID); } } }
function save_to_invoice($invoiceID = false) { if ($this->get_value("clientID")) { $invoiceID and $extra = prepare(" AND invoiceID = %d", $invoiceID); $client = $this->get_foreign_object("client"); $db = new db_alloc(); $q = prepare("SELECT * FROM invoice WHERE clientID = %d AND invoiceStatus = 'edit' " . $extra, $this->get_value("clientID")); $db->query($q); // Create invoice if (!$db->next_record()) { $invoice = new invoice(); $invoice->set_value("clientID", $this->get_value("clientID")); $invoice->set_value("invoiceDateFrom", $this->get_min_date()); $invoice->set_value("invoiceDateTo", $this->get_max_date()); $invoice->set_value("invoiceNum", invoice::get_next_invoiceNum()); $invoice->set_value("invoiceName", $client->get_value("clientName")); $invoice->set_value("invoiceStatus", "edit"); $invoice->save(); $invoiceID = $invoice->get_id(); // Use existing invoice } else { $invoiceID = $db->f("invoiceID"); } // Add invoiceItem and add expense form transactions to invoiceItem if ($_POST["split_invoice"]) { invoiceEntity::save_invoice_expenseFormItems($invoiceID, $this->get_id()); } else { invoiceEntity::save_invoice_expenseForm($invoiceID, $this->get_id()); } } }