fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [16253] more on integration


From: sigurdne
Subject: [Fmsystem-commits] [16253] more on integration
Date: Mon, 6 Feb 2017 07:04:33 -0500 (EST)

Revision: 16253
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=16253
Author:   sigurdne
Date:     2017-02-06 07:04:33 -0500 (Mon, 06 Feb 2017)
Log Message:
-----------
more on integration

Modified Paths:
--------------
    trunk/property/inc/cron/default/Import_fra_agresso_X205_BK.php
    trunk/property/inc/cron/default/Import_fra_agresso_X205_BK_vedlegg.php

Modified: trunk/property/inc/cron/default/Import_fra_agresso_X205_BK.php
===================================================================
--- trunk/property/inc/cron/default/Import_fra_agresso_X205_BK.php      
2017-02-06 08:55:40 UTC (rev 16252)
+++ trunk/property/inc/cron/default/Import_fra_agresso_X205_BK.php      
2017-02-06 12:04:33 UTC (rev 16253)
@@ -105,7 +105,10 @@
                                                continue;
                                        }
 
-                                       $file_list[] = 
(string)"{$dirname}/{$file}";
+                                       if(preg_match('/^X205/i', (string)$file 
))
+                                       {
+                                               $file_list[] = 
(string)"{$dirname}/{$file}";
+                                       }
                                }
                        }
 
