public function getById($rest, $id)
 {
     $bank = get_bank_account($id);
     if (!$bank) {
         $bank = array();
     }
     api_success_response(json_encode($bank));
 }
$th = array(_("Reconcile Date"), _("Beginning<br>Balance"), _("Ending<br>Balance"), _("Account<br>Total"), _("Reconciled<br>Amount"), _("Difference"));
table_header($th);
start_row();
date_cells("", "reconcile_date", _('Date of bank statement to reconcile'), get_post('bank_date') == '', 0, 0, 0, null, true);
amount_cells_ex("", "beg_balance", 15);
amount_cells_ex("", "end_balance", 15);
$reconciled = input_num('reconciled');
$difference = input_num("end_balance") - input_num("beg_balance") - $reconciled;
amount_cell($total);
amount_cell($reconciled, false, '', "reconciled");
amount_cell($difference, false, '', "difference");
end_row();
end_table();
div_end();
echo "<hr>";
//------------------------------------------------------------------------------------------------
if (!isset($_POST['bank_account'])) {
    $_POST['bank_account'] = "";
}
$sql = get_sql_for_bank_account_reconcile($_POST['bank_account'], get_post('reconcile_date'));
$act = get_bank_account($_POST["bank_account"]);
display_heading($act['bank_account_name'] . " - " . $act['bank_curr_code']);
$cols = array(_("Type") => array('fun' => 'systype_name', 'ord' => ''), _("#") => array('fun' => 'trans_view', 'ord' => ''), _("Reference"), _("Date") => 'date', _("Debit") => array('align' => 'right', 'fun' => 'fmt_debit'), _("Credit") => array('align' => 'right', 'insert' => true, 'fun' => 'fmt_credit'), _("Person/Item") => array('fun' => 'fmt_person'), array('insert' => true, 'fun' => 'gl_view'), "X" => array('insert' => true, 'fun' => 'rec_checkbox'));
$table =& new_db_pager('trans_tbl', $sql, $cols);
$table->width = "80%";
display_db_pager($table);
br(1);
submit_center('Reconcile', _("Reconcile"), true, '', null);
end_form();
//------------------------------------------------------------------------------------------------
end_page();
Exemple #3
0
function print_po()
{
    global $path_to_root;
    include_once $path_to_root . "reporting/includes/pdf_report.inc";
    $from = $_REQUEST['PARAM_0'];
    $to = $_REQUEST['PARAM_1'];
    $currency = $_REQUEST['PARAM_2'];
    $bankaccount = $_REQUEST['PARAM_3'];
    $email = $_REQUEST['PARAM_4'];
    $comments = $_REQUEST['PARAM_5'];
    if ($from == null) {
        $from = 0;
    }
    if ($to == null) {
        $to = 0;
    }
    $dec = user_price_dec();
    $cols = array(4, 60, 225, 300, 325, 385, 450, 515);
    // $headers in doctext.inc
    $aligns = array('left', 'left', 'left', 'left', 'right', 'right', 'right');
    $params = array('comments' => $comments, 'bankaccount' => $bankaccount);
    $baccount = get_bank_account($params['bankaccount']);
    $cur = get_company_Pref('curr_default');
    if ($email == 0) {
        $rep = new FrontReport(tr('PURCHASE ORDER'), "PurchaseOrderBulk.pdf", user_pagesize());
        $rep->currency = $cur;
        $rep->Font();
        $rep->Info($params, $cols, null, $aligns);
    }
    for ($i = $from; $i <= $to; $i++) {
        $myrow = get_po($i);
        if ($email == 1) {
            $rep = new FrontReport("", "", user_pagesize());
            $rep->currency = $cur;
            $rep->Font();
            $rep->title = tr('PURCHASE ORDER');
            $rep->filename = "PurchaseOrder" . $i . ".pdf";
            $rep->Info($params, $cols, null, $aligns);
        } else {
            $rep->title = tr('PURCHASE ORDER');
        }
        $rep->Header2($myrow, null, $myrow, $baccount, 8);
        $result = get_po_details($i);
        $SubTotal = 0;
        while ($myrow2 = db_fetch($result)) {
            $Net = round($myrow2["unit_price"] * $myrow2["quantity_ordered"], user_price_dec());
            $SubTotal += $Net;
            $DisplayPrice = number_format2($myrow2["unit_price"], $dec);
            $DisplayQty = number_format2($myrow2["quantity_ordered"], user_qty_dec());
            $DisplayNet = number_format2($Net, $dec);
            //$rep->TextCol(0, 1,	$myrow2['item_code'], -2);
            $rep->TextCol(0, 2, $myrow2['description'], -2);
            $rep->TextCol(2, 3, $myrow2['delivery_date'], -2);
            $rep->TextCol(3, 4, $DisplayQty, -2);
            $rep->TextCol(4, 5, $myrow2['units'], -2);
            $rep->TextCol(5, 6, $DisplayPrice, -2);
            $rep->TextCol(6, 7, $DisplayNet, -2);
            $rep->NewLine(1);
            if ($rep->row < $rep->bottomMargin + 15 * $rep->lineHeight) {
                $rep->Header2($myrow, $branch, $sales_order, $baccount);
            }
        }
        if ($myrow['comments'] != "") {
            $rep->NewLine();
            $rep->TextColLines(1, 5, $myrow['comments'], -2);
        }
        $DisplaySubTot = number_format2($SubTotal, $dec);
        $rep->row = $rep->bottomMargin + 15 * $rep->lineHeight;
        $linetype = true;
        $doctype = 8;
        if ($rep->currency != $myrow['curr_code']) {
            include $path_to_root . "reporting/includes/doctext2.inc";
        } else {
            include $path_to_root . "reporting/includes/doctext.inc";
        }
        $rep->TextCol(3, 6, $doc_Sub_total, -2);
        $rep->TextCol(6, 7, $DisplaySubTot, -2);
        $rep->NewLine();
        $DisplayTotal = number_format2($SubTotal, $dec);
        $rep->Font('bold');
        $rep->TextCol(3, 6, $doc_TOTAL_PO, -2);
        $rep->TextCol(6, 7, $DisplayTotal, -2);
        $rep->Font();
        if ($email == 1) {
            $myrow['contact_email'] = $myrow['email'];
            $myrow['DebtorName'] = $myrow['supp_name'];
            $myrow['reference'] = $myrow['order_no'];
            $rep->End($email, $doc_Order_no . " " . $myrow['reference'], $myrow);
        }
    }
    if ($email == 0) {
        $rep->End();
    }
}
Exemple #4
0
        label_cell(_("Yes"));
    } else {
        label_cell(_("No"));
    }
    inactive_control_cell($myrow["id"], $myrow["inactive"], 'bank_accounts', 'id');
    edit_button_cell("Edit" . $myrow["id"], _("Edit"));
    delete_button_cell("Delete" . $myrow["id"], _("Delete"));
    end_row();
}
inactive_control_row($th);
end_table(1);
$is_used = $selected_id != -1 && key_in_foreign_table($selected_id, 'bank_trans', 'bank_act');
start_table(TABLESTYLE2);
if ($selected_id != -1) {
    if ($Mode == 'Edit') {
        $myrow = get_bank_account($selected_id);
        $_POST['account_code'] = $myrow["account_code"];
        $_POST['account_type'] = $myrow["account_type"];
        $_POST['bank_name'] = $myrow["bank_name"];
        $_POST['bank_account_name'] = $myrow["bank_account_name"];
        $_POST['bank_account_number'] = $myrow["bank_account_number"];
        $_POST['bank_address'] = $myrow["bank_address"];
        $_POST['BankAccountCurrency'] = $myrow["bank_curr_code"];
        $_POST['dflt_curr_act'] = $myrow["dflt_curr_act"];
    }
    hidden('selected_id', $selected_id);
    hidden('account_code');
    hidden('account_type');
    hidden('BankAccountCurrency', $_POST['BankAccountCurrency']);
    set_focus('bank_account_name');
}
function print_bank_transactions()
{
    global $path_to_root, $systypes_array;
    $acc = $_POST['PARAM_0'];
    $from = $_POST['PARAM_1'];
    $to = $_POST['PARAM_2'];
    $comments = $_POST['PARAM_3'];
    $destination = $_POST['PARAM_4'];
    if ($destination) {
        include_once $path_to_root . "/reporting/includes/excel_report.inc";
    } else {
        include_once $path_to_root . "/reporting/includes/pdf_report.inc";
    }
    $rep = new FrontReport(_('Bank Statement'), "BankStatement", user_pagesize(), 9, "L");
    $dec = user_price_dec();
    $cols = array(0, 90, 110, 170, 225, 450, 500, 550, 600, 660, 700);
    $aligns = array('left', 'left', 'left', 'left', 'left', 'right', 'right', 'right', 'center', 'left');
    $headers = array(_('Type'), _('#'), _('Reference'), _('Date'), _('Person/Item'), _('Debit'), _('Credit'), _('Balance'), _('Reco Date'), _('Narration'));
    $account = get_bank_account($acc);
    $act = $account['bank_account_name'] . " - " . $account['bank_curr_code'] . " - " . $account['bank_account_number'];
    $params = array(0 => $comments, 1 => array('text' => _('Period'), 'from' => $from, 'to' => $to), 2 => array('text' => _('Bank Account'), 'from' => $act, 'to' => ''));
    $rep->Font();
    $rep->Info($params, $cols, $headers, $aligns);
    $rep->NewPage();
    $prev_balance = get_bank_balance_to($from, $account["id"]);
    $trans = get_bank_transactions($from, $to, $account['id']);
    $rows = db_num_rows($trans);
    if ($prev_balance != 0.0 || $rows != 0) {
        $rep->Font('bold');
        $rep->TextCol(0, 3, $act);
        $rep->TextCol(3, 5, _('Opening Balance'));
        if ($prev_balance > 0.0) {
            $rep->AmountCol(5, 6, abs($prev_balance), $dec);
        } else {
            $rep->AmountCol(6, 7, abs($prev_balance), $dec);
        }
        $rep->Font();
        $total = $prev_balance;
        $rep->NewLine(2);
        if ($rows > 0) {
            // Keep a running total as we loop through
            // the transactions.
            $total_debit = $total_credit = 0;
            while ($myrow = db_fetch($trans)) {
                $total += $myrow['amount'];
                $rep->TextCol(0, 1, $systypes_array[$myrow["type"]]);
                $rep->TextCol(1, 2, $myrow['trans_no']);
                $rep->TextCol(2, 3, $myrow['ref']);
                $rep->DateCol(3, 4, $myrow["trans_date"], true);
                $rep->TextCol(4, 5, payment_person_name($myrow["person_type_id"], $myrow["person_id"], false));
                if ($myrow['amount'] > 0.0) {
                    $rep->AmountCol(5, 6, abs($myrow['amount']), $dec);
                    $total_debit += abs($myrow['amount']);
                } else {
                    $rep->AmountCol(6, 7, abs($myrow['amount']), $dec);
                    $total_credit += abs($myrow['amount']);
                }
                $rep->AmountCol(7, 8, $total, $dec);
                if ($myrow["reconciled"] && $myrow["reconciled"] != '0000-00-00') {
                    $rep->DateCol(8, 9, $myrow["reconciled"], true);
                }
                $rep->TextCol(9, 10, $myrow['memo_']);
                $rep->NewLine();
                if ($rep->row < $rep->bottomMargin + $rep->lineHeight) {
                    $rep->Line($rep->row - 2);
                    $rep->NewPage();
                }
            }
            $rep->NewLine();
        }
        // Print totals for the debit and credit columns.
        $rep->TextCol(3, 5, _("Total Debit / Credit"));
        $rep->AmountCol(5, 6, $total_debit, $dec);
        $rep->AmountCol(6, 7, $total_credit, $dec);
        $rep->NewLine(2);
        $rep->Font('bold');
        $rep->TextCol(3, 5, _("Ending Balance"));
        if ($total > 0.0) {
            $rep->AmountCol(5, 6, abs($total), $dec);
        } else {
            $rep->AmountCol(6, 7, abs($total), $dec);
        }
        $rep->Font();
        $rep->NewLine(2);
        // Print the difference between starting and ending balances.
        $net_change = $total - $prev_balance;
        $rep->TextCol(3, 5, _("Net Change"));
        if ($total > 0.0) {
            $rep->AmountCol(5, 6, $net_change, $dec, 0, 0, 0, 0, null, 1, True);
        } else {
            $rep->AmountCol(6, 7, $net_change, $dec, 0, 0, 0, 0, null, 1, True);
        }
        $rep->Font();
        $rep->NewLine(2);
        // Calculate Bank Balance as per reco
        $date = date2sql($to);
        $sql = "SELECT SUM(IF(reconciled<='{$date}' AND reconciled !='0000-00-00', amount, 0)) as reconciled,\n\t\t\t\t SUM(amount) as books_total\n\t\t\tFROM " . TB_PREF . "bank_trans trans\n\t\t\tWHERE bank_act=" . db_escape($account['id']) . "\n\t\t\tAND trans_date <= '{$date}'";
        //	." AND trans.reconciled IS NOT NULL";
        //display_notification($sql);
        $t_result = db_query($sql, "Cannot retrieve reconciliation data");
        if ($t_row = db_fetch($t_result)) {
            $books_total = $t_row['books_total'];
            $reconciled = $t_row['reconciled'];
        }
        $difference = $books_total - $reconciled;
        // Bank Balance (by Reco)
        $rep->Font('bold');
        $rep->TextCol(3, 5, _("Bank Balance"));
        if ($reconciled > 0.0) {
            $rep->AmountCol(5, 6, abs($reconciled), $dec);
        } else {
            $rep->AmountCol(6, 7, abs($reconciled), $dec);
        }
        $rep->Font();
        $rep->NewLine(2);
        // Reco Difference
        $rep->Font('bold');
        $rep->TextCol(3, 5, _("Difference"));
        if ($difference > 0.0) {
            $rep->AmountCol(5, 6, abs($difference), $dec);
        } else {
            $rep->AmountCol(6, 7, abs($difference), $dec);
        }
        $rep->Font();
        $rep->NewLine(2);
        $rep->Line($rep->row - $rep->lineHeight + 4);
        $rep->NewLine(2, 1);
    }
    $rep->End();
}
Exemple #6
0
function print_bank_transactions()
{
    global $path_to_root, $systypes_array;
    $acc = $_POST['PARAM_0'];
    $from = $_POST['PARAM_1'];
    $to = $_POST['PARAM_2'];
    $zero = $_POST['PARAM_3'];
    $comments = $_POST['PARAM_4'];
    $orientation = $_POST['PARAM_5'];
    $destination = $_POST['PARAM_6'];
    if ($destination) {
        include_once $path_to_root . "/reporting/includes/excel_report.inc";
    } else {
        include_once $path_to_root . "/reporting/includes/pdf_report.inc";
    }
    $orientation = $orientation ? 'L' : 'P';
    $rep = new FrontReport(_('Bank Statement'), "BankStatement", user_pagesize(), 9, $orientation);
    $dec = user_price_dec();
    $cols = array(0, 90, 110, 170, 225, 350, 400, 460, 520);
    $aligns = array('left', 'left', 'left', 'left', 'left', 'right', 'right', 'right');
    $headers = array(_('Type'), _('#'), _('Reference'), _('Date'), _('Person/Item'), _('Debit'), _('Credit'), _('Balance'));
    $account = get_bank_account($acc);
    $act = $account['bank_account_name'] . " - " . $account['bank_curr_code'] . " - " . $account['bank_account_number'];
    $params = array(0 => $comments, 1 => array('text' => _('Period'), 'from' => $from, 'to' => $to), 2 => array('text' => _('Bank Account'), 'from' => $act, 'to' => ''));
    if ($orientation == 'L') {
        recalculate_cols($cols);
    }
    $rep->Font();
    $rep->Info($params, $cols, $headers, $aligns);
    $rep->NewPage();
    $prev_balance = get_bank_balance_to($from, $account["id"]);
    $trans = get_bank_transactions($from, $to, $account['id']);
    $rows = db_num_rows($trans);
    if ($prev_balance != 0.0 || $rows != 0) {
        $rep->Font('bold');
        $rep->TextCol(0, 3, $act);
        $rep->TextCol(3, 5, _('Opening Balance'));
        if ($prev_balance > 0.0) {
            $rep->AmountCol(5, 6, abs($prev_balance), $dec);
        } else {
            $rep->AmountCol(6, 7, abs($prev_balance), $dec);
        }
        $rep->Font();
        $total = $prev_balance;
        $rep->NewLine(2);
        $total_debit = $total_credit = 0;
        if ($rows > 0) {
            // Keep a running total as we loop through
            // the transactions.
            while ($myrow = db_fetch($trans)) {
                if ($zero == 0 && $myrow['amount'] == 0.0) {
                    continue;
                }
                $total += $myrow['amount'];
                $rep->TextCol(0, 1, $systypes_array[$myrow["type"]]);
                $rep->TextCol(1, 2, $myrow['trans_no']);
                $rep->TextCol(2, 3, $myrow['ref']);
                $rep->DateCol(3, 4, $myrow["trans_date"], true);
                $rep->TextCol(4, 5, payment_person_name($myrow["person_type_id"], $myrow["person_id"], false));
                if ($myrow['amount'] > 0.0) {
                    $rep->AmountCol(5, 6, abs($myrow['amount']), $dec);
                    $total_debit += abs($myrow['amount']);
                } else {
                    $rep->AmountCol(6, 7, abs($myrow['amount']), $dec);
                    $total_credit += abs($myrow['amount']);
                }
                $rep->AmountCol(7, 8, $total, $dec);
                $rep->NewLine();
                if ($rep->row < $rep->bottomMargin + $rep->lineHeight) {
                    $rep->Line($rep->row - 2);
                    $rep->NewPage();
                }
            }
            $rep->NewLine();
        }
        // Print totals for the debit and credit columns.
        $rep->TextCol(3, 5, _("Total Debit / Credit"));
        $rep->AmountCol(5, 6, $total_debit, $dec);
        $rep->AmountCol(6, 7, $total_credit, $dec);
        $rep->NewLine(2);
        $rep->Font('bold');
        $rep->TextCol(3, 5, _("Ending Balance"));
        if ($total > 0.0) {
            $rep->AmountCol(5, 6, abs($total), $dec);
        } else {
            $rep->AmountCol(6, 7, abs($total), $dec);
        }
        $rep->Font();
        $rep->Line($rep->row - $rep->lineHeight + 4);
        $rep->NewLine(2, 1);
        // Print the difference between starting and ending balances.
        $net_change = $total - $prev_balance;
        $rep->TextCol(3, 5, _("Net Change"));
        if ($total > 0.0) {
            $rep->AmountCol(5, 6, $net_change, $dec, 0, 0, 0, 0, null, 1, True);
        } else {
            $rep->AmountCol(6, 7, $net_change, $dec, 0, 0, 0, 0, null, 1, True);
        }
    }
    $rep->End();
}
Exemple #7
0
function print_statements()
{
    global $path_to_root;
    include_once $path_to_root . "reporting/includes/pdf_report.inc";
    $customer = $_REQUEST['PARAM_0'];
    $currency = $_REQUEST['PARAM_1'];
    $bankaccount = $_REQUEST['PARAM_2'];
    $email = $_REQUEST['PARAM_3'];
    $comments = $_REQUEST['PARAM_4'];
    $dec = user_price_dec();
    $cols = array(4, 100, 130, 190, 250, 320, 385, 450, 515);
    //$headers in doctext.inc
    $aligns = array('left', 'left', 'left', 'left', 'right', 'right', 'right', 'right');
    $params = array('comments' => $comments, 'bankaccount' => $bankaccount);
    $baccount = get_bank_account($params['bankaccount']);
    $cur = get_company_pref('curr_default');
    $PastDueDays1 = get_company_pref('past_due_days');
    $PastDueDays2 = 2 * $PastDueDays1;
    if ($email == 0) {
        $rep = new FrontReport(tr('STATEMENT'), "StatementBulk.pdf", user_pagesize());
        $rep->currency = $cur;
        $rep->Font();
        $rep->Info($params, $cols, null, $aligns);
    }
    $sql = "SELECT debtor_no, name AS DebtorName, address, tax_id, email, curr_code, curdate() AS tran_date, payment_terms FROM debtors_master";
    if ($customer != reserved_words::get_all_numeric()) {
        $sql .= " WHERE debtor_no = {$customer}";
    } else {
        $sql .= " ORDER by name";
    }
    $result = db_query($sql, "The customers could not be retrieved");
    while ($myrow = db_fetch($result)) {
        $date = date('Y-m-d');
        $myrow['order_'] = "";
        $TransResult = getTransactions($myrow['debtor_no'], $date);
        if (db_num_rows($TransResult) == 0) {
            continue;
        }
        if ($email == 1) {
            $rep = new FrontReport("", "", user_pagesize());
            $rep->currency = $cur;
            $rep->Font();
            $rep->title = tr('STATEMENT');
            $rep->filename = "Statement" . $myrow['debtor_no'] . ".pdf";
            $rep->Info($params, $cols, null, $aligns);
        }
        $rep->Header2($myrow, null, null, $baccount, 12);
        $rep->NewLine();
        $linetype = true;
        $doctype = 12;
        if ($rep->currency != $myrow['curr_code']) {
            include $path_to_root . "reporting/includes/doctext2.inc";
        } else {
            include $path_to_root . "reporting/includes/doctext.inc";
        }
        $rep->fontSize += 2;
        $rep->TextCol(0, 8, $doc_Outstanding);
        $rep->fontSize -= 2;
        $rep->NewLine(2);
        while ($myrow2 = db_fetch($TransResult)) {
            $DisplayTotal = number_format2(Abs($myrow2["TotalAmount"]), $dec);
            $DisplayAlloc = number_format2($myrow2["Allocated"], $dec);
            if ($myrow2['type'] == 10) {
                $DisplayNet = number_format2($myrow2["TotalAmount"] - $myrow2["Allocated"], $dec);
            } else {
                $DisplayNet = number_format2($myrow2["TotalAmount"] + $myrow2["Allocated"], $dec);
            }
            $rep->TextCol(0, 1, $myrow2['type_name'], -2);
            $rep->TextCol(1, 2, $myrow2['reference'], -2);
            $rep->TextCol(2, 3, sql2date($myrow2['tran_date']), -2);
            if ($myrow2['type'] == 10) {
                $rep->TextCol(3, 4, sql2date($myrow2['due_date']), -2);
            }
            if ($myrow2['TotalAmount'] > 0.0) {
                $rep->TextCol(4, 5, $DisplayTotal, -2);
            } else {
                $rep->TextCol(5, 6, $DisplayTotal, -2);
            }
            $rep->TextCol(6, 7, $DisplayAlloc, -2);
            $rep->TextCol(7, 8, $DisplayNet, -2);
            $rep->NewLine();
            if ($rep->row < $rep->bottomMargin + 10 * $rep->lineHeight) {
                $rep->Header2($myrow, null, null, $baccount);
            }
        }
        $nowdue = "1-" . $PastDueDays1 . " " . $doc_Days;
        $pastdue1 = $PastDueDays1 + 1 . "-" . $PastDueDays2 . " " . $doc_Days;
        $pastdue2 = $doc_Over . " " . $PastDueDays2 . " " . $doc_Days;
        $CustomerRecord = get_customer_details($myrow['debtor_no']);
        $str = array($doc_Current, $nowdue, $pastdue1, $pastdue2, $doc_Total_Balance);
        $str2 = array(number_format2($CustomerRecord["Balance"] - $CustomerRecord["Due"], $dec), number_format2($CustomerRecord["Due"] - $CustomerRecord["Overdue1"], $dec), number_format2($CustomerRecord["Overdue1"] - $CustomerRecord["Overdue2"], $dec), number_format2($CustomerRecord["Overdue2"], $dec), number_format2($CustomerRecord["Balance"], $dec));
        $col = array($rep->cols[0], $rep->cols[0] + 110, $rep->cols[0] + 210, $rep->cols[0] + 310, $rep->cols[0] + 410, $rep->cols[0] + 510);
        $rep->row = $rep->bottomMargin + 8 * $rep->lineHeight;
        for ($i = 0; $i < 5; $i++) {
            $rep->TextWrap($col[$i], $rep->row, $col[$i + 1] - $col[$i], $str[$i], 'right');
        }
        $rep->NewLine();
        for ($i = 0; $i < 5; $i++) {
            $rep->TextWrap($col[$i], $rep->row, $col[$i + 1] - $col[$i], $str2[$i], 'right');
        }
        if ($email == 1) {
            $rep->End($email, $doc_Statement . " " . $doc_as_of . " " . sql2date($date), $myrow, 12);
        }
    }
    if ($email == 0) {
        $rep->End();
    }
}
Exemple #8
0
function printit($from, $to, $currency, $bank, $email, $quote, $comments, $file)
{
    global $path_to_root;
    global $print_as_quote;
    include_once $path_to_root . "reporting/includes/pdf_report.inc";
    $dec = user_price_dec();
    $cols = array(5, 70, 260, 340, 365, 420, 470, 520);
    // $headers in doctext.inc
    $aligns = array('left', 'left', 'right', 'left', 'right', 'right', 'right');
    $params = array('comments' => $comments, 'bankaccount' => $bankaccount);
    $baccount = get_bank_account($params['bankaccount']);
    $cur = get_company_Pref('curr_default');
    if ($quote == 1) {
        $print_as_quote = 1;
    }
    if ($email == 0) {
        if ($quote == 1) {
            $rep = new FrontReport(tr("QUOTE"), "QuoteBulk.pdf", user_pagesize());
        } else {
            $rep = new FrontReport(tr("SALES ORDER"), "SalesOrderBulk.pdf", user_pagesize());
        }
        $rep->currency = $cur;
        $rep->fontSize = 10;
        $rep->Font();
        $rep->Info($params, $cols, null, $aligns);
    }
    for ($i = $from; $i <= $to; $i++) {
        $myrow = get_sales_order_header($i);
        $branch = get_branch($myrow["branch_code"]);
        $lang = $branch["lang_code"];
        // get language from customer
        readstrings($lang);
        $tax_group_id = $branch['tax_group_id'];
        $tax_rate = 0;
        $tax_name = '';
        $msg = "Error retrieving tax values";
        $sql = "select rate from tax_group_items ";
        $sql = $sql . "where tax_group_id=" . $tax_group_id . " limit 1";
        $result1 = db_query($sql, $msg);
        if (db_num_rows($result1) != 0) {
            $myrow1 = db_fetch_row($result1);
            $tax_rate = $myrow1[0];
        }
        $sql = "select name from tax_groups ";
        $sql = $sql . "where id=" . $tax_group_id . " limit 1";
        $result1 = db_query($sql, $msg);
        if (db_num_rows($result1) != 0) {
            $myrow1 = db_fetch_row($result1);
            $tax_name = $myrow1[0];
        }
        $tax_included = 0;
        if ($email == 1) {
            $rep = new FrontReport("", "", user_pagesize());
            $rep->currency = $cur;
            $rep->Font();
            if ($quote == 1) {
                $rep->title = tr("QUOTE");
                $rep->filename = "Quote" . $i . ".pdf";
            } else {
                $rep->title = tr("SALES ORDER");
                $rep->filename = "SalesOrder" . $i . ".pdf";
            }
            $rep->Info($params, $cols, null, $aligns);
        } else {
            $rep->title = $quote == 1 ? tr("QUOTE") : tr("SALES ORDER");
        }
        $rep->Header2($myrow, $branch, $myrow, $baccount, 9);
        $result = get_sales_order_details($i);
        $SubTotal = 0;
        while ($myrow2 = db_fetch($result)) {
            $Net = round((1 - $myrow2["discount_percent"]) * $myrow2["unit_price"] * $myrow2["quantity"], user_price_dec());
            $SubTotal += $Net;
            $DisplayPrice = number_format2($myrow2["unit_price"], $dec, 1);
            $DisplayQty = number_format2($myrow2["quantity"], user_qty_dec(), 1);
            $DisplayNet = number_format2($Net, $dec, 1);
            $DisplayDate = sql2date($myrow2["date_from"], 1);
            if ($myrow2["discount_percent"] == 0) {
                $DisplayDiscount = "";
            } else {
                $DisplayDiscount = number_format2($myrow2["discount_percent"] * 100, user_percent_dec(), 1) . "%";
            }
            $rep->TextCol(0, 1, $myrow2['stk_code'], -2);
            $rep->TextCol(1, 2, $DisplayDate . " " . $myrow2['description'], -2);
            $rep->TextCol(2, 3, $DisplayQty, -2);
            $rep->TextCol(3, 4, $myrow2['units'], -2);
            $rep->TextCol(4, 5, $DisplayPrice, -2);
            $rep->TextCol(5, 6, $DisplayDiscount, -2);
            $rep->TextCol(6, 7, $DisplayNet, -2);
            $rep->NewLine(1);
            if ($rep->row < $rep->bottomMargin + 15 * $rep->lineHeight) {
                $rep->Header2($myrow, $branch, $sales_order, $baccount);
            }
            if ($myrow2['notes'] != "") {
                $rep->TextColLines(1, 2, $myrow2['notes'], -2);
            }
        }
        if ($myrow['comments'] != "") {
            $rep->NewLine();
            $rep->TextColLines(1, 5, $myrow['comments'], -2);
        }
        $DisplaySubTot = number_format2($SubTotal, $dec, 1);
        $DisplayFreight = number_format2($myrow["freight_cost"], $dec, 1);
        $rep->row = $rep->bottomMargin + 15 * $rep->lineHeight;
        $linetype = true;
        $doctype = 9;
        if ($rep->currency != $myrow['curr_code']) {
            include $path_to_root . "reporting/includes/doctext.inc";
        } else {
            include $path_to_root . "reporting/includes/doctext.inc";
        }
        $amount = $myrow["freight_cost"] + $SubTotal;
        $subtotal3 = number_format2($amount, $dec, 1);
        $rep->TextCol(3, 6, $doc_Sub_total, -4);
        $rep->TextCol(6, 7, $DisplaySubTot, -4);
        $rep->NewLine();
        $rep->TextCol(3, 6, $doc_Shipping, -3);
        $rep->TextCol(6, 7, $DisplayFreight, -3);
        $rep->NewLine();
        $rep->TextCol(3, 6, $doc_Sub_total, -2);
        $rep->TextCol(6, 7, $subtotal3, -2);
        $rep->NewLine();
        $amount_tax = $amount / 100 * $tax_rate;
        if ($rep->currency == 'CHF') {
            $val = $amount_tax;
            $val1 = floatval(intval(round($val * 20, 0)) / 20);
            $amount_tax = $val1;
        }
        $amount_tot = $amount + $amount_tax;
        $DisplayTax = number_format2($amount_tax, $dec, 1);
        $DisplayTotal = number_format2($amount_tot, $dec, 1);
        if ($tax_included) {
            $rep->TextCol(3, 7, $doc_Included . " " . $tax_nmae . " (" . $tax_rate . "%) " . $doc_Amount . ":" . $DisplayTax, -2);
        } else {
            $rep->TextCol(3, 6, $tax_name . " (" . $tax_rate . "%)", -2);
            $rep->TextCol(6, 7, $DisplayTax, -2);
        }
        $rep->NewLine();
        $rep->Font('bold');
        $rep->TextCol(3, 6, $doc_TOTAL_ORDER_INCL, -2);
        $rep->TextCol(6, 7, $DisplayTotal, -2);
        $rep->Font();
        if ($email == 1) {
            if ($myrow['contact_email'] == '') {
                $myrow['contact_email'] = $branch['email'];
                $myrow['DebtorName'] = $branch['br_name'];
            }
            $rep->End($file);
        }
    }
    if ($email == 0) {
        $rep->End($file);
    }
}
Exemple #9
0
function print_invoices()
{
    global $path_to_root;
    include_once $path_to_root . "reporting/includes/pdf_report.inc";
    $from = $_REQUEST['PARAM_0'];
    $to = $_REQUEST['PARAM_1'];
    $currency = $_REQUEST['PARAM_2'];
    $bankaccount = $_REQUEST['PARAM_3'];
    $email = $_REQUEST['PARAM_4'];
    $paylink = $_REQUEST['PARAM_5'];
    $comments = $_REQUEST['PARAM_6'];
    if ($from == null) {
        $from = 0;
    }
    if ($to == null) {
        $to = 0;
    }
    $dec = user_price_dec();
    $fno = explode("-", $from);
    $tno = explode("-", $to);
    $cols = array(5, 70, 260, 340, 365, 420, 470, 520);
    // $headers in doctext.inc
    $aligns = array('left', 'left', 'right', 'left', 'right', 'right', 'right');
    $params = array('comments' => $comments, 'bankaccount' => $bankaccount);
    $baccount = get_bank_account($params['bankaccount']);
    $cur = get_company_Pref('curr_default');
    if ($email == 0) {
        $rep = new FrontReport(tr('INVOICE'), "InvoiceBulk.pdf", user_pagesize());
        $rep->currency = $cur;
        $rep->fontSize = 10;
        $rep->Font();
        $rep->Info($params, $cols, null, $aligns);
    }
    for ($i = $fno[0]; $i <= $tno[0]; $i++) {
        for ($j = 10; $j <= 11; $j++) {
            if (isset($_REQUEST['PARAM_7']) && $_REQUEST['PARAM_7'] != $j) {
                continue;
            }
            if (!exists_customer_trans($j, $i)) {
                continue;
            }
            $sign = $j == 10 ? 1 : -1;
            $myrow = get_customer_trans($i, $j);
            $branch = get_branch($myrow["branch_code"]);
            $branch['disable_branch'] = $paylink;
            // helper
            if ($j == 10) {
                $sales_order = get_sales_order_header($myrow["order_"]);
            } else {
                $sales_order = null;
            }
            $branch = get_branch($myrow["branch_code"]);
            $lang = $branch["lang_code"];
            // get language from customer
            readstrings($lang);
            $tax_group_id = $branch['tax_group_id'];
            $tax_rate = 0;
            $tax_name = '';
            $msg = "Error retrieving tax values";
            $sql = "select rate from tax_group_items ";
            $sql = $sql . "where tax_group_id=" . $tax_group_id . " limit 1";
            $result1 = db_query($sql, $msg);
            if (db_num_rows($result1) != 0) {
                $myrow1 = db_fetch_row($result1);
                $tax_rate = $myrow1[0];
            }
            $sql = "select name from tax_groups ";
            $sql = $sql . "where id=" . $tax_group_id . " limit 1";
            $result1 = db_query($sql, $msg);
            if (db_num_rows($result1) != 0) {
                $myrow1 = db_fetch_row($result1);
                $tax_name = $myrow1[0];
            }
            $tax_included = 0;
            if ($email == 1) {
                $rep = new FrontReport("", "", user_pagesize());
                $rep->currency = $cur;
                $rep->Font();
                if ($j == 10) {
                    $rep->title = tr('INVOICE');
                    $rep->filename = "Invoice" . $myrow['reference'] . ".pdf";
                } else {
                    $rep->title = tr('CREDIT NOTE');
                    $rep->filename = "CreditNote" . $myrow['reference'] . ".pdf";
                }
                $rep->Info($params, $cols, null, $aligns);
            } else {
                $rep->title = $j == 10 ? tr('INVOICE') : tr('CREDIT NOTE');
            }
            $rep->Header2($myrow, $branch, $sales_order, $baccount, $j);
            $result = get_customer_trans_details($j, $i);
            $SubTotal = 0;
            while ($myrow2 = db_fetch($result)) {
                $Net = round($sign * ((1 - $myrow2["discount_percent"]) * $myrow2["unit_price"] * $myrow2["quantity"]), user_price_dec());
                $SubTotal += $Net;
                $DisplayPrice = number_format2($myrow2["unit_price"], $dec, 1);
                $DisplayQty = number_format2($myrow2["quantity"], user_qty_dec(), 1);
                $DisplayDate = sql2date($myrow2["date_from"], 1);
                $DisplayNet = number_format2($Net, $dec, 1);
                if ($myrow2["discount_percent"] == 0) {
                    $DisplayDiscount = "";
                } else {
                    $DisplayDiscount = number_format2($myrow2["discount_percent"] * 100, user_percent_dec(), 1) . "%";
                }
                $rep->TextCol(0, 1, $myrow2['stock_id'], -2);
                $rep->TextCol(1, 2, $DisplayDate . " " . $myrow2['StockDescription'], -2);
                $rep->TextCol(2, 3, $DisplayQty, -2);
                $rep->TextCol(3, 4, $myrow2['units'], -2);
                $rep->TextCol(4, 5, $DisplayPrice, -2);
                $rep->TextCol(5, 6, $DisplayDiscount, -2);
                $rep->TextCol(6, 7, $DisplayNet, -2);
                $rep->NewLine(1);
                if ($rep->row < $rep->bottomMargin + 15 * $rep->lineHeight) {
                    $rep->Header2($myrow, $branch, $sales_order, $baccount, $j);
                }
                if ($myrow2['notes'] != "") {
                    $rep->TextColLines(1, 2, $myrow2['notes'], -2);
                }
            }
            $comments = get_comments($j, $i);
            if ($comments && db_num_rows($comments)) {
                $rep->NewLine();
                while ($comment = db_fetch($comments)) {
                    $rep->TextColLines(0, 6, $comment['memo_'], -2);
                }
            }
            $DisplaySubTot = number_format2($SubTotal, $dec, 1);
            $DisplayFreight = number_format2($sign * $myrow["ov_freight"], $dec, 1);
            $rep->row = $rep->bottomMargin + 15 * $rep->lineHeight;
            $linetype = true;
            $doctype = $j;
            if ($rep->currency != $myrow['curr_code']) {
                include $path_to_root . "reporting/includes/doctext.inc";
            } else {
                include $path_to_root . "reporting/includes/doctext.inc";
            }
            $amount = $myrow["ov_freight"] + $SubTotal;
            $subtotal3 = number_format2($amount, $dec, 1);
            $rep->TextCol(3, 6, $doc_Sub_total, -2);
            $rep->TextCol(6, 7, $DisplaySubTot, -2);
            $rep->NewLine();
            $rep->TextCol(3, 6, $doc_Shipping, -2);
            $rep->TextCol(6, 7, $DisplayFreight, -2);
            $rep->NewLine();
            $rep->TextCol(3, 6, $doc_Sub_total, -2);
            $rep->TextCol(6, 7, $subtotal3, -2);
            $rep->NewLine();
            $tax_items = get_customer_trans_tax_details($j, $i);
            $amount_tax = $amount / 100 * $tax_rate;
            if ($rep->currency == 'CHF') {
                $val = $amount_tax;
                $val1 = floatval(intval(round($val * 20, 0)) / 20);
                $amount_tax = $val1;
            }
            $amount_tot = $amount + $amount_tax;
            $DisplayTax = number_format2($amount_tax, $dec, 1);
            $DisplayTotal = number_format2($amount_tot, $dec, 1);
            if ($tax_included) {
                $rep->TextCol(3, 7, $doc_Included . " " . $tax_nmae . " (" . $tax_rate . "%) " . $doc_Amount . ":" . $DisplayTax, -2);
            } else {
                $rep->TextCol(3, 6, $tax_name . " (" . $tax_rate . "%)", -2);
                $rep->TextCol(6, 7, $DisplayTax, -2);
            }
            $rep->NewLine();
            $rep->Font('bold');
            $rep->TextCol(3, 6, $doc_TOTAL_INVOICE, -2);
            $rep->TextCol(6, 7, $DisplayTotal, -2);
            $rep->Font();
            if ($email == 1) {
                $myrow['dimension_id'] = $paylink;
                // helper for pmt link
                if ($myrow['email'] == '') {
                    $myrow['email'] = $branch['email'];
                    $myrow['DebtorName'] = $branch['br_name'];
                }
                $rep->End($email, $doc_Invoice_no . " " . $myrow['reference'], $myrow, $j);
            }
        }
    }
    if ($email == 0) {
        $rep->End();
    }
}
function draw_bank_account($error)
{
    global $_CONF, $_TABLES, $_USER, $LANG_ECOM;
    $current_id = 0;
    $T = new Template($_CONF['path'] . 'plugins/ecommerce/templates');
    $T->set_file(array('user_bank' => 'user_bank.thtml', 'user_bank_info_box' => 'user_bank_info_box.thtml'));
    $res = get_default_bank();
    #No bank account specified and no default bank for the user. or specified new bank account
    #Then load a blank template
    if (!isset($_GET['id']) && DB_numRows($res) <= 0 || $_GET['action'] == "new") {
        $T->set_var('submit_value', 'Add Bank Account');
        $T->set_var('submit_name', 'add_bank_account');
        $T->set_var('error', $error);
        $T->set_var('showDelete', false);
        $T->set_var('country', 'US');
        $T->set_var('site_url', 'index.php?op=bank_accounts');
    } else {
        //Check to see if bank account is specified.
        if ($_GET['id'] > 0) {
            $res = get_bank_account($_GET['id']);
            $bank = DB_fetchArray($res);
            //Make sure credit card belongs to user
            if ($_USER['uid'] != $bank['ecom_bank_uid']) {
                echo "This is not your bank account.";
                exit;
            }
        } else {
            $bank = DB_fetchArray($res);
        }
        $T->set_var('submit_value', 'Update Bank Account');
        $T->set_var('submit_name', 'update_bank_account');
        $T->set_var('error', $error);
        $T->set_var('bank_name', $bank['ecom_bank_name']);
        $T->set_var('first_name', $bank['ecom_bank_first_name']);
        $T->set_var('last_name', $bank['ecom_bank_last_name']);
        $T->set_var('account_type', $bank['ecom_bank_accounttype']);
        $T->set_var('account_number', $bank['ecom_bank_accountnumber']);
        $T->set_var('routing_number', $bank['ecom_bank_routingnumber']);
        $T->set_var('address_line1', $bank['ecom_bank_address_line1']);
        $T->set_var('city', $bank['ecom_bank_city']);
        $T->set_var('state', $bank['ecom_bank_state']);
        $T->set_var('zip', $bank['ecom_bank_zip']);
        $T->set_var('country', $bank['ecom_bank_country']);
        $T->set_var('default', $bank['ecom_bank_default'] == 1 ? true : false);
        $T->set_var('site_url', 'index.php?op=bank_accounts&id=' . $bank['ecom_bankid'] . '');
        $T->set_var('showDelete', true);
        $current_id = $bank['ecom_bankid'];
    }
    $T->set_var('msg_28', $LANG_ECOM[28]);
    $T->set_var('msg_29', $LANG_ECOM[29]);
    $T->set_var('msg_30', $LANG_ECOM[30]);
    $T->set_var('msg_31', $LANG_ECOM[31]);
    $T->set_var('msg_32', $LANG_ECOM[32]);
    $T->set_var('msg_159', $LANG_ECOM[159]);
    $T->set_var('msg_161', $LANG_ECOM[161]);
    $T->set_var('msg_152', $LANG_ECOM[152]);
    $T->set_var('msg_172', $LANG_ECOM[172]);
    $T->set_var('msg_173', $LANG_ECOM[173]);
    $T->set_var('msg_174', $LANG_ECOM[174]);
    $T->set_var('msg_175', $LANG_ECOM[175]);
    $T->set_var('msg_176', $LANG_ECOM[176]);
    $T->set_var('msg_177', $LANG_ECOM[177]);
    draw_bank_box($current_id, $T);
    $T->parse('output', 'user_bank');
    echo $T->finish($T->get_var('output'));
    echo "<SCRIPT  type=\"text/javascript\">initCountry();</SCRIPT>";
}