o
    )ht                     @   s   d dl mZ d dlmZ d dlmZ d dlmZ G dd dejZ	G dd dejZ
eeed	d
d Zeeed	dd ZdS )    )models)User)	post_save)receiverc                   @   sl   e Zd ZejddZejddZejddZ	ejdddZ
ejddZejddZG d	d
 d
Zdd ZdS )Companyd   )
max_lengthT)blank   )r   r	   )auto_now_add)auto_nowc                   @      e Zd ZdZdZdS )zCompany.Metar   	CompaniesN__name__
__module____qualname__verbose_nameverbose_name_plural r   r   &/var/www/html/wtlms/accounts/models.pyMeta       r   c                 C   s   | j S N)nameselfr   r   r   __str__   s   zCompany.__str__N)r   r   r   r   	CharFieldr   	TextFieldaddress
EmailFieldcontact_emailcontact_phoneDateTimeField
created_at
updated_atr   r   r   r   r   r   r      s    r   c                   @   s   e Zd Zg dZejeejdZej	e
ejddZejdeddZejdddd	Zejd
dddZejddZejddZejddddZG dd dZdd Zdd ZdS )Employee))ADMINAdministrator)EMPr'   )HRz
HR Manager)REG	Registrar)FINFinance)	on_deleteT)r0   null   r*   )r   choicesdefaultzprofile_pictures/)	upload_tor	   r1   
      r   )
max_digitsdecimal_placesr4      )r4   r   )r   r	   r1   c                   @   r   )zEmployee.Metar'   	EmployeesNr   r   r   r   r   r   '   r   r   c                 C   s   | j   d|   dS )Nz ())userget_full_nameget_role_displayr   r   r   r   r   +   s   zEmployee.__str__c                 C   s   | j | j S r   )annual_leave_daysaccumulated_leave_daysr   r   r   r   get_available_leave_days.   s   z!Employee.get_available_leave_daysN)r   r   r   ROLE_CHOICESr   OneToOneFieldr   CASCADEr=   
ForeignKeyr   PROTECTcompanyr   role
ImageFieldprofile_pictureDecimalField	basic_payPositiveIntegerFieldr@   rA   
departmentr   r   rB   r   r   r   r   r'      s    r'   )senderc                 K   sn   |r5|j r,tjjd|jdddd\}}tjj||ddddd	 d
|_|jdgd d S tjj|d d S d S )NICTAZzICTAZ House, Lusakaz+260 211 123456)r"   r    r#   )r   defaultsr(   r   r:   )r=   rH   rI   rM   r@   rA   Tis_staff)update_fieldsr=   )	is_superuserr   objectsget_or_createemailr'   createrS   save)rP   instancecreatedkwargsdefault_company_r   r   r   create_employee1   s*   
		ra   c                 K   s@   t |ds|jrtjj|ddddd d S tjj|d d S d S )Nemployeer+   r   r:   )r=   rI   rM   r@   rA   rU   )hasattrrV   r'   rW   rZ   )rP   r\   r^   r   r   r   save_employeeO   s   

rd   N)	django.dbr   django.contrib.auth.modelsr   django.db.models.signalsr   django.dispatchr   Modelr   r'   ra   rd   r   r   r   r   <module>   s    


