
    vgN                        d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ g dZg dZd Z G d de      Z eeej6                  j8                        d        Z G d de      Zy)    N)date)apps)models)m2m_changed	post_save)receiver)ValidationError)gettext)HorillaCompanyManager)Employee)HorillaModel))	requested	Requested)approvedApproved)rejectedRejected))anyAny)pdfPDF)txtTXT)docxDOCX)xlsxXLSX)jpgJPG)pngPNG)jpegJPEGc                     | j                   j                         }|D ]]  }t        j                  j	                  || dd| j
                   i      }d| j
                   |d   _        |d   j                          _ y )NtitlezUpload )employee_iddocument_request_iddefaultsr   )r&   allDocumentobjectsget_or_creater%   save)instance	employeesemployeedocuments       ,/var/www/horilla/horilla_documents/models.pydocument_creater3       s    $$((*I ##11  ((89: 2 

 &hnn%56    c                       e Zd Z ej                  d      Z ej                  e      Z ej                  e	d      Z
 ej                  dd      Z ej                  ddd      Z ed	
      Zd Zy)DocumentRequestd   
max_length
   )choicesr9   T)blanknull   r<   r=   r9   +employee_id__employee_work_info__company_idrelated_company_fieldc                     | j                   S Nr%   selfs    r2   __str__zDocumentRequest.__str__6   s    zzr4   N)__name__
__module____qualname__r   	CharFieldr%   ManyToManyFieldr   r&   FORMATSformatIntegerFieldmax_size	TextFielddescriptionr   r+   rH    r4   r2   r6   r6   ,   sv    F,E(&((2KVg"=F"v""D9H"&""DSIK#KGr4   r6   )senderc                 H    |dk(  rt        |       y |dk(  rt        |       y y )Npost_addpost_remove)r3   )rU   r.   actionkwargss       r2   document_request_m2m_changedr[   :   s'    !	=	 ! 
!r4   c                   >    e Zd Z ej                  d      Z ej                  eej                        Z	 ej                  e
ej                  d      Z ej                  dd      Z ej                  edd	
      Z ej                   ddd      Z ej$                  dd ed            Z ej$                  dd ed            Z ej,                  dd ed            Z ej0                  d ed            Z ed      ZdefdZ fdZ fdZd Z  xZ!S )r*      r8   )	on_deleteT)r^   r=   zemployee/documents)	upload_tor=   r:   r   )r;   r9   defaultr>   r?   z
Issue Date)r=   r<   verbose_namezExpiry Date   zNotify Before)r`   r=   ra   FzIs Digital Asset)r`   ra   r@   rA   returnc                     | j                    S rD   rE   rF   s    r2   rH   zDocument.__str__X   s    **r4   c                 "   t        |   |i | | j                  }t        | j                        dk  rt        dt        d      i      |r| j                  r| j                  j                  }| j                  j                  }|r+|j                  |dz  dz  kD  rt        dt        d      i      |j                  j                  d      d   j                         }|d	k(  ry ||k7  r%t        dt        d
      j                  |      i      y y y )N   r%   z#Title must be at least 3 charactersi   r1   zFile size exceeds the limit.rb   r   zPlease upload {} file only.)supercleanr1   lenr%   r	   _r'   rO   rQ   sizenamesplitlower)rG   argsrZ   filerO   rQ   ext	__class__s          r2   ri   zDocument.clean[   s   t&v&}}tzz?Q!7A.S,T"UVVD,,--44F//88H99x$55)#Q'D%EF  ))//#&q)//1C%#@!A!H!H!PQ   -4r4   c                 x   t        |   |i | | j                  rt        j                  d      rddlm}m} |j                  j                  d      }|j                  j                  | j                  t        j                         |d   dd| j                  | j                  d| j                           y y y )	Nassetr   )AssetAssetCategoryzDigital Asset)asset_category_namezNot-AvailableDIG_ID0)
asset_nameasset_purchase_dateasset_category_idasset_statusasset_purchase_costexpiry_datenotify_beforeasset_tracking_id)rh   r-   is_digital_assetr   is_installedasset.modelsrv   rw   r+   r,   creater%   r   todayr   r   pk)rG   rp   rZ   rv   rw   asset_categoryrs   s         r2   r-   zDocument.saves   s    d%f%    )=!.!6!6!D!D(7 "E " $$#zz(,

&4Q&7!0() $ 0 0"&"4"4(/y&9 % 	 * !r4   c                     t         j                  j                  | j                        }|j                  d      j	                         }|j	                         |z
  }|S )N)r'    )r1   )r*   r+   filterr'   count)rG   total_requestswithout_documentsr   s       r2   upload_documents_countzDocument.upload_documents_count   s^    !))00 $ 8 8 1 
 +1121>DDF$$&)::r4   )"rI   rJ   rK   r   rL   r%   
ForeignKeyr   PROTECTr&   r6   r'   	FileFieldr1   STATUSstatusrR   reject_reason	DateFieldrk   
issue_dater   rP   r   BooleanFieldr   r   r+   strrH   ri   r-   r   __classcell__)rs   s   @r2   r*   r*   C   s+   F,E#&##HGK+&++6>>  v*>TJHVf[QF$F$$4dsKM!!!t4aoVJ"&""DqGWXK'F''1_+=M +v**A&8$9 $KG 0*r4   r*   )osdatetimer   django.appsr   	django.dbr   django.db.models.signalsr   r   django.dispatchr   django.formsr	   django.utils.translationr
   rk   base.horilla_company_managerr   employee.modelsr   horilla.modelsr   r   rN   r3   r6   r&   throughr[   r*   rT   r4   r2   <module>r      s{    	    ; $ ( 1 > $ '

		l  
+o99AAB" C"K| Kr4   