def update(self, instance, validated_data): rows_data = validated_data.pop('rows') party = Party.objects.get(pk=instance.id) for row_data in rows_data: data = dict(row_data) row_id = data.get('id',0) if not row_id: amount = data.get('amount',0.0) date = data.get('date',0.0) voucher_no = data.get('voucher_no',1) row = PartyPayment(amount=amount, date=date, party=party, voucher_no=voucher_no) row.save() set_ledger_transactions(row, row.date, ['dr', party.account, row.amount]) set_ledger_transactions(row, row.date, ['cr', Account.objects.get_or_create(name="Cash")[0], row.amount]) return party
def update(self, instance, validated_data): rows_data = validated_data.pop('rows') vendor = Vendor.objects.get(pk=instance.id) for row_data in rows_data: data = dict(row_data) row_id = data.get('id',0) if not row_id: amount = data.get('amount',0.0) date = data.get('date',0.0) voucher_no = data.get('voucher_no',1) bank = data.get('bank') row = VendorPayments(amount=amount, date=date, vendor=vendor, voucher_no=voucher_no, bank=bank) row.save() if vendor.account: set_ledger_transactions(row, row.date, ['cr', vendor.account, row.amount]) set_ledger_transactions(row, row.date, ['dr', row.bank.account, row.amount]) return vendor
def create(self, validated_data): rows_data = validated_data.pop('rows') sales = Sales.objects.create(**validated_data) for row_data in rows_data: data = dict(row_data) row = SalesRow() row.sn = data.get('sn') row.item = data.get('item') row.unit = data.get('unit','Pieces') row.quantity = data.get('quantity',0.0) row.is_vatable = data.get('is_vatable',True) row.rate = data.get('rate', 0.0) row.discount = data.get('discount',0.0) row.sales = sales row.save() iv_account, status = InventoryAccount.objects.get_or_create( name=row.item.name, site_id=DEFAULT_PROJECT_ID, account_no=row.item.account.account_no) set_transactions(row, row.sales.date, ['cr', iv_account, row.quantity]) if not row.is_vatable: row_amount = row.quantity*row.rate-row.discount else: row_amount = row.quantity*row.rate*1.13-row.discount set_ledger_transactions(row, row.sales.date, ['cr', row.item.ledger, row_amount]) if sales.credit: set_ledger_transactions(row, row.sales.date, ['dr', sales.party.account, row_amount]) else: set_ledger_transactions(row, row.sales.date, ['dr', Account.objects.get_or_create(name='Cash')[0], row_amount]) return sales
def update(self, instance, validated_data): rows_data = validated_data.pop('rows') sales = Sales.objects.get(pk=instance.id) sales.date = validated_data.pop('date',None) sales.credit = validated_data.pop('credit',False) sales.voucher_no = validated_data.pop('voucher_no') sales.party = validated_data.pop('party') sales.save() for row_data in rows_data: data = dict(row_data) row_id = data.get('id', '') if row_id: row = SalesRow.objects.get(pk=row_id) # if not row.item == data.get('item'): # iv_account, status = InventoryAccount.objects.get_or_create( # name=row.item.name, site_id=DEFAULT_PROJECT_ID, account_no=row.item.account.account_no) # set_transactions(row, row.purchase.date, ['cr', iv_account, row.quantity]) # set_ledger_transactions(row, row.purchase.date, ['cr', row.item.ledger, # row.quantity*row.rate-row.discount]) else: row = SalesRow() row.sn = data.get('sn') row.item = data.get('item') row.unit = data.get('unit','Pieces') row.quantity = data.get('quantity',0.0) row.is_vatable = data.get('is_vatable',True) row.rate = data.get('rate', 0.0) row.discount = data.get('discount',0.0) row.sales = sales row.save() iv_account, status = InventoryAccount.objects.get_or_create( name=row.item.name, site_id=DEFAULT_PROJECT_ID, account_no=row.item.account.account_no) set_transactions(row, row.sales.date, ['cr', iv_account, row.quantity]) if not row.is_vatable: row_amount = row.quantity*row.rate-row.discount else: row_amount = row.quantity*row.rate*1.13-row.discount set_ledger_transactions(row, row.sales.date, ['cr', row.item.ledger, row_amount]) if sales.credit: set_ledger_transactions(row, row.sales.date, ['dr', sales.party.account, row_amount]) else: set_ledger_transactions(row, row.sales.date, ['dr', Account.objects.get_or_create(name='Cash')[0], row_amount]) return sales
def update(self, instance, validated_data): rows_data = validated_data.pop('rows') bank = Bank.objects.get(pk=instance.id) for row_data in rows_data: data = dict(row_data) row_id = data.get('id',0) if not row_id: amount = data.get('amount',0.0) date = data.get('date',0.0) voucher_no = data.get('voucher_no',1) is_deposit = data.get('is_deposit',False) row = BankWithdrawAndDeposit(amount=amount, date=date, bank=bank, voucher_no=voucher_no, is_deposit=is_deposit) row.save() if bank.account: if row.is_deposit: set_ledger_transactions(row, row.date, ['cr',Account.objects.get_or_create(name='Cash')[0], row.amount]) set_ledger_transactions(row, row.date, ['dr', bank.account, row.amount]) else: set_ledger_transactions(row, row.date, ['cr', bank.account, row.amount]) set_ledger_transactions(row, row.date, ['dr', Account.objects.get_or_create(name='Cash')[0], row.amount]) return bank