2
0
mirror of https://github.com/frappe/books.git synced 2024-12-24 20:00:29 +00:00
books/models/baseModels/JournalEntryAccount/JournalEntryAccount.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

43 lines
1.1 KiB
TypeScript
Raw Normal View History

import { Doc } from 'fyo/model/doc';
import { FiltersMap, FormulaMap } from 'fyo/model/types';
2022-05-23 05:30:54 +00:00
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 }),
};
}