XH_Digital_Management/application/fac_mgnt/forms.py

299 lines
13 KiB
Python

import datetime
from django import forms
from .models import *
from ..org_mgnt.models import PrimaryDepartment, CompanyEntity
class ExpenseTypeForm(forms.ModelForm):
class Meta:
model = ExpenseType
fields = '__all__'
widgets = {
'expense_type': forms.DateInput(attrs={'class': 'form-control'}),
}
class ExpenseDetailForm(forms.ModelForm):
class Meta:
model = ExpenseDetail
fields = '__all__'
widgets = {
'expense_detail': forms.DateInput(attrs={'class': 'form-control'}),
'type_id': forms.Select(attrs={'class': 'form-control'}),
}
class GroupAnnualBudgetForm(forms.ModelForm):
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'}),
}
def __init__(self, *args, **kwargs):
super(GroupAnnualBudgetForm, self).__init__(*args, **kwargs)
for field_name in self.fields:
if field_name not in ['primary_department', 'year']:
self.fields[field_name].required = False
self.fields['primary_department'] = forms.ChoiceField(
choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in PrimaryDepartment.objects.all()],
widget=forms.Select(attrs={'class': 'form-control'}),
label="一级部门")
class LaborCostDetailForm(forms.ModelForm):
class Meta:
model = LaborCostDetail
fields = '__all__'
widgets = {
'name': forms.TextInput(attrs={'class': 'form-control'}),
'attendance_days': forms.NumberInput(attrs={'class': 'form-control'}),
'secondary_department': forms.Select(attrs={'class': 'form-control'}),
'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'}),
}
def __init__(self, *args, **kwargs):
super(LaborCostDetailForm, self).__init__(*args, **kwargs)
self.fields['year_month'].widget = forms.DateInput(attrs={'type': 'month', 'class': 'form-control'})
self.fields['primary_department'] = forms.ChoiceField(
choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in PrimaryDepartment.objects.all()],
widget=forms.Select(attrs={'class': 'form-control'}),
label="一级部门")
for field_name in self.fields:
if field_name not in ['primary_department', 'name', 'year_month']:
self.fields[field_name].required = False
class ReimbursementDetailForm(forms.ModelForm):
class Meta:
model = ReimbursementDetail
fields = '__all__'
widgets = {
'name': forms.TextInput(attrs={'class': 'form-control'}),
'is_project_based': forms.Select(attrs={'class': 'form-control'}),
'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', 'type': 'date'}),
'amount': forms.NumberInput(attrs={'class': 'form-control'}),
}
def __init__(self, *args, **kwargs):
super(ReimbursementDetailForm, self).__init__(*args, **kwargs)
self.fields['year_month'].widget = forms.DateInput(attrs={'type': 'month', 'class': 'form-control'})
self.fields['primary_department'] = forms.ChoiceField(
choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in PrimaryDepartment.objects.all()],
widget=forms.Select(attrs={'class': 'form-control'}),
label="一级部门")
for field_name in self.fields:
if field_name not in ['primary_department', 'name', 'year_month']:
self.fields[field_name].required = False
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):
class Meta:
model = BonusAllocation
fields = '__all__'
widgets = {
'secondary_department': forms.Select(attrs={'class': 'form-control'}),
'name': forms.TextInput(attrs={'class': 'form-control'}),
'award_amount': forms.NumberInput(attrs={'class': 'form-control'}),
}
def __init__(self, *args, **kwargs):
super(BonusAllocationForm, self).__init__(*args, **kwargs)
self.fields['year_month'].widget = forms.DateInput(attrs={'type': 'month', 'class': 'form-control'})
self.fields['primary_department'] = forms.ChoiceField(
choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in PrimaryDepartment.objects.all()],
widget=forms.Select(attrs={'class': 'form-control'}),
label="一级部门"
)
self.fields['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="奖金类别"
)
for field_name in self.fields:
if field_name not in ['primary_department', 'name', 'year_month']:
self.fields[field_name].required = False
class TaxRecordForm(forms.ModelForm):
class Meta:
model = TaxRecord
exclude = ['annual_cumulative']
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'}),
}
def __init__(self, *args, **kwargs):
super(TaxRecordForm, self).__init__(*args, **kwargs)
self.fields['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="纳税主体"
)
for field_name in self.fields:
if field_name not in ['tax_entity', 'year', 'tax_type']:
self.fields[field_name].required = False
class ElectronicInvoiceLedgerForm(forms.ModelForm):
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.TextInput(attrs={'class': 'form-control'}),
'total_amount_including_tax': forms.NumberInput(attrs={'class': 'form-control'}),
}
def __init__(self, *args, **kwargs):
super(ElectronicInvoiceLedgerForm, self).__init__(*args, **kwargs)
self.fields['primary_department'] = forms.ChoiceField(
choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in PrimaryDepartment.objects.all()],
widget=forms.Select(attrs={'class': 'form-control'}),
label="一级部门")
for field_name in self.fields:
if field_name not in ['expense_party', 'pprimary_department', 'invoice_code']:
self.fields[field_name].required = False
class InvoiceRecordForm(forms.ModelForm):
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="开票主体")
class Meta:
model = InvoiceRecord
fields = '__all__'
widgets = {
'project_name': forms.Select(attrs={'class': 'form-control'}),
'primary_department': forms.TextInput(attrs={'class': 'form-control'}),
'project_manager': forms.TextInput(attrs={'class': 'form-control'}),
'nature': forms.TextInput(attrs={'class': 'form-control'}),
'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.TextInput(attrs={'class': 'form-control', 'disabled': 'disabled'}),
'tax_rate': forms.TextInput(attrs={'class': 'form-control'}),
'amount_excluding_tax': forms.NumberInput(attrs={'class': 'form-control'}),
'tax_amount': forms.TextInput(attrs={'class': 'form-control'}),
'invoice_type': forms.Select(attrs={'class': 'form-control'}),
}
class RepaymentRecordForm(forms.ModelForm):
primary_department = forms.ChoiceField(
choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in
PrimaryDepartment.objects.all()],
widget=forms.Select(attrs={'class': 'form-control'}),
label="一级部门"
)
class Meta:
model = RepaymentRecord
fields = '__all__'
widgets = {
'project_name': forms.Select(attrs={'class': 'form-control'}),
'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__'
class ProjectCommissionForm(forms.ModelForm):
class Meta:
model = ProjectCommission
fields = '__all__'
widgets = {
'year_month': forms.DateInput(attrs={'class': 'form-control', 'type': 'date'}),
}
def __init__(self, *args, **kwargs):
super(ProjectCommissionForm, self).__init__(*args, **kwargs)
self.fields['primary_department'] = forms.ChoiceField(
choices=[('', '---------')] + [(dept.department_name, dept.department_name) for dept in PrimaryDepartment.objects.all()],
widget=forms.Select(attrs={'class': 'form-control'}),
label="一级部门")
class EmployeeCommissionDetailForm(forms.ModelForm):
class Meta:
model = EmployeeCommissionDetail
fields = [
'year',
'performance_score',
'total_commission',
'amount_paid',
'accrued_amount',
'back_pay_amount',
'deduction_amount'
]