diff --git a/models/inventory/StockTransferItem.ts b/models/inventory/StockTransferItem.ts index 404139986..9530ee3b8 100644 --- a/models/inventory/StockTransferItem.ts +++ b/models/inventory/StockTransferItem.ts @@ -12,6 +12,7 @@ import { Money } from 'pesa'; import { safeParseFloat } from 'utils/index'; import { StockTransfer } from './StockTransfer'; import { TransferItem } from './TransferItem'; +import { SalesInvoice } from 'models/baseModels/SalesInvoice/SalesInvoice'; export class StockTransferItem extends TransferItem { item?: string; @@ -42,6 +43,32 @@ export class StockTransferItem extends TransferItem { return !!this.parentdoc?.isReturn; } + async getItemDiscountAmount(): Promise { + const sinvDoc = (await this.fyo.doc.getDoc( + ModelNameEnum.SalesInvoice, + this.parentdoc?.backReference + )) as SalesInvoice; + + const discountAmount = sinvDoc?.items?.find( + (val) => val.item === this.item + )?.itemDiscountAmount; + + return discountAmount; + } + + async getItemDiscountPercent() { + const sinvDoc = (await this.fyo.doc.getDoc( + ModelNameEnum.SalesInvoice, + this.parentdoc?.backReference + )) as SalesInvoice; + + const discountPercent = sinvDoc?.items?.find( + (val) => val.item === this.item + )?.itemDiscountPercent; + + return discountPercent; + } + formulas: FormulaMap = { description: { formula: async () => @@ -158,6 +185,16 @@ export class StockTransferItem extends TransferItem { }, dependsOn: ['rate', 'quantity'], }, + itemDiscountAmount: { + formula: async () => { + return await this.getItemDiscountAmount(); + }, + dependsOn: ['items'], + }, + itemDiscountPercent: { + formula: () => this.getItemDiscountPercent(), + dependsOn: ['items'], + }, rate: { formula: async () => { const rate = (await this.fyo.getValue( diff --git a/schemas/app/inventory/StockTransferItem.json b/schemas/app/inventory/StockTransferItem.json index af4631650..9f4b8d958 100644 --- a/schemas/app/inventory/StockTransferItem.json +++ b/schemas/app/inventory/StockTransferItem.json @@ -78,6 +78,18 @@ "fieldtype": "Currency", "readOnly": true }, + { + "fieldname": "itemDiscountAmount", + "label": "Discount Amount", + "fieldtype": "Currency", + "readOnly": false + }, + { + "fieldname": "itemDiscountPercent", + "label": "Discount Percent", + "fieldtype": "Float", + "readOnly": false + }, { "fieldname": "description", "label": "Description", @@ -107,6 +119,8 @@ "hsnCode", "location", "rate", - "amount" + "amount", + "itemDiscountAmount", + "itemDiscountPercent" ] } diff --git a/src/pages/POS/PaymentModal.vue b/src/pages/POS/PaymentModal.vue index 94df6ee59..5cd233c97 100644 --- a/src/pages/POS/PaymentModal.vue +++ b/src/pages/POS/PaymentModal.vue @@ -371,7 +371,7 @@ export default defineComponent({ } if (amount) { - this.$emit('setPaidAmount', this.sinvDoc.outstandingAmount?.float); + this.$emit('setPaidAmount', this.sinvDoc.grandTotal?.float); } }, async setPaymentMethods() {