[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [16253] more on integration,
sigurdne <=