コード例 #1
0
function can_process()
{
    global $Refs;
    if (!is_date($_POST['date_'])) {
        display_error(_("The entered date for the issue is invalid."));
        set_focus('date_');
        return false;
    } elseif (!is_date_in_fiscalyear($_POST['date_'])) {
        display_error(_("The entered date is not in fiscal year."));
        set_focus('date_');
        return false;
    }
    if (!$Refs->is_valid($_POST['ref'])) {
        display_error(_("You must enter a reference."));
        set_focus('ref');
        return false;
    }
    if (!is_new_reference($_POST['ref'], ST_MANUISSUE)) {
        display_error(_("The entered reference is already in use."));
        set_focus('ref');
        return false;
    }
    $failed_item = $_SESSION['issue_items']->check_qoh($_POST['Location'], $_POST['date_'], !$_POST['IssueType']);
    if ($failed_item != -1) {
        display_error(_("The issue cannot be processed because it would cause negative inventory balance for marked items as of document date or later."));
        return false;
    }
    return true;
}
コード例 #2
0
ファイル: bank_transfer.php プロジェクト: ravenii/guardocs
function check_valid_entries()
{
    if (!is_date($_POST['DatePaid'])) {
        display_error(tr("The entered date is invalid."));
        set_focus('DatePaid');
        return false;
    }
    if (!is_date_in_fiscalyear($_POST['DatePaid'])) {
        display_error(tr("The entered date is not in fiscal year."));
        set_focus('DatePaid');
        return false;
    }
    if (!check_num('amount', 0)) {
        display_error(tr("The entered amount is invalid or less than zero."));
        set_focus('amount');
        return false;
    }
    if (!references::is_valid($_POST['ref'])) {
        display_error(tr("You must enter a reference."));
        set_focus('ref');
        return false;
    }
    if (!is_new_reference($_POST['ref'], systypes::bank_transfer())) {
        display_error(tr("The entered reference is already in use."));
        set_focus('ref');
        return false;
    }
    if ($_POST['FromBankAccount'] == $_POST['ToBankAccount']) {
        display_error(tr("The source and destination bank accouts cannot be the same."));
        set_focus('ToBankAccount');
        return false;
    }
    return true;
}
コード例 #3
0
function check_data()
{
    global $Refs;
    if (!is_date($_POST['date'])) {
        display_error(_("The entered date is invalid."));
        set_focus('date');
        return false;
    }
    if (!is_date_in_fiscalyear($_POST['date'])) {
        display_error(_("The entered date is not in fiscal year."));
        set_focus('date');
        return false;
    }
    if (!$Refs->is_valid($_POST['ref'])) {
        display_error(_("You must enter a reference."));
        set_focus('ref');
        return false;
    }
    if (!is_new_reference($_POST['ref'], ST_JOURNAL)) {
        display_error(_("The entered reference is already in use."));
        set_focus('ref');
        return false;
    }
    return true;
}
コード例 #4
0
function can_process()
{
    if (!is_date($_POST['CreditDate'])) {
        display_error(tr("The entered date is invalid."));
        set_focus('CreditDate');
        return false;
    } elseif (!is_date_in_fiscalyear($_POST['CreditDate'])) {
        display_error(tr("The entered date is not in fiscal year."));
        set_focus('CreditDate');
        return false;
    }
    if ($_SESSION['Items']->trans_no == 0) {
        if (!references::is_valid($_POST['ref'])) {
            display_error(tr("You must enter a reference."));
            set_focus('ref');
            return false;
        }
        if (!is_new_reference($_POST['ref'], 11)) {
            display_error(tr("The entered reference is already in use."));
            set_focus('ref');
            return false;
        }
    }
    if (!check_num('ChargeFreightCost', 0)) {
        display_error(tr("The entered shipping cost is invalid or less than zero."));
        set_focus('ChargeFreightCost');
        return false;
    }
    return true;
}
コード例 #5
0
ファイル: work_order_issue.php プロジェクト: ravenii/guardocs
function can_process()
{
    if (!is_date($_POST['date_'])) {
        display_error(tr("The entered date for the issue is invalid."));
        set_focus('date_');
        return false;
    } elseif (!is_date_in_fiscalyear($_POST['date_'])) {
        display_error(tr("The entered date is not in fiscal year."));
        set_focus('date_');
        return false;
    }
    if (!references::is_valid($_POST['ref'])) {
        display_error(tr("You must enter a reference."));
        set_focus('ref');
        return false;
    }
    if (!is_new_reference($_POST['ref'], 28)) {
        display_error(tr("The entered reference is already in use."));
        set_focus('ref');
        return false;
    }
    $failed_item = $_SESSION['issue_items']->check_qoh($_POST['Location'], $_POST['date_'], !$_POST['IssueType']);
    if ($failed_item != null) {
        display_error(tr("The issue cannot be processed because an entered item would cause a negative inventory balance :") . " " . $failed_item->stock_id . " - " . $failed_item->item_description);
        return false;
    }
    return true;
}
コード例 #6
0
function can_process()
{
    global $Refs;
    if (!is_date($_POST['CreditDate'])) {
        display_error(_("The entered date is invalid."));
        set_focus('CreditDate');
        return false;
    } elseif (!is_date_in_fiscalyear($_POST['CreditDate'])) {
        display_error(_("The entered date is not in fiscal year."));
        set_focus('CreditDate');
        return false;
    }
    if ($_SESSION['Items']->trans_no == 0) {
        if (!$Refs->is_valid($_POST['ref'])) {
            display_error(_("You must enter a reference."));
            set_focus('ref');
            return false;
        }
    }
    if (!check_num('ChargeFreightCost', 0)) {
        display_error(_("The entered shipping cost is invalid or less than zero."));
        set_focus('ChargeFreightCost');
        return false;
    }
    if (!check_quantities()) {
        display_error(_("Selected quantity cannot be less than zero nor more than quantity not credited yet."));
        return false;
    }
    return true;
}
コード例 #7
0
ファイル: transfers.php プロジェクト: blestab/frontaccounting
function handle_new_order()
{
    if (isset($_SESSION['transfer_items'])) {
        $_SESSION['transfer_items']->clear_items();
        unset($_SESSION['transfer_items']);
    }
    $_SESSION['transfer_items'] = new items_cart(ST_LOCTRANSFER);
    $_POST['AdjDate'] = new_doc_date();
    if (!is_date_in_fiscalyear($_POST['AdjDate'])) {
        $_POST['AdjDate'] = end_fiscalyear();
    }
    $_SESSION['transfer_items']->tran_date = $_POST['AdjDate'];
}
コード例 #8
0
ファイル: transfers.php プロジェクト: ravenii/guardocs
function handle_new_order()
{
    if (isset($_SESSION['transfer_items'])) {
        $_SESSION['transfer_items']->clear_items();
        unset($_SESSION['transfer_items']);
    }
    session_register("transfer_items");
    $_SESSION['transfer_items'] = new items_cart();
    $_POST['AdjDate'] = Today();
    if (!is_date_in_fiscalyear($_POST['AdjDate'])) {
        $_POST['AdjDate'] = end_fiscalyear();
    }
    $_SESSION['transfer_items']->tran_date = $_POST['AdjDate'];
}
コード例 #9
0
ファイル: supplier_invoice.php プロジェクト: ravenii/guardocs
function check_data()
{
    if (!$_SESSION['supp_trans']->is_valid_trans_to_post()) {
        display_error(tr("The invoice cannot be processed because the there are no items or values on the invoice.  Invoices are expected to have a charge."));
        return false;
    }
    if (!references::is_valid($_SESSION['supp_trans']->reference)) {
        display_error(tr("You must enter an invoice reference."));
        set_focus('reference');
        return false;
    }
    if (!is_new_reference($_SESSION['supp_trans']->reference, 20)) {
        display_error(tr("The entered reference is already in use."));
        set_focus('reference');
        return false;
    }
    if (!references::is_valid($_SESSION['supp_trans']->supp_reference)) {
        display_error(tr("You must enter a supplier's invoice reference."));
        set_focus('supp_reference');
        return false;
    }
    if (!is_date($_SESSION['supp_trans']->tran_date)) {
        display_error(tr("The invoice as entered cannot be processed because the invoice date is in an incorrect format."));
        set_focus('trans_date');
        return false;
    } elseif (!is_date_in_fiscalyear($_SESSION['supp_trans']->tran_date)) {
        display_error(tr("The entered date is not in fiscal year."));
        set_focus('trans_date');
        return false;
    }
    if (!is_date($_SESSION['supp_trans']->due_date)) {
        display_error(tr("The invoice as entered cannot be processed because the due date is in an incorrect format."));
        set_focus('due_date');
        return false;
    }
    $sql = "SELECT Count(*) FROM supp_trans WHERE supplier_id='" . $_SESSION['supp_trans']->supplier_id . "' AND supp_reference='" . $_POST['supp_reference'] . "'";
    $result = db_query($sql, "The sql to check for the previous entry of the same invoice failed");
    $myrow = db_fetch_row($result);
    if ($myrow[0] == 1) {
        /*Transaction reference already entered */
        display_error(tr("This invoice number has already been entered. It cannot be entered again." . " (" . $_POST['supp_reference'] . ")"));
        return false;
    }
    return true;
}
コード例 #10
0
function can_process()
{
    global $wo_details;
    if (!references::is_valid($_POST['ref'])) {
        display_error(tr("You must enter a reference."));
        set_focus('ref');
        return false;
    }
    if (!is_new_reference($_POST['ref'], 29)) {
        display_error(tr("The entered reference is already in use."));
        set_focus('ref');
        return false;
    }
    if (!check_num('quantity', 0)) {
        display_error(tr("The quantity entered is not a valid number or less then zero."));
        set_focus('quantity');
        return false;
    }
    if (!is_date($_POST['date_'])) {
        display_error(tr("The entered date is invalid."));
        set_focus('date_');
        return false;
    } elseif (!is_date_in_fiscalyear($_POST['date_'])) {
        display_error(tr("The entered date is not in fiscal year."));
        set_focus('date_');
        return false;
    }
    if (date_diff(sql2date($wo_details["released_date"]), $_POST['date_'], "d") > 0) {
        display_error(tr("The production date cannot be before the release date of the work order."));
        set_focus('date_');
        return false;
    }
    // if unassembling we need to check the qoh
    if ($_POST['ProductionType'] == 0 && !sys_prefs::allow_negative_stock()) {
        $wo_details = get_work_order($_POST['selected_id']);
        $qoh = get_qoh_on_date($wo_details["stock_id"], $wo_details["loc_code"], $date_);
        if (-$_POST['quantity'] + $qoh < 0) {
            display_error(tr("The unassembling cannot be processed because there is insufficient stock."));
            set_focus('quantity');
            return false;
        }
    }
    return true;
}
コード例 #11
0
ファイル: void_transaction.php プロジェクト: ravenii/guardocs
function check_valid_entries()
{
    if (!is_date($_POST['date_'])) {
        display_error(tr("The entered date is invalid."));
        set_focus('date_');
        return false;
    }
    if (!is_date_in_fiscalyear($_POST['date_'])) {
        display_error(tr("The entered date is not in fiscal year."));
        set_focus('date_');
        return false;
    }
    if (!is_numeric($_POST['trans_no']) or $_POST['trans_no'] <= 0) {
        display_error(tr("The transaction number is expected to be numeric and greater than zero."));
        set_focus('trans_no');
        return false;
    }
    return true;
}
コード例 #12
0
ファイル: supplier_credit.php プロジェクト: ravenii/guardocs
function check_data()
{
    global $total_grn_value, $total_gl_value;
    if (!$_SESSION['supp_trans']->is_valid_trans_to_post()) {
        display_error(tr("The credit note cannot be processed because the there are no items or values on the invoice.  Credit notes are expected to have a charge."));
        set_focus('');
        return false;
    }
    if (!references::is_valid($_SESSION['supp_trans']->reference)) {
        display_error(tr("You must enter an credit note reference."));
        set_focus('reference');
        return false;
    }
    if (!is_new_reference($_SESSION['supp_trans']->reference, 21)) {
        display_error(tr("The entered reference is already in use."));
        set_focus('reference');
        return false;
    }
    if (!references::is_valid($_SESSION['supp_trans']->supp_reference)) {
        display_error(tr("You must enter a supplier's credit note reference."));
        set_focus('supp_reference');
        return false;
    }
    if (!is_date($_SESSION['supp_trans']->tran_date)) {
        display_error(tr("The credit note as entered cannot be processed because the date entered is not valid."));
        set_focus('tran_date');
        return false;
    } elseif (!is_date_in_fiscalyear($_SESSION['supp_trans']->tran_date)) {
        display_error(tr("The entered date is not in fiscal year."));
        set_focus('tran_date');
        return false;
    }
    if (!is_date($_SESSION['supp_trans']->due_date)) {
        display_error(tr("The invoice as entered cannot be processed because the due date is in an incorrect format."));
        set_focus('due_date');
        return false;
    }
    if ($_SESSION['supp_trans']->ov_amount < $total_gl_value + $total_grn_value) {
        display_error(tr("The credit note total as entered is less than the sum of the the general ledger entires (if any) and the charges for goods received. There must be a mistake somewhere, the credit note as entered will not be processed."));
        return false;
    }
    return true;
}
コード例 #13
0
function can_process()
{
    global $Refs;
    /*===================MOODLEARNING===========================*/
    if (!get_post('custom_num')) {
        display_error(_("You must enter a Credit Memo No."));
        set_focus('custom_num');
        return false;
    }
    if (!is_numeric($_POST['custom_num'])) {
        display_error(_("The Credit Memo # contains invalid characters. Please check again."));
        set_focus('custom_num');
        return false;
    }
    /*==========================================================*/
    if (!is_date($_POST['CreditDate'])) {
        display_error(_("The entered date is invalid."));
        set_focus('CreditDate');
        return false;
    } elseif (!is_date_in_fiscalyear($_POST['CreditDate'])) {
        display_error(_("The entered date is not in fiscal year."));
        set_focus('CreditDate');
        return false;
    }
    if ($_SESSION['Items']->trans_no == 0) {
        if (!$Refs->is_valid($_POST['ref'])) {
            display_error(_("You must enter a reference."));
            set_focus('ref');
            return false;
        }
    }
    if (!check_num('ChargeFreightCost', 0)) {
        display_error(_("The entered shipping cost is invalid or less than zero."));
        set_focus('ChargeFreightCost');
        return false;
    }
    if (!check_quantities()) {
        display_error(_("Selected quantity cannot be less than zero nor more than quantity not credited yet."));
        return false;
    }
    return true;
}
コード例 #14
0
function can_process()
{
    global $Refs, $SysPrefs;
    $adj =& $_SESSION['adj_items'];
    if (count($adj->line_items) == 0) {
        display_error(_("You must enter at least one non empty item line."));
        set_focus('stock_id');
        return false;
    }
    if (!$Refs->is_valid($_POST['ref'])) {
        display_error(_("You must enter a reference."));
        set_focus('ref');
        return false;
    }
    if (!is_new_reference($_POST['ref'], ST_INVADJUST)) {
        display_error(_("The entered reference is already in use."));
        set_focus('ref');
        return false;
    }
    if (!is_date($_POST['AdjDate'])) {
        display_error(_("The entered date for the adjustment is invalid."));
        set_focus('AdjDate');
        return false;
    } elseif (!is_date_in_fiscalyear($_POST['AdjDate'])) {
        display_error(_("The entered date is not in fiscal year."));
        set_focus('AdjDate');
        return false;
    } elseif (!$SysPrefs->allow_negative_stock()) {
        $low_stock = $adj->check_qoh($_POST['StockLocation'], $_POST['AdjDate'], !$_POST['Increase']);
        if ($low_stock) {
            display_error(_("The adjustment cannot be processed because it would cause negative inventory balance for marked items as of document date or later."));
            unset($_POST['Process']);
            return false;
        }
    }
    return true;
}
コード例 #15
0
function can_process()
{
    global $wo_details;
    if (!check_num('costs', 0)) {
        display_error(_("The amount entered is not a valid number or less then zero."));
        set_focus('costs');
        return false;
    }
    if (!is_date($_POST['date_'])) {
        display_error(_("The entered date is invalid."));
        set_focus('date_');
        return false;
    } elseif (!is_date_in_fiscalyear($_POST['date_'])) {
        display_error(_("The entered date is not in fiscal year."));
        set_focus('date_');
        return false;
    }
    if (date_diff2(sql2date($wo_details["released_date"]), $_POST['date_'], "d") > 0) {
        display_error(_("The additional cost date cannot be before the release date of the work order."));
        set_focus('date_');
        return false;
    }
    return true;
}
コード例 #16
0
function can_process()
{
    global $Refs;
    if (!get_post('customer_id')) {
        display_error(_("There is no customer selected."));
        set_focus('customer_id');
        return false;
    }
    if (!get_post('BranchID')) {
        display_error(_("This customer has no branch defined."));
        set_focus('BranchID');
        return false;
    }
    if (!isset($_POST['DateBanked']) || !is_date($_POST['DateBanked'])) {
        display_error(_("The entered date is invalid. Please enter a valid date for the payment."));
        set_focus('DateBanked');
        return false;
    } elseif (!is_date_in_fiscalyear($_POST['DateBanked'])) {
        display_error(_("The entered date is not in fiscal year."));
        set_focus('DateBanked');
        return false;
    }
    if (!$Refs->is_valid($_POST['ref'])) {
        display_error(_("You must enter a reference."));
        set_focus('ref');
        return false;
    }
    //Chaitanya : 13-OCT-2011 - To support Edit feature
    if (isset($_POST['trans_no']) && $_POST['trans_no'] == 0 && !is_new_reference($_POST['ref'], ST_CUSTPAYMENT)) {
        display_error(_("The entered reference is already in use."));
        set_focus('ref');
        return false;
    } elseif ($_POST['ref'] != $_POST['old_ref'] && !is_new_reference($_POST['ref'], ST_CUSTPAYMENT)) {
        display_error(_("The entered reference is already in use."));
        set_focus('ref');
        return false;
    }
    if (!check_num('amount', 0)) {
        display_error(_("The entered amount is invalid or negative and cannot be processed."));
        set_focus('amount');
        return false;
    }
    if (isset($_POST['charge']) && !check_num('charge', 0)) {
        display_error(_("The entered amount is invalid or negative and cannot be processed."));
        set_focus('charge');
        return false;
    }
    if (isset($_POST['charge']) && input_num('charge') > 0) {
        $charge_acct = get_company_pref('bank_charge_act');
        if (get_gl_account($charge_acct) == false) {
            display_error(_("The Bank Charge Account has not been set in System and General GL Setup."));
            set_focus('charge');
            return false;
        }
    }
    if (isset($_POST['_ex_rate']) && !check_num('_ex_rate', 1.0E-6)) {
        display_error(_("The exchange rate must be numeric and greater than zero."));
        set_focus('_ex_rate');
        return false;
    }
    if ($_POST['discount'] == "") {
        $_POST['discount'] = 0;
    }
    if (!check_num('discount')) {
        display_error(_("The entered discount is not a valid number."));
        set_focus('discount');
        return false;
    }
    //if ((input_num('amount') - input_num('discount') <= 0)) {
    if (input_num('amount') <= 0) {
        display_error(_("The balance of the amount and discout is zero or negative. Please enter valid amounts."));
        set_focus('discount');
        return false;
    }
    if (!db_has_currency_rates(get_customer_currency($_POST['customer_id']), $_POST['DateBanked'], true)) {
        return false;
    }
    $_SESSION['alloc']->amount = input_num('amount');
    if (isset($_POST["TotalNumberOfAllocs"])) {
        return check_allocations();
    } else {
        return true;
    }
}
コード例 #17
0
function can_process()
{
    global $Refs;
    $input_error = 0;
    if ($_SESSION['Items']->count_items() == 0 && !check_num('ChargeFreightCost', 0)) {
        return false;
    }
    if ($_SESSION['Items']->trans_no == 0) {
        if (!$Refs->is_valid($_POST['ref'])) {
            display_error(_("You must enter a reference."));
            set_focus('ref');
            $input_error = 1;
        }
    }
    if (!is_date($_POST['OrderDate'])) {
        display_error(_("The entered date for the credit note is invalid."));
        set_focus('OrderDate');
        $input_error = 1;
    } elseif (!is_date_in_fiscalyear($_POST['OrderDate'])) {
        display_error(_("The entered date is not in fiscal year."));
        set_focus('OrderDate');
        $input_error = 1;
    }
    /*---------------------------MOODLEARNING----------------------------------*/
    if (!get_post('custom_num')) {
        display_error(_("There is no credit memo no. entered."));
        set_focus('custom_num');
        $input_error = 1;
    } else {
        if (checkIfNumExists($_POST['custom_num'], ST_CUSTCREDIT) > 0) {
            display_error(_("Credit Memo number already exists. Please check again."));
            set_focus('custom_num');
            $input_error = 1;
        }
    }
    /*---------------------------------------------------------------------------*/
    return $input_error == 0;
}
コード例 #18
0
function can_process()
{
    global $Refs, $SysPrefs;
    copy_to_cart();
    if (!get_post('customer_id')) {
        display_error(_("There is no customer selected."));
        set_focus('customer_id');
        return false;
    }
    if (!get_post('branch_id')) {
        display_error(_("This customer has no branch defined."));
        set_focus('branch_id');
        return false;
    }
    if (!is_date($_POST['OrderDate'])) {
        display_error(_("The entered date is invalid."));
        set_focus('OrderDate');
        return false;
    }
    if ($_SESSION['Items']->trans_type != ST_SALESORDER && $_SESSION['Items']->trans_type != ST_SALESQUOTE && !is_date_in_fiscalyear($_POST['OrderDate'])) {
        display_error(_("The entered date is not in fiscal year"));
        set_focus('OrderDate');
        return false;
    }
    if (count($_SESSION['Items']->line_items) == 0) {
        display_error(_("You must enter at least one non empty item line."));
        set_focus('AddItem');
        return false;
    }
    if (!$SysPrefs->allow_negative_stock() && ($low_stock = $_SESSION['Items']->check_qoh())) {
        display_error(_("This document cannot be processed because there is insufficient quantity for items marked."));
        return false;
    }
    if ($_SESSION['Items']->payment_terms['cash_sale'] == 0) {
        if (strlen($_POST['deliver_to']) <= 1) {
            display_error(_("You must enter the person or company to whom delivery should be made to."));
            set_focus('deliver_to');
            return false;
        }
        if ($_SESSION['Items']->trans_type != ST_SALESQUOTE && strlen($_POST['delivery_address']) <= 1) {
            display_error(_("You should enter the street address in the box provided. Orders cannot be accepted without a valid street address."));
            set_focus('delivery_address');
            return false;
        }
        if ($_POST['freight_cost'] == "") {
            $_POST['freight_cost'] = price_format(0);
        }
        if (!check_num('freight_cost', 0)) {
            display_error(_("The shipping cost entered is expected to be numeric."));
            set_focus('freight_cost');
            return false;
        }
        if (!is_date($_POST['delivery_date'])) {
            if ($_SESSION['Items']->trans_type == ST_SALESQUOTE) {
                display_error(_("The Valid date is invalid."));
            } else {
                display_error(_("The delivery date is invalid."));
            }
            set_focus('delivery_date');
            return false;
        }
        if (date1_greater_date2($_POST['OrderDate'], $_POST['delivery_date'])) {
            if ($_SESSION['Items']->trans_type == ST_SALESQUOTE) {
                display_error(_("The requested valid date is before the date of the quotation."));
            } else {
                display_error(_("The requested delivery date is before the date of the order."));
            }
            set_focus('delivery_date');
            return false;
        }
    } else {
        if (!db_has_cash_accounts()) {
            display_error(_("You need to define a cash account for your Sales Point."));
            return false;
        }
    }
    if (!$Refs->is_valid($_POST['ref'])) {
        display_error(_("You must enter a reference."));
        set_focus('ref');
        return false;
    }
    if (!db_has_currency_rates($_SESSION['Items']->customer_currency, $_POST['OrderDate'])) {
        return false;
    }
    if ($_SESSION['Items']->get_items_total() < 0) {
        display_error("Invoice total amount cannot be less than zero.");
        return false;
    }
    return true;
}
コード例 #19
0
function check_data()
{
    global $Refs;
    if (!isset($_POST['InvoiceDate']) || !is_date($_POST['InvoiceDate'])) {
        display_error(_("The entered invoice date is invalid."));
        set_focus('InvoiceDate');
        return false;
    }
    if (!is_date_in_fiscalyear($_POST['InvoiceDate'])) {
        display_error(_("The entered invoice date is not in fiscal year."));
        set_focus('InvoiceDate');
        return false;
    }
    if (!isset($_POST['due_date']) || !is_date($_POST['due_date'])) {
        display_error(_("The entered invoice due date is invalid."));
        set_focus('due_date');
        return false;
    }
    if ($_SESSION['Items']->trans_no == 0) {
        if (!$Refs->is_valid($_POST['ref'])) {
            display_error(_("You must enter a reference."));
            set_focus('ref');
            return false;
        }
    }
    if ($_POST['ChargeFreightCost'] == "") {
        $_POST['ChargeFreightCost'] = price_format(0);
    }
    if (!check_num('ChargeFreightCost', 0)) {
        display_error(_("The entered shipping value is not numeric."));
        set_focus('ChargeFreightCost');
        return false;
    }
    if ($_SESSION['Items']->has_items_dispatch() == 0 && input_num('ChargeFreightCost') == 0) {
        display_error(_("There are no item quantities on this invoice."));
        return false;
    }
    if (!check_quantities()) {
        display_error(_("Selected quantity cannot be less than quantity credited nor more than quantity not invoiced yet."));
        return false;
    }
    return true;
}
コード例 #20
0
{
    if ($myrow["last_sent"] == '0000-00-00') {
        $from = sql2date($myrow["begin"]);
    } else {
        $from = sql2date($myrow["last_sent"]);
    }
    return $from;
}
if (!isset($_POST['date'])) {
    $_POST['date'] = Today();
}
$id = find_submit("create");
if ($id != -1) {
    $Ajax->activate('_page_body');
    $date = $_POST['date'];
    if (is_date_in_fiscalyear($date)) {
        $invs = array();
        $myrow = get_recurrent_invoice($id);
        $from = calculate_from($myrow);
        $to = add_months($from, $myrow['monthly']);
        $to = add_days($to, $myrow['days']);
        if ($myrow['debtor_no'] == 0) {
            $cust = get_cust_branches_from_group($myrow['group_no']);
            while ($row = db_fetch($cust)) {
                $invs[] = create_recurrent_invoices($row['debtor_no'], $row['branch_code'], $myrow['order_no'], $myrow['id'], $date, $from, $to);
            }
        } else {
            $invs[] = create_recurrent_invoices($myrow['debtor_no'], $myrow['group_no'], $myrow['order_no'], $myrow['id'], $date, $from, $to);
        }
        if (count($invs) > 0) {
            $min = min($invs);
コード例 #21
0
function can_process()
{
    global $wo_details, $SysPrefs, $Refs;
    if (!$Refs->is_valid($_POST['ref'])) {
        display_error(_("You must enter a reference."));
        set_focus('ref');
        return false;
    }
    if (!is_new_reference($_POST['ref'], 29)) {
        display_error(_("The entered reference is already in use."));
        set_focus('ref');
        return false;
    }
    if (!check_num('quantity', 0)) {
        display_error(_("The quantity entered is not a valid number or less then zero."));
        set_focus('quantity');
        return false;
    }
    if (!is_date($_POST['date_'])) {
        display_error(_("The entered date is invalid."));
        set_focus('date_');
        return false;
    } elseif (!is_date_in_fiscalyear($_POST['date_'])) {
        display_error(_("The entered date is not in fiscal year."));
        set_focus('date_');
        return false;
    }
    if (date_diff2(sql2date($wo_details["released_date"]), $_POST['date_'], "d") > 0) {
        display_error(_("The production date cannot be before the release date of the work order."));
        set_focus('date_');
        return false;
    }
    // don't produce more that required. Otherwise change the Work Order.
    if (input_num('quantity') > $wo_details["units_reqd"] - $wo_details["units_issued"]) {
        display_error(_("The production exceeds the quantity needed. Please change the Work Order."));
        set_focus('quantity');
        return false;
    }
    // if unassembling we need to check the qoh
    if ($_POST['ProductionType'] == 0 && !$SysPrefs->allow_negative_stock()) {
        $wo_details = get_work_order($_POST['selected_id']);
        $qoh = get_qoh_on_date($wo_details["stock_id"], $wo_details["loc_code"], $_POST['date_']);
        if (-input_num('quantity') + $qoh < 0) {
            display_error(_("The unassembling cannot be processed because there is insufficient stock."));
            set_focus('quantity');
            return false;
        }
    }
    // if production we need to check the qoh of the wo requirements
    if ($_POST['ProductionType'] == 1 && !$SysPrefs->allow_negative_stock()) {
        $err = false;
        $result = get_wo_requirements($_POST['selected_id']);
        while ($row = db_fetch($result)) {
            if ($row['mb_flag'] == 'D') {
                // service, non stock
                continue;
            }
            $qoh = get_qoh_on_date($row["stock_id"], $row["loc_code"], $_POST['date_']);
            if ($qoh - $row['units_req'] * input_num('quantity') < 0) {
                display_error(_("The production cannot be processed because a required item would cause a negative inventory balance :") . " " . $row['stock_id'] . " - " . $row['description']);
                $err = true;
            }
        }
        if ($err) {
            set_focus('quantity');
            return false;
        }
    }
    return true;
}
コード例 #22
0
function can_commit()
{
    global $Refs;
    if (!get_post('supplier_id')) {
        display_error(_("There is no supplier selected."));
        set_focus('supplier_id');
        return false;
    }
    if (!is_date($_POST['OrderDate'])) {
        display_error(_("The entered order date is invalid."));
        set_focus('OrderDate');
        return false;
    }
    if ($_SESSION['PO']->trans_type != ST_PURCHORDER && !is_date_in_fiscalyear($_POST['OrderDate'])) {
        display_error(_("The entered date is not in fiscal year"));
        set_focus('OrderDate');
        return false;
    }
    if ($_SESSION['PO']->trans_type == ST_SUPPINVOICE && !is_date($_POST['due_date'])) {
        display_error(_("The entered due date is invalid."));
        set_focus('due_date');
        return false;
    }
    if (!$_SESSION['PO']->order_no) {
        if (!$Refs->is_valid(get_post('ref'))) {
            display_error(_("There is no reference entered for this purchase order."));
            set_focus('ref');
            return false;
        }
        if (!is_new_reference(get_post('ref'), $_SESSION['PO']->trans_type)) {
            display_error(_("The entered reference is already in use."));
            set_focus('ref');
            return false;
        }
    }
    if ($_SESSION['PO']->trans_type == ST_SUPPINVOICE && !$Refs->is_valid(get_post('supp_ref'))) {
        display_error(_("You must enter a supplier's invoice reference."));
        set_focus('supp_ref');
        return false;
    }
    if ($_SESSION['PO']->trans_type == ST_SUPPINVOICE && is_reference_already_there($_SESSION['PO']->supplier_id, get_post('supp_ref'), $_SESSION['PO']->order_no)) {
        display_error(_("This invoice number has already been entered. It cannot be entered again.") . " (" . get_post('supp_ref') . ")");
        set_focus('supp_ref');
        return false;
    }
    if ($_SESSION['PO']->trans_type == ST_PURCHORDER && get_post('delivery_address') == '') {
        display_error(_("There is no delivery address specified."));
        set_focus('delivery_address');
        return false;
    }
    if (get_post('StkLocation') == '') {
        display_error(_("There is no location specified to move any items into."));
        set_focus('StkLocation');
        return false;
    }
    if (!db_has_currency_rates($_SESSION['PO']->curr_code, $_POST['OrderDate'])) {
        return false;
    }
    if ($_SESSION['PO']->order_has_items() == false) {
        display_error(_("The order cannot be placed because there are no lines entered on this order."));
        return false;
    }
    return true;
}
コード例 #23
0
ファイル: work_order_entry.php プロジェクト: M-Shahbaz/FA
function can_process()
{
    global $selected_id, $SysPrefs, $Refs;
    if (!isset($selected_id)) {
        if (!$Refs->is_valid($_POST['wo_ref'])) {
            display_error(_("You must enter a reference."));
            set_focus('wo_ref');
            return false;
        }
        if (!is_new_reference($_POST['wo_ref'], ST_WORKORDER)) {
            display_error(_("The entered reference is already in use."));
            set_focus('wo_ref');
            return false;
        }
    }
    if (!check_num('quantity', 0)) {
        display_error(_("The quantity entered is invalid or less than zero."));
        set_focus('quantity');
        return false;
    }
    if (!is_date($_POST['date_'])) {
        display_error(_("The date entered is in an invalid format."));
        set_focus('date_');
        return false;
    } elseif (!is_date_in_fiscalyear($_POST['date_'])) {
        display_error(_("The entered date is not in fiscal year."));
        set_focus('date_');
        return false;
    }
    // only check bom and quantites if quick assembly
    if (!($_POST['type'] == WO_ADVANCED)) {
        if (!has_bom($_POST['stock_id'])) {
            display_error(_("The selected item to manufacture does not have a bom."));
            set_focus('stock_id');
            return false;
        }
        if ($_POST['Labour'] == "") {
            $_POST['Labour'] = price_format(0);
        }
        if (!check_num('Labour', 0)) {
            display_error(_("The labour cost entered is invalid or less than zero."));
            set_focus('Labour');
            return false;
        }
        if ($_POST['Costs'] == "") {
            $_POST['Costs'] = price_format(0);
        }
        if (!check_num('Costs', 0)) {
            display_error(_("The cost entered is invalid or less than zero."));
            set_focus('Costs');
            return false;
        }
        if (!$SysPrefs->allow_negative_stock()) {
            if ($_POST['type'] == WO_ASSEMBLY) {
                // check bom if assembling
                $result = get_bom($_POST['stock_id']);
                while ($bom_item = db_fetch($result)) {
                    if (has_stock_holding($bom_item["ResourceType"])) {
                        $quantity = $bom_item["quantity"] * input_num('quantity');
                        if (check_negative_stock($bom_item["component"], -$quantity, $bom_item["loc_code"], $_POST['date_'])) {
                            display_error(_("The work order cannot be processed because there is an insufficient quantity for component:") . " " . $bom_item["component"] . " - " . $bom_item["description"] . ".  " . _("Location:") . " " . $bom_item["location_name"]);
                            set_focus('quantity');
                            return false;
                        }
                    }
                }
            } elseif ($_POST['type'] == WO_UNASSEMBLY) {
                // if unassembling, check item to unassemble
                if (check_negative_stock($_POST['stock_id'], -input_num('quantity'), $_POST['StockLocation'], $_POST['date_'])) {
                    display_error(_("The selected item cannot be unassembled because there is insufficient stock."));
                    return false;
                }
            }
        }
    } else {
        if (!is_date($_POST['RequDate'])) {
            set_focus('RequDate');
            display_error(_("The date entered is in an invalid format."));
            return false;
        }
        //elseif (!is_date_in_fiscalyear($_POST['RequDate']))
        //{
        //	display_error(_("The entered date is not in fiscal year."));
        //	return false;
        //}
        if (isset($selected_id)) {
            $myrow = get_work_order($selected_id, true);
            if ($_POST['units_issued'] > input_num('quantity')) {
                set_focus('quantity');
                display_error(_("The quantity cannot be changed to be less than the quantity already manufactured for this order."));
                return false;
            }
        }
    }
    return true;
}
コード例 #24
0
ファイル: gl_journal.php プロジェクト: M-Shahbaz/FA
function create_cart($type = 0, $trans_no = 0)
{
    global $Refs;
    if (isset($_SESSION['journal_items'])) {
        unset($_SESSION['journal_items']);
    }
    $cart = new items_cart($type);
    $cart->order_id = $trans_no;
    if ($trans_no) {
        $result = get_gl_trans($type, $trans_no);
        if ($result) {
            while ($row = db_fetch($result)) {
                if ($row['amount'] == 0) {
                    continue;
                }
                $date = $row['tran_date'];
                $cart->add_gl_item($row['account'], $row['dimension_id'], $row['dimension2_id'], $row['amount'], $row['memo_']);
            }
        }
        $cart->memo_ = get_comments_string($type, $trans_no);
        $cart->tran_date = sql2date($date);
        $cart->reference = $Refs->get($type, $trans_no);
        $_POST['ref_original'] = $cart->reference;
        // Store for comparison when updating
    } else {
        $cart->reference = $Refs->get_next(0);
        $cart->tran_date = new_doc_date();
        if (!is_date_in_fiscalyear($cart->tran_date)) {
            $cart->tran_date = end_fiscalyear();
        }
        $_POST['ref_original'] = -1;
    }
    $_POST['memo_'] = $cart->memo_;
    $_POST['ref'] = $cart->reference;
    $_POST['date_'] = $cart->tran_date;
    $_SESSION['journal_items'] =& $cart;
}
コード例 #25
0
function check_data()
{
    global $Refs, $SysPrefs;
    /*--------------------MOODLEARNING---------------------------*/
    if (!get_post('custom_num')) {
        display_error(_("There is no delivery number entered."));
        set_focus('custom_num');
        return false;
    }
    /*--------------------------------------------------------------------*/
    if (!isset($_POST['DispatchDate']) || !is_date($_POST['DispatchDate'])) {
        display_error(_("The entered date of delivery is invalid."));
        set_focus('DispatchDate');
        return false;
    }
    if (!is_date_in_fiscalyear($_POST['DispatchDate'])) {
        display_error(_("The entered date of delivery is not in fiscal year."));
        set_focus('DispatchDate');
        return false;
    }
    if (!isset($_POST['due_date']) || !is_date($_POST['due_date'])) {
        display_error(_("The entered dead-line for invoice is invalid."));
        set_focus('due_date');
        return false;
    }
    if ($_SESSION['Items']->trans_no == 0) {
        if (!$Refs->is_valid($_POST['ref'])) {
            display_error(_("You must enter a reference."));
            set_focus('ref');
            return false;
        }
    }
    if ($_POST['ChargeFreightCost'] == "") {
        $_POST['ChargeFreightCost'] = price_format(0);
    }
    if (!check_num('ChargeFreightCost', 0)) {
        display_error(_("The entered shipping value is not numeric."));
        set_focus('ChargeFreightCost');
        return false;
    }
    if ($_SESSION['Items']->has_items_dispatch() == 0 && input_num('ChargeFreightCost') == 0) {
        display_error(_("There are no item quantities on this delivery note."));
        return false;
    }
    if (!check_quantities()) {
        return false;
    }
    copy_to_cart();
    if (!$SysPrefs->allow_negative_stock() && ($low_stock = $_SESSION['Items']->check_qoh())) {
        display_error(_("This document cannot be processed because there is insufficient quantity for: ") . implode(',', $low_stock));
        return false;
    }
    return true;
}
コード例 #26
0
ファイル: supplier_payment.php プロジェクト: M-Shahbaz/FA
function check_inputs()
{
    global $Refs;
    if (!get_post('supplier_id')) {
        display_error(_("There is no supplier selected."));
        set_focus('supplier_id');
        return false;
    }
    if (@$_POST['amount'] == "") {
        $_POST['amount'] = price_format(0);
    }
    if (!check_num('amount', 0)) {
        display_error(_("The entered amount is invalid or less than zero."));
        set_focus('amount');
        return false;
    }
    if (isset($_POST['charge']) && !check_num('charge', 0)) {
        display_error(_("The entered amount is invalid or less than zero."));
        set_focus('charge');
        return false;
    }
    if (isset($_POST['charge']) && input_num('charge') > 0) {
        $charge_acct = get_company_pref('bank_charge_act');
        if (get_gl_account($charge_acct) == false) {
            display_error(_("The Bank Charge Account has not been set in System and General GL Setup."));
            set_focus('charge');
            return false;
        }
    }
    if (@$_POST['discount'] == "") {
        $_POST['discount'] = 0;
    }
    if (!check_num('discount', 0)) {
        display_error(_("The entered discount is invalid or less than zero."));
        set_focus('amount');
        return false;
    }
    //if (input_num('amount') - input_num('discount') <= 0)
    if (input_num('amount') <= 0) {
        display_error(_("The total of the amount and the discount is zero or negative. Please enter positive values."));
        set_focus('amount');
        return false;
    }
    if (isset($_POST['bank_amount']) && input_num('bank_amount') <= 0) {
        display_error(_("The entered bank amount is zero or negative."));
        set_focus('bank_amount');
        return false;
    }
    if (!is_date($_POST['DatePaid'])) {
        display_error(_("The entered date is invalid."));
        set_focus('DatePaid');
        return false;
    } elseif (!is_date_in_fiscalyear($_POST['DatePaid'])) {
        display_error(_("The entered date is out of fiscal year or is closed for further data entry."));
        set_focus('DatePaid');
        return false;
    }
    $limit = get_bank_account_limit($_POST['bank_account'], $_POST['DatePaid']);
    if ($limit !== null && floatcmp($limit, input_num('amount')) < 0) {
        display_error(sprintf(_("The total bank amount exceeds allowed limit (%s)."), price_format($limit)));
        set_focus('amount');
        return false;
    }
    if (!$Refs->is_valid($_POST['ref'])) {
        display_error(_("You must enter a reference."));
        set_focus('ref');
        return false;
    }
    if (!is_new_reference($_POST['ref'], ST_SUPPAYMENT)) {
        display_error(_("The entered reference is already in use."));
        set_focus('ref');
        return false;
    }
    if (!db_has_currency_rates(get_supplier_currency($_POST['supplier_id']), $_POST['DatePaid'], true)) {
        return false;
    }
    $_SESSION['alloc']->amount = -input_num('amount');
    if (isset($_POST["TotalNumberOfAllocs"])) {
        return check_allocations();
    } else {
        return true;
    }
}
コード例 #27
0
function check_trans()
{
    global $Refs;
    $input_error = 0;
    if ($_SESSION['pay_items']->count_gl_items() < 1) {
        display_error(_("You must enter at least one payment line."));
        set_focus('code_id');
        $input_error = 1;
    }
    if ($_SESSION['pay_items']->gl_items_total() == 0.0) {
        display_error(_("The total bank amount cannot be 0."));
        set_focus('code_id');
        $input_error = 1;
    }
    $limit = get_bank_account_limit($_POST['bank_account'], $_POST['date_']);
    $amnt_chg = -$_SESSION['pay_items']->gl_items_total() - $_SESSION['pay_items']->original_amount;
    if ($limit !== null && floatcmp($limit, -$amnt_chg) < 0) {
        display_error(sprintf(_("The total bank amount exceeds allowed limit (%s)."), price_format($limit - $_SESSION['pay_items']->original_amount)));
        set_focus('code_id');
        $input_error = 1;
    }
    if ($trans = check_bank_account_history($amnt_chg, $_POST['bank_account'], $_POST['date_'])) {
        display_error(sprintf(_("The bank transaction would result in exceed of authorized overdraft limit for transaction: %s #%s on %s."), $systypes_array[$trans['type']], $trans['trans_no'], sql2date($trans['trans_date'])));
        set_focus('amount');
        $input_error = 1;
    }
    if (!$Refs->is_valid($_POST['ref'])) {
        display_error(_("You must enter a reference."));
        set_focus('ref');
        $input_error = 1;
    } elseif ($_POST['ref'] != $_SESSION['pay_items']->reference && !is_new_reference($_POST['ref'], $_SESSION['pay_items']->trans_type)) {
        display_error(_("The entered reference is already in use."));
        set_focus('ref');
        $input_error = 1;
    }
    if (!is_date($_POST['date_'])) {
        display_error(_("The entered date for the payment is invalid."));
        set_focus('date_');
        $input_error = 1;
    } elseif (!is_date_in_fiscalyear($_POST['date_'])) {
        display_error(_("The entered date is not in fiscal year."));
        set_focus('date_');
        $input_error = 1;
    }
    if (get_post('PayType') == PT_CUSTOMER && (!get_post('person_id') || !get_post('PersonDetailID'))) {
        display_error(_("You have to select customer and customer branch."));
        set_focus('person_id');
        $input_error = 1;
    } elseif (get_post('PayType') == PT_SUPPLIER && !get_post('person_id')) {
        display_error(_("You have to select supplier."));
        set_focus('person_id');
        $input_error = 1;
    }
    if (!db_has_currency_rates(get_bank_account_currency($_POST['bank_account']), $_POST['date_'], true)) {
        $input_error = 1;
    }
    if (isset($_POST['settled_amount']) && in_array(get_post('PayType'), array(PT_SUPPLIER, PT_CUSTOMER)) && input_num('settled_amount') <= 0) {
        display_error(_("Settled amount have to be positive number."));
        set_focus('person_id');
        $input_error = 1;
    }
    return $input_error;
}
コード例 #28
0
function check_valid_entries()
{
    global $Refs;
    if (!is_date($_POST['DatePaid'])) {
        display_error(_("The entered date is invalid."));
        set_focus('DatePaid');
        return false;
    }
    if (!is_date_in_fiscalyear($_POST['DatePaid'])) {
        display_error(_("The entered date is not in fiscal year."));
        set_focus('DatePaid');
        return false;
    }
    if (!check_num('amount', 0)) {
        display_error(_("The entered amount is invalid or less than zero."));
        set_focus('amount');
        return false;
    }
    if (input_num('amount') == 0) {
        display_error(_("The total bank amount cannot be 0."));
        set_focus('amount');
        return false;
    }
    $limit = get_bank_account_limit($_POST['FromBankAccount'], $_POST['DatePaid']);
    $amnt_tr = input_num('charge') + input_num('amount');
    if ($limit !== null && floatcmp($limit, $amnt_tr) < 0) {
        display_error(sprintf(_("The total bank amount exceeds allowed limit (%s) for source account."), price_format($limit)));
        set_focus('amount');
        return false;
    }
    if ($trans = check_bank_account_history(-$amnt_tr, $_POST['FromBankAccount'], $_POST['DatePaid'])) {
        display_error(sprintf(_("The bank transaction would result in exceed of authorized overdraft limit for transaction: %s #%s on %s."), $systypes_array[$trans['type']], $trans['trans_no'], sql2date($trans['trans_date'])));
        set_focus('amount');
        $input_error = 1;
    }
    if (isset($_POST['charge']) && !check_num('charge', 0)) {
        display_error(_("The entered amount is invalid or less than zero."));
        set_focus('charge');
        return false;
    }
    if (isset($_POST['charge']) && input_num('charge') > 0 && get_company_pref('bank_charge_act') == '') {
        display_error(_("The Bank Charge Account has not been set in System and General GL Setup."));
        set_focus('charge');
        return false;
    }
    if (!$Refs->is_valid($_POST['ref'])) {
        display_error(_("You must enter a reference."));
        set_focus('ref');
        return false;
    }
    if (!is_new_reference($_POST['ref'], ST_BANKTRANSFER)) {
        display_error(_("The entered reference is already in use."));
        set_focus('ref');
        return false;
    }
    if ($_POST['FromBankAccount'] == $_POST['ToBankAccount']) {
        display_error(_("The source and destination bank accouts cannot be the same."));
        set_focus('ToBankAccount');
        return false;
    }
    if (isset($_POST['target_amount']) && !check_num('target_amount', 0)) {
        display_error(_("The entered amount is invalid or less than zero."));
        set_focus('target_amount');
        return false;
    }
    if (isset($_POST['target_amount']) && input_num('target_amount') == 0) {
        display_error(_("The incomming bank amount cannot be 0."));
        set_focus('target_amount');
        return false;
    }
    if (!db_has_currency_rates(get_bank_account_currency($_POST['FromBankAccount']), $_POST['DatePaid'])) {
        return false;
    }
    if (!db_has_currency_rates(get_bank_account_currency($_POST['ToBankAccount']), $_POST['DatePaid'])) {
        return false;
    }
    return true;
}
コード例 #29
0
function can_process()
{
    $input_error = 0;
    if ($_SESSION['Items']->count_items() == 0 && !check_num('ChargeFreightCost', 0)) {
        return false;
    }
    if ($_SESSION['Items']->trans_no == 0) {
        if (!references::is_valid($_POST['ref'])) {
            display_error(tr("You must enter a reference."));
            set_focus('ref');
            $input_error = 1;
        } elseif (!is_new_reference($_POST['ref'], 11)) {
            display_error(tr("The entered reference is already in use."));
            set_focus('ref');
            $input_error = 1;
        }
    }
    if (!is_date($_POST['OrderDate'])) {
        display_error(tr("The entered date for the credit note is invalid."));
        set_focus('OrderDate');
        $input_error = 1;
    } elseif (!is_date_in_fiscalyear($_POST['OrderDate'])) {
        display_error(tr("The entered date is not in fiscal year."));
        set_focus('OrderDate');
        $input_error = 1;
    }
    return $input_error == 0;
}
コード例 #30
0
function display_item_form()
{
    global $table_style2;
    start_table($table_style2, 5, 7);
    echo "<tr><td valign=top>";
    // outer table
    echo "<table>";
    if (!isset($_POST['customer_id'])) {
        $_POST['customer_id'] = get_global_customer(false);
    }
    if (!isset($_POST['DateBanked'])) {
        $_POST['DateBanked'] = Today();
        if (!is_date_in_fiscalyear($_POST['DateBanked'])) {
            $_POST['DateBanked'] = end_fiscalyear();
        }
    }
    customer_list_row(tr("From Customer:"), 'customer_id', null, false, true);
    if (db_customer_has_branches($_POST['customer_id'])) {
        customer_branches_list_row(tr("Branch:"), $_POST['customer_id'], 'BranchID', null, false, true, true);
    } else {
        hidden('BranchID', reserved_words::get_any_numeric());
    }
    read_customer_data();
    set_global_customer($_POST['customer_id']);
    if (isset($_POST['HoldAccount']) && $_POST['HoldAccount'] != 0) {
        echo "</table></table>";
        display_note(tr("This customer account is on hold."), 0, 0, "class='redfb'");
    } else {
        $display_discount_percent = percent_format($_POST['pymt_discount'] * 100) . "%";
        amount_row(tr("Amount:"), 'amount');
        amount_row(tr("Amount of Discount:"), 'discount');
        label_row(tr("Customer prompt payment discount :"), $display_discount_percent);
        date_row(tr("Date of Deposit:"), 'DateBanked');
        echo "</table>";
        echo "</td><td valign=top class='tableseparator'>";
        // outer table
        echo "<table>";
        bank_accounts_list_row(tr("Into Bank Account:"), 'bank_account', null, true);
        $cust_currency = get_customer_currency($_POST['customer_id']);
        $bank_currency = get_bank_account_currency($_POST['bank_account']);
        if ($cust_currency != $bank_currency) {
            exchange_rate_display($cust_currency, $bank_currency, $_POST['DateBanked']);
        }
        bank_trans_types_list_row(tr("Type:"), 'ReceiptType', null);
        text_row(tr("Reference:"), 'ref', null, 20, 40);
        textarea_row(tr("Memo:"), 'memo_', null, 22, 4);
        echo "</table>";
        echo "</td></tr>";
        end_table();
        // outer table
        if ($cust_currency != $bank_currency) {
            display_note(tr("Amount and discount are in customer's currency."));
        }
        echo "<br>";
        submit_center('AddPaymentItem', tr("Add Payment"));
    }
    echo "<br>";
}