Пример #1
0
 public function actionAjaxUpdateTaxes($id, $type)
 {
     // Get all invoice discounts
     $invoice_taxes = LbVendorTax::model()->getTaxByVendor($id, $type, LbVendorTax::LB_QUERY_RETURN_TYPE_MODELS_ARRAY);
     // foreach invoice tax
     // get post description and value, then update it
     foreach ($invoice_taxes as $tax) {
         $item_id = $tax->lb_record_primary_key;
         // get POSTed values
         if (isset($_POST['lb_tax_name' . $item_id])) {
             // IMPORTANT: for tax item, description is the tax record id from lb_taxes table
             $tax_description = $_POST['lb_tax_name' . $item_id];
             $tax->lb_tax_name = $tax_description;
         }
         //echo $tax_description;
         if (isset($_POST['lb_vendor_tax_value' . $item_id])) {
             $tax_value_percent = $_POST['lb_vendor_tax_value' . $item_id];
             $tax->lb_vendor_tax_value = $tax_value_percent;
         }
         // save
         //            $tax->lb_invoice_item_quantity = 1; // always 1
         $tax->save();
     }
     // return totals
     if ($type == LbVendorTax::LB_VENDOR_ITEM_TYPE_TAX) {
         $invoiceTotals = LbVendorTotal::model()->getVendorTotal($id, LbVendorTotal::LB_VENDOR_ITEM_TYPE_TOTAL);
     } else {
         $invoiceTotals = LbVendorTotal::model()->getVendorTotal($id, LbVendorTotal::LB_VENDOR_INVOICE_TOTAL);
     }
     LBApplication::renderPlain($this, array('content' => CJSON::encode($invoiceTotals)));
 }
