phpgroupware-cvs
[Top][All Lists]
Advanced

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

[Phpgroupware-cvs] property/export/Ecolink, 1.1.1.3


From: nomail
Subject: [Phpgroupware-cvs] property/export/Ecolink, 1.1.1.3
Date: Fri, 21 May 2004 16:13:24 -0000

Update of /property/export
Modified Files:
        Branch: 
          Ecolink

date: 2004/04/23 21:26:32;  author: sigurdne;  state: Exp;  lines: +625 -625

Log Message:
no message
=====================================================================
Index: property/export/Ecolink
diff -u property/export/Ecolink:1.1.1.2 property/export/Ecolink:1.1.1.3
--- property/export/Ecolink:1.1.1.2     Fri Apr 23 20:27:19 2004
+++ property/export/Ecolink     Fri Apr 23 21:26:32 2004
@@ -1,625 +1,625 @@
-<?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()
-               {
-                       $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 contact_value from 
phpgw_addressbook_extra where contact_id=$spvend_code and 
contact_name='klasse'";
-                       $this->db->query($sql,__LINE__,__FILE__);
-                       $this->db->next_record();
-                       $pmlabor_code = $this->db->f('contact_value');
-
-                       return $pmlabor_code;
-               }
-
-               function overfor($download)
-               {
-                       //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();
-               
-                       for ($i=0;$i<count($periode);$i++)
-                       {
-                               $receipt['message'][]= array('msg' => 
$this->OverforPeriode($batchid,$periode[$i],$download));
-                       }
-
-                       //Lagre melding
-                       if ($download=='on')
-                       {
-                               $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);
-                       $GLOBALS['phpgw']->db->begintrans();
-
-                       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))
-                               {
-                                       $GLOBALS['phpgw']->db->committrans();
-                                       $receipt['message'][]= array('msg' => 
$antall . ' ' . lang('bilag/underbilag rullet tilbake'));
-                                       $receipt['message'][]= array('msg' => 
lang('File %1 is deleted',$Filnavn));
-                               }
-                               else
-                               {
-                                       $GLOBALS['phpgw']->db->rollbacktrans();
-                                       $receipt['message'][]= array('msg' => 
'Noe gikk galt!');
-                               }                                               
        
