Ejemplo n.º 1
0
 /**
  * Get the post register / login redirect path.
  *
  * @return string
  */
 public function redirectPath()
 {
     switch (\Auth::user()->role_id) {
         case '4':
             return '/admin';
             break;
         case '3':
             return '/promoter';
             break;
         case '2':
             //aqui agregamos una entrada a la asistencia
             $dateToday = new Carbon();
             $dateToday = $dateToday->toDateString();
             $dateTimeToday = new Carbon();
             $id = Auth::user()->id;
             $Attendance = Attendance::where('datetime', $dateToday)->where('salesman_id', $id)->get();
             if ($Attendance->count() == 0) {
                 // si no lo encuentro creo la fecha
                 $assitance = new Attendance();
                 $assitance->datetime = $dateToday;
                 $assitance->salesman_id = $id;
                 $assitance->datetimestart = $dateTimeToday;
                 $assitance->save();
                 // sleep(0.1);
             } else {
                 // si lo encuentro actualizo la fecha de finalizacion de sesion a null
                 $assitance = Attendance::find($Attendance[0]->id);
                 $assitance->datetimeend = NULL;
                 $assitance->save();
             }
             ////////////////////////////////////////////////////////////////////////////////////////////////////////
             //ahora creo el detalle de la asistencia. esto es si o si
             ////////////////////////////////////////////////////////////////////////////////////////////////////////
             $assitancedetail = new AttendanceDetail();
             $assitancedetail->datetime = $dateTimeToday;
             $assitancedetail->tipo = Config::get('constants.in');
             // ya que se trata de un ingreso
             $id = Auth::user()->id;
             $Attendance = Attendance::where('datetime', $dateToday)->where('salesman_id', $id)->get();
             $assitancedetail->attendance_id = $Attendance[0]->id;
             $assitancedetail->save();
             //tambien agregamos una salida
             $assitancedetail = new AttendanceDetail();
             $assitancedetail->tipo = 2;
             // ya que se trata de un ingreso
             $id = Auth::user()->id;
             $Attendance = Attendance::where('datetime', $dateToday)->where('salesman_id', $id)->get();
             $assitancedetail->attendance_id = $Attendance[0]->id;
             $assitancedetail->datetime = NULL;
             $assitancedetail->save();
             return '/salesman';
             break;
         case '1':
             return '/client/home';
             break;
         default:
             return '/';
             break;
     }
 }