@@ -352,7 +355,7 @@
                                        {
                                                foreach ($files as $file_name)
                                                {
-                                                       if (stripos($file_name, 
'Px205') === 0)
+                                                       
if(preg_match('/^X205/i', (string)$file_name ))
                                                        {
                                                //              
_debug_array($file_name);
                                                                $file_remote = 
"{$directory_remote}/{$file_name}";

Modified: trunk/property/inc/cron/default/Import_fra_agresso_X205_BK_vedlegg.php
===================================================================
--- trunk/property/inc/cron/default/Import_fra_agresso_X205_BK_vedlegg.php      
2017-02-06 08:55:40 UTC (rev 16252)
+++ trunk/property/inc/cron/default/Import_fra_agresso_X205_BK_vedlegg.php      
2017-02-06 12:04:33 UTC (rev 16253)
@@ -27,8 +27,7 @@
         * @version $Id: Import_fra_agresso_X205.php 14726 2016-02-11 20:07:07Z 
sigurdne $
         */
        /**
-        * Filteret benytter format X205 for integrasjon mellom Contempus 
Invoice og ClockWork Logistics.
-        * Formatet sender innskannede fakturaer fra Contempus til ClockWork - 
og Portico Estate
+        * 
         * @package property
         */
        include_class('property', 'cron_parent', 'inc/cron/');
@@ -35,16 +34,7 @@
 
        class Import_fra_agresso_X205_BK_vedlegg extends property_cron_parent
        {
-
-               protected $kildeid = 1;
-               protected $splitt = 0;
-               protected $invoice;
-               protected $default_kostra_id = 9999; //dummy
                protected $debug = false;
-               protected $skip_import = false;
-               protected $skip_email = false;
-               protected $export;
-               protected $skip_update_voucher_id = false;
 
                function __construct()
                {
@@ -54,34 +44,11 @@
                        $this->sub_location = lang('invoice');
                        $this->function_msg = 'Importer tillegsvedlegg til 
faktura fra Agresso';
 
-                       $this->invoice = CreateObject('property.soinvoice');
-                       $this->responsible = 
CreateObject('property.soresponsible');
-                       $this->bocommon = CreateObject('property.bocommon');
-
-                       $this->dateformat = $this->db->date_format();
-                       $this->datetimeformat = $this->db->datetime_format();
                        $this->config = CreateObject('admin.soconfig', 
$GLOBALS['phpgw']->locations->get_id('property', '.invoice'));
-                       $this->send = CreateObject('phpgwapi.send');
-
-                       $now = time() + 
(int)$GLOBALS['phpgw_info']['user']['preferences']['common']['tz_offset'] * 
3600;
-
-                       $now_hour = date('G', $now);
-                       $now_day = date('N', $now);
-
-                       if (($now_hour < 6 || $now_hour > 17) || $now_day > 5)
-                       {
-
-                               $this->skip_email = true;
-                       }
                }
 
                public function execute()
                {
-                       if 
(isset($this->config->config_data['import']['check_archive']) && 
$this->config->config_data['import']['check_archive'])
-                       {
-                               $this->check_archive();
-                       }
-
                        $this->get_files();
                        $dirname = 
$this->config->config_data['import']['local_path'];
                        // prevent path traversal
@@ -101,7 +68,10 @@
                                                continue;
                                        }
 
-                                       $file_list[] = 
(string)"{$dirname}/{$file}";
+                                       if(preg_match('/^Portico/i', 
(string)$file ))
+                                       {
+                                               $file_list[] = 
(string)"{$dirname}/{$file}";
+                                       }
                                }
                        }
 
@@ -109,13 +79,10 @@
                        {
                                foreach ($file_list as $file)
                                {
-                                       $this->skip_update_voucher_id = false;
-                                       $this->db->transaction_begin();
                                        $bilagsnr = $this->import($file);
                                        if ($this->debug)
                                        {
                                                _debug_array("Behandler fil: 
{$file}");
-                                               _debug_array("Bilagsnr: 
{$bilagsnr}");
                                        }
 
                                        if ($bilagsnr)
@@ -133,17 +100,12 @@
                                                $ok = @rename($movefrom, 
$moveto);
                                                if (!$ok) // Should never 
happen.
                                                {
-                                                       
$this->db->transaction_abort();
-                                                       
$this->receipt['error'][] = array('msg' => "Kunne ikke flytte importfil til 
arkiv, Bilag {$bilagsnr} er slettet");
+                                                       
$this->receipt['error'][] = array('msg' => "Kunne ikke flytte importfil {$file} 
til arkiv");
                                                }
-                                               else
-                                               {
-                                                       
$this->db->transaction_commit();
-                                               }
                                        }
                                        else
                                        {
-                                               $this->db->transaction_abort();
+                                               $this->receipt['error'][] = 
array('msg' => "Refererer ikke til et gyldig bilag: {$file}");
                                        }
                                }
                        }
@@ -154,58 +116,7 @@
 
                }
 
-               protected function check_archive()
-               {
-                       $dirname = 
$this->config->config_data['import']['local_path'];
 
-                       if (preg_match('/\./', $dirname) || !is_dir($dirname))
-                       {
-                               return array();
-                       }
-
-                       $archive = "{$dirname}/archive";
-                       $file_list = array();
-                       $dir = new DirectoryIterator($archive);
-                       if (is_object($dir))
-                       {
-                               foreach ($dir as $file)
-                               {
-                                       if ($file->isDot() || !$file->isFile() 
|| !$file->isReadable() || strcasecmp(end(explode(".", $file->getPathname())), 
'xml') != 0)
-                                       {
-                                               continue;
-                                       }
-
-                                       $file_list[] = (string)$file;
-                               }
-                       }
-
-                       foreach ($file_list as $file)
-                       {
-                               $file_parts = explode('_', basename($file, 
'.xml'));
-                               $external_voucher_id = $file_parts[2];
-
-                               $found_voucher = false;
-                               $sql = "SELECT bilagsnr FROM fm_ecobilag WHERE 
external_voucher_id = '{$external_voucher_id}'";
-                               $this->db->query($sql, __LINE__, __FILE__);
-                               if ($this->db->next_record())
-                               {
-                                       $found_voucher = true;
-                               }
-
-                               $sql = "SELECT bilagsnr FROM fm_ecobilagoverf 
WHERE external_voucher_id = '{$external_voucher_id}'";
-                               $this->db->query($sql, __LINE__, __FILE__);
-                               if ($this->db->next_record())
-                               {
-                                       $found_voucher = true;
-                               }
-
-                               if ($found_voucher)
-                               {
-                                       $this->receipt['message'][] = 
array('msg' => "Faktura funnet: {$external_voucher_id}");
-                               }
-                       }
-               }
-
                protected function get_files()
                {
                        $method = 
$this->config->config_data['common']['method'];
@@ -279,7 +190,7 @@
                                        {
                                                foreach ($files as $file_name)
                                                {
-                                                       if (stripos($file_name, 
'Px205') === 0)
+                                                       
if(preg_match('/^Portico/i', (string)$file_name ))
                                                        {
                                                //              
_debug_array($file_name);
                                                                $file_remote = 
"{$directory_remote}/{$file_name}";
@@ -342,7 +253,6 @@
 
                protected function import( $file )
                {
-                       $buffer = array();
                        $bilagsnr = false;
 
                        $xmlparse = CreateObject('property.XmlToArray');
@@ -353,12 +263,8 @@
 
                        if (isset($var_result['INVOICES']) && 
is_array($var_result['INVOICES']))
                        {
-                               $regtid = date($this->datetimeformat);
-
-                               $i = 0;
                                $_data = 
$var_result['INVOICES'][0]['INVOICE'][0]['INVOICEHEADER'][0];
 
-
                                if(!empty($_data['ATTACHMENT']))
                                {
                                        $attachment = 
base64_decode($_data['ATTACHMENT']);
@@ -390,112 +296,14 @@
                                        unlink($tmpfname);
                                }
 
-                               $_data['ARRIVAL']; // => 2009.05.28
-                               $_data['CLIENT.CODE']; // => 14
-                               $_data['EXCHANGERATE']; // => 1
-                               $_data['LOCALAMOUNT']; // => 312500
-                               $_data['LOCALVATAMOUNT']; // => 62500
-                               $_data['PAYAMOUNT']; // => 0
-                               $_data['POSTATUSUPDATED']; // => 0
-                               $_data['PURCHASEORDERSTATUS.CODE']; // => 
WaitForMatch
-                               $_data['SUPPLIER.BANKGIRO']; // => 70580621110
-                               $_data['VATAMOUNT']; // => 62500
-
-                               $bilagsnr_ut = isset($_data['VOUCHERID']) ? 
$_data['VOUCHERID'] : ''; // FIXME: innkommende bilagsnummer?
-
-                               $fakturanr = $_data['SUPPLIERREF'];
-                               $fakturadato = date($this->dateformat, 
strtotime(str_replace('.', '-', $_data['INVOICEDATE'])));
-                               $forfallsdato = date($this->dateformat, 
strtotime(str_replace('.', '-', $_data['MATURITY'])));
-                               $periode = '';
-                               $belop = $_data['AMOUNT'] / 100;
-
-                               if (!abs($belop) > 0)
-                               {
-                                       $this->receipt['message'][] = 
array('msg' => "Beløpet er 0 for Skanningreferanse: {$_data['SCANNINGNO']}, 
FakturaNr: {$fakturanr}, fil: {$file}");
-                                       $belop = (float)0.0001; // imported as 
0.00
-                               }
-
-                               if ($belop < 0)
-                               {
-                                       $buffer[$i]['artid'] = 2;
-                               }
-                               else
-                               {
-                                       $buffer[$i]['artid'] = 1;
-                               }
-
-                               $kidnr = $_data['KIDNO'];
-                               $_order_id = $_data['PURCHASEORDERNO'];
-                               $merknad = '';
-                               $line_text = '';
-                               $order_id = '';
-                               $buffer[$i]['project_id'] = '';
-
-                               $order_info = 
$this->get_order_info($_order_id); // henter default verdier selv om  
$_order_id ikke er gyldig.
-
-                               if (!$_order_id)
-                               {
-                                       $merknad = 'Mangler bestillingsnummer';
-                                       $this->receipt['error'][] = array('msg' 
=> $merknad);
-                               }
-                               else if (!ctype_digit($_order_id))
-                               {
-                                       $merknad = "bestillingsnummeret er på 
feil format: {$_order_id}";
-                                       $this->receipt['error'][] = array('msg' 
=> $merknad);
-                               }
-                               else if (!$order_info['order_exist'])
-                               {
-                                       $merknad = 'bestillingsnummeret ikke 
gyldig: ' . $_order_id;
-                                       $this->receipt['error'][] = array('msg' 
=> "{$merknad}, fil: {$file}");
-                               }
-                               else
-                               {
-                                       $buffer[$i]['project_id'] = 
$this->soXport->get_project($_order_id);
-                                       $order_id = $_order_id;
-                               }
-
-                               $buffer[$i]['external_voucher_id'] = 
$_data['KEY']; // => 1400050146
-                               $buffer[$i]['pmwrkord_code'] = $order_id;
-                               $buffer[$i]['fakturanr'] = $fakturanr;
-                               $buffer[$i]['periode'] = $periode;
-                               $buffer[$i]['forfallsdato'] = $forfallsdato;
-                               $buffer[$i]['fakturadato'] = $fakturadato;
-                               $buffer[$i]['belop'] = $belop;
-                               $buffer[$i]['currency'] = 
$_data['CURRENCY.CURRENCYID'];
-                               $buffer[$i]['godkjentbelop'] = $belop;
-
-                               $buffer[$i]['kidnr'] = $kidnr;
-                               $buffer[$i]['bilagsnr_ut'] = $bilagsnr_ut;
-                               $buffer[$i]['referanse'] = "ordre: {$order_id}";
-
-                               $buffer[$i]['dima'] = $order_info['dima'];
-                               $buffer[$i]['dimb'] = $order_info['dimb'];
-                               $buffer[$i]['dime'] = $order_info['dime'];
-                               $buffer[$i]['loc1'] = $order_info['loc1'];
-                               $buffer[$i]['line_text'] = $order_info['title'];
-
-                               $buffer[$i]['mvakode'] = $this->mvakode;
-
-                               if ($buffer[$i]['loc1'] && $this->auto_tax)
-                               {
-                                       $mvakode = 
$this->soXport->auto_tax($buffer[$i]['loc1']);
-
-                                       if ($mvakode)
-                                       {
-                                               $buffer[$i]['mvakode'] = 
$mvakode;
-                                       }
-                               }
-
                                $update_voucher = false;
                                $sql = "SELECT bilagsnr, bilagsnr_ut FROM 
fm_ecobilag WHERE external_voucher_id = '{$_data['KEY']}'";
                                $this->db->query($sql, __LINE__, __FILE__);
                                if ($this->db->next_record())
                                {
-                                       $this->skip_update_voucher_id = true;
                                        $update_voucher = true;
                                        $bilagsnr = $this->db->f('bilagsnr');
-                                       $buffer[$i]['bilagsnr'] = $bilagsnr;
-                                       $this->receipt['message'][] = 
array('msg' => "Oppdatert med nye data i arbeidsregister: {$_data['KEY']}");
+                                       $this->receipt['message'][] = 
array('msg' => "Oppdatert med nye filer, key: {$_data['KEY']}, bestilling: 
{$_data['PURCHASEORDERNO']}");
                                }
 
                                $sql = "SELECT bilagsnr FROM fm_ecobilagoverf 
WHERE external_voucher_id = '{$_data['KEY']}'";
@@ -502,472 +310,9 @@
                                $this->db->query($sql, __LINE__, __FILE__);
                                if ($this->db->next_record())
                                {
-                                       $this->skip_update_voucher_id = true;
-                                       $update_voucher = true;
-                                       $bilagsnr = $this->db->f('bilagsnr');
-
-                                       $buffer[$i]['bilagsnr'] = $bilagsnr;
-
-                                       $receipt = $this->rollback($bilagsnr);
-
-                                       if (isset($receipt['message']))
-                                       {
-                                               $this->receipt['message'][] = 
array('msg' => "Bilag rullet tilbake fra historikk : {$bilagsnr}");
-                                       }
-                                       else
-                                       {
-                                               $this->receipt['error'][] = 
array('msg' => "Bilag ikke rullet tilbake fra historikk : {$bilagsnr}, 
Skanningreferanse: {$_data['KEY']}, FakturaNr: {$fakturanr}");
-                                       }
+                                       $this->receipt['message'][] = 
array('msg' => "Oppdatert med nye filer, key: {$_data['KEY']}, bestilling: 
{$_data['PURCHASEORDERNO']}");
                                }
-
-                               $vendor_id = $_data['SUPPLIER.CODE'];
-
-                               $sql = 'SELECT id FROM fm_vendor WHERE id = ' . 
(int)$vendor_id;
-                               $this->db->query($sql, __LINE__, __FILE__);
-
-                               if (!$_data['SUPPLIER.CODE'])
-                               {
-                                       $this->receipt['error'][] = array('msg' 
=> "LeverandørId ikke angitt for faktura: {$_data['SCANNINGNO']}");
-                                       $this->skip_import = true;
-                               }
-                               else if (!$this->db->next_record())
-                               {
-                                       $this->receipt['error'][] = array('msg' 
=> "Importeres ikke: Ikke gyldig LeverandørId: {$_data['SUPPLIER.CODE']}, 
Skanningreferanse: {$_data['SCANNINGNO']}, FakturaNr: {$fakturanr}, fil: 
{$file}");
-                                       $this->skip_import = true;
-
-                                       $to = 
isset($this->config->config_data['import']['email_on_error']) && 
$this->config->config_data['import']['email_on_error'] ? 
$this->config->config_data['import']['email_on_error'] : '';
-
-                                       if ($to && !$this->skip_email)
-                                       {
-                                               $from = "Ikke 
svar<address@hidden>";
-                                               $body = "Ikke gyldig 
leverandør, id: {$_data['SUPPLIER.CODE']}</br>";
-                                               $body .= '<a href ="' . 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'property.uigeneric.edit',
-                                                               'appname' => 
'property', 'type' => 'vendor'), false, true) . '">Link til å legge inn ny 
leverandør</a>';
-
-                                               try
-                                               {
-                                                       $rc = 
$this->send->msg('email', $to, 'Ikke gyldig leverandør ved import av faktura 
til Portico', $body, '', '', '', $from, '', 'html');
-                                                       if ($rc)
-                                                       {
-                                                               
$this->receipt['message'][] = array('msg' => "epost sendt til {$to}");
-                                                       }
-                                               }
-                                               catch (phpmailerException $e)
-                                               {
-                                                       
$this->receipt['error'][] = array('msg' => $e->getMessage());
-                                               }
-                                       }
-                               }
-                               else if ($order_info['vendor_id'] != $vendor_id)
-                               {
-                                       $this->receipt['message'][] = 
array('msg' => 'Ikke samsvar med leverandør på bestilling og mottatt faktura');
-                               }
-
-                               if ($this->auto_tax)
-                               {
-                                       $buffer[$i]['mvakode'] = 
$this->soXport->tax_b_account_override($buffer[$i]['mvakode'], 
$order_info['spbudact_code']);
-                                       $buffer[$i]['mvakode'] = 
$this->soXport->tax_vendor_override($buffer[$i]['mvakode'], $vendor_id);
-                               }
-
-                               $buffer[$i]['kostra_id'] = 
$this->default_kostra_id;//$this->soXport->get_kostra_id($buffer[$i]['loc1']);
-
-                               $buffer[$i]['merknad'] = $merknad;
-                               $buffer[$i]['splitt'] = $this->splitt;
-                               $buffer[$i]['kildeid'] = $this->kildeid;
-                               $buffer[$i]['spbudact_code'] = 
$order_info['spbudact_code'];
-                               $buffer[$i]['typeid'] = 
isset($invoice_common['type']) && $invoice_common['type'] ? 
$invoice_common['type'] : 1;
-                               $buffer[$i]['regtid'] = $regtid;
-
-                               $buffer[$i]['spvend_code'] = $vendor_id;
-
-                               if (isset($order_info['janitor']) && 
$order_info['janitor'])
-                               {
-                                       $buffer[$i]['oppsynsmannid'] = 
$order_info['janitor'];
-                               }
-
-                               if (isset($order_info['supervisor']) && 
$order_info['supervisor'])
-                               {
-                                       $buffer[$i]['saksbehandlerid'] = 
$order_info['supervisor'];
-                               }
-
-                               if (isset($order_info['budget_responsible']) && 
$order_info['budget_responsible'])
-                               {
-                                       $buffer[$i]['budsjettansvarligid'] = 
$order_info['budget_responsible'];
-                               }
                        }
-
-//_debug_array($buffer);
-//_debug_array($this->receipt);
-//_debug_array($order_info['toarray']);
-                       if ($this->debug && $this->skip_import)
-                       {
-                               _debug_array("Skip import - file: {$file}");
-                       }
-
-                       if ($this->skip_import)
-                       {
-                               $this->skip_import = false;
-                               return false;
-                       }
-                       else
-                       {
-                               if ($update_voucher && $bilagsnr)
-                               {
-                                       $this->db->query("DELETE FROM 
fm_ecobilag WHERE external_voucher_id = '{$_data['KEY']}'", __LINE__, __FILE__);
-                               }
-
-                               if (!$bilagsnr)
-                               {
-                                       $bilagsnr = 
$this->invoice->next_bilagsnr();
-
-                                       foreach ($buffer as &$entry)
-                                       {
-                                               $entry['bilagsnr'] = $bilagsnr;
-                                       }
-                               }
-
-                               if ($order_info['toarray'] && 
(!$this->skip_email || !$this->debug))
-                               {
-
-                                       $from = "Ikke svar<address@hidden>";
-
-                                       $to = implode(';', 
$order_info['toarray']);
-
-                                       if 
(isset($GLOBALS['phpgw_info']['server']['smtp_server']) && 
$GLOBALS['phpgw_info']['server']['smtp_server'])
-                                       {
-                                               $subject = 'Ny faktura venter 
på behandling';
-                                               $body = '<a href ="' . 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'property.uiinvoice2.index',
-                                                               'voucher_id' => 
$bilagsnr, 'query' => $bilagsnr, 'user_lid' => 'all'), false, true) . '">Link 
til fakturabehandling</a>';
-
-                                               try
-                                               {
-                                                       $rc = 
$this->send->msg('email', $to, $subject, stripslashes($body), '', $cc, $bcc, 
$from, '', 'html');
-                                               }
-                                               catch (phpmailerException $e)
-                                               {
-                                                       
$this->receipt['error'][] = array('msg' => $e->getMessage());
-                                               }
-                                       }
-                                       else
-                                       {
-                                               $this->receipt['error'][] = 
array('msg' => lang('SMTP server is not set! (admin section)'));
-                                       }
-                               }
-
-                               $GLOBALS['phpgw']->db->Exception_On_Error = 
true;
-
-                               try
-                               {
-                                       $bilagsnr = 
$this->import_end_file($buffer);
-                                       
-                                       $received_amount = 
$this->get_total_received((int)$order_id);
-                                       $order_type = 
$this->bocommon->socommon->get_order_type($order_id);
-
-                                       switch ($order_type)
-                                       {
-                                               case 'workorder':
-                                                       $received = 
createObject('property.boworkorder')->receive_order( (int)$order_id, 
$received_amount );
-                                                       break;
-                                               case 'ticket':
-                                                       $received = 
createObject('property.botts')->receive_order( (int)$order_id, $received_amount 
);
-                                                       break;
-                                               default:
-                                                       throw new 
Exception('Order type not supported');
-                                       }
-
-                               }
-                               catch (Exception $e)
-                               {
-                                       if ($e)
-                                       {
-                                               
$GLOBALS['phpgw']->log->error(array(
-                                                       'text' => 
'import_fra_agresso_X205::import() : error when trying to execute 
import_end_file(): %1',
-                                                       'p1' => 
$e->getMessage(),
-                                                       'p2' => '',
-                                                       'line' => __LINE__,
-                                                       'file' => __FILE__
-                                               ));
-                                               $this->receipt['error'][] = 
array('msg' => $e->getMessage());
-                                       }
-                                       return false;
-                               }
-
-                               $GLOBALS['phpgw']->db->Exception_On_Error = 
false;
-                               return $bilagsnr;
-                       }
+                       return $bilagsnr;
                }
-
-               function get_total_received( $order_id )
-               {
-                       $amount = 0;
-                       $sql = "SELECT sum(godkjentbelop) AS amount FROM 
fm_ecobilag WHERE pmwrkord_code = {$order_id}";
-                       $this->db->query($sql, __LINE__, __FILE__);
-                       $this->db->next_record();
-                       $amount += (float)$this->db->f('amount');
-                       $sql = "SELECT sum(godkjentbelop) AS amount FROM 
fm_ecobilagoverf WHERE pmwrkord_code = {$order_id}";
-                       $this->db->query($sql, __LINE__, __FILE__);
-                       $this->db->next_record();
-                       $amount += (float)$this->db->f('amount');
-                       return $amount;
-               }
-
-               function get_order_info( $order_id = 0 )
-               {
-                       $order_id = (int)$order_id;
-
-                       $this->db->query("SELECT type FROM fm_orders WHERE id = 
$order_id", __LINE__, __FILE__);
-                       $this->db->next_record();
-                       $order_type = $this->db->f('type');
-
-                       $order_info = array();
-                       $toarray = array();
-
-                       switch ($order_type)
-                       {
-                               case 'ticket':
-                                       $sql = "SELECT 
fm_tts_tickets.location_code,"
-                                               . " fm_tts_tickets.vendor_id,"
-                                               . " fm_tts_tickets.b_account_id 
as account_id,"
-                                               . " fm_tts_tickets.ecodimb,"
-                                               . " fm_tts_tickets.cat_id as 
category,"
-                                               . " fm_tts_tickets.ordered_by 
as user_id,"
-                                               . " fm_tts_tickets.subject as 
title"
-                                               . " FROM fm_tts_tickets"
-                                               . " WHERE 
fm_tts_tickets.order_id = {$order_id}";
-
-                                       break;
-                               case 'workorder':
-                                       $sql = "SELECT 
fm_workorder.location_code,"
-                                               . " fm_workorder.vendor_id,"
-                                               . " fm_workorder.account_id,"
-                                               . " fm_project.ecodimb as 
project_ecodimb,"
-                                               . " fm_workorder.ecodimb,"
-                                               . " fm_workorder.category,"
-                                               . " fm_workorder.user_id,"
-                                               . " fm_workorder.title"
-                                               . " FROM fm_workorder 
{$this->join} fm_project ON fm_workorder.project_id = fm_project.id"
-                                               . " WHERE fm_workorder.id = 
{$order_id}";
-                                       break;
-
-                               default:
-                                       throw new Exception("{$order_type} not 
supported");
-                                       break;
-                       }
-                       
-                       $this->db->query($sql, __LINE__, __FILE__);
-                       if ($this->db->next_record())
-                       {
-                               $order_info['order_exist'] = true;
-                       }
-                       if ($this->db->f('location_code'))
-                       {
-                               $parts = explode('-', 
$this->db->f('location_code'));
-                               $order_info['dima'] = implode('', $parts);
-                               $order_info['loc1'] = $parts[0];
-                       }
-
-                       $order_info['vendor_id'] = $this->db->f('vendor_id');
-                       $order_info['spbudact_code'] = 
$this->db->f('account_id');
-                       $ecodimb = $this->db->f('ecodimb');
-                       $order_info['dimb'] = $ecodimb ? $ecodimb : 
$this->db->f('project_ecodimb');
-                       $order_info['dime'] = $this->db->f('category');
-                       $order_info['title'] = $this->db->f('title', true);
-
-                       $janitor_user_id = $this->db->f('user_id');
-                       $order_info['janitor'] = 
$GLOBALS['phpgw']->accounts->get($janitor_user_id)->lid;
-                       $supervisor_user_id = 
$this->invoice->get_default_dimb_role_user(2, $order_info['dimb']);
-                       if ($supervisor_user_id)
-                       {
-                               $order_info['supervisor'] = 
$GLOBALS['phpgw']->accounts->get($supervisor_user_id)->lid;
-                       }
-
-                       $budget_responsible_user_id = 
$this->invoice->get_default_dimb_role_user(3, $order_info['dimb']);
-                       if ($budget_responsible_user_id)
-                       {
-                               $order_info['budget_responsible'] = 
$GLOBALS['phpgw']->accounts->get($budget_responsible_user_id)->lid;
-                       }
-
-                       if (!$order_info['budget_responsible'])
-                       {
-                               $order_info['budget_responsible'] = 
isset($this->config->config_data['import']['budget_responsible']) && 
$this->config->config_data['import']['budget_responsible'] ? 
$this->config->config_data['import']['budget_responsible'] : 'karhal';
-                       }
-
-                       $order_info['toarray'] = $toarray;
-                       return $order_info;
-               }
-
-               function import_end_file( $buffer )
-               {
-                       try
-                       {
-                               $num = $this->soXport->add($buffer, 
$this->skip_update_voucher_id);
-                       }
-                       catch (Exception $e)
-                       {
-                               throw $e;
-                       }
-
-                       if ($this->debug)
-                       {
-                               _debug_array("import_end_file() ");
-                               echo 'buffer: ';
-                               _debug_array($buffer);
-                               _debug_array("num: {$num}");
-                       }
-
-                       if ($num > 0)
-                       {
-                               $this->receipt['message'][] = array('msg' => 
"Importert {$num} poster til bilag {$buffer[0]['bilagsnr']}, KEY: 
{$buffer[0]['external_voucher_id']}");
-                               return $buffer[0]['bilagsnr'];
-                       }
-                       return false;
-               }
-               /**
-                * rollback er initiert fra import-filteret
-                * @param integer $rollback_internal_voucher
-                * @return array Receipt
-                */
-               public function rollback( $rollback_internal_voucher )
-               {
-                       $voucher = 
$this->select_invoice_rollback($rollback_internal_voucher);
-
-                       if ($this->db->get_transaction())
-                       {
-                               $this->global_lock = true;
-                       }
-                       else
-                       {
-                               $this->global_lock = false;
-                               $this->db->transaction_begin();
-                       }
-
-                       foreach ($voucher as $line)
-                       {
-                               $this->bilag_update_overf($line);
-
-                               if ($line['pmwrkord_code'])
-                               {
-                                       
$orders_affected[$line['pmwrkord_code']] = true;
-
-                                       $Belop = sprintf("%01.2f", 
$line['ordrebelop']) * 100;
-
-                                       if ($line['dimd'] % 2 == 0)
-                                       {
-                                               $actual_cost_field = 
'act_mtrl_cost';
-                                       }
-                                       else
-                                       {
-                                               $actual_cost_field = 
'act_vendor_cost';
-                                       }
-
-                                       $operator = '-';
-
-                                       
$this->soXport->correct_actual_cost($line['pmwrkord_code'], $Belop, 
$actual_cost_field, $operator);
-                               }
-
-                               //Slett fra avviks tabell
-                               //      
$this->soXport->delete_avvik($line['bilagsnr']);
-                               //Slett fra arkiv
-                               
$this->soXport->delete_invoice($line['bilagsnr']);
-                       }
-
-                       $antall = count($voucher);
-                       if ($antall > 0)
-                       {
-                               if ( $rollback_internal_voucher)
-                               {
-                                       if (!$this->global_lock)
-                                       {
-                                               $this->db->transaction_commit();
-                                       }
-
-                                       $receipt['message'][] = array('msg' => 
$antall . ' ' . lang('bilag/underbilag rullet tilbake'));
-                               }
-                               else
-                               {
-                                       $this->db->transaction_abort();
-                                       $receipt['error'][] = array('msg' => 
'Noe gikk galt!');
-                               }
-                       }
-                       else
-                       {
-                               if (!$this->global_lock)
-                               {
-                                       $this->db->transaction_commit();
-                               }
-
-                               $receipt['error'][] = array('msg' => 
lang('Sorry - No hits'));
-                       }
-                       return $receipt;
-               }
-
-               protected function select_invoice_rollback( 
$rollback_internal_voucher )
-               {
-                       if ($rollback_internal_voucher)
-                       {
-                               $rollback_internal_voucher = 
(int)$rollback_internal_voucher;
-                               $sql = "SELECT * FROM fm_ecobilagoverf WHERE 
bilagsnr = {$rollback_internal_voucher} AND manual_record IS NULL";
-                       }
-                       else
-                       {
-                               return array();
-                       }
-                       $this->db->query($sql, __LINE__, __FILE__);
-
-                       $invoice_rollback = array();
-                       while ($this->db->next_record())
-                       {
-                               $invoice_rollback[] = array     (
-                                       'id' => $this->db->f('id'),
-                                       'bilagsnr' => $this->db->f('bilagsnr'),
-                                       'bilagsnr_ut' => 
$this->db->f('bilagsnr_ut'),
-                                       'kidnr' => $this->db->f('kidnr'),
-                                       'typeid' => $this->db->f('typeid'),
-                                       'kildeid' => $this->db->f('kildeid'),
-                                       'pmwrkord_code' => 
$this->db->f('pmwrkord_code'),
-                                       'belop' => $this->db->f('belop'),
-                                       'fakturadato' => 
$this->db->f('fakturadato'),
-                                       'periode' => $this->db->f('periode'),
-                                       'periodization' => 
$this->db->f('periodization'),
-                                       'periodization_start' => 
$this->db->f('periodization_start'),
-                                       'forfallsdato' => 
$this->db->f('forfallsdato'),
-                                       'fakturanr' => 
$this->db->f('fakturanr'),
-                                       'spbudact_code' => 
$this->db->f('spbudact_code'),
-                                       'regtid' => $this->db->f('regtid'),
-                                       'artid' => $this->db->f('artid'),
-                                       'godkjentbelop' => 
(int)$this->db->f('godkjentbelop') == 0 ? $this->db->f('belop') : 
$this->db->f('godkjentbelop'), //restore original amount
-                                       'spvend_code' => 
$this->db->f('spvend_code'),
-                                       'dima' => $this->db->f('dima'),
-                                       'loc1' => $this->db->f('loc1'),
-                                       'dimb' => $this->db->f('dimb'),
-                                       'mvakode' => $this->db->f('mvakode'),
-                                       'dimd' => $this->db->f('dimd'),
-                                       'dime' => $this->db->f('dime'),
-                                       'project_id' => 
$this->db->f('project_id'),
-                                       'kostra_id' => 
$this->db->f('kostra_id'),
-                                       'item_type' => 
$this->db->f('item_type'),
-                                       'item_id' => $this->db->f('item_id'),
-                                       'oppsynsmannid' => 
$this->db->f('oppsynsmannid'),
-                                       'saksbehandlerid' => 
$this->db->f('saksbehandlerid'),
-                                       'budsjettansvarligid' => 
$this->db->f('budsjettansvarligid'),
-                                       'oppsynsigndato' => 
$this->db->f('oppsynsigndato'),
-                                       'saksigndato' => 
$this->db->f('saksigndato'),
-               //                      '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'),
-                                       'ordrebelop' => 
$this->db->f('ordrebelop'),
-               //                      'utbetalingid'                  => 
$this->db->f('utbetalingid'),
-               //                      'utbetalingsigndato'    => 
$this->db->f('utbetalingsigndato'),
-                                       'external_ref' => 
$this->db->f('external_ref'),
-                                       'external_voucher_id' => 
$this->db->f('external_voucher_id'),
-                                       'currency' => $this->db->f('currency'),
-                                       'process_log' => 
$this->db->f('process_log', true),
-                                       'process_code' => 
$this->db->f('process_code'),
-                               );
-                       }
-
-                       return $invoice_rollback;
-               }
-
        }
\ No newline at end of file




reply via email to

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