From: Joe Hunt Date: Fri, 19 Feb 2010 17:04:43 +0000 (+0000) Subject: Bug in exchange variation calculation in certain situations X-Git-Tag: 2.3-final~964 X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=commitdiff_plain;h=09d5c61846ddda0df907bb9c4e318cc7f1520653;hp=dae4eed313ffcbe5d0a7c09e4b943b7459db5fa5;p=fa-stable.git Bug in exchange variation calculation in certain situations Better and cleaner layout in graphics Fixed better layout in customer delivery form --- diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 3ea790ce..483892c4 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -19,6 +19,14 @@ Legend: ! -> Note $ -> Affected files +19-Feb-2010 Joe Hunt/Ary Wibowo +# Bug in exchange variation calculation in certain situations. +$ /gl/includes/gl_db_banking.inc +! Better and cleaner layout in graphics +$ /reporting/includes/class.graphic.inc +! Fixed better layout in customer delivery form +$ /sales/customer_delivery.php + 17-Feb-2010 Joe Hunt # Missing border layout in report centre $ /reporting/includes/reports_classes.inc diff --git a/gl/includes/db/gl_db_banking.inc b/gl/includes/db/gl_db_banking.inc index afc9e516..d002f1d6 100644 --- a/gl/includes/db/gl_db_banking.inc +++ b/gl/includes/db/gl_db_banking.inc @@ -17,24 +17,27 @@ function add_exchange_variation($trans_type, $trans_no, $date_, $acc_id, $accoun if ($date_ == null) $date_ = Today(); $rate = get_exchange_rate_from_home_currency($currency, $date_); -/* - $result = db_query("SELECT SUM(amount) FROM ".TB_PREF."bank_trans WHERE - bank_act=".db_escape($acc_id)." AND trans_date<='".date2sql($date_)."'", - "Transactions for account $account could not be calculated"); - $row = db_fetch_row($result); - $foreign_amount = $row[0]; - $amount = get_gl_trans_from_to("", $date_, $account); - $diff = $amount - (round2($foreign_amount * $rate, user_price_dec())); -*/ - $result = db_query("SELECT SUM(bt.amount) AS foreign_amount, SUM(gt.amount) AS amount - FROM ".TB_PREF."bank_trans bt, ".TB_PREF."gl_trans gt, ".TB_PREF."bank_accounts ba - WHERE bt.bank_act=".db_escape($acc_id)." AND bt.trans_date<='".date2sql($date_)."' - AND ((bt.amount > 0 AND gt.amount > 0) OR (bt.amount <= 0 AND gt.amount <= 0)) - AND bt.type = gt.type AND bt.trans_no = gt.type_no - AND ba.id = bt.bank_act AND ba.account_code = gt.account", - "Transactions for account $account could not be calculated"); - $row = db_fetch($result); - $diff = $row['amount'] - (round2($row['foreign_amount'] * $rate, user_price_dec())); + $for_amount = $amount = 0; + // We had to split up the SQL statements to retrieve the correct GL counter-parts + // 2010-02-19 Joe Hunt with help of Ary Wibowo + $sql = "SELECT bt.*, SUM(bt.amount) AS for_amount, ba.account_code + FROM ".TB_PREF."bank_trans bt, ".TB_PREF."bank_accounts ba + WHERE ba.id = bt.bank_act AND bt.bank_act=".db_escape($acc_id)." AND bt.trans_date<='".date2sql($date_)."' + GROUP BY bt.type, bt.trans_no"; + $result = db_query($sql, "Transactions for bank account $acc_id could not be calculated"); + while ($row = db_fetch($result)) + { + $for_amount += $row['for_amount']; + + $sql2 = "SELECT SUM(gt.amount) AS amount FROM ".TB_PREF."gl_trans gt + WHERE gt.account = ".$row['account_code']." AND gt.type = ".$row['type']." + AND gt.type_no = ".$row['trans_no']." AND gt.tran_date = '".$row['trans_date']."' + AND gt.person_type_id = ".$row['person_type_id']; + $res = db_query($sql2, "Transactions for GL account ".$row['account_code']." could not be calculated"); + $row2 = db_fetch_row($res); + $amount += $row2[0]; + } + $diff = $amount - (round2($for_amount * $rate, user_price_dec())); if ($diff != 0) { if ($trans_type == null) diff --git a/reporting/includes/class.graphic.inc b/reporting/includes/class.graphic.inc index 20022f1b..c1133648 100644 --- a/reporting/includes/class.graphic.inc +++ b/reporting/includes/class.graphic.inc @@ -222,8 +222,8 @@ class graph // Fill background imagefill($this->img, 0, 0, $this->color['background']); //imagefilledrectangle($this->img, 0, 0, $this->width, $this->height, $this->color['background']); - if ($border) - imagerectangle($this->img, 0, 0, $this->width-1, $this->height-1, imagecolorallocate($this->img, 100, 150, 200)); + //if ($border) + // imagerectangle($this->img, 0, 0, $this->width-1, $this->height-1, imagecolorallocate($this->img, 100, 150, 200)); // Draw title if (!empty($this->title)) @@ -396,7 +396,8 @@ class graph imagefilledrectangle($this->img, $x1, $y1, $x2, $y2, $this->color['bars']); $this->_imagestring($this->img, $this->size, ($x2+7), ($y1+2), $this->number_formated($this->y[$i], $this->dec2), $this->color['bars_shadow']); - $this->_imagestring($this->img, $this->size, ($x1 - ((strlen($parameter)*7)+7)), ($y1+2), $parameter, $this->color['axis_values']); + //$this->_imagestring($this->img, $this->size, ($x1 - ((strlen($parameter)*7)+7)), ($y1+2), $parameter, $this->color['axis_values']); + $this->_imagestring($this->img, $this->size, 30, ($y1+2), $parameter, $this->color['axis_values']); } } @@ -811,8 +812,10 @@ class graph { // Office case 1: - $this->color['title'] = imagecolorallocate($this->img, 50, 50, 50); - $this->color['background'] = imagecolorallocate($this->img, 238, 255, 238); + //$this->color['title'] = imagecolorallocate($this->img, 50, 50, 50); + $this->color['title'] = imagecolorallocate($this->img, 40, 70, 130); + //$this->color['background'] = imagecolorallocate($this->img, 238, 255, 238); + $this->color['background'] = imagecolorallocate($this->img, 255, 255, 255); $this->color['axis_values'] = imagecolorallocate($this->img, 50, 50, 50); $this->color['axis_line'] = imagecolorallocate($this->img, 100, 100, 100); $this->color['bg_lines'] = imagecolorallocate($this->img, 220, 220, 220); @@ -893,11 +896,13 @@ class graph // Spring case 3: $this->color['title'] = imagecolorallocate($this->img, 250, 50, 50); - $this->color['background'] = imagecolorallocate($this->img, 250, 250, 220); + //$this->color['background'] = imagecolorallocate($this->img, 250, 250, 220); + $this->color['background'] = imagecolorallocate($this->img, 255, 255, 255); $this->color['axis_values'] = imagecolorallocate($this->img, 50, 150, 50); $this->color['axis_line'] = imagecolorallocate($this->img, 50, 100, 50); $this->color['bg_lines'] = imagecolorallocate($this->img, 200, 224, 180); - $this->color['bg_legend'] = imagecolorallocate($this->img, 230, 230, 200); + //$this->color['bg_legend'] = imagecolorallocate($this->img, 230, 230, 200); + $this->color['bg_legend'] = imagecolorallocate($this->img, 255, 255, 255); if (preg_match("/^(1|2)$/", $this->type)) { diff --git a/sales/customer_delivery.php b/sales/customer_delivery.php index cd7299a8..a1ac4eb7 100644 --- a/sales/customer_delivery.php +++ b/sales/customer_delivery.php @@ -377,7 +377,9 @@ start_table("$table_style width=90%"); if (!isset($_POST['due_date']) || !is_date($_POST['due_date'])) { $_POST['due_date'] = get_invoice_duedate($_SESSION['Items']->customer_id, $_POST['DispatchDate']); } -date_row(_("Invoice Dead-line"), 'due_date', '', null, 0, 0, 0, "class='tableheader2'"); +start_row(); +date_cells(_("Invoice Dead-line"), 'due_date', '', null, 0, 0, 0, "class='tableheader2'"); +end_row(); end_table(); echo "";