/*Insert the purchase order detail records */
foreach ($po_obj->line_items as $po_line)
{
- if ($po_line->Deleted == false)
- {
- $sql = "INSERT INTO ".TB_PREF."purch_order_details (order_no, item_code, description, delivery_date, unit_price, quantity_ordered) VALUES (";
- $sql .= $po_obj->order_no . ", " . db_escape($po_line->stock_id). "," .
- db_escape($po_line->item_description). ",'" .
- date2sql($po_line->req_del_date) . "'," .
- db_escape($po_line->price) . ", " .
- db_escape($po_line->quantity). ")";
- db_query($sql, "One of the purchase order detail records could not be inserted");
- }
+ $sql = "INSERT INTO ".TB_PREF."purch_order_details (order_no, item_code, description, delivery_date, unit_price, quantity_ordered) VALUES (";
+ $sql .= $po_obj->order_no . ", " . db_escape($po_line->stock_id). "," .
+ db_escape($po_line->item_description). ",'" .
+ date2sql($po_line->req_del_date) . "'," .
+ db_escape($po_line->price) . ", " .
+ db_escape($po_line->quantity). ")";
+ db_query($sql, "One of the purchase order detail records could not be inserted");
}
$Refs->save(ST_PURCHORDER, $po_obj->order_no, $po_obj->reference);
$sql .= " WHERE order_no = " . $po_obj->order_no;
db_query($sql, "The purchase order could not be updated");
+ $sql = "DELETE FROM ".TB_PREF."purch_order_details WHERE order_no="
+ .db_escape($po_obj->order_no);
+ db_query($sql, "could not delete old purch order details");
+
/*Now Update the purchase order detail records */
foreach ($po_obj->line_items as $po_line)
{
-
- if ($po_line->Deleted==True)
- {
- // Sherifoz 21.06.03 Handle deleting existing lines
- if ($po_line->po_detail_rec!='')
- {
- $sql = "DELETE FROM ".TB_PREF."purch_order_details WHERE po_detail_item=".db_escape($po_line->po_detail_rec);
- db_query($sql, "could not query purch order details");
- }
- }
- else if ($po_line->po_detail_rec == '')
- {
- // Sherifoz 21.06.03 Handle adding new lines vs. updating. if no key(po_detail_rec) then it's a new line
- $sql = "INSERT INTO ".TB_PREF."purch_order_details (order_no, item_code, description, delivery_date, unit_price, quantity_ordered) VALUES (";
- $sql .= $po_obj->order_no . "," .
- db_escape($po_line->stock_id). "," .
- db_escape($po_line->item_description). ",'" .
- date2sql($po_line->req_del_date) . "'," .
- db_escape($po_line->price) . ", ".db_escape($po_line->quantity) . ")";
- }
- else
- {
- $sql = "UPDATE ".TB_PREF."purch_order_details SET item_code=".db_escape($po_line->stock_id).",
- description =" . db_escape($po_line->item_description). ",
- delivery_date ='" . date2sql($po_line->req_del_date) . "',
- unit_price=".db_escape($po_line->price).",
- quantity_ordered=".db_escape($po_line->quantity) . "
- WHERE po_detail_item=".db_escape($po_line->po_detail_rec);
- }
+ $sql = "INSERT INTO ".TB_PREF."purch_order_details (po_detail_item, order_no, item_code,
+ description, delivery_date, unit_price, quantity_ordered) VALUES ("
+ .db_escape($po_line->po_detail_rec ? $po_line->po_detail_rec : 0). ","
+ .$po_obj->order_no . ","
+ .db_escape($po_line->stock_id). ","
+ .db_escape($po_line->item_description). ",'"
+ .date2sql($po_line->req_del_date) . "',"
+ .db_escape($po_line->price) . ", "
+ .db_escape($po_line->quantity) . ")";
+
db_query($sql, "One of the purchase order detail records could not be updated");
}
- //add_comments(ST_PURCHORDER, $po_obj->order_no, $po_obj->orig_order_date, $po_obj->Comments);
+ // add_comments(ST_PURCHORDER, $po_obj->order_no, $po_obj->orig_order_date, $po_obj->Comments);
+ add_audit_trail($po_obj->trans_type, $po_obj->order_no, $po_obj->document_date, _("Updated."));
commit_transaction();
return $po_obj->order_no;
if (db_num_rows($result) > 0)
{
-
while ($myrow = db_fetch($result))
{
-
$data = get_purchase_data($order->supplier_id, $myrow['item_code']);
if ($data !== false)
{
{
$this->line_items[$line_no] = new line_details($line_no, $stock_id, $item_descr, $qty, $price, $uom, $req_del_date, $qty_inv, $qty_recd);
$this->lines_on_order++;
- Return 1;
+ return 1;
}
- Return 0;
+ return 0;
}
function update_order_item($line_no, $qty, $price, $req_del_date)
function remove_from_order($line_no)
{
- $this->line_items[$line_no]->Deleted = true;
+ array_splice($this->line_items, $line_no, 1);
}
function order_has_items()
{
- if (count($this->line_items) > 0)
- {
- foreach ($this->line_items as $ordered_items)
- {
- if ($ordered_items->Deleted == false)
- {
- return true;
- }
- }
- }
- return false;
+ return count($this->line_items) != 0;
}
function clear_items()
class line_details
{
- Var $line_no;
- Var $po_detail_rec;
- Var $stock_id;
- Var $item_description;
- Var $quantity;
- Var $price;
- Var $units;
- Var $req_del_date;
- Var $qty_inv;
- Var $qty_received;
- Var $standard_cost;
- Var $receive_qty;
- Var $Deleted;
+ var $line_no;
+ var $po_detail_rec;
+ var $stock_id;
+ var $item_description;
+ var $quantity;
+ var $price;
+ var $units;
+ var $req_del_date;
+ var $qty_inv;
+ var $qty_received;
+ var $standard_cost;
+ var $receive_qty;
function line_details($line_no, $stock_item, $item_descr, $qty, $prc, $uom, $req_del_date, $qty_inv, $qty_recd)
{
$this->qty_inv = $qty_inv;
$this->receive_qty = 0; /*initialise these last two only */
$this->standard_cost =0;
- $this->Deleted = false;
}
}
$k = 0;
foreach ($order->line_items as $line_no => $po_line)
{
-
- if ($po_line->Deleted == false)
+ $line_total = round($po_line->quantity * $po_line->price, user_price_dec());
+ if (!$editable || ($id != $line_no))
{
- $line_total = round($po_line->quantity * $po_line->price, user_price_dec());
- if (!$editable || ($id != $line_no))
+ alt_table_row_color($k);
+ label_cell($po_line->stock_id);
+ label_cell($po_line->item_description);
+ qty_cell($po_line->quantity, false, get_qty_dec($po_line->stock_id));
+ qty_cell($po_line->qty_received, false, get_qty_dec($po_line->stock_id));
+ label_cell($po_line->units);
+ label_cell($po_line->req_del_date);
+ amount_decimal_cell($po_line->price);
+ amount_cell($line_total);
+
+ if ($editable)
{
- alt_table_row_color($k);
- label_cell($po_line->stock_id);
- label_cell($po_line->item_description);
- qty_cell($po_line->quantity, false, get_qty_dec($po_line->stock_id));
- qty_cell($po_line->qty_received, false, get_qty_dec($po_line->stock_id));
- label_cell($po_line->units);
- label_cell($po_line->req_del_date);
- amount_decimal_cell($po_line->price);
- amount_cell($line_total);
-
- if ($editable)
- {
edit_button_cell("Edit$line_no", _("Edit"),
_('Edit document line'));
delete_button_cell("Delete$line_no", _("Delete"),
- _('Remove line from document'));
- }
- end_row();
- }
- else
- {
- po_item_controls($order, $po_line->stock_id);
+ _('Remove line from document'));
}
- $total += $line_total;
+ end_row();
+ }
+ else
+ {
+ po_item_controls($order, $po_line->stock_id);
}
+ $total += $line_total;
}
if ($id==-1 && $editable)