From: <rc...@us...> - 2016-04-25 21:15:11
|
Revision: 7496 http://sourceforge.net/p/web-erp/reponame/7496 Author: rchacon Date: 2016-04-25 21:15:09 +0000 (Mon, 25 Apr 2016) Log Message: ----------- In Payments.php, allow to input a customised gltrans.narrative, supptrans.suppreference and supptrans.transtext. Improve code. Modified Paths: -------------- trunk/Payments.php trunk/doc/Change.log trunk/doc/Manual/ManualAccountsPayable.html Modified: trunk/Payments.php =================================================================== --- trunk/Payments.php 2016-04-25 10:01:27 UTC (rev 7495) +++ trunk/Payments.php 2016-04-25 21:15:09 UTC (rev 7496) @@ -3,43 +3,42 @@ /* Entry of bank account payments either against an AP account or a general ledger payment - if the AP-GL link in company preferences is set */ include('includes/DefinePaymentClass.php'); + include('includes/session.inc'); - $Title = _('Payment Entry'); - -if (isset($_GET['SupplierID'])) { +if(isset($_GET['SupplierID'])) { $ViewTopic = 'AccountsPayable'; $BookMark = 'SupplierPayments'; } else { $ViewTopic= 'GeneralLedger'; $BookMark = 'BankAccountPayments'; } +include('includes/header.inc'); -include('includes/header.inc'); include('includes/SQL_CommonFunctions.inc'); -if (isset($_POST['PaymentCancelled'])) { +if(isset($_POST['PaymentCancelled'])) { prnMsg(_('Payment Cancelled since cheque was not printed'), 'warning'); include('includes/footer.inc'); exit(); } -if (empty($_GET['identifier'])){ +if(empty($_GET['identifier'])) { /*unique session identifier to ensure that there is no conflict with other order enty session on the same machine */ $identifier=date('U'); -}else{ +} else { $identifier=$_GET['identifier'];//edit GLItems } -if (isset($_GET['NewPayment']) AND $_GET['NewPayment']=='Yes'){ - unset($_SESSION['PaymentDetail' . $identifier]->GLItems); - unset($_SESSION['PaymentDetail' . $identifier]); +if(isset($_GET['NewPayment']) AND $_GET['NewPayment']=='Yes') { + unset($_SESSION['PaymentDetail'.$identifier]->GLItems); + unset($_SESSION['PaymentDetail'.$identifier]); } -if (!isset($_SESSION['PaymentDetail' . $identifier])){ - $_SESSION['PaymentDetail' . $identifier] = new Payment; - $_SESSION['PaymentDetail' . $identifier]->GLItemCounter = 1; +if(!isset($_SESSION['PaymentDetail'.$identifier])) { + $_SESSION['PaymentDetail'.$identifier] = new Payment; + $_SESSION['PaymentDetail'.$identifier]->GLItemCounter = 1; } -if ((isset($_POST['UpdateHeader']) +if((isset($_POST['UpdateHeader']) AND $_POST['BankAccount']=='') OR (isset($_POST['Process']) AND $_POST['BankAccount']=='')) { @@ -50,22 +49,21 @@ $BankAccountEmpty=false; } -echo '<p class="page_title_text"> - <img src="'.$RootPath.'/css/'.$Theme.'/images/transactions.png" title="' . _('Bank Account Payments Entry') -. '" alt="" />' . ' ' . _('Bank Account Payments Entry') . ' - </p>'; -echo '<div class="page_help_text">' . _('Use this screen to enter payments FROM your bank account. <br />Note: To enter a payment FROM a supplier, first select the Supplier, click Enter a Payment to, or Receipt from the Supplier, and use a negative Payment amount on this form.') . '</div> +echo '<p class="page_title_text"><img alt="" src="', $RootPath, '/css/', $Theme, + '/images/transactions.png" title="',// Icon image. + _('Bank Account Payments Entry'), '" /> ',// Icon title. + _('Bank Account Payments Entry'), '</p>';// Page title. +echo '<div class="page_help_text">' . _('Use this screen to enter payments FROM your bank account.<br />Note: To enter a payment FROM a supplier, first select the Supplier, click Enter a Payment to, or Receipt from the Supplier, and use a negative Payment amount on this form.') . '</div> <br />'; -if (isset($_GET['SupplierID'])){ +if(isset($_GET['SupplierID'])) { /*The page was called with a supplierID check it is valid and default the inputs for Supplier Name and currency of payment */ - unset($_SESSION['PaymentDetail' . $identifier]->GLItems); - unset($_SESSION['PaymentDetail' . $identifier]); - $_SESSION['PaymentDetail' . $identifier] = new Payment; - $_SESSION['PaymentDetail' . $identifier]->GLItemCounter = 1; + unset($_SESSION['PaymentDetail'.$identifier]->GLItems); + unset($_SESSION['PaymentDetail'.$identifier]); + $_SESSION['PaymentDetail'.$identifier] = new Payment; + $_SESSION['PaymentDetail'.$identifier]->GLItemCounter = 1; - $SQL= "SELECT suppname, address1, address2, @@ -79,26 +77,26 @@ WHERE supplierid='" . $_GET['SupplierID'] . "'"; $Result = DB_query($SQL); - if (DB_num_rows($Result)==0){ + if(DB_num_rows($Result)==0) { prnMsg( _('The supplier code that this payment page was called with is not a currently defined supplier code') . '. ' . _('If this page is called from the selectSupplier page then this assures that a valid supplier is selected'),'warn'); include('includes/footer.inc'); exit; } else { $myrow = DB_fetch_array($Result); - if ($myrow['factorcompanyid'] == 0) { - $_SESSION['PaymentDetail' . $identifier]->SuppName = $myrow['suppname']; - $_SESSION['PaymentDetail' . $identifier]->Address1 = $myrow['address1']; - $_SESSION['PaymentDetail' . $identifier]->Address2 = $myrow['address2']; - $_SESSION['PaymentDetail' . $identifier]->Address3 = $myrow['address3']; - $_SESSION['PaymentDetail' . $identifier]->Address4 = $myrow['address4']; - $_SESSION['PaymentDetail' . $identifier]->Address5 = $myrow['address5']; - $_SESSION['PaymentDetail' . $identifier]->Address6 = $myrow['address6']; - $_SESSION['PaymentDetail' . $identifier]->SupplierID = $_GET['SupplierID']; - $_SESSION['PaymentDetail' . $identifier]->Currency = $myrow['currcode']; - $_POST['Currency'] = $_SESSION['PaymentDetail' . $identifier]->Currency; + if($myrow['factorcompanyid'] == 0) { + $_SESSION['PaymentDetail'.$identifier]->SuppName = $myrow['suppname']; + $_SESSION['PaymentDetail'.$identifier]->Address1 = $myrow['address1']; + $_SESSION['PaymentDetail'.$identifier]->Address2 = $myrow['address2']; + $_SESSION['PaymentDetail'.$identifier]->Address3 = $myrow['address3']; + $_SESSION['PaymentDetail'.$identifier]->Address4 = $myrow['address4']; + $_SESSION['PaymentDetail'.$identifier]->Address5 = $myrow['address5']; + $_SESSION['PaymentDetail'.$identifier]->Address6 = $myrow['address6']; + $_SESSION['PaymentDetail'.$identifier]->SupplierID = $_GET['SupplierID']; + $_SESSION['PaymentDetail'.$identifier]->Currency = $myrow['currcode']; + $_POST['Currency'] = $_SESSION['PaymentDetail'.$identifier]->Currency; } else { - $factorsql= "SELECT coyname, + $factorsql = "SELECT coyname, address1, address2, address3, @@ -110,26 +108,26 @@ $FactorResult = DB_query($factorsql); $myfactorrow = DB_fetch_array($FactorResult); - $_SESSION['PaymentDetail' . $identifier]->SuppName = $myrow['suppname'] . ' ' . _('care of') . ' ' . $myfactorrow['coyname']; - $_SESSION['PaymentDetail' . $identifier]->Address1 = $myfactorrow['address1']; - $_SESSION['PaymentDetail' . $identifier]->Address2 = $myfactorrow['address2']; - $_SESSION['PaymentDetail' . $identifier]->Address3 = $myfactorrow['address3']; - $_SESSION['PaymentDetail' . $identifier]->Address4 = $myfactorrow['address4']; - $_SESSION['PaymentDetail' . $identifier]->Address5 = $myfactorrow['address5']; - $_SESSION['PaymentDetail' . $identifier]->Address6 = $myfactorrow['address6']; - $_SESSION['PaymentDetail' . $identifier]->SupplierID = $_GET['SupplierID']; - $_SESSION['PaymentDetail' . $identifier]->Currency = $myrow['currcode']; - $_POST['Currency'] = $_SESSION['PaymentDetail' . $identifier]->Currency; + $_SESSION['PaymentDetail'.$identifier]->SuppName = $myrow['suppname'] . ' ' . _('care of') . ' ' . $myfactorrow['coyname']; + $_SESSION['PaymentDetail'.$identifier]->Address1 = $myfactorrow['address1']; + $_SESSION['PaymentDetail'.$identifier]->Address2 = $myfactorrow['address2']; + $_SESSION['PaymentDetail'.$identifier]->Address3 = $myfactorrow['address3']; + $_SESSION['PaymentDetail'.$identifier]->Address4 = $myfactorrow['address4']; + $_SESSION['PaymentDetail'.$identifier]->Address5 = $myfactorrow['address5']; + $_SESSION['PaymentDetail'.$identifier]->Address6 = $myfactorrow['address6']; + $_SESSION['PaymentDetail'.$identifier]->SupplierID = $_GET['SupplierID']; + $_SESSION['PaymentDetail'.$identifier]->Currency = $myrow['currcode']; + $_POST['Currency'] = $_SESSION['PaymentDetail'.$identifier]->Currency; } - if (isset($_GET['Amount']) AND is_numeric($_GET['Amount'])){ - $_SESSION['PaymentDetail' . $identifier]->Amount = filter_number_format($_GET['Amount']); + if(isset($_GET['Amount']) AND is_numeric($_GET['Amount'])) { + $_SESSION['PaymentDetail'.$identifier]->Amount = filter_number_format($_GET['Amount']); } } } -if (isset($_POST['BankAccount']) AND $_POST['BankAccount']!=''){ +if(isset($_POST['BankAccount']) AND $_POST['BankAccount']!='') { - $_SESSION['PaymentDetail' . $identifier]->Account=$_POST['BankAccount']; + $_SESSION['PaymentDetail'.$identifier]->Account=$_POST['BankAccount']; /*Get the bank account currency and set that too */ $ErrMsg = _('Could not get the currency of the bank account'); $result = DB_query("SELECT currcode, @@ -140,40 +138,40 @@ $ErrMsg); $myrow = DB_fetch_array($result); - if ($_SESSION['PaymentDetail' . $identifier]->AccountCurrency != $myrow['currcode']) { + if($_SESSION['PaymentDetail'.$identifier]->AccountCurrency != $myrow['currcode']) { //then we'd better update the functional exchange rate $DefaultFunctionalRate = true; - $_SESSION['PaymentDetail' . $identifier]->AccountCurrency = $myrow['currcode']; - $_SESSION['PaymentDetail' . $identifier]->CurrDecimalPlaces = $myrow['decimalplaces']; + $_SESSION['PaymentDetail'.$identifier]->AccountCurrency = $myrow['currcode']; + $_SESSION['PaymentDetail'.$identifier]->CurrDecimalPlaces = $myrow['decimalplaces']; } else { $DefaultFunctionalRate = false; } } else { - $_SESSION['PaymentDetail' . $identifier]->AccountCurrency = $_SESSION['CompanyRecord']['currencydefault']; - $_SESSION['PaymentDetail' . $identifier]->CurrDecimalPlaces = $_SESSION['CompanyRecord']['decimalplaces']; + $_SESSION['PaymentDetail'.$identifier]->AccountCurrency = $_SESSION['CompanyRecord']['currencydefault']; + $_SESSION['PaymentDetail'.$identifier]->CurrDecimalPlaces = $_SESSION['CompanyRecord']['decimalplaces']; } -if (isset($_POST['DatePaid']) AND $_POST['DatePaid']!='' AND Is_Date($_POST['DatePaid'])){ - $_SESSION['PaymentDetail' . $identifier]->DatePaid = $_POST['DatePaid']; +if(isset($_POST['DatePaid']) AND $_POST['DatePaid']!='' AND Is_Date($_POST['DatePaid'])) { + $_SESSION['PaymentDetail'.$identifier]->DatePaid = $_POST['DatePaid']; } -if (isset($_POST['ExRate']) AND $_POST['ExRate']!=''){ - $_SESSION['PaymentDetail' . $identifier]->ExRate=filter_number_format($_POST['ExRate']); //ex rate between payment currency and account currency +if(isset($_POST['ExRate']) AND $_POST['ExRate']!='') { + $_SESSION['PaymentDetail'.$identifier]->ExRate=filter_number_format($_POST['ExRate']); //ex rate between payment currency and account currency } -if (isset($_POST['FunctionalExRate']) AND $_POST['FunctionalExRate']!=''){ - $_SESSION['PaymentDetail' . $identifier]->FunctionalExRate=filter_number_format($_POST['FunctionalExRate']); //ex rate between bank account currency and functional (business home) currency +if(isset($_POST['FunctionalExRate']) AND $_POST['FunctionalExRate']!='') { + $_SESSION['PaymentDetail'.$identifier]->FunctionalExRate=filter_number_format($_POST['FunctionalExRate']); //ex rate between bank account currency and functional (business home) currency } -if (isset($_POST['Paymenttype']) AND $_POST['Paymenttype']!=''){ - $_SESSION['PaymentDetail' . $identifier]->Paymenttype = $_POST['Paymenttype']; +if(isset($_POST['Paymenttype']) AND $_POST['Paymenttype']!='') { + $_SESSION['PaymentDetail'.$identifier]->Paymenttype = $_POST['Paymenttype']; } -if (isset($_POST['Currency']) AND $_POST['Currency']!=''){ +if(isset($_POST['Currency']) AND $_POST['Currency']!='') { /* Payment currency is the currency that is being paid */ - $_SESSION['PaymentDetail' . $identifier]->Currency=$_POST['Currency']; // Payment currency + $_SESSION['PaymentDetail'.$identifier]->Currency=$_POST['Currency']; // Payment currency - if ($_SESSION['PaymentDetail' . $identifier]->AccountCurrency==$_SESSION['CompanyRecord']['currencydefault']){ + if($_SESSION['PaymentDetail'.$identifier]->AccountCurrency==$_SESSION['CompanyRecord']['currencydefault']) { $_POST['FunctionalExRate']=1; - $_SESSION['PaymentDetail' . $identifier]->FunctionalExRate=1; + $_SESSION['PaymentDetail'.$identifier]->FunctionalExRate=1; $SuggestedFunctionalExRate =1; } else { @@ -187,22 +185,22 @@ */ /*Get suggested FunctionalExRate - between bank account and home functional currency */ - $result = DB_query("SELECT rate FROM currencies WHERE currabrev='" . $_SESSION['PaymentDetail' . $identifier]->AccountCurrency . "'"); + $result = DB_query("SELECT rate FROM currencies WHERE currabrev='" . $_SESSION['PaymentDetail'.$identifier]->AccountCurrency . "'"); $myrow = DB_fetch_row($result); $SuggestedFunctionalExRate = $myrow[0]; - if ($DefaultFunctionalRate) { - $_SESSION['PaymentDetail' . $identifier]->FunctionalExRate = $SuggestedFunctionalExRate; + if($DefaultFunctionalRate) { + $_SESSION['PaymentDetail'.$identifier]->FunctionalExRate = $SuggestedFunctionalExRate; } } - if ($_POST['Currency']==$_SESSION['PaymentDetail' . $identifier]->AccountCurrency){ + if($_POST['Currency']==$_SESSION['PaymentDetail'.$identifier]->AccountCurrency) { /* if the currency being paid is the same as the bank account currency then default ex rate to 1 */ $_POST['ExRate']=1; - $_SESSION['PaymentDetail' . $identifier]->ExRate = 1; //ex rate between payment currency and account currency is 1 if they are the same!! + $_SESSION['PaymentDetail'.$identifier]->ExRate = 1; //ex rate between payment currency and account currency is 1 if they are the same!! $SuggestedExRate=1; } elseif(isset($_POST['Currency'])) { /*Get the exchange rate between the bank account currency and the payment currency*/ - $result = DB_query("SELECT rate FROM currencies WHERE currabrev='" . $_SESSION['PaymentDetail' . $identifier]->Currency . "'"); + $result = DB_query("SELECT rate FROM currencies WHERE currabrev='" . $_SESSION['PaymentDetail'.$identifier]->Currency . "'"); $myrow = DB_fetch_row($result); $TableExRate = $myrow[0]; //this is the rate of exchange between the functional currency and the payment currency /*Calculate cross rate to suggest appropriate exchange rate between payment currency and account currency */ @@ -210,57 +208,85 @@ } } -if (isset($_POST['BankTransRef']) AND $_POST['BankTransRef']!=''){ // Reference on Bank Transactions Inquiry - $_SESSION['PaymentDetail' . $identifier]->BankTransRef=$_POST['BankTransRef']; +// Reference in banking transactions: +if(isset($_POST['BankTransRef']) AND $_POST['BankTransRef']!='') { + $_SESSION['PaymentDetail'.$identifier]->BankTransRef = $_POST['BankTransRef']; } -if (isset($_POST['Narrative']) AND $_POST['Narrative']!=''){ - $_SESSION['PaymentDetail' . $identifier]->Narrative=$_POST['Narrative']; +// Narrative in general ledger transactions: +if(isset($_POST['Narrative']) AND $_POST['Narrative']!='') { + $_SESSION['PaymentDetail'.$identifier]->Narrative = $_POST['Narrative']; } -if (isset($_POST['Amount']) AND $_POST['Amount']!=''){ - $_SESSION['PaymentDetail' . $identifier]->Amount=filter_number_format($_POST['Amount']); +// Supplier narrative in general ledger transactions: +if(isset($_POST['gltrans_narrative'])) { + if($_POST['gltrans_narrative']=='') { + $_SESSION['PaymentDetail'.$identifier]->gltrans_narrative = $_POST['Narrative'];// If blank, it uses the bank narrative. + } else { + $_SESSION['PaymentDetail'.$identifier]->gltrans_narrative = $_POST['gltrans_narrative']; + } +} +// Supplier reference in supplier transactions: +if(isset($_POST['supptrans_suppreference'])) { + if($_POST['supptrans_suppreference']=='') { + $_SESSION['PaymentDetail'.$identifier]->supptrans_suppreference = $_POST['Paymenttype'];// If blank, it uses the payment type. + } else { + $_SESSION['PaymentDetail'.$identifier]->supptrans_suppreference = $_POST['supptrans_suppreference']; + } +} +// Transaction text in supplier transactions: +if(isset($_POST['supptrans_transtext'])) { + if($_POST['supptrans_transtext']=='') { + $_SESSION['PaymentDetail'.$identifier]->supptrans_transtext = $_POST['Narrative'];// If blank, it uses the narrative. + } else { + $_SESSION['PaymentDetail'.$identifier]->supptrans_transtext = $_POST['supptrans_transtext']; + } +} + +if(isset($_POST['Amount']) AND $_POST['Amount']!='') { + $_SESSION['PaymentDetail'.$identifier]->Amount = filter_number_format($_POST['Amount']); } else { - if (!isset($_SESSION['PaymentDetail' . $identifier]->Amount)) { - $_SESSION['PaymentDetail' . $identifier]->Amount=0; + if(!isset($_SESSION['PaymentDetail'.$identifier]->Amount)) { + $_SESSION['PaymentDetail'.$identifier]->Amount = 0; } } -if (isset($_POST['Discount']) AND $_POST['Discount']!=''){ - $_SESSION['PaymentDetail' . $identifier]->Discount=filter_number_format($_POST['Discount']); + +if(isset($_POST['Discount']) AND $_POST['Discount']!='') { + $_SESSION['PaymentDetail'.$identifier]->Discount = filter_number_format($_POST['Discount']); } else { - if (!isset($_SESSION['PaymentDetail' . $identifier]->Discount)) { - $_SESSION['PaymentDetail' . $identifier]->Discount=0; - } + if(!isset($_SESSION['PaymentDetail'.$identifier]->Discount)) { + $_SESSION['PaymentDetail'.$identifier]->Discount = 0; + } } -if (isset($_POST['CommitBatch'])){ +if(isset($_POST['CommitBatch'])) { - /* once the GL analysis of the payment is entered (if the Creditors_GLLink is active), - process all the data in the session cookie into the DB creating a banktrans record for - the payment in the batch and SuppTrans record for the supplier payment if a supplier was selected - A GL entry is created for each GL entry (only one for a supplier entry) and one for the bank - account credit. + /* once the GL analysis of the payment is entered (if the Creditors_GLLink is active), + process all the data in the session cookie into the DB creating a banktrans record for + the payment in the batch and SuppTrans record for the supplier payment if a supplier was selected + A GL entry is created for each GL entry (only one for a supplier entry) and one for the bank + account credit. - NB allocations against supplier payments are a separate exercice + NB allocations against supplier payments are a separate exercise - if GL integrated then - first off run through the array of payment items $_SESSION['Payment']->GLItems and - create GL Entries for the GL payment items - */ + if GL integrated then + first off run through the array of payment items $_SESSION['Payment']->GLItems and + create GL Entries for the GL payment items + */ - /*First off check we have an amount entered as paid ?? */ - $TotalAmount =0; - foreach ($_SESSION['PaymentDetail' . $identifier]->GLItems AS $PaymentItem) { + /*First off check we have an amount entered as paid ?? */ + $TotalAmount = 0; + foreach($_SESSION['PaymentDetail'.$identifier]->GLItems AS $PaymentItem) { $TotalAmount += $PaymentItem->Amount; } - if ($TotalAmount==0 AND - ($_SESSION['PaymentDetail' . $identifier]->Discount + $_SESSION['PaymentDetail' . $identifier]->Amount)/$_SESSION['PaymentDetail' . $identifier]->ExRate ==0){ + if($TotalAmount==0 AND + ($_SESSION['PaymentDetail'.$identifier]->Discount + $_SESSION['PaymentDetail'.$identifier]->Amount)/$_SESSION['PaymentDetail'.$identifier]->ExRate ==0) { prnMsg( _('This payment has no amounts entered and will not be processed'),'warn'); include('includes/footer.inc'); exit; } - if ($_POST['BankAccount']=='') { + if($_POST['BankAccount']=='') { prnMsg( _('No bank account has been selected so this payment cannot be processed'),'warn'); include('includes/footer.inc'); exit; @@ -275,21 +301,21 @@ $BankAccounts = array(); $i=0; - while ($Act = DB_fetch_row($result)){ + while($Act = DB_fetch_row($result)) { $BankAccounts[$i]= $Act[0]; $i++; } - $PeriodNo = GetPeriod($_SESSION['PaymentDetail' . $identifier]->DatePaid,$db); + $PeriodNo = GetPeriod($_SESSION['PaymentDetail'.$identifier]->DatePaid,$db); - $sql="SELECT usepreprintedstationery + $sql = "SELECT usepreprintedstationery FROM paymentmethods - WHERE paymentname='" . $_SESSION['PaymentDetail' . $identifier]->Paymenttype ."'"; + WHERE paymentname='" . $_SESSION['PaymentDetail'.$identifier]->Paymenttype ."'"; $result=DB_query($sql); $myrow=DB_fetch_row($result); // first time through commit if supplier cheque then print it first - if ((!isset($_POST['ChequePrinted'])) + if((!isset($_POST['ChequePrinted'])) AND (!isset($_POST['PaymentCancelled'])) AND ($myrow[0] == 1)) { // it is a supplier payment by cheque and haven't printed yet so print cheque @@ -300,7 +326,7 @@ <br />'; echo '<form method="post" action="' . htmlspecialchars($_SERVER['PHP_SELF'] . '?identifier=' . $identifier) . '">'; - echo '<div>'; + echo '<div>'; echo '<input type="hidden" name="FormID" value="' . $_SESSION['FormID'] . '" />'; echo _('Has the cheque been printed') . '? <br /> @@ -310,9 +336,9 @@ <input type="submit" name="ChequePrinted" value="' . _('Yes / Continue') . '" /> <input type="submit" name="PaymentCancelled" value="' . _('No / Cancel Payment') . '" />'; - echo '<br />Payment amount = ' . $_SESSION['PaymentDetail' . $identifier]->Amount; - echo '</div> - </form>'; + echo '<br />Payment amount = ' . $_SESSION['PaymentDetail'.$identifier]->Amount; + echo '</div> + </form>'; } else { @@ -321,55 +347,58 @@ $result = DB_Txn_Begin(); - if ($_SESSION['PaymentDetail' . $identifier]->SupplierID=='') { + if($_SESSION['PaymentDetail'.$identifier]->SupplierID=='') { //its a nominal bank transaction type 1 $TransNo = GetNextTransNo( 1, $db); $TransType = 1; - if ($_SESSION['CompanyRecord']['gllink_creditors']==1){ /* then enter GLTrans */ + if($_SESSION['CompanyRecord']['gllink_creditors']==1) { /* then enter GLTrans */ $TotalAmount=0; - foreach ($_SESSION['PaymentDetail' . $identifier]->GLItems as $PaymentItem) { + foreach($_SESSION['PaymentDetail'.$identifier]->GLItems as $PaymentItem) { /*The functional currency amount will be the - payment currenct amount / the bank account currency exchange rate - to get to the bank account currency + payment currenct amount / the bank account currency exchange rate - to get to the bank account currency then / the functional currency exchange rate to get to the functional currency */ - if ($PaymentItem->Cheque=='') { + if($PaymentItem->Cheque=='') { $PaymentItem->Cheque=0; } - $SQL = "INSERT INTO gltrans (type, - typeno, - trandate, - periodno, - account, - narrative, - amount, - chequeno, - tag) - VALUES (1, - '" . $TransNo . "', - '" . FormatDateForSQL($_SESSION['PaymentDetail' . $identifier]->DatePaid) . "', - '" . $PeriodNo . "', - '" . $PaymentItem->GLCode . "', - '" . $PaymentItem->Narrative . "', - '" . ($PaymentItem->Amount/$_SESSION['PaymentDetail' . $identifier]->ExRate/$_SESSION['PaymentDetail' . $identifier]->FunctionalExRate) . "', - '". $PaymentItem->Cheque ."', - '" . $PaymentItem->Tag . "')"; + $SQL = "INSERT INTO gltrans ( + type, + typeno, + trandate, + periodno, + account, + narrative, + amount, + chequeno, + tag + ) VALUES ( + 1,'" . + $TransNo . "','" . + FormatDateForSQL($_SESSION['PaymentDetail'.$identifier]->DatePaid) . "','" . + $PeriodNo . "','" . + $PaymentItem->GLCode . "','" . + $PaymentItem->Narrative . "','" . + ($PaymentItem->Amount/$_SESSION['PaymentDetail'.$identifier]->ExRate/$_SESSION['PaymentDetail'.$identifier]->FunctionalExRate) . "','". + $PaymentItem->Cheque ."','" . + $PaymentItem->Tag . + "')"; $ErrMsg = _('Cannot insert a GL entry for the payment using the SQL'); $result = DB_query($SQL,$ErrMsg,_('The SQL that failed was'),true); $TotalAmount += $PaymentItem->Amount; } - $_SESSION['PaymentDetail' . $identifier]->Amount = $TotalAmount; - $_SESSION['PaymentDetail' . $identifier]->Discount=0; + $_SESSION['PaymentDetail'.$identifier]->Amount = $TotalAmount; + $_SESSION['PaymentDetail'.$identifier]->Discount=0; } //Run through the GL postings to check to see if there is a posting to another bank account (or the same one) if there is then a receipt needs to be created for this account too - foreach ($_SESSION['PaymentDetail' . $identifier]->GLItems as $PaymentItem) { + foreach($_SESSION['PaymentDetail'.$identifier]->GLItems as $PaymentItem) { - if (in_array($PaymentItem->GLCode, $BankAccounts)) { + if(in_array($PaymentItem->GLCode, $BankAccounts)) { /*Need to deal with the case where the payment from one bank account could be to a bank account in another currency */ @@ -383,15 +412,15 @@ $TrfToBankCurrCode = $TrfToBankRow['currcode']; $TrfToBankExRate = $TrfToBankRow['rate']; - if ($_SESSION['PaymentDetail' . $identifier]->AccountCurrency == $TrfToBankCurrCode){ + if($_SESSION['PaymentDetail'.$identifier]->AccountCurrency == $TrfToBankCurrCode) { /*Make sure to use the same rate if the transfer is between two bank accounts in the same currency */ - $TrfToBankExRate = $_SESSION['PaymentDetail' . $identifier]->FunctionalExRate; + $TrfToBankExRate = $_SESSION['PaymentDetail'.$identifier]->FunctionalExRate; } /*Consider an example functional currency NZD bank account in AUD - 1 NZD = 0.90 AUD (FunctionalExRate) - paying USD - 1 AUD = 0.85 USD (ExRate) + paying USD - 1 AUD = 0.85 USD (ExRate) to a bank account in EUR - 1 NZD = 0.52 EUR oh yeah - now we are getting tricky! @@ -409,124 +438,128 @@ the receipt record will read amount 100 (USD) - exrate (1 EUR = (0.85 x 0.90)/0.52 USD) + exrate (1 EUR = (0.85 x 0.90)/0.52 USD) (ExRate x FunctionalExRate) / USD Functional ExRate - functionalexrate = (1NZD = EUR 0.52) + functionalexrate = (1NZD = EUR 0.52) */ $ReceiptTransNo = GetNextTransNo( 2, $db); - $SQL= "INSERT INTO banktrans (transno, - type, - bankact, - ref, - exrate, - functionalexrate, - transdate, - banktranstype, - amount, - currcode) - VALUES ('" . $ReceiptTransNo . "', - 2, - '" . $PaymentItem->GLCode . "', - '" . _('Act Transfer From ') . $_SESSION['PaymentDetail' . $identifier]->Account . ' - ' . $PaymentItem->Narrative . "', - '" . (($_SESSION['PaymentDetail' . $identifier]->ExRate * $_SESSION['PaymentDetail' . $identifier]->FunctionalExRate)/$TrfToBankExRate). "', - '" . $TrfToBankExRate . "', - '" . FormatDateForSQL($_SESSION['PaymentDetail' . $identifier]->DatePaid) . "', - '" . $_SESSION['PaymentDetail' . $identifier]->Paymenttype . "', - '" . $PaymentItem->Amount . "', - '" . $_SESSION['PaymentDetail' . $identifier]->Currency . "' - )"; + $SQL = "INSERT INTO banktrans ( + transno, + type, + bankact, + ref, + exrate, + functionalexrate, + transdate, + banktranstype, + amount, + currcode + ) VALUES ('" . + $ReceiptTransNo . "', + 2,'" . + $PaymentItem->GLCode . "','" . + _('Act Transfer From ') . $_SESSION['PaymentDetail'.$identifier]->Account . ' - ' . $PaymentItem->Narrative . "','" . + (($_SESSION['PaymentDetail'.$identifier]->ExRate * $_SESSION['PaymentDetail'.$identifier]->FunctionalExRate)/$TrfToBankExRate). "','" . + $TrfToBankExRate . "','" . + FormatDateForSQL($_SESSION['PaymentDetail'.$identifier]->DatePaid) . "','" . + $_SESSION['PaymentDetail'.$identifier]->Paymenttype . "','" . + $PaymentItem->Amount . "','" . + $_SESSION['PaymentDetail'.$identifier]->Currency . + "')"; $ErrMsg = _('Cannot insert a bank transaction because'); - $DbgMsg = _('Cannot insert a bank transaction with the SQL'); + $DbgMsg = _('Cannot insert a bank transaction with the SQL'); $result = DB_query($SQL,$ErrMsg,$DbgMsg,true); - } } } else { - /*Its a supplier payment type 22 */ - $CreditorTotal = (($_SESSION['PaymentDetail' . $identifier]->Discount + $_SESSION['PaymentDetail' . $identifier]->Amount)/$_SESSION['PaymentDetail' . $identifier]->ExRate)/$_SESSION['PaymentDetail' . $identifier]->FunctionalExRate; + /*Its a supplier payment type 22 */ + $CreditorTotal = (($_SESSION['PaymentDetail'.$identifier]->Discount + $_SESSION['PaymentDetail'.$identifier]->Amount)/$_SESSION['PaymentDetail'.$identifier]->ExRate)/$_SESSION['PaymentDetail'.$identifier]->FunctionalExRate; $TransNo = GetNextTransNo(22, $db); $TransType = 22; /* Create a SuppTrans entry for the supplier payment */ - $SQL = "INSERT INTO supptrans (transno, - type, - supplierno, - trandate, - inputdate, - suppreference, - rate, - ovamount, - transtext) "; - $SQL = $SQL . "valueS ('" . $TransNo . "', - 22, - '" . $_SESSION['PaymentDetail' . $identifier]->SupplierID . "', - '" . FormatDateForSQL($_SESSION['PaymentDetail' . $identifier]->DatePaid) . "', - '" . date('Y-m-d H-i-s') . "', - '" . $_SESSION['PaymentDetail' . $identifier]->Paymenttype . "', - '" . ($_SESSION['PaymentDetail' . $identifier]->FunctionalExRate * $_SESSION['PaymentDetail' . $identifier]->ExRate) . "', - '" . (-$_SESSION['PaymentDetail' . $identifier]->Amount-$_SESSION['PaymentDetail' . $identifier]->Discount) . "', - '" . $_SESSION['PaymentDetail' . $identifier]->Narrative . "' - )"; - - $ErrMsg = _('Cannot insert a payment transaction against the supplier because'); + $SQL = "INSERT INTO supptrans ( + transno, + type, + supplierno, + trandate, + inputdate, + suppreference, + rate, + ovamount, + transtext + ) VALUES ('" . + $TransNo . "', + 22,'" . + $_SESSION['PaymentDetail'.$identifier]->SupplierID . "','" . + FormatDateForSQL($_SESSION['PaymentDetail'.$identifier]->DatePaid) . "','" . + date('Y-m-d H-i-s') . "','" . + $_SESSION['PaymentDetail'.$identifier]->supptrans_suppreference . "','" . + ($_SESSION['PaymentDetail'.$identifier]->FunctionalExRate * $_SESSION['PaymentDetail'.$identifier]->ExRate) . "','" . + (-$_SESSION['PaymentDetail'.$identifier]->Amount-$_SESSION['PaymentDetail'.$identifier]->Discount) . "','" . + $_SESSION['PaymentDetail'.$identifier]->supptrans_transtext . + "')"; + $ErrMsg = _('Cannot insert a payment transaction against the supplier because'); $DbgMsg = _('Cannot insert a payment transaction against the supplier using the SQL'); - $result = DB_query($SQL,$ErrMsg,$DbgMsg,true); + $result = DB_query($SQL, $ErrMsg, $DbgMsg, true); /*Update the supplier master with the date and amount of the last payment made */ $SQL = "UPDATE suppliers - SET lastpaiddate = '" . FormatDateForSQL($_SESSION['PaymentDetail' . $identifier]->DatePaid) . "', - lastpaid='" . $_SESSION['PaymentDetail' . $identifier]->Amount ."' - WHERE suppliers.supplierid='" . $_SESSION['PaymentDetail' . $identifier]->SupplierID . "'"; - - - + SET lastpaiddate = '" . FormatDateForSQL($_SESSION['PaymentDetail'.$identifier]->DatePaid) . "', + lastpaid='" . $_SESSION['PaymentDetail'.$identifier]->Amount ."' + WHERE suppliers.supplierid='" . $_SESSION['PaymentDetail'.$identifier]->SupplierID . "'"; $ErrMsg = _('Cannot update the supplier record for the date of the last payment made because'); $DbgMsg = _('Cannot update the supplier record for the date of the last payment made using the SQL'); $result = DB_query($SQL,$ErrMsg,$DbgMsg,true); - $_SESSION['PaymentDetail' . $identifier]->Narrative = $_SESSION['PaymentDetail' . $identifier]->SupplierID . ' - ' . $_SESSION['PaymentDetail' . $identifier]->Narrative; + $_SESSION['PaymentDetail'.$identifier]->gltrans_narrative = $_SESSION['PaymentDetail'.$identifier]->SupplierID . ' - ' . $_SESSION['PaymentDetail'.$identifier]->gltrans_narrative; - if ($_SESSION['CompanyRecord']['gllink_creditors']==1){ /* then do the supplier control GLTrans */ + if($_SESSION['CompanyRecord']['gllink_creditors']==1) { /* then do the supplier control GLTrans */ /* Now debit creditors account with payment + discount */ - $SQL="INSERT INTO gltrans ( type, - typeno, - trandate, - periodno, - account, - narrative, - amount) "; - $SQL=$SQL . "VALUES (22, - '" . $TransNo . "', - '" . FormatDateForSQL($_SESSION['PaymentDetail' . $identifier]->DatePaid) . "', - '" . $PeriodNo . "', - '" . $_SESSION['CompanyRecord']['creditorsact'] . "', - '" . $_SESSION['PaymentDetail' . $identifier]->Narrative . "', - '" . $CreditorTotal . "')"; + $SQL = "INSERT INTO gltrans ( + type, + typeno, + trandate, + periodno, + account, + narrative, + amount + ) VALUES ( + 22,'" . + $TransNo . "','" . + FormatDateForSQL($_SESSION['PaymentDetail'.$identifier]->DatePaid) . "','" . + $PeriodNo . "','" . + $_SESSION['CompanyRecord']['creditorsact'] . "','" . + $_SESSION['PaymentDetail'.$identifier]->gltrans_narrative . "','" . + $CreditorTotal . + "')"; $ErrMsg = _('Cannot insert a GL transaction for the creditors account debit because'); $DbgMsg = _('Cannot insert a GL transaction for the creditors account debit using the SQL'); $result = DB_query($SQL,$ErrMsg,$DbgMsg,true); - if ($_SESSION['PaymentDetail' . $identifier]->Discount !=0){ + if($_SESSION['PaymentDetail'.$identifier]->Discount != 0) { /* Now credit Discount received account with discounts */ - $SQL="INSERT INTO gltrans ( type, - typeno, - trandate, - periodno, - account, - narrative, - amount) - VALUES (22, - '" . $TransNo . "', - '" . FormatDateForSQL($_SESSION['PaymentDetail' . $identifier]->DatePaid) . "', - '" . $PeriodNo . "', - '" . $_SESSION['CompanyRecord']['pytdiscountact'] . "', - '" . $_SESSION['PaymentDetail' . $identifier]->Narrative . "', - '" . (-$_SESSION['PaymentDetail' . $identifier]->Discount/$_SESSION['PaymentDetail' . $identifier]->ExRate/$_SESSION['PaymentDetail' . $identifier]->FunctionalExRate) . "' - )"; + $SQL = "INSERT INTO gltrans ( + type, + typeno, + trandate, + periodno, + account, + narrative, + amount + ) VALUES ( + 22,'" . + $TransNo . "','" . + FormatDateForSQL($_SESSION['PaymentDetail'.$identifier]->DatePaid) . "','" . + $PeriodNo . "','" . + $_SESSION['CompanyRecord']['pytdiscountact'] . "','" . + $_SESSION['PaymentDetail'.$identifier]->gltrans_narrative . "','" . + (-$_SESSION['PaymentDetail'.$identifier]->Discount/$_SESSION['PaymentDetail'.$identifier]->ExRate/$_SESSION['PaymentDetail'.$identifier]->FunctionalExRate) . + "')"; $ErrMsg = _('Cannot insert a GL transaction for the payment discount credit because'); $DbgMsg = _('Cannot insert a GL transaction for the payment discount credit using the SQL'); $result = DB_query($SQL,$ErrMsg,$DbgMsg,true); @@ -535,55 +568,58 @@ } // end if gl creditors } // end if supplier - if ($_SESSION['CompanyRecord']['gllink_creditors']==1){ /* then do the common GLTrans */ + if($_SESSION['CompanyRecord']['gllink_creditors'] == 1) { /* then do the common GLTrans */ - if ($_SESSION['PaymentDetail' . $identifier]->Amount !=0){ + if($_SESSION['PaymentDetail'.$identifier]->Amount != 0) { /* Bank account entry first */ - $SQL = "INSERT INTO gltrans ( type, - typeno, - trandate, - periodno, - account, - narrative, - amount) - VALUES ('" . $TransType . "', - '" . $TransNo . "', - '" . FormatDateForSQL($_SESSION['PaymentDetail' . $identifier]->DatePaid) . "', - '" . $PeriodNo . "', - '" . $_SESSION['PaymentDetail' . $identifier]->Account . "', - '" . $_SESSION['PaymentDetail' . $identifier]->Narrative . "', - '" . (-$_SESSION['PaymentDetail' . $identifier]->Amount/$_SESSION['PaymentDetail' . $identifier]->ExRate/$_SESSION['PaymentDetail' . $identifier]->FunctionalExRate) . "')"; - - $ErrMsg = _('Cannot insert a GL transaction for the bank account credit because'); - $DbgMsg = _('Cannot insert a GL transaction for the bank account credit using the SQL'); + $SQL = "INSERT INTO gltrans ( + type, + typeno, + trandate, + periodno, + account, + narrative, + amount + ) VALUES ('" . + $TransType . "','" . + $TransNo . "','" . + FormatDateForSQL($_SESSION['PaymentDetail'.$identifier]->DatePaid) . "','" . + $PeriodNo . "','" . + $_SESSION['PaymentDetail'.$identifier]->Account . "','" . + $_SESSION['PaymentDetail'.$identifier]->Narrative . "','" . + (-$_SESSION['PaymentDetail'.$identifier]->Amount/$_SESSION['PaymentDetail'.$identifier]->ExRate/$_SESSION['PaymentDetail'.$identifier]->FunctionalExRate) . + "')"; + $ErrMsg = _('Cannot insert a GL transaction for the bank account credit because'); + $DbgMsg = _('Cannot insert a GL transaction for the bank account credit using the SQL'); $result = DB_query($SQL,$ErrMsg,$DbgMsg,true); - EnsureGLEntriesBalance($TransType,$TransNo,$db); } } /*now enter the BankTrans entry */ - $SQL="INSERT INTO banktrans (transno, - type, - bankact, - ref, - exrate, - functionalexrate, - transdate, - banktranstype, - amount, - currcode) - VALUES ('" . $TransNo . "', - '" . $TransType . "', - '" . $_SESSION['PaymentDetail' . $identifier]->Account . "', - '" . $_SESSION['PaymentDetail' . $identifier]->BankTransRef . "', - '" . $_SESSION['PaymentDetail' . $identifier]->ExRate . "', - '" . $_SESSION['PaymentDetail' . $identifier]->FunctionalExRate . "', - '" . FormatDateForSQL($_SESSION['PaymentDetail' . $identifier]->DatePaid) . "', - '" . $_SESSION['PaymentDetail' . $identifier]->Paymenttype . "', - '" . -$_SESSION['PaymentDetail' . $identifier]->Amount . "', - '" . $_SESSION['PaymentDetail' . $identifier]->Currency . "')"; - + $SQL = "INSERT INTO banktrans ( + transno, + type, + bankact, + ref, + exrate, + functionalexrate, + transdate, + banktranstype, + amount, + currcode + ) VALUES ('" . + $TransNo . "','" . + $TransType . "','" . + $_SESSION['PaymentDetail'.$identifier]->Account . "','" . + $_SESSION['PaymentDetail'.$identifier]->BankTransRef . "','" . + $_SESSION['PaymentDetail'.$identifier]->ExRate . "','" . + $_SESSION['PaymentDetail'.$identifier]->FunctionalExRate . "','" . + FormatDateForSQL($_SESSION['PaymentDetail'.$identifier]->DatePaid) . "','" . + $_SESSION['PaymentDetail'.$identifier]->Paymenttype . "','" . + -$_SESSION['PaymentDetail'.$identifier]->Amount . "','" . + $_SESSION['PaymentDetail'.$identifier]->Currency . + "')"; $ErrMsg = _('Cannot insert a bank transaction because'); $DbgMsg = _('Cannot insert a bank transaction using the SQL'); $result = DB_query($SQL,$ErrMsg,$DbgMsg,true); @@ -591,7 +627,7 @@ DB_Txn_Commit(); prnMsg(_('Payment') . ' ' . $TransNo . ' ' . _('has been successfully entered'),'success'); - $LastSupplier = ($_SESSION['PaymentDetail' . $identifier]->SupplierID); + $LastSupplier = ($_SESSION['PaymentDetail'.$identifier]->SupplierID); unset($_POST['BankAccount']); unset($_POST['DatePaid']); @@ -599,22 +635,26 @@ unset($_POST['Paymenttype']); unset($_POST['Currency']); unset($_POST['Narrative']); + unset($_POST['gltrans_narrative']); + unset($_POST['supptrans_suppreference']); + unset($_POST['supptrans_transtext']); unset($_POST['Amount']); unset($_POST['Discount']); - unset($_SESSION['PaymentDetail' . $identifier]->GLItems); - unset($_SESSION['PaymentDetail' . $identifier]); + unset($_SESSION['PaymentDetail'.$identifier]->GLItems); + unset($_SESSION['PaymentDetail'.$identifier]->SupplierID); + unset($_SESSION['PaymentDetail'.$identifier]); /*Set up a newy in case user wishes to enter another */ - if (isset($LastSupplier) and $LastSupplier!='') { + if(isset($LastSupplier) and $LastSupplier!='') { $SupplierSQL="SELECT suppname FROM suppliers WHERE supplierid='".$LastSupplier."'"; - $SupplierResult = DB_query($SupplierSQL); - $SupplierRow = DB_fetch_array($SupplierResult); - $TransSQL = "SELECT id FROM supptrans WHERE type=22 AND transno='" . $TransNo . "'"; - $TransResult = DB_query($TransSQL); - $TransRow = DB_fetch_array($TransResult); - echo '<br /><a href="' . $RootPath . '/SupplierAllocations.php?AllocTrans=' . $TransRow['id'] . '">' . _('Allocate this payment') . '</a>'; - echo '<br /><a href="' . $RootPath . '/Payments.php?SupplierID=' . $LastSupplier . '">' . _('Enter another Payment for') . ' ' . $SupplierRow['suppname'] . '</a>'; + $SupplierResult = DB_query($SupplierSQL); + $SupplierRow = DB_fetch_array($SupplierResult); + $TransSQL = "SELECT id FROM supptrans WHERE type=22 AND transno='" . $TransNo . "'"; + $TransResult = DB_query($TransSQL); + $TransRow = DB_fetch_array($TransResult); + echo '<br /><a href="' . $RootPath . '/SupplierAllocations.php?AllocTrans=' . $TransRow['id'] . '">' . _('Allocate this payment') . '</a>'; + echo '<br /><a href="' . $RootPath . '/Payments.php?SupplierID=' . $LastSupplier . '">' . _('Enter another Payment for') . ' ' . $SupplierRow['suppname'] . '</a>'; } else { echo '<br /><a href="' . htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8') . '">' . _('Enter another General Ledger Payment') . '</a><br />'; } @@ -623,9 +663,9 @@ include('includes/footer.inc'); exit; -} elseif (isset($_GET['Delete'])){ - /* User hit delete the receipt entry from the batch */ - $_SESSION['PaymentDetail' . $identifier]->Remove_GLItem($_GET['Delete']); +} elseif(isset($_GET['Delete'])) { + /* User hit delete the receipt entry from the batch */ + $_SESSION['PaymentDetail'.$identifier]->Remove_GLItem($_GET['Delete']); //recover the bank account relative setting $_POST['BankAccount'] = $_SESSION['PaymentDetail'.$identifier]->Account; $_POST['DatePaid'] = $_SESSION['PaymentDetail'.$identifier]->DatePaid; @@ -636,12 +676,12 @@ $_POST['BankTransRef'] = $_SESSION['PaymentDetail'.$identifier]->BankTransRef; $_POST['Narrative'] = $_SESSION['PaymentDetail'.$identifier]->Narrative; -} elseif (isset($_POST['Process']) AND !$BankAccountEmpty){ //user hit submit a new GL Analysis line into the payment +} elseif(isset($_POST['Process']) AND !$BankAccountEmpty) { //user hit submit a new GL Analysis line into the payment $ChequeNoSQL="SELECT account FROM gltrans WHERE chequeno='" . $_POST['Cheque'] ."'"; $ChequeNoResult=DB_query($ChequeNoSQL); - if (is_numeric($_POST['GLManualCode'])){ + if(is_numeric($_POST['GLManualCode'])) { $SQL = "SELECT accountname FROM chartmaster @@ -649,31 +689,31 @@ $Result=DB_query($SQL); - if (DB_num_rows($Result)==0){ + if(DB_num_rows($Result)==0) { prnMsg( _('The manual GL code entered does not exist in the database') . ' - ' . _('so this GL analysis item could not be added'),'warn'); unset($_POST['GLManualCode']); - } else if (DB_num_rows($ChequeNoResult)!=0 AND $_POST['Cheque']!=''){ + } elseif(DB_num_rows($ChequeNoResult)!=0 AND $_POST['Cheque']!='') { prnMsg( _('The Cheque/Voucher number has already been used') . ' - ' . _('This GL analysis item could not be added'),'error'); } else { $myrow = DB_fetch_array($Result); $AllowThisPosting = true; - if ($_SESSION['ProhibitJournalsToControlAccounts'] == 1) { - if ($_SESSION['CompanyRecord']['gllink_debtors'] == '1' AND $_POST['GLManualCode'] == $_SESSION['CompanyRecord']['debtorsact']) { + if($_SESSION['ProhibitJournalsToControlAccounts'] == 1) { + if($_SESSION['CompanyRecord']['gllink_debtors'] == '1' AND $_POST['GLManualCode'] == $_SESSION['CompanyRecord']['debtorsact']) { prnMsg(_('Payments involving the debtors control account cannot be entered. The general ledger debtors ledger (AR) integration is enabled so control accounts are automatically maintained. This setting can be disabled in System Configuration'), 'warn'); $AllowThisPosting = false; } - if ($_SESSION['CompanyRecord']['gllink_creditors'] == '1' AND + if($_SESSION['CompanyRecord']['gllink_creditors'] == '1' AND ($_POST['GLManualCode'] == $_SESSION['CompanyRecord']['creditorsact'] OR $_POST['GLManualCode'] == $_SESSION['CompanyRecord']['grnact'])) { prnMsg(_('Payments involving the creditors control account or the GRN suspense account cannot be entered. The general ledger creditors ledger (AP) integration is enabled so control accounts are automatically maintained. This setting can be disabled in System Configuration'), 'warn'); $AllowThisPosting = false; } - if ($_POST['GLManualCode'] == $_SESSION['CompanyRecord']['retainedearnings']) { + if($_POST['GLManualCode'] == $_SESSION['CompanyRecord']['retainedearnings']) { prnMsg(_('Payments involving the retained earnings control account cannot be entered. This account is automtically maintained.'), 'warn'); $AllowThisPosting = false; } } - if ($AllowThisPosting) { - $_SESSION['PaymentDetail' . $identifier]->add_to_glanalysis(filter_number_format($_POST['GLAmount']), + if($AllowThisPosting) { + $_SESSION['PaymentDetail'.$identifier]->add_to_glanalysis(filter_number_format($_POST['GLAmount']), $_POST['GLNarrative'], $_POST['GLManualCode'], $myrow['accountname'], @@ -682,15 +722,15 @@ unset($_POST['GLManualCode']); } } - } else if (DB_num_rows($ChequeNoResult)!=0 AND $_POST['Cheque']!=''){ + } elseif(DB_num_rows($ChequeNoResult)!=0 AND $_POST['Cheque']!='') { prnMsg( _('The cheque number has already been used') . ' - ' . _('This GL analysis item could not be added'),'error'); - } else if ($_POST['GLCode'] == '') { + } elseif($_POST['GLCode'] == '') { prnMsg( _('No General Ledger code has been chosen') . ' - ' . _('so this GL analysis item could not be added'),'warn'); } else { $SQL = "SELECT accountname FROM chartmaster WHERE accountcode='" . $_POST['GLCode'] . "'"; $Result=DB_query($SQL); $myrow=DB_fetch_array($Result); - $_SESSION['PaymentDetail' . $identifier]->add_to_glanalysis(filter_number_format($_POST['GLAmount']), + $_SESSION['PaymentDetail'.$identifier]->add_to_glanalysis(filter_number_format($_POST['GLAmount']), $_POST['GLNarrative'], $_POST['GLCode'], $myrow['accountname'], @@ -702,7 +742,7 @@ $_POST['Cancel'] = 1; } -if (isset($_POST['Cancel'])){ +if(isset($_POST['Cancel'])) { unset($_POST['GLAmount']); unset($_POST['GLNarrative']); unset($_POST['GLCode']); @@ -710,24 +750,24 @@ } /*set up the form whatever */ -if (!isset($_POST['DatePaid'])) { +if(!isset($_POST['DatePaid'])) { $_POST['DatePaid'] = ''; } -if (isset($_POST['DatePaid']) +if(isset($_POST['DatePaid']) AND ($_POST['DatePaid']=='' - OR !Is_Date($_SESSION['PaymentDetail' . $identifier]->DatePaid))){ + OR !Is_Date($_SESSION['PaymentDetail'.$identifier]->DatePaid))) { $_POST['DatePaid']= Date($_SESSION['DefaultDateFormat']); - $_SESSION['PaymentDetail' . $identifier]->DatePaid = $_POST['DatePaid']; + $_SESSION['PaymentDetail'.$identifier]->DatePaid = $_POST['DatePaid']; } -if ($_SESSION['PaymentDetail' . $identifier]->Currency=='' AND $_SESSION['PaymentDetail' . $identifier]->SupplierID==''){ - $_SESSION['PaymentDetail' . $identifier]->Currency=$_SESSION['CompanyRecord']['currencydefault']; +if($_SESSION['PaymentDetail'.$identifier]->Currency=='' AND $_SESSION['PaymentDetail'.$identifier]->SupplierID=='') { + $_SESSION['PaymentDetail'.$identifier]->Currency=$_SESSION['CompanyRecord']['currencydefault']; } -if (isset($_POST['BankAccount']) AND $_POST['BankAccount']!='') { +if(isset($_POST['BankAccount']) AND $_POST['BankAccount']!='') { $SQL = "SELECT bankaccountname FROM bankaccounts, chartmaster @@ -739,11 +779,11 @@ $result= DB_query($SQL,$ErrMsg,$DbgMsg); - if (DB_num_rows($result)==1){ + if(DB_num_rows($result)==1) { $myrow = DB_fetch_row($result); - $_SESSION['PaymentDetail' . $identifier]->BankAccountName = $myrow[0]; + $_SESSION['PaymentDetail'.$identifier]->BankAccountName = $myrow[0]; unset($result); - } elseif (DB_num_rows($result)==0){ + } elseif(DB_num_rows($result)==0) { prnMsg( _('The bank account number') . ' ' . $_POST['BankAccount'] . ' ' . _('is not set up as a bank account with a valid general ledger account'),'error'); } } @@ -754,17 +794,17 @@ <br /> <table class="selection"> <tr> - <th colspan="4"><h3>' . _('Payment'); + <th colspan="2"><h3>' . _('Payment'); -if ($_SESSION['PaymentDetail' . $identifier]->SupplierID!=''){ - echo ' ' . _('to') . ' ' . $_SESSION['PaymentDetail' . $identifier]->SuppName; +if($_SESSION['PaymentDetail'.$identifier]->SupplierID!='') { + echo ' ' . _('to') . ' ' . $_SESSION['PaymentDetail'.$identifier]->SuppName; } -if ($_SESSION['PaymentDetail' . $identifier]->BankAccountName!=''){ - echo ' ' . _('from the') . ' ' . $_SESSION['PaymentDetail' . $identifier]->BankAccountName; +if($_SESSION['PaymentDetail'.$identifier]->BankAccountName!='') { + echo ' ' . _('from the') . ' ' . $_SESSION['PaymentDetail'.$identifier]->BankAccountName; } -echo ' ' . _('on') . ' ' . $_SESSION['PaymentDetail' . $identifier]->DatePaid . '</h3></th></tr>'; +echo ' ' . _('on') . ' ' . $_SESSION['PaymentDetail'.$identifier]->DatePaid . '</h3></th></tr>'; $SQL = "SELECT bankaccountname, bankaccounts.accountcode, @@ -782,10 +822,10 @@ $AccountsResults = DB_query($SQL,$ErrMsg,$DbgMsg); echo '<tr> - <td>' . _('Bank Account') . ':</td> - <td><select name="BankAccount" autofocus="autofocus" required="required" title="' . _('Select the bank account that the payment has been made from') . '" onchange="ReloadForm(UpdateHeader)">'; + <td>', _('Bank Account'), ':</td> + <td><select autofocus="autofocus" name="BankAccount" onchange="ReloadForm(UpdateHeader)" required="required" title="', _('Select the bank account that the payment has been made from'), '">'; -if (DB_num_rows($AccountsResults)==0){ +if(DB_num_rows($AccountsResults)==0) { echo '</select></td> </tr> </table> @@ -795,71 +835,70 @@ exit; } else { echo '<option value=""></option>'; - while ($myrow=DB_fetch_array($AccountsResults)){ + while($myrow=DB_fetch_array($AccountsResults)) { /*list the bank account names */ - if (isset($_POST['BankAccount']) AND $_POST['BankAccount']==$myrow['accountcode']){ - echo '<option selected="selected" value="' . $myrow['accountcode'] . '">' . $myrow['bankaccountname'] . ' - ' . $myrow['currcode'] . '</option>'; - } else { - echo '<option value="' . $myrow['accountcode'] . '">' . $myrow['bankaccountname'] . ' - ' . $myrow['currcode'] . '</option>'; + echo '<option '; + if(/*isset($_POST['BankAccount']) AND */$_POST['BankAccount']==$myrow['accountcode']) { + echo 'selected="selected" '; } + echo 'value="', $myrow['accountcode'], '">', $myrow['bankaccountname'], ' - ', $myrow['currcode'], '</option>'; } echo '</select></td> </tr>'; } echo '<tr> - <td>' . _('Date Paid') . ':</td> - <td><input type="text" name="DatePaid" class="date" alt="'.$_SESSION['DefaultDateFormat'].'" required="required" maxlength="10" size="10" onchange="isDate(this, this.value, '."'".$_SESSION['DefaultDateFormat']."'".')" value="' . $_SESSION['PaymentDetail' . $identifier]->DatePaid . '" /></td> + <td>', _('Date Paid'), ':</td> + <td><input alt="', $_SESSION['DefaultDateFormat'], '" class="date" maxlength="10" name="DatePaid" onchange="isDate(this, this.value, ', "'", $_SESSION['DefaultDateFormat'], "'", ')" required="required" size="10" type="text" value="', $_SESSION['PaymentDetail'.$identifier]->DatePaid, '" /></td> </tr>'; -if ($_SESSION['PaymentDetail' . $identifier]->SupplierID==''){ +if($_SESSION['PaymentDetail'.$identifier]->SupplierID=='') { echo '<tr> <td>' . _('Currency of Payment') . ':</td> <td><select name="Currency" required="required" onchange="ReloadForm(UpdateHeader)">'; $SQL = "SELECT currency, currabrev, rate FROM currencies"; $result=DB_query($SQL); - if (DB_num_rows($result)==0){ + if(DB_num_rows($result)==0) { echo '</select></td> </tr>'; prnMsg( _('No currencies are defined yet. Payments cannot be entered until a currency is defined'),'error'); } else { include('includes/CurrenciesArray.php'); // To get the currency name from the currency code. - while ($myrow=DB_fetch_array($result)){ - if ($_SESSION['PaymentDetail' . $identifier]->Currency==$myrow['currabrev']){ - echo '<option selected="selected" value="' . $myrow['currabrev'] . '">' . $CurrencyName[$myrow['currabrev']] . '</option>'; - } else { - echo '<option value="' . $myrow['currabrev'] . '">' . $CurrencyName[$myrow['currabrev']] . '</option>'; + while($myrow=DB_fetch_array($result)) { + echo '<option '; + if($_SESSION['PaymentDetail'.$identifier]->Currency==$myrow['currabrev']) { + echo 'selected="selected" '; } + echo 'value="', $myrow['currabrev'], '">', $CurrencyName[$myrow['currabrev']], '</option>'; } - echo '</select></td> - <td><i>' . _('The transaction currency does not need to be the same as the bank account currency') . '</i></td> + echo '</select> <i>', _('The transaction currency does not need to be the same as the bank account currency'), '</i></td> </tr>'; } } else { /*its a supplier payment so it must be in the suppliers currency */ echo '<tr>'; - echo '<td><input type="hidden" name="Currency" value="' . $_SESSION['PaymentDetail' . $identifier]->Currency . '" /> + echo '<td><input type="hidden" name="Currency" value="' . $_SESSION['PaymentDetail'.$identifier]->Currency . '" /> ' . _('Supplier Currency') . ':</td> - <td>' . $_SESSION['PaymentDetail' . $identifier]->Currency . '</td> + <td>' . $_SESSION['PaymentDetail'.$identifier]->Currency . '</td> </tr>'; /*get the default rate from the currency table if it has not been set */ - if (!isset($_POST['ExRate']) OR $_POST['ExRate']==''){ - $SQL = "SELECT rate FROM currencies WHERE currabrev='" . $_SESSION['PaymentDetail' . $identifier]->Currency ."'"; + if(!isset($_POST['ExRate']) OR $_POST['ExRate']=='') { + $SQL = "SELECT rate FROM currencies WHERE currabrev='" . $_SESSION['PaymentDetail'.$identifier]->Currency ."'"; $Result=DB_query($SQL); $myrow=DB_fetch_row($Result); $_POST['ExRate']=locale_number_format($myrow[0],'Variable'); } } -if (!isset($_POST['ExRate'])){ +if(!isset($_POST['ExRate'])) { $_POST['ExRate']=1; } -if (!isset($_POST['FunctionalExRate'])){ +if(!isset($_POST['FunctionalExRate'])) { $_POST['FunctionalExRate']=1; } -if($_SESSION['PaymentDetail' . $identifier]->AccountCurrency != $_SESSION['PaymentDetail' . $identifier]->Currency AND isset($_SESSION['PaymentDetail' . $identifier]->AccountCurrency)) { +if($_SESSION['PaymentDetail'.$identifier]->AccountCurrency != $_SESSION['PaymentDetail'.$identifier]->Currency AND isset($_SESSION['PaymentDetail'.$identifier]->AccountCurrency)) { if($_POST['ExRate']==1 AND isset($SuggestedExRate)) { $_POST['ExRate'] = locale_number_format($SuggestedExRate,8); } elseif($_POST['Currency'] != $_POST['PreviousCurrency'] AND isset($SuggestedExRate)) { @@ -867,31 +906,29 @@ } if(isset($SuggestedExRate)) { - $SuggestedExRateText = '<b>' . _('Suggested rate:') . ' 1 ' . $_SESSION['PaymentDetail' . $identifier]->AccountCurrency . ' = ' . locale_number_format($SuggestedExRate,8) . ' ' . $_SESSION['PaymentDetail' . $identifier]->Currency . '</b>'; + $SuggestedExRateText = '<b>' . _('Suggested rate:') . ' 1 ' . $_SESSION['PaymentDetail'.$identifier]->AccountCurrency . ' = ' . locale_number_format($SuggestedExRate,8) . ' ' . $_SESSION['PaymentDetail'.$identifier]->Currency . '</b>'; } else { - $SuggestedExRateText = '1 ' . $_SESSION['PaymentDetail' . $identifier]->AccountCurrency . ' = ? ' . $_SESSION['PaymentDetail' . $identifier]->Currency; + $SuggestedExRateText = '1 ' . $_SESSION['PaymentDetail'.$identifier]->AccountCurrency . ' = ? ' . $_SESSION['PaymentDetail'.$identifier]->Currency; } echo '<tr> <td>', _('Payment Exchange Rate'), ':</td> - <td><input class="number" maxlength="12" name="ExRate" size="14" title="', _('The exchange rate between the currency of the bank account currency and the currency of the payment'), '" type="text" value="', $_POST['ExRate'], '" /></td> - <td>', $SuggestedExRateText, '. <i>', _('The exchange rate between the currency of the bank account currency and the currency of the payment'), '.</i></td> + <td><input class="number" maxlength="12" name="ExRate" size="14" title="', _('The exchange rate between the currency of the bank account currency and the currency of the payment'), '" type="text" value="', $_POST['ExRate'], '" /> ', $SuggestedExRateText, '. <i>', _('The exchange rate between the currency of the bank account currency and the currency of the payment'), '.</i></td> </tr>'; } -if($_SESSION['PaymentDetail' . $identifier]->AccountCurrency != $_SESSION['CompanyRecord']['currencydefault'] AND isset($_SESSION['PaymentDetail' . $identifier]->AccountCurrency)) { +if($_SESSION['PaymentDetail'.$identifier]->AccountCurrency != $_SESSION['CompanyRecord']['currencydefault'] AND isset($_SESSION['PaymentDetail'.$identifier]->AccountCurrency)) { if($_POST['FunctionalExRate']==1 AND isset($SuggestedFunctionalExRate)) { $_POST['FunctionalExRate'] = locale_number_format($SuggestedFunctionalExRate,'Variable'); } if(isset($SuggestedFunctionalExRate)) { - $SuggestedFunctionalExRateText = '<b>' . _('Suggested rate:') . ' 1 ' . $_SESSION['CompanyRecord']['currencydefault'] . ' = ' . locale_number_format($SuggestedFunctionalExRate,8) . ' ' . $_SESSION['PaymentDetail' . $identifier]->AccountCurrency . '</b>'; + $SuggestedFunctionalExRateText = '<b>' . _('Suggested rate:') . ' 1 ' . $_SESSION['CompanyRecord']['currencydefault'] . ' = ' . locale_number_format($SuggestedFunctionalExRate,8) . ' ' . $_SESSION['PaymentDetail'.$identifier]->AccountCurrency . '</b>'; } else { - $SuggestedFunctionalExRateText = '1 ' . $_SESSION['CompanyRecord']['currencydefault'] . ' = ? ' . $_SESSION['PaymentDetail' . $identifier]->AccountCurrency; + $SuggestedFunctionalExRateText = '1 ' . $_SESSION['CompanyRecord']['currencydefault'] . ' = ? ' . $_SESSION['PaymentDetail'.$identifier]->AccountCurrency; } echo '<tr> <td>', _('Functional Exchange Rate'), ':</td> - <td><input class="number" maxlength="12" name="FunctionalExRate" pattern="[0-9\.,]*" required="required" size="14" title="', _('The exchange rate between the currency of the business (the functional currency) and the currency of the bank account'), '" type="text" value="', $_POST['FunctionalExRate'], '" /></td> - <td>', $SuggestedFunctionalExRa... [truncated message content] |