public function get_remaining_cost($apply_date, $list_ss, $ss_id, $order = array()) { //get ss_info $ss_info = \Model_Mss::find_by_pk($ss_id); //get list ss by partner_code $list_ss_primary = array(); if ($ss_info) { $model_mss = new \Model_Mss(); $partner = \Model_Mpartner::find_by_pk($ss_info->partner_code); if ($partner) { $department_id = $partner->department_id; } $list_ss_partner_code = $model_mss->get_list_all_ss(array('partner_code' => $ss_info->partner_code)); if ($list_ss_partner_code) { $list_ss_primary = array_column($list_ss_partner_code, 'ss_id'); } } $department_id = isset($partner->department_id) ? $partner->department_id : ''; //get price for order $cost_of_order = 0; if ($order) { $check = true; if ($order['status'] == 2) { $check = false; } if ($order['status'] == 2 && $order['action'] == 'copy') { $check = true; } if ($check == true) { $cost_of_order = \Model_Orders::cost_of_order($order, $list_ss_primary, true); } } //get list orders by list_ss_id $list_orders = \Model_Orders::get_list_order_in_listss($list_ss_primary, $apply_date); $total_price = 0; foreach ($list_orders as $key => $value) { $total_price = $total_price + \Model_Orders::cost_of_order($value, $list_ss_primary, true); } //get plan job_cost $job_cost = \Model_Plan::get_info_by_startdate($apply_date, $department_id); $remaining_cost = $job_cost - $total_price - $cost_of_order; return $remaining_cost; }