2024-06-20 02:09:49 +08:00
|
|
|
import datetime
|
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
from django import forms
|
|
|
|
from .models import *
|
2024-06-20 02:09:49 +08:00
|
|
|
from ..org_mgnt.models import PrimaryDepartment, CompanyEntity
|
2024-06-07 03:47:15 +08:00
|
|
|
|
|
|
|
|
|
|
|
class ExpenseTypeForm(forms.ModelForm):
|
|
|
|
class Meta:
|
|
|
|
model = ExpenseType
|
|
|
|
fields = '__all__'
|
|
|
|
widgets = {
|
2024-06-20 02:09:49 +08:00
|
|
|
'expense_type': forms.DateInput(attrs={'class': 'form-control'}),
|
2024-06-07 03:47:15 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class ExpenseDetailForm(forms.ModelForm):
|
|
|
|
class Meta:
|
|
|
|
model = ExpenseDetail
|
|
|
|
fields = '__all__'
|
|
|
|
widgets = {
|
2024-06-20 02:09:49 +08:00
|
|
|
'expense_detail': forms.DateInput(attrs={'class': 'form-control'}),
|
2024-06-07 03:47:15 +08:00
|
|
|
'type_id': forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class GroupAnnualBudgetForm(forms.ModelForm):
|
2024-06-20 02:09:49 +08:00
|
|
|
current_year = datetime.datetime.now().year
|
|
|
|
|
|
|
|
primary_department = forms.ChoiceField(
|
2024-06-22 22:42:19 +08:00
|
|
|
choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in
|
|
|
|
PrimaryDepartment.objects.all()],
|
2024-06-20 02:09:49 +08:00
|
|
|
widget=forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
label="一级部门"
|
|
|
|
)
|
|
|
|
year = forms.ChoiceField(
|
2024-06-20 17:11:34 +08:00
|
|
|
choices=[('', '---------')] + [(year, year) for year in range(current_year - 1, current_year + 2)],
|
|
|
|
widget=forms.Select(attrs={'class': 'form-control'}),
|
2024-06-20 02:09:49 +08:00
|
|
|
label="年份",
|
|
|
|
required=False
|
|
|
|
)
|
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
class Meta:
|
|
|
|
model = GroupAnnualBudget
|
|
|
|
fields = '__all__'
|
|
|
|
widgets = {
|
|
|
|
'primary_department': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'year': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'expense_type': forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
'expense_detail': forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
'amount': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
}
|
|
|
|
|
2024-06-20 02:09:49 +08:00
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
super(GroupAnnualBudgetForm, self).__init__(*args, **kwargs)
|
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
|
|
|
|
class LaborCostDetailForm(forms.ModelForm):
|
2024-06-20 02:09:49 +08:00
|
|
|
primary_department = forms.ChoiceField(
|
2024-06-20 17:11:34 +08:00
|
|
|
choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in
|
|
|
|
PrimaryDepartment.objects.all()],
|
2024-06-20 02:09:49 +08:00
|
|
|
widget=forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
label="一级部门"
|
|
|
|
)
|
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
class Meta:
|
|
|
|
model = LaborCostDetail
|
|
|
|
fields = '__all__'
|
|
|
|
widgets = {
|
|
|
|
'name': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'attendance_days': forms.NumberInput(attrs={'class': 'form-control'}),
|
2024-06-20 02:09:49 +08:00
|
|
|
'secondary_department': forms.Select(attrs={'class': 'form-control'}),
|
2024-06-07 03:47:15 +08:00
|
|
|
'gross_salary': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'attendance_reward': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'lunch_allowance': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'other_monetary_benefits': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'social_security_deduction': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'housing_fund_deduction': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'net_salary': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'employer_social_security': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'employer_housing_fund': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
}
|
|
|
|
|
2024-06-20 02:09:49 +08:00
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
super(LaborCostDetailForm, self).__init__(*args, **kwargs)
|
|
|
|
self.fields['year_month'].widget = forms.DateInput(attrs={'type': 'month', 'class': 'form-control'})
|
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
|
|
|
|
class ReimbursementDetailForm(forms.ModelForm):
|
2024-06-20 17:11:34 +08:00
|
|
|
primary_department = forms.ChoiceField(
|
2024-06-22 22:42:19 +08:00
|
|
|
choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in
|
|
|
|
PrimaryDepartment.objects.all()],
|
2024-06-20 17:11:34 +08:00
|
|
|
widget=forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
label="一级部门"
|
|
|
|
)
|
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
class Meta:
|
|
|
|
model = ReimbursementDetail
|
|
|
|
fields = '__all__'
|
|
|
|
widgets = {
|
|
|
|
'name': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'is_project_based': forms.Select(attrs={'class': 'form-control'}),
|
2024-06-20 17:11:34 +08:00
|
|
|
'project_name': forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
'expense_type': forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
'expense_detail': forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
'expense_description': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'expense_date': forms.DateInput(attrs={'class': 'form-control', }),
|
2024-06-07 03:47:15 +08:00
|
|
|
'amount': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
}
|
|
|
|
|
2024-06-20 17:11:34 +08:00
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
super(ReimbursementDetailForm, self).__init__(*args, **kwargs)
|
|
|
|
self.fields['year_month'].widget = forms.DateInput(attrs={'type': 'month', 'class': 'form-control'})
|
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
|
|
|
|
class BonusCategoryForm(forms.ModelForm):
|
|
|
|
class Meta:
|
|
|
|
model = BonusCategory
|
|
|
|
fields = '__all__'
|
|
|
|
widgets = {
|
|
|
|
'category_name': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'description': forms.Textarea(attrs={'class': 'form-control', 'rows': 3}),
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class BonusAllocationForm(forms.ModelForm):
|
2024-06-20 02:09:49 +08:00
|
|
|
primary_department = forms.ChoiceField(
|
2024-06-20 17:11:34 +08:00
|
|
|
choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in
|
|
|
|
PrimaryDepartment.objects.all()],
|
2024-06-20 02:09:49 +08:00
|
|
|
widget=forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
label="一级部门"
|
|
|
|
)
|
|
|
|
|
|
|
|
bonus_category = forms.ChoiceField(
|
|
|
|
choices=[('', '---------')] + [(p.category_name, p.category_name) for p in BonusCategory.objects.all()],
|
|
|
|
widget=forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
label="奖金类别"
|
|
|
|
)
|
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
class Meta:
|
|
|
|
model = BonusAllocation
|
|
|
|
fields = '__all__'
|
|
|
|
widgets = {
|
2024-06-20 02:09:49 +08:00
|
|
|
'secondary_department': forms.Select(attrs={'class': 'form-control'}),
|
2024-06-07 03:47:15 +08:00
|
|
|
'name': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'award_amount': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
}
|
|
|
|
|
2024-06-20 02:09:49 +08:00
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
super(BonusAllocationForm, self).__init__(*args, **kwargs)
|
|
|
|
self.fields['year_month'].widget = forms.DateInput(attrs={'type': 'month', 'class': 'form-control'})
|
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
|
|
|
|
class TaxRecordForm(forms.ModelForm):
|
2024-06-20 02:09:49 +08:00
|
|
|
current_year = datetime.datetime.now().year
|
|
|
|
|
|
|
|
tax_entity = forms.ChoiceField(
|
|
|
|
choices=[('', '---------')] + [(dept.company_name, dept.company_name) for dept in CompanyEntity.objects.all()],
|
|
|
|
widget=forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
label="纳税主体"
|
|
|
|
)
|
|
|
|
|
|
|
|
year = forms.ChoiceField(
|
2024-06-20 17:11:34 +08:00
|
|
|
choices=[('', '---------')] + [(year, year) for year in range(current_year - 1, current_year + 2)],
|
|
|
|
widget=forms.Select(attrs={'class': 'form-control'}),
|
2024-06-20 02:09:49 +08:00
|
|
|
label="年份",
|
|
|
|
required=False
|
|
|
|
)
|
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
class Meta:
|
|
|
|
model = TaxRecord
|
|
|
|
fields = '__all__'
|
|
|
|
widgets = {
|
|
|
|
'tax_type': forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
'tax_period': forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
'tax_date': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}),
|
|
|
|
'tax_amount': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'annual_cumulative': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'note': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
}
|
|
|
|
|
2024-06-20 02:09:49 +08:00
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
super(TaxRecordForm, self).__init__(*args, **kwargs)
|
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
|
|
|
|
class ElectronicInvoiceLedgerForm(forms.ModelForm):
|
2024-06-20 02:09:49 +08:00
|
|
|
primary_department = forms.ChoiceField(
|
2024-06-22 22:42:19 +08:00
|
|
|
choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in
|
|
|
|
PrimaryDepartment.objects.all()],
|
2024-06-20 02:09:49 +08:00
|
|
|
widget=forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
label="一级部门"
|
|
|
|
)
|
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
class Meta:
|
|
|
|
model = ElectronicInvoiceLedger
|
|
|
|
fields = '__all__'
|
|
|
|
widgets = {
|
|
|
|
'expense_party': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'submission_date': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}),
|
|
|
|
'invoice_code': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'invoice_number': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'invoice_date': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}),
|
|
|
|
'buyer_name': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'buyer_tax_number': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'seller_name': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'seller_tax_number': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'goods_or_services_name': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'tax_rate': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'total_amount_including_tax': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
}
|
|
|
|
|
2024-06-20 02:09:49 +08:00
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
super(ElectronicInvoiceLedgerForm, self).__init__(*args, **kwargs)
|
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
|
|
|
|
class InvoiceRecordForm(forms.ModelForm):
|
2024-06-22 22:42:19 +08:00
|
|
|
billing_entity = forms.ChoiceField(
|
|
|
|
choices=[('', '---------')] + [(dept.company_name, dept.company_name) for dept in CompanyEntity.objects.all()],
|
|
|
|
widget=forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
label="开票主体")
|
2024-06-20 17:11:34 +08:00
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
class Meta:
|
|
|
|
model = InvoiceRecord
|
|
|
|
fields = '__all__'
|
|
|
|
widgets = {
|
2024-06-20 17:11:34 +08:00
|
|
|
'project_name': forms.Select(attrs={'class': 'form-control'}),
|
2024-06-07 03:47:15 +08:00
|
|
|
'primary_department': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'project_manager': forms.TextInput(attrs={'class': 'form-control'}),
|
2024-06-20 23:55:07 +08:00
|
|
|
'nature': forms.TextInput(attrs={'class': 'form-control'}),
|
2024-06-07 03:47:15 +08:00
|
|
|
'billing_entity': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'invoice_number': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'purchase_info': forms.Textarea(attrs={'class': 'form-control'}),
|
|
|
|
'invoice_date': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}),
|
|
|
|
'invoice_content': forms.Textarea(attrs={'class': 'form-control'}),
|
|
|
|
'total_amount': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'tax_rate': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'amount_excluding_tax': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'tax_amount': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
'invoice_type': forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class RepaymentRecordForm(forms.ModelForm):
|
2024-06-20 17:11:34 +08:00
|
|
|
primary_department = forms.ChoiceField(
|
2024-06-22 22:42:19 +08:00
|
|
|
choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in
|
|
|
|
PrimaryDepartment.objects.all()],
|
2024-06-20 17:11:34 +08:00
|
|
|
widget=forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
label="一级部门"
|
|
|
|
)
|
|
|
|
|
2024-06-07 03:47:15 +08:00
|
|
|
class Meta:
|
|
|
|
model = RepaymentRecord
|
|
|
|
fields = '__all__'
|
|
|
|
widgets = {
|
2024-06-20 17:11:34 +08:00
|
|
|
'project_name': forms.Select(attrs={'class': 'form-control'}),
|
2024-06-07 03:47:15 +08:00
|
|
|
'project_manager': forms.TextInput(attrs={'class': 'form-control'}),
|
|
|
|
'invoice': forms.Select(attrs={'class': 'form-control'}),
|
|
|
|
'repayment_amount': forms.NumberInput(attrs={'class': 'form-control'}),
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class EmployeeCommissionForm(forms.ModelForm):
|
|
|
|
class Meta:
|
|
|
|
model = EmployeeCommission
|
|
|
|
fields = '__all__'
|
2024-06-13 00:12:17 +08:00
|
|
|
|
|
|
|
|
|
|
|
class ProjectCommissionForm(forms.ModelForm):
|
|
|
|
class Meta:
|
|
|
|
model = ProjectCommission
|
|
|
|
fields = '__all__'
|
2024-06-07 03:47:15 +08:00
|
|
|
widgets = {
|
|
|
|
'year_month': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}),
|
|
|
|
}
|
2024-06-13 00:12:17 +08:00
|
|
|
|
|
|
|
|
|
|
|
class EmployeeCommissionDetailForm(forms.ModelForm):
|
|
|
|
class Meta:
|
|
|
|
model = EmployeeCommissionDetail
|
|
|
|
fields = [
|
|
|
|
'year',
|
|
|
|
'performance_score',
|
|
|
|
'total_commission',
|
|
|
|
'amount_paid',
|
|
|
|
'accrued_amount',
|
|
|
|
'back_pay_amount',
|
|
|
|
'deduction_amount'
|
|
|
|
]
|