/home/dvjjulio/softtrash/app/Http/Controllers/PesoController.php
<?php

namespace Trash\Http\Controllers;

use Illuminate\Http\Request;

use Trash\Http\Requests;
use Trash\Http\Controllers\Controller;
use Trash\Peso;
use Trash\Clientes;
use Trash\Cuotas;
use Trash\Unidades;
use Trash\Ordenes;
use Helper;
use Auth;

class PesoController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //

        $clientes = Clientes::where('status_id',1)->OrderBy('nombre_comercial')->get();
        $cuotas = Cuotas::all();
        $unidades = Unidades::all();

        $ordenes = new Ordenes();
        $orden = $ordenes->orden_mes_year();
        $orden_year = $orden->getData()->data;

        $yearToday = date('Y');
        $i = 0;
        $years = [];

        for($j = 3; $j >= 0; $j--){
          $years[$i] = ($yearToday-$j);
          $i++;
        }
        for($j = 1; $j <= 6; $j++){
          $years[$i] = ($yearToday+$j);
          $i++;
        }


        return view('catalogo.pesoCliente',compact('clientes','cuotas','unidades','orden_year','years'));
    }

    public function update(Request $request){
      $data = $request->all();

      $pesos = new Peso();

      if($data['id']==1){
        return $pesos->update_peso($data);
      }else{
        return $this->filter($request);
      }

    }

    public function pesoFilterTable(Request $request){
      $peso = new Peso();
      $data = $request->all();
      $pesos = $peso->peso_cliente();
      if($pesos->getData()->status){
        $peso_all = $pesos->getData()->data;
      }
      return view('catalogo.pesoFilter')->with(compact('peso_all'));
    }

    public function filter($data){
       $pesos = new Peso();
       $peso_all = $pesos->update_peso($data);
       return view('catalogo.pesoFilter')->with(compact('peso_all'));
    }


    public function editPesoRow(Request $request)
    {
        $id = $request->input('id');
        $peso = $request->input('peso');

        $peso_cliente = Peso::find($id);
        $peso_cliente->peso = $peso;
        if($peso_cliente->save()){
          return response()->json(['status'=>true, 'message'=>'Actualizado Correctamente', 'type'=>'success']);
        }else{
          return response()->json(['status'=>false, 'message'=>'No se modifico el peso', 'type'=>'danger']);
        }

    }

    public function pesoClietes()
    {

        $ordenes = new Ordenes();
        $peso = $ordenes->tota_orden();
        $pesos = $peso->getData()->data;

        $years = $ordenes->year_order();

        $clientes = Clientes::Where('status_id',"=",1)->orderBy('nombre_comercial')->get();

        return View('catalogo.ClientesPesoTotal')->with(compact('pesos','years','clientes'));
    }

    public function getMonths(Request $request){
      $year = $request->input('year');
      $ordenes = new Ordenes();
      $orden_year = $ordenes->orden_mes_year($year);
      return $orden_year;
    }

    public function getTotalMonth(Request $request){
      $data = $request->all();
      $ordenes = new Ordenes();
      $orden_total = $ordenes->tota_orden_mes($data['year'], $data['month']);
      return $orden_total;
    }

    public function updatePesos(Request $request){
      $data = $request->all();
      $pesos = new Peso();
      foreach ($data['data'] as $key => $value) {
        $peso = $pesos->modifyWeigh($value['val'],$value['id']);
        //return $value['val'];
      }
      return response()->json(['status'=>true,'message'=>'Actualizados los Pesos']);
    }

    public function pesosOrden(Request $request){
      $year = $request->input('year');
      $month = $request->input('month');
      $cliente = $request->input('cliente');

      $ordenes = new Ordenes();
      $peso = $ordenes->tota_orden($cliente, $year, $month );
      $pesos = $peso->getData()->data;

      return View('catalogo.ClientesPesoTotal_section')->with(compact('pesos'));


    }

    public function clonMes(){
      $peso = new Peso();
      $years_base = $peso->years_months_weigth();

      $yearToday = date('Y');
      $i = 0;
      $years_destinity = [];

      for($j = 3; $j >= 0; $j--){
        $years_destinity[$i] = ($yearToday-$j);
        $i++;
      }
      for($j = 1; $j <= 6; $j++){
        $years_destinity[$i] = ($yearToday+$j);
        $i++;
      }

      $months_destinity = [];
      for($i=1; $i<=12; $i++){
        $months_destinity[$i] = ['month_id'=>$i,'month'=>Helper::month($i)];
      }
      return view('catalogo.clonMes')->with(compact('years_base','years_destinity','months_destinity'));
    }

    public function getMonthBase(Request $request){
      $year = $request->input('year');
      $peso = new Peso();
      $months = $peso->years_months_weigth($year);
      return $months;
    }

    public function clonadorMes(Request $request){
      $data = $request->all();
      $pesos = new Peso();
      $peso = $pesos->getPesosMonth($data['year_base'], $data['month_base']);

      foreach ($peso as $key => $value) {
        $verify = $pesos->verifyPesosMonth($data['year_destinity'],$data['month_destinity'],$value->id);
        if($verify == []){
          $peso = new Peso();
        }else{
          $peso = Peso::find($verify[0]->id);
        }
        $peso->cliente_id = $value->id;
        $peso->mes_id = $data['month_destinity'];
        $peso->year = $data['year_destinity'];
        $peso->peso = ($value->peso == null)? 0 : $value->peso;
        $peso->user_created = Auth::user()->id;
        if(!$peso->save())
          return response()->json(['status'=>false, 'message'=>'Error al Guardar '.$peso]);
      }
      return response()->json(['status'=>true, 'message'=>'Mes Clonado Exitosamente']);

    }


}