2
0
mirror of https://github.com/frappe/books.git synced 2025-03-21 02:22:23 +00:00

Added enhancement to filter out reverted invoices

This commit is contained in:
Piyush Singhania 2021-10-21 23:10:14 +05:30
parent c8732d6d8d
commit e9b3d2ca03
5 changed files with 41 additions and 1 deletions

View File

@ -9,6 +9,7 @@ module.exports = class LedgerPosting {
this.description = description; this.description = description;
this.entries = []; this.entries = [];
this.entryMap = {}; this.entryMap = {};
this.reverted = 0;
// To change balance while entering ledger entries // To change balance while entering ledger entries
this.accountEntries = []; this.accountEntries = [];
} }
@ -52,6 +53,7 @@ module.exports = class LedgerPosting {
referenceType: referenceType || this.reference.doctype, referenceType: referenceType || this.reference.doctype,
referenceName: referenceName || this.reference.name, referenceName: referenceName || this.reference.name,
description: this.description, description: this.description,
reverted: this.reverted,
debit: 0, debit: 0,
credit: 0 credit: 0
}; };
@ -70,11 +72,28 @@ module.exports = class LedgerPosting {
async postReverse() { async postReverse() {
this.validateEntries(); this.validateEntries();
let data = await frappe.db.getAll({
doctype: 'AccountingLedgerEntry',
fields: ['name'],
filters: {
referenceName: this.reference.name,
reverted: 0
}
});
for (let entry of data) {
let entryDoc = await frappe.getDoc('AccountingLedgerEntry', entry.name);
entryDoc.reverted = 1;
await entryDoc.update();
}
let temp; let temp;
for (let entry of this.entries) { for (let entry of this.entries) {
temp = entry.debit; temp = entry.debit;
entry.debit = entry.credit; entry.debit = entry.credit;
entry.credit = temp; entry.credit = temp;
entry.reverted = 1;
} }
for (let entry of this.accountEntries) { for (let entry of this.accountEntries) {
entry.balanceChange = -1 * entry.balanceChange; entry.balanceChange = -1 * entry.balanceChange;

View File

@ -60,6 +60,12 @@ module.exports = {
fieldname: 'balance', fieldname: 'balance',
label: 'Balance', label: 'Balance',
fieldtype: 'Currency' fieldtype: 'Currency'
},
{
fieldname: 'reverted',
label: 'Reverted',
fieldtype: 'Check',
default: 0
} }
], ],
quickEditFields: [ quickEditFields: [

View File

@ -7,6 +7,7 @@ class GeneralLedger {
if (params.party) filters.party = params.party; if (params.party) filters.party = params.party;
if (params.referenceType) filters.referenceType = params.referenceType; if (params.referenceType) filters.referenceType = params.referenceType;
if (params.referenceName) filters.referenceName = params.referenceName; if (params.referenceName) filters.referenceName = params.referenceName;
if (params.reverted) filters.reverted = !params.reverted;
if (params.toDate || params.fromDate) { if (params.toDate || params.fromDate) {
filters.date = []; filters.date = [];
if (params.toDate) filters.date.push('<=', params.toDate); if (params.toDate) filters.date.push('<=', params.toDate);
@ -22,7 +23,8 @@ class GeneralLedger {
'referenceType', 'referenceType',
'referenceName', 'referenceName',
'debit', 'debit',
'credit' 'credit',
'reverted'
], ],
filters: filters filters: filters
}); });

View File

@ -56,6 +56,18 @@ const viewConfig = {
placeholder: 'To Date', placeholder: 'To Date',
label: 'To Date', label: 'To Date',
fieldname: 'toDate' fieldname: 'toDate'
},
{
fieldtype: 'Select',
options: [
{ label: 'Hide Audits', value: '1' },
{ label: 'Show Audits', value: '' }
],
size: 'small',
label: 'Audits',
placeholder: 'Show Audits',
default: 1,
fieldname: 'reverted'
} }
], ],
method: 'general-ledger', method: 'general-ledger',

View File

@ -18,6 +18,7 @@
:df="df" :df="df"
:value="filters[df.fieldname]" :value="filters[df.fieldname]"
@change="value => onFilterChange(df, value)" @change="value => onFilterChange(df, value)"
:show-label="df.fieldtype === 'Check'"
/> />
</div> </div>
</div> </div>