fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [8799] property: invoice handling - rollback on dupli


From: Sigurd Nes
Subject: [Fmsystem-commits] [8799] property: invoice handling - rollback on duplicates
Date: Tue, 07 Feb 2012 19:04:50 +0000

Revision: 8799
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=8799
Author:   sigurdne
Date:     2012-02-07 19:04:49 +0000 (Tue, 07 Feb 2012)
Log Message:
-----------
property: invoice handling - rollback on duplicates

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

Modified: trunk/property/inc/cron/default/Import_fra_basware_X205.php
===================================================================
--- trunk/property/inc/cron/default/Import_fra_basware_X205.php 2012-02-07 
07:35:50 UTC (rev 8798)
+++ trunk/property/inc/cron/default/Import_fra_basware_X205.php 2012-02-07 
19:04:49 UTC (rev 8799)
@@ -49,6 +49,8 @@
                var $default_kostra_id = 9999; //dummy
                var $debug = false;
                var $skip_import = false;
+               protected $export;
+               protected $receipt = array();
 
 
                function __construct()
@@ -65,6 +67,9 @@
                        $this->datetimeformat   = $this->db->datetime_format();
                        $this->config                   = 
CreateObject('admin.soconfig',$GLOBALS['phpgw']->locations->get_id('property', 
'.invoice'));
                        $this->send                             = 
CreateObject('phpgwapi.send');
+
+                       include (PHPGW_SERVER_ROOT . 
"/property/inc/export/{$GLOBALS['phpgw_info']['user']['domain']}/Basware_X114");
+                       $this->export           = new export_conv;
                }
 
                function pre_run($data = array())
@@ -119,9 +124,8 @@
 
                        
$GLOBALS['phpgw']->xslttpl->add_file(array('confirm_custom'));
 
+                       $msgbox_data = 
$GLOBALS['phpgw']->common->msgbox_data($this->receipt);
 
-                       $msgbox_data = 
$this->bocommon->msgbox_data($this->receipt);
-
                        $data = array
                        (
                                'msgbox_data'                   => 
$GLOBALS['phpgw']->common->msgbox($msgbox_data),
@@ -185,6 +189,7 @@
                                                $movefrom = 
"{$dirname}/{$_file}";
                                                $moveto = 
"{$dirname}/archive/{$_file}";
 
+                                               @unlink($moveto);//in case of 
duplicates
                                                $ok = @rename($movefrom, 
$moveto);
                                                if(!$ok) // Should never happen.
                                                {
@@ -204,7 +209,7 @@
                                $this->confirm($execute=false);
                        }
 
-                       $msgbox_data = 
$this->bocommon->msgbox_data($this->receipt);
+                       $msgbox_data = 
$GLOBALS['phpgw']->common->msgbox_data($this->receipt);
 
                        $insert_values= array
                        (
@@ -302,6 +307,10 @@
                                                                if(fclose($fp))
                                                                {
                                                                        echo 
"File remote: {$file_remote} was copied to local: $file_local<br/>";
+                                                                       if( 
ssh2_sftp_unlink ($sftp, "{$directory_remote}/archive/{$file_name}" ))
+                                                                       {
+                                                                               
echo "Deleted duplicate File remote: 
{$directory_remote}/archive/{$file_name}<br/>";                                 
                                   
+                                                                       }
                                                                        if( 
ssh2_sftp_rename ($sftp, $file_remote, 
"{$directory_remote}/archive/{$file_name}" ))
                                                                        {
                                                                                
echo "File remote: {$file_remote} was moved to remote: 
{$directory_remote}/archive/{$file_name}<br/>";
@@ -419,35 +428,42 @@
                                        }
 
                                        $duplicate = false;
-                                       $sql = "SELECT external_ref FROM 
fm_ecobilag WHERE external_ref = '{$_data['SCANNINGNO']}'";
+                                       $sql = "SELECT bilagsnr, external_ref 
FROM fm_ecobilag WHERE external_ref = '{$_data['SCANNINGNO']}'";
                                        
$this->db->query($sql,__LINE__,__FILE__);
                                        if($this->db->next_record())
                                        {
                                                $duplicate = true;
+                                               $bilagsnr = 
$this->db->f('bilagsnr');
+                                               $this->receipt['message'][] = 
array('msg' => "Ikke importert duplikat til arbeidsregister: 
{$_data['SCANNINGNO']}");
                                        }
 
-                                       $sql = "SELECT external_ref FROM 
fm_ecobilagoverf WHERE external_ref = '{$_data['SCANNINGNO']}'";
+                                       $sql = "SELECT bilagsnr, bilagsnr_ut 
FROM fm_ecobilagoverf WHERE external_ref = '{$_data['SCANNINGNO']}'";
                                        
$this->db->query($sql,__LINE__,__FILE__);
                                        if($this->db->next_record())
                                        {
                                                $duplicate = true;
+                                               $_bilagsnr_ut = 
$this->db->f('bilagsnr_ut');
+                                               $bilagsnr = 
$this->db->f('bilagsnr');
+                                               
$this->export->RullTilbake(false,false,$_bilagsnr_ut);
+                                               $this->receipt['message'][] = 
array('msg' => "Bilag rullet tilbake fra historikk : {$_bilagsnr_ut}");
+                                               unset($_bilagsnr_ut);
                                        }
-                                       
-                                       
-                                       if($duplicate)
-                                       {
-                                               $this->receipt['error'][] = 
array('msg' => "Ikke importert duplikat : {$_data['SCANNINGNO']}");
-                                               $this->skip_import = true;
-                                       }
-                                       
+
                                        $vendor_id = $_data['SUPPLIER.CODE'];
 
                                        $sql = 'SELECT id FROM fm_vendor WHERE 
id = ' . (int) $vendor_id;
                                        
$this->db->query($sql,__LINE__,__FILE__);
-                                       if(!$this->db->next_record())
+
+                                       
+                                       if(!$_data['SUPPLIER.CODE'])
                                        {
-                                               $this->receipt['error'][] = 
array('msg' => "Ikke gyldig leverandør id: {$_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' => "Ikke gyldig LeverandørId: {$_data['SUPPLIER.CODE']}, Faktura: 
{$_data['SCANNINGNO']}");
+                                               $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'] : '';
 
@@ -461,7 +477,7 @@
                                                                $rc = 
$this->send->msg('email', $to, 'Ikke gyldig leverandør ved import av faktura 
til Portico', $body, '', '', '','','','html');
                                                                if($rc)
                                                                {
-                                                                       
$this->receipt['error'][] = array('msg'=> "epost sendt til {$to}");             
                                        
+                                                                       
$this->receipt['message'][] = array('msg'=> "epost sendt til {$to}");           
                                        
                                                                }
                                                        }
                                                        catch 
(phpmailerException $e)
@@ -518,7 +534,7 @@
 
 //_debug_array($buffer);
 //_debug_array($this->receipt);
-
+//_debug_array($order_info['toarray']);
                        if(!$this->skip_import)
                        {
                                if(!$bilagsnr)
@@ -555,7 +571,15 @@
                                        }
                                }
 
-                               return $this->import_end_file($buffer);
+                               if(!$duplicate)
+                               {
+                                       return $this->import_end_file($buffer);
+                               }
+                               else
+                               {
+                                       $duplicate  = false;
+                                       return $bilagsnr;
+                               }
                        }
                        $this->skip_import = false;
                        return false;




reply via email to

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