
    ygeH                     V    d dl Zd dlmZmZ d dlZd dlZ G d dej                        Z	y)    N)
migrationsmodelsc            /          e Zd ZdZg Z ej                  dd ej                  dddd      fd ej                  ddd	      fd
 ej                  dd      fd ej                  ej                  j                  j                  gd      fd ej                  dd      fd ej                   ddd      fd ej                  dd      fd ej                   ddd      fd ej"                  dddej                  j                  j$                  gd       fd! ej"                  ddej                  j                  j$                  gd"#      fd$ ej"                  ddej                  j                  j$                  gd%#      fd& ej                  dd'      fd( ej                  dd)      fd* ej&                  dd+      fd, ej&                  ddd-.      fd/ ej&                  d01      fd2 ej                  dd3      fd4 ej                  dd5      fd6 ej                  dd7      fd8 ej(                  d9d:      fd; ej"                  g d<d=d>d?      fd@ ej                  d1      fdA ej*                  ddB      fgg dCdDdEgdFG       ej                  dHd ej                  dddd      fd ej                  ddd	      fd
 ej                  dd      fd ej                  dej                  j                  j                  gdIJ      fdK ej                  dL      fdM ej                  ddN      fdO ej                   dPQ      fdR ej                  ddS      fdT ej                  dL      fdU ej                   ddV      fg