Ejemplo n.º 2
0
 public function assistanceExcel(Request $request)
 {
     if ($request['ty_report'] == 1) {
         $salesmans = User::where('role_id', 2)->get();
         $date_at = $request['date_at'];
         $auxSalesman = [];
         foreach ($salesmans as $salesman) {
             if (date_format(date_create($salesman->created_at), "Y-m-d") <= date_format(date_create($date_at), "Y-m-d")) {
                 array_push($auxSalesman, $salesman);
             }
         }
         $salesmans = $auxSalesman;
         $assiInformation = [];
         foreach ($salesmans as $salesman) {
             $assistances = Attendance::where('salesman_id', $salesman->id)->where('datetimestart', 'LIKE', '%' . date_format(date_create($date_at), "Y-m-d") . '%')->get();
             if (count($assistances) == 0) {
                 $aux = ModuleAssigment::where('dateAssigments', '<', date_format(date_create(date("Y-m-d", strtotime($date_at) + 86400)), "Y-m-d"))->where('salesman_id', $salesman->id)->get()->last();
                 if (count($aux) == 0) {
                     array_push($assiInformation, array($salesman->name, $salesman->lastname, "-", "-", "No Asistió", "No Asistió", "No tiene Módulo"));
                 } else {
                     $module = Module::find($aux->module_id);
                     if ($aux->dateMoveAssigments == null) {
                         array_push($assiInformation, array($salesman->name, $salesman->lastname, "-", "-", "No Asistió", "No Asistió", $module->name));
                     } else {
                         if (date_format(date_create($aux->dateMoveAssigments), "Y-m-d") < $date_at) {
                             array_push($assiInformation, array($salesman->name, $salesman->lastname, "-", "-", "No Asistió", "No Asistió", "No tiene Módulo"));
                         } else {
                             array_push($assiInformation, array($salesman->name, $salesman->lastname, "-", "-", "No Asistió", "No Asistió", $module->name));
                         }
                     }
                 }
             } else {
                 foreach ($assistances as $assistance) {
                     $aux = ModuleAssigment::where('dateAssigments', '<', date_format(date_create(date("Y-m-d", strtotime($date_at) + 86400)), "Y-m-d"))->where('salesman_id', $salesman->id)->get()->last();
                     if (count($aux) == 0) {
                         array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), date_format(date_create($assistance->datetimeend), "H:i:s"), "-", "-", "No tiene Módulo"));
                     } else {
                         $module = Module::find($aux->module_id);
                         if ($aux->dateMoveAssigments == null || date_format(date_create($aux->dateMoveAssigments), "Y-m-d") >= $date_at) {
                             $openHour = date_format(date_create($module->starTime), "H:i:s");
                             if ($openHour >= date_format(date_create($assistance->datetimestart), "H:i:s")) {
                                 if ($assistance->datetimeend == null) {
                                     array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), "-", "Llegó Puntual", "Sigue Trabajando", $module->name));
                                 } else {
                                     $endHour = date_format(date_create($module->endTime), "H:i:s");
                                     if ($endHour <= date_format(date_create($assistance->datetimeend), "H:i:s")) {
                                         array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), date_format(date_create($assistance->datetimeend), "H:i:s"), "Llegó Puntual", "Salio Puntual", $module->name));
                                     } else {
                                         array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), date_format(date_create($assistance->datetimeend), "H:i:s"), "Llego Puntual", "Salió Temprano", $module->name));
                                     }
                                 }
                             } else {
                                 if ($assistance->datetimeend == null) {
                                     array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), "-", "Llegó Tarde", "Sigue Trabajando", $module->name));
                                 } else {
                                     $endHour = date_format(date_create($module->endTime), "H:i:s");
                                     if ($endHour <= date_format(date_create($assistance->datetimeend), "H:i:s")) {
                                         array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), date_format(date_create($assistance->datetimeend), "H:i:s"), "Llegó Tarde", "Salió Puntual", $module->name));
                                     } else {
                                         array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), date_format(date_create($assistance->datetimeend), "H:i:s"), "Llegó Tarde", "Salió Temprano", $module->name));
                                     }
                                 }
                             }
                         } else {
                             array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), date_format(date_create($assistance->datetimeend), "H:i:s"), "-", "-", "No tiene Módulo"));
                         }
                     }
                 }
             }
             //}
         }
         return view('internal.admin.reports.assistance', compact('assiInformation', 'date_at'));
     } elseif ($request['ty_report'] == 2) {
         $input = $request->all();
         $salesmans = User::where('role_id', 2)->get();
         $date_at = $request['date_at'];
         $auxSalesman = [];
         foreach ($salesmans as $salesman) {
             if (date_format(date_create($salesman->created_at), "Y-m-d") <= date_format(date_create($date_at), "Y-m-d")) {
                 array_push($auxSalesman, $salesman);
             }
         }
         $salesmans = $auxSalesman;
         $assiInformation = [];
         foreach ($salesmans as $salesman) {
             $assistances = Attendance::where('salesman_id', $salesman->id)->where('datetimestart', 'LIKE', '%' . date_format(date_create($date_at), "Y-m-d") . '%')->get();
             if (count($assistances) == 0) {
                 $aux = ModuleAssigment::where('dateAssigments', '<', date_format(date_create(date("Y-m-d", strtotime($date_at) + 86400)), "Y-m-d"))->where('salesman_id', $salesman->id)->get()->last();
                 if (count($aux) == 0) {
                     array_push($assiInformation, array($salesman->name, $salesman->lastname, "-", "-", "No Asistió", "No Asistió", "No tiene Módulo"));
                 } else {
                     $module = Module::find($aux->module_id);
                     if ($aux->dateMoveAssigments == null) {
                         array_push($assiInformation, array($salesman->name, $salesman->lastname, "-", "-", "No Asistió", "No Asistió", $module->name));
                     } else {
                         if (date_format(date_create($aux->dateMoveAssigments), "Y-m-d") < $date_at) {
                             array_push($assiInformation, array($salesman->name, $salesman->lastname, "-", "-", "No Asistió", "No Asistió", "No tiene Módulo"));
                         } else {
                             array_push($assiInformation, array($salesman->name, $salesman->lastname, "-", "-", "No Asistió", "No Asistió", $module->name));
                         }
                     }
                 }
             } else {
                 foreach ($assistances as $assistance) {
                     $aux = ModuleAssigment::where('dateAssigments', '<', date_format(date_create(date("Y-m-d", strtotime($date_at) + 86400)), "Y-m-d"))->where('salesman_id', $salesman->id)->get()->last();
                     if (count($aux) == 0) {
                         array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), date_format(date_create($assistance->datetimeend), "H:i:s"), "-", "-", "No tiene Módulo"));
                     } else {
                         $module = Module::find($aux->module_id);
                         if ($aux->dateMoveAssigments == null || date_format(date_create($aux->dateMoveAssigments), "Y-m-d") >= $date_at) {
                             $openHour = date_format(date_create($module->starTime), "H:i:s");
                             if ($openHour >= date_format(date_create($assistance->datetimestart), "H:i:s")) {
                                 if ($assistance->datetimeend == null) {
                                     array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), "-", "Llegó Puntual", "Sigue Trabajando", $module->name));
                                 } else {
                                     $endHour = date_format(date_create($module->endTime), "H:i:s");
                                     if ($endHour <= date_format(date_create($assistance->datetimeend), "H:i:s")) {
                                         array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), date_format(date_create($assistance->datetimeend), "H:i:s"), "Llegó Puntual", "Salio Puntual", $module->name));
                                     } else {
                                         array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), date_format(date_create($assistance->datetimeend), "H:i:s"), "Llego Puntual", "Salió Temprano", $module->name));
                                     }
                                 }
                             } else {
                                 if ($assistance->datetimeend == null) {
                                     array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), "-", "Llegó Tarde", "Sigue Trabajando", $module->name));
                                 } else {
                                     $endHour = date_format(date_create($module->endTime), "H:i:s");
                                     if ($endHour <= date_format(date_create($assistance->datetimeend), "H:i:s")) {
                                         array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), date_format(date_create($assistance->datetimeend), "H:i:s"), "Llegó Tarde", "Salió Puntual", $module->name));
                                     } else {
                                         array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), date_format(date_create($assistance->datetimeend), "H:i:s"), "Llegó Tarde", "Salió Temprano", $module->name));
                                     }
                                 }
                             }
                         } else {
                             array_push($assiInformation, array($salesman->name, $salesman->lastname, date_format(date_create($assistance->datetimestart), "H:i:s"), date_format(date_create($assistance->datetimeend), "H:i:s"), "-", "-", "No tiene Módulo"));
                         }
                     }
                 }
             }
             //}
         }
         if ($input['type'] == 1) {
             Excel::create('Reporte de asistencia de vendedores starkticket', function ($excel) use($assiInformation, $date_at) {
                 $excel->sheet('Reporte de ventas', function ($sheet) use($assiInformation, $date_at) {
                     $sheet->mergeCells('A1:G2');
                     $sheet->setCellValue('A1', "Reporte de asistencia de vendedores");
                     $sheet->cells('A1:G1', function ($cells) {
                         $cells->setAlignment('center');
                         $cells->setValignment('center');
                         $cells->setFontSize(30);
                     });
                     $sheet->mergeCells('A3:G3');
                     if (date_format(date_create($date_at), "d/m/Y") == date_format(date_create(new Carbon()), "d/m/Y")) {
                         $sheet->setCellValue('A3', 'Fecha del día ' . date_format(date_create($date_at), "d/m/Y") . ' a las ' . date_format(date_create(new Carbon()), "H:i"));
                     } else {
                         $sheet->setCellValue('A3', 'Fecha del día ' . date_format(date_create($date_at), "d/m/Y"));
                     }
                     $sheet->cells('A3:G3', function ($cells) {
                         $cells->setAlignment('center');
                         $cells->setValignment('center');
                         $cells->setFontSize(14);
                     });
                     $cantidad = count($assiInformation) + 4;
                     $sheet->setBorder('A4:G' . $cantidad, 'thin');
                     $sheet->setCellValue('A4', "Nombres del Vendedor");
                     $sheet->setCellValue('B4', "Apellidos del Vendedor");
                     $sheet->setCellValue('C4', "Hora de Entrada");
                     $sheet->setCellValue('D4', "Hora de Salida");
                     $sheet->setCellValue('E4', "Situación de Entrada");
                     $sheet->setCellValue('F4', "Situación de Salida");
                     $sheet->setCellValue('G4', "Punto de Venta");
                     //$cells->setAlignment('center');
                     $sheet->cells('A4:G4', function ($cells) {
                         $cells->setFontWeight('bold');
                         $cells->setBackground('#008000');
                         $cells->setFontColor('#FFFFFF');
                         $cells->setAlignment('center');
                         $cells->setValignment('center');
                     });
                     $sheet->cells('A4:G500', function ($cells) {
                         $cells->setAlignment('center');
                         $cells->setValignment('center');
                     });
                     $sheet->setWidth(array('A' => '30', 'B' => '30', 'C' => '30', 'D' => '30', 'E' => '30', 'F' => '30', 'G' => '30'));
                     $sheet->setHeight(array('1' => '20'));
                     $data = $assiInformation;
                     $sheet->fromArray($data, true, 'A5', true, false);
                 });
             })->download('xlsx');
         } else {
             Excel::create('Reporte de ventas starkticket', function ($excel) use($assiInformation, $date_at) {
                 $excel->sheet('Reporte de ventas', function ($sheet) use($assiInformation, $date_at) {
                     $sheet->mergeCells('A1:G2');
                     $sheet->setCellValue('A1', "Reporte de asistencia de vendedores");
                     $sheet->cells('A1:G1', function ($cells) {
                         $cells->setAlignment('center');
                         $cells->setValignment('center');
                         $cells->setFontSize(30);
                     });
                     $sheet->mergeCells('A3:G3');
                     if (date_format(date_create($date_at), "d/m/Y") == date_format(date_create(new Carbon()), "d/m/Y")) {
                         $sheet->setCellValue('A3', 'Fecha del día ' . date_format(date_create($date_at), "d/m/Y") . ' a las ' . date_format(date_create(new Carbon()), "H:i"));
                     } else {
                         $sheet->setCellValue('A3', 'Fecha del día ' . date_format(date_create($date_at), "d/m/Y"));
                     }
                     $sheet->cells('A3:G3', function ($cells) {
                         $cells->setAlignment('center');
                         $cells->setValignment('center');
                         $cells->setFontSize(14);
                     });
                     $cantidad = count($assiInformation) + 4;
                     $sheet->setBorder('A4:G' . $cantidad, 'thin');
                     $sheet->setCellValue('A4', "Nombres del Vendedor");
                     $sheet->setCellValue('B4', "Apellidos del Vendedor");
                     $sheet->setCellValue('C4', "Hora de Entrada");
                     $sheet->setCellValue('D4', "Hora de Salida");
                     $sheet->setCellValue('E4', "Situación de Entrada");
                     $sheet->setCellValue('F4', "Situación de Salida");
                     $sheet->setCellValue('G4', "Total");
                     //$cells->setAlignment('center');
                     $sheet->cells('A4:G4', function ($cells) {
                         $cells->setFontWeight('bold');
                         $cells->setBackground('#008000');
                         $cells->setFontColor('#FFFFFF');
                         $cells->setAlignment('center');
                         $cells->setValignment('center');
                     });
                     $sheet->cells('A4:G500', function ($cells) {
                         $cells->setAlignment('center');
                         $cells->setValignment('center');
                     });
                     $sheet->setWidth(array('A' => '30', 'B' => '30', 'C' => '30', 'D' => '30', 'E' => '30', 'F' => '30', 'G' => '30'));
                     $sheet->setHeight(array('1' => '20'));
                     $data = $assiInformation;
                     $sheet->fromArray($data, true, 'A5', true, false);
                 });
             })->export('pdf');
         }
     }
 }