Example #1
0
if ($_POST["save"] || $_POST["save_and_MoveForward"] || $_POST["save_and_MoveBack"]) {
    $invoice->read_globals();
    // Validation
    if ($invoice->get_value("projectID")) {
        $project = $invoice->get_foreign_object("project");
        $currency = $project->get_value("currencyTypeID");
        $invoice->set_value("clientID", $project->get_value("clientID"));
    }
    if (!$invoice->get_value("clientID")) {
        alloc_error("Please select a Client.");
    }
    $currency or $currency = config::get_config_item("currency");
    $invoice->set_value("currencyTypeID", $currency);
    if (!$invoice->get_value("invoiceNum") || !is_numeric($invoice->get_value("invoiceNum"))) {
        #alloc_error("Please enter a unique Invoice Number.");
        $invoice->set_value("invoiceNum", invoice::get_next_invoiceNum());
    } else {
        $invoiceID and $invoiceID_sql = prepare(" AND invoiceID != %d", $invoiceID);
        $q = prepare("SELECT * FROM invoice WHERE invoiceNum = '%s' " . $invoiceID_sql, $invoice->get_value("invoiceNum"));
        $db->query($q);
        if ($db->row()) {
            alloc_error("Please enter a unique Invoice Number (that number is already taken).");
        }
    }
    if (!$invoice->get_value("invoiceName") && $invoice->get_value("clientID")) {
        $client = new client();
        $client->set_id($invoice->get_value("clientID"));
        $client->select();
        $invoice->set_value("invoiceName", $client->get_value("clientName"));
    }
    if ($_POST["save_and_MoveForward"]) {
Example #2
0
 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());
         }
     }
 }