[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [10613] property: new export for agresso
From: |
Sigurd Nes |
Subject: |
[Fmsystem-commits] [10613] property: new export for agresso |
Date: |
Wed, 19 Dec 2012 11:13:39 +0000 |
Revision: 10613
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=10613
Author: sigurdne
Date: 2012-12-19 11:13:39 +0000 (Wed, 19 Dec 2012)
Log Message:
-----------
property: new export for agresso
Modified Paths:
--------------
trunk/property/inc/export/default/Agresso
Modified: trunk/property/inc/export/default/Agresso
===================================================================
--- trunk/property/inc/export/default/Agresso 2012-12-19 07:54:58 UTC (rev
10612)
+++ trunk/property/inc/export/default/Agresso 2012-12-19 11:13:39 UTC (rev
10613)
@@ -3,7 +3,7 @@
* phpGroupWare - property: a Facilities Management System.
*
* @author Sigurd Nes <address@hidden>
- * @copyright Copyright (C) 2003,2004,2005,2006,2007 Free Software
Foundation, Inc. http://www.fsf.org/
+ * @copyright Copyright (C)
2003,2004,2005,2006,2007,2008,2009,2010,2011,2012 Free Software Foundation,
Inc. http://www.fsf.org/
* This file is part of phpGroupWare.
*
* phpGroupWare is free software; you can redistribute it and/or modify
@@ -35,21 +35,22 @@
class export_conv
{
//var $fil_katalog='c:/temp'; //On windows use
"//computername/share/filename" or "\\\\computername\share\filename" to check
files on network shares.
-
- var $old_files_deleted;
- var $debug;
+
+ protected $old_files_deleted;
+ protected $debug;
protected $orders_affected = array();
-
- function export_conv()
+ protected $db;
+ protected $db2;
+ protected $soXport;
+ protected $config;
+
+ function __construct()
{
- $GLOBALS['phpgw_info']['flags']['currentapp'] =
'property';
- $this->currentapp =
$GLOBALS['phpgw_info']['flags']['currentapp'];
- // $this->db =
$GLOBALS['phpgw']->db;
-
- $this->soXport =
CreateObject('property.soXport');
- $this->config =
CreateObject('admin.soconfig',$GLOBALS['phpgw']->locations->get_id('property',
'.invoice'));
- $this->bocommon =
CreateObject('property.bocommon');
- $this->db = $this->bocommon->new_db();
+ $this->db = & $GLOBALS['phpgw']->db;
+ $this->join = & $this->db->join;
+ $this->db2 = clone($this->db);
+ $this->soXport = CreateObject('property.soXport');
+ $this->config =
CreateObject('admin.soconfig',$GLOBALS['phpgw']->locations->get_id('property',
'.invoice'));
}
function
select_periods_with_invoice_to_transfer($pre_transfer='')
@@ -62,7 +63,7 @@
{
$sql= "SELECT DISTINCT periode from fm_ecobilag
WHERE budsjettsigndato is not null and (saksigndato is not null or
oppsynsigndato is not null) and utbetalingsigndato is not null";
}
-
+
$periode = array();
$this->db->query($sql,__LINE__,__FILE__);
while ($this->db->next_record())
@@ -172,10 +173,6 @@
$datepart_day =
"DAYOFMONTH(overftid)";
break;
case 'pgsql':
- $datepart_year =
"date_part('year',overftid)";
- $datepart_month =
"date_part('month',overftid)";
- $datepart_day =
"date_part('day',overftid)";
- break;
case 'postgres':
$datepart_year =
"date_part('year',overftid)";
$datepart_month =
"date_part('month',overftid)";
@@ -184,7 +181,7 @@
}
- $sql="select * from fm_ecobilagoverf where
filnavn='$Filnavn' and $datepart_year=$year and $datepart_month=$month and
$datepart_day= $day";
+ $sql = "SELECT * FROM fm_ecobilagoverf WHERE filnavn='$Filnavn'
and $datepart_year=$year and $datepart_month=$month and $datepart_day= $day";
$this->db->query($sql,__LINE__,__FILE__);
$i = 0;
@@ -245,7 +242,7 @@
$i++;
}
return $invoice_roleback;
- }
+ }
//rollback function
@@ -285,7 +282,7 @@
$BilagOverf['item_type'],
$BilagOverf['item_id'],
);
-
+
$values = $this->db->validate_insert($values);
$sql= "INSERT INTO fm_ecobilag
(project_id,kostra_id,pmwrkord_code,bilagsnr,splitt,kildeid,kidnr,typeid,"
@@ -323,17 +320,17 @@
foreach ($periodes as $periode)
{
- $receipt['message'][]= array('msg' =>
$this->OverforPeriode($batchid,$periode,$download,$pre_transfer));
+
$this->OverforPeriode($batchid,$periode,$download,$pre_transfer);
}
}
$pre_transfer=False;
-
+
$periodes =
$this->select_periods_with_invoice_to_transfer($pre_transfer);
foreach ($periodes as $periode)
{
- $receipt['message'][]= array('msg' =>
$this->OverforPeriode($batchid,$periode,$download,$pre_transfer,$force_period_year));
+
$this->OverforPeriode($batchid,$periode,$download,$pre_transfer,$force_period_year);
}
//Lagre melding
@@ -342,24 +339,34 @@
$this->log_end($batchid); //Lagre melding
}
+ if (!$download=='on')
+ {
+ $GLOBALS['phpgw_info']['flags']['noheader'] =
true;
+ $GLOBALS['phpgw_info']['flags']['nofooter'] =
true;
+ $GLOBALS['phpgw_info']['flags']['xslt_app'] =
false;
+ $GLOBALS['phpgw_info']['flags']['noframework']
= true;
+ echo ' <a
href="'.$GLOBALS['phpgw']->link('/index.php',array('menuaction'=>
'property.uiXport.export')) . '">' . lang('Back') . '</a></br>';
+ $GLOBALS['phpgw']->common->phpgw_exit();
+ }
+
return $receipt;
}
-
+
function errorhandler($batchid,$error_desr)
{
$this->db->transaction_abort();
$meld = $error_desr;
-
+
//Vis feilmelding
// echo $meld;
-
+
//Lagre feilmelding
$this->log_error($batchid,$error_desr);
}
-
+
function RullTilbake($Filnavn,$Dato)
- {
+ {
$dateformat =
strtolower($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat']);
$dateformat = str_replace(".","",$dateformat);
$dateformat = str_replace("-","",$dateformat);
@@ -367,7 +374,7 @@
$y=strpos($dateformat,'y');
$d=strpos($dateformat,'d');
$m=strpos($dateformat,'m');
-
+
$dateparts = explode('/', $Dato);
$day = $dateparts[$d];
$month = $dateparts[$m];
@@ -377,24 +384,24 @@
{
$Dato=$date1;
}
-
+
$Dato= date("M d Y",$Dato);
*/
-
+
$BilagOverf=$this->select_invoice_rollback($day,$month,$year,$Filnavn);
$this->db->transaction_begin();
for ($i=0;$i<count($BilagOverf);$i++)
{
$this->bilag_update_overf($BilagOverf[$i]);
-
-
+
+
if($BilagOverf[$i]['pmwrkord_code'])
{
$orders_affected[$BilagOverf[$i]['pmwrkord_code']] = true;
$Belop = sprintf("%01.2f",
$BilagOverf[$i]['ordrebelop'])*100;
-
+
if ($BilagOverf[$i]['dimd'] % 2 == 0)
{
$actual_cost_field='act_mtrl_cost';
@@ -403,25 +410,25 @@
{
$actual_cost_field='act_vendor_cost';
}
-
+
$operator='-';
$this->soXport->correct_actual_cost($BilagOverf[$i]['pmwrkord_code'],$Belop,$actual_cost_field,$operator);
}
-
+
//Slett fra avviks tabell
//
$this->soXport->delete_avvik($BilagOverf[$i]['bilagsnr']);
-
+
//Slett fra arkiv
$this->soXport->delete_invoice($BilagOverf[$i]['bilagsnr']);
-
+
$antall = $antall + 1;
}
-
+
if($antall > 0)
- {
- $fil_katalog =
$this->config->config_data['export']['path'];
-
+ {
+ $fil_katalog =
$this->config->config_data['export']['path'];
+
if(unlink ($fil_katalog. '/' . $Filnavn))
{
$this->db->transaction_commit();
@@ -432,7 +439,7 @@
{
$this->db->transaction_abort();
$receipt['message'][]= array('msg' =>
'Noe gikk galt!');
- }
+ }
}
else
{
@@ -440,14 +447,14 @@
}
return $receipt;
}
-
-
+
+
function LagFilnavn ($batchid,$pre_transfer='')
- {
+ {
if($pre_transfer)
{
$fil_katalog =
$this->config->config_data['export']['pre_path'];
-
+
// Slett gamle filer
if(!$this->old_files_deleted)
@@ -456,7 +463,7 @@
{
@unlink($fil_katalog . '/FDA_'
. $i. '.TXT');
}
-
+
$this->old_files_deleted= True;
}
@@ -465,13 +472,13 @@
do
{
$Filnavn = $fil_katalog . '/FDA_' . $i.
'.TXT';
-
+
//Sjekk om filen eksisterer
If (!file_exists($Filnavn))
{
return $Filnavn;
}
-
+
$i++;
}
while ($i < 13);
@@ -485,27 +492,167 @@
do
{
$Filnavn = $fil_katalog . '/FDB' .
date("dmy") . '_' . sprintf("%02s",$i) . '.TXT';
-
+
//Sjekk om filen eksisterer
If (!file_exists($Filnavn))
{
return $Filnavn;
}
-
+
$i++;
}
while ($continue);
}
-
-
+
+
//Ingen løpenr er ledige, gi feilmelding
return False;
}
-
+
+
+ private function
get_vouchers_to_transfer($periode,$pre_transfer=false)
+ {
+ if($pre_transfer)
+ {
+ $sql= "SELECT sum(belop) as belop, fakturanr,
bilagsnr FROM fm_ecobilag WHERE periode='{$periode}' AND utbetalingsigndato IS
NULL GROUP BY bilagsnr, fakturanr";
+ }
+ else
+ {
+ $sql="SELECT sum(belop) as belop, fakturanr,
bilagsnr FROM fm_ecobilag WHERE periode='{$periode}' AND budsjettsigndato IS
NOT NULL AND ( saksigndato IS NOT NULL OR oppsynsigndato IS NOT NULL ) AND
utbetalingsigndato IS NOT NULL group by bilagsnr, fakturanr";
+ }
+
+ $this->db->query($sql,__LINE__,__FILE__);
+
+ $values = array();
+ while ($this->db->next_record())
+ {
+ $values[] = array
+ (
+ 'belop' =>
$this->db->f('belop'),
+ 'bilagsnr' =>
$this->db->f('bilagsnr'),
+ 'fakturanr' =>
$this->db->f('fakturanr'),
+ );
+ }
+
+
+ foreach ($values as &$entry)
+ {
+ $sql= "SELECT fm_ecobilag.*,fm_ecouser.initials
as saksbehandler FROM fm_ecobilag {$this->join} fm_ecouser ON
fm_ecobilag.budsjettansvarligid=fm_ecouser.lid"
+ . " WHERE bilagsnr='{$entry['bilagsnr']}' AND
fakturanr = '{$entry['fakturanr']}'";
+
+ $this->db->query($sql,__LINE__,__FILE__);
+ $this->db->next_record();
+
+ $entry['id']
= $this->db->f('id');
+ $entry['kidnr']
= $this->db->f('kidnr');
+ $entry['typeid']
= $this->db->f('typeid');
+ $entry['kildeid']
= $this->db->f('kildeid');
+ $entry['pmwrkord_code'] =
$this->db->f('pmwrkord_code');
+ $entry['fakturadato'] =
$this->db->f('fakturadato');
+ $entry['periode']
= $this->db->f('periode');
+ $entry['forfallsdato'] =
$this->db->f('forfallsdato');
+ $entry['fakturanr']
= $this->db->f('fakturanr');
+ $entry['spbudact_code'] =
$this->db->f('spbudact_code');
+ $entry['regtid']
= $this->db->f('regtid');
+ $entry['artid']
= $this->db->f('artid');
+ $entry['godkjentbelop'] =
$entry['belop'];
+ $entry['spvend_code'] =
$this->db->f('spvend_code');
+ $entry['dima']
= $this->db->f('dima');
+ $entry['dimb']
= $this->db->f('dimb');
+ $entry['mvakode']
= $this->db->f('mvakode');
+ $entry['dimd']
= $this->db->f('dimd');
+ $entry['dime']
= $this->db->f('dime');
+ $entry['oppsynsmannid'] =
$this->db->f('oppsynsmannid');
+ $entry['saksbehandlerid'] =
$this->db->f('saksbehandlerid');
+ $entry['budsjettansvarligid'] =
$this->db->f('budsjettansvarligid');
+ $entry['oppsynsigndato'] =
$this->db->f('oppsynsigndato');
+ $entry['saksigndato'] =
$this->db->f('saksigndato');
+ $entry['budsjettsigndato'] =
$this->db->f('budsjettsigndato');
+ $entry['merknad']
= $this->db->f('merknad');
+ $entry['line_text']
= $this->db->f('line_text');
+ $entry['splitt']
= $this->db->f('splitt');
+ $entry['utbetalingid'] =
$this->db->f('utbetalingid');
+ $entry['utbetalingsigndato'] =
$this->db->f('utbetalingsigndato');
+ $entry['saksbehandler'] =
$this->db->f('saksbehandler');
+ $entry['invoice_line']
= $this->get_invoice($entry['bilagsnr'], $entry['fakturanr']);
+
+ }
+
+ return $values;
+ }
+
+
+ //Velg ut alle underbilag
+
+ private function get_invoice($bilagsnr, $fakturanr)
+ {
+ if(!$fakturanr)
+ {
+ throw new Exception('Mangler fakturanr');
+ }
+
+ $sql= "SELECT fm_ecobilag.*
,fm_part_of_town.district_id"
+ . " FROM (fm_location1 {$this->join} fm_part_of_town ON
fm_location1.part_of_town_id = fm_part_of_town.part_of_town_id)"
+ . " {$this->join} fm_ecobilag ON fm_location1.loc1 =
fm_ecobilag.loc1"
+ . " WHERE bilagsnr='$bilagsnr' AND fakturanr =
'{$fakturanr}'";
+
+ $this->db2->query($sql,__LINE__,__FILE__);
+
+ $values = array();
+ while ($this->db2->next_record())
+ {
+ $values[] = array
+ (
+ 'id'
=> $this->db2->f('id'),
+ 'bilagsnr'
=> $this->db2->f('bilagsnr'),
+ 'kidnr'
=> $this->db2->f('kidnr'),
+ 'typeid'
=> $this->db2->f('typeid'),
+ 'kildeid'
=> $this->db2->f('kildeid'),
+ 'pmwrkord_code' =>
$this->db2->f('pmwrkord_code'),
+ 'belop'
=> $this->db2->f('belop'),
+ 'fakturadato' =>
$this->db2->f('fakturadato'),
+ 'periode'
=> $this->db2->f('periode'),
+ 'forfallsdato' =>
$this->db2->f('forfallsdato'),
+ 'fakturanr'
=> $this->db2->f('fakturanr'),
+ 'spbudact_code' =>
$this->db2->f('spbudact_code'),
+ 'regtid'
=> $this->db2->f('regtid'),
+ 'artid'
=> $this->db2->f('artid'),
+ 'godkjentbelop' =>
$this->db2->f('godkjentbelop'),
+ 'spvend_code' =>
$this->db2->f('spvend_code'),
+ 'dima'
=> $this->db2->f('dima'),
+ 'loc1'
=> $this->db2->f('loc1'),
+ 'dimb'
=> $this->db2->f('dimb'),
+ 'mvakode'
=> $this->db2->f('mvakode'),
+ 'dimd'
=> $this->db2->f('dimd'),
+ 'dime'
=> $this->db2->f('dime'),
+ 'project_id' =>
$this->db2->f('project_id'),
+ 'kostra_id'
=> $this->db2->f('kostra_id'),
+ 'oppsynsmannid' =>
$this->db2->f('oppsynsmannid'),
+ 'saksbehandlerid' =>
$this->db2->f('saksbehandlerid'),
+ 'budsjettansvarligid' =>
$this->db2->f('budsjettansvarligid'),
+ 'oppsynsigndato' =>
$this->db2->f('oppsynsigndato'),
+ 'saksigndato' =>
$this->db2->f('saksigndato'),
+ 'budsjettsigndato' =>
$this->db2->f('budsjettsigndato'),
+ 'merknad'
=> $this->db2->f('merknad'),
+ 'line_text'
=> $this->db2->f('line_text'),
+ 'splitt'
=> $this->db2->f('splitt'),
+ 'utbetalingid' =>
$this->db2->f('utbetalingid'),
+ 'utbetalingsigndato' =>
$this->db2->f('utbetalingsigndato'),
+ 'district_id' =>
$this->db2->f('district_id'),
+ 'item_type'
=> $this->db2->f('item_type'),
+ 'item_id'
=> $this->db2->f('item_id')
+ );
+
+ }
+
+ return $values;
+ }
+
+
function
OverforPeriode($batchid,$periode,$download,$pre_transfer='',$force_period_year='')
{
$BilagId = 'NULL';
-
+
//Bestem filnavn
@@ -514,7 +661,8 @@
{
$message='LagFilnavn: Alle loepenr for filnavn
er i bruk';
$this->errorhandler($batchid,$message);
- return $message;
+ phpgwapi_cache::message_set($message, 'error');
+ return false;
}
//Test om filen kan opprettes og skrives til
@@ -524,32 +672,34 @@
}
else
{
- $message='kan ikke lagre til fil: '. $Filnavn
.'<br>';
- return $message;
+ phpgwapi_cache::message_set('kan ikke lagre til
fil: '. $Filnavn, 'error');
+ return false;
}
-
+
//Velg ut alle hoved bilag som skal overføres
$this->db->transaction_begin();
-
$oRsBilag=$this->soXport->hoved_bilag($periode,$pre_transfer);
-
- $bilag_count= count($oRsBilag);
- for ($k=0;$k<$bilag_count;$k++)
- {
- $tranfser_bilag[] = $oRsBilag[$k]['bilagsnr'];
-
+ $oRsBilag =
$this->get_vouchers_to_transfer($periode,$pre_transfer);
+
+ $buffer = '';
+
+ foreach($oRsBilag as $invoice)
+ {
+
+ $tranfser_bilag[] = $invoice['bilagsnr'];
+
//Bestem belops felt
- if ($oRsBilag[$k]['splitt']==0)
+ if ($invoice['splitt']==0)
{
//Bilaget er ikke splittet
- if ($oRsBilag[$k]['godkjentbelop'] <>
$oRsBilag[$k]['belop'])
+ if ($invoice['godkjentbelop'] <>
$invoice['belop'])
{
- $BelopFelt = 'godkjentbelop';
+ $BelopFelt = 'godkjentbelop';
//Logg til avviks tabell
if ($download=='on' &&
!$pre_transfer)
{
-//
$this->soXport->log_to_deviation_table($oRsBilag[$k]);
+//
$this->soXport->log_to_deviation_table($invoice);
}
}
else
@@ -557,9 +707,9 @@
$BelopFelt = 'belop';
}
}
-
+
//Bilaget er splittet
- if ($oRsBilag[$k]['godkjentbelop'] ==
$oRsBilag[$k]['belop'])
+ if ($invoice['godkjentbelop'] ==
$invoice['belop'])
{
$BelopFelt = 'godkjentbelop';
}
@@ -570,21 +720,21 @@
$this->errorhandler($batchid,$message);
return $message;
}
-
- $Belop_motpost =$oRsBilag[$k][$BelopFelt] *100;
+ $Belop_motpost =$invoice[$BelopFelt] *100;
+
//Skriv hovedbilag
$Buntnr =
sprintf("%-12s",basename($Filnavn,".TXT"));// verdi: MMDDFL, type: c12, plass:
1 - 12
$Forsystem = 'BI';// verdi: BI, type: c2,
plass: 13 - 14
-
+
$Transtype = 'GL';// verdi: GL, type: c2,
plass: 17 - 18
$Firmakode = sprintf("%-2s",'BB');//
verdi: Firmakode, type: c2, plass: 19 - 20
- $Valuteringsdato=
date(Ymd,strtotime($oRsBilag[$k]['fakturadato']));// verdi: Dato, type: date,
plass: 251 - 258
- $Bilagsdato =
date(Ymd,strtotime($oRsBilag[$k]['fakturadato'])) ;// verdi: Dato, type: date,
plass: 259 - 266
- $Bilagsnr =
sprintf("%-9s",substr($oRsBilag[$k]['bilagsnr'],-8));// verdi: Bilagsnummer,
type: i4, plass: 267 - 275
- // $_periode =
sprintf("%06s",date(Y,strtotime($oRsBilag[$k]['fakturadato'])) .
sprintf("%02d",$periode));// verdi: Periode, type: i4, plass: 276 - 281
+ $Valuteringsdato=
date(Ymd,strtotime($invoice['fakturadato']));// verdi: Dato, type: date, plass:
251 - 258
+ $Bilagsdato =
date(Ymd,strtotime($invoice['fakturadato'])) ;// verdi: Dato, type: date,
plass: 259 - 266
+ $Bilagsnr =
sprintf("%-9s",substr($invoice['bilagsnr'],-8));// verdi: Bilagsnummer, type:
i4, plass: 267 - 275
+ // $_periode =
sprintf("%06s",date(Y,strtotime($invoice['fakturadato'])) .
sprintf("%02d",$periode));// verdi: Periode, type: i4, plass: 276 - 281
$ESL = sprintf("%1s",'');// verdi:
Blank, type: i+C481, plass: 282 - 282
if($pre_transfer)
@@ -592,70 +742,60 @@
if(abs(date('m',time()) - $periode) >1)
{
$temp_period = date('m',time())
-1;
-
+
if($temp_period == 0)
{
$temp_period =1;
}
-
+
$temp_year = date('Y',time());
}
else
{
$temp_period = $periode;
- $temp_year =
date('Y',strtotime($oRsBilag[$k]['fakturadato']));
+ $temp_year =
date('Y',strtotime($invoice['fakturadato']));
}
$_periode =
sprintf("%06s",$temp_year . sprintf("%02d",$temp_period));// verdi: Periode,
type: i4, plass: 276 - 281
$Bilagsart =
sprintf("%2s",'FF');// verdi: , type: c2, plass: 15 - 16
- $Forfall = '20991231';// verdi:
Forfallsdato , type: date, plass: 298 - 305
+ $Forfall = '20991231';// verdi:
Forfallsdato , type: date, plass: 298 - 305
}
else
{
-/*
- if($force_period_year)
- {
- $_periode =
sprintf("%06s",$force_period_year . sprintf("%02d",$periode));// verdi:
Periode, type: i4, plass: 276 - 281
- }
- else
- {
- $_periode =
sprintf("%06s",date(Y,strtotime($oRsBilag[$k]['fakturadato'])) .
sprintf("%02d",$periode));// verdi: Periode, type: i4, plass: 276 - 281
- }
-*/
$_periode = $periode;
-
+
$Bilagsart =
sprintf("%2s",'FD');// verdi: , type: c2, plass: 15 - 16
- $Forfall =
date(Ymd,strtotime($oRsBilag[$k]['forfallsdato']));// verdi: Forfallsdato ,
type: date, plass: 298 - 305
+ $Forfall =
date(Ymd,strtotime($invoice['forfallsdato']));// verdi: Forfallsdato , type:
date, plass: 298 - 305
}
$Rab_forf = sprintf("%-8s",'');// verdi:
Blank, type: date, plass: 306 - 313
$Rabatt = sprintf("%020s",'');// verdi:
Blank, type: money, plass: 314 - 333
$Avt_Kon = sprintf("%-8s",'');// verdi:
Blank, type: c8, plass: 334 - 341
- $Kid =
sprintf("%-27s",$oRsBilag[$k]['kidnr']);// verdi: Kid, type: c27, plass: 351 -
377
+ $Kid =
sprintf("%-27s",$invoice['kidnr']);// verdi: Kid, type: c27, plass: 351 - 377
$Bet_overforing = sprintf("%-2s",'');// verdi:
Blank, type: c2, plass: 378 - 379
$Status = 'N';// verdi: N, type: c1,
plass: 380 - 380
$Resk_type = 'P';// verdi: Blank, type:
c1, plass: 381 - 381
- $Resk_nr =
sprintf("%-9s",$oRsBilag[$k]['spvend_code']);// verdi: Blank., type: i4, plass:
382 - 390
+ $Resk_nr =
sprintf("%-9s",$invoice['spvend_code']);// verdi: Blank., type: i4, plass: 382
- 390
$Forskudd = '0';// verdi: 0, type: i1,
plass: 391 - 391
$Fakturaref = '000000000';// verdi: 0,
type: i4, plass: 392 - 400
$Fakturaref = '000000000';// verdi: 0,
type: i4, plass: 401 - 409
$Inkassokode = sprintf("%-6s",'');// verdi:
Blank, type: c6, plass: 410 - 415
$Bet_mottager = sprintf("%-8s",'');// verdi:
Blank, type: c8, plass: 416 - 423
- $Att_ansvarlig =
sprintf("%-6s",utf8_decode($oRsBilag[$k]['saksbehandler']));// verdi: Blank,
type: c6, plass: 424 - 429
+ $Att_ansvarlig =
sprintf("%-6s",utf8_decode($invoice['saksbehandler']));// verdi: Blank, type:
c6, plass: 424 - 429
- $vendor_info =
$this->get_vendor_info($oRsBilag[$k]['spvend_code']);
-
+ $vendor_info =
$this->get_vendor_info($invoice['spvend_code']);
+
if(!$vendor_info['org_nr'])
{
- $message = 'mangler org_nr for
reskontronr: ' . $oRsBilag[$k]['spvend_code'];
+ $message = 'mangler org_nr for
reskontronr: ' . $invoice['spvend_code'];
$this->errorhandler($batchid,$message);
return $message;
}
if(!$vendor_info['konto_nr'])
{
- $message = 'mangler konto for
reskontronr: ' . $oRsBilag[$k]['spvend_code'];
+ $message = 'mangler konto for
reskontronr: ' . $invoice['spvend_code'];
$this->errorhandler($batchid,$message);
return $message;
}
@@ -671,20 +811,18 @@
$Val_dok = sprintf("%-3s",'');// verdi:
Blank, type: c3, plass: 817 - 819
+ $underbilag_count=
count($invoice['invoice_line']);
+ $last_record = $underbilag_count - 1;
+
//Velg ut alle underbilag
-
$oRsUnderbilag=$this->soXport->select_underbilag($oRsBilag[$k]['bilagsnr']);
+ foreach($invoice['invoice_line'] as $_key =>
$invoice_line)
+ {
+ $BilagId = $invoice_line['id'];
- $underbilag_count= count($oRsUnderbilag);
- $last_record = $underbilag_count - 1;
+ $Belop = $invoice_line[$BelopFelt]*100;
+ $Belop_ = $Belop;
- for ($i=0;$i<$underbilag_count;$i++)
- {
- $BilagId = $oRsUnderbilag[$i]['id'];
-
- $Belop =
$oRsUnderbilag[$i][$BelopFelt]*100;
- $Belop_ = $Belop;
-
if($Belop < 0)
{
$Belop = abs($Belop);
@@ -692,21 +830,21 @@
$Belop = '-' . $Belop;
}
else
- {
+ {
$Belop =
sprintf("%019s",$Belop);
$Belop = '+' . $Belop;
}
-
- if($oRsUnderbilag[$i]['pmwrkord_code'])
+
+ if($invoice_line['pmwrkord_code'])
{
-
+
$orders_affected[$BilagOverf[$i]['pmwrkord_code']] = true;
//Oppdater beløp på arbeidsordre
if ($download=='on' &&
!$pre_transfer)
{
- if
($oRsUnderbilag[$i]['dimd'] % 2 == 0)
+ if
($invoice_line['dimd'] % 2 == 0)
{
$actual_cost_field='act_mtrl_cost';
}
@@ -715,59 +853,56 @@
$actual_cost_field='act_vendor_cost';
}
$operator='+';
-
+
if(!$this->debug)
{
-
$this->soXport->correct_actual_cost($oRsUnderbilag[$i]['pmwrkord_code'],$Belop_,$actual_cost_field,$operator);
+
$this->soXport->correct_actual_cost($invoice_line['pmwrkord_code'],$Belop_,$actual_cost_field,$operator);
}
}
}
-
+
//Overfør til fm_ecobilagoverf
-
- $oRsOverfBilag=$oRsUnderbilag[$i];
- $oRsOverfBilag['filnavn']=
basename($Filnavn);
-
$oRsOverfBilag['ordrebelop']=$oRsUnderbilag[$i][$BelopFelt];
+ $invoice_line['filnavn']=
basename($Filnavn);
+
$invoice_line['ordrebelop']=$invoice_line[$BelopFelt];
+ //dersom det mangler budsjett konto -
kun aktuelt for ikke godkjent - sett konto til 2899999
- //dersom det mangler budsjett konto -
kun aktuelt for ikke godkjent - sett konto til 2899999
-
- if(!$oRsOverfBilag['spbudact_code'] &&
$pre_transfer)
+ if(!$invoice_line['spbudact_code'] &&
$pre_transfer)
{
- $oRsOverfBilag['spbudact_code']
= 12304361;
+ $invoice_line['spbudact_code']
= 12304361;
}
-
-
+
+
//dersom ikke gyldig objekt - kun
aktuelt for ikke godkjent - sett objekt til 9999
-
- if(!($oRsOverfBilag['kostra_id']>0) &&
$pre_transfer)
+
+ if(!($invoice_line['kostra_id']>0) &&
$pre_transfer)
{
- $oRsOverfBilag['kostra_id'] =
26550;
- $oRsOverfBilag['mvakode'] = 0;
- $oRsOverfBilag['dima'] = 9999;
+ $invoice_line['kostra_id'] =
26550;
+ $invoice_line['mvakode'] = 0;
+ $invoice_line['dima'] = 9999;
}
-
- $Konto =
sprintf("%08s",$oRsOverfBilag['spbudact_code']);// verdi: Art, type: c8, plass:
21 - 28
- $Dim_1 =
sprintf("%8s",$oRsOverfBilag['district_id']);// verdi: Ansvarssted, type: c8,
plass: 29 - 36
- $Dim_2 =
sprintf("%-8s",$oRsOverfBilag['kostra_id']);// verdi: Tjeneste, type: c8,
plass: 37 - 44
-
+
+ $Konto =
sprintf("%08s",$invoice_line['spbudact_code']);// verdi: Art, type: c8, plass:
21 - 28
+ $Dim_1 =
sprintf("%8s",$invoice_line['district_id']);// verdi: Ansvarssted, type: c8,
plass: 29 - 36
+ $Dim_2 =
sprintf("%-8s",$invoice_line['kostra_id']);// verdi: Tjeneste, type: c8, plass:
37 - 44
+
if($pre_transfer)
{
- $Dim_3 =
sprintf("%-8s",substr($oRsOverfBilag['dima'],0,4));// verdi: Objekt, type: c8,
plass: 45 - 52
+ $Dim_3 =
sprintf("%-8s",substr($invoice_line['dima'],0,4));// verdi: Objekt, type: c8,
plass: 45 - 52
}
else
{
- $Dim_3 =
sprintf("%-8s",substr($oRsOverfBilag['dima'],0,6));// verdi: Objekt-bygg, type:
c8, plass: 45 - 52
+ $Dim_3 =
sprintf("%-8s",substr($invoice_line['dima'],0,6));// verdi: Objekt-bygg, type:
c8, plass: 45 - 52
}
-
-
+
+
$Dim_4 = sprintf("%-8s",'');//
verdi: Ressurs, type: c8, plass: 53 - 60
- $Dim_5 =
sprintf("%-12s",$oRsOverfBilag['project_id']);// verdi: Prosjekt, type: c12,
plass: 61 - 72
- $Dim_6 =
sprintf("%-4s",$oRsOverfBilag['dimd']);// verdi: Blank, type: c4, plass: 73 - 76
+ $Dim_5 =
sprintf("%-12s",$invoice_line['project_id']);// verdi: Prosjekt, type: c12,
plass: 61 - 72
+ $Dim_6 =
sprintf("%-4s",$invoice_line['dimd']);// verdi: Blank, type: c4, plass: 73 - 76
$Dim_7 = sprintf("%-4s",'');//
verdi: Blank, type: c4, plass: 77 - 80
-
$Avgiftskode=sprintf("%-2s",$oRsOverfBilag['mvakode']);// verdi: Avgiftskode,
type: c2, plass: 81 - 82
-
+
$Avgiftskode=sprintf("%-2s",$invoice_line['mvakode']);// verdi: Avgiftskode,
type: c2, plass: 81 - 82
+
$Avgiftssystem = sprintf("%2s",'');//
verdi: Blank, type: c2, plass: 83 - 84
$Valutakode ='NOK';// verdi: NOK,
type: c3, plass: 85 - 87
$Debet_Kredit = sprintf("%2s",'');//
verdi: Blank, type: i2, plass: 88 - 89
@@ -781,28 +916,28 @@
$Belop4 =
sprintf("%20s",$batchid);// verdi: Blank, type: money, plass: 181 - 200 -
batch_id høyre justert
- if($oRsOverfBilag['pmwrkord_code'])
+ if($invoice_line['pmwrkord_code'])
{
- $Tekst =
sprintf("%-50s",substr(utf8_decode($this->get_order_title($oRsOverfBilag['pmwrkord_code'])),0,50));//sprintf("%-50s",substr($oRsOverfBilag['merknad'],0,50));//
verdi: Tekst, type: text (50), plass: 201 - 250
+ $Tekst =
sprintf("%-50s",substr(utf8_decode($this->get_order_title($invoice_line['pmwrkord_code'])),0,50));//sprintf("%-50s",substr($invoice_line['merknad'],0,50));//
verdi: Tekst, type: text (50), plass: 201 - 250
}
else
{
- $Tekst =
sprintf("%-50s",'');//sprintf("%-50s",substr($oRsOverfBilag['merknad'],0,50));//
verdi: Tekst, type: text (50), plass: 201 - 250
+ $Tekst =
sprintf("%-50s",'');//sprintf("%-50s",substr($invoice_line['merknad'],0,50));//
verdi: Tekst, type: text (50), plass: 201 - 250
}
-
- $Fakturanr =
sprintf("%-15s",substr(utf8_decode($oRsOverfBilag['fakturanr']), 0, 15));//
verdi: Fakturanr, type: c15, plass: 283 - 297
- $Ordrenummer =
sprintf("%-9s",$oRsOverfBilag['pmwrkord_code']);// verdi: Infodoc ordrenr,
type: i4, plass: 342 - 350
-
-
+ $Fakturanr =
sprintf("%-15s",substr(utf8_decode($invoice_line['fakturanr']), 0, 15));//
verdi: Fakturanr, type: c15, plass: 283 - 297
+
+ $Ordrenummer =
sprintf("%-9s",$invoice_line['pmwrkord_code']);// verdi: Infodoc ordrenr, type:
i4, plass: 342 - 350
+
+
//Kopier verdier
if ($download=='on' && !$pre_transfer
&& !$this->debug)
{
-
$this->soXport->add_OverfBilag($oRsOverfBilag);
+
$this->soXport->add_OverfBilag($invoice_line);
}
-
+
//Skriv til fil
-
+
$buffer .= $Buntnr . $Forsystem .
$Bilagsart . $Transtype . $Firmakode . $Konto . $Dim_1 . $Dim_2 . $Dim_3 .
$Dim_4 .
$Dim_5 . $Dim_6 . $Dim_7 . $Avgiftskode
. $Avgiftssystem . $Valutakode . $Debet_Kredit . $Valutabelop .
$Belop_i_firmavaluta . $Antall .
$Belop2 . $Belop3 . $Belop4 . $Tekst . $Valuteringsdato . $Bilagsdato .
@@ -811,7 +946,7 @@
$Inkassokode . $Bet_mottager .
$Att_ansvarlig . $Resk_navn . $Postadresse . $Stat_Provins . $Sted .
$Bank_Postgiro_kontonr . $Betalingsmate
. $Mva_reg_nr . $Postnummer . $Val_dok ."\r\n";
- if($i==$last_record)
+ if($_key==$last_record)
{
$Konto =
sprintf("%-8s",'2327010');// verdi: Art, type: c8, plass: 21 - 28
$Dim_1 =
sprintf("%-8s",'');// verdi: Ansvarssted, type: c8, plass: 29 - 36
@@ -821,9 +956,9 @@
$Dim_5 =
sprintf("%-12s",'');// verdi: Prosjekt, type: c12, plass: 61 - 72
$Dim_6 =
sprintf("%-4s",'');// verdi: Blank, type: c4, plass: 73 - 76
$Dim_7 =
sprintf("%-4s",'');// verdi: Blank, type: c4, plass: 77 - 80
- $Fakturanr =
sprintf("%-15s",'');// verdi: Fakturanr, type: c15, plass: 283 - 297
+ // $Fakturanr =
sprintf("%-15s",'');// verdi: Fakturanr, type: c15, plass: 283 - 297
$Ordrenummer =
sprintf("%-9s",'');// verdi: Infodoc ordrenr, type: i4, plass: 342 - 350
- $Tekst =
sprintf("%-50s",'');//sprintf("%-50s",substr($oRsOverfBilag['merknad'],0,50));//
verdi: Tekst, type: text (50), plass: 201 - 250
+ $Tekst =
sprintf("%-50s",'');//sprintf("%-50s",substr($invoice_line['merknad'],0,50));//
verdi: Tekst, type: text (50), plass: 201 - 250
if($Belop_motpost < 0)
{
@@ -836,7 +971,7 @@
$Belop_motpost = '-' .
$Belop_motpost;
}
-
+
$Transtype = 'AP';//
verdi: GL, type: c2, plass: 17 - 18
$Valutabelop =
$Belop_motpost;// verdi: Beløp, type: money, plass: 90 - 109
$Belop_i_firmavaluta=$Belop_motpost;// verdi: Beløp, type: money, plass: 110 -
129
@@ -847,31 +982,30 @@
$Bilagsnr . $_periode . $ESL .
$Fakturanr . $Forfall . $Rab_forf . $Rabatt . $Avt_Kon . $Ordrenummer .
$Kid . $Bet_overforing .
$Status . $Resk_type . $Resk_nr . $Forskudd . $Fakturaref . $Fakturaref .
$Inkassokode . $Bet_mottager .
$Att_ansvarlig . $Resk_navn . $Postadresse . $Stat_Provins . $Sted .
- $Bank_Postgiro_kontonr .
$Betalingsmate . $Mva_reg_nr . $Postnummer . $Val_dok ."\r\n";
+ $Bank_Postgiro_kontonr .
$Betalingsmate . $Mva_reg_nr . $Postnummer . $Val_dok ."\r\n";
}
-
+
//Slett post i fm_ecobilag
if ($download=='on' && !$pre_transfer
&& !$this->debug)
{
-
$this->soXport->delete_from_fm_ecobilag($oRsUnderbilag[$i]['id']);
- //Logg transaksjon
+
$this->soXport->delete_from_fm_ecobilag($invoice_line['id']);
+ //Logg transaksjon
$this->soXport->log_transaction($batchid,$BilagId,lang('Invoice transferred'));
}
-
+
$BilagId = 'NULL';
-
+
$antall = $antall + 1;
}
}
-
+
//Fullfør transaksjon
-
-
+
if ($download=='on' && !$pre_transfer && !$this->debug):
{
$fp = fopen($Filnavn, "wb");
fwrite($fp,$buffer);
-
+
if(fclose($fp))
{
$file_written=True;
@@ -895,7 +1029,7 @@
else
{
$this->db->transaction_abort();
- $message = 'Noe gikk galt med
overforing av godkjendte fakturaer!';
+ $message = 'Noe gikk galt med
overforing av godkjendte fakturaer!';
}
}
elseif($download=='on' && $pre_transfer &&
!$this->debug):
@@ -908,7 +1042,7 @@
{
$file_written=True;
}
-
+
if($file_written &&
$this->config->config_data['common']['method']!='ftp'):
{
$transfer_ok = True;
@@ -929,27 +1063,36 @@
else
{
$this->db->transaction_abort();
- $message = 'Noe gikk galt med
ankomstregistrering!';
+ $message = 'Noe gikk galt med
ankomstregistrering!';
}
}
else:
{
- $message = $buffer;
$this->db->transaction_abort();
+ _debug_array($Filnavn);
+ $fp = fopen($Filnavn, "wb");
+ fwrite($fp,$buffer);
+
+ if(fclose($fp))
+ {
+ $file_written=True;
+ }
+
+ echo "<pre>{$buffer}</pre>";
}
endif;
return $message;
}
-
+
function transfer($buffer,$Filnavn,$batchid,$tranfser_bilag)
- {
+ {
if($this->config->config_data['common']['method']=='ftp')
{
- $ftp = $this->phpftp_connect();
-
+ $ftp = $this->phpftp_connect();
+
$basedir =
$this->config->config_data['common']['remote_basedir'];
if($basedir)
{
@@ -963,7 +1106,7 @@
if (ftp_put($ftp,$newfile, $Filnavn,
FTP_BINARY))
{
for
($i=0;$i<count($tranfser_bilag);$i++)
- {
+ {
$this->soXport->log_transaction($batchid,$tranfser_bilag[$i],lang('Invoice
pre_transferred %1',basename($Filnavn)));
}
$transfer_ok = True;
@@ -971,7 +1114,7 @@
else
{
for
($i=0;$i<count($tranfser_bilag);$i++)
- {
+ {
$this->soXport->log_transaction($batchid,$tranfser_bilag[$i],lang('Failed to
pre_transfere %1 to agresso',basename($Filnavn)));
}
$transfer_ok = False;
@@ -980,7 +1123,7 @@
{
unlink($Filnavn);
}
-
+
ftp_quit($ftp);
}
return $transfer_ok;
@@ -991,7 +1134,7 @@
$host =
$this->config->config_data['common']['host'];
$user =
$this->config->config_data['common']['user'];
$password =
$this->config->config_data['common']['password'];
-
+
// echo "connecting to $host with $user and $pass\n <br>";
$ftp = ftp_connect($host);
if($ftp)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [10613] property: new export for agresso,
Sigurd Nes <=