phpgroupware-cvs
[Top][All Lists]
Advanced

[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;
                }
        }
?>





reply via email to

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