[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] CVS: property/inc/export Ecolink,NONE,1.1
From: |
Sigurd Nes <address@hidden> |
Subject: |
[Phpgroupware-cvs] CVS: property/inc/export Ecolink,NONE,1.1 |
Date: |
Wed, 23 Oct 2002 14:44:59 -0400 |
Update of /cvsroot/phpgroupware/property/inc/export
In directory subversions:/tmp/cvs-serv25059
Added Files:
Ecolink
Log Message:
no message
--- NEW FILE ---
<?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->soXport = CreateObject('property.soXport');
// $this->invoice = CreateObject('property.invoice');
$this->$config =
CreateObject('phpgwapi.config','property');
$this->$config->read_repository();
}
function overfor($download)
{
//Generer batch ID
$batchid = $this->soXport->next_batchid();
if ($download=='on')
{
$this->soXport->increment_batchid;
//Lagre melding
$this->soXport->log_start($batchid);
}
//Velg ut alle perioder som har bilag som skal overføres
$periode =
$this->soXport->select_periods_with_invoice_to_transfer();
for ($i=0;$i<count($periode);$i++)
{
$message .=
$this->OverforPeriode($batchid,$periode[$i],$download);
}
//Lagre melding
if ($download=='on')
{
$this->soXport->log_end($batchid); //Lagre
melding
}
return $message;
}
function errorhandler($error_desr)
{
$meld = $error_desr;
//Vis feilmelding
// echo $meld;
//Lagre feilmelding
$this->soXport->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->soXport->select_invoice_roleback($day,$month,$year,$Filnavn);
// print_r($BilagOverf);
for ($i=0;$i<count($BilagOverf);$i++)
{
$this->soXport->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->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)
{
$message = $antall . ' ' .
lang('bilag/underbilag rullet tilbake').'<br>';
$fil_katalog =
$this->$config->config_data['export_path'];
unlink ($fil_katalog. SEP . $Filnavn);
$message .= lang('file ') . $Filnavn .
lang('deleted');
}
else
{
$message = lang('Sorry - None hits');
}
return $message;
}
function LagFilnavn ($batchid)
{
$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);
//Ingen løpenr er ledige, gi feilmelding
return False;
}
function OverforPeriode($batchid,$periode,$download)
{
$BilagId = 'NULL';
//Bestem filnavn
$Filnavn = $this->LagFilnavn($batchid);
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);
for ($i=0;$i<count($oRsBilag);$i++)
{
//Hent leverandørklasse
$pmlabor_code
=$this->soXport->select_vendor_class($oRsBilag[$i]['spvend_code']);
if (strlen($pmlabor_code) > 1)
{
$pmlabor_code = 'LE'. $pmlabor_code;
}
else
{
$pmlabor_code = 'LEV' . $pmlabor_code;
}
//Bestem belops felt
if ($oRsBilag[$i]['splitt']==0)
{
//Bilaget er ikke splittet
if ($oRsBilag[$i]['godkjentbelop'] <>
$oRsBilag[$i]['belop'])
{
$BelopFelt = 'godkjentbelop';
//Logg til avviks tabell
if ($download=='on')
{
$this->soXport->log_to_deviation_table($oRsBilag[$i]);
}
}
else
{
$BelopFelt = 'belop';
}
}
//Bilaget er splittet
if ($oRsBilag[$i]['godkjentbelop'] ==
$oRsBilag[$i]['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[$i]['artid'] == 1)
{
$Belop = sprintf("%01.2f",
-$oRsBilag[$i][$BelopFelt]);
// echo 'Belop :' . $Belop . '<BR>';
}
else
{
$Belop = sprintf("%01.2f",
$oRsBilag[$i][$BelopFelt]);
}
$Belop =$Belop *100;
// $Belop = substr($Belop,0,strlen($Belop) - 3) +
substr($Belop, -2);
//echo 'Belop :' . $Belop . '<BR>';
//Skriv hovedbilag
$f1per =
date(ym,strtotime($oRsBilag[$i]['fakturadato']));
$f1bilnr =
substr($oRsBilag[$i]['bilagsnr'],-6);
$f1bildat =
date(ymd,strtotime($oRsBilag[$i]['fakturadato']));
$f1bilart = $oRsBilag[$i]['artid'];
$f1belop = $Belop;
$f1fordat =
date(ymd,strtotime($oRsBilag[$i]['forfallsdato']));
$f1tekst = '';
$f1iper =
date(m,strtotime($oRsBilag[$i]['fakturadato']));
$f1dime = $oRsBilag[$i]['spvend_code'];
$f3per =
date(ym,strtotime($oRsBilag[$i]['fakturadato']));
$f3bilnr =
substr($oRsBilag[$i]['bilagsnr'],-6);
$f3rkonto = $oRsBilag[$i]['spvend_code'];
$f3pnr =
substr($oRsBilag[$i]['bilagsnr'],-6);
$f3klasse = $pmlabor_code;
$f3bildat =
date(ymd,strtotime($oRsBilag[$i]['fakturadato']));
$f3bilart = $oRsBilag[$i]['artid'];
$f3belopr = $Belop;
$f3fordat =
date(ymd,strtotime($oRsBilag[$i]['forfallsdato']));
$f3sakb =
$oRsBilag[$i]['saksbehandler'];
$f3idkode = $oRsBilag[$i]['kidnr'];
$f3tekst = '';
$buffer = 'F3 7 1'. $f3per . $f3bilnr .
sprintf("%6s",$f3rkonto) . sprintf("%6s",$f3pnr)
. ' 0'. sprintf("%4s",$f3klasse). ' ' .
sprintf("%6s",$f3bildat).sprintf("%2s",$f3bilart)
. 'NOK 1000
10005'.sprintf("%14s",$f3belopr).' '.sprintf("%6s",$f3fordat)
. sprintf("%6s",$f3fordat).' 0 0 0
001 '
. sprintf("%8s",$f3sakb).' 0 0 0
0 0 01 0 0'
. sprintf("%28s",$f3idkode).' 0'."\r\n"
.'F112
1'.sprintf("%4s",$f1per).sprintf("%6s",$f1bilnr).' 2001 2001 0
0 0'
.
sprintf("%2s",$f1bilart).'0'.sprintf("%6s",$f1bildat).sprintf("%6s",$f1fordat)
.'NOK 1000 1000'.sprintf("%6s",$f1dime).'
0 0 0 0 0 0 0 0'
.
sprintf("%15s",$f1belop).sprintf("%15s",$f1tekst).sprintf("%2s",$f1iper).'0101
0'
. sprintf("%6s",$f1bilnr).' 0
'."\r\n";
/*
echo 'f1per :' . $f1per . '<BR>';
echo 'f1bilnr :' . $f1bilnr . '<BR>';
echo 'f1bildat :' . $f1bildat . '<BR>';
echo 'f1bilart :' . $f1bilart . '<BR>';
echo 'f1belop :' . $f1belop . '<BR>';
echo 'f1fordat :' . $f1fordat . '<BR>';
echo 'f1tekst :' . $f1tekst . '<BR>';
echo 'f1iper :' . $f1iper . '<BR>';
echo 'f1dime :' . $f1dime . '<BR>';
echo 'f3per :' . $f3per . '<BR>';
echo 'f3bilnr :' . $f3bilnr . '<BR>';
echo 'f3rkonto :' . $f3rkonto . '<BR>';
echo 'f3pnr :' . $f3pnr . '<BR>';
echo 'f3klasse :' . $f3klasse . '<BR>';
echo 'f3bildat :' . $f3bildat . '<BR>';
echo 'f3bilart :' . $f3bilart . '<BR>';
echo 'f3belopr :' . $f3belopr . '<BR>';
echo 'f3fordat :' . $f3fordat . '<BR>';
echo 'f3sakb :' . $f3sakb . '<BR>';
echo 'f3idkode :' . $f3idkode . '<BR>';
echo 'f3tekst :' . $f3tekst . '<BR>';
*/
//Velg ut alle underbilag
$oRsUnderbilag=$this->soXport->select_underbilag($oRsBilag[$i]['bilagsnr']);
for ($i=0;$i<count($oRsUnderbilag);$i++)
{
$BilagId = $oRsUnderbilag[$i]['id'];
if ($oRsUnderbilag[$i]['artid'] == 1)
{
$Belop = sprintf("%01.2f",
$oRsUnderbilag[$i][$BelopFelt]);
// echo 'Belop :' . $Belop . '<BR>';
}
else
{
$Belop = sprintf("%01.2f",
-$oRsUnderbilag[$i][$BelopFelt]);
}
$Belop =$Belop *100;
//$Belop =
substr($Belop,0,strlen($Belop) - 3) + substr($Belop, -2);
// echo 'Belop :' . $Belop . '<BR>';
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->soXport->correct_actual_cost($oRsUnderbilag[$i]['pmwrkord_code'],$Belop,$actual_cost_field,$operator);
}
}
else
{
$dimc = '';
}
//Overfør til t_ecobilagoverf
$oRsOverfBilag=$oRsUnderbilag[$i];
$oRsOverfBilag['filnavn']=
basename($Filnavn);
$oRsOverfBilag['ordrebelop']=$oRsUnderbilag[$i][$BelopFelt];
$oRsOverfBilag['dima']=substr($oRsOverfBilag['dima'],0,6);
//Kopier verdier
if ($download=='on')
{
$this->soXport->add_OverfBilag($oRsOverfBilag);
}
//Skriv til fil
$f1kto =
$oRsUnderbilag['spbudact_code'];
$f1dima =
substr($oRsUnderbilag['dima'],0,6);
$f1dimb =
$oRsUnderbilag['dimb'];
$f1dimc = $dimc;
$f1dimd =
$oRsUnderbilag['dimd'];
$f1avgkod =
$oRsUnderbilag['mvakode'];
$f1belop = $Belop;
$f1tekst =
$oRsUnderbilag['merknad'];
$buffer .='F1 2 1'.
sprintf("%4s",$f1per).sprintf("%6s",$f1bilnr).sprintf("%8s",$f1kto).' 0'
.sprintf("%6s",$f1dima).sprintf("%6s",$f1dimb).sprintf("%6s",$f1dimc).sprintf("%6s",$f1dimd).sprintf("%2s",$f1bilart).'0'
.sprintf("%6s",$f1bildat).sprintf("%6s",$f1fordat).'NOK 1000
1000'.sprintf("%6s",$f1dime).' 0 0 0 0 0 0 0'
.sprintf("%2s",$f1avgkod).sprintf("%15s",$f1belop).sprintf("%15s",$f1tekst).sprintf("%2s",$f1iper).'0101
0'
.sprintf("%6s",$f1bilnr).' 0
'."\r\n";
//Slett post i t_ecobilag
if ($download=='on')
{
$this->soXport->delete_from_t_ecobilag($oRsUnderbilag[$i]['id']);
//Logg transaksjon
$this->soXport->log_transaction($batchid,$BilagId);
}
$BilagId = 'NULL';
$antall = $antall + 1;
}
}
$f9per = $periode;
$buffer .='F999 1'.sprintf("%4s",$f9per).'
0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 ';
//Fullfør transaksjon
//g_db.SluttTransaksjon
if ($download=='on')
{
$message = 'Periode: '.$periode.' antall
bilag/underbilag overført:'.$antall . ' , fil: ' . $Filnavn . '<br>';
$fp = fopen($Filnavn, "wb");
fwrite($fp,$buffer);
fclose($fp);
}
else
{
$message = $buffer;
}
return $message;
}
}
?>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] CVS: property/inc/export Ecolink,NONE,1.1,
Sigurd Nes <address@hidden> <=
- Prev by Date:
[Phpgroupware-cvs] CVS: property/inc/export - New directory
- Next by Date:
[Phpgroupware-cvs] CVS: property/inc header.inc.php,1.16,1.17 class.boXport.inc.php,1.1,1.2 class.soXport.inc.php,1.1,1.2 class.uiXport.inc.php,1.1,1.2
- Previous by thread:
[Phpgroupware-cvs] CVS: property/inc/export - New directory
- Next by thread:
[Phpgroupware-cvs] CVS: property/inc header.inc.php,1.16,1.17 class.boXport.inc.php,1.1,1.2 class.soXport.inc.php,1.1,1.2 class.uiXport.inc.php,1.1,1.2
- Index(es):