/**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(MatrizCuadroRequest $request)
 {
     $req_id = $request->input('req_id');
     //Si existe un cuadro para la requisición, redirecciona para mostrar el cuadro existente
     $verifica_cuadro = Cuadro::whereReqId($req_id)->first();
     if (!empty($verifica_cuadro)) {
         return redirect()->action('MatrizCuadroController@show', array($req_id));
     }
     //Crear Cuadro
     $cuadro = new Cuadro();
     $cuadro->req_id = $req_id;
     $cuadro->fecha_cuadro = \Carbon\Carbon::now()->toDateString();
     $cuadro->estatus = 'Cotizando';
     $cuadro->elabora = \Auth::user()->id;
     $cuadro->save();
     //Insertar en articulo_cotizacion
     $arr_articulos_id = Articulo::whereReqId($req_id)->lists('id')->all();
     $arr_cotizaciones_id = Cotizacion::whereReqId($req_id)->lists('id')->all();
     foreach ($arr_articulos_id as $articulo_id) {
         $articulo = Articulo::find($articulo_id);
         $sel_value = $request->input('sel_' . $articulo_id);
         $no_cotizado = $request->input('no_cotizado_' . $articulo_id);
         if (empty($no_cotizado)) {
             $no_cotizado = 0;
         }
         foreach ($arr_cotizaciones_id as $cotizacion_id) {
             $costo = $request->input('costo_' . $articulo_id . '_' . $cotizacion_id);
             $sel_value == $cotizacion_id && empty($no_cotizado) ? $sel = 1 : ($sel = 0);
             //Guarda información en tabla pivote articulo_cotizacion
             $articulo->cotizaciones()->attach([$cotizacion_id => ['costo' => round($costo, 2), 'sel' => $sel]]);
         }
         //Actualizar impuesto y no_cotizado en articulos
         $articulo->impuesto = $request->input('impuesto_' . $articulo_id);
         $articulo->no_cotizado = $request->input('no_cotizado_' . $articulo_id);
         $articulo->save();
     }
     //Actualizar fecha_cotiza en cotizaciones
     foreach ($arr_cotizaciones_id as $cotizacion_id) {
         $cotizacion = Cotizacion::find($cotizacion_id);
         $cotizacion->cuadro_id = $cuadro->id;
         $cotizacion->fecha_cotizacion = \Carbon\Carbon::now()->toDateString();
         $cotizacion->vigencia = $request->input('vigencia_' . $cotizacion_id);
         $cotizacion->garantia = $request->input('garantia_' . $cotizacion_id);
         $cotizacion->imprimir = true;
         $cotizacion->save();
     }
     //Actualización de tipo de cambio
     $tipo_cambio = $request->input('tipo_cambio');
     $moneda = $request->input('moneda');
     if (!empty($tipo_cambio) && !empty($moneda)) {
         $req = Req::find($req_id);
         $req->tipo_cambio = $tipo_cambio;
         $req->moneda = $moneda;
         $req->save();
     }
     return redirect()->action('MatrizCuadroController@show', array($req_id));
 }
Exemplo n.º 2
0
 private function crearCuadro($req, $fecha_cuadro)
 {
     //Creación de cuadros
     if ($req->estatus == 'Cotizada' || $req->estatus == 'Autorizada' || $req->estatus == 'Pagada') {
         $estatus_cuadro = 'Terminado';
     } else {
         $estatus_cuadro = '';
     }
     $user_adq = \InfoDirectivos::getResponsable('ADQ');
     $user_csg = \InfoDirectivos::getResponsable('CSG');
     $user_sad = \InfoDirectivos::getResponsable('SAD');
     $cuadro = new Cuadro();
     $cuadro->req_id = $req->id;
     $cuadro->fecha_cuadro = $fecha_cuadro;
     $cuadro->estatus = $estatus_cuadro;
     $cuadro->elabora = $user_adq->id;
     //Suministros
     $cuadro->revisa = $user_csg->id;
     //Serv. Generales
     $cuadro->autoriza = $user_sad->id;
     //SAD
     $cuadro->save();
     return $cuadro->id;
 }