예제 #1
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();
 }