403Webshell
Server IP : 65.108.144.40  /  Your IP : 216.73.217.165
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux ubuntu-8gb-hel1-1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64
User : dev ( 1000)
PHP Version : 8.2.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/erp/payroll/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/erp/payroll/__pycache__/scheduler.cpython-310.pyc
o

hͦhF�@s�dZddlZddlZddlmZmZddlmZddlm	Z	ddl
mZmZddl
mZdd	lmZmZd
d�Zdd
�Zdd�Zdd�Zedd�dD��sfe�Zejeddd�ejeddd�e��dSdS)z?
scheduler.py

This module is used to register scheduled tasks
�N)�date�	timedelta)�BackgroundScheduler)�
relativedelta)�calculate_employer_contribution�save_payslip)�payroll_calculation�)�Contract�PayslipcCs tjjdt��d�jdd�dS)z
    Finds all active contracts whose end date is earlier than the current date
    and updates their status to "expired".
    �active)�contract_status�contract_end_date__lt�expired)r
N)r
�objects�filterr�today�update�rr�!/var/www/erp/payroll/scheduler.py�expire_contracts��rcCs�ddlm}|}|j��}|dkr||jjdd�B}|r*|D]}||jj|d�B}q|jddd�}|��}|td	d
�}|td	d�}|D]�}	tjj|	||d��	�}
|
rUqEt
jj|	dd
��	�}||jkreqE||jkrm|j}t|	||�}|
|d<i}
|	|
d<|d|
d<|d|
d<d|
d<|d|
d<|d|
d<|d|
d<|d|
d<|d|
d<t
�|d�|
d<t|
�|d|
d<tdi|
��|d<qEdS) z#Generate payslip for previous monthr)�EmployeeT)�&employee_work_info__company_id__isnull)�employee_work_info__company_idFr)�contract_set__isnull�contract_set__contract_statusr	)�months��days)�employee_id�
start_date�end_date)rr
�payslip�employeer r!�draft�status�
contract_wage�	basic_pay�	gross_pay�total_deductions�	deduction�net_pay�	json_data�pay_data�installments�instanceNr)�employee.modelsrr�noner�distinctrrr�firstr
�contract_start_dater�json�loadsrr)r�	companies�allr�	employees�company�active_employeesr r!r#r"�contract�payslip_data�datarrr�generate_payslipsh
�
������

�r?cCs|tdd�}|j|jkS)Nr	r)r�month)r�next_dayrrr�is_last_day_of_month[srBc
CsZddlm}ddlm}|jjdd���r�t��}|j	}|t
dd�jdd�t
dd�}|jjdd�}g}d	d
�|D�}|D]3}|j}	|	dkrRt
|�rQ|�|j�q>t|	�}	|	|j	krg||j	krg|�|j�q>|	|krq|�|j�q>tt|��}|r�d|vr�|j��}
g}|
D]}||vr�|�|�q�tt��|dd
�dStt��|dd
�dSdSdS)z;
    Generating payslips for active contract employees
    r)�Companyr	)�PayslipAutoGenerateT)�
auto_generater)�daycSsg|]}|j�qSr)�
company_id)�.0�autorrr�
<listcomp>osz)auto_payslip_generate.<locals>.<listcomp>zlast dayN)rr7r8F)�base.modelsrC�
models.modelsrDrr�existsrrrFr�replace�generate_dayrB�appendrG�int�list�setr8r?)
rCrDr�	day_today�last_day�
auto_payslipsr7�auto_companiesrIrO�company_all�generate_companiesr:rrr�auto_payslip_generate`sH ��

�

��rZccs�|]}|tjvVqdS)N)�sys�argv)rH�cmdrrr�	<genexpr>�s
��
�r^)�makemigrations�migrate�compilemessages�flush�shell�interval�)�hours�)�__doc__r5r[�datetimerr�!apscheduler.schedulers.backgroundr�dateutil.relativedeltar�payroll.methods.methodsrr�payroll.views.component_viewsrrLr
rrr?rBrZ�any�	scheduler�add_job�startrrrr�<module>s*<-��

Youez - 2016 - github.com/yon3zu
LinuXploit