Example #1
0
 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;
 }