/** * 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; } }
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'); } } }