date_row(_("Due Date") . ":", 'due_date');
- label_row(_("Terms:"), $supp_trans->terms_description);
+ label_row(_("Terms:"), $supp_trans->terms['description']);
table_section(3, "33%");
}
//--------------------------------------------------------------------------------------------------
-function get_duedate_from_terms(&$supp_trans)
+function get_duedate_from_terms(&$trans)
{
- if (!is_date($supp_trans->tran_date))
+ $date = get_class($trans) == 'purch_order' ? $trans->orig_order_date : $trans->tran_date;
+
+ if (!is_date($date))
{
- $supp_trans->tran_date = Today();
+ $date = Today();
}
- if (substr( $supp_trans->terms, 0, 1) == "1")
+ if ($trans->terms['day_in_following_month'])
{ /*Its a day in the following month when due */
- $supp_trans->due_date = add_days(end_month($supp_trans->tran_date), (int) substr( $supp_trans->terms,1));
+ $trans->due_date =
+ add_days(end_month($date), $trans->terms["day_in_following_month"]);
}
else
{ /*Use the Days Before Due to add to the invoice date */
- $supp_trans->due_date = add_days($supp_trans->tran_date, (int) substr( $supp_trans->terms,1));
+ $trans->due_date = add_days($date, $trans->terms["days_before_due"]);
}
}
$_POST['supplier_id'] = $cart->supplier_id;
$_POST['OrderDate'] = $cart->orig_order_date;
+ if ($cart->trans_type==ST_SUPPINVOICE)
+ $_POST['due_date'] = $cart->due_date;
$_POST['supp_ref'] = $cart->supp_ref;
$_POST['ref'] = $cart->reference;
$_POST['Comments'] = $cart->Comments;
$cart->supplier_id = $_POST['supplier_id'];
$cart->orig_order_date = $_POST['OrderDate'];
+ if ($cart->trans_type==ST_SUPPINVOICE)
+ $cart->due_date = $_POST['due_date'];
$cart->reference = $_POST['ref'];
$cart->supp_ref = $_POST['supp_ref'];
$cart->Comments = $_POST['Comments'];
{
$sql = "SELECT curr_code, supp_name, tax_group_id, supp.tax_included,
supp.credit_limit - Sum(IFNULL(IF(trans.type=".ST_SUPPCREDIT.", -1, 1)
- * (ov_amount + ov_gst + ov_discount),0)) as cur_credit
+ * (ov_amount + ov_gst + ov_discount),0)) as cur_credit,
+ terms.terms, terms.days_before_due, terms.day_in_following_month
FROM ".TB_PREF."suppliers supp
LEFT JOIN ".TB_PREF."supp_trans trans ON supp.supplier_id = trans.supplier_id
- WHERE supp.supplier_id = '$supplier_id'
+ LEFT JOIN ".TB_PREF."payment_terms terms ON supp.payment_terms=terms.terms_indicator
+ WHERE supp.supplier_id = ".db_escape($supplier_id)."
GROUP BY
supp.supp_name";
$myrow = db_fetch($result);
$order->credit = $myrow["cur_credit"];
+ $order->terms = array(
+ 'description' => $myrow['terms'],
+ 'days_before_due' => $myrow['days_before_due'],
+ 'day_in_following_month' => $myrow['day_in_following_month'] );
+
$_POST['supplier_id'] = $supplier_id;
$_POST['supplier_name'] = $myrow["supp_name"];
$_POST['curr_code'] = $myrow["curr_code"];
$_POST['OrderDate'] = new_doc_date();
if (!is_date_in_fiscalyear($_POST['OrderDate']))
$_POST['OrderDate'] = end_fiscalyear();
- $cart->orig_order_date = $_POST['OrderDate'];
+ $cart->due_date = $cart->orig_order_date = $_POST['OrderDate'];
+
$cart->trans_type = $trans_type;
$cart->order_no = $trans_no;
/*read in all the selected order into the Items cart */
if ($order->supplier_id != get_post('supplier_id',-1)) {
$old_supp = $order->supplier_id;
- get_supplier_details_to_order($order, $_POST['supplier_id']);
+ get_supplier_details_to_order($order, $_POST['supplier_id']);
+ get_duedate_from_terms($order);
+ $_POST['due_date'] = $order->due_date;
+
// supplier default price update
foreach ($order->line_items as $line_no=>$item) {
$line = &$order->line_items[$line_no];
*get_purchase_conversion_factor ($order->supplier_id, $line->stock_id);
}
$Ajax->activate('items_table');
+ $Ajax->activate('due_date');
}
set_global_supplier($_POST['supplier_id']);
supplier_credit_row($order->supplier_id, $order->credit);
- table_section(2);
if ($editable)
{
label_row(_("Reference:"), $order->reference);
}
+ table_section(2);
+
// check this out?????????
//if (!isset($_POST['OrderDate']) || $_POST['OrderDate'] == "")
// $_POST['OrderDate'] = $order->orig_order_date;
//}
date_row(_("Order Date:"), 'OrderDate', '', true, 0, 0, 0, null, true);
if (isset($_POST['_OrderDate_changed'])) {
+ $order->orig_order_date = $_POST['OrderDate'];
+ get_duedate_from_terms($order);
+ $_POST['due_date'] = $order->due_date;
$Ajax->activate('_ex_rate');
+ $Ajax->activate('due_date');
}
+ if ($order->trans_type==ST_SUPPINVOICE)
+ date_row(_("Due Date:"), 'due_date', '', false, 0, 0, 0, null, true);
text_row(_("Supplier's Reference:"), 'supp_ref', null, 16, 15);
locations_list_row(_("Receive Into:"), 'StkLocation', null, false, true);
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')))
$inv->Comments = $cart->Comments;
$inv->supplier_id = $cart->supplier_id;
$inv->tran_date = $cart->orig_order_date;
+ $inv->due_date = $cart->due_date;
$inv->reference = $ref;
$inv->supp_reference = $cart->supp_ref;
$inv->tax_included = $cart->tax_included;
$supp = get_supplier($cart->supplier_id);
$inv->tax_group_id = $supp['tax_group_id'];
// $inv->ov_discount 'this isn't used at all'
-// $inv->terms = not used, TODO
- $terms = $supp['payment_terms'];
$inv->ov_amount = $inv->ov_gst = 0;
- $inv->due_date = get_invoice_duedate($terms, $inv->tran_date);
+
foreach($cart->line_items as $key => $line) {
$inv->add_grn_to_trans($line->grn_item_id, $line->po_detail_rec, $line->stock_id,
$line->item_description, $line->receive_qty, 0, $line->receive_qty,