<?php
include_once($path_to_root."/includes/ui/ui_input.inc");
+/* This utility function remove beginning <td> and </td> from a string
+ * generated by the above *_cell function.
+ * This is usefull to use the result of the function within a pager
+ * which already include the <td>...</td>
+ * However, for function which doesn't return a string
+ * but echo, we need to capture the output of the echo first.
+ */
+function start_extract_cell() {
+ // We need
+ ob_start();
+}
+
+function end_extract_cell() {
+ $content = ob_get_contents();
+ ob_end_clean();
+ return extract_cell($content);
+}
+
+function extract_cell($td) {
+ if(preg_match('/\s*<td>(.*)<\/td>\s*/s', $td, $matches)) {
+ return $matches[1];
+ }
+ else {
+print_r('cacou');
+ return $td;
+ }
+}
+
function update_extra_order_details() {
if(!isset($_POST['Update']) || $_POST['Update'] != 'Update') return;
return get_customer_trans_view_str(ST_SALESORDER, $order_no);
}
+function item_link($dummy, $stock_id)
+{
+ return pager_link( _($stock_id),
+ "/modules/order_line_extra/item_schedule.php?stock_id=" .$stock_id);
+}
function order_link($row)
{
}
function customer_link($row) {
- return pager_link(_($row['debtor_ref']), "/modules/order_line_extra/order_lines_view.php?customer_id=${row['debtor_no']}");
+ return customer_link2($row['debtor_ref'], $row['debtor_no']);
+}
+
+function customer_link2($name, $id) {
+ return pager_link(_($name), "/modules/order_line_extra/order_lines_view.php?customer_id=${id}");
}
function aggregate_comment($row) {
- $comment = $row['order_comment'].$row['detail_comment'];
+ $comment = $row['order_comment'].";".$row['detail_comment'];
if($comment) {
$comments = array_map('trim', explode(';', $comment));
$comments = array_filter($comments);
if(count($comments) == 0)
return $first;
else {
- $tooltip = implode('<br>', $comments);
- return "$first <span class='before-tooltip'>more</span><span class='tooltip'> $tooltip</span>";
+ $tooltip = implode('<br> - ', $comments);
+ return "$first <span class='before-tooltip'>more<span class='tooltip'> $tooltip</span><span>";
}
}
return '';
}
+function available_quantity($row, $available) {
+ $quantity = $row['quantity'];
+ $class = '';
+ if($available== 0) $class = 'limited';
+ else if($quantity > $available) $class = 'partial';
+
+ return "<span class='$class'>$available<span>";
+}
+
function input_date_details($row, $date) {
$row_id = $row['id'];
$name = compute_input_name($row, 'required_date');
";
}
-function get_order_details_extra($customer_id) {
+function get_order_details_extra($customer_id, $location) {
$sql = "SELECT sod.id
, so.order_no
, stk_code
- , quantity - qty_sent
+ , sod.quantity - qty_sent quantity
+ , GREATEST(0, LEAST(qoh.quantity - quantity_before, sod.quantity - qty_sent))
+ , quantity_before
, required_date
,comment
FROM ".TB_PREF."sales_order_details sod
AND so.trans_type = ".ST_SALESORDER."
AND so.debtor_no = $customer_id
)
- WHERE quantity > qty_sent
+ JOIN ".TB_PREF."denorm_qoh qoh ON (stock_id = stk_code AND loc_code = '$location')
+ JOIN ".TB_PREF."denorm_order_details_queue d ON (d.id = sod.id)
+ WHERE sod.quantity > qty_sent
";
return $sql;