fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [9229] property: invoice: handle partially approved v


From: Sigurd Nes
Subject: [Fmsystem-commits] [9229] property: invoice: handle partially approved vouchers ( transfer and list in selectbox)
Date: Sat, 28 Apr 2012 07:50:55 +0000

Revision: 9229
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=9229
Author:   sigurdne
Date:     2012-04-28 07:50:54 +0000 (Sat, 28 Apr 2012)
Log Message:
-----------
property: invoice: handle partially approved vouchers (transfer and list in 
selectbox)

Modified Paths:
--------------
    trunk/property/inc/class.soinvoice.inc.php
    trunk/property/inc/export/default/Basware_X114

Modified: trunk/property/inc/class.soinvoice.inc.php
===================================================================
--- trunk/property/inc/class.soinvoice.inc.php  2012-04-25 19:02:56 UTC (rev 
9228)
+++ trunk/property/inc/class.soinvoice.inc.php  2012-04-28 07:50:54 UTC (rev 
9229)
@@ -441,18 +441,18 @@
                        $invoice = array();
                        while ($this->db->next_record())
                        {
-                               $status_line = 'O';
+                               $status_line = 0;
                                if($this->db->f('budsjettsigndato'))
                                {
-                                       $status_line = 'C';
+                                       $status_line = 3;
                                }
                                else if($this->db->f('saksigndato'))
                                {
-                                       $status_line = 'B';
+                                       $status_line = 2;
                                }
                                else if($this->db->f('oppsynsigndato'))
                                {
-                                       $status_line = 'A';
+                                       $status_line = 1;
                                }
 
                                $invoice[] = array
@@ -2072,12 +2072,11 @@
                                $where = 'AND';
                        }
 
-                       $sql = "SELECT DISTINCT bilagsnr,bilagsnr_ut, org_name, 
currency, kreditnota, fm_ecoart.descr as type, sum(godkjentbelop) as 
godkjentbelop, oppsynsigndato, saksigndato,budsjettsigndato"
+                       $sql = "SELECT bilagsnr,bilagsnr_ut, org_name, 
currency, kreditnota, fm_ecoart.descr as type, godkjentbelop, oppsynsigndato, 
saksigndato,budsjettsigndato"
                        ." FROM fm_ecobilag"
                        ." {$this->join} fm_vendor ON fm_vendor.id = 
fm_ecobilag.spvend_code"
                        ." {$this->join} fm_ecoart ON fm_ecoart.id = 
fm_ecobilag.artid"
-                       ." $filtermethod $querymethod"
-                       ." GROUP BY bilagsnr,bilagsnr_ut, org_name, currency, 
kreditnota, fm_ecoart.descr, oppsynsigndato, saksigndato,budsjettsigndato";
+                       ." $filtermethod $querymethod";
 
                        $lang_voucer = lang('voucher id');
                        $lang_vendor = lang('vendor');
