Beispiel #1
0
     $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']));
Beispiel #3
0
				}
			}
		}
	}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";