line($Left_Margin, $YPos+$line_height,$Page_Width-$Right_Margin, $YPos+$line_height); $LeftOvers = $pdf->addTextWrap($Left_Margin+10,$YPos,340-$Left_Margin,$FontSize,_('Total Due For') . ' ' . $SupplierName, 'left'); $TotalPayments += $AccumBalance; $TotalAccumDiffOnExch += $AccumDiffOnExch; $LeftOvers = $pdf->addTextWrap(340,$YPos,60,$FontSize,locale_number_format($AccumBalance,$CurrDecimalPlaces), 'right'); $LeftOvers = $pdf->addTextWrap(405,$YPos,60,$FontSize,locale_number_format($AccumDiffOnExch,$CurrDecimalPlaces), 'right'); if (isset($_POST['PrintPDFAndProcess'])){ if (is_numeric(filter_number_format($_POST['Ref']))) { $PaytReference = filter_number_format($_POST['Ref']) + $RefCounter; } else { $PaytReference = $_POST['Ref'] . ($RefCounter + 1); } $RefCounter++; /*Do the inserts for the payment transaction into the Supp Trans table*/ $SQL = "INSERT INTO supptrans (type, transno, suppreference, supplierno, trandate, duedate, inputdate, settled, rate, ovamount, diffonexch, alloc) VALUES (22, '" . $SuppPaymentNo . "', '" . $PaytReference . "', '" . $SupplierID . "', '" . FormatDateForSQL($_POST['AmountsDueBy']) . "', '" . FormatDateForSQL($_POST['AmountsDueBy']) . "', '" . date('Y-m-d H-i-s') . "', 1, '" . filter_number_format($_POST['ExRate']) . "', '" . -$AccumBalance . "', '" . -$AccumDiffOnExch . "', '" . -$AccumBalance . "')"; $ProcessResult = DB_query($SQL,'','',false,false); if (DB_error_no() !=0) { $Title = _('Payment Processing - Problem Report'); include('header.php'); prnMsg(_('None of the payments will be processed because the payment record for') . ' ' . $SupplierName . ' ' . _('could not be inserted because') . ' - ' . DB_error_msg(),'error'); echo '
' . _('Back to the menu') . ''; if ($debug==1){ prnMsg(_('The SQL that failed was') . ' ' . $SQL,'error'); } $ProcessResult = DB_Txn_Rollback(); include('footer.php'); exit; } $PaymentTransID = DB_Last_Insert_ID('supptrans','id'); /*Do the inserts for the allocation record against the payment for this charge */ foreach ($Allocs AS $AllocTrans){ /*loop through the array of allocations */ $SQL = "INSERT INTO suppallocs (amt, datealloc, transid_allocfrom, transid_allocto) VALUES ( '" . $AllocTrans->Amount . "', '" . FormatDateForSQL($_POST['AmountsDueBy']) . "', '" . $PaymentTransID . "', '" . $AllocTrans->TransID . "')"; $ProcessResult = DB_query($SQL); if (DB_error_no() !=0) { $Title = _('Payment Processing - Problem Report') . '.... '; include('header.php'); prnMsg(_('None of the payments will be processed since an allocation record for') . $SupplierName . _('could not be inserted because') . ' - ' . DB_error_msg(),'error'); echo '
' . _('Back to the menu') . ''; if ($debug==1){ prnMsg(_('The SQL that failed was') . $SQL,'error'); } $ProcessResult = DB_Txn_Rollback(); include('footer.php'); exit; } } /*end of the loop to insert the allocation records */ /*Do the inserts for the payment transaction into the BankTrans table*/ $SQL="INSERT INTO banktrans (bankact, ref, exrate, transdate, banktranstype, amount) "; $SQL = $SQL . "VALUES ( " . $_POST['BankAccount'] . ", '" . $PaytReference . " " . $SupplierID . "', " . filter_number_format($_POST['ExRate']) . ", '" . FormatDateForSQL($_POST['AmountsDueBy']) . "', '" . $_POST['PaytType'] . "', " . -$AccumBalance . ")"; $ProcessResult = DB_query($SQL,'','',false,false); if (DB_error_no() !=0) { $Title = _('Payment Processing - Problem Report'); include('header.php'); prnMsg(_('None of the payments will be processed because the bank account payment record for') . ' ' . $SupplierName . ' ' . _('could not be inserted because') . ' - ' . DB_error_msg(),'error'); echo '
' . _('Back to the menu') . ''; if ($debug==1){ prnMsg(_('The SQL that failed was') . ' ' . $SQL,'error'); } $ProcessResult = DB_Txn_Rollback(); include('footer.php'); exit; } /*If the General Ledger Link is activated */ if ($_SESSION['CompanyRecord']['gllink_creditors']==1){ $PeriodNo = GetPeriod($_POST['AmountsDueBy']); /*Do the GL trans for the payment CR bank */ $SQL = "INSERT INTO gltrans (type, typeno, trandate, periodno, account, narrative, amount ) VALUES (22, '" . $SuppPaymentNo . "', '" . FormatDateForSQL($_POST['AmountsDueBy']) . "', '" . $PeriodNo . "', '" . $_POST['BankAccount'] . "', '" . $SupplierID . " - " . $SupplierName . ' ' . _('payment run on') . ' ' . Date($_SESSION['DefaultDateFormat']) . ' - ' . $PaytReference . "', '" . (-$AccumBalance/ filter_number_format($_POST['ExRate'])) . "')"; $ProcessResult = DB_query($SQL,'','',false,false); if (DB_error_no() !=0) { $Title = _('Payment Processing') . ' - ' . _('Problem Report') . '.... '; include('header.php'); prnMsg(_('None of the payments will be processed since the general ledger posting for the payment to') . ' ' . $SupplierName . ' ' . _('could not be inserted because') . ' - ' . DB_error_msg(),'error'); echo '
' . _('Back to the menu') . ''; if ($debug==1){ prnMsg(_('The SQL that failed was') . ':
' . $SQL, 'error'); } $ProcessResult = DB_Txn_Rollback(); include('footer.php'); exit; } /*Do the GL trans for the payment DR creditors */ $SQL = "INSERT INTO gltrans (type, typeno, trandate, periodno, account, narrative, amount ) VALUES (22, '" . $SuppPaymentNo . "', '" . FormatDateForSQL($_POST['AmountsDueBy']) . "', '" . $PeriodNo . "', '" . $_SESSION['CompanyRecord']['creditorsact'] . "', '" . $SupplierID . ' - ' . $SupplierName . ' ' . _('payment run on') . ' ' . Date($_SESSION['DefaultDateFormat']) . ' - ' . $PaytReference . "', '" . ($AccumBalance/ filter_number_format($_POST['ExRate']) + $AccumDiffOnExch) . "')"; $ProcessResult = DB_query($SQL,'','',false,false); if (DB_error_no() !=0) { $Title = _('Payment Processing - Problem Report'); include('header.php'); prnMsg(_('None of the payments will be processed since the general ledger posting for the payment to') . ' ' . $SupplierName . ' ' . _('could not be inserted because') . ' - ' . DB_error_msg(),'error'); echo '
' . _('Back to the menu') . ''; if ($debug==1){ prnMsg(_('The SQL that failed was') . ':
' . $SQL,'error'); } $ProcessResult = DB_Txn_Rollback(); include('footer.php'); exit; } /*Do the GL trans for the exch diff */ if ($AccumDiffOnExch != 0){ $SQL = "INSERT INTO gltrans (type, typeno, trandate, periodno, account, narrative, amount ) VALUES (22, '" . $SuppPaymentNo . "', '" . FormatDateForSQL($_POST['AmountsDueBy']) . "', '" . $PeriodNo . "', '" . $_SESSION['CompanyRecord']['purchasesexchangediffact'] . "', '" . $SupplierID . ' - ' . $SupplierName . ' ' . _('payment run on') . ' ' . Date($_SESSION['DefaultDateFormat']) . " - " . $PaytReference . "', '" . (-$AccumDiffOnExch) . "')"; $ProcessResult = DB_query($SQL,'','',false,false); if (DB_error_no() !=0) { $Title = _('Payment Processing - Problem Report'); include('header.php'); prnMsg(_('None of the payments will be processed since the general ledger posting for the exchange difference on') . ' ' . $SupplierName . ' ' . _('could not be inserted because') .' - ' . DB_error_msg(),'error'); echo '
' . _('Back to the menu') . ''; if ($debug==1){ prnMsg(_('The SQL that failed was: ') . '
' . $SQL,'error'); } $ProcessResult = DB_Txn_Rollback(); include('footer.php'); exit; } } EnsureGLEntriesBalance(22,$SuppPaymentNo); } /*end if GL linked to creditors */ } $YPos -= (1.5*$line_height); $pdf->line($Left_Margin, $YPos+$line_height,$Page_Width-$Right_Margin, $YPos+$line_height); $YPos -= $line_height; if ($YPos < $Bottom_Margin + $line_height){ $PageNumber++; include('PDFPaymentRunPageHeader.inc'); } ?>