Exemplo n.º 1
0
 public function attendance()
 {
     // Getting all records from model associates table.
     //        $data = Attendance::all();
     //        $data = Attendance::first();
     $data = Attendance::paginate(15);
     // Returning data on view.
     return view('laporan.attendance', ['data' => $data]);
 }
Exemplo n.º 2
0
 public function getIndex()
 {
     // Getting all records from model associates table.
     //        $data = Attendance::all();
     //        $data = Attendance::first();
     $data = Attendance::paginate(15);
     // Returning data on view.
     return view('planner.index', ['data' => $data]);
     //return view('planner.mycalendar');
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Attendance::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'train_id' => $this->train_id, 'user_id' => $this->user_id, 'day' => $this->day, 'status' => $this->status]);
     return $dataProvider;
 }
Exemplo n.º 4
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Attendance::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'present' => $this->present, 'Student_Module_id' => $this->Student_Module_id, 'date' => $this->date]);
     $query->andFilterWhere(['like', 'notes', $this->notes]);
     return $dataProvider;
 }
 /**
  * 计算评分。
  *
  * 评分:实践(满分100分)理论(满分100分)规则(满分100分) 总评((实践分数+理论分数+规则分数)/3)
  *
  * 考勤:迟到20,早退20,旷课40,请假10
  *
  * 评估:优,90以上,良,60-89,差0-59
  *
  * 评价结果:
  *
  * 1:推荐晋级(80以上)  这种不需要获得活动中的晋级积分 优
  * 
2:实践1年推荐晋级(60-79)需要获得80分晋级积分,满12个月晋级 良
  * 
3:仅限当前级(60-79)无法晋级
  * 
4:通过(60以上)满80分可晋级
  * 
5:未通过(0-59)差
  *
  * @param $practice_score
  * @param $theory_score
  * @param $rule_score
  * @param $train_id
  * @param $user_id
  *
  */
 public function getSource($trainId, $userId, $practiceScore, $theoryScore, $ruleScore)
 {
     if (!empty($practiceScore) && !empty($theoryScore) && !empty($ruleScore)) {
         //成绩总评
         $scoreAppraise = intval(($practiceScore + $theoryScore + $ruleScore) / 3);
         //考勤
         $attendanceList = Attendance::getAllByTrainIdAndUserId($trainId, $userId);
         $attendanceScore = 100;
         foreach ($attendanceList as $key => $val) {
             if ($val['status'] == Attendance::LATER) {
                 $attendanceScore -= Attendance::LATER_SOURCE;
             } elseif ($val['status'] == Attendance::EARLY) {
                 $attendanceScore -= Attendance::EARLY_SOURCE;
             } elseif ($val['status'] == Attendance::ABSENCES) {
                 $attendanceScore -= Attendance::ABSENCES_SOURCE;
             } elseif ($val['status'] == Attendance::LEAVE) {
                 $attendanceScore -= Attendance::LEAVE_SOURCE;
             } else {
                 $attendanceScore == $attendanceScore;
             }
         }
         if ($attendanceScore < 0) {
             $attendanceScore = 1;
         }
         //得到最少的一项评分,用来计算成绩评价结果和判断是否通过
         $performanceSource = min($practiceScore, $theoryScore, $ruleScore);
         //获取评估
         foreach (TrainUsers::$assessRules as $k => $v) {
             if ($attendanceScore > $v['small'] && $attendanceScore <= $v['big']) {
                 //考勤结果
                 $attendanceComment = TrainUsers::$assessList[$k];
             }
             if ($scoreAppraise > $v['small'] && $scoreAppraise <= $v['big']) {
                 //评估总评
                 $commentAppraise = TrainUsers::$assessList[$k];
             }
             if ($practiceScore > $v['small'] && $practiceScore <= $v['big']) {
                 //实践评估
                 $practiceComment = TrainUsers::$assessList[$k];
             }
             if ($theoryScore > $v['small'] && $theoryScore <= $v['big']) {
                 //理论评估
                 $theoryComment = TrainUsers::$assessList[$k];
             }
             if ($ruleScore > $v['small'] && $ruleScore <= $v['big']) {
                 //规则评估
                 $rulesComment = TrainUsers::$assessList[$k];
             }
             //成绩评价结果
             if ($performanceSource > $v['small'] && $performanceSource <= $v['big']) {
                 //成绩评价结果
                 $performance = TrainUsers::$performanceList[$k];
             }
         }
         foreach (TrainUsers::$statusRules as $kk => $vv) {
             if ($performanceSource > $vv['small'] && $performanceSource <= $vv['big']) {
                 $status = $kk;
             }
         }
         $result = ['scoreAppraise' => $scoreAppraise, 'performance' => $performance, 'attendanceComment' => $attendanceComment, 'practiceComment' => $practiceComment, 'theoryComment' => $theoryComment, 'rulesComment' => $rulesComment, 'commentAppraise' => $commentAppraise, 'status' => $status];
     }
     return $result;
 }
 /**
  * Finds the Attendance model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Attendance the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Attendance::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Exemplo n.º 7
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getAttendances()
 {
     return $this->hasMany(Attendance::className(), ['att_clss_id' => 'clss_id']);
 }
Exemplo n.º 8
0
 /**
  * Updates an existing Train model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id
  * @return mixed
  */
 public function actionUpdate($id)
 {
     $model = $this->findModel($id);
     $transaction = Yii::$app->db->beginTransaction();
     if (Yii::$app->request->isPost) {
         $postInfo = Yii::$app->request->post();
         if (!empty($postInfo['Train']['begin_time'])) {
             $postInfo['Train']['code'] = date('Ymd', strtotime($postInfo['Train']['begin_time']));
         }
         if ($model->load($postInfo) && $model->save()) {
             //课程开始
             if ($model->status == Train::DOING) {
                 //获取该课程下已录取的学员
                 $trainUsers = TrainUsers::getApprovedTrainUsersByTrainId($model->id);
                 if (!empty($trainUsers)) {
                     //根据课程id,用户id更新用户状态为正在进行
                     //                        TrainUsers::updateTrainUsersStatusByTrainId(TrainUsers::DOING, $model->id);
                     foreach ($trainUsers as $key => $val) {
                         //创建考勤信息
                         for ($i = strtotime($model->begin_time); $i < strtotime($model->end_time); $i += 86400) {
                             $day = date('Y-m-d H:i:s', $i);
                             $isExist = Attendance::findOne(['train_id' => $model->id, 'user_id' => $val['user_id'], 'day' => $day]);
                             if (empty($isExist)) {
                                 $attendance = ['train_id' => $model->id, 'user_id' => $val['user_id'], 'day' => $day];
                                 Attendance::add($attendance);
                             }
                         }
                     }
                 } else {
                     $transaction->rollBack();
                     throw new ServerErrorHttpException('更新状态失败,原因:该培训课程下没有学员!');
                 }
             }
             $transaction->commit();
             return $this->redirect(['view', 'id' => $model->id]);
         }
     } else {
         return $this->render('update', ['model' => $model]);
     }
 }
