<?php
	/**
	* phpGroupWare - property: a Facilities Management System.
	*
	* @author Sigurd Nes <sigurdne@online.no>
	* @copyright Copyright (C) 2003,2004,2005,2006,2007 Free Software Foundation, Inc. http://www.fsf.org/
	* This file is part of phpGroupWare.
	*
	* phpGroupWare is free software; you can redistribute it and/or modify
	* it under the terms of the GNU General Public License as published by
	* the Free Software Foundation; either version 2 of the License, or
	* (at your option) any later version.
	*
	* phpGroupWare is distributed in the hope that it will be useful,
	* but WITHOUT ANY WARRANTY; without even the implied warranty of
	* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	* GNU General Public License for more details.
	*
	* You should have received a copy of the GNU General Public License
	* along with phpGroupWare; if not, write to the Free Software
	* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
	*
	* @license http://www.gnu.org/licenses/gpl.html GNU General Public License
	* @internal Development of this application was funded by http://www.bergen.kommune.no/bbb_/ekstern/
	* @package property
	* @subpackage export
 	* @version $Id: Ecolink,v 1.10 2007/01/26 14:58:55 sigurdne Exp $
	*/

	/**
	 * Description
	 * @package property
	 */

	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');
			$this->db           	= $this->bocommon->new_db();			
		}

		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;
				case 'postgres':
					$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 belp 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 leverandrklasse

		function select_vendor_class($spvend_code)
		{
			$sql= "select klasse from fm_vendor where id=$spvend_code";
			$this->db->query($sql,__LINE__,__FILE__);
			$this->db->next_record();
			$pmlabor_code = $this->db->f('klasse');

			return $pmlabor_code;
		}

		function overfor($download)
		{
			//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 overfres

			$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);
			$this->db->transaction_begin();

			for ($i=0;$i<count($BilagOverf);$i++)
			{
				$this->bilag_update_overf($BilagOverf[$i]);
				
		
				if($BilagOverf[$i]['pmwrkord_code'])
				{
					if ($BilagOverf[$i]['artid']==1)
					{
						$Belop = sprintf("%01.2f", $BilagOverf[$i]['ordrebelop'])*100;
					}
					else
					{
						$Belop = sprintf("%01.2f", -$BilagOverf[$i]['ordrebelop'])*100;
					}
				
					if ($BilagOverf[$i]['dimd'] % 2 == 0)
					{
						$actual_cost_field='act_mtrl_cost';
					}
					else
					{
						$actual_cost_field='act_vendor_cost';
					}
		
					$operator='-';

					$this->correct_actual_cost($BilagOverf[$i]['pmwrkord_code'],$Belop,$actual_cost_field,$operator);
				}
		
				//Slett fra avviks tabell
			//	$this->soXport->delete_avvik($BilagOverf[$i]['bilagsnr']);
		
				//Slett fra arkiv
				$this->soXport->delete_invoice($BilagOverf[$i]['bilagsnr']);
		
				$antall = $antall + 1;
			}
		
			if($antall > 0)
			{		
				$fil_katalog = $this->config->config_data['export_path'];			
			
				if(unlink ($fil_katalog. SEP . $Filnavn))
				{
					$this->db->transaction_commit();
					$receipt['message'][]= array('msg' => $antall . ' ' . lang('bilag/underbilag rullet tilbake'));
					$receipt['message'][]= array('msg' => lang('File %1 is deleted',$Filnavn));
				}
				else
				{
					$this->db->transaction_abort();
					$receipt['message'][]= array('msg' => 'Noe gikk galt!');
				}							
			}
			else
			{
				$receipt['error'][]= array('msg' => lang('Sorry - None hits'));
			}
			return $receipt;
		}
				
		
		function LagFilnavn ($batchid)
		{	
			$fil_katalog = $this->config->config_data['export_path'];
			//Beregn lpenr
			$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 lpenr
				$batchid = $batchid + 1;
				$LopeNr = ($batchid % 30) + 70;
			}
			while  ($LopeNr != $StartLopeNr);
		
			//Ingen lpenr 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 lpenr 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 overfres
		
			$oRsBilag=$this->soXport->hoved_bilag($periode);
									
			$this->db->transaction_begin();

		 	$bilag_count= count($oRsBilag);
		 	for ($k=0;$k<$bilag_count;$k++)
			{				
				//Hent leverandrklasse
				
				$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 fakturabelp og godkjent belp p splittet faktura!');
					$this->errorhandler($message);
					return $message;
				}
		
				//Formater belp
				if ($oRsBilag[$k]['artid'] == 2)
				{
					$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'] == 2)
					{		
						$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 belp 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 = '';
					}
		
					//Overfr 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,lang('Invoice tranferred'));
					}
		
					$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";
					
			//Fullfr transaksjon
			//g_db.SluttTransaksjon
			
		
			if ($download=='on')
			{
				$message = 'periode: '.$periode_aar.' antall bilag/underbilag overfrt:'.$antall . ' , fil: ' . $Filnavn;
				$fp = fopen($Filnavn, "wb");
				fwrite($fp,$buffer);
				if(fclose($fp))
				{
					$this->db->transaction_commit();

				}
				else
				{
					$this->db->transaction_abort();
					$message = 'Noe gikk galt!';				
				}
			}
			else
			{
				$message = $buffer;
			}

			return $message;
		}
	}
?>
