projects
/
fa-stable.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed bug in tax calculations for some quick entries using multiply tax types.
[fa-stable.git]
/
includes
/
ui
/
ui_view.inc
diff --git
a/includes/ui/ui_view.inc
b/includes/ui/ui_view.inc
index e978b36d9b9564a931ad25a1cb14989915d00977..86062acba8b083cd9d476692443bc57a6fe38620 100644
(file)
--- a/
includes/ui/ui_view.inc
+++ b/
includes/ui/ui_view.inc
@@
-598,16
+598,24
@@
function display_quick_entries(&$cart, $id, $base, $type, $descr='')
case "t-": // ditto & reduce base amount
$taxes = get_taxes_for_item_tax($qe_line['dest_id']);
$tax_total = 0;
case "t-": // ditto & reduce base amount
$taxes = get_taxes_for_item_tax($qe_line['dest_id']);
$tax_total = 0;
+ $totrate = 0;
+ // find total tax
+ if (substr($qe_line['action'],0,1) != 'T') {
+ foreach ($taxes as $index => $item_tax) {
+ $totrate += $item_tax['rate'];
+ }
+ }
+ $taxbase = $base/($totrate+100);
foreach ($taxes as $index => $item_tax) {
foreach ($taxes as $index => $item_tax) {
- if(substr($qe_line['action'],0,1) != 'T')
- $tax = round2($base * $item_tax['rate']
- / ($item_tax['rate'] + 100), user_price_dec());
- else
- $tax = round2($base * $item_tax['rate'] / 100, user_price_dec());
-
+ $tax = round2($taxbase * $item_tax['rate'], user_price_dec());
$gl_code = ($type == QE_DEPOSIT || ($type == QE_JOURNAL && $base < 0))
? $item_tax['sales_gl_code'] : $item_tax['purchasing_gl_code'];
$tax_total += $tax;
$gl_code = ($type == QE_DEPOSIT || ($type == QE_JOURNAL && $base < 0))
? $item_tax['sales_gl_code'] : $item_tax['purchasing_gl_code'];
$tax_total += $tax;
+ if ($tax==0) continue;
+ if (!is_tax_gl_unique($gl_code)) {
+ display_error(_("Cannot post to GL account used by more than one tax type."));
+ break 3;
+ }
if ($type != QE_SUPPINV)
$cart->add_gl_item($gl_code,
$qe_line['dimension_id'], $qe_line['dimension2_id'],
if ($type != QE_SUPPINV)
$cart->add_gl_item($gl_code,
$qe_line['dimension_id'], $qe_line['dimension2_id'],