[Vtigercrm-commits] [vtiger-commits] r9320 - in /vtigercrm/trunk: Smarty/templates/Inventory/ProductDetails.tpl Smarty/templates/Inventory/ProductDetailsEditView.tpl include/js/Inventory.js modules/Products/InventoryTaxAjax.php
vtigercrm-commits at vtiger.fosslabs.com
vtigercrm-commits at vtiger.fosslabs.com
Wed Sep 6 07:10:08 EDT 2006
Author: saraj
Date: Wed Sep 6 05:09:59 2006
New Revision: 9320
Log:
* Modified to calculate the taxes when we change discount and listprice
Modified:
vtigercrm/trunk/Smarty/templates/Inventory/ProductDetails.tpl
vtigercrm/trunk/Smarty/templates/Inventory/ProductDetailsEditView.tpl
vtigercrm/trunk/include/js/Inventory.js
vtigercrm/trunk/modules/Products/InventoryTaxAjax.php
Modified: vtigercrm/trunk/Smarty/templates/Inventory/ProductDetails.tpl
==============================================================================
--- vtigercrm/trunk/Smarty/templates/Inventory/ProductDetails.tpl (original)
+++ vtigercrm/trunk/Smarty/templates/Inventory/ProductDetails.tpl Wed Sep 6 05:09:59 2006
@@ -180,7 +180,7 @@
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td align="right">
- <input id="listPrice1" name="listPrice1" value="{$UNIT_PRICE}" type="text" class="small " style="width:70px" onBlur="calcTotal()"/> <img src="{$IMAGE_PATH}pricebook.gif" onclick="priceBookPickList(this,1)">
+ <input id="listPrice1" name="listPrice1" value="{$UNIT_PRICE}" type="text" class="small " style="width:70px" onBlur="calcTotal(); callTaxCalc(1);"/> <img src="{$IMAGE_PATH}pricebook.gif" onclick="priceBookPickList(this,1)">
</td>
</tr>
<tr>
@@ -194,16 +194,16 @@
<td align="right"><img src="{$IMAGE_PATH}close.gif" border="0" onClick="fnHidePopDiv('discount_div1')" style="cursor:pointer;"></td>
</tr>
<tr>
- <td align="left" class="lineOnTop"><input type="radio" name="discount1" checked onclick="setDiscount(this,1)"> {$APP.LBL_ZERO_DISCOUNT}</td>
+ <td align="left" class="lineOnTop"><input type="radio" name="discount1" checked onclick="setDiscount(this,1); callTaxCalc(1);"> {$APP.LBL_ZERO_DISCOUNT}</td>
<td class="lineOnTop"> </td>
</tr>
<tr>
- <td align="left"><input type="radio" name="discount1" onclick="setDiscount(this,1)"> % {$APP.LBL_OF_PRICE}</td>
- <td align="right"><input type="text" class="small" size="2" id="discount_percentage1" name="discount_percentage1" value="0" style="visibility:hidden" onBlur="setDiscount(this,1)"> %</td>
- </tr>
- <tr>
- <td align="left" nowrap><input type="radio" name="discount1" onclick="setDiscount(this,1)"> {$APP.LBL_DIRECT_PRICE_REDUCTION}</td>
- <td align="right"><input type="text" id="discount_amount1" name="discount_amount1" size="5" value="0" style="visibility:hidden" onBlur="setDiscount(this,1)"></td>
+ <td align="left"><input type="radio" name="discount1" onclick="setDiscount(this,1); callTaxCalc(1);"> % {$APP.LBL_OF_PRICE}</td>
+ <td align="right"><input type="text" class="small" size="2" id="discount_percentage1" name="discount_percentage1" value="0" style="visibility:hidden" onBlur="setDiscount(this,1); callTaxCalc(1);"> %</td>
+ </tr>
+ <tr>
+ <td align="left" nowrap><input type="radio" name="discount1" onclick="setDiscount(this,1); callTaxCalc(1);"> {$APP.LBL_DIRECT_PRICE_REDUCTION}</td>
+ <td align="right"><input type="text" id="discount_amount1" name="discount_amount1" size="5" value="0" style="visibility:hidden" onBlur="setDiscount(this,1); callTaxCalc(1);"></td>
</tr>
</table>
</div>
Modified: vtigercrm/trunk/Smarty/templates/Inventory/ProductDetailsEditView.tpl
==============================================================================
--- vtigercrm/trunk/Smarty/templates/Inventory/ProductDetailsEditView.tpl (original)
+++ vtigercrm/trunk/Smarty/templates/Inventory/ProductDetailsEditView.tpl Wed Sep 6 05:09:59 2006
@@ -201,7 +201,7 @@
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td align="right">
- <input id="{$listPrice}" name="{$listPrice}" value="{$data.$listPrice}" type="text" class="small " style="width:70px" onBlur="calcTotal()"/> <img src="{$IMAGE_PATH}pricebook.gif" onclick="priceBookPickList(this,'{$row_no}')">
+ <input id="{$listPrice}" name="{$listPrice}" value="{$data.$listPrice}" type="text" class="small " style="width:70px" onBlur="calcTotal(); callTaxCalc('{$row_no}');"/> <img src="{$IMAGE_PATH}pricebook.gif" onclick="priceBookPickList(this,'{$row_no}')">
</td>
</tr>
<tr>
@@ -215,16 +215,16 @@
<td align="right"><img src="{$IMAGE_PATH}close.gif" border="0" onClick="fnHidePopDiv('discount_div{$row_no}')" style="cursor:pointer;"></td>
</tr>
<tr>
- <td align="left" class="lineOnTop"><input type="radio" name="discount{$row_no}" {$data.$checked_discount_zero} onclick="setDiscount(this,'{$row_no}')"> {$APP.LBL_ZERO_DISCOUNT}</td>
+ <td align="left" class="lineOnTop"><input type="radio" name="discount{$row_no}" {$data.$checked_discount_zero} onclick="setDiscount(this,'{$row_no}'); callTaxCalc('{$row_no}');"> {$APP.LBL_ZERO_DISCOUNT}</td>
<td class="lineOnTop"> </td>
</tr>
<tr>
- <td align="left"><input type="radio" name="discount{$row_no}" onclick="setDiscount(this,'{$row_no}')" {$data.$checked_discount_percent}> % {$APP.LBL_OF_PRICE}</td>
- <td align="right"><input type="text" class="small" size="2" id="discount_percentage{$row_no}" name="discount_percentage{$row_no}" value="{$data.$discount_percent}" {$data.$style_discount_percent} onBlur="setDiscount(this,'{$row_no}')"> %</td>
- </tr>
- <tr>
- <td align="left" nowrap><input type="radio" name="discount{$row_no}" onclick="setDiscount(this,'{$row_no}')" {$data.$checked_discount_amount}> {$APP.LBL_DIRECT_PRICE_REDUCTION}</td>
- <td align="right"><input type="text" id="discount_amount{$row_no}" name="discount_amount{$row_no}" size="5" value="{$data.$discount_amount}" {$data.$style_discount_amount} onBlur="setDiscount(this,{$row_no})"></td>
+ <td align="left"><input type="radio" name="discount{$row_no}" onclick="setDiscount(this,'{$row_no}'); callTaxCalc('{$row_no}');" {$data.$checked_discount_percent}> % {$APP.LBL_OF_PRICE}</td>
+ <td align="right"><input type="text" class="small" size="2" id="discount_percentage{$row_no}" name="discount_percentage{$row_no}" value="{$data.$discount_percent}" {$data.$style_discount_percent} onBlur="setDiscount(this,'{$row_no}'); callTaxCalc('{$row_no}');"> %</td>
+ </tr>
+ <tr>
+ <td align="left" nowrap><input type="radio" name="discount{$row_no}" onclick="setDiscount(this,'{$row_no}'); callTaxCalc('{$row_no}');" {$data.$checked_discount_amount}> {$APP.LBL_DIRECT_PRICE_REDUCTION}</td>
+ <td align="right"><input type="text" id="discount_amount{$row_no}" name="discount_amount{$row_no}" size="5" value="{$data.$discount_amount}" {$data.$style_discount_amount} onBlur="setDiscount(this,{$row_no}); callTaxCalc('{$row_no}');"></td>
</tr>
</table>
</div>
@@ -240,7 +240,7 @@
(+) <b><a href="javascript:doNothing();" onClick="displayCoords(this,'tax_div{$row_no}','tax','{$row_no}')" >{$APP.LBL_TAX} </a> : </b>
<div class="discountUI" id="tax_div{$row_no}">
<!-- we will form the table with all taxes -->
- <table width="100%" border="0" cellpadding="5" cellspacing="0" class="small">
+ <table width="100%" border="0" cellpadding="5" cellspacing="0" class="small" id="tax_table{$row_no}">
<tr>
<td id="tax_div_title{$row_no}" nowrap align="left" ><b>Set Tax for : {$data.$totalAfterDiscount}</b></td>
<td> </td>
@@ -249,11 +249,13 @@
{foreach key=tax_row_no item=tax_data from=$data.taxes}
{assign var="taxname" value=$tax_data.taxname|cat:"_percentage"|cat:$row_no}
+ {assign var="tax_id_name" value="hidden_tax"|cat:$tax_row_no+1|cat:"_percentage"|cat:$row_no}
{assign var="taxlabel" value=$tax_data.taxlabel|cat:"_percentage"|cat:$row_no}
{assign var="popup_tax_rowname" value="popup_tax_row"|cat:$row_no}
<tr>
<td align="left" class="lineOnTop">
<input type="text" class="small" size="5" name="{$taxname}" id="{$taxname}" value="{$tax_data.percentage}" onBlur="calcCurrentTax('{$taxname}',{$row_no},{$tax_row_no})"> %
+ <input type="hidden" id="{$tax_id_name}" value="{$taxname}">
</td>
<td align="center" class="lineOnTop">{$tax_data.taxlabel}</td>
<td align="right" class="lineOnTop">
Modified: vtigercrm/trunk/include/js/Inventory.js
==============================================================================
--- vtigercrm/trunk/include/js/Inventory.js (original)
+++ vtigercrm/trunk/include/js/Inventory.js Wed Sep 6 05:09:59 2006
@@ -480,7 +480,7 @@
//List Price with Discount, Total after Discount and Tax labels
colfive.className = "crmTableRow small"
- colfive.innerHTML='<table width="100%" cellpadding="0" cellspacing="0"><tr><td align="right"><input id="listPrice'+count+'" name="listPrice'+count+'" value="0.00" type="text" class="small " style="width:70px" onBlur="calcTotal()"/> <img src="'+image_path+'pricebook.gif" onclick="priceBookPickList(this,'+count+')"></td></tr><tr><td align="right" style="padding:5px;" nowrap> (-) <b><a href="javascript:doNothing();" onClick="displayCoords(event,\'discount_div'+count+'\',\'discount\','+count+')" >Discount</a> : </b><div class=\"discountUI\" id=\"discount_div'+count+'"><input type="hidden" id="discount_type'+count+'" name="discount_type'+count+'" value=""><table width="100%" border="0" cellpadding="5" cellspacing="0" class="small"><tr><td id="discount_div_title'+count+'" nowrap align="left" ></td><td align="right"><img src="'+image_path+'close.gif" border="0" onClick="fnHidePopDiv(\'discount_div'+count+'\')" style="cursor:pointer;"></td></tr><tr><td align="left" class="lineOnTop"><input type="radio" name="discount'+count+'" checked onclick="setDiscount(this,'+count+')"> Zero Discount</td><td class="lineOnTop"> </td></tr><tr><td align="left"><input type="radio" name="discount'+count+'" onclick="setDiscount(this,'+count+')"> % of Price </td><td align="right"><input type="text" class="small" size="2" id="discount_percentage'+count+'" name="discount_percentage'+count+'" value="0" style="visibility:hidden" onBlur="setDiscount(this,'+count+')"> %</td></tr><tr><td align="left" nowrap><input type="radio" name="discount'+count+'" onclick="setDiscount(this,'+count+')"> Direct Price Redunction</td><td align="right"><input type="text" id="discount_amount'+count+'" name="discount_amount'+count+'" size="5" value="0" style="visibility:hidden" onBlur="setDiscount(this,'+count+')"></td></tr></table></div></td></tr><tr> <td align="right" style="padding:5px;" nowrap><b>Total After Discount :</b></td></tr><tr id="individual_tax_row'+count+'" class="TaxShow"><td align="right" style="padding:5px;" nowrap>(+) <b><a href="javascript:doNothing();" onClick="displayCoords(event,\'tax_div'+count+'\',\'tax\','+count+')" >Tax </a> : </b><div class="discountUI" id="tax_div'+count+'"></div></td></tr></table> ';
+ colfive.innerHTML='<table width="100%" cellpadding="0" cellspacing="0"><tr><td align="right"><input id="listPrice'+count+'" name="listPrice'+count+'" value="0.00" type="text" class="small " style="width:70px" onBlur="calcTotal(); callTaxCalc('+count+');"/> <img src="'+image_path+'pricebook.gif" onclick="priceBookPickList(this,'+count+')"></td></tr><tr><td align="right" style="padding:5px;" nowrap> (-) <b><a href="javascript:doNothing();" onClick="displayCoords(event,\'discount_div'+count+'\',\'discount\','+count+')" >Discount</a> : </b><div class=\"discountUI\" id=\"discount_div'+count+'"><input type="hidden" id="discount_type'+count+'" name="discount_type'+count+'" value=""><table width="100%" border="0" cellpadding="5" cellspacing="0" class="small"><tr><td id="discount_div_title'+count+'" nowrap align="left" ></td><td align="right"><img src="'+image_path+'close.gif" border="0" onClick="fnHidePopDiv(\'discount_div'+count+'\')" style="cursor:pointer;"></td></tr><tr><td align="left" class="lineOnTop"><input type="radio" name="discount'+count+'" checked onclick="setDiscount(this,'+count+'); callTaxCalc('+count+');"> Zero Discount</td><td class="lineOnTop"> </td></tr><tr><td align="left"><input type="radio" name="discount'+count+'" onclick="setDiscount(this,'+count+'); callTaxCalc('+count+');"> % of Price </td><td align="right"><input type="text" class="small" size="2" id="discount_percentage'+count+'" name="discount_percentage'+count+'" value="0" style="visibility:hidden" onBlur="setDiscount(this,'+count+'); callTaxCalc('+count+');"> %</td></tr><tr><td align="left" nowrap><input type="radio" name="discount'+count+'" onclick="setDiscount(this,'+count+'); callTaxCalc('+count+');"> Direct Price Redunction</td><td align="right"><input type="text" id="discount_amount'+count+'" name="discount_amount'+count+'" size="5" value="0" style="visibility:hidden" onBlur="setDiscount(this,'+count+'); callTaxCalc('+count+');"></td></tr></table></div></td></tr><tr> <td align="right" style="padding:5px;" nowrap><b>Total After Discount :</b></td></tr><tr id="individual_tax_row'+count+'" class="TaxShow"><td align="right" style="padding:5px;" nowrap>(+) <b><a href="javascript:doNothing();" onClick="displayCoords(event,\'tax_div'+count+'\',\'tax\','+count+')" >Tax </a> : </b><div class="discountUI" id="tax_div'+count+'"></div></td></tr></table> ';
//Total and Discount, Total after Discount and Tax details
colsix.className = "crmTableRow small"
@@ -578,6 +578,20 @@
calcTotal();
}
+//This function is added to call the tax calculation function
+function callTaxCalc(curr_row)
+{
+ //when we change discount or list price, we have to calculate the taxes again before calculate the total
+ tax_count = eval(document.getElementById('tax_table'+curr_row).rows.length-1);//subtract the title tr length
+
+ for(var i=0, j=i+1;i<tax_count;i++,j++)
+ {
+ var tax_hidden_name = "hidden_tax"+j+"_percentage"+curr_row;
+ var tax_name = document.getElementById(tax_hidden_name).value;
+ calcCurrentTax(tax_name,curr_row,i);
+ }
+}
+
function calcCurrentTax(tax_name, curr_row, tax_row)
{
//we should calculate the tax amount only for the total After Discount
Modified: vtigercrm/trunk/modules/Products/InventoryTaxAjax.php
==============================================================================
--- vtigercrm/trunk/modules/Products/InventoryTaxAjax.php (original)
+++ vtigercrm/trunk/modules/Products/InventoryTaxAjax.php Wed Sep 6 05:09:59 2006
@@ -22,7 +22,7 @@
$tax_div = '
- <table width="100%" border="0" cellpadding="5" cellspacing="0" class="small">
+ <table width="100%" border="0" cellpadding="5" cellspacing="0" class="small" id="tax_table'.$rowid.'">
<tr>
<td id="tax_div_title'.$rowid.'" nowrap align="left" ><b>Set Tax for : '.$product_total.'</b></td>
<td> </td>
@@ -31,12 +31,13 @@
';
$net_tax_total = 0.00;
-for($i=0;$i<count($tax_details);$i++)
+for($i=0,$j=$i+1;$i<count($tax_details);$i++,$j++)
{
$tax_name = $tax_details[$i]['taxname'];
$tax_label = $tax_details[$i]['taxlabel'];
$tax_percentage = $tax_details[$i]['percentage'];
$tax_name_percentage = $tax_name."_percentage".$rowid;
+ $tax_id_name = "hidden_tax".$j."_percentage".$rowid;//used to store the tax name, used in function callTaxCalc
$tax_name_total = "popup_tax_row".$rowid;//$tax_name."_total".$rowid;
$tax_total = $product_total*$tax_percentage/100.00;
@@ -45,6 +46,7 @@
<tr>
<td align="left" class="lineOnTop">
<input type="text" class="small" size="5" name="'.$tax_name_percentage.'" id="'.$tax_name_percentage.'" value="'.$tax_percentage.'" onBlur="calcCurrentTax(\''.$tax_name_percentage.'\','.$rowid.','.$i.')"> %
+ <input type="hidden" id="'.$tax_id_name.'" value="'.$tax_name_percentage.'">
</td>
<td align="center" class="lineOnTop">'.$tax_label.'</td>
<td align="right" class="lineOnTop">
@@ -54,12 +56,13 @@
';
}
+$tax_div .= '</table>';
+
if($associated_tax_count == 0)
{
- $tax_div .= '<tr><td colspan="3" align="left" class="lineOnTop">No taxes associated with this product.</td></tr>';
+ $tax_div .= '<div align="left" class="lineOnTop" width="100%">No taxes associated with this product.</div>';
}
-$tax_div .= '</table>';
$tax_div .= '<input type="hidden" id="hdnTaxTotal'.$rowid.'" name="hdnTaxTotal'.$rowid.'" value="'.$net_tax_total.'">';
echo $tax_div;
More information about the vtigercrm-commits
mailing list