@@ -2091,38 +2090,64 @@
 
                        while($this->db->next_record())
                        {
-                               $status = 'O';
+                               $bilagsnr = $this->db->f('bilagsnr');
+
+                               $values[$bilagsnr]['bilagsnr_ut']               
= $this->db->f('bilagsnr_ut');
+                               $values[$bilagsnr]['org_name']                  
= $this->db->f('org_name');
+                               $values[$bilagsnr]['currency']                  
= $this->db->f('currency');
+                               $values[$bilagsnr]['kreditnota']                
= $this->db->f('kreditnota');
+                               $values[$bilagsnr]['type']                      
        = $this->db->f('type');
+
+                               if(isset($values[$bilagsnr]['godkjentbelop']))
+                               {
+                                       $values[$bilagsnr]['godkjentbelop'] += 
$this->db->f('godkjentbelop');
+                               }
+                               else
+                               {
+                                       $values[$bilagsnr]['godkjentbelop'] = 
$this->db->f('godkjentbelop');
+                               }
+
+                               $status = 0;
                                if($this->db->f('budsjettsigndato'))
                                {
-                                       $status = 'C';
+                                       $status = 3;
                                }
                                else if($this->db->f('saksigndato'))
                                {
-                                       $status = 'B';
+                                       $status = 2;
                                }
                                else if($this->db->f('oppsynsigndato'))
                                {
-                                       $status = 'A';
+                                       $status = 1;
                                }
                                
-                               $voucher_id = $this->db->f('bilagsnr_ut') ? 
$this->db->f('bilagsnr_ut') : $this->db->f('bilagsnr');
+                               $values[$bilagsnr]['status'][] = $status;
+                       }
+                       
+                       $voucers = array();
+                       foreach ($values as $bilagsnr => $entry)
+                       {
+                               $status = $entry['status'];
+                               sort($status);
+                               
+                               $voucher_id = $entry['bilagsnr_ut'] ? 
$entry['bilagsnr_ut'] : $bilagsnr;
                                $name = sprintf("{$lang_voucer}:% 8s | 
{$lang_vendor}:% 20s | {$lang_currency}:% 3s | {$lang_parked}: % 1s | 
{$lang_type}: % 12s | {$lang_approved_amount}: % 19s | Status: % 1s",
                                                        $voucher_id,
-                                                       
trim(strtoupper($this->db->f('org_name',true))),
-                                                       
$this->db->f('currency'),
-                                                       
$this->db->f('kreditnota') ? 'X' : '',
-                                                       $this->db->f('type'),
-                                                       
number_format($this->db->f('godkjentbelop'), 2, ',', ' '),
-                                                       $status
+                                                       
trim(strtoupper($entry['org_name'])),
+                                                       $entry['currency'],
+                                                       $entry['kreditnota'] ? 
'X' : '',
+                                                       $entry['type'],
+                                                       
number_format($entry['godkjentbelop'], 2, ',', ' '),
+                                                       $status[0]
                                                );
 
-                               $values[] = array
+                               $voucers[] = array
                                (
-                                       'id'    => $this->db->f('bilagsnr'),
+                                       'id'    => $bilagsnr,
                                        'name'  => $name
                                );
                        }
-                       return $values;
+
+                       return $voucers;
                }
-
        }

Modified: trunk/property/inc/export/default/Basware_X114
===================================================================
--- trunk/property/inc/export/default/Basware_X114      2012-04-25 19:02:56 UTC 
(rev 9228)
+++ trunk/property/inc/export/default/Basware_X114      2012-04-28 07:50:54 UTC 
(rev 9229)
@@ -106,11 +106,24 @@
                                $sql= "SELECT DISTINCT fm_ecobilag.bilagsnr 
FROM fm_ecobilag {$this->join} fm_ecobilag_sum_view ON fm_ecobilag.bilagsnr = 
fm_ecobilag_sum_view.bilagsnr WHERE  approved_amount = '0.00' OR ( 
budsjettsigndato IS NOT NULL AND (saksigndato IS NOT NULL OR oppsynsigndato IS 
NOT NULL) AND utbetalingsigndato IS NOT NULL ) ORDER BY bilagsnr ASC";
                        }
                        $this->db->query($sql,__LINE__,__FILE__);
-                       $vouchers = array();
+                       $vouchers_step1 = array();
                        while ($this->db->next_record())
                        {
-                               $vouchers[]     = $this->db->f('bilagsnr');
+                               $vouchers_step1[]       = 
$this->db->f('bilagsnr');
                        }
+
+                       //Filter out partially approved
+                       $vouchers = array();
+                       foreach($vouchers_step1 as $bilagsnr)
+                       {
+                               $sql = "SELECT bilagsnr FROM fm_ecobilag WHERE 
bilagsnr = {$bilagsnr} AND budsjettsigndato IS NULL";
+                               $this->db->query($sql,__LINE__,__FILE__);
+                               if( !$this->db->next_record() )
+                               {
+                                       $vouchers[] = $bilagsnr;
+                               }
+                       }
+
                        return $vouchers;
                }
 
@@ -285,7 +298,7 @@
                                        'budsjettansvarligid'   => 
$this->db->f('budsjettansvarligid'),
                                        'oppsynsigndato'                => 
$this->db->f('oppsynsigndato'),
                                        'saksigndato'                   => 
$this->db->f('saksigndato'),
-                                       'budsjettsigndato'              => 
$this->db->f('budsjettsigndato'),
+               //                      'budsjettsigndato'              => 
$this->db->f('budsjettsigndato'), // må anvises på nytt etter tilbakerulling
                                        'merknad'                               
=> $this->db->f('merknad',true),
                                        'line_text'                             
=> $this->db->f('line_text',true),
                                        'splitt'                                
=> $this->db->f('splitt'),




reply via email to

[Prev in Thread] Current Thread [Next in Thread]