Пример #2
0
 function actionAjaxCreateVendorInvoice($id)
 {
     $model = $this->loadModel($id);
     $quotationItem = LbVendorItem::model()->getVendorItems($id, LbVendorItem::LB_VENDOR_ITEM_TYPE_LINE, LbVendorItem::LB_QUERY_RETURN_TYPE_MODELS_ARRAY);
     $quotationDiscount = LbVendorDiscount::model()->getVendorDiscounts($id, LbVendorDiscount::LB_VENDOR_ITEM_TYPE_DISCOUNT, LbVendorDiscount::LB_QUERY_RETURN_TYPE_MODELS_ARRAY);
     $quotationTax = LbVendorTax::model()->getTaxByVendor($id, LbVendorTax::LB_VENDOR_ITEM_TYPE_TAX, LbVendorTax::LB_QUERY_RETURN_TYPE_MODELS_ARRAY);
     $quotationTotal = LbVendorTotal::model()->getVendorTotal($model->lb_record_primary_key, LbVendorTotal::LB_VENDOR_ITEM_TYPE_TOTAL);
     $invoiceModel = new LbVendorInvoice();
     $invoice_number_int = LbVendorInvoice::model()->getVINextNum();
     $invoiceModel->lb_vd_invoice_no = LbVendorInvoice::model()->formatVINextNumFormatted($invoice_number_int);
     $invoiceModel->lb_vd_invoice_status = LbVendorInvoice::LB_VD_CODE_OPEN;
     // invoice date
     $invoiceModel->lb_vd_invoice_date = date('Y-m-d');
     $invoiceModel->lb_vd_invoice_due_date = date('Y-m-d');
     // invoice group
     //        $invoiceModel->lb_invoice_group = LbInvoice::LB_INVOICE_GROUP_INVOICE;
     // invoice base64_decode
     $invoiceModel->lb_vd_invoice_encode = LbVendorInvoice::model()->setBase64_decodePO();
     // invoice note
     $invoiceModel->lb_vd_invoice_notes = $model->lb_vendor_notes;
     $invoiceModel->lb_vd_invoice_company_id = $model->lb_vendor_company_id;
     $invoiceModel->lb_vd_invoice_company_address_id = $model->lb_vendor_company_address_id;
     $invoiceModel->lb_vd_invoice_supplier_id = $model->lb_vendor_supplier_id;
     $invoiceModel->lb_vd_invoice_supplier_address_id = $model->lb_vendor_supplier_address;
     $invoiceModel->lb_vd_invoice_supplier_attention_id = $model->lb_vendor_supplier_attention_id;
     $invoiceModel->lb_vendor_id = $model->lb_record_primary_key;
     $invoiceModel->lb_vd_invoice_subject = $model->lb_vendor_subject;
     $invoiceModel->lb_vd_invoice_category = $model->lb_vendor_category;
     // invoice internal note
     //        $invoiceModel->lb_invoice_internal_note = $model->lb_quotation_internal_note;
     if ($invoiceModel->insert()) {
         // copy line item
         foreach ($quotationItem as $q_item) {
             $vendorItem = new LbVendorItem();
             $vendorItem->lb_vendor_id = $id;
             $vendorItem->lb_vendor_invoice_id = $invoiceModel->lb_record_primary_key;
             $vendorItem->lb_vendor_type = LbVendorItem::LB_VENDOR_INVOICE_ITEM_TYPE_LINE;
             $vendorItem->lb_vendor_item_quantity = $q_item->lb_vendor_item_quantity;
             $vendorItem->lb_vendor_item_price = $q_item->lb_vendor_item_price;
             $vendorItem->lb_vendor_item_amount = $q_item->lb_vendor_item_amount;
             $vendorItem->lb_vendor_item_description = $q_item->lb_vendor_item_description;
             $vendorItem->insert();
         }
         // copy tax item
         foreach ($quotationTax as $q_tax) {
             $taxInvoiceVendor = new LbVendorTax();
             $taxInvoiceVendor->lb_vendor_invoice_id = $invoiceModel->lb_record_primary_key;
             $taxInvoiceVendor->lb_vendor_id = $id;
             $taxInvoiceVendor->lb_vendor_type = LbVendorTax::LB_VENDOR_INVOICE_ITEM_TYPE_TAX;
             $taxInvoiceVendor->lb_vendor_tax_id = $q_tax->lb_vendor_tax_id;
             $taxInvoiceVendor->lb_tax_name = $q_tax->lb_tax_name;
             $taxInvoiceVendor->lb_vendor_tax_value = $q_tax->lb_vendor_tax_value;
             $taxInvoiceVendor->lb_vendor_tax_total = $q_tax->lb_vendor_tax_total;
             $taxInvoiceVendor->insert();
         }
         //
         //            // copy discount item
         foreach ($quotationDiscount as $q_discount) {
             $discountVendorInvoice = new LbVendorDiscount();
             $discountVendorInvoice->lb_vendor_id = $id;
             $discountVendorInvoice->lb_vendor_invoice_id = $invoiceModel->lb_record_primary_key;
             $discountVendorInvoice->lb_vendor_description = $q_discount->lb_vendor_description;
             $discountVendorInvoice->lb_vendor_value = $q_discount->lb_vendor_value;
             $discountVendorInvoice->lb_vendor_type = LbVendorDiscount::LB_VENDOR_INVOICE_ITEM_TYPE_DISCOUNT;
             $discountVendorInvoice->insert();
         }
         //
         //            // Copy Total
         $vendorItem = new LbVendorTotal();
         $vendorItem->lb_vendor_invoice_id = $invoiceModel->lb_record_primary_key;
         $vendorItem->lb_vendor_id = $id;
         $vendorItem->lb_vendor_type = LbVendorTotal::LB_VENDOR_INVOICE_TOTAL;
         $vendorItem->lb_vendor_subtotal = $quotationTotal->lb_vendor_subtotal;
         $vendorItem->lb_vendor_total_last_discount = $quotationTotal->lb_vendor_total_last_discount;
         $vendorItem->lb_vendor_last_tax = $quotationTotal->lb_vendor_last_tax;
         $vendorItem->lb_vendor_last_paid = $quotationTotal->lb_vendor_last_paid;
         $vendorItem->lb_vendor_last_outstanding = $quotationTotal->lb_vendor_last_outstanding;
         $vendorItem->insert();
         // redirect Invoice
         //            $url_invoice = $model->customer ? LbInvoice::model()->getViewURL($model->customer->lb_customer_name,null,$invoiceModel->lb_record_primary_key) : LbInvoice::model()->getViewURL("No customer",null,$invoiceModel->lb_record_primary_key);
         //            $this->redirect($url_invoice);
     }
 }
