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' ]