0238b343fb71813b067077a36e52803849b88e17
[order_line_extra.git] / includes / order_lines.inc
1 <?php
2 include_once($path_to_root."/includes/ui/ui_input.inc");
3
4 function update_extra_order_details() {
5         if(!isset($_POST['Update']) || $_POST['Update'] != 'Update')  return;
6
7 begin_transaction();
8         // update in database all field
9         foreach($_POST['detail'] as $detail_id => $values) {
10                 $set = array();
11                 if($comment = $values['comment'])  array_push($set, " comment='$comment' ");
12                 if(isset($values['required_date'])) {
13                         $required_date = trim($values['required_date']);
14                         if($required_date == "")  {
15                                 array_push($set," required_date = NULL");
16                         } else {
17                                 $date = date2sql($required_date);
18                                 array_push($set," required_date='$date' ");
19                         }
20                 }
21
22                 if(!empty($set))  {
23                         $sql = "UPDATE ".TB_PREF."sales_order_details  SET ".implode($set,', ')."  WHERE id = $detail_id ";
24                         
25                         if(!db_query($sql)) {
26                                 display_error('Problem while updating order details. Try again');
27                                 cancel_transaction();
28                                 return;
29                         }
30                 }
31         
32         }
33
34         display_notification('Order details updated');
35
36 }
37
38 function compute_input_name($row, $field) {
39         $row_id = $row['id'];
40         return "detail[$row_id][$field]";
41 }
42
43 function view_link($dummy, $order_no)
44 {
45         return  get_customer_trans_view_str(ST_SALESORDER, $order_no);
46 }
47
48
49 function order_link($row)
50 {
51   return pager_link( _("Sales Order"),
52         "/sales/sales_order_entry.php?NewQuoteToSalesOrder=" .$row['order_no'], ICON_DOC);
53 }
54
55 function customer_link($row) {
56         return pager_link(_($row['debtor_ref']), "/modules/order_line_extra/order_lines_view.php?customer_id=${row['debtor_no']}");
57         
58 }
59
60 function input_date_details($row, $date) {
61 $row_id = $row['id'];
62         $name = compute_input_name($row, 'required_date');
63
64 $_POST[$name] = sql2date($date);
65
66         start_extract_cell();
67                 date_cells (null, $name, 'title', null, 0,0,1001);
68         return end_extract_cell();
69
70
71         return "
72 <input type='text' value='$date' name='$name'>
73 ";
74 }
75
76 function input_comment_details($row, $comment) {
77 $row_id = $row['id'];
78         return "
79 <input type='text' value='$comment' name='detail[$row_id][comment]'>
80 ";
81 }
82
83 function get_order_details_extra($customer_id) {
84         $sql = "SELECT sod.id
85         , so.order_no
86         , stk_code
87         , quantity - qty_sent
88         , required_date
89         , comment
90         FROM ".TB_PREF."sales_order_details sod
91         JOIN ".TB_PREF."sales_orders so ON (so.order_no = sod.order_no
92                 AND so.trans_type = sod.trans_type
93                 AND so.trans_type = ".ST_SALESORDER."
94                 AND so.debtor_no = $customer_id
95         )
96         WHERE quantity > qty_sent
97         ";
98
99         return $sql;
100 }
101
102 function get_order_summary() {
103         $sql = "SELECT debtor_no, debtor_ref, branch_ref
104         , min(delivery_date)
105         , sum(quantity - qty_sent) as quantity
106         , sum((quantity - qty_sent)*unit_price*(1-discount_percent/100)) as amount
107         , min(required_date)
108         , min(comment)
109         FROM ".TB_PREF."sales_order_details sod
110         JOIN ".TB_PREF."sales_orders so ON (so.order_no = sod.order_no
111                 AND so.trans_type = sod.trans_type
112                 AND so.trans_type = ".ST_SALESORDER."
113         )
114         NATURAL JOIN ".TB_PREF."debtors_master
115         NATURAL JOIN ".TB_PREF."cust_branch
116         WHERE quantity > qty_sent AND ".ST_SALESORDER."
117         GROUP BY debtor_no, branch_code
118         ";
119
120         return $sql;
121 }
122 ?>