Пример #3
0
    $tItem = '<table border="1" style="width:100%;" cellpadding="0" cellspacing="0">';
    $tItem .= '<tr>' . '<td style="width:200px;height:30px">Item</td>' . '<td style="width:100px;">Quantity</td>' . '<td style="width:200px;">Price</td>' . '<td style="width:200px;">Total</td>' . '</tr>';
    foreach ($modelItem as $dataItem) {
        $tItem .= '<tr>' . '<td style="height:15px">' . $dataItem['lb_vendor_item_description'] . '</td>' . '<td>' . $dataItem['lb_vendor_item_quantity'] . '</td>' . '<td>' . $dataItem['lb_vendor_item_price'] . '</td>' . '<td>' . $dataItem['lb_vendor_item_amount'] . '</td>' . '</tr>';
    }
    $tItem .= '</table>';
    echo $tItem . '<br />';
}
//Total
$modelTotal = LbVendorTotal::model()->getVendorTotal($model->lb_record_primary_key, LbVendorTotal::LB_VENDOR_ITEM_TYPE_TOTAL);
//Discount
$discountItem = '<table border="0" style="width:100%;" cellpadding="0" cellspacing="0">';
$discountItem .= '<tr>' . '<td style="width:100px;"><b>Sub Total : </b></td>' . '<td style="border-bottom:1px solid black">$' . $modelTotal->lb_vendor_subtotal . '</td>' . '</tr>';
$discountAll = LbVendorDiscount::model()->findAll('lb_vendor_id = ' . $model->lb_record_primary_key);
if (count($discountAll) > 0) {
    $discountItem .= '<tr>' . '<td><b>Discount  </b></td>' . '</tr>';
    foreach ($discountAll as $valueDiscount) {
        $discountItem .= '<tr>' . '<td>' . $valueDiscount['lb_vendor_description'] . '</td>' . '<td>$' . $valueDiscount['lb_vendor_value'] . '</td>' . '</tr>';
    }
}
//tax
$TaxAll = LbVendorTax::model()->findAll('lb_vendor_id = ' . $model->lb_record_primary_key);
if (count($TaxAll) > 0) {
    $discountItem .= '<tr>' . '<td  ><b>Tax  </b></td>' . '<td style="border-top:1px solid black" ></td>' . '</tr>';
    foreach ($TaxAll as $valueTax) {
        $discountItem .= '<tr>' . '<td>' . $valueTax['lb_tax_name'] . '</td>' . '<td>$' . $valueTax['lb_vendor_tax_total'] . '</td>' . '</tr>';
    }
}
$discountItem .= '<tr>' . '<td style=""><b>Total : </b></td>' . '<td style="border-top:1px solid black">$' . $modelTotal->lb_vendor_last_tax . '</td>' . '</tr>';
$discountItem .= '</table>';
echo $discountItem;
Пример #4
0
 public function ajaxUpdateTaxes($lb_tax_name, $lb_tax_value, $key, $tax_id, $id, $type = false)
 {
     $tax = $this->findAllByPk($key);
     if ($type) {
         $pk = LbVendorTotal::model()->getIdVendorTotalByItem($id, LbVendorTotal::LB_VENDOR_ITEM_TYPE_TOTAL);
         $tax[0]->lb_vendor_id = $id;
         $tax[0]->lb_vendor_type = LbVendorTax::LB_VENDOR_ITEM_TYPE_TAX;
         $subtotal = LbVendorTotal::model()->find("lb_vendor_id = " . $id);
     } else {
         $pk = LbVendorTotal::model()->getIdVendorTotalByItem($id, LbVendorTotal::LB_VENDOR_INVOICE_TOTAL);
         $tax[0]->lb_vendor_invoice_id = $id;
         $tax[0]->lb_vendor_type = LbVendorTax::LB_VENDOR_INVOICE_ITEM_TYPE_TAX;
         $subtotal = LbVendorTotal::model()->find("lb_vendor_invoice_id = " . $id);
     }
     $totalManage = LbVendorTotal::model()->findByPk($pk);
     $tax[0]->lb_vendor_tax_value = $lb_tax_value;
     $tax[0]->lb_tax_name = $lb_tax_name;
     $tax[0]->lb_vendor_tax_id = $tax_id;
     $total = $subtotal['lb_vendor_total_last_discount'];
     $taxtotal = floatval($total * $lb_tax_value / 100);
     $tax[0]->lb_vendor_tax_total = $taxtotal;
     $tax[0]->save();
     //update last tax
     //update last tax
     if (isset($_GET['type'])) {
         $last_tax = LbVendorTotal::model()->getVendorTotal($id, LbVendorTotal::LB_VENDOR_ITEM_TYPE_TOTAL)->lb_vendor_total_last_discount + LbVendorTax::model()->calculateTax($id, LbVendorTax::LB_VENDOR_ITEM_TYPE_TAX);
     } else {
         $last_tax = LbVendorTotal::model()->getVendorTotal($id, LbVendorTotal::LB_VENDOR_INVOICE_TOTAL)->lb_vendor_total_last_discount + LbVendorTax::model()->calculateTax($id, LbVendorTax::LB_VENDOR_INVOICE_ITEM_TYPE_TAX);
     }
     $totalManage->lb_vendor_last_tax = $last_tax;
     $totalManage->lb_vendor_last_outstanding = $last_tax - $totalManage->lb_vendor_last_paid;
     $totalManage->update();
 }
