X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=manufacturing%2Fincludes%2Fdb%2Fwork_orders_db.inc;h=50fdf8162da865d2cca625273efc70cb85180b8c;hb=e0544eddcab799b9088e0a774f63443e3f634bb6;hp=2aed7c1912876680a39523f78f77e181dc342497;hpb=4ad1d8bbc150b061272c93eec2bc81ebbeb93c91;p=fa-stable.git diff --git a/manufacturing/includes/db/work_orders_db.inc b/manufacturing/includes/db/work_orders_db.inc index 2aed7c19..50fdf816 100644 --- a/manufacturing/includes/db/work_orders_db.inc +++ b/manufacturing/includes/db/work_orders_db.inc @@ -11,7 +11,7 @@ ***********************************************************************/ //-------------------------------------------------------------------------------------- -function add_material_cost($stock_id, $qty, $date_, $advanced=false) +function add_material_cost($stock_id, $qty, $date_, $advanced=false, $woid=0) { $m_cost = 0; $result = get_bom($stock_id); @@ -21,19 +21,31 @@ function add_material_cost($stock_id, $qty, $date_, $advanced=false) $m_cost += ($bom_item['quantity'] * $standard_cost); } $bom_cost = $m_cost; - + // new Joe Hunt 2015.10.15 + // additilnal costs. + $i_cost = 0; + if ($woid != 0 && work_order_has_issues($woid)) + { + $res = get_additional_issues($woid); + while ($issue = db_fetch($res)) + { + $standard_cost = get_standard_cost($issue['stock_id']); + $i_cost += ($issue['qty_issued'] * $standard_cost) / $qty; + } + } $sql = "SELECT material_cost, labour_cost, overhead_cost FROM ".TB_PREF."stock_master WHERE stock_id = " .db_escape($stock_id); $result = db_query($sql); $myrow = db_fetch($result); - $material_cost = $myrow['material_cost']; - + $material_cost = $myrow['material_cost'] - $i_cost; // $i_cost was already added to material cost + $m_cost += $i_cost; + /* no, why will we do that?? Joe Hunt 2015.10.17 if ($advanced) { //reduce overhead_cost and labour_cost from price as those will remain as is $m_cost = $m_cost - $myrow['labour_cost'] - $myrow['overhead_cost']; } - + */ $qoh = get_qoh_on_date($stock_id); $cost_adjust = false; if ($qoh < 0) @@ -42,9 +54,13 @@ function add_material_cost($stock_id, $qty, $date_, $advanced=false) $cost_adjust = true; $qoh = 0; } - if ($qoh + $qty != 0) - $material_cost = ($qoh * $material_cost + $qty * $m_cost) / ($qoh + $qty); - + if ($qoh + $qty != 0) + { + if ($qoh == 0) // 27.10.2014 apmuthu and dz. + $material_cost = $m_cost; + else + $material_cost = ($qoh * $material_cost + $qty * $m_cost) / ($qoh + $qty); + } if ($advanced && $cost_adjust) // new 2010-02-10 adjust_deliveries($stock_id, $bom_cost, $date_); @@ -67,11 +83,14 @@ function add_overhead_cost($stock_id, $qty, $date_, $costs, $adj_only=false) $qoh = 0; if ($adj_only) { - if ($qty != 0) - $costs = $qty * $costs; if ($qoh>0) - $overhead_cost = ($qoh * $overhead_cost + $costs) / $qoh; - else // Journal Entry if QOH is 0/negative + { + if ($qoh + $qty != 0) + $overhead_cost = ($qoh * $overhead_cost + $qty * $costs) / ($qoh + $qty); + elseif ($qty == 0) + $overhead_cost = ($qoh * $overhead_cost + $costs) / $qoh; + } + else // Journal Entry if QOH is 0/negative { global $Refs; @@ -87,13 +106,15 @@ function add_overhead_cost($stock_id, $qty, $date_, $costs, $adj_only=false) -$costs); //GL Posting to inventory adjustment account add_gl_trans_std_cost(ST_JOURNAL, $id, $date_, - $stock_gl_code["adjustment_account"], + $stock_gl_code["assembly_account"], $stock_gl_code['dimension_id'], $stock_gl_code['dimension2_id'], $memo, $costs); add_audit_trail(ST_JOURNAL, $id, $date_); add_comments(ST_JOURNAL, $id, $date_, $memo); - $Refs->save(ST_JOURNAL, $id, $ref); + $Refs->save(ST_JOURNAL, $id, $ref); + if ($qty != 0) // 27.10.2014 dz + $overhead_cost = ($qoh * $overhead_cost + $costs) / $qty; } } else @@ -120,11 +141,14 @@ function add_labour_cost($stock_id, $qty, $date_, $costs, $adj_only=false) $qoh = 0; if ($adj_only) { - if ($qty != 0) - $costs = $qty * $costs; if ($qoh>0) - $labour_cost = ($qoh * $labour_cost + $costs) / $qoh; - else // Journal Entry if QOH is 0/negative + { + if ($qoh + $qty != 0) + $labour_cost = ($qoh * $labour_cost + $qty * $costs) / ($qoh + $qty); + elseif ($qty == 0) + $labour_cost = ($qoh * $labour_cost + $costs) / $qoh; + } + else // Journal Entry if QOH is 0/negative { global $Refs; @@ -140,20 +164,22 @@ function add_labour_cost($stock_id, $qty, $date_, $costs, $adj_only=false) -$costs); //GL Posting to inventory adjustment account add_gl_trans_std_cost(ST_JOURNAL, $id, $date_, - $stock_gl_code["adjustment_account"], + $stock_gl_code["assembly_account"], $stock_gl_code['dimension_id'], $stock_gl_code['dimension2_id'], $memo, $costs); add_audit_trail(ST_JOURNAL, $id, $date_); add_comments(ST_JOURNAL, $id, $date_, $memo); $Refs->save(ST_JOURNAL, $id, $ref); + if ($qty != 0) // 27.10.2014 dz + $labour_cost = ($qoh * $labour_cost + $costs) / $qty; } } else { if ($qoh + $qty != 0) $labour_cost = ($qoh * $labour_cost + $qty * $costs) / ($qoh + $qty); - } + } $sql = "UPDATE ".TB_PREF."stock_master SET labour_cost=".db_escape($labour_cost)." WHERE stock_id=".db_escape($stock_id); db_query($sql,"The cost details for the inventory item could not be updated"); @@ -173,11 +199,9 @@ function add_issue_cost($stock_id, $qty, $date_, $costs, $adj_only=false) $qoh = 0; if ($adj_only) { - if ($qty != 0) - $costs = $qty * $costs; if ($qoh>0) - $material_cost = $costs / $qoh; - else // Journal Entry if QOH is 0/negative + $material_cost = ($qoh * $material_cost + $costs) / $qoh; + else // Journal Entry if QOH is 0/negative { global $Refs; @@ -193,21 +217,23 @@ function add_issue_cost($stock_id, $qty, $date_, $costs, $adj_only=false) -$costs); //GL Posting to inventory adjustment account add_gl_trans_std_cost(ST_JOURNAL, $id, $date_, - $stock_gl_code["adjustment_account"], + $stock_gl_code["assembly_account"], $stock_gl_code['dimension_id'], $stock_gl_code['dimension2_id'], $memo, $costs); add_audit_trail(ST_JOURNAL, $id, $date_); add_comments(ST_JOURNAL, $id, $date_, $memo); - $Refs->save(ST_JOURNAL, $id, $ref); + $Refs->save(ST_JOURNAL, $id, $ref); + if ($qty != 0) // 27.10.2014 dz + $material_cost = $costs / $qty; } } else { if ($qoh + $qty != 0) - $material_cost = ($qty * $costs) / ($qoh + $qty); - } - $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=material_cost+" + $material_cost = ($qoh * $material_cost + $qty * $costs) / ($qoh + $qty); + } + $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=" .db_escape($material_cost) ." WHERE stock_id=".db_escape($stock_id); db_query($sql,"The cost details for the inventory item could not be updated"); @@ -433,7 +459,6 @@ function void_work_order($woid) $date = sql2date($work_order['date_']); $result = get_work_order_productions($woid); // check the produced quantity - $qty = 0; while ($row = db_fetch($result)) { void_work_order_produce($row['id']); @@ -444,12 +469,11 @@ function void_work_order($woid) continue; $memo_ = _("Voiding Work Order Trans # ").$woid; add_audit_trail(ST_MANURECEIVE, $row['id'], today(), _("Voided.")."\n".$memo_); - add_voided_entry(ST_MANURECEIVE, $row['id'], today(), $memo_); + add_voided_entry(ST_MANURECEIVE, $row['id'], today(), $memo_); } - + $result = get_work_order_issues($woid); $cost = 0; - $issue_no = 0; while ($row = db_fetch($result)) { void_work_order_issue($row['issue_no']); @@ -463,13 +487,13 @@ function void_work_order($woid) add_voided_entry(ST_MANUISSUE, $row['issue_no'], today(), $memo_); } - //Adust avg labour cost - $cost = get_gl_wo_cost($woid, WO_LABOUR); + //Adust avg labour cost + $cost = get_gl_wo_cost($woid, WO_LABOUR); if ($cost != 0) add_labour_cost($work_order['stock_id'], 1, $date, -$cost, true); - - //Adust avg overhead cost - $cost = get_gl_wo_cost($woid, WO_OVERHEAD); + + //Adust avg overhead cost + $cost = get_gl_wo_cost($woid, WO_OVERHEAD); if ($cost != 0) add_overhead_cost($work_order['stock_id'], 1, $date, -$cost, true); @@ -524,6 +548,11 @@ function get_sql_for_work_orders($outstanding_only, $all_items) $sql .= " AND workorder.loc_code=".db_escape($_POST['StockLocation']); } + if (isset($_POST['OrderId']) && $_POST['OrderId'] != "") + { + $sql .= " AND workorder.id LIKE ".db_escape('%'.$_POST['OrderId'].'%'); + } + if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "") { $sql .= " AND workorder.wo_ref LIKE ".db_escape('%'.$_POST['OrderNumber'].'%'); @@ -540,6 +569,7 @@ function get_sql_for_work_orders($outstanding_only, $all_items) $sql .= " AND workorder.required_by < '$Today' "; } + $sql .= " ORDER BY workorder.id DESC"; return $sql; }