Пример #1
0
 public function updateInvoiceAddress($invoice_id = FALSE, $update_shipping = FALSE, $shipping_address = array())
 {
     if (empty($invoice_id)) {
         return;
     }
     $invoice = Invoice::find($invoice_id);
     $company_id = $invoice->company_id;
     if (empty($company_id)) {
         return;
     }
     $company = Company::find($company_id);
     $primary_contact_id = $company->client_id;
     $primary_contact = Client::find($primary_contact_id);
     $address = array('company_id' => $company_id, 'invoice_id' => $invoice_id, 'billing_name' => $primary_contact->firstname . ' ' . $primary_contact->lastname, 'billing_company' => $company->name, 'billing_address' => $company->address, 'billing_city' => $company->city, 'billing_state' => $company->province, 'billing_zip' => $company->zipcode, 'billing_country' => $company->country, 'billing_phone' => $company->phone, 'billing_email' => $primary_contact->email, 'billing_website' => $company->website);
     $shipping = array();
     if ($update_shipping) {
         if (!count($shipping_address)) {
             $shipping = array('shipping_name' => $primary_contact->firstname . ' ' . $primary_contact->lastname, 'shipping_company' => $company->name, 'shipping_address' => $company->address, 'shipping_city' => $company->city, 'shipping_state' => $company->province, 'shipping_zip' => $company->zipcode, 'shipping_country' => $company->country, 'shipping_phone' => $company->phone, 'shipping_email' => $primary_contact->email, 'shipping_website' => $company->website);
         } else {
             foreach ($shipping_address as $key => $val) {
                 $shipping[$key] = $val;
             }
         }
     }
     $address = $address + $shipping;
     $invoice_addresses = InvoiceHasAddress::find('all', array('conditions' => array('invoice_id=?', $invoice_id), 'limit' => 1));
     if (count($invoice_addresses)) {
         foreach ($invoice_addresses as $iaddress) {
             return $iaddress->update_attributes($address);
         }
     } else {
         return $invoice_address = InvoiceHasAddress::create($address);
     }
 }