diff --git a/wms/mkt/pricereview_mi-api.php b/wms/mkt/pricereview_mi-api.php index 098064f7..931f22e4 100644 --- a/wms/mkt/pricereview_mi-api.php +++ b/wms/mkt/pricereview_mi-api.php @@ -71,6 +71,7 @@ try { $elev_arr[$row[5]]["floors"] = $floors; $elev_arr[$row[5]]["speed"] = $speed; $elev_arr[$row[5]]["option"] = []; + $elev_arr[$row[5]]["mn"] = []; $elev_qty_all += $row[1]; } mysqli_free_result($res); @@ -108,20 +109,22 @@ try { mysqli_free_result($res); $opt_nosel_id_arr = array_diff(array_keys($opt_elev_arr), $opt_sel_id_arr); - // 保固延長<->電梯項次 - $mn_arr = []; - $sql = "select id, item_spec, item_qty, option_relate_spec from pricereview_item where mid = '$id' and item_group = 'D'"; + // 電梯所屬保固延長 + $mn_elev_arr = $mn_sel_id_arr = []; + $sql = "select id, item_spec, item_price_bp, option_relate_spec from pricereview_item where mid = '$id' and item_group = 'D'"; $res = mysqli_query($link, $sql); while ($row = mysqli_fetch_row($res)) { - $mn_arr[$row[0]]["item_spec"] = $row[1]; - $mn_arr[$row[0]]["item_qty"] = $row[2]; + $mn_elev_arr[$row[0]]["item_spec"] = $row[1]; + $mn_elev_arr[$row[0]]["item_price_bp"] = $row[2]; $tmp_arr = explode(",", $row[3]); - $mn_arr[$row[0]]["elev_no"] = $tmp_arr; + $mn_elev_arr[$row[0]]["elev_no"] = $tmp_arr; foreach ($tmp_arr as $v) { $elev_arr[$v]["mn"][] = $row[0]; + $mn_sel_id_arr[] = $row[0]; } } mysqli_free_result($res); + $mn_nosel_id_arr = array_diff(array_keys($mn_elev_arr), $mn_sel_id_arr); // 除外項目平均分到每台電梯 $exarr = []; @@ -160,7 +163,7 @@ try { //print_r($elev_arr); //print_r($opt_elev_arr); //print_r($opt_nosel_id_arr); - //print_r($mn_arr); + //print_r($mn_elev_arr); //print_r($ex_arr);exit; foreach ($elev_arr as $item_no => $v) { @@ -243,8 +246,10 @@ try { if (empty($todo_opt_arr)) $todo_opt_arr = $opt_nosel_id_arr; if (!empty($todo_opt_arr)) { foreach ($todo_opt_arr as $val) { - $sql4 = "select o.base_floor, o.base_floor_plus, o.price, r.equipment from option_mi o, elevator_quotation_rule r "; - $sql4 .= "where o.quotation_no = r.quotation_no and o.option_price_id = ".$opt_elev_arr[$val]["price_id"]." "; + $sql4 = "select o.base_floor, o.base_floor_plus, o.price, r.equipment, p.price 'OP' "; + $sql4 .= "from option_mi o, elevator_quotation_rule r, option_price p "; + $sql4 .= "where o.quotation_no = r.quotation_no and o.option_price_id = p.id "; + $sql4 .= "and o.option_price_id = ".$opt_elev_arr[$val]["price_id"]." "; $sql4 .= "and ($v[item_weight] between o.min_weight and o.max_weight) and o.open_kind = '".$v["item_op"]."'"; $res_om = mysqli_query($link, $sql4); if ($row_om = mysqli_fetch_assoc($res_om)) { @@ -252,6 +257,7 @@ try { // 特例 if ($opt_elev_arr[$val]["price_id"] == "256" && ($v["floors"] < $row_om["base_floor"])) $row_om["price"] = 9815; if ($opt_elev_arr[$val]["price_id"] == "266" && $v["floors"] >= 20) $plus += 44.8; // 15层,14.6元/层(19层内,跳20层再追加44.8元) + if ($row_om["price"] == 0) $row_om["price"] = $row_om["OP"]*0.6; // 實體且沒成本的:抓牌價6成 // 含此option的電梯總台數 $myelev_qty = 0; foreach ($opt_elev_arr[$val]["elev_no"] as $pval) { @@ -273,10 +279,18 @@ try { // 保固延長 $mnarr = []; $mn_fee = $j = 0; - if (!empty($v["mn"][0])) { - foreach ($v["mn"] as $val) { + $todo_mn_arr = $v["mn"]; + if (!empty($todo_mn_arr[0])) { + foreach ($todo_mn_arr as $val) { $mn_amt = 0; - $mnarr[$j][0] = $mn_arr[$val]["item_spec"]."保養費"; + // 含此保延的電梯總台數 + $myelev_qty = 0; + foreach ($mn_elev_arr[$val]["elev_no"] as $pval) { + $myelev_qty += $elev_arr[$pval]["item_qty"]; + } + // 分配:延保總價除以電梯總台數 + $mn_amt += round(0+($mn_elev_arr[$val]["item_price_bp"]/$myelev_qty), 0); + $mnarr[$j][0] = $mn_elev_arr[$val]["item_spec"]."保養費"; $mnarr[$j][1] = $mn_amt; $mn_fee += $mn_amt; $j++;