[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] property/inc/export/Agresso, 1.1
From: |
nomail |
Subject: |
[Phpgroupware-cvs] property/inc/export/Agresso, 1.1 |
Date: |
Thu, 15 Jul 2004 14:03:25 +0200 |
Update of /property/inc/export
Added Files:
Branch:
Agresso
date: 2004/07/15 12:03:25; author: sigurdne; state: Exp;
Log Message:
no message
=====================================================================
<?php
class export_conv
{
//var $fil_katalog='c:/temp'; //On windows use
"//computername/share/filename" or "\\\\computername\share\filename" to check
files on network shares.
function export_conv()
{
$this->currentapp =
$GLOBALS['phpgw_info']['flags']['currentapp'];
$this->db = $GLOBALS['phpgw']->db;
$this->soXport = CreateObject('property.soXport');
$this->$config =
CreateObject('phpgwapi.config','property');
$this->$config->read_repository();
$this->bocommon =
CreateObject($this->currentapp.'.bocommon');
}
function
select_periods_with_invoice_to_transfer($pre_transfer='')
{
if($pre_transfer)
{
$sql= "SELECT DISTINCT periode from fm_ecobilag
WHERE pre_transfer IS NULL ";
}
else
{
$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 ";
}
$this->db->query($sql,__LINE__,__FILE__);
while ($this->db->next_record())
{
$periode[] = $this->db->f('periode');
}
return $periode;
}
function log_end($batchid)
{
$tid=date($this->soXport->datetimeformat);
$sql= "insert into fm_ecologg (batchid,melding,tid)
values ('$batchid','End transfer','$tid')";
$this->db->query($sql,__LINE__,__FILE__);
}
function log_error($batchid,$error_desr)
{
$tid=date($this->datetimeformat);
$sql= "insert into fm_ecologg
(batchid,ecobilagid,status,melding,tid) values
('$batchid',NULL,0,'$error_desr','$tid')";
$this->db->query($sql,__LINE__,__FILE__);
}
function increment_batchid()
{
$this->db->query("update fm_idgenerator set value =
value + 1 where name = 'Ecobatchid'");
$this->db->query("select value from fm_idgenerator
where name = 'Ecobatchid'");
$this->db->next_record();
$bilagsnr = $this->db->f('value');
return $bilagsnr;
}
function next_batchid()
{
$this->db->query("select value from fm_idgenerator
where name = 'Ecobatchid'");
$this->db->next_record();
$batchid = $this->db->f('value')+1;
return $batchid;
}
//Lagre start melding
function log_start($batchid)
{
$tid=date($this->soXport->datetimeformat);
$sql= "insert into fm_ecologg (batchid,melding,tid)
values ('$batchid','Start transfer','$tid')";
$this->db->query($sql,__LINE__,__FILE__);
}
function select_invoice_roleback($day,$month,$year,$Filnavn)
{
switch($GLOBALS['phpgw_info']['server']['db_type'])
{
case 'mssql':
$datepart_year =
"datepart(year,overftid)";
$datepart_month =
"datepart(month,overftid)";
$datepart_day =
"datepart(day,overftid)";
break;
case 'mysql':
$datepart_year =
"YEAR(overftid)";
$datepart_month =
"MONTH(overftid)";
$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;
}
$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;
while ($this->db->next_record())
{
$invoice_roleback[$i]['id'] =
$this->db->f('id');
$invoice_roleback[$i]['bilagsnr'] =
$this->db->f('bilagsnr');
$invoice_roleback[$i]['kidnr'] =
$this->db->f('kidnr');
$invoice_roleback[$i]['typeid'] =
$this->db->f('typeid');
$invoice_roleback[$i]['kildeid'] =
$this->db->f('kildeid');
$invoice_roleback[$i]['pmwrkord_code'] =
$this->db->f('pmwrkord_code');
$invoice_roleback[$i]['belop'] =
$this->db->f('belop');
$invoice_roleback[$i]['fakturadato'] =
$this->db->f('fakturadato');
$invoice_roleback[$i]['periode'] =
$this->db->f('periode');
$invoice_roleback[$i]['forfallsdato'] =
$this->db->f('forfallsdato');
$invoice_roleback[$i]['fakturanr'] =
$this->db->f('fakturanr');
$invoice_roleback[$i]['spbudact_code'] =
$this->db->f('spbudact_code');
$invoice_roleback[$i]['regtid'] =
$this->db->f('regtid');
$invoice_roleback[$i]['artid'] =
$this->db->f('artid');
$invoice_roleback[$i]['godkjentbelop'] =
$this->db->f('godkjentbelop');
$invoice_roleback[$i]['spvend_code'] =
$this->db->f('spvend_code');
$invoice_roleback[$i]['dima'] =
$this->db->f('dima');
$invoice_roleback[$i]['loc1'] =
$this->db->f('loc1');
$invoice_roleback[$i]['dimb'] =
$this->db->f('dimb');
$invoice_roleback[$i]['mvakode'] =
$this->db->f('mvakode');
$invoice_roleback[$i]['dimd'] =
$this->db->f('dimd');
if($this->db->f('oppsynsmannid'))
{
$invoice_roleback[$i]['oppsynsmannid']
= $this->db->f('oppsynsmannid');
}
if($this->db->f('saksbehandlerid'))
{
$invoice_roleback[$i]['saksbehandlerid'] =
$this->db->f('saksbehandlerid');
}
$invoice_roleback[$i]['budsjettansvarligid']
= $this->db->f('budsjettansvarligid');
if($this->db->f('oppsynsigndato'))
{
$invoice_roleback[$i]['oppsynsigndato']
= $this->db->f('oppsynsigndato');
}
if($this->db->f('saksigndato'))
{
$invoice_roleback[$i]['saksigndato']
= $this->db->f('saksigndato');
}
$invoice_roleback[$i]['budsjettsigndato']
= $this->db->f('budsjettsigndato');
$invoice_roleback[$i]['merknad'] =
$this->db->f('merknad');
$invoice_roleback[$i]['splitt'] =
$this->db->f('splitt');
$invoice_roleback[$i]['ordrebelop'] =
$this->db->f('ordrebelop');
$invoice_roleback[$i]['utbetalingid'] =
$this->db->f('utbetalingid');
$invoice_roleback[$i]['utbetalingsigndato']
= $this->db->f('utbetalingsigndato');
$i++;
}
return $invoice_roleback;
}
//roleback function
function bilag_update_overf($BilagOverf)
{
$values= array(
$BilagOverf['pmwrkord_code'],
$BilagOverf['bilagsnr'],
$BilagOverf['splitt'],
$BilagOverf['kildeid'],
$BilagOverf['kidnr'],
$BilagOverf[typeid],
$BilagOverf['fakturadato'],
$BilagOverf['forfallsdato'],
$BilagOverf['regtid'],
$BilagOverf['artid'],
$BilagOverf['spvend_code'],
$BilagOverf['dimb'],
$BilagOverf['oppsynsmannid'],
$BilagOverf['saksbehandlerid'],
$BilagOverf['budsjettansvarligid'],
$BilagOverf['fakturanr'],
$BilagOverf['spbudact_code'],
$BilagOverf['dima'],
$BilagOverf['loc1'],
$BilagOverf['dimd'],
$BilagOverf['mvakode'],
$BilagOverf['periode'],
$BilagOverf['merknad'],
$BilagOverf['utbetalingid'],
$BilagOverf['oppsynsigndato'],
$BilagOverf['saksigndato'],
$BilagOverf['budsjettsigndato'],
$BilagOverf['utbetalingsigndato'],
);
$values = $this->bocommon->validate_db_insert($values);
$sql= "INSERT INTO fm_ecobilag
(pmwrkord_code,bilagsnr,splitt,kildeid,kidnr,typeid,"
. "
fakturadato,forfallsdato,regtid,artid,spvend_code,dimb,oppsynsmannid,"
. "
saksbehandlerid,budsjettansvarligid,fakturanr,spbudact_code,dima,loc1,dimd,mvakode,"
. "
periode,merknad,utbetalingid,oppsynsigndato,saksigndato,budsjettsigndato,utbetalingsigndato,belop,godkjentbelop)"
. " values ($values,"
. $this->bocommon->moneyformat($BilagOverf['belop']) .
","
.
$this->bocommon->moneyformat($BilagOverf['godkjentbelop']) . ")";
$this->db->query($sql,__LINE__,__FILE__);
}
//Oppdater beløp på arbeidsordre operator="-" ved tilbakerulling
function
correct_actual_cost($pmwrkord_code,$Belop,$actual_cost_field,$operator)
{
$Belop=$Belop/100;
$sql="update fm_workorder set
$actual_cost_field=$actual_cost_field $operator $Belop where
id='$pmwrkord_code'";
$this->db->query($sql,__LINE__,__FILE__);
}
// Hent leverandørklasse
function select_vendor_class($spvend_code)
{
$sql= "select klasse from fm_vendor where
id=$spvend_code";
$this->db->query($sql,__LINE__,__FILE__);
$this->db->next_record();
$pmlabor_code = $this->db->f('klasse');
return $pmlabor_code;
}
function overfor($download,$pre_transfer='')
{
// $pre_transfer=True;
//Generer batch ID
$batchid = $this->soXport->next_batchid();
if ($download=='on')
{
$this->increment_batchid();
//Lagre melding
$this->log_start($batchid);
}
//Velg ut alle perioder som har bilag som skal overføres
$periode =
$this->select_periods_with_invoice_to_transfer($pre_transfer);
//_debug_array($periode);
for ($i=0;$i<count($periode);$i++)
{
$receipt['message'][]= array('msg' =>
$this->OverforPeriode($batchid,$periode[$i],$download,$pre_transfer));
}
//Lagre melding
if ($download=='on' || $pre_transfer)
{
$this->log_end($batchid); //Lagre melding
}
return $receipt;
}
function errorhandler($error_desr)
{
$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);
$dateformat = str_replace("/","",$dateformat);
$y=strpos($dateformat,'y');
$d=strpos($dateformat,'d');
$m=strpos($dateformat,'m');
$dateparts = explode('/', $Dato);
$day = $dateparts[$d];
$month = $dateparts[$m];
$year = $dateparts[$y];
/* $date1 = mktime (2,0,0,$month,$day,$year);
if ($date1)
{
$Dato=$date1;
}
$Dato= date("M d Y",$Dato);
*/
$BilagOverf=$this->select_invoice_roleback($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'])
{
if ($BilagOverf[$i]['artid']==1)
{
$Belop = sprintf("%01.2f",
$BilagOverf[$i]['ordrebelop'])*100;
}
else
{
$Belop = sprintf("%01.2f",
-$BilagOverf[$i]['ordrebelop'])*100;
}
if ($BilagOverf[$i]['dimd'] % 2 == 0)
{
$actual_cost_field='act_mtrl_cost';
}
else
{
$actual_cost_field='act_vendor_cost';
}
$operator='-';
$this->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'];
if(unlink ($fil_katalog. SEP . $Filnavn))
{
$this->db->transaction_commit();
$receipt['message'][]= array('msg' =>
$antall . ' ' . lang('bilag/underbilag rullet tilbake'));
$receipt['message'][]= array('msg' =>
lang('File %1 is deleted',$Filnavn));
}
else
{
$this->db->transaction_abort();
$receipt['message'][]= array('msg' =>
'Noe gikk galt!');
}
}
else
{
$receipt['error'][]= array('msg' => lang('Sorry
- None hits'));
}
return $receipt;
}
function LagFilnavn ($batchid,$pre_transfer='')
{
if(!$pre_transfer)
{
$fil_katalog =
$this->$config->config_data['export_path'];
//Beregn løpenr
$StartLopeNr = ($batchid % 30) + 70;
$LopeNr = $StartLopeNr;
do
{
//Konstruer filnavn
$Filnavn = $fil_katalog . '/DTF1'.
sprintf("%2d",$LopeNr) . '10.TXT';
//Sjekk om filen eksisterer
If (!file_exists($Filnavn))
{
return $Filnavn;
}
//Genererer nytt løpenr
$batchid = $batchid + 1;
$LopeNr = ($batchid % 30) + 70;
}
while ($LopeNr != $StartLopeNr);
}
else
{
$fil_katalog =
$this->$config->config_data['export_pre_path'];
$continue = True;
$i = 1;
do
{
$Filnavn = $fil_katalog . '/bbb_' .
date("dmY") . '_' . $i;
//Sjekk om filen eksisterer
If (!file_exists($Filnavn))
{
return $Filnavn;
}
$i++;
}
while ($continue);
}
//Ingen løpenr er ledige, gi feilmelding
return False;
}
function
OverforPeriode($batchid,$periode,$download,$pre_transfer='')
{
$BilagId = 'NULL';
//Bestem filnavn
$Filnavn = $this->LagFilnavn($batchid,$pre_transfer);
if (!$Filnavn)
{
$message='LagFilnavn'.lang('Alle løpenr for
filnavn er i bruk!');
$this->errorhandler($message);
return $message;
}
//Test om filen kan opprettes og skrives til
if (@fopen($Filnavn, "wb"))
{
unlink($Filnavn);
}
else
{
$message='kan ikke lagre til fil: '. $Filnavn
.'<br>';
return $message;
}
//Velg ut alle hoved bilag som skal overføres
$oRsBilag=$this->soXport->hoved_bilag($periode,$pre_transfer);
$this->db->transaction_begin();
$bilag_count= count($oRsBilag);
for ($k=0;$k<$bilag_count;$k++)
{
$pre_tranfser_bilag[] =
$oRsBilag[$k]['bilagsnr'];
//Hent leverandørklasse
$pmlabor_code
=$this->select_vendor_class($oRsBilag[$k]['spvend_code']);
//Bestem belops felt
if ($oRsBilag[$k]['splitt']==0)
{
//Bilaget er ikke splittet
if ($oRsBilag[$k]['godkjentbelop'] <>
$oRsBilag[$k]['belop'])
{
$BelopFelt = 'godkjentbelop';
//Logg til avviks tabell
if ($download=='on' &&
!$pre_transfer)
{
//
$this->soXport->log_to_deviation_table($oRsBilag[$k]);
}
}
else
{
$BelopFelt = 'belop';
}
}
//Bilaget er splittet
if ($oRsBilag[$k]['godkjentbelop'] ==
$oRsBilag[$k]['belop'])
{
$BelopFelt = 'godkjentbelop';
}
else
{
//Ikke lovlig
$message = lang('Avvik mellom
fakturabeløp og godkjent beløp på splittet faktura!');
$this->errorhandler($message);
return $message;
}
//Formater beløp
if ($oRsBilag[$k]['artid'] == 1)
{
$Belop = sprintf("%01.2f",
-$oRsBilag[$k][$BelopFelt]);
}
else
{
$Belop = sprintf("%01.2f",
$oRsBilag[$k][$BelopFelt]);
}
$Belop =$Belop *100;
//Skriv hovedbilag
$Buntnr =
sprintf("%-12s",date("md",time()) . 'P' .
substr($oRsBilag[$k]['bilagsnr'],-6));// verdi: MMDDFL, type: c12, plass: 1 - 12
$Forsystem = 'BI';// verdi: BI, type: c2,
plass: 13 - 14
$Bilagsart = sprintf("%2s",'');// verdi: ,
type: c2, plass: 15 - 16
$Transtype = 'AP';// verdi: GL, type: c2,
plass: 17 - 18
$Firmakode = sprintf("%-2s",'');// verdi:
Firmakode, type: c2, plass: 19 - 20
$Konto = sprintf("%-8s",'');// verdi:
Art, type: c8, plass: 21 - 28
$Dim_1 = sprintf("%-8s",'');// verdi:
Ansvarssted, type: c8, plass: 29 - 36
$Dim_2 = sprintf("%-8s",'');// verdi:
Tjeneste, type: c8, plass: 37 - 44
$Dim_3 = sprintf("%-8s",'');// verdi:
Objekt, type: c8, plass: 45 - 52
$Dim_4 = sprintf("%-8s",'');// verdi:
Ressurs, type: c8, plass: 53 - 60
$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
$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("%09s",substr($oRsBilag[$k]['bilagsnr'],-6));// 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
$ESL = sprintf("%1s",'');// verdi:
Blank, type: i+C481, plass: 282 - 282
$Forfall =
date(Ymd,strtotime($oRsBilag[$k]['forfallsdato']));// verdi: Forfallsdato ,
type: date, plass: 298 - 305
$Fakturanr =
sprintf("%-15s",$oRsBilag[$k]['fakturanr']);// verdi: Fakturanr, type: c15,
plass: 283 - 297
$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
$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("%09s",$oRsBilag[$k]['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",$oRsBilag[$k]['saksbehandler']);// verdi: Blank, type: c6,
plass: 424 - 429
$Resk_navn = sprintf("%-50s",'');// verdi:
Fødselsnr, type: c50, plass: 430 - 479
$Postadresse = sprintf("%-160s",'');//
verdi: Blank, type: c160, plass: 480 - 639
$Stat_Provins = sprintf("%-50s",'');// verdi:
Blank, type: c50, plass: 640 - 689
$Sted = sprintf("%-50s",'');// verdi:
Blank, type: c50, plass: 690 - 739
$Bank_Postgiro_kontonr = sprintf("%-35s",'');//
verdi: Blank, type: c35, plass: 740 - 774
$Betalingsmåte = sprintf("%-2s",'');// verdi:
Blank, type: c2, plass: 775 - 776
$Mva_reg_nr = sprintf("%-25s",'');// verdi:
Blank, type: c25, plass: 777 - 801
$Postnummer = sprintf("%-15s",'');// verdi:
Blank, type: c15, plass: 802 - 816
$Val_dok = sprintf("%-3s",'');// verdi:
Blank, type: c3, plass: 817 - 819
//Velg ut alle underbilag
$oRsUnderbilag=$this->soXport->select_underbilag($oRsBilag[$k]['bilagsnr']);
$underbilag_count= count($oRsUnderbilag);
for ($i=0;$i<$underbilag_count;$i++)
{
$BilagId = $oRsUnderbilag[$i]['id'];
$Belop = sprintf("%01.2f",
$oRsUnderbilag[$i][$BelopFelt])*100;
$Belop = sprintf("%019s",$Belop);
if ($oRsUnderbilag[$i]['artid'] == 1)
{
$Belop = '+' . $Belop;
}
else
{
$Belop = '-' . $Belop;
}
if($oRsUnderbilag[$i]['pmwrkord_code'])
{
//Hent DIM C
$dimc =
$this->soXport->select_dimc($oRsUnderbilag[$i]['pmwrkord_code']);
//Oppdater beløp på arbeidsordre
if ($download=='on')
{
if
($oRsUnderbilag[$i]['dimd'] % 2 == 0)
{
$actual_cost_field='act_mtrl_cost';
}
else
{
$actual_cost_field='act_vendor_cost';
}
$operator='+';
$this->correct_actual_cost($oRsUnderbilag[$i]['pmwrkord_code'],$Belop,$actual_cost_field,$operator);
}
}
else
{
$dimc = '';
}
//Overfør til fm_ecobilagoverf
$oRsOverfBilag=$oRsUnderbilag[$i];
$oRsOverfBilag['filnavn']=
basename($Filnavn);
$oRsOverfBilag['ordrebelop']=$oRsUnderbilag[$i][$BelopFelt];
$oRsOverfBilag['dima']=substr($oRsOverfBilag['dima'],0,6);
$Avgiftskode=sprintf("%-2s",$oRsOverfBilag['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
$Valutabelop = $Belop;// verdi:
Beløp, type: money, plass: 90 - 109
$Belop_i_firmavaluta=$Belop;// verdi:
Beløp, type: money, plass: 110 - 129
$Antall = sprintf("%11s",'');//
verdi: Blank, type: i4, plass: 130 - 140
$Belop2 = sprintf("%20s",'');//
verdi: Blank, type: f8, plass: 141 - 160
$Belop3 = sprintf("%20s",'');//
verdi: Blank, type: money, plass: 161 - 180
$Belop4 = sprintf("%20s",'');//
verdi: Blank, type: money, plass: 181 - 200
$Tekst =
sprintf("%-50s",substr($oRsOverfBilag['merknad'],0,50));// verdi: Tekst, type:
text (50), plass: 201 - 250
$Ordrenummer =
sprintf("%09s",$oRsOverfBilag['pmwrkord_code']);// verdi: Infodoc ordrenr,
type: i4, plass: 342 - 350
//Kopier verdier
if ($download=='on' && !$pre_transfer)
{
$this->soXport->add_OverfBilag($oRsOverfBilag);
}
if ($download=='on' && $pre_transfer)
{
$this->db->query("update
fm_ecobilag set pre_transfer = 1 where id =" . $oRsOverfBilag['id']);
}
//Skriv til fil
/* $f1kto =
$oRsOverfBilag['spbudact_code'];
$f1dima =
substr($oRsOverfBilag['dima'],0,6);
$f1dimb =
$oRsOverfBilag['dimb'];
$f1dimc = $dimc;
$f1dimd =
$oRsOverfBilag['dimd'];
$f1avgkod =
$oRsOverfBilag['mvakode'];
$f1belop = $Belop;
$f1tekst =
'';//$oRsOverfBilag['merknad'];
*/
$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 .
$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 . $Betalingsmåte
. $Mva_reg_nr . $Postnummer . $Val_dok ."\r\n";
//Slett post i fm_ecobilag
if ($download=='on' && !$pre_transfer)
{
$this->soXport->delete_from_fm_ecobilag($oRsUnderbilag[$i]['id']);
//Logg transaksjon
$this->soXport->log_transaction($batchid,$BilagId,lang('Invoice tranferred'));
}
$BilagId = 'NULL';
$antall = $antall + 1;
}
}
//Fullfør transaksjon
if ($download=='on' && !$pre_transfer):
{
$message = 'periode: '.$periode_aar.' antall
bilag/underbilag overført:'.$antall . ' , fil: ' . $Filnavn;
$fp = fopen($Filnavn, "wb");
fwrite($fp,$buffer);
if(fclose($fp))
{
$this->db->transaction_commit();
}
else
{
$this->db->transaction_abort();
$message = 'Noe gikk galt!';
}
}
elseif($download=='on' && $pre_transfer):
{
//filoverføring
$pre_transfer_ok =
$this->pre_transfer($buffer,$Filnavn,$batchid,$pre_tranfser_bilag);
if($pre_transfer_ok)
{
$this->db->transaction_commit();
$message = 'Jepp!';
}
else
{
$this->db->transaction_abort();
$message = 'Noe gikk galt!';
}
}
else:
{
$this->db->transaction_abort();
$message = $buffer;
}
endif;
return $message;
}
function
pre_transfer($buffer,$Filnavn,$batchid,$pre_tranfser_bilag)
{
$fp = fopen($Filnavn, "wb");
fwrite($fp,$buffer);
if(fclose($fp))
{
$pre_transfer_ok = True;
}
//_debug_array($pre_tranfser_bilag);
if($this->$config->config_data['invoice_export_method']=='ftp')
{
$ftp = $this->phpftp_connect();
$basedir =
$this->$config->config_data['invoice_ftp_basedir'];
$newfile = $basedir . '/' . basename($Filnavn);
//_debug_array($newfile);
if (ftp_put($ftp,$newfile, $Filnavn,
FTP_BINARY))
{
for
($i=0;$i<count($pre_tranfser_bilag);$i++)
{
$this->soXport->log_transaction($batchid,$pre_tranfser_bilag[$i],lang('Invoice
pre_transferred %1',basename($Filnavn)));
}
$pre_transfer_ok = True;
}
else
{
for
($i=0;$i<count($pre_tranfser_bilag);$i++)
{
$this->soXport->log_transaction($batchid,$pre_tranfser_bilag[$i],lang('Failed
to pre_transfere %1 to agresso',basename($Filnavn)));
}
$pre_transfer_ok = False;
}
if(!$pre_transfer_ok)
{
unlink($Filnavn);
}
ftp_quit($ftp);
}
return $pre_transfer_ok;
}
function phpftp_connect()
{
$host = $this->$config->config_data['invoice_ftp_host'];
$user = $this->$config->config_data['invoice_ftp_user'];
$pass = $this->$config->config_data['invoice_ftp_pw'];
// echo "connecting to $host with $user and $pass\n <br>";
$ftp = ftp_connect($host);
if($ftp)
{
if (ftp_login($ftp,$user,$pass))
{
return $ftp;
}
}
}
}
?>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] property/inc/export/Agresso, 1.1,
nomail <=