Minor bugfixes.
[fa-stable.git] / reporting / rep102.php
index e9412e6a12977657d5b60e98fab0c453de35334a..e09bdefd8832544710856c9be521784d80075922 100644 (file)
@@ -26,67 +26,68 @@ function get_invoices($costomer_id, $to)
        $PastDueDays2 = 2 * $PastDueDays1;
 
        // Revomed allocated from sql
-       $sql = "SELECT ".TB_PREF."sys_types.type_name, ".TB_PREF."debtor_trans.reference, 
-               ".TB_PREF."debtor_trans.tran_date, 
+       $sql = "SELECT ".TB_PREF."sys_types.type_name, ".TB_PREF."debtor_trans.type, ".TB_PREF."debtor_trans.reference,
+               ".TB_PREF."debtor_trans.tran_date,
                (".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount) as Balance,
                IF (".TB_PREF."payment_terms.days_before_due > 0,
-                       CASE WHEN TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date) >= ".TB_PREF."payment_terms.days_before_due THEN 
-                               ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount 
+                       CASE WHEN TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date) >= ".TB_PREF."payment_terms.days_before_due THEN
+                               ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount
                        ELSE
-                               0 
+                               0
                        END,
 
-                       CASE WHEN TO_DAYS('$todate') - TO_DAYS(DATE_ADD(DATE_ADD(".TB_PREF."debtor_trans.tran_date, 
-                               INTERVAL 1 MONTH), INTERVAL (".TB_PREF."payment_terms.day_in_following_month - 
-                               DAYOFMONTH(".TB_PREF."debtor_trans.tran_date)) DAY)) >= 0 THEN 
-                                       ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount 
-                       ELSE 
-                               0 
+                       CASE WHEN TO_DAYS('$todate') - TO_DAYS(DATE_ADD(DATE_ADD(".TB_PREF."debtor_trans.tran_date,
+                               INTERVAL 1 MONTH), INTERVAL (".TB_PREF."payment_terms.day_in_following_month -
+                               DAYOFMONTH(".TB_PREF."debtor_trans.tran_date)) DAY)) >= 0 THEN
+                                       ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount
+                       ELSE
+                               0
                        END
                ) AS Due,
                IF (".TB_PREF."payment_terms.days_before_due > 0,
-                       CASE WHEN TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date) > ".TB_PREF."payment_terms.days_before_due 
-                               AND TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date) >= (".TB_PREF."payment_terms.days_before_due + $PastDueDays1) THEN 
-                                       ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount 
-                       ELSE 
-                               0 
+                       CASE WHEN TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date) > ".TB_PREF."payment_terms.days_before_due
+                               AND TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date) >= (".TB_PREF."payment_terms.days_before_due + $PastDueDays1) THEN
+                                       ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount
+                       ELSE
+                               0
                        END,
 
-                       CASE WHEN TO_DAYS('$todate') - TO_DAYS(DATE_ADD(DATE_ADD(".TB_PREF."debtor_trans.tran_date, 
-                               INTERVAL 1 MONTH), INTERVAL (".TB_PREF."payment_terms.day_in_following_month - 
-                               DAYOFMONTH(".TB_PREF."debtor_trans.tran_date)) DAY)) >= $PastDueDays1 THEN 
-                                       ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount 
-                       ELSE 
-                               0 
+                       CASE WHEN TO_DAYS('$todate') - TO_DAYS(DATE_ADD(DATE_ADD(".TB_PREF."debtor_trans.tran_date,
+                               INTERVAL 1 MONTH), INTERVAL (".TB_PREF."payment_terms.day_in_following_month -
+                               DAYOFMONTH(".TB_PREF."debtor_trans.tran_date)) DAY)) >= $PastDueDays1 THEN
+                                       ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount
+                       ELSE
+                               0
                        END
                ) AS Overdue1,
                IF (".TB_PREF."payment_terms.days_before_due > 0,
-                       CASE WHEN TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date) > ".TB_PREF."payment_terms.days_before_due 
-                               AND TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date) >= (".TB_PREF."payment_terms.days_before_due + $PastDueDays2) THEN 
-                                       ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount 
-                       ELSE 
-                               0 
+                       CASE WHEN TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date) > ".TB_PREF."payment_terms.days_before_due
+                               AND TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date) >= (".TB_PREF."payment_terms.days_before_due + $PastDueDays2) THEN
+                                       ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount
+                       ELSE
+                               0
                        END,
 
                        CASE WHEN TO_DAYS('$todate') - TO_DAYS(DATE_ADD(DATE_ADD(".TB_PREF."debtor_trans.tran_date,
-                               INTERVAL 1 MONTH), INTERVAL (".TB_PREF."payment_terms.day_in_following_month - 
-                               DAYOFMONTH(".TB_PREF."debtor_trans.tran_date)) DAY)) >= $PastDueDays2 THEN 
-                                       ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount 
-                       ELSE 
-                               0 
+                               INTERVAL 1 MONTH), INTERVAL (".TB_PREF."payment_terms.day_in_following_month -
+                               DAYOFMONTH(".TB_PREF."debtor_trans.tran_date)) DAY)) >= $PastDueDays2 THEN
+                                       ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount
+                       ELSE
+                               0
                        END
                ) AS Overdue2
 