Пример #5
0
 public function totalAfterDiscount($id, $type, $return_type)
 {
     $discount = LbVendorDiscount::model()->calculateDiscount($id, $type);
     $pk = $this->getIdVendorTotalByItem($id, $return_type);
     $total = LbVendorTotal::model()->findByPk($pk);
     $subtotal = $total->lb_vendor_subtotal;
     //discount
     $discount_end = $subtotal - $discount;
     //update last discount
     $total->lb_vendor_total_last_discount = $discount_end;
     //total tax
     $total_tax = $discount_end;
     //update tax
     if ($type == LbVendorDiscount::LB_VENDOR_INVOICE_ITEM_TYPE_DISCOUNT) {
         $taxAll = LbVendorTax::model()->findAll("lb_vendor_invoice_id =  " . $id);
     } else {
         $taxAll = LbVendorTax::model()->findAll("lb_vendor_id =  " . $id);
     }
     foreach ($taxAll as $data) {
         $tax = new LbVendorTax();
         $tax_value = $total_tax * $data['lb_vendor_tax_value'] / 100;
         $tax->updateTax($data['lb_record_primary_key'], $tax_value);
     }
     //update last tax
     if ($type == LbVendorDiscount::LB_VENDOR_INVOICE_ITEM_TYPE_DISCOUNT) {
         $last_tax = $discount_end + LbVendorTax::model()->calculateTax($id, LbVendorTax::LB_VENDOR_INVOICE_ITEM_TYPE_TAX);
     } else {
         $last_tax = $discount_end + LbVendorTax::model()->calculateTax($id, LbVendorTax::LB_VENDOR_ITEM_TYPE_TAX);
     }
     $total->lb_vendor_last_tax = $last_tax;
     $total->lb_vendor_last_outstanding = $last_tax - $total->lb_vendor_last_paid;
     $total->update();
 }