diff --git a/fyo/model/doc.ts b/fyo/model/doc.ts index 50f7bb7b..5345e568 100644 --- a/fyo/model/doc.ts +++ b/fyo/model/doc.ts @@ -46,6 +46,7 @@ import { import { validateOptions, validateRequired } from './validationFunction'; import { getShouldDocSyncToERPNext } from 'src/utils/erpnextSync'; import { ModelNameEnum } from 'models/types'; +import { DocItem } from 'models/inventory/types'; export class Doc extends Observable { /* eslint-disable @typescript-eslint/no-floating-promises */ @@ -925,29 +926,19 @@ export class Doc extends Observable { if (!isSalesInvoice) { return true; } - - const items = (this.get('items') as Doc[]) ?? []; - - for (const item of items) { - const itemName = item.get('item') as string; - if (!itemName) { - continue; - } - - try { - const itemDoc = await this.fyo.doc.getDoc('Item', itemName); - const isInventoryItem = !!itemDoc.get('trackItem'); - const isFromERP = !!itemDoc.get('datafromErp'); - - if (!isInventoryItem && isFromERP) { - return true; - } - } catch (err) { + for (const item of this.items as DocItem[]) { + if (!item.item) { continue; } + const isFromERP = await this.fyo.getValue( + ModelNameEnum.Item, + item.item, + 'datafromErp' + ); + if (isFromERP) continue; + else return false; } - - return false; + return true; } async sync(): Promise { diff --git a/models/baseModels/ERPNextSyncSettings/ERPNextSyncSettings.ts b/models/baseModels/ERPNextSyncSettings/ERPNextSyncSettings.ts index ee17eebc..b163e153 100644 --- a/models/baseModels/ERPNextSyncSettings/ERPNextSyncSettings.ts +++ b/models/baseModels/ERPNextSyncSettings/ERPNextSyncSettings.ts @@ -40,9 +40,6 @@ export class ERPNextSyncSettings extends Doc { batchSyncType: () => { return !this.fyo.singles.InventorySettings?.enableBatches; }, - // syncDataFromServer: () => { - // return !this.deviceID; - // }, }; async change(ch: ChangeArg) { diff --git a/models/helpers.ts b/models/helpers.ts index 37e8744c..ac458d13 100644 --- a/models/helpers.ts +++ b/models/helpers.ts @@ -119,7 +119,6 @@ export async function getItemVisibility(fyo: Fyo): Promise { const enableERPNextSync = fyo.singles.AccountingSettings?.enableERPNextSync; if (enableERPNextSync) { - // When ERP sync is enabled, use itemVisibilityERP from POSSettings return fyo.singles.POSSettings?.itemVisibilityERP as ItemVisibility; } diff --git a/models/inventory/Point of Sale/POSSettings.ts b/models/inventory/Point of Sale/POSSettings.ts index 2a70b60a..3060b290 100644 --- a/models/inventory/Point of Sale/POSSettings.ts +++ b/models/inventory/Point of Sale/POSSettings.ts @@ -47,6 +47,7 @@ export class POSSettings extends Doc { !this.fyo.singles.InventorySettings?.enableBarcodes || !this.weightEnabledBarcode, itemVisibility: () => + !this.fyo.singles.AccountingSettings?.enablePointOfSaleWithOutInventory || !!this.fyo.singles.AccountingSettings?.enableERPNextSync, itemVisibilityERP: () => !this.fyo.singles.AccountingSettings?.enableERPNextSync, diff --git a/schemas/app/Item.json b/schemas/app/Item.json index d97b7677..d1dca717 100644 --- a/schemas/app/Item.json +++ b/schemas/app/Item.json @@ -176,7 +176,7 @@ { "fieldname": "datafromErp", "fieldtype": "Check", - "hidden": false, + "hidden": true, "default": false, "section": "Default" } diff --git a/schemas/app/inventory/Point of Sale/POSSettings.json b/schemas/app/inventory/Point of Sale/POSSettings.json index 657a28eb..f798a7af 100644 --- a/schemas/app/inventory/Point of Sale/POSSettings.json +++ b/schemas/app/inventory/Point of Sale/POSSettings.json @@ -96,13 +96,6 @@ "default": 0, "section": "Barcode" }, - { - "fieldname": "itemWeightDigits", - "label": "item Weight Digits", - "fieldtype": "Int", - "default": 0, - "section": "Barcode" - }, { "fieldname": "itemVisibility", "label": "Item Visibility", @@ -118,7 +111,6 @@ } ], "default": "Inventory Items", - "required": true, "section": "Default" }, { @@ -140,7 +132,6 @@ } ], "default": "ERP Sync Items", - "required": true, "section": "Default" }, {