dWg dXiG       ej                  dYd ej                  dddd      fd ej                  ddd	      fd
 ej                  dd      fdZ ej                  d1      fd[ ej                  dd\d]^      fgd_diG       ej                  d`d ej                  dddd      fd
 ej                  dd      fda ej"                  dbdcgdddef      fd ej                  ddg      fgdWdhgiG       ej                  did ej                  dddd      fd ej                  ddd	      fd
 ej                  dd      fdj ej"                  ddkl      fdm ej,                  d01      fdn ej"                  dodddpq      fdr ej"                  dddej                  j                  j$                  gd       fds ej"                  dddej                  j                  j$                  gdt       fdu ej"                  dddej                  j                  j$                  gdv#      fdw ej&                  d0ddxy      fdz ej&                  d0dd{y      fd, ej&                  d0dd|y      fgdWd}d~giG       ej                  dd ej                  dddd      fd ej                  ddd	      fd
 ej                  dd      fd ej(                  d9dd      fgd_diG       ej                  dd ej                  dddd      fd ej                  ddd	      fd
 ej                  dd      fd ej.                  d      fgd_diG       ej                  dd ej                  dddd      fd ej                  ddd	      fd
 ej                  dd      fd ej"                  dej                  j                  j$                  gd      fd ej"                  dddej                  j                  j$                  g      fd ej"                  dddej                  j                  j$                  g      fd ej                  dd      fgd_diG       ej                  dd ej                  dddd      fd ej                  ddd	      fd
 ej                  dd      fd ej"                  d      fgd_diG       ej                  dd ej                  dddd      fd ej                  ddd	      fd
 ej                  dd      fd ej"                  ddej                  j                  j0                  gd#      fd ej&                         fd ej                  dd      fd ej                  dd      fd ej                  d1      fgd_diG       ej                  dd ej2                  dddd      fd ej                  dddd      fd
 ej                  dd      fd ej"                  dddd      fd ej(                  dL      fd ej                  dd      fd ej                  ej                  j                  j                  gd      fd ej                  dd      fd ej                   ddd      fd ej                  dd      fd ej                   ddd      fd ej"                  dddej                  j                  j$                  gd       fd! ej"                  ddej                  j                  j$                  gd"#      fd$ ej"                  ddej                  j                  j$                  gd%#      fd& ej                  dd'      fd( ej                  dd)      fd* ej&                  dd+      fd, ej&                  ddd-.      fd/ ej&                  d01      fd2 ej                  dd3      fd4 ej                  dd5      fd6 ej                  dd7      fd8 ej(                  d9d:      fd; ej"                  g d<d=d>d?      fd@ ej                  d1      fdA ej*                  ddB      fd ej4                  dd      fd ej                  d      fd ej"                  dd:      fd ej"                  g dd      fgdddddej                  j8                  ej:                  f       ej                  dd ej                  dddd      fd ej                  ddd	      fd
 ej                  dd      fd ej<                  dd      fd ej                  d1      fd ej<                  dd      fgdWdgiG       ej                  dd ej                  dddd      fd ej"                  ddd      fd ej"                  g dddë      fd ej                  dd+      fd ej"                  ddddej                  j                  j$                  gƫ      fd ej"                  ddddej                  j                  j$                  gƫ      fd* ej&                  dd0dȫ      fd ej&                  dd0dȫ      fd ej(                  d9      fd ej"                  ddd      fd ej                  d1      fd ej                  d1      fd ej<                  d01      fd ej                  dd+      fgѫ       ej                  dd ej>                  de jB                  j                  jD                  jF                  ddddԬի      fgd_did֬      gZ$y)	MigrationT
AttendanceidFID)auto_createdprimary_key	serializeverbose_name
created_atz
Created At)auto_now_addnullr   	is_activez	Is Active)defaultr   attendance_datezAttendance date)
validatorsr   attendance_clock_in_datezCheck-In Date)r   r   attendance_clock_inzFirst Check-In TimezCheck-In)	help_textr   r   attendance_clock_out_datezCheck-Out Dateattendance_clock_outzLast Check-Out Timez	Check-Outattendance_worked_hourz00:00
   zWorked Hours)r   
max_lengthr   r   r   minimum_hourzMinimum hour)r   r   r   r   attendance_overtimeOvertimeattendance_overtime_approvezOvertime approvedattendance_validatedzAttendance validatedat_work_second)blankr   overtime_secondzOvertime In Second)r#   r   r   approved_overtime_secondr   )r   is_validate_requestzIs validate requestis_bulk_request)r   editableis_validate_request_approvedzIs validate request approvedrequest_description   )r   r   request_type))create_requestzCreate Request)update_requestzUpdate Request)revalidate_requestzRe-validate Requestr.      )choicesr   r   r   
is_holidayrequested_data)r(   r   )-attendance_date employee_id__employee_first_namer   )change_validateattendancezValidate Attendance)change_approveovertimezChange Approve Overtime)orderingpermissions)namefieldsoptionsAttendanceActivityzAttendance Date)r   r   r   in_datetime)r   clock_in_datezIn Dateclock_inzCheck In)r   clock_out_datezOut Dateout_datetime	clock_outz	Check Outr8   )r4   r5   r@   AttendanceGeneralSettingtime_runnerenable_check_inzfEnabling this feature allows employees to record their attendance using the Check-In/Check-Out button.zEnable Check in/Check out)r   r   r   abstractAttendanceLateComeEarlyOuttype)	late_comez	Late Come)	early_outz	Early Out   Type)r1   r   r   )r   r   z-attendance_id__attendance_dateAttendanceOverTimemonthMonth)r   r   month_sequenceyear2025Year)r   r   r   r   worked_hourspending_hourszPending HoursovertimezOvertime Hourshour_account_secondzWorked Seconds)r   r   r   hour_pending_secondzPending SecondszOvertime Secondsz-yearz-month_sequenceAttendanceRequestCommentcommentComment)r   r   r   AttendanceRequestFilefilezattendance/request_files)	upload_toAttendanceValidationConditionvalidation_at_workzWorked Hours Auto Approve Till)r   r   r   minimum_overtime_to_approve)r#   r   r   r   overtime_cutoffauto_approve_otzAuto Approve OTBatchAttendancetitle   )r   	GraceTimeallowed_timez00:00:00zAllowed timeallowed_time_in_secsallowed_clock_inz1Allcocate this grace time for Check-In Attendance)r   r   allowed_clock_outz2Allcocate this grace time for Check-Out Attendance
is_defaultHistoricalAttendance)r
   r#   db_indexr   )r#   r(   r   r   history_title)r#   r   r   history_descriptionhistory_highlight)r   r   
history_id)r   r   history_date)ro   history_change_reasond   history_type))+Created)~Changed)-Deleted   )r1   r   zhistorical attendancezhistorical attendances)z-history_datez-history_id)rt   rs   )r   verbose_name_pluralr8   get_latest_by)r:   r;   r<   basesPenaltyAccountminus_leavesg        deduct_from_carry_forwardpenalty_amountz-created_atWorkRecordsrecord_name   work_record_type))FDPPresent)HDPzHalf Day Present)ABSAbsent)HDzHoliday/Company Leave)CONFConflict)DFTDraft   )r1   r   r   dateat_work)r#   r   r   r   r   min_hour)r#   r   r   min_hour_secondnotemessage   is_attendance_recordis_leave_recordday_percentagelast_update)r:   r;   OverrideAttendancesattendance_ptrattendance.attendance)r
   	on_deleteparent_linkr   r   to)r   N)%__name__
__module____qualname__initialdependenciesr   CreateModelr   BigAutoFieldDateTimeFieldBooleanField	DateField
attendancemethodsutilsattendance_date_validate	TimeField	CharFieldvalidate_time_formatIntegerField	TextField	JSONFieldPositiveSmallIntegerField	FileFieldvalidate_hh_mm_ss_formatBigIntegerField	AutoFieldsimple_historyHistoricalChangesModel
FloatFieldOneToOneFielddjangodbdeletionCASCADE
operations     6/var/www/horilla/attendance/migrations/0001_initial.pyr   r   	   s   GL 	
*v**$Z_nrst3v33D_klm1f11$[YZ"$4F$4$4ASASAYAYArAr@s  CT  %U  V+-=V-=-=4Ve-fg&(8(8(8CX_cr|(}~,.>f.>.>DWg.hi')9)9)9DY`ds~)  A)+;6+;+;GXZaes}  tF  tF  tL  tL  ta  ta  sb  q  ,@  A!1!1!1'b^h^p^p^v^v  _L  _L  ^M  \j  "k  l&(8(8(8UWeoewewe}e}  fS  fS  eT  cm  )n  o.0C0C0CE`s0tu')<)<)<UYo)pq!#66#6#6T#MN"$7F$7$7d\p$qr+-@V-@-@-KL&(;(;(;EXm(no"$7F$7$7PU$VW/1D1D1DUa  2A  B&(8(8(8Cd(ST!1!1!1  ;v  @P  ]_  fj  "k  l2v225AB!#36#3#3U#NO/4 l T  WL   M7	
@ 	
%*v**$Z_nrst3v33D_klm1f11$[YZ"$4F$4$4$JL^L^LdLdL}L}K~  N_  %`  a 4 4 4$ ?@ "2&"2"29"UV-V--:FG!#36#3#3J#WX!5!5!54!@A.f..D{ST `	
$ 	
+*v**$Z_nrst3v33D_klm1f11$[YZ 3 3 3D AB"$7F$7$7  Qy  Hc  %d  e E	
 	
-*v**$Z_nrst1f11$[YZ)))3MOi2jwy  IO  P  Q3v33DQR	 >?	
 	
