/** * Generate Invoice Batch * * Generate an Invoice for each billable account during the period set * in the form. */ function generate_invoices() { $invoice_date = $this->post['date']; $terms = $this->post['terms']; $period_begin = $this->post['periodbegin']; $period_end = $this->post['periodend']; $note = $this->post['note']; // Get all accounts $accountdbo_array = load_array_AccountDBO(); // Generate an invoice for each account foreach ($accountdbo_array as $account) { if ($account->getStatus() != "Active" || $account->getBillingStatus() == "Do Not Bill") { // Skip invalid, pending, and non-billable accounts continue; } // Create a new Invoice $invoice = new InvoiceDBO(); $invoice->setAccountID($account->getID()); $invoice->setDate(DBConnection::format_datetime($invoice_date)); $invoice->setPeriodBegin(DBConnection::format_datetime($period_begin)); $invoice->setPeriodEnd(DBConnection::format_datetime($period_end)); $invoice->setNote($note); $invoice->setTerms($terms); // Generate line items $invoice->generate(); $invoiceItems = $invoice->getItems(); if (empty($invoiceItems)) { // Abandon empty invoices continue; } // Insert invoice into database add_InvoiceDBO($invoice); } // Success $this->setMessage(array("type" => "[INVOICE_BATCH_CREATED]")); $this->gotoPage("billing_invoices"); }