Moving 2.0 development version to main trunk.
[fa-stable.git] / reporting / rep102.php
index ffe022f81930f8dc4a158e1cfe927acea859eec0..41d6379f85ce709c77d9c868bf8ba60136b799ac 100644 (file)
@@ -26,71 +26,31 @@ 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, 
-               (".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 
-                       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)) >= 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 
-                       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 
-                       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 
-                       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 
-                       END
-               ) AS Overdue2
-
-               FROM ".TB_PREF."debtors_master, 
-                       ".TB_PREF."payment_terms, 
-                       ".TB_PREF."debtor_trans, 
+    $value = "(".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + "
+               .TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_freight_tax + "
+               .TB_PREF."debtor_trans.ov_discount)";
+       $due = "IF (".TB_PREF."debtor_trans.type=10,".TB_PREF."debtor_trans.due_date,".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,
+               $value as Balance,
+               IF ((TO_DAYS('$todate') - TO_DAYS($due)) >= 0,$value,0) AS Due,
+               IF ((TO_DAYS('$todate') - TO_DAYS($due)) >= $PastDueDays1,$value,0) AS Overdue1,
+               IF ((TO_DAYS('$todate') - TO_DAYS($due)) >= $PastDueDays2,$value,0) AS Overdue2
+
+               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 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
+                       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_freight_tax + ".TB_PREF."debtor_trans.ov_discount) > 0.004
                        ORDER BY ".TB_PREF."debtor_trans.tran_date";
 
-
        return db_query($sql, "The customer details could not be retrieved");
 }
 
@@ -98,7 +58,7 @@ 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");
 
@@ -112,8 +72,8 @@ function print_aged_customer_analysis()
        {
                include_once($path_to_root . "reporting/includes/class.graphic.inc");
                $pg = new graph();
-       }       
-    
+       }
+
        if ($fromcust == reserved_words::get_all_numeric())
                $from = _('All');
        else
@@ -143,8 +103,8 @@ 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' => $from, 'to' => ''),
                                    3 => array('text' => _('Currency'), 'from' => $currency, 'to' => ''),
@@ -158,16 +118,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;
-       
+       $total = array(0,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 +141,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 +155,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 +168,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 +187,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 +203,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 +219,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;