Exemple #1
0
 public static function cuentaDif($carga)
 {
     $empresa = $carga->empresa()->lists('id');
     $sat = $carga->sat()->lists('id');
     $count = Diferencias::whereIn('empresa_id', $empresa)->orWhereIn('sat_id', $sat)->count();
     return $count;
 }
 public function getReporte(Request $request)
 {
     try {
         $contr = $request->cont;
         $desde = Carbon::createFromFormat('Y-m-d', $request->desde)->startOfDay();
         $hasta = Carbon::createFromFormat('Y-m-d', $request->hasta)->endOfDay();
     } catch (\Exception $e) {
         return view('vacio');
     }
     $sat = ArchivoSat::whereBetween('fecha', array($desde, $hasta))->where(function ($q) use($contr) {
         $q->where('rfc_emisor', '=', $contr)->orWhere('rfc_receptor', '=', $contr);
     });
     $empresa = ArchivoEmpresa::whereBetween('fecha', array($desde, $hasta))->where(function ($q) use($contr) {
         $q->where('rfc_emisor', '=', $contr)->orWhere('rfc_receptor', '=', $contr);
     });
     $todos = $sat->count() + $empresa->count();
     if ($todos == 0) {
         return view('vacio');
     }
     $diff = new DiferenciasCFID($sat->get(), $empresa->get(), $contr);
     $correctos_em = $diff->get_emitidos_correctos();
     $correctos_res = $diff->get_recibidos_correctos();
     $falt_em = $diff->get_emitidos_faltantes();
     $falt_res = $diff->get_recibidos_faltantes();
     $dif_em = $diff->get_emitidos_differences();
     $diff_res = $diff->get_recibidos_differences();
     $sinEmp = Diferencias::whereIn('sat_id', $sat->lists('id'))->where('falta', '=', true)->where('empresa_id', '=', 0)->count();
     $sinSat = Diferencias::whereIn('empresa_id', $empresa->lists('id'))->where('falta', '=', true)->where('sat_id', '=', 0)->count();
     $cancelados = $diff->getCancelados();
     $cuenta_falta_sat = $sat->get()->map(function ($item) {
         return $item->diferencias()->where('falta', '=', true)->count();
     })->sum();
     $cuenta_falta_emp = $empresa->get()->map(function ($item) {
         return $item->diferencias()->where('falta', '=', true)->count();
     })->sum();
     $contr = Contribuyente::where('rfc', '=', $contr)->first();
     $serialize = "cont={$contr->rfc}&desde={$request->desde}&hasta={$request->hasta}";
     $array = array('urlPdf' => url('buscar/pdf') . "?{$serialize}", 'urlExcel' => url('buscar/excel') . "?{$serialize}", 'urlErrores' => url('buscar/tabla') . "?" . $serialize, 'urlJust' => url('buscar/just') . "?" . $serialize, 'urlIngr' => url('buscar/ingresos') . "?" . $serialize, 'nombre' => $contr->nombre, 'rfc' => $contr->rfc, 'id' => $contr->id, 'dif_recibidos' => $diff_res, 'dif_emitidos' => $dif_em, 'falt_recibidos' => $falt_res, 'falt_emitidos' => $falt_em, 'correctos_emitidos' => $correctos_em, 'correctos_recibidos' => $correctos_res, 'correctos' => (count($correctos_em) * 200 + count($correctos_res) * 200) / $todos, 'diferencias' => (count($diff_res) * 200 + count($dif_em) * 200) / $todos, 'sat_falt' => $cuenta_falta_emp * 100 / $todos, 'emp_falt' => $cuenta_falta_sat * 100 / $todos, 'cancelados' => $cancelados, 'total' => $todos, 'docSat' => $sat->count(), 'docEmp' => $empresa->count(), 'sin_sat' => $sinSat, 'sin_emp' => $sinEmp);
     //dd($array);
     return view('cargas.diferencias', $array);
 }
 public function getMirar($idCarga)
 {
     $carga = Cargas::find($idCarga);
     if ($carga) {
         //obtener cargas
         $empresa = $carga->empresa()->orderBy('tipo_receptor')->get();
         $fecha_min_emp = $carga->empresa()->min('fecha');
         $fecha_min_sat = $carga->sat()->min('fecha');
         $fecha_max_emp = $carga->empresa()->max('fecha');
         $fecha_max_sat = $carga->sat()->max('fecha');
         $fecha_min = Carbon::createFromFormat('Y-m-d H:i:s', $fecha_min_emp)->diffInSeconds(Carbon::createFromFormat('Y-m-d H:i:s', $fecha_min_sat), false) <= 0 ? $fecha_min_sat : $fecha_min_emp;
         $fecha_max = Carbon::createFromFormat('Y-m-d H:i:s', $fecha_max_emp)->diffInSeconds(Carbon::createFromFormat('Y-m-d H:i:s', $fecha_max_sat), false) > 0 ? $fecha_max_sat : $fecha_max_emp;
         $sat = $carga->sat()->orderBy('tipo_receptor')->get();
         $todos = $carga->sat()->count() + $carga->empresa()->count();
         $diff = new DiferenciasCFID($sat, $empresa, $carga->rfc);
         $correctos_em = $diff->get_emitidos_correctos();
         $correctos_res = $diff->get_recibidos_correctos();
         $falt_em = $diff->get_emitidos_faltantes();
         $falt_res = $diff->get_recibidos_faltantes();
         $dif_em = $diff->get_emitidos_differences();
         $diff_res = $diff->get_recibidos_differences();
         $cancelados = $diff->getCancelados();
         $cuenta_falta_sat = $carga->sat()->get()->map(function ($item) {
             return $item->diferencias()->where('falta', '=', true)->count();
         })->sum();
         $cuenta_falta_emp = $carga->empresa()->get()->map(function ($item) {
             return $item->diferencias()->where('falta', '=', true)->count();
         })->sum();
         $sinEmp = Diferencias::whereIn('sat_id', $carga->sat()->lists('id'))->where('falta', '=', true)->where('empresa_id', '=', 0)->count();
         $sinSat = Diferencias::whereIn('empresa_id', $carga->empresa()->lists('id'))->where('falta', '=', true)->where('sat_id', '=', 0)->count();
         $array = array('urlPdf' => url('cargas/pdf') . "/{$carga->id}", 'urlExcel' => url('cargas/excel') . "/{$carga->id}", 'urlErrores' => url('cargas/errores') . "/" . $carga->id, 'urlJust' => url('cargas/just') . "/" . $carga->id, 'urlIngr' => url('cargas/ingresos') . "/" . $carga->id, 'urlEgresos' => url('cargas/egresos') . "/" . $carga->id, 'urlNotasCredito' => url('cargas/notascredito') . "/" . $carga->id, 'urlNominas' => url('cargas/nominas') . "/" . $carga->id, 'nombre' => $carga->contribuyente->nombre, 'rfc' => $carga->contribuyente->rfc, 'id' => $carga->id, 'dif_recibidos' => $diff_res, 'dif_emitidos' => $dif_em, 'falt_recibidos' => $falt_res, 'falt_emitidos' => $falt_em, 'correctos_emitidos' => $correctos_em, 'correctos_recibidos' => $correctos_res, 'correctos' => (count($correctos_em) * 200 + count($correctos_res) * 200) / $todos, 'diferencias' => (count($diff_res) * 200 + count($dif_em) * 200) / $todos, 'sat_falt' => $cuenta_falta_emp * 100 / $todos, 'emp_falt' => $cuenta_falta_sat * 100 / $todos, 'cancelados' => $cancelados, 'total' => $todos, 'docSat' => $carga->sat()->count(), 'docEmp' => $carga->empresa()->count(), 'sin_sat' => $sinSat, 'sin_emp' => $sinEmp, 'fecha_max' => $fecha_max, 'fecha_min' => $fecha_min);
         //dd($array);
         return view('cargas.diferencias', $array);
     } else {
         return view('cargas.empty');
     }
 }