@@ -19,8 +19,13 @@ import { Item } from '../Item/Item';
1919import { StockTransfer } from 'models/inventory/StockTransfer' ;
2020import { isPesa } from 'fyo/utils' ;
2121import { PricingRule } from '../PricingRule/PricingRule' ;
22- import { getItemRateFromPriceList , getPricingRule } from 'models/helpers' ;
22+ import {
23+ getItemRateFromPriceList ,
24+ getItemVisibility ,
25+ getPricingRule ,
26+ } from 'models/helpers' ;
2327import { SalesInvoice } from '../SalesInvoice/SalesInvoice' ;
28+ import { QueryFilter } from 'utils/db/types' ;
2429
2530export 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