X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=manufacturing%2Fincludes%2Fdb%2Fwork_orders_db.inc;h=f0ce31a59680381a7c8e49a56e6e0a04f0f1e3cf;hb=11e485e4a7c5f12c9424713b7330815a9cc5e4ae;hp=58f3d82d383a2b77ee62e55131e543aed76e4e02;hpb=46d3debec422c5ad5ee99c4acfe42bfa60308afb;p=fa-stable.git diff --git a/manufacturing/includes/db/work_orders_db.inc b/manufacturing/includes/db/work_orders_db.inc index 58f3d82d..f0ce31a5 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,65 @@ 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_); + 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,7 +103,7 @@ 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 (".db_quote($wo_ref).", ".db_quote($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"); @@ -50,7 +111,8 @@ function add_work_order($wo_ref, $loc_code, $units_reqd, $stock_id, add_comments(systypes::work_order(), $woid, $required_by, $memo_); - references::save_last($wo_ref, systypes::work_order()); + references::save(systypes::work_order(), $woid, $wo_ref); + add_audit_trail(systypes::work_order(), $woid, $date_); commit_transaction(); @@ -70,7 +132,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=".db_quote($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' @@ -79,6 +141,7 @@ 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_); + add_audit_trail(systypes::work_order(), $woid, $date_, _("Updated.")); commit_transaction(); } @@ -97,6 +160,7 @@ function delete_work_order($woid) db_query($sql,"The work order could not be deleted"); delete_comments(systypes::work_order(), $woid); + add_audit_trail(systypes::work_order(), $woid, $_POST['date_'], _("Canceled.")); commit_transaction(); } @@ -106,7 +170,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 @@ -148,7 +212,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); } @@ -172,6 +236,7 @@ function release_work_order($woid, $releaseDate, $memo_) create_wo_requirements($woid, $stock_id); add_comments(systypes::work_order(), $woid, $releaseDate, $memo_); + add_audit_trail(systypes::work_order(), $woid, $releaseDate,_("Released.")); commit_transaction(); }