public static function marcarPagados($detalles)
 {
     $detalles = DetalleArticulo::findMany($detalles);
     $detalles->each(function ($detalle) {
         $detalle->pagado();
     });
 }
 public function postActualizarcosto(Request $req)
 {
     $detalle = DetalleArticulo::findOrFail($req->get('id'));
     $detalle->fill($req->only('costo_compra'));
     $detalle->save();
     return response()->json();
 }
 /**
  * Bootstrap any application services.
  *
  * @return void
  */
 public function boot()
 {
     Articulo::observe(new BaseObserver());
     ArticuloPresupuesto::observe(new ArticuloPresupuestoObserver());
     ArticuloProveedor::observe(new BaseObserver());
     Configuracion::observe(new BaseObserver());
     DetalleArticulo::observe(new BaseObserver());
     Persona::observe(new BaseObserver());
     Presupuesto::observe(new PresupuestoObserver());
     TipoArticulo::observe(new BaseObserver());
     User::observe(new BaseObserver());
 }
 /**
  * Show the application welcome screen to the user.
  *
  * @return Response
  */
 public function index()
 {
     $data['cant_presupuestos_aprobados'] = Presupuesto::where('estatus', '>=', 3)->count();
     $data['cant_presupuestos_enviados'] = Presupuesto::whereEstatus(2)->count();
     $data['cant_eventos_mes'] = Presupuesto::filtrar(['evento' => 'mes'])->count();
     $data['monto_x_pagar'] = DetalleArticulo::whereNull('fecha_pago')->get()->sum('costo_total');
     $presupuestos = Presupuesto::whereEstatus(3)->get();
     $data['monto_x_cobrar'] = 0;
     $presupuestos->each(function (Presupuesto $presupuesto) use($data) {
         $data['monto_x_cobrar'] += $presupuesto->monto_total;
     });
     return view('index', $data);
 }
 public function saving($model)
 {
     if ($model->isDirty('cantidad')) {
         $actuales = $model->detalleArticulos()->count();
         if ($model->cantidad >= $actuales) {
             for ($i = $actuales; $i < $model->cantidad; $i++) {
                 $detalle = DetalleArticulo::create(['articulo_presupuesto_id' => $model->id]);
                 $detalle->tratarAsignarProveedor();
             }
         } else {
             $detalles = $model->detalleArticulos()->take($actuales - $model->cantidad)->get();
             $detalles->each(function ($detalle) {
                 $detalle->delete();
             });
             $detalles = $model->detalleArticulos;
             $detalles->each(function ($detalle) {
                 $detalle->tratarAsignarProveedor();
             });
         }
     }
     return parent::saving($model);
 }
 public function postDetallepagado(Request $req)
 {
     $proveedor_id = $req->get('proveedor_id');
     DetalleArticulo::marcarDevueltos($req->get('detalle_id', []));
     return redirect('pago-proveedores/detallepagado/' . $proveedor_id)->with('mensaje', 'Se marcaron los articulos como no pagados correctamente');
 }
 public function deleteAsignarproveedores($detalle_id)
 {
     $detalle = DetalleArticulo::findOrFail($detalle_id);
     $detalle->ind_confirmado = false;
     $detalle->proveedor_id = null;
     $detalle->save();
     $data['vista'] = $this->getAsignarproveedores($detalle->articuloPresupuesto->presupuesto_id)->render();
     $data['mensaje'] = "Se removió el proveedor correctamente";
     return response()->json($data);
 }