If there are many invoice items during a year, there would be many rows suggestions.
! -> Note
$ -> Affected files
+05-Jan-2009 Joe Hunt
++ Possibility to 'Credit This' in supplier transactions like in customer transaction.
+ If there are many invoice items during a year, there would be many rows suggestions.
+$ /purchasing/includes/db/grn_db.inc
+ /purchasing/includes/ui/invoice_ui.inc
+ /purchasing/supplier_credit.php
+ /purchasing/inquiry/supplier_inquiry.php
+
22-Dec-2008 Janusz Dobrowolski
# Fixed item_code database update on item creation.
$ /inventory/includes/db/item_codes_db.inc
}
function get_grn_items($grn_batch_id=0, $supplier_id="", $outstanding_only=false,
- $is_invoiced_only=false)
+ $is_invoiced_only=false, $invoice_no=0)
{
$sql = "SELECT ".TB_PREF."grn_batch.*, ".TB_PREF."grn_items.*, ".TB_PREF."purch_order_details.unit_price,
".TB_PREF."purch_order_details.std_cost_unit, units
- FROM ".TB_PREF."grn_batch, ".TB_PREF."grn_items, ".TB_PREF."purch_order_details, ".TB_PREF."stock_master
- WHERE ".TB_PREF."grn_items.grn_batch_id=".TB_PREF."grn_batch.id
- AND ".TB_PREF."grn_items.po_detail_item=".TB_PREF."purch_order_details.po_detail_item
- AND ".TB_PREF."stock_master.stock_id=".TB_PREF."grn_items.item_code ";
+ FROM ".TB_PREF."grn_batch, ".TB_PREF."grn_items, ".TB_PREF."purch_order_details, ".TB_PREF."stock_master";
+ if ($invoice_no != 0)
+ $sql .= ", ".TB_PREF."supp_invoice_items";
+ $sql .= " WHERE ".TB_PREF."grn_items.grn_batch_id=".TB_PREF."grn_batch.id
+ AND ".TB_PREF."grn_items.po_detail_item=".TB_PREF."purch_order_details.po_detail_item";
+ if ($invoice_no != 0)
+ $sql .= " AND ".TB_PREF."supp_invoice_items.supp_trans_type=20 AND
+ ".TB_PREF."supp_invoice_items.supp_trans_no=$invoice_no AND
+ ".TB_PREF."grn_items.id=".TB_PREF."supp_invoice_items.grn_item_id";
+ $sql .= " AND ".TB_PREF."stock_master.stock_id=".TB_PREF."grn_items.item_code ";
if ($grn_batch_id != 0)
$sql .= " AND ".TB_PREF."grn_batch.id=$grn_batch_id AND ".TB_PREF."grn_items.grn_batch_id=$grn_batch_id ";
table_section(1);
- if (!isset($_POST['supplier_id']) && (get_global_supplier() != reserved_words::get_all()))
- $_POST['supplier_id'] = get_global_supplier();
-
- supplier_list_row(_("Supplier:"), 'supplier_id', $_POST['supplier_id'], false, true);
+ if (isset($_POST['invoice_no']))
+ {
+ $trans = get_supp_trans($_POST['invoice_no'], 20);
+ $_POST['supplier_id'] = $trans['supplier_id'];
+ $supp = $trans['supplier_name'] . " - " . $trans['SupplierCurrCode'];
+ label_row(_("Supplier:"), $supp.hidden('supplier_id', $_POST['supplier_id'], false));
+ }
+ else
+ {
+ if (!isset($_POST['supplier_id']) && (get_global_supplier() != reserved_words::get_all()))
+ $_POST['supplier_id'] = get_global_supplier();
+ supplier_list_row(_("Supplier:"), 'supplier_id', $_POST['supplier_id'], false, true);
+ }
if ($supp_trans->supplier_id != $_POST['supplier_id'])
{
// supplier has changed
else
ref_row(_("Reference:"), 'reference', '', references::get_next(21));
- text_row(_("Supplier's Ref.:"), 'supp_reference', $_POST['supp_reference'], 20, 20);
+ if (isset($_POST['invoice_no']))
+ {
+ label_row(_("Supplier's Ref.:"), $_POST['invoice_no'].hidden('invoice_no', $_POST['invoice_no'], false).hidden('supp_reference', $_POST['invoice_no'], false));
+ }
+ else
+ text_row(_("Supplier's Ref.:"), 'supp_reference', $_POST['supp_reference'], 20, 20);
table_section(2, "33%");
if ($supp_trans->is_invoice)
$result = get_grn_items(0, $supp_trans->supplier_id, true);
- else
- $result = get_grn_items(0, $supp_trans->supplier_id, false, true);
-
+ else
+ {
+ if (isset($_POST['invoice_no']))
+ $result = get_grn_items(0, $supp_trans->supplier_id, false, true, $_POST['invoice_no']);
+ else
+ $result = get_grn_items(0, $supp_trans->supplier_id, false, true);
+ }
if (db_num_rows($result) == 0)
{
return false;
return get_gl_view_str($row["type"], $row["trans_no"]);
}
+function credit_link($row)
+{
+ return $row['type'] == 20 && $row["TotalAmount"] - $row["Allocated"] > 0 ?
+ pager_link(_("Credit This"),
+ "/purchasing/supplier_credit.php?New=1&invoice_no=".
+ $row['trans_no'], ICON_CREDIT)
+ : '';
+}
+
function fmt_debit($row)
{
$value = $row["TotalAmount"];
_("Debit") => array('align'=>'right', 'fun'=>'fmt_debit'),
_("Credit") => array('align'=>'right', 'insert'=>true,'fun'=>'fmt_credit'),
array('insert'=>true, 'fun'=>'gl_view'),
+ array('insert'=>true, 'fun'=>'credit_link')
);
if ($_POST['supplier_id'] != reserved_words::get_all())
$_SESSION['supp_trans'] = new supp_trans;
$_SESSION['supp_trans']->is_invoice = false;
+ if (isset($_GET['invoice_no']))
+ {
+ $_SESSION['supp_trans']->supp_reference = $_POST['invoice_no'] = $_GET['invoice_no'];
+ }
}
function clear_fields()