Skip to content

Commit ad85b47

Browse files
committed
fix :filter stock vs non-stock items when Item Visibility changes
1 parent d92d2c3 commit ad85b47

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

models/baseModels/InvoiceItem/InvoiceItem.ts

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,13 @@ import { Item } from '../Item/Item';
1919
import { StockTransfer } from 'models/inventory/StockTransfer';
2020
import { isPesa } from 'fyo/utils';
2121
import { PricingRule } from '../PricingRule/PricingRule';
22-
import { getItemRateFromPriceList, getPricingRule } from 'models/helpers';
22+
import {
23+
getItemRateFromPriceList,
24+
getItemVisibility,
25+
getPricingRule,
26+
} from 'models/helpers';
2327
import { SalesInvoice } from '../SalesInvoice/SalesInvoice';
28+
import { QueryFilter } from 'utils/db/types';
2429

2530
export abstract class InvoiceItem extends Doc {
2631
item?: string;
@@ -630,13 +635,27 @@ export abstract class InvoiceItem extends Doc {
630635
};
631636

632637
static filters: FiltersMap = {
633-
item: (doc: Doc) => {
638+
item: async (doc: Doc) => {
634639
let itemNotFor = 'Sales';
635640
if (doc.isSales) {
636641
itemNotFor = 'Purchases';
637642
}
638643

639-
return { for: ['not in', [itemNotFor]] };
644+
const baseFilter: QueryFilter = {
645+
for: ['not in', [itemNotFor]],
646+
};
647+
648+
const itemVisibility = await getItemVisibility(doc.fyo);
649+
650+
if (itemVisibility === 'Inventory Items') {
651+
return { ...baseFilter, trackItem: true };
652+
}
653+
654+
if (itemVisibility === 'Non-Inventory Items') {
655+
return { ...baseFilter, trackItem: false };
656+
}
657+
658+
return baseFilter;
640659
},
641660
batch: async (doc: Doc) => {
642661
const batches = await doc.fyo.db.getAll(ModelNameEnum.Batch, {

0 commit comments

Comments
 (0)