-                       }
-                       else
-                       {
-                               $receipt['error'][]= array('msg' => lang('Sorry 
- None hits'));
-                       }
-                       return $receipt;
-               }
-                               
-               
-               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);
-                                                                       
-                       $GLOBALS['phpgw']->db->begintrans();
-
-                       $bilag_count= count($oRsBilag);
-                       for ($k=0;$k<$bilag_count;$k++)
-                       {                               
-                               //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')
-                                               {
-//                                                     
$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; 
-               //              $Belop = substr($Belop,0,strlen($Belop) - 3) + 
substr($Belop, -2);
-               
-                               //Skriv hovedbilag
-
-                               $periode_aar    = date("y") . 
sprintf("%02d",$periode);
-                               $f1per          = 
$periode_aar;//date(ym,strtotime($oRsBilag[$k]['fakturadato']));
-                               $f1bilnr        = 
substr($oRsBilag[$k]['bilagsnr'],-6);
-                               $f1bildat       = 
date(ymd,strtotime($oRsBilag[$k]['fakturadato']));
-                               $f1bilart       = $oRsBilag[$k]['artid'];
-                               $f1belop        = $Belop;                       
                                
-                               $f1fordat       = 
date(ymd,strtotime($oRsBilag[$k]['forfallsdato']));
-                               $f1tekst        = '';                           
                                
-                               $f1iper         = 
substr($periode_aar,2,2);//date(m,strtotime($oRsBilag[$k]['fakturadato']));
-                               $f1dime         = $oRsBilag[$k]['spvend_code']; 
                                
-        
-                               $f3per          = 
$periode_aar;//date(ym,strtotime($oRsBilag[$k]['fakturadato']));
-                               $f3bilnr        = 
substr($oRsBilag[$k]['bilagsnr'],-6);
-                               $f3rkonto       = $oRsBilag[$k]['spvend_code'];
-                               $f3pnr          = 
substr($oRsBilag[$k]['bilagsnr'],-6);
-                               $f3klasse       = $pmlabor_code;                
                
-                               $f3bildat       = 
date(ymd,strtotime($oRsBilag[$k]['fakturadato']));
-                               $f3bilart       = $oRsBilag[$k]['artid'];
-                               $f3belopr       = $Belop;                       
                                
-                               $f3fordat       = 
date(ymd,strtotime($oRsBilag[$k]['forfallsdato']));
-                               $f3sakb         = 
$oRsBilag[$k]['saksbehandler'];
-                               $f3idkode       = $oRsBilag[$k]['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";
-               
-               
-                               //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'];
-                               
-                                       if ($oRsUnderbilag[$i]['artid'] == 1)
-                                       {               
-                                               $Belop = sprintf("%01.2f", 
$oRsUnderbilag[$i][$BelopFelt]);
-                                       }
-                                       else
-                                       {
-                                               $Belop = sprintf("%01.2f", 
-$oRsUnderbilag[$i][$BelopFelt]);
-                                       }
-                                       
-                                       $Belop =$Belop *100; 
-
-                                       //$Belop = 
substr($Belop,0,strlen($Belop) - 3) + substr($Belop, -2);
-
-       
-                                       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);
-               
-                                       //Kopier verdier
-                                       if ($download=='on')
-                                       {
-                                               
$this->soXport->add_OverfBilag($oRsOverfBilag);
-                                       }
-                                       //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 .='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 fm_ecobilag
-                                       if ($download=='on')
-                                       {
-                                               
$this->soXport->delete_from_fm_ecobilag($oRsUnderbilag[$i]['id']);              
-                                               //Logg transaksjon              
-                                               
$this->soXport->log_transaction($batchid,$BilagId);
-                                       }
-               
-                                       $BilagId = 'NULL';
-               
-                                       $antall = $antall + 1;
-                               }
-                       }
-                               
-                       $f9per  = $periode_aar;
-                       $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                                               
'."\r\n";
-                                       
-                       //Fullfør transaksjon
-                       //g_db.SluttTransaksjon
-                       
-               
-                       if ($download=='on')
-                       {
-                               $message = 'periode: '.$periode_aar.' antall 
bilag/underbilag overført:'.$antall . ' , fil: ' . $Filnavn;
-                               $fp = fopen($Filnavn, "wb");
-                               fwrite($fp,$buffer);
-                               if(fclose($fp))
-                               {
-                                       $GLOBALS['phpgw']->db->committrans();
-
-                               }
-                               else
-                               {
-                                       $GLOBALS['phpgw']->db->rollbacktrans();
-                                       $message = 'Noe gikk galt!';            
                
-                               }
-                       }
-                       else
-                       {
-                               $message = $buffer;
-                       }
-
-                       return $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()
+               {
+                       $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 contact_value from 
phpgw_addressbook_extra where contact_id=$spvend_code and 
contact_name='klasse'";
+                       $this->db->query($sql,__LINE__,__FILE__);
+                       $this->db->next_record();
+                       $pmlabor_code = $this->db->f('contact_value');
+
+                       return $pmlabor_code;
+               }
+
+               function overfor($download)
+               {
+                       //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();
+               
+                       for ($i=0;$i<count($periode);$i++)
+                       {
+                               $receipt['message'][]= array('msg' => 
$this->OverforPeriode($batchid,$periode[$i],$download));
+                       }
+
+                       //Lagre melding
+                       if ($download=='on')
+                       {
+                               $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);
+                       $GLOBALS['phpgw']->db->begintrans();
+
+                       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))
+                               {
+                                       $GLOBALS['phpgw']->db->committrans();
+                                       $receipt['message'][]= array('msg' => 
$antall . ' ' . lang('bilag/underbilag rullet tilbake'));
+                                       $receipt['message'][]= array('msg' => 
lang('File %1 is deleted',$Filnavn));
+                               }
+                               else
+                               {
+                                       $GLOBALS['phpgw']->db->rollbacktrans();
+                                       $receipt['message'][]= array('msg' => 
'Noe gikk galt!');
+                               }                                               
        
