2
0
mirror of https://github.com/frappe/books.git synced 2024-12-23 19:39:07 +00:00
books/models/baseModels/JournalEntryAccount/JournalEntryAccount.ts
18alantom 401a86eeeb chore: bump pesa
- fix isPesa impl
2022-05-23 16:18:23 +05:30

43 lines
1.1 KiB
TypeScript

import { Doc } from 'fyo/model/doc';
import { FiltersMap, FormulaMap } from 'fyo/model/types';
import { Money } from 'pesa';
export class JournalEntryAccount extends Doc {
getAutoDebitCredit(type: 'debit' | 'credit') {
const currentValue = this.get(type) as Money;
if (!currentValue.isZero()) {
return;
}
const otherType = type === 'debit' ? 'credit' : 'debit';
const otherTypeValue = this.get(otherType) as Money;
if (!otherTypeValue.isZero()) {
return this.fyo.pesa(0);
}
const totalType = this.parentdoc!.getSum('accounts', type, false) as Money;
const totalOtherType = this.parentdoc!.getSum(
'accounts',
otherType,
false
) as Money;
if (totalType.lt(totalOtherType)) {
return totalOtherType.sub(totalType);
}
}
formulas: FormulaMap = {
debit: {
formula: async () => this.getAutoDebitCredit('debit'),
},
credit: {
formula: async () => this.getAutoDebitCredit('credit'),
},
};
static filters: FiltersMap = {
account: () => ({ isGroup: false }),
};
}