Esempio n. 1
0
 public function obtenerDepositos(DepositoConsultaRequest $request)
 {
     if ($request->plaza == '' && $request->fecha == '' && $request->monto == '' && $request->referencia == '') {
         $depositos = Deposito::all();
     } else {
         $query = Deposito::select('contabilidad_depositos.*');
         if ($request->plaza) {
             $plazaF = Place::where('Clave', $request->plaza)->first();
             $plaza = $plazaF->Oficina;
             $query->join('contabilidad_deposito_aplicacion', 'contabilidad_depositos.id', '=', 'contabilidad_deposito_aplicacion.deposito_id')->join('contabilidad_sales', 'contabilidad_sales.id', '=', 'contabilidad_deposito_aplicacion.venta_id')->where(function ($query) use($plaza) {
                 $query->where('cl_location', $plaza)->where('op_location', $plaza);
             });
         }
         if ($request->fecha) {
             $fecha = Carbon::createFromFormat('m/d/Y', $request->fecha);
             $query->orWhere(function ($query) use($fecha) {
                 $query->whereDate('fecha', '=', $fecha->toDateString());
             });
         }
         if ($request->monto) {
             $query->orWhere('monto', $request->monto);
         }
         if ($request->referencia) {
             $referencia = $request->referencia;
             if ($request->plaza) {
                 $query->where(function ($query) use($referencia) {
                     $query->where('reference', $referencia);
                 });
             } else {
                 $query->join('contabilidad_deposito_aplicacion', 'contabilidad_depositos.id', '=', 'contabilidad_deposito_aplicacion.deposito_id')->join('contabilidad_sales', 'contabilidad_sales.id', '=', 'contabilidad_deposito_aplicacion.venta_id')->orWhere(function ($query) use($referencia) {
                     $query->where('reference', $referencia);
                 });
             }
         }
         $depositos = $query->distinct()->get();
     }
     if (count($depositos) > 0) {
         foreach ($depositos as $deposito) {
             $deposito->load('depositosaplicados', 'depositosaplicados.venta', 'usuariocancelacion');
         }
     }
     return response()->json($depositos);
 }