Exemplo n.º 9
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;
     }
 }
Exemplo n.º 10
0
 public function attendanceUpdate(AttendanceUpdate $request, $idAttendanceDetail)
 {
     $input = $request->all();
     $attendanceDetail = AttendanceDetail::find($idAttendanceDetail);
     $attendanceDetail->datetime = Carbon::parse($input['horaFin']);
     $attendanceDetail->save();
     $Attendance = Attendance::find($attendanceDetail->attendance_id);
     $Attendance->datetimeend = Carbon::parse($input['horaFin']);
     $salesman = User::find($Attendance->salesman_id);
     $detailsAttendances = AttendanceDetail::where('attendance_id', $attendanceDetail->attendance_id)->get();
     $index = 0;
     $Attendance->save();
     return view('internal.admin.attendanceDetail ', compact('detailsAttendances', 'index', 'salesman', 'Attendance'));
 }
 public function actionTrainView()
 {
     $trainUsersId = \Yii::$app->request->get('trainUsersId');
     if (empty($trainUsersId)) {
         throw new ServerErrorHttpException('查看课程信息失败,原因:参数错误!');
     }
     $levelName = Level::getOneLevelNameById(\Yii::$app->user->identity->level_id);
     $photo = UsersInfo::getPhotoByUserId(\Yii::$app->user->id);
     $messageCount = MessagesUsers::getCountByUserIdAndType(\Yii::$app->user->id);
     $currentTrain = TrainUsers::getTrainByUserId(\Yii::$app->user->id);
     //培训信息
     $trainModel = TrainUsers::getTrainInfoById($trainUsersId);
     if (empty($trainModel)) {
         throw new ServerErrorHttpException('查看课程信息失败,原因:不存在的培训课程!');
     }
     //考勤信息
     $attendanceModel = Attendance::getAllByTrainIdAndUserId($trainModel['train_id'], $trainModel['user_id']);
     //迟到数量
     $laterCount = Attendance::getCount($trainModel['train_id'], $trainModel['user_id'], Attendance::LATER);
     $arlyCount = Attendance::getCount($trainModel['train_id'], $trainModel['user_id'], Attendance::EARLY);
     $absencesCount = Attendance::getCount($trainModel['train_id'], $trainModel['user_id'], Attendance::ABSENCES);
     $leaveCount = Attendance::getCount($trainModel['train_id'], $trainModel['user_id'], Attendance::LEAVE);
     $trainTeachersModel = TrainTeachers::getAllTeachersByTrainId($trainModel['id']);
     $usersModel = TrainUsers::getAllUsersByTrainId($trainModel['id']);
     if (!empty($usersModel)) {
         foreach ($usersModel as $key => $val) {
             $usersModel[$key]['img'] = '';
             for ($i = 1; $i <= $val['score_appraise'] / 20; $i++) {
                 $usersModel[$key]['img'] .= '<img src="/images/user/xx1.jpg" />';
             }
             if ($val['score_appraise'] % 20 > 0) {
                 $usersModel[$key]['img'] .= '<img src="/images/user/xx2.jpg" />';
             }
         }
     }
     $data = ['levelName' => $levelName, 'currentTrain' => $currentTrain, 'trainModel' => $trainModel, 'attendanceModel' => $attendanceModel, 'laterCount' => $laterCount, 'arlyCount' => $arlyCount, 'absencesCount' => $absencesCount, 'leaveCount' => $leaveCount, 'attendanceAppraise' => $trainModel['attendance_appraise'], 'trainTeachersModel' => $trainTeachersModel, 'usersModel' => $usersModel, 'photo' => $photo, 'messageCount' => $messageCount];
     return $this->render('train-view', ['data' => $data]);
 }
Exemplo n.º 12
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');
         }
     }
 }
Exemplo n.º 13
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getAttendances()
 {
     return $this->hasMany(Attendance::className(), ['Student_Module_id' => 'id']);
 }
Exemplo n.º 14
0
 public function actionPie()
 {
     $dataProvider = new ActiveDataProvider(['query' => Attendance::find()->where(['present' => '1'])->all(), 'pagination' => false]);
     return $this->render('pie', ['dataProvider' => $dataProvider]);
 }