Exemplo n.º 1
0
 /**
  * delete invoice
  * line items, discounts, taxes, totals, trails, ...
  * @return bool|void
  */
 public function delete()
 {
     // delete invoice
     $id = $this->lb_record_primary_key;
     $result = parent::delete();
     if ($result) {
         // delete line items
         $line_items = LbInvoiceItem::model()->getInvoiceItems($id, self::LB_QUERY_RETURN_TYPE_MODELS_ARRAY);
         foreach ($line_items as $l_item) {
             $l_item->delete();
         }
         // delete discounts
         $discounts = LbInvoiceItem::model()->getInvoiceDiscounts($id, self::LB_QUERY_RETURN_TYPE_MODELS_ARRAY);
         foreach ($discounts as $disc) {
             $disc->delete();
         }
         // delete taxes
         $taxes = LbInvoiceItem::model()->getInvoiceTaxes($id, self::LB_QUERY_RETURN_TYPE_MODELS_ARRAY);
         foreach ($taxes as $tx) {
             $tx->delete();
         }
         // delete totals
         $total = LbInvoiceTotal::model()->getInvoiceTotal($id);
         if ($total) {
             $total->delete();
         }
         // delete invoice in contract
         $invoiceByContract = LbContractInvoice::model()->find('lb_invoice_id=' . intval($id));
         if (count($invoiceByContract) > 0) {
             $invoiceByContract->delete();
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Calculate invoice total after taxes (subtotal - discount - taxes)
  * save, and return value
  *
  * @return int total after taxes
  */
 public function calculateInvoiceTotalAfterTaxes()
 {
     // get all taxes
     $invoice_taxes = LbInvoiceItem::model()->getInvoiceTaxes($this->lb_invoice_id, self::LB_QUERY_RETURN_TYPE_MODELS_ARRAY);
     // calculate tax total, and invoice total after tax
     $tax_total = 0;
     foreach ($invoice_taxes as $tax) {
         $tax_total += $tax->lb_invoice_item_total;
     }
     $this->lb_invoice_total_after_taxes = $this->lb_invoice_total_after_discounts + $tax_total;
     $this->save();
     return $this->lb_invoice_total_after_taxes;
 }
Exemplo n.º 3
0
                    </tfoot>
  
                    <?php 
} else {
    $customer_arr = LbCustomer::model()->getCompanies($sort = 'lb_customer_name ASC', LbCustomer::LB_QUERY_RETURN_TYPE_MODELS_ARRAY);
    $invoiceValue = 0;
    $gst = 0;
    foreach ($customer_arr as $customer) {
        ?>
                            <tbody>
                            <?php 
        $a = LbInvoice::model()->getInvoiceMonth($customer['lb_record_primary_key'], $date_from, $date_to);
        foreach ($a as $data) {
            $customer_id = false;
            $invoice_information = LbInvoiceTotal::model()->getInvoiceById($data->lb_record_primary_key);
            $invoiceTax = LbInvoiceItem::model()->getInvoiceTaxById($data->lb_record_primary_key, "TAX");
            $invoiceValue = $invoiceValue + $invoice_information->lb_invoice_total_after_discounts;
            echo '<tr>';
            echo '<td>' . $data->lb_invoice_no . '</td>';
            echo '<td>' . $data->lb_invoice_date . '</td>';
            echo '<td>';
            if ($data->lb_invoice_customer_id) {
                $customer_id = $data->lb_invoice_customer_id;
                echo LbCustomer::model()->customerInformation($customer_id)->attributes['lb_customer_name'];
            }
            echo '</td>';
            echo '<td>$' . $invoice_information->lb_invoice_total_after_discounts . '</td>';
            echo '<td>';
            $totalTax = 0;
            if ($invoiceTax) {
                $totaltax = $invoice_information->lb_invoice_total_after_taxes - $invoice_information->lb_invoice_total_after_discounts;
Exemplo n.º 4
0
 public function getInvoiceTaxById($invoice_id = false, $type = false)
 {
     $criteria = new CDbCriteria();
     if ($invoice_id) {
         $criteria->compare('lb_invoice_id', $invoice_id);
     }
     if ($type) {
         $criteria->compare('lb_invoice_item_type', $type);
     }
     return LbInvoiceItem::model()->find($criteria);
 }
Exemplo n.º 5
0
                    </tr>
                    ' . $subject . '
                    <tr><td>&nbsp;</td></tr>
                    <tr>
                        <tr>
                            <td colspan="2">
                                <table border="1" style="width:100%;border-collapse:collapse;" cellpadding="0" cellspacing="0">
                                    <tr >
                                        <th width="32" height="25" align="center">#</th>
                                        <th width="390">Item</th>
                                        <th width="90" align="center">Quantity</th>
                                        <th width="90" align="center">Unit Price</th>
                                        <th width="90" align="center">Total</th>
                                    </tr>';
//$item_invoice_arr = LbInvoiceItem :: model()->findAll('lb_invoice_id='.$model->lb_record_primary_key,array());
$item_invoice_arr = LbInvoiceItem::model()->getInvoiceItems($model->lb_record_primary_key, 'ModelArray');
//print_r($item_invoice_arr);
$i = 0;
foreach ($item_invoice_arr as $item_invoice_row) {
    $i++;
    $tbl .= '<tr>
                                        <td width="32" height="35" align="center">' . $i . '</td>
                                        <td width="390">' . $item_invoice_row['lb_invoice_item_description'] . '</td>
                                        <td width="90" align="right">' . $strnum->adddotstring($item_invoice_row['lb_invoice_item_quantity'], $thousand, $decimal) . '</td>
                                        <td width="90" align="right">' . $strnum->adddotstring($item_invoice_row['lb_invoice_item_value'], $thousand, $decimal) . '</td>
                                        <td width="90" align="right">' . $strnum->adddotstring($item_invoice_row['lb_invoice_item_total'], $thousand, $decimal) . '</td>
                                    </tr>';
}
$tbl .= '</table>
                            </td>
                        </tr>
Exemplo n.º 6
0
 public function IsTaxExistInvoiceORQuotation($tax_id)
 {
     $tax_invoice = LbInvoiceItem::model()->find('lb_invoice_item_description=' . $tax_id);
     $tax_quotation = LbQuotationTax::model()->find('lb_quotation_tax_id=' . $tax_id);
     if (count($tax_quotation) > 0 || count($tax_invoice) > 0) {
         return true;
     }
     return false;
 }
Exemplo n.º 7
0
 public function actionAjaxCopyInvoice($id)
 {
     //Add thong tin quotation
     $inv_new = new LbInvoice();
     $invoice = LbInvoice::model()->findByPk($id);
     $inv_new->lb_invoice_no = LbInvoice::model()->formatInvoiceNextNumFormatted(0);
     $inv_new->lb_invoice_date = date('Y-m-d');
     $inv_new->lb_invoice_due_date = date('Y-m-d');
     $inv_new->lb_invoice_status_code = LbInvoice::LB_INVOICE_STATUS_CODE_DRAFT;
     $inv_new->lb_invoice_company_id = $invoice->lb_invoice_company_id;
     $inv_new->lb_invoice_company_address_id = $invoice->lb_invoice_company_address_id;
     $inv_new->lb_invoice_customer_id = $invoice->lb_invoice_customer_id;
     $inv_new->lb_invoice_customer_address_id = $invoice->lb_invoice_customer_address_id;
     $inv_new->lb_invoice_attention_contact_id = $invoice->lb_invoice_attention_contact_id;
     $inv_new->lb_invoice_internal_note = $invoice->lb_invoice_internal_note;
     $inv_new->lb_invoice_subject = $invoice->lb_invoice_subject;
     $inv_new->lb_invoice_note = $invoice->lb_invoice_note;
     $inv_new->lb_invoice_encode = LbInvoice::model()->setBase64_decodeInvoice();
     if ($inv_new->save()) {
         // Add thong tin tax
         $invoice_tax_arr = LbInvoiceItem::model()->getInvoiceTaxes($invoice->lb_record_primary_key);
         foreach ($invoice_tax_arr->data as $tax_item) {
             $inv_tax_new = new LbInvoiceItem();
             $inv_tax_new->lb_invoice_id = $inv_new->lb_record_primary_key;
             $inv_tax_new->lb_invoice_item_description = $tax_item->lb_invoice_item_description;
             $inv_tax_new->lb_invoice_item_quantity = $tax_item->lb_invoice_item_quantity;
             $inv_tax_new->lb_invoice_item_value = $tax_item->lb_invoice_item_value;
             $inv_tax_new->lb_invoice_item_total = $tax_item->lb_invoice_item_total;
             $inv_tax_new->lb_invoice_item_type = LbInvoiceItem::LB_INVOICE_ITEM_TYPE_TAX;
             $inv_tax_new->save();
         }
         //END
         //Add thong tin discount
         $invoice_discount_arr = LbInvoiceItem::model()->getInvoiceDiscounts($invoice->lb_record_primary_key);
         foreach ($invoice_discount_arr->data as $discount_item) {
             $inv_discount_new = new LbInvoiceItem();
             $inv_discount_new->lb_invoice_id = $inv_new->lb_record_primary_key;
             $inv_discount_new->lb_invoice_item_description = 'Discount';
             $inv_discount_new->lb_invoice_item_quantity = $discount_item->lb_invoice_item_quantity;
             $inv_discount_new->lb_invoice_item_value = $discount_item->lb_invoice_item_value;
             $inv_discount_new->lb_invoice_item_total = $discount_item->lb_invoice_item_total;
             $inv_discount_new->lb_invoice_item_type = LbInvoiceItem::LB_INVOICE_ITEM_TYPE_DISCOUNT;
             $inv_discount_new->save();
         }
         //END
         //Add Thong tin total
         $invoice_total = LbInvoiceTotal::model()->getInvoiceTotal($invoice->lb_record_primary_key);
         $inv_total_new = new LbInvoiceTotal();
         $inv_total_new->lb_invoice_id = $inv_new->lb_record_primary_key;
         $inv_total_new->lb_invoice_revision_id = $invoice_total->lb_invoice_revision_id;
         $inv_total_new->lb_invoice_subtotal = $invoice_total->lb_invoice_subtotal;
         $inv_total_new->lb_invoice_total_after_discounts = $invoice_total->lb_invoice_total_after_discounts;
         $inv_total_new->lb_invoice_total_after_taxes = $invoice_total->lb_invoice_total_after_taxes;
         $inv_total_new->lb_invoice_total_outstanding = $invoice_total->lb_invoice_total_outstanding;
         $inv_total_new->lb_invoice_total_paid = $invoice_total->lb_invoice_total_paid;
         $inv_total_new->save();
         //Add thong tin item
         $invoice_item_arr = LbInvoiceItem::model()->getInvoiceItems($invoice->lb_record_primary_key);
         foreach ($invoice_item_arr->data as $item) {
             $inv_item_new = new LbInvoiceItem();
             $inv_item_new->lb_invoice_id = $inv_new->lb_record_primary_key;
             $inv_item_new->lb_invoice_item_description = $item->lb_invoice_item_description;
             $inv_item_new->lb_invoice_item_quantity = $item->lb_invoice_item_quantity;
             $inv_item_new->lb_invoice_item_value = $item->lb_invoice_item_value;
             $inv_item_new->lb_invoice_item_total = $item->lb_invoice_item_total;
             $inv_item_new->lb_invoice_item_type = LbInvoiceItem::LB_INVOICE_ITEM_TYPE_LINE;
             $inv_item_new->save();
         }
         //END
         $customer_name = $inv_new->customer ? $inv_new->customer->lb_customer_name : "No customer";
         $url = LbInvoice::model()->getViewURLByIdNormalized($inv_new->lb_record_primary_key, $customer_name);
         echo '{"status":"success","url":"' . $url . '"}';
     }
 }