%*v**$Z_nrst3v33D_klm1f11$[YZ*&**bwOP!#C6#C#CA#NO)))&Rdaghi!1!1!1'bW[isi{i{  jB  jB  jW  jW  iX  gu  "v  w "2&"2"27rX\jtj|j|  kC  kC  kX  kX  jY  hw  #x  y-V--g"ZdZlZlZrZr  [H  [H  ZI  Xh  i  j&(;(;(;AD_o(pq&(;(;(;AD_p(qr"$7F$7$7[m$no W&78!	
( 	
+*v**$Z_nrst3v33D_klm1f11$[YZ,F,,$U^_`	 E	
 	
(*v**$Z_nrst3v33D_klm1f11$[YZ)))4NOP	 E	
 	
0*v**$Z_nrst3v33D_klm1f11$[YZ%'7v'7'72S]SeSeSkSk  TA  TA  SB  Qq  (r  s.0@0@0@tXZaes}  tF  tF  tL  tL  ta  ta  sb  1c  d"$4F$4$44BUYgqgygygg  hU  hU  gV  %W  X"$7F$7$7Te$fg E	
 	
"*v**$Z_nrst3v33D_klm1f11$[YZ*&**c:;	 E	
 	
*v**$Z_nrst3v33D_klm1f11$[YZ!1!1!1*QSakasasayay  bS  bS  aT  cq  "r  s')<)<)<)>?#%8V%8%8  RE  &F  G$&9f&9&9%  TH  'I  J2v225AB	 E	
  	
'-v--4tVZimno3v33$UYhtuv1f11$[YZ "2&"2"2"SW"XY&(8(8(8d(CD$&9f&9&9%d&ST"$4F$4$4ASASAYAYArAr@s  CT  %U  V+-=V-=-=4Ve-fg&(8(8(8CX_cr|(}~,.>f.>.>DWg.hi')9)9)9DY`ds~)  A)+;6+;+;GXZaes}  tF  tF  tL  tL  ta  ta  sb  q  ,@  A!1!1!1'b^h^p^p^v^v  _L  _L  ^M  \j  "k  l&(8(8(8UWeoewewe}e}  fS  fS  eT  cm  )n  o.0C0C0CE`s0tu')<)<)<UYo)pq!#66#6#6T#MN"$7F$7$7d\p$qr+-@V-@-@-KL&(;(;(;EXm(no"$7F$7$7PU$VW/1D1D1DUa  2A  B&(8(8(8Cd(ST!1!1!1  ;v  @P  ]_  fj  "k  l2v225AB!#36#3#3U#NO/v//DERS!5!5!5t!DE(*:&*:*:cPT*UV!1!1!1:p}~!  A=B !8'?<!?	 "((::FLLIQ)	
T 	
!*v**$Z_nrst3v33D_klm1f11$[YZ!2!2!23T!JK,.Af.A.A%.PQ!#46#4#4St#LM ]O	
 	
*v**$Z_nrst 0 0 0tRV WX#%5V%5%5  ?L  YZ  ae  &f  g)))4@A,F,,4UV]aoy  pB  pB  pH  pH  p]  p]  o^  _  `-V--D'VW^bpz  qC  qC  qI  qI  q^  q^  p_  `  a!#66#6#6T1SW#XY"$7F$7$7dATX$YZ)))S9:,F,,4BTRS')<)<)<U)KL"$7F$7$7$FG!#46#4#4Q#?@ 4 4 44d KL	
& 	
&!#76#7#7TU[U^U^UeUeUnUnUvUv  EI  W[  gl  qH  $I  J E -		
]xJr   r   )
attendance.methods.utilsr   	django.dbr   r   django.db.models.deletionr   simple_history.modelsr   r   r   r   r   <module>r      s'      (   
$$ r   