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();
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(); } }
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(); }
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(); }
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(); } }
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); } }
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>"; }