-               FROM ".TB_PREF."debtors_master, 
-                       ".TB_PREF."payment_terms, 
-                       ".TB_PREF."debtor_trans, 
+               FROM ".TB_PREF."debtors_master,
+                       ".TB_PREF."payment_terms,
+                       ".TB_PREF."debtor_trans,
                        ".TB_PREF."sys_types
 
-               WHERE ".TB_PREF."sys_types.type_id = ".TB_PREF."debtor_trans.type 
-                       AND ".TB_PREF."debtors_master.payment_terms = ".TB_PREF."payment_terms.terms_indicator 
+               WHERE ".TB_PREF."sys_types.type_id = ".TB_PREF."debtor_trans.type
+                   AND ".TB_PREF."debtor_trans.type <> 13
+                       AND ".TB_PREF."debtors_master.payment_terms = ".TB_PREF."payment_terms.terms_indicator
                        AND ".TB_PREF."debtors_master.debtor_no = ".TB_PREF."debtor_trans.debtor_no
-                       AND ".TB_PREF."debtor_trans.debtor_no = $costomer_id 
-                       AND ".TB_PREF."debtor_trans.tran_date <= '$todate' 
+                       AND ".TB_PREF."debtor_trans.debtor_no = $costomer_id
+                       AND ".TB_PREF."debtor_trans.tran_date <= '$todate'
                        AND ABS(".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount) > 0.004
                        ORDER BY ".TB_PREF."debtor_trans.tran_date";
 
@@ -98,27 +99,26 @@ function get_invoices($costomer_id, $to)
 
 function print_aged_customer_analysis()
 {
-    global $path_to_root;
+    global $comp_path, $path_to_root;
 
     include_once($path_to_root . "reporting/includes/pdf_report.inc");
 
     $to = $_POST['PARAM_0'];
     $fromcust = $_POST['PARAM_1'];
-    $tocust = $_POST['PARAM_2'];
-    $currency = $_POST['PARAM_3'];
-       $summaryOnly = $_POST['PARAM_4'];
-    $graphics = $_POST['PARAM_5'];
-    $comments = $_POST['PARAM_6'];
+    $currency = $_POST['PARAM_2'];
+       $summaryOnly = $_POST['PARAM_3'];
+    $graphics = $_POST['PARAM_4'];
+    $comments = $_POST['PARAM_5'];
        if ($graphics)
        {
                include_once($path_to_root . "reporting/includes/class.graphic.inc");
                $pg = new graph();
-       }       
-    
-       if ($fromcust == null)
-               $fromcust = 0;
-       if ($tocust == null)
-               $tocust = 0;
+       }
+
+       if ($fromcust == reserved_words::get_all_numeric())
+               $from = _('All');
+       else
+               $from = get_customer_name($fromcust);
     $dec = user_price_dec();
 
        if ($summaryOnly == 1)
@@ -144,11 +144,10 @@ function print_aged_customer_analysis()
                _('Total Balance'));
 
        $aligns = array('left', 'left', 'left', 'right', 'right', 'right', 'right',     'right');
-    
-    $params =   array(         0 => $comments,   
+
+    $params =   array(         0 => $comments,
                                        1 => array('text' => _('End Date'), 'from' => $to, 'to' => ''),
-                                   2 => array('text' => _('Customer'), 'from' => get_customer_name($fromcust),
-                            'to' => get_customer_name($tocust)),
+                                   2 => array('text' => _('Customer'), 'from' => $from, 'to' => ''),
                                    3 => array('text' => _('Currency'), 'from' => $currency, 'to' => ''),
                        4 => array('text' => _('Type'),         'from' => $summary,'to' => ''));
 
@@ -160,14 +159,15 @@ function print_aged_customer_analysis()
     $rep->Info($params, $cols, $headers, $aligns);
     $rep->Header();
 
-       $total = array();
-       $total[0] = $total[1] = $total[2] = $total[3] = $total[4] = 0.0;
-       
-       $sql = "SELECT debtor_no, name, curr_code FROM ".TB_PREF."debtors_master
-               WHERE debtor_no>=$fromcust AND debtor_no<=$tocust ORDER BY name";
+       $total = array(0,0,0,0);
+
+       $sql = "SELECT debtor_no, name, curr_code FROM ".TB_PREF."debtors_master ";
+       if ($fromcust != reserved_words::get_all_numeric())
+               $sql .= "WHERE debtor_no=$fromcust ";
+       $sql .= "ORDER BY name";
        $result = db_query($sql, "The customers could not be retrieved");
-       
-       while ($myrow=db_fetch($result)) 
+
+       while ($myrow=db_fetch($result))
        {
                if (!$convert && $currency != $myrow['curr_code'])
                        continue;
@@ -182,7 +182,7 @@ function print_aged_customer_analysis()
                        $rate = 1.0;
                $rep->fontSize -= 2;
                $custrec = get_customer_details($myrow['debtor_no'], $to);
-               foreach ($custrec as $i => $value) 
+               foreach ($custrec as $i => $value)
                        $custrec[$i] *= $rate;
                $total[0] += ($custrec["Balance"] - $custrec["Due"]);
                $total[1] += ($custrec["Due"]-$custrec["Overdue1"]);
@@ -196,7 +196,7 @@ function print_aged_customer_analysis()
                        number_format2($custrec["Balance"],$dec));
                for ($i = 0; $i < count($str); $i++)
                        $rep->TextCol($i + 3, $i + 4, $str[$i]);
-               $rep->NewLine(1, 2);    
+               $rep->NewLine(1, 2);
                if (!$summaryOnly)
                {
                        $res = get_invoices($myrow['debtor_no'], $to);
@@ -209,7 +209,14 @@ function print_aged_customer_analysis()
                        $rep->TextCol(0, 1,     $trans['type_name'], -2);
                                $rep->TextCol(1, 2,     $trans['reference'], -2);
                                $rep->TextCol(2, 3, sql2date($trans['tran_date']), -2);
-                               foreach ($trans as $i => $value) 
+                               if ($trans['type'] == 11 || $trans['type'] == 12 || $trans['type'] == 2)
+                               {
+                                       $trans['Balance'] *= -1;
+                                       $trans['Due'] *= -1;
+                                       $trans['Overdue1'] *= -1;
+                                       $trans['Overdue2'] *= -1;
+                               }
+                               foreach ($trans as $i => $value)
                                        $trans[$i] *= $rate;
                                $str = array(number_format2(($trans["Balance"] - $trans["Due"]),$dec),
                                        number_format2(($trans["Due"]-$trans["Overdue1"]),$dec),
@@ -221,14 +228,14 @@ function print_aged_customer_analysis()
                        }
                        $rep->Line($rep->row - 8);
                        $rep->NewLine(2);
-               }       
+               }
        }
        if ($summaryOnly)
        {
        $rep->Line($rep->row  + 4);
        $rep->NewLine();
        }
-    $rep->fontSize += 2;
+       $rep->fontSize += 2;
        $rep->TextCol(0, 3, _('Grand Total'));
        $rep->fontSize -= 2;
        for ($i = 0; $i < count($total); $i++)
@@ -237,8 +244,8 @@ function print_aged_customer_analysis()
                if ($graphics && $i < count($total) - 1)
                {
                        $pg->y[$i] = abs($total[$i]);
-               }       
-       }       
+               }
+       }
        $rep->Line($rep->row - 8);
        if ($graphics)
        {
@@ -253,7 +260,7 @@ function print_aged_customer_analysis()
                $pg->built_in  = false;
                $pg->fontfile  = $path_to_root . "reporting/fonts/Vera.ttf";
                $pg->latin_notation = ($decseps[$_SESSION["wa_current_user"]->prefs->dec_sep()] != ".");
-               $filename = $path_to_root . "reporting/pdf_files/test.png";
+               $filename = $comp_path .'/'. user_company(). "/images/test.png";
                $pg->display($filename, true);
                $w = $pg->width / 1.5;
                $h = $pg->height / 1.5;