mirror of
https://github.com/frappe/books.git
synced 2025-01-22 14:48:25 +00:00
fix(ux): allow setting of Stock Transfer backref
This commit is contained in:
parent
7e2305b855
commit
0ce9507a4a
@ -3,6 +3,7 @@ import { Attachment } from 'fyo/core/types';
|
||||
import { Doc } from 'fyo/model/doc';
|
||||
import {
|
||||
Action,
|
||||
ChangeArg,
|
||||
DefaultMap,
|
||||
FiltersMap,
|
||||
FormulaMap,
|
||||
@ -15,6 +16,7 @@ import { addItem, getLedgerLinkAction, getNumberSeries } from 'models/helpers';
|
||||
import { LedgerPosting } from 'models/Transactional/LedgerPosting';
|
||||
import { ModelNameEnum } from 'models/types';
|
||||
import { Money } from 'pesa';
|
||||
import { TargetField } from 'schemas/types';
|
||||
import { validateBatch } from './helpers';
|
||||
import { StockTransferItem } from './StockTransferItem';
|
||||
import { Transfer } from './Transfer';
|
||||
@ -66,6 +68,11 @@ export abstract class StockTransfer extends Transfer {
|
||||
role: ['in', [doc.isSales ? 'Customer' : 'Supplier', 'Both']],
|
||||
}),
|
||||
numberSeries: (doc: Doc) => ({ referenceType: doc.schemaName }),
|
||||
backReference: () => ({
|
||||
stockNotTransferred: true,
|
||||
submitted: true,
|
||||
cancelled: false,
|
||||
}),
|
||||
};
|
||||
|
||||
override _getTransferDetails() {
|
||||
@ -257,4 +264,37 @@ export abstract class StockTransfer extends Transfer {
|
||||
async addItem(name: string) {
|
||||
return await addItem(name, this);
|
||||
}
|
||||
|
||||
override async change({ doc, changed }: ChangeArg): Promise<void> {
|
||||
if (doc.name === this.name && changed === 'backReference') {
|
||||
await this.setFieldsFromBackReference();
|
||||
}
|
||||
}
|
||||
|
||||
async setFieldsFromBackReference() {
|
||||
const backReference = this.backReference;
|
||||
const { target } = this.fyo.getField(
|
||||
this.schemaName,
|
||||
'backReference'
|
||||
) as TargetField;
|
||||
|
||||
if (!backReference || !target) {
|
||||
return;
|
||||
}
|
||||
|
||||
const brDoc = await this.fyo.doc.getDoc(target, backReference);
|
||||
if (!(brDoc instanceof Invoice)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const stDoc = await brDoc.getStockTransfer();
|
||||
if (!stDoc) {
|
||||
return;
|
||||
}
|
||||
|
||||
await this.set('party', stDoc.party);
|
||||
await this.set('terms', stDoc.terms);
|
||||
await this.set('date', stDoc.date);
|
||||
await this.set('items', stDoc.items);
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,6 @@
|
||||
"label": "Back Reference",
|
||||
"fieldtype": "Link",
|
||||
"target": "PurchaseInvoice",
|
||||
"readOnly": true,
|
||||
"section": "References"
|
||||
},
|
||||
{
|
||||
|
@ -20,7 +20,6 @@
|
||||
"label": "Back Reference",
|
||||
"fieldtype": "Link",
|
||||
"target": "SalesInvoice",
|
||||
"readOnly": true,
|
||||
"section": "References"
|
||||
},
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user