+                       }
+                       else
+                       {
+                               $receipt['error'][]= array('msg' => lang('Sorry 
- None hits'));
+                       }
+                       return $receipt;
+               }
+                               
+               
+               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);
+                                                                       
+                       $GLOBALS['phpgw']->db->begintrans();
+
+                       $bilag_count= count($oRsBilag);
+                       for ($k=0;$k<$bilag_count;$k++)
+                       {                               
+                               //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')
+                                               {
+//                                                     
$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; 
+               //              $Belop = substr($Belop,0,strlen($Belop) - 3) + 
substr($Belop, -2);
+               
+                               //Skriv hovedbilag
+
+                               $periode_aar    = date("y") . 
sprintf("%02d",$periode);
+                               $f1per          = 
$periode_aar;//date(ym,strtotime($oRsBilag[$k]['fakturadato']));
+                               $f1bilnr        = 
substr($oRsBilag[$k]['bilagsnr'],-6);
+                               $f1bildat       = 
date(ymd,strtotime($oRsBilag[$k]['fakturadato']));
+                               $f1bilart       = $oRsBilag[$k]['artid'];
+                               $f1belop        = $Belop;                       
                                
+                               $f1fordat       = 
date(ymd,strtotime($oRsBilag[$k]['forfallsdato']));
+                               $f1tekst        = '';                           
                                
+                               $f1iper         = 
substr($periode_aar,2,2);//date(m,strtotime($oRsBilag[$k]['fakturadato']));
+                               $f1dime         = $oRsBilag[$k]['spvend_code']; 
                                
+        
+                               $f3per          = 
$periode_aar;//date(ym,strtotime($oRsBilag[$k]['fakturadato']));
+                               $f3bilnr        = 
substr($oRsBilag[$k]['bilagsnr'],-6);
+                               $f3rkonto       = $oRsBilag[$k]['spvend_code'];
+                               $f3pnr          = 
substr($oRsBilag[$k]['bilagsnr'],-6);
+                               $f3klasse       = $pmlabor_code;                
                
+                               $f3bildat       = 
date(ymd,strtotime($oRsBilag[$k]['fakturadato']));
+                               $f3bilart       = $oRsBilag[$k]['artid'];
+                               $f3belopr       = $Belop;                       
                                
+                               $f3fordat       = 
date(ymd,strtotime($oRsBilag[$k]['forfallsdato']));
+                               $f3sakb         = 
$oRsBilag[$k]['saksbehandler'];
+                               $f3idkode       = $oRsBilag[$k]['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";
+               
+               
+                               //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'];
+                               
+                                       if ($oRsUnderbilag[$i]['artid'] == 1)
+                                       {               
+                                               $Belop = sprintf("%01.2f", 
$oRsUnderbilag[$i][$BelopFelt]);
+                                       }
+                                       else
+                                       {
+                                               $Belop = sprintf("%01.2f", 
-$oRsUnderbilag[$i][$BelopFelt]);
+                                       }
+                                       
+                                       $Belop =$Belop *100; 
+
+                                       //$Belop = 
substr($Belop,0,strlen($Belop) - 3) + substr($Belop, -2);
+
+       
+                                       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);
+               
+                                       //Kopier verdier
+                                       if ($download=='on')
+                                       {
+                                               
$this->soXport->add_OverfBilag($oRsOverfBilag);
+                                       }
+                                       //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 .='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 fm_ecobilag
+                                       if ($download=='on')
+                                       {
+                                               
$this->soXport->delete_from_fm_ecobilag($oRsUnderbilag[$i]['id']);              
+                                               //Logg transaksjon              
+                                               
$this->soXport->log_transaction($batchid,$BilagId);
+                                       }
+               
+                                       $BilagId = 'NULL';
+               
+                                       $antall = $antall + 1;
+                               }
+                       }
+                               
+                       $f9per  = $periode_aar;
+                       $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                                               
'."\r\n";
+                                       
+                       //Fullfør transaksjon
+                       //g_db.SluttTransaksjon
+                       
+               
+                       if ($download=='on')
+                       {
+                               $message = 'periode: '.$periode_aar.' antall 
bilag/underbilag overført:'.$antall . ' , fil: ' . $Filnavn;
+                               $fp = fopen($Filnavn, "wb");
+                               fwrite($fp,$buffer);
+                               if(fclose($fp))
+                               {
+                                       $GLOBALS['phpgw']->db->committrans();
+
+                               }
+                               else
+                               {
+                                       $GLOBALS['phpgw']->db->rollbacktrans();
+                                       $message = 'Noe gikk galt!';            
                
+                               }
+                       }
+                       else
+                       {
+                               $message = $buffer;
+                       }
+
+                       return $message;
+               }
+       }
+?>




reply via email to

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