riainvoice/application/modules/quotes/models/Mdl_quote_item_amounts.php
2021-10-01 23:34:16 +05:30

69 lines
2.3 KiB
PHP

<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
/*
* InvoicePlane
*
* @author InvoicePlane Developers & Contributors
* @copyright Copyright (c) 2012 - 2017 InvoicePlane.com
* @license https://invoiceplane.com/license.txt
* @link https://invoiceplane.com
*/
/**
* Class Mdl_Quote_Item_Amounts
*/
class Mdl_Quote_Item_Amounts extends CI_Model
{
/**
* item_amount_id
* item_id
* item_subtotal (item_quantity * item_price)
* item_tax_total
* item_total ((item_quantity * item_price) + item_tax_total)
*
* @param $item_id
*/
public function calculate($item_id)
{
$this->load->model('quotes/mdl_quote_items');
$item = $this->mdl_quote_items->get_by_id($item_id);
$item_price = $item->item_price;
$item_subtotal = $item->item_quantity * $item_price;
// $item_tax_total = $item_subtotal * ($item->item_tax_rate_percent / 100);
$amount= $item->item_subtotal - $item->item_discount;
$item_tax_total = $amount * (($item->Sgst_item_tax_rate_percent + $item->Cgst_item_tax_rate_percent +$item->Igst_item_tax_rate_percent) / 100);
$item_discount_total = $item->item_discount_amount * $item->item_quantity;
$item_total = $item_subtotal + $item_tax_total - $item_discount_total;
//$item_sgst = $item_subtotal * ($item->item_sgst_percentage/100);
$item_cgst= $amount * ($item->Cgst_item_tax_rate_percent)/100;
$item_sgst= $amount * ($item->Sgst_item_tax_rate_percent)/100;
$item_igst= $amount * ($item->Igst_item_tax_rate_percent)/100;
$db_array = array(
'item_id' => $item_id,
'item_subtotal' => $item_subtotal,
'item_tax_total' => $item_tax_total,
'item_discount' => $item_discount_total,
'item_total' => $item_total,
'item_cgst_amt'=> $item_cgst,
'item_sgst_amt'=> $item_sgst,
'item_igst_amt'=> $item_igst
);
$this->db->where('item_id', $item_id);
if ($this->db->get('ip_quote_item_amounts')->num_rows()) {
$this->db->where('item_id', $item_id);
$this->db->update('ip_quote_item_amounts', $db_array);
} else {
$this->db->insert('ip_quote_item_amounts', $db_array);
}
}
}