$company_array['company_id'] = $company->id; unset($company_array['id']); } $invoice->updateFromAssocArray($company_array); if ($invoice->add() !== FALSE) { $activity = new SI_TaskActivity(); $temp_array = $activity->getActivitiesForCompany($compid); if ($temp_array != NULL) { $ta_ids = ''; foreach ($temp_array as $temptask) { $ta_ids[] = $temptask->id; } $ta_ids = array_unique($ta_ids); } if (count($ta_ids) > 0) { if ($invoice->addTaskActivities($ta_ids, SI_ACTIVITY_AGGREGATION_TASK) === FALSE) { $error_msg .= "Error adding activities to invoice!\n"; debug_message($invoice->getLastError()); } } $ps = new SI_PaymentSchedule(); $ps_array = $ps->getForCompany($compid); if ($ps_array != NULL) { $ps_ids = ''; foreach ($ps_array as $tempps) { $ps_ids[] = $tempps->id; } $ps_ids = array_unique($ps_ids); } if (count($ps_ids) > 0) { if ($invoice->addPaymentSchedules($ps_ids) === FALSE) {
} // Create invoices $invoice = new SI_Invoice(); foreach ($invoices as $number => $data) { if ($number == 0) { continue; } // debug("Going to create invoice $number for company id ".$data['company_id']." with ids ".join(', ', $data['ids'])); $company =& $companies[$data['company_id']]; $invoice_insert_sql = "\nINSERT INTO invoices (id, company_id, address1, address2, city, \nstate, zip, timestamp, terms, trans_id)\nVALUES(" . $number . ", " . $data['company_id'] . ", '" . $company['address1'] . "', '" . $company['address2'] . "', '" . $company['city'] . "', \n'" . $company['state'] . "', '" . $company['zip'] . "', " . $data['timestamp'] . ", 'NET15', 0)\n\t"; $invoice_result = $si_db->query($invoice_insert_sql, TRUE); assert_die($invoice_result, "Could not add invoice!\n" . $si_db->getLastError()); // Add activities $invoice->get($number); // debug("Adding line items to invoice ".$invoice->id); assert_die($invoice->addTaskActivities($data['ids']), "Error adding task activities to invoice: " . $invoice->getLastError()); // Add the company transaction $ct = new SI_CompanyTransaction(); $ct->amount = $invoice->getTotal(); $ct->company_id = $invoice->company_id; $ct->description = "Invoice #" . $invoice->id; $ct->timestamp = $invoice->timestamp; assert_die($ct->add(), "Error adding company transaction: " . $ct->getLastError()); } // Create checks $check = new SI_Check(); foreach ($checks as $number => $data) { if ($number == 0) { continue; } // debug("Going to create check $number for amount ".$data['amount']." with ids ".join(', ', $data['ids']));
} } } }else{ $at_least_one = true; } if(!$at_least_one){ $error_msg .= "You must select at least one item for the invoice!\n"; } if(empty($error_msg)){ $invoice->updateFromAssocArray($_POST); if($invoice->add() !== FALSE){ if(count($ta_ids) > 0){ if($invoice->addTaskActivities($ta_ids, $_POST['activity_aggregation_type']) === FALSE){ $error_msg .= "Error adding activities to invoice!\n"; debug_message($invoice->getLastError()); } } if(count($ps_ids) > 0){ if($invoice->addPaymentSchedules($ps_ids) === FALSE){ $error_msg .= "Error adding payment schedules to invoice!\n"; debug_message($invoice->getLastError()); } } if(count($ex_ids) > 0){ if($invoice->addExpenses($ex_ids, $_POST['expense_aggregation_type']) === FALSE){ $error_msg .= "Error adding expenses to invoice!\n";