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(); }