2
0
mirror of https://github.com/frappe/books.git synced 2024-11-10 07:40:55 +00:00
books/models/baseModels/PurchaseInvoice/PurchaseInvoice.ts
18alantom 591e7b3163 incr: complete typing models
- fix model exports
- add a README for models base
2022-05-23 16:18:22 +05:30

49 lines
1.2 KiB
TypeScript

import { LedgerPosting } from 'accounting/ledgerPosting';
import { Action, ListViewSettings } from 'frappe/model/types';
import {
getTransactionActions,
getTransactionStatusColumn,
} from '../../helpers';
import { Invoice } from '../Invoice/Invoice';
import { PurchaseInvoiceItem } from '../PurchaseInvoiceItem/PurchaseInvoiceItem';
export class PurchaseInvoice extends Invoice {
items?: PurchaseInvoiceItem[];
async getPosting() {
const entries: LedgerPosting = new LedgerPosting({
reference: this,
party: this.party,
});
await entries.credit(this.account!, this.baseGrandTotal!);
for (const item of this.items!) {
await entries.debit(item.account!, item.baseAmount!);
}
if (this.taxes) {
for (const tax of this.taxes) {
await entries.debit(tax.account!, tax.baseAmount!);
}
}
entries.makeRoundOffEntry();
return entries;
}
static actions: Action[] = getTransactionActions('PurchaseInvoice');
static listSettings: ListViewSettings = {
formRoute: (name) => `/edit/PurchaseInvoice/${name}`,
columns: [
'party',
'name',
getTransactionStatusColumn(),
'date',
'grandTotal',
'outstandingAmount',
],
};
}