Пример #1
0
 /**
  * Process form request to create report
  *
  * This will generate report for distribution
  * realization.
  *
  * @param Request $request
  * @return Response
  */
 public function postDistRealization(Request $request)
 {
     $this->validate($request, ['edition_id' => 'required|numeric']);
     /**
             // Prepare data for report
             $DistPlan = DistPlan::with('details.agent')
        ->where('edition_id', '=', $request->edition_id)
        ->first();
     
             $DistReal = DistRealization::with('details.agent')
        ->where('edition_id', '=', $request->edition_id)
        ->first();
     */
     $DistPlan = DistPlan::where('edition_id', '=', $request->edition_id)->first();
     $DistReal = DistRealization::with('edition.magazine')->where('edition_id', '=', $request->edition_id)->first();
     // if empty, don't render any result
     if (!$DistPlan or !$DistReal) {
         $msg = "Tidak ditemukan perencanaan atau realisasi";
         return redirect('report/create-dist-realization')->with('errMsg', $msg);
     }
     $DistPlanDet = DistPlanDet::with('agent.agent_category')->where('distribution_plan_id', '=', $DistPlan->id)->get();
     $DistRealDet = DistRealDet::with('agent.agent_category')->where('distribution_realization_id', '=', $DistReal->id)->get();
     // Change structure so that $DistPlanDet
     // and $DistRealDet are keyed by agent_id
     $agent_DistPlanDet = $DistPlanDet->keyBy('agent_id');
     $agent_DistRealDet = $DistRealDet->keyBy('agent_id');
     // Get agent details
     $keys = $agent_DistPlanDet->keys();
     $agents = Agent::with('agent_category')->whereIn('id', $keys->all())->orderBy('agent_category_id', 'asc')->get();
     // Now, return agents aggregat
     return view('report/preview-dist-realization', ['distReal' => $DistReal, 'distPlanDet' => $agent_DistPlanDet, 'distRealDet' => $agent_DistRealDet, 'agents' => $agents]);
 }
Пример #2
0
 /**
  * Show Agent-Magazine relationship
  *
  * @param int agent_id
  * @return Response
  */
 public function getRelationship($agent_id)
 {
     try {
         $agent = Agent::with('magazine', 'agent_category')->findOrFail($agent_id);
     } catch (ModelNotFoundException $e) {
         $errMsg = "Cannot find agent! Error on `getRelationship` with ID={$agent_id}";
         return redirect('masterdata/agent')->with('errMsg', $errMsg);
     }
     $selected = [];
     foreach ($agent->magazine as $mag) {
         $selected[] = $mag->id;
     }
     // Construct intersect_array
     $unselected_mags = Magazine::whereNotIn('id', $selected)->get();
     return view('masterdata/agent-relationship', ['agent' => $agent, 'unselected_mags' => $unselected_mags]);
 }