X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=manufacturing%2Fincludes%2Fdb%2Fwork_orders_db.inc;h=122179f0c0954fc757a2fc6bc26007aaf9cceaee;hb=80dd97a37f674cc3691fa04af4c29607067566b2;hp=408fcc059ff42eb51a53979a3a2468a135f9c002;hpb=7a50c189ea995d5fe6785feb7710c00396065d2b;p=fa-stable.git diff --git a/manufacturing/includes/db/work_orders_db.inc b/manufacturing/includes/db/work_orders_db.inc index 408fcc05..122179f0 100644 --- a/manufacturing/includes/db/work_orders_db.inc +++ b/manufacturing/includes/db/work_orders_db.inc @@ -1,5 +1,14 @@ . +***********************************************************************/ //-------------------------------------------------------------------------------------- function add_material_cost($stock_id, $qty, $date_) @@ -8,10 +17,8 @@ function add_material_cost($stock_id, $qty, $date_) $result = get_bom($stock_id); while ($bom_item = db_fetch($result)) { - $sql = "SELECT material_cost FROM ".TB_PREF."stock_master WHERE stock_id = '".$bom_item['component']."'"; - $res = db_query($sql); - $myrow = db_fetch($res); - $m_cost += ($bom_item['quantity'] * $myrow['material_cost']); + $standard_cost = get_standard_cost($bom_item['component']); + $m_cost += ($bom_item['quantity'] * $standard_cost); } $sql = "SELECT material_cost FROM ".TB_PREF."stock_master WHERE stock_id = '$stock_id'"; $result = db_query($sql); @@ -27,11 +34,67 @@ function add_material_cost($stock_id, $qty, $date_) db_query($sql,"The cost details for the inventory item could not be updated"); } +function add_overhead_cost($stock_id, $qty, $date_, $costs) +{ + if ($qty != 0) + $costs /= $qty; + $sql = "SELECT overhead_cost FROM ".TB_PREF."stock_master WHERE stock_id = '$stock_id'"; + $result = db_query($sql); + $myrow = db_fetch($result); + $overhead_cost = $myrow['overhead_cost']; + $qoh = get_qoh_on_date($stock_id, null, $date_); + if ($qoh + $qty <= 0) + $overhead_cost = 0; + else + $overhead_cost = ($qoh * $overhead_cost + $qty * $costs) / ($qoh + $qty); + $sql = "UPDATE ".TB_PREF."stock_master SET overhead_cost=$overhead_cost + WHERE stock_id='$stock_id'"; + db_query($sql,"The cost details for the inventory item could not be updated"); +} + +function add_labour_cost($stock_id, $qty, $date_, $costs) +{ + if ($qty != 0) + $costs /= $qty; + $sql = "SELECT labour_cost FROM ".TB_PREF."stock_master WHERE stock_id = '$stock_id'"; + $result = db_query($sql); + $myrow = db_fetch($result); + $labour_cost = $myrow['labour_cost']; + $qoh = get_qoh_on_date($stock_id, null, $date_); + if ($qoh + $qty <= 0) + $labour_cost = 0; + else + $labour_cost = ($qoh * $labour_cost + $qty * $costs) / ($qoh + $qty); + $sql = "UPDATE ".TB_PREF."stock_master SET labour_cost=$labour_cost + WHERE stock_id='$stock_id'"; + db_query($sql,"The cost details for the inventory item could not be updated"); +} + +function add_issue_cost($stock_id, $qty, $date_, $costs) +{ + if ($qty != 0) + $costs /= $qty; + $sql = "SELECT material_cost FROM ".TB_PREF."stock_master WHERE stock_id = '$stock_id'"; + $result = db_query($sql); + $myrow = db_fetch($result); + $material_cost = $myrow['material_cost']; + $qoh = get_qoh_on_date($stock_id, null, $date_); + if ($qoh + $qty <= 0) + $material_cost = 0; + else + $material_cost = ($qty * $costs) / ($qoh + $qty); + $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=material_cost+$material_cost + WHERE stock_id='$stock_id'"; + db_query($sql,"The cost details for the inventory item could not be updated"); +} + function add_work_order($wo_ref, $loc_code, $units_reqd, $stock_id, - $type, $date_, $required_by, $costs, $memo_) + $type, $date_, $required_by, $memo_, $costs, $cr_acc, $labour, $cr_lab_acc) { - if (!($type == wo_types::advanced())) - return add_work_order_quick($wo_ref, $loc_code, $units_reqd, $stock_id, $type, $date_, $costs, $memo_); + global $Refs; + + if (!($type == WO_ADVANCED)) + return add_work_order_quick($wo_ref, $loc_code, $units_reqd, $stock_id, $type, $date_, $memo_, $costs, $cr_acc, $labour, $cr_lab_acc); begin_transaction(); @@ -42,15 +105,16 @@ function add_work_order($wo_ref, $loc_code, $units_reqd, $stock_id, $sql = "INSERT INTO ".TB_PREF."workorders (wo_ref, loc_code, units_reqd, stock_id, type, date_, required_by) - VALUES ('$wo_ref', '$loc_code', $units_reqd, '$stock_id', + VALUES (".db_escape($wo_ref).", ".db_escape($loc_code).", $units_reqd, '$stock_id', $type, '$date', '$required')"; db_query($sql, "could not add work order"); $woid = db_insert_id(); - add_comments(systypes::work_order(), $woid, $required_by, $memo_); + add_comments(ST_WORKORDER, $woid, $required_by, $memo_); - references::save_last($wo_ref, systypes::work_order()); + $Refs->save(ST_WORKORDER, $woid, $wo_ref); + add_audit_trail(ST_WORKORDER, $woid, $date_); commit_transaction(); @@ -70,7 +134,7 @@ function update_work_order($woid, $loc_code, $units_reqd, $stock_id, $date = date2sql($date_); $required = date2sql($required_by); - $sql = "UPDATE ".TB_PREF."workorders SET loc_code='$loc_code', + $sql = "UPDATE ".TB_PREF."workorders SET loc_code=".db_escape($loc_code).", units_reqd=$units_reqd, stock_id='$stock_id', required_by='$required', date_='$date' @@ -78,7 +142,8 @@ function update_work_order($woid, $loc_code, $units_reqd, $stock_id, db_query($sql, "could not update work order"); - update_comments(systypes::work_order(), $woid, null, $memo_); + update_comments(ST_WORKORDER, $woid, null, $memo_); + add_audit_trail(ST_WORKORDER, $woid, $date_, _("Updated.")); commit_transaction(); } @@ -96,7 +161,8 @@ function delete_work_order($woid) $sql = "DELETE FROM ".TB_PREF."workorders WHERE id=$woid"; db_query($sql,"The work order could not be deleted"); - delete_comments(systypes::work_order(), $woid); + delete_comments(ST_WORKORDER, $woid); + add_audit_trail(ST_WORKORDER, $woid, $_POST['date_'], _("Canceled.")); commit_transaction(); } @@ -106,7 +172,7 @@ function delete_work_order($woid) function get_work_order($woid, $allow_null=false) { $sql = "SELECT ".TB_PREF."workorders.*, ".TB_PREF."stock_master.description As StockItemName, - ".TB_PREF."locations.location_name + ".TB_PREF."locations.location_name, ".TB_PREF."locations.delivery_address FROM ".TB_PREF."workorders, ".TB_PREF."stock_master, ".TB_PREF."locations WHERE ".TB_PREF."stock_master.stock_id=".TB_PREF."workorders.stock_id AND ".TB_PREF."locations.loc_code=".TB_PREF."workorders.loc_code @@ -116,7 +182,7 @@ function get_work_order($woid, $allow_null=false) $result = db_query($sql, "The work order issues could not be retrieved"); if (!$allow_null && db_num_rows($result) == 0) - display_db_error("Could not find work order $workOrder", $sql); + display_db_error("Could not find work order $woid", $sql); return db_fetch($result); } @@ -148,7 +214,7 @@ function work_order_has_issues($woid) function work_order_has_payments($woid) { - $result = get_bank_trans(null, null, payment_person_types::WorkOrder(), $woid); + $result = get_gl_wo_cost_trans($woid); return (db_num_rows($result) != 0); } @@ -171,7 +237,8 @@ function release_work_order($woid, $releaseDate, $memo_) // create Work Order Requirements based on the bom create_wo_requirements($woid, $stock_id); - add_comments(systypes::work_order(), $woid, $releaseDate, $memo_); + add_comments(ST_WORKORDER, $woid, $releaseDate, $memo_); + add_audit_trail(ST_WORKORDER, $woid, $releaseDate,_("Released.")); commit_transaction(); } @@ -211,7 +278,7 @@ function void_work_order($woid) { $work_order = get_work_order($woid); - if (!($work_order["type"] == wo_types::advanced())) + if (!($work_order["type"] == WO_ADVANCED)) { begin_transaction(); @@ -219,10 +286,10 @@ function void_work_order($woid) db_query($sql, "The work order couldn't be voided"); // void all related stock moves - void_stock_move(systypes::work_order(), $woid); + void_stock_move(ST_WORKORDER, $woid); // void any related gl trans - void_gl_trans(systypes::work_order(), $woid, true); + void_gl_trans(ST_WORKORDER, $woid, true); // clear the requirements units received void_wo_requirements($woid);