Source for file clieop.php
Documentation is available at clieop.php
/* vim: set expandtab tabstop=4 shiftwidth=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.16 2007/03/13 03:52:01 cellog 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).
* @version $Revision: 1.16 $
* @author Dave Mertens <dmertens@zyprexia.com>
* @package Payment_Clieop
var $_PrincipalAccountNumber;
var $_NumberOfTransactions = 0;
* @var date (in DDMMYY format)
$this->_ProcessDate = "000000"; //process ASAP
* Adds a payment record to the clieop file
* @param object paymentObject - Instance of transactionPayment
//Only one type of transaction is allowed in a clieop
if ($this->_TransactionType == $paymentObject->getPaymentType ())
$text = $this->writeTransactieInfo ($paymentObject->getTransactionType (),
$paymentObject->getAmount (),
$paymentObject->getAccountNumberSource (),
$paymentObject->getAccountNumberDest ());
if (strtoupper($this->_TransactionType) == "DEBTOR")
$text .= $this->writeNaambetalerInfo ($paymentObject->getName ());
$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 ());
$this->_NumberOfTransactions++;
$this->_AccountChecksum += (int) $paymentObject->getAccountNumberSource () + (int) $paymentObject->getAccountNumberDest ();
$this->_TotalAmount += $paymentObject->getAmount ();
$this->_TransactionText .= $text;
* Writes complete clieop file
$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 ();
* @param integer Value - Number of batches send to day (including this one)
return $this->_BatchNumber;
$this->_BatchNumber = $Value;
* property FixedDescription
* @param string Value - Description which will be added to each transaction payment
return $this->_FixedDescription;
$this->_FixedDescription = $Value;
* property SenderIdentification
* @param string Value - Identification of sender, free of choice
return $this->_SenderIdent;
$this->_SenderIdent = $Value;
* @param string Value - Name of principal
return $this->_PrincipalName;
$this->_PrincipalName = $Value;
* property PrincipalAccountNumber
* @param string Value - Account number of principal
return $this->_PrincipalAccountNumber;
$this->_PrincipalAccountNumber = $Value;
* property TransactionType
* @param string Value - transaction type
return $this->_TransactionType;
$this->_TransactionType = "CREDITOR";
$this->_TransactionCode = "00";
$this->_TransactionType = "DEBTOR";
$this->_TransactionCode = "10";
* @param boolean Value - true = test clieop, false = production clieop
$this->_Test = "P"; //production clieop
$this->_Test = "T"; //test clieop
* 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
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 );
* Writes invoice reference clieop line
* @param string invoiceReference - Reference of invoice
function writeBetalingskenmerkInfo ($invoiceReference)
$text = "0150"; //infocode
$text .= "A"; //variantcode
$text .= $this->alfaFiller ($invoiceReference, 16 ); //betalings kenmerk
$text .= $this->filler (29 );
if (strlen($invoiceReference) > 0 ) return $text; //only return string if there's really a value
* Writes an description for the clieop file
* @param string description - Description of payment (Can be called maximum 4 times!)
function writeOmschrijvingInfo ($description)
$text = "0160"; //infocode
$text .= "A"; //variantcode
$text .= $this->alfaFiller ($description, 32 ); //omschrijving van post
$text .= $this->filler (13 );
* Write the creditor name record
* @param string name - Name of creditor
function writeNaambegunstigdeInfo ($name)
$text = "0170"; //infocode
$text .= "B"; //variantcode
$text .= $this->alfaFiller ($name, 35 ); //naam begunstigde
$text .= $this->filler (10 );
* Write the creditor city record
* @param string city - City of creditor
function writeWoonplaatsbegunstigdeInfo ($city)
$text = "0173"; //infocode
$text .= "B"; //variantcode
$text .= $this->alfaFiller ($city, 35 ); //woonplaats begunstigde
$text .= $this->filler (10 );
* Write the debtor name record
* @param string name - Name of debtor
function writeNaambetalerInfo ($name)
$text = "0110"; //infocode
$text .= "B"; //variantcode
$text .= $this->alfaFiller ($name, 35 ); //naam betaler
$text .= $this->filler (10 );
* Write the debtor city record
* @param string city - City of debtor
function writeWoonplaatsbetalerInfo ($city)
$text = "0113"; //infocode
$text .= "B"; //variantcode
$text .= $this->alfaFiller ($city, 35 ); //woonplaats betaler
$text .= $this->filler (10 );
* @param string identifier - 5 char sender identification (free of choice)
* @param integer batchCount - Numbers of clieop batches send today + 1
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 );
function writeBestandssluitInfo ()
$text = "9999"; //infocode
$text .= "A"; //variantcode
$text .= $this->filler (45 );
* Write clieop batchvoorloopinfo
* @param string principalAccountNumber - Account number of principal
* @param integer batchCount - Number of batches send this month (including this one)
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 );
* Write clieop batchvoorloopinfo
* @access string description - Fixed description for all payments
function writeVasteomschrijvingInfo ($description)
$text = "0020"; //infocode
$text .= "A"; //variantcode
$text .= $this->alfaFiller ($description, 32 ); //vaste omschrijving
$text .= $this->filler (13 );
if (strlen($description) > 0 ) return $text; //only return string if there is REALLY a description
* Write opdrachtegever clieop line
* @param date processDate - Process date in DDMMYY-format
* @param string principalName - Name of pricipal
function writeOpdrachtgeverInfo ($processDate, $principalName)
$text = "0030"; //infocode
$text .= "B"; //variantcode
$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 );
* Write clieop batchsluitinfo
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 );
* master object for clieop objects
* @version $Revision: 1.16 $
* @author Dave Mertens <dmertens@zyprexia.com>
* @package Payment_Clieop
* @param string text - Text which needs to filled up
* @param integer length - The length of the required text
function alfaFiller ($text, $length)
//how many spaces do we need?
//return string with spaces on right side
* @param string number - number which needs to filled up (Will be converted to a string)
* @param integer length - The length of the required number
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
* @param integer length - How many filler spaces do we need
Documentation generated on Mon, 11 Mar 2019 14:57:20 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.
|