X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=manufacturing%2Fincludes%2Fdb%2Fwork_orders_db.inc;h=f0ce31a59680381a7c8e49a56e6e0a04f0f1e3cf;hb=4a66afcbed7fb883d00c1a6a807497ccfd181378;hp=4c7f1855ae7b3a5bcba903d50b6e531413f7d06c;hpb=1a851e527fe366364c6d2baaf2684222f9394b48;p=fa-stable.git diff --git a/manufacturing/includes/db/work_orders_db.inc b/manufacturing/includes/db/work_orders_db.inc index 4c7f1855..f0ce31a5 100644 --- a/manufacturing/includes/db/work_orders_db.inc +++ b/manufacturing/includes/db/work_orders_db.inc @@ -17,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); @@ -36,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(); @@ -118,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 @@ -160,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); }