function updateInvoiceItem($id,$quantity,$product_id,$tax_id,$description,$attr1="",$attr2="",$attr3="", $unit_price="") { $SI_PRODUCTS = new SimpleInvoices_Db_Table_Products(); $SI_TAX = new SimpleInvoices_Db_Table_Tax(); $attr1 = explode("-",$attr1); $attr1 = $attr1[2]; //echo "Attr1: ".$attr1." "; $attr2 = explode("-",$attr2); $attr2 = $attr2[2]; //echo "Attr2 : ".$attr2." "; $attr3 = explode("-",$attr3); $attr3 = $attr3[2]; //echo "Attr3 : ".$attr3; //echo "<br /><br />"; $product = $SI_PRODUCTS->getProductById($product_id); ($unit_price == "") ? $product_unit_price = $product['unit_price'] : $product_unit_price = $unit_price ; $tax = $SI_TAX->getTaxRateById($tax_id); $total_invoice_item_tax = $product_unit_price * $tax['tax_percentage'] / 100; //:100? $tax_amount = $total_invoice_item_tax * $quantity; $total_invoice_item = $total_invoice_item_tax + $product_unit_price; $total = $total_invoice_item * $quantity; $gross_total = $product_unit_price * $quantity; if ($db_server == 'mysql' && !_invoice_items_check_fk( null, $product_id, $tax_id, 'update')) { return null; } $sql = "UPDATE ".TB_PREFIX."invoice_items SET quantity = :quantity, product_id = :product_id, unit_price = :unit_price, tax_id = :tax_id, tax = :tax, tax_amount = :tax_amount, gross_total = :gross_total, description = :description, total = :total, attribute_1 = :attr1, attribute_2 = :attr2, attribute_3 = :attr3 WHERE id = :id"; //echo $sql; return dbQuery($sql, ':quantity', $quantity, ':product_id', $product_id, ':unit_price', $product_unit_price, ':tax_id', $tax_id, ':tax', $tax[tax_percentage], ':tax_amount', $tax_amount, ':gross_total', $gross_total, ':description', $description, ':total', $total, ':id', $id, ':attr1', $attr1, ':attr2', $attr2, ':attr3', $attr3 ); }
function getTaxesPerLineItem($line_item_tax_id,$quantity, $unit_price) { global $logger; $SI_TAX = new SimpleInvoices_Db_Table_Tax(); foreach($line_item_tax_id as $key => $value) { $logger->log("Key: ".$key." Value: ".$value, Zend_Log::INFO); $tax = $SI_TAX->getTaxRateById($value); $logger->log('tax rate: '.$tax['tax_percentage'], Zend_Log::INFO); $tax_amount = lineItemTaxCalc($tax,$unit_price,$quantity); //get Total tax for line item $tax_total = $tax_total + $tax_amount; //$logger->log('Qty: '.$quantity.' Unit price: '.$unit_price, Zend_Log::INFO); //$logger->log('Tax rate: '.$tax[tax_percentage].' Tax type: '.$tax['tax_type'].' Tax $: '.$tax_amount, Zend_Log::INFO); } return $tax_total; }
public static function expense_item_tax($expense_id,$line_item_tax_id,$unit_price,$quantity,$action="") { global $logger; global $db; $SI_TAX = new SimpleInvoices_Db_Table_Tax(); $logger->log("Exp ITEM :: Key: ".$key." Value: ".$value, Zend_Log::INFO); //if editing invoice delete all tax info then insert first then do insert again //probably can be done without delete - someone to look into this if required - TODO if ($action =="update") { $sql_delete = "DELETE from ".TB_PREFIX."expense_item_tax WHERE expense_id = :expense_id"; $logger->log("Expense item: ".$expense_id." tax lines deleted", Zend_Log::INFO); $db->query($sql_delete,':expense_id',$expense_id); } foreach($line_item_tax_id as $key => $value) { if($value !== "") { $tax = $SI_TAX->getTaxRateById($value); $logger->log("Expense - item tax :: Key: ".$key." Value: ".$value, Zend_Log::INFO); $logger->log('Expense - item tax :: tax rate: '.$tax['tax_percentage'], Zend_Log::INFO); $tax_amount = lineItemTaxCalc($tax,$unit_price,$quantity); //get Total tax for line item $tax_total = $tax_total + $tax_amount; $logger->log('Expense - item tax :: Qty: '.$quantity.' Unit price: '.$unit_price, Zend_Log::INFO); $logger->log('Expense - item tax :: Tax rate: '.$tax[tax_percentage].' Tax type: '.$tax['type'].' Tax $: '.$tax_amount, Zend_Log::INFO); $sql = "INSERT INTO ".TB_PREFIX."expense_item_tax ( expense_id, tax_id, tax_type, tax_rate, tax_amount ) VALUES ( :expense_id, :tax_id, :tax_type, :tax_rate, :tax_amount )"; $db->query($sql, ':expense_id', $expense_id, ':tax_id', $tax[tax_id], ':tax_type', $tax[type], ':tax_rate', $tax[tax_percentage], ':tax_amount', $tax_amount ); } } //TODO fix this return true; }
$SI_TAX = new SimpleInvoices_Db_Table_Tax(); #table jsBegin(); jsFormValidationBegin("frmpost"); jsValidateRequired("tax_description",$LANG['tax_description']); jsValidateifNum("tax_percentage",$LANG['tax_percentage']); jsFormValidationEnd(); jsEnd(); #get the invoice id $tax_rate_id = $_GET['id']; $tax = $SI_TAX->getTaxRateById($tax_rate_id); $types = $types = array( '%' => '%', '$' => '$' ); $smarty -> assign("tax",$tax); $smarty -> assign("types",$types); $smarty -> assign('pageActive', 'tax_rate'); $subPageActive = $_GET['action'] =="view" ? "tax_rates_view" : "tax_rates_edit" ; $smarty -> assign('subPageActive', $subPageActive); $smarty -> assign('active_tab', '#setting'); ?>
<?php //stop the direct browsing to this file - let index.php handle which files get displayed checkLogin(); #get the invoice id $product_id = $_GET['id']; $SI_SYSTEM_DEFAULTS = new SimpleInvoices_Db_Table_SystemDefaults(); $SI_PRODUCTS = new SimpleInvoices_Db_Table_Products(); $SI_TAX = new SimpleInvoices_Db_Table_Tax(); $SI_CUSTOM_FIELDS = new SimpleInvoices_Db_Table_CustomFields(); $product = $SI_PRODUCTS->getProductById($product_id); #get custom field labels $customFieldLabel = $SI_CUSTOM_FIELDS->getLabels(); $taxes = $SI_TAX->fetchAllActive(); $tax_selected = $SI_TAX->getTaxRateById($product['default_tax_id']); $smarty -> assign("defaults",$SI_SYSTEM_DEFAULTS->fetchAll()); $smarty -> assign('product',$product); $smarty -> assign('taxes',$taxes); $smarty -> assign('tax_selected',$tax_selected); $smarty -> assign('customFieldLabel',$customFieldLabel); $smarty -> assign('pageActive', 'product_manage'); $subPageActive = $_GET['action'] =="view" ? "product_view" : "product_edit" ; $smarty -> assign('subPageActive', $subPageActive); $smarty -> assign('active_tab', '#product'); ?>