From 76836bbea1ef5df6117d751d7a01522e658bd47e Mon Sep 17 00:00:00 2001 From: Amritanshu Date: Tue, 5 May 2026 16:04:21 +0000 Subject: [PATCH] Fix: Purchase was still not getting the Rate Contract information. --- brewman/brewman/routers/product.py | 2 +- .../src/app/purchase/purchase.component.ts | 30 +++++++++---------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/brewman/brewman/routers/product.py b/brewman/brewman/routers/product.py index 264e3333..c7a9772b 100644 --- a/brewman/brewman/routers/product.py +++ b/brewman/brewman/routers/product.py @@ -340,7 +340,7 @@ async def show_term_sku( for item in db.execute(query_).unique().scalars().all(): for sku in [sku.versions[0] for sku in item.product.skus]: - rc_price = get_rc_price(item.id, date_, v, db) + rc_price = get_rc_price(sku.sku_id, date_, v, db) list_.append( ProductSku( id_=sku.sku_id, diff --git a/overlord/src/app/purchase/purchase.component.ts b/overlord/src/app/purchase/purchase.component.ts index 259a9e0e..720d2ec3 100644 --- a/overlord/src/app/purchase/purchase.component.ts +++ b/overlord/src/app/purchase/purchase.component.ts @@ -117,7 +117,7 @@ export class PurchaseComponent implements OnInit, AfterViewInit { account: FormControl; amount: FormControl; addRow: FormGroup<{ - product: FormControl; + product: FormControl; quantity: FormControl; price: FormControl; tax: FormControl; @@ -128,7 +128,6 @@ export class PurchaseComponent implements OnInit, AfterViewInit { }>; voucher: Voucher = new Voucher(); - product: ProductSku | null = null; accBal: AccountBalance | null = null; displayedColumns = ['product', 'quantity', 'rate', 'tax', 'discount', 'amount', 'action']; @@ -143,7 +142,7 @@ export class PurchaseComponent implements OnInit, AfterViewInit { account: new FormControl(null), amount: new FormControl({ value: 0, disabled: true }, { nonNullable: true }), addRow: new FormGroup({ - product: new FormControl(''), + product: new FormControl(null), quantity: new FormControl('', { nonNullable: true }), price: new FormControl('', { nonNullable: true }), tax: new FormControl('', { nonNullable: true }), @@ -172,10 +171,11 @@ export class PurchaseComponent implements OnInit, AfterViewInit { switchMap((x) => { const account = this.form.value.account; const vendorId = account && typeof account === 'object' ? account.id : undefined; - return x === null + const query = typeof x !== 'string' ? '' : x; + return query === null || query === '' ? observableOf([]) : this.productSer.autocompleteSku( - x, + query, true, moment(this.form.value.date).format('DD-MMM-YYYY'), vendorId, @@ -224,22 +224,23 @@ export class PurchaseComponent implements OnInit, AfterViewInit { addRow() { const formValue = this.form.value.addRow; - if (formValue === undefined) { + if (formValue === undefined || !formValue.product || typeof formValue.product === 'string') { return; } + const product = formValue.product as ProductSku; const quantity = this.math.parseAmount(formValue.quantity, 2); - if (this.product === null || quantity <= 0) { + if (quantity <= 0) { return; } - const price = this.product.isRateContracted - ? (this.product.costPrice as number) + const price = product.isRateContracted + ? (product.costPrice as number) : this.math.parseAmount(formValue.price, 2); - const tax = this.product.isRateContracted ? 0 : this.math.parseAmount(formValue.tax, 5); - const discount = this.product.isRateContracted ? 0 : this.math.parseAmount(formValue.discount, 5); + const tax = product.isRateContracted ? 0 : this.math.parseAmount(formValue.tax, 5); + const discount = product.isRateContracted ? 0 : this.math.parseAmount(formValue.discount, 5); if ((price as number) <= 0 || (tax as number) < 0 || (discount as number) < 0) { return; } - const oldFiltered = this.voucher.inventories.filter((x) => x.batch?.sku.id === (this.product as ProductSku).id); + const oldFiltered = this.voucher.inventories.filter((x) => x.batch?.sku.id === product.id); if (oldFiltered.length) { this.snackBar.open('Product already added', 'Danger'); return; @@ -251,7 +252,7 @@ export class PurchaseComponent implements OnInit, AfterViewInit { tax, discount, amount: round(quantity * (price as number) * (1 + tax) * (1 - discount), 2), - batch: new Batch({ sku: this.product }), + batch: new Batch({ sku: product }), }), ); this.resetAddRow(); @@ -260,7 +261,6 @@ export class PurchaseComponent implements OnInit, AfterViewInit { resetAddRow() { this.form.controls.addRow.reset(); - this.product = null; this.form.controls.addRow.controls.price.enable(); this.form.controls.addRow.controls.tax.enable(); this.form.controls.addRow.controls.discount.enable(); @@ -394,7 +394,7 @@ export class PurchaseComponent implements OnInit, AfterViewInit { productSelected(event: MatAutocompleteSelectedEvent): void { const product: ProductSku = event.option.value; const addRowForm = this.form.controls.addRow; - this.product = product; + addRowForm.controls.product.setValue(product); addRowForm.controls.price.setValue(`${product.costPrice}`); if (product.isRateContracted) { addRowForm.controls.price.disable();