def create(self, validated_data): rows_data = validated_data.pop('rows') sv = SalaryVoucher.objects.create(**validated_data) for row_data in rows_data: data = dict(row_data) row = SalaryVoucherRow() row.employee = data.get('employee') row.sn = data.get('sn',0) row.amount = data.get('amount',0) row.paid_date = data.get('paid_date', datetime.datetime.today) row.start_date = data.get('start_date', datetime.datetime.today) row.last_date = data.get('last_date', datetime.datetime.today) row.salary_voucher = sv row.save() set_transactions(row, sv.date, ['dr', Account.objects.get_or_create(name='Salaries Expenses')[0],row.amount]) set_transactions(row, sv.date, ['cr', Account.objects.get_or_create(name='Cash')[0], row.amount]) return sv
def update(self, instance, validated_data): rows_data = validated_data.pop('rows') sv = SalaryVoucher.objects.get(pk=instance.id) sv.date = validated_data.pop('date',datetime.datetime.today) sv.voucher_no = validated_data.pop('voucher_no',1) sv.site = validated_data.pop('site') sv.save() for row_data in rows_data: data = dict(row_data) id = data.get('id', '') # if id: # row = SalaryVoucherRow.objects.get(pk=id) # row.employee = data.get('employee') # row.sn = data.get('sn',1) # row.amount = data.get('amount',0) # row.paid_date = data.get('paid_date', datetime.datetime.today) # row.start_date = data.get('start_date',datetime.datetime.today) # row.last_date = data.get('last_date', datetime.datetime.today) # row.salary_voucher = sv # row.save() # set_transactions(row, sv.date, ['dr', Account.objects.get_or_create(name='Salaries Expenses')[0], row.amount]) # set_transactions(row, sv.date, ['cr', Account.objects.get_or_create(name='Cash')[0], row.amount]) # row = SalaryVoucherRow() # else: if not id: row = SalaryVoucherRow() row.employee = data.get('employee') row.sn = data.get('sn',1) row.amount = data.get('amount',0) row.paid_date = data.get('paid_date',datetime.datetime.today) row.start_date = data.get('start_date',datetime.datetime.today) row.last_date = data.get('last_date',datetime.datetime.today) row.salary_voucher = sv row.save() set_transactions(row, sv.date, ['dr', Account.objects.get_or_create(name='Salaries Expenses')[0],row.amount]) set_transactions(row, sv.date, ['cr', Account.objects.get_or_create(name='Cash')[0], row.amount]) return sv