storemw-core-api 1.0.170 → 1.0.172

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/app.js +1 -1
  2. package/dist/app.js.map +1 -1
  3. package/dist/controllers/item/itemController.js +22 -10
  4. package/dist/controllers/item/itemController.js.map +1 -1
  5. package/dist/models/item/BrandModel.d.ts +34 -23
  6. package/dist/models/item/CategoryModel.d.ts +34 -23
  7. package/dist/models/item/ItemModel.d.ts +100 -78
  8. package/dist/models/item/ProductModel.d.ts +33 -33
  9. package/dist/models/item/UomModel.d.ts +44 -33
  10. package/dist/schema/payload/item/schemaItemBrand.d.ts +28 -14
  11. package/dist/schema/payload/item/schemaItemBrand.js +4 -2
  12. package/dist/schema/payload/item/schemaItemBrand.js.map +1 -1
  13. package/dist/schema/payload/item/schemaItemCategory.d.ts +28 -14
  14. package/dist/schema/payload/item/schemaItemCategory.js +4 -2
  15. package/dist/schema/payload/item/schemaItemCategory.js.map +1 -1
  16. package/dist/schema/payload/item/schemaItemItem.d.ts +65 -65
  17. package/dist/schema/payload/item/schemaItemItem.js +3 -3
  18. package/dist/schema/payload/item/schemaItemItem.js.map +1 -1
  19. package/dist/schema/payload/item/schemaItemProduct.d.ts +41 -41
  20. package/dist/schema/payload/item/schemaItemProduct.js +1 -1
  21. package/dist/schema/payload/item/schemaItemProduct.js.map +1 -1
  22. package/dist/schema/payload/item/schemaItemUom.d.ts +28 -14
  23. package/dist/schema/payload/item/schemaItemUom.js +4 -2
  24. package/dist/schema/payload/item/schemaItemUom.js.map +1 -1
  25. package/dist/services/item/ItemBrandService.d.ts +11 -6
  26. package/dist/services/item/ItemBrandService.js +35 -6
  27. package/dist/services/item/ItemBrandService.js.map +1 -1
  28. package/dist/services/item/ItemCategoryService.d.ts +11 -6
  29. package/dist/services/item/ItemCategoryService.js +37 -7
  30. package/dist/services/item/ItemCategoryService.js.map +1 -1
  31. package/dist/services/item/ItemItemService.d.ts +29 -23
  32. package/dist/services/item/ItemItemService.js +57 -16
  33. package/dist/services/item/ItemItemService.js.map +1 -1
  34. package/dist/services/item/ItemProductService.d.ts +9 -9
  35. package/dist/services/item/ItemProductService.js +22 -10
  36. package/dist/services/item/ItemProductService.js.map +1 -1
  37. package/dist/services/item/ItemService.js +39 -12
  38. package/dist/services/item/ItemService.js.map +1 -1
  39. package/dist/services/item/ItemUomService.d.ts +14 -9
  40. package/dist/services/item/ItemUomService.js +35 -5
  41. package/dist/services/item/ItemUomService.js.map +1 -1
  42. package/package.json +1 -1
  43. package/prisma/schema.prisma +101 -92
@@ -1 +1 @@
1
- {"version":3,"file":"ItemService.js","sourceRoot":"","sources":["../../../src/services/item/ItemService.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ItemModel,\n ModelItemFields\n} from \"@/models\";\n\nimport { ItemItemGetProps, ItemItemCreateProps, ItemItemListProps, ItemItemUpdateProps, ItemItemService } from \"./ItemItemService\";\nimport { ItemProductGetProps, ItemProductCreateProps, ItemProductListProps, ItemProductUpdateProps, ItemProductService } from \"./ItemProductService\";\nimport { ItemCategoryGetProps, ItemCategoryCreateProps, ItemCategoryListProps, ItemCategoryUpdateProps, ItemCategoryService } from \"./ItemCategoryService\";\nimport { ItemBrandGetProps, ItemBrandCreateProps, ItemBrandListProps, ItemBrandUpdateProps, ItemBrandService } from \"./ItemBrandService\";\nimport { ItemUomGetProps, ItemUomCreateProps, ItemUomListProps, ItemUomUpdateProps, ItemUomService } from \"./ItemUomService\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps, throwError } from \"@/utils\";\n\nexport const itemTypes = {\n product: \"product\",\n item: \"item\",\n category: \"category\",\n brand: \"brand\",\n uom: \"uom\"\n} as const\n\nexport type ItemType = typeof itemTypes[keyof typeof itemTypes]\n\nexport type ItemServiceProps = DefaultServiceProps & {\n itemType: ItemType\n};\n\nexport type ItemGetProps = QueryGet & {\n id: number,\n};\n\nexport type ItemListProps = QueryList & {\n // id: number,\n};\n\nexport type ItemRemoveProps = {\n ids: BigInt[]\n};\n\nexport type ItemCreateProps = {\n itemType?: ItemType,\n data: (\n // item\n {\n item: Omit<ItemItemCreateProps[\"data\"][\"item\"], \"itemId\">,\n } |\n // product\n {\n item: Omit<ItemItemCreateProps[\"data\"][\"item\"], \"itemId\" | \"productId\">,\n product: Omit<ItemProductCreateProps[\"data\"][\"product\"], \"productId\">,\n } |\n // category\n {\n category: Omit<ItemCategoryCreateProps[\"data\"][\"category\"], \"categoryId\">,\n } |\n // brand\n {\n brand: Omit<ItemBrandCreateProps[\"data\"][\"brand\"], \"brandId\">,\n } |\n // uom\n {\n uom: Omit<ItemUomCreateProps[\"data\"][\"uom\"], \"uomId\">,\n }\n )\n}\n\nexport type ItemUpdateProps = {\n id: number,\n itemType?: ItemType,\n data: (\n // item\n {\n item: Omit<ItemItemUpdateProps[\"data\"][\"item\"], \"itemId\">\n } |\n // product\n {\n product: Omit<ItemProductUpdateProps[\"data\"][\"product\"], \"productId\">\n } |\n // category\n {\n category: Omit<ItemCategoryUpdateProps[\"data\"][\"category\"], \"categoryId\">\n } |\n // brand\n {\n brand: Omit<ItemBrandUpdateProps[\"data\"][\"brand\"], \"brandId\">\n } |\n // uom\n {\n uom: Omit<ItemUomUpdateProps[\"data\"][\"uom\"], \"uomId\">\n }\n )\n}\n\nconst getCreatePayload = (itemType: ItemType, data: ItemCreateProps[\"data\"]) => {\n\n if (\"product\" in data && \"item\" in data) {\n return data\n }\n\n if (\"item\" in data && !(\"product\" in data)) {\n return data[\"item\"]\n }\n\n if (\"category\" in data) {\n return data[\"category\"]\n }\n\n if (\"brand\" in data) {\n return data[\"brand\"]\n }\n\n if (\"uom\" in data) {\n return data[\"uom\"]\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (itemType: ItemType, data: ItemUpdateProps[\"data\"]) => {\n\n if (\"product\" in data) {\n return data[\"product\"]\n }\n\n if (\"item\" in data) {\n return data[\"item\"]\n }\n\n if (\"category\" in data) {\n return data[\"category\"]\n }\n\n if (\"brand\" in data) {\n return data[\"brand\"]\n }\n\n if (\"uom\" in data) {\n return data[\"uom\"]\n }\n\n return false\n\n}\n\nexport const ItemService = (props: ItemServiceProps) => {\n\n const {\n itemType = \"product\",\n ...rest\n } = props\n\n const itemItemService = ItemItemService({ ...rest })\n const itemProductService = ItemProductService({ ...rest })\n const itemCategoryService = ItemCategoryService({ ...rest })\n const itemBrandService = ItemBrandService({ ...rest })\n const itemUomService = ItemUomService({ ...rest })\n\n const createItem = async ({ data, itemType: overrideItemType }: ItemCreateProps) => {\n\n const _itemType = overrideItemType || itemType\n\n const _data = getCreatePayload(_itemType, data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n // create item\n // let responseItem = await itemModel.create({ data: _data })\n\n // let newItemId = responseItem.item_id\n\n let response: any = {}\n\n if (_itemType === \"product\" && \"product\" in data) {\n\n let dataProduct: ItemProductCreateProps[\"data\"] = {\n product: {\n ...data.product,\n }\n }\n\n // create product\n let actionResProduct = await itemProductService.createItemProduct({ data: dataProduct })\n\n const productId = actionResProduct?.product_id ?? 0\n\n let dataItem: ItemItemCreateProps[\"data\"] = {\n item: {\n productId: Number(productId),\n ...data.item\n }\n }\n\n // create first item\n let actionResItem = await itemItemService.createItem({ data: dataItem })\n\n response = await itemProductService.getItemProduct({ id: Number(productId), datatypes: [] })\n }\n\n if (_itemType === \"item\" && \"item\" in data && !(\"product\" in data)) {\n\n let dataItem: ItemItemCreateProps[\"data\"] = {\n item: {\n ...data.item,\n }\n }\n\n // create item\n let actionRes = await itemItemService.createItem({ data: dataItem })\n\n response = await itemItemService.getItem({ id: Number(actionRes?.item_id), datatypes: [] })\n }\n\n if (_itemType === \"category\" && \"category\" in data) {\n\n let dataCategory: ItemCategoryCreateProps[\"data\"] = {\n category: {\n ...data.category,\n }\n }\n\n // create category\n let actionRes = await itemCategoryService.createCategory({ data: dataCategory })\n\n response = await itemCategoryService.getCategory({ id: Number(actionRes?.category_id), datatypes: [] })\n }\n\n if (_itemType === \"brand\" && \"brand\" in data) {\n\n let dataBrand: ItemBrandCreateProps[\"data\"] = {\n brand: {\n ...data.brand,\n }\n }\n\n // create brand\n let actionRes = await itemBrandService.createBrand({ data: dataBrand })\n\n response = await itemBrandService.getBrand({ id: Number(actionRes?.brand_id), datatypes: [] })\n }\n\n if (_itemType === \"uom\" && \"uom\" in data) {\n\n let dataUom: ItemUomCreateProps[\"data\"] = {\n uom: {\n ...data.uom,\n }\n }\n\n // create uom\n let actionRes = await itemUomService.createUom({ data: dataUom })\n\n response = await itemUomService.getUom({ id: Number(actionRes?.uom_id), datatypes: [] })\n }\n\n return response\n }\n\n const updateItem = async ({ id, data, itemType: overrideItemType }: ItemUpdateProps) => {\n\n const _itemType = overrideItemType || itemType\n\n const _data = getUpdatePayload(_itemType, data)\n\n if (!_data) {\n throw new Error(`Invalid update payload: ${JSON.stringify(_data)}`);\n }\n\n let response: any = {}\n\n if (_itemType === \"product\" && \"product\" in data) {\n\n let dataProduct: ItemProductUpdateProps[\"data\"] = {\n product: {\n ...data.product\n }\n }\n\n await itemProductService.updateItemProduct({ productId: Number(id), data: dataProduct })\n\n response = await itemProductService.getItemProduct({ id: Number(id), datatypes: [] })\n\n }\n\n if (_itemType === \"item\" && \"item\" in data) {\n\n let dataItem: ItemItemUpdateProps[\"data\"] = {\n item: {\n ...data.item\n }\n }\n\n await itemItemService.updateItem({ itemId: Number(id), data: dataItem })\n\n response = await itemItemService.getItem({ id: Number(id), datatypes: [] })\n\n }\n\n if (_itemType === \"category\" && \"category\" in data) {\n\n let dataCategory: ItemCategoryUpdateProps[\"data\"] = {\n category: {\n ...data.category\n }\n }\n\n await itemCategoryService.updateCategory({ categoryId: Number(id), data: dataCategory })\n\n response = await itemCategoryService.getCategory({ id: Number(id), datatypes: [] })\n\n }\n\n if (_itemType === \"brand\" && \"brand\" in data) {\n\n let dataBrand: ItemBrandUpdateProps[\"data\"] = {\n brand: {\n ...data.brand\n }\n }\n\n await itemBrandService.updateBrand({ brandId: Number(id), data: dataBrand })\n\n response = await itemBrandService.getBrand({ id: Number(id), datatypes: [] })\n\n }\n\n if (_itemType === \"uom\" && \"uom\" in data) {\n\n let dataUom: ItemUomUpdateProps[\"data\"] = {\n uom: {\n ...data.uom\n }\n }\n\n await itemUomService.updateUom({ uomId: Number(id), data: dataUom })\n\n response = await itemUomService.getUom({ id: Number(id), datatypes: [] })\n\n }\n\n return response\n }\n\n const getItem = async ({ id, datatypes = [] }: ItemGetProps) => {\n\n let data: any = {}\n\n if (itemType === \"item\") {\n data = await itemItemService.getItem({ id, datatypes: datatypes as ItemItemGetProps[\"datatypes\"] })\n }\n\n if (itemType === \"product\") {\n data = await itemProductService.getItemProduct({ id, datatypes: datatypes as ItemProductGetProps[\"datatypes\"] })\n }\n\n if (itemType === \"category\") {\n data = await itemCategoryService.getCategory({ id, datatypes: datatypes as ItemCategoryGetProps[\"datatypes\"] })\n }\n\n if (itemType === \"brand\") {\n data = await itemBrandService.getBrand({ id, datatypes: datatypes as ItemBrandGetProps[\"datatypes\"] })\n }\n\n if (itemType === \"uom\") {\n data = await itemUomService.getUom({ id, datatypes: datatypes as ItemUomGetProps[\"datatypes\"] })\n }\n\n if (!data) {\n throw new Error(`Invalid id: ${id}`);\n }\n\n return data\n };\n\n const listItems = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes }: ItemListProps) => {\n\n let data: any[] = [];\n let total = 0;\n\n if (itemType === \"item\") {\n ({ data, total } = await itemItemService.listItems(\n { limit, offset, filters, sortfield, sortorder, datatypes: datatypes as ItemItemListProps[\"datatypes\"] }\n ))\n }\n\n if (itemType === \"product\") {\n ({ data, total } = await itemProductService.listItemProducts(\n { limit, offset, filters, sortfield, sortorder, datatypes: datatypes as ItemProductListProps[\"datatypes\"] }\n ))\n }\n\n if (itemType === \"category\") {\n ({ data, total } = await itemCategoryService.listCategories(\n { limit, offset, filters, sortfield, sortorder, datatypes: datatypes as ItemCategoryListProps[\"datatypes\"] }\n ))\n }\n\n if (itemType === \"brand\") {\n ({ data, total } = await itemBrandService.listBrands(\n { limit, offset, filters, sortfield, sortorder, datatypes: datatypes as ItemBrandListProps[\"datatypes\"] }\n ))\n }\n\n if (itemType === \"uom\") {\n ({ data, total } = await itemUomService.listUoms(\n { limit, offset, filters, sortfield, sortorder, datatypes: datatypes as ItemUomListProps[\"datatypes\"] }\n ))\n }\n\n return {\n data,\n total\n }\n };\n\n const removeItems = async ({ ids }: ItemRemoveProps) => {\n\n if (!ids.length) throwError('ids is required');\n\n let response: any[] = []\n\n if (itemType === \"item\") {\n response = await itemItemService.removeItems({ itemIds: ids })\n }\n\n if (itemType === \"product\") {\n response = await itemProductService.removeProducts({ productIds: ids })\n }\n\n if (itemType === \"category\") {\n response = await itemCategoryService.removeCategories({ categoryIds: ids })\n }\n\n if (itemType === \"brand\") {\n response = await itemBrandService.removeBrands({ brandIds: ids })\n }\n\n if (itemType === \"uom\") {\n response = await itemUomService.removeUoms({ uomIds: ids })\n }\n\n return response\n };\n\n const getItemDataTypes = () => {\n\n let data: any[] = [];\n let total = 0;\n\n if (itemType === \"item\") {\n data = itemItemService.getDataTypes()\n }\n\n if (itemType === \"product\") {\n data = itemProductService.getDataTypes()\n }\n\n if (itemType === \"category\") {\n data = itemCategoryService.getDataTypes()\n }\n\n if (itemType === \"brand\") {\n data = itemBrandService.getDataTypes()\n }\n\n if (itemType === \"uom\") {\n data = itemUomService.getDataTypes()\n }\n\n return data\n };\n\n return {\n createItem,\n updateItem,\n getItem,\n listItems,\n removeItems,\n getItemDataTypes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"ItemService.js","sourceRoot":"","sources":["../../../src/services/item/ItemService.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ItemModel,\n ModelItemFields\n} from \"@/models\";\n\nimport { PrismaClient, items, Prisma } from \"@prisma/client\";\n\nimport { ItemItemGetProps, ItemItemCreateProps, ItemItemListProps, ItemItemUpdateProps, ItemItemService } from \"./ItemItemService\";\nimport { ItemProductGetProps, ItemProductCreateProps, ItemProductListProps, ItemProductUpdateProps, ItemProductService } from \"./ItemProductService\";\nimport { ItemCategoryGetProps, ItemCategoryCreateProps, ItemCategoryListProps, ItemCategoryUpdateProps, ItemCategoryService } from \"./ItemCategoryService\";\nimport { ItemBrandGetProps, ItemBrandCreateProps, ItemBrandListProps, ItemBrandUpdateProps, ItemBrandService } from \"./ItemBrandService\";\nimport { ItemUomGetProps, ItemUomCreateProps, ItemUomListProps, ItemUomUpdateProps, ItemUomService } from \"./ItemUomService\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps, throwError } from \"@/utils\";\n\nexport const itemTypes = {\n product: \"product\",\n item: \"item\",\n category: \"category\",\n brand: \"brand\",\n uom: \"uom\"\n} as const\n\nexport type ItemType = typeof itemTypes[keyof typeof itemTypes]\n\nexport type ItemServiceProps = DefaultServiceProps & {\n itemType: ItemType\n};\n\nexport type ItemGetProps = QueryGet & {\n id: number,\n};\n\nexport type ItemListProps = QueryList & {\n // id: number,\n};\n\nexport type ItemRemoveProps = {\n ids: BigInt[]\n};\n\nexport type ItemCreateProps = {\n itemType?: ItemType,\n data: (\n // item\n {\n item: Omit<ItemItemCreateProps[\"data\"][\"item\"], \"itemId\">,\n } |\n // product\n {\n item: Omit<ItemItemCreateProps[\"data\"][\"item\"], \"itemId\" | \"productId\">,\n product: Omit<ItemProductCreateProps[\"data\"][\"product\"], \"productId\">,\n } |\n // category\n {\n category: Omit<ItemCategoryCreateProps[\"data\"][\"category\"], \"categoryId\">,\n } |\n // brand\n {\n brand: Omit<ItemBrandCreateProps[\"data\"][\"brand\"], \"brandId\">,\n } |\n // uom\n {\n uom: Omit<ItemUomCreateProps[\"data\"][\"uom\"], \"uomId\">,\n }\n )\n}\n\nexport type ItemUpdateProps = {\n id: number,\n itemType?: ItemType,\n data: (\n // item\n {\n item: Omit<ItemItemUpdateProps[\"data\"][\"item\"], \"itemId\">\n } |\n // product\n {\n product: Omit<ItemProductUpdateProps[\"data\"][\"product\"], \"productId\">\n } |\n // category\n {\n category: Omit<ItemCategoryUpdateProps[\"data\"][\"category\"], \"categoryId\">\n } |\n // brand\n {\n brand: Omit<ItemBrandUpdateProps[\"data\"][\"brand\"], \"brandId\">\n } |\n // uom\n {\n uom: Omit<ItemUomUpdateProps[\"data\"][\"uom\"], \"uomId\">\n }\n )\n}\n\nconst getCreatePayload = (itemType: ItemType, data: ItemCreateProps[\"data\"]) => {\n\n if (\"product\" in data && \"item\" in data) {\n return data\n }\n\n if (\"item\" in data && !(\"product\" in data)) {\n return data[\"item\"]\n }\n\n if (\"category\" in data) {\n return data[\"category\"]\n }\n\n if (\"brand\" in data) {\n return data[\"brand\"]\n }\n\n if (\"uom\" in data) {\n return data[\"uom\"]\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (itemType: ItemType, data: ItemUpdateProps[\"data\"]) => {\n\n if (\"product\" in data) {\n return data[\"product\"]\n }\n\n if (\"item\" in data) {\n return data[\"item\"]\n }\n\n if (\"category\" in data) {\n return data[\"category\"]\n }\n\n if (\"brand\" in data) {\n return data[\"brand\"]\n }\n\n if (\"uom\" in data) {\n return data[\"uom\"]\n }\n\n return false\n\n}\n\nexport const ItemService = (props: ItemServiceProps) => {\n\n const {\n itemType = \"product\",\n ...rest\n } = props\n\n const itemItemService = ItemItemService({ ...rest })\n const itemProductService = ItemProductService({ ...rest })\n const itemCategoryService = ItemCategoryService({ ...rest })\n const itemBrandService = ItemBrandService({ ...rest })\n const itemUomService = ItemUomService({ ...rest })\n\n const createItem = async ({ data, itemType: overrideItemType }: ItemCreateProps) => {\n\n const _itemType = overrideItemType || itemType\n\n const _data = getCreatePayload(_itemType, data)\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n // create item\n // let responseItem = await itemModel.create({ data: _data })\n\n // let newItemId = responseItem.item_id\n\n let response: any = {}\n\n if (_itemType === \"product\" && \"product\" in data) {\n\n let dataProduct: ItemProductCreateProps[\"data\"] = {\n product: {\n ...data.product,\n }\n }\n\n // // create product\n // let actionResProduct = await itemProductService.createItemProduct({ data: dataProduct })\n\n // const productId = actionResProduct?.product_id ?? 0\n\n // let dataItem: ItemItemCreateProps[\"data\"] = {\n // item: {\n // productId: Number(productId),\n // ...data.item\n // }\n // }\n\n // // create first item\n // let actionResItem = await itemItemService.createItem({ data: dataItem })\n\n // response = await itemProductService.getItemProduct({ id: Number(productId), datatypes: [] })\n\n const prisma = new PrismaClient();\n\n response = await prisma.$transaction(async (tx) => {\n\n const _itemItemService = ItemItemService({ ...rest, tx })\n const _itemProductService = ItemProductService({ ...rest, tx })\n\n // 1. create product\n const actionResProduct = await _itemProductService.createItemProduct({\n data: dataProduct\n })\n\n const productId = actionResProduct.product_id\n\n // 2. create item\n const dataItem: ItemItemCreateProps[\"data\"] = {\n item: {\n productId: Number(productId),\n ...data.item\n }\n }\n\n const actionResItem = await _itemItemService.createItem({\n data: dataItem\n })\n\n // 3. fetch final result\n const response = await _itemProductService.getItemProduct({\n id: Number(productId),\n datatypes: []\n })\n\n return response\n })\n }\n\n if (_itemType === \"item\" && \"item\" in data && !(\"product\" in data)) {\n\n let dataItem: ItemItemCreateProps[\"data\"] = {\n item: {\n ...data.item,\n }\n }\n\n // create item\n let actionRes = await itemItemService.createItem({ data: dataItem })\n\n response = await itemItemService.getItem({ id: Number(actionRes?.item_id), datatypes: [] })\n }\n\n if (_itemType === \"category\" && \"category\" in data) {\n\n let dataCategory: ItemCategoryCreateProps[\"data\"] = {\n category: {\n ...data.category,\n }\n }\n\n // create category\n let actionRes = await itemCategoryService.createCategory({ data: dataCategory })\n\n response = await itemCategoryService.getCategory({ id: Number(actionRes?.category_id), datatypes: [] })\n }\n\n if (_itemType === \"brand\" && \"brand\" in data) {\n\n let dataBrand: ItemBrandCreateProps[\"data\"] = {\n brand: {\n ...data.brand,\n }\n }\n\n // create brand\n let actionRes = await itemBrandService.createBrand({ data: dataBrand })\n\n response = await itemBrandService.getBrand({ id: Number(actionRes?.brand_id), datatypes: [] })\n }\n\n if (_itemType === \"uom\" && \"uom\" in data) {\n\n let dataUom: ItemUomCreateProps[\"data\"] = {\n uom: {\n ...data.uom,\n }\n }\n\n // create uom\n let actionRes = await itemUomService.createUom({ data: dataUom })\n\n response = await itemUomService.getUom({ id: Number(actionRes?.uom_id), datatypes: [] })\n }\n\n return response\n }\n\n const updateItem = async ({ id, data, itemType: overrideItemType }: ItemUpdateProps) => {\n\n const _itemType = overrideItemType || itemType\n\n const _data = getUpdatePayload(_itemType, data)\n\n if (!_data) {\n throw new Error(`Invalid update payload: ${JSON.stringify(_data)}`);\n }\n\n let response: any = {}\n\n if (_itemType === \"product\" && \"product\" in data) {\n\n let dataProduct: ItemProductUpdateProps[\"data\"] = {\n product: {\n ...data.product\n }\n }\n\n await itemProductService.updateItemProduct({ productId: Number(id), data: dataProduct })\n\n response = await itemProductService.getItemProduct({ id: Number(id), datatypes: [] })\n\n }\n\n if (_itemType === \"item\" && \"item\" in data) {\n\n let dataItem: ItemItemUpdateProps[\"data\"] = {\n item: {\n ...data.item\n }\n }\n\n await itemItemService.updateItem({ itemId: Number(id), data: dataItem })\n\n response = await itemItemService.getItem({ id: Number(id), datatypes: [] })\n\n }\n\n if (_itemType === \"category\" && \"category\" in data) {\n\n let dataCategory: ItemCategoryUpdateProps[\"data\"] = {\n category: {\n ...data.category\n }\n }\n\n await itemCategoryService.updateCategory({ categoryId: Number(id), data: dataCategory })\n\n response = await itemCategoryService.getCategory({ id: Number(id), datatypes: [] })\n\n }\n\n if (_itemType === \"brand\" && \"brand\" in data) {\n\n let dataBrand: ItemBrandUpdateProps[\"data\"] = {\n brand: {\n ...data.brand\n }\n }\n\n await itemBrandService.updateBrand({ brandId: Number(id), data: dataBrand })\n\n response = await itemBrandService.getBrand({ id: Number(id), datatypes: [] })\n\n }\n\n if (_itemType === \"uom\" && \"uom\" in data) {\n\n let dataUom: ItemUomUpdateProps[\"data\"] = {\n uom: {\n ...data.uom\n }\n }\n\n await itemUomService.updateUom({ uomId: Number(id), data: dataUom })\n\n response = await itemUomService.getUom({ id: Number(id), datatypes: [] })\n\n }\n\n return response\n }\n\n const getItem = async ({ id, datatypes = [] }: ItemGetProps) => {\n\n let data: any = {}\n\n if (itemType === \"item\") {\n data = await itemItemService.getItem({ id, datatypes: datatypes as ItemItemGetProps[\"datatypes\"] })\n }\n\n if (itemType === \"product\") {\n data = await itemProductService.getItemProduct({ id, datatypes: datatypes as ItemProductGetProps[\"datatypes\"] })\n }\n\n if (itemType === \"category\") {\n data = await itemCategoryService.getCategory({ id, datatypes: datatypes as ItemCategoryGetProps[\"datatypes\"] })\n }\n\n if (itemType === \"brand\") {\n data = await itemBrandService.getBrand({ id, datatypes: datatypes as ItemBrandGetProps[\"datatypes\"] })\n }\n\n if (itemType === \"uom\") {\n data = await itemUomService.getUom({ id, datatypes: datatypes as ItemUomGetProps[\"datatypes\"] })\n }\n\n if (!data) {\n throw new Error(`Invalid id: ${id}`);\n }\n\n return data\n };\n\n const listItems = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes }: ItemListProps) => {\n\n let data: any[] = [];\n let total = 0;\n\n if (itemType === \"item\") {\n ({ data, total } = await itemItemService.listItems(\n { limit, offset, filters, sortfield, sortorder, datatypes: datatypes as ItemItemListProps[\"datatypes\"] }\n ))\n }\n\n if (itemType === \"product\") {\n ({ data, total } = await itemProductService.listItemProducts(\n { limit, offset, filters, sortfield, sortorder, datatypes: datatypes as ItemProductListProps[\"datatypes\"] }\n ))\n }\n\n if (itemType === \"category\") {\n ({ data, total } = await itemCategoryService.listCategories(\n { limit, offset, filters, sortfield, sortorder, datatypes: datatypes as ItemCategoryListProps[\"datatypes\"] }\n ))\n }\n\n if (itemType === \"brand\") {\n ({ data, total } = await itemBrandService.listBrands(\n { limit, offset, filters, sortfield, sortorder, datatypes: datatypes as ItemBrandListProps[\"datatypes\"] }\n ))\n }\n\n if (itemType === \"uom\") {\n ({ data, total } = await itemUomService.listUoms(\n { limit, offset, filters, sortfield, sortorder, datatypes: datatypes as ItemUomListProps[\"datatypes\"] }\n ))\n }\n\n return {\n data,\n total\n }\n };\n\n const removeItems = async ({ ids }: ItemRemoveProps) => {\n\n if (!ids.length) throwError('ids is required');\n\n let response: any[] = []\n\n if (itemType === \"item\") {\n response = await itemItemService.removeItems({ itemIds: ids })\n }\n\n if (itemType === \"product\") {\n response = await itemProductService.removeProducts({ productIds: ids })\n }\n\n if (itemType === \"category\") {\n response = await itemCategoryService.removeCategories({ categoryIds: ids })\n }\n\n if (itemType === \"brand\") {\n response = await itemBrandService.removeBrands({ brandIds: ids })\n }\n\n if (itemType === \"uom\") {\n response = await itemUomService.removeUoms({ uomIds: ids })\n }\n\n return response\n };\n\n const getItemDataTypes = () => {\n\n let data: any[] = [];\n let total = 0;\n\n if (itemType === \"item\") {\n data = itemItemService.getDataTypes()\n }\n\n if (itemType === \"product\") {\n data = itemProductService.getDataTypes()\n }\n\n if (itemType === \"category\") {\n data = itemCategoryService.getDataTypes()\n }\n\n if (itemType === \"brand\") {\n data = itemBrandService.getDataTypes()\n }\n\n if (itemType === \"uom\") {\n data = itemUomService.getDataTypes()\n }\n\n return data\n };\n\n return {\n createItem,\n updateItem,\n getItem,\n listItems,\n removeItems,\n getItemDataTypes\n }\n\n}\n\n"]}
@@ -21,6 +21,7 @@ export type ItemUomCreateProps = {
21
21
  data: {
22
22
  uom: {
23
23
  name: string;
24
+ code: string;
24
25
  description: string;
25
26
  metricType: ItemUomMetricType;
26
27
  metricTypeDisplayName: string;
@@ -34,6 +35,7 @@ export type ItemUomUpdateProps = {
34
35
  data: {
35
36
  uom: {
36
37
  name: string;
38
+ code?: string;
37
39
  description: string;
38
40
  metricType: ItemUomMetricType;
39
41
  metricTypeDisplayName: string;
@@ -51,13 +53,14 @@ export declare const ItemUomService: (props: ItemUomServiceProps) => {
51
53
  isdelete: boolean | null;
52
54
  istrash: boolean | null;
53
55
  accountid: bigint;
54
- status: number | null;
55
- name: string | null;
56
+ status: boolean | null;
56
57
  description: string | null;
57
58
  uom_id: bigint;
59
+ uom_name: string | null;
60
+ uom_code: string;
58
61
  metric_type: string | null;
59
62
  metric_type_display_name: string | null;
60
- decimal_digit: number | null;
63
+ decimal_digit: number;
61
64
  }>;
62
65
  updateUom: ({ uomId, data }: ItemUomUpdateProps) => Promise<{
63
66
  createdatetime: Date | null;
@@ -67,13 +70,14 @@ export declare const ItemUomService: (props: ItemUomServiceProps) => {
67
70
  isdelete: boolean | null;
68
71
  istrash: boolean | null;
69
72
  accountid: bigint;
70
- status: number | null;
71
- name: string | null;
73
+ status: boolean | null;
72
74
  description: string | null;
73
75
  uom_id: bigint;
76
+ uom_name: string | null;
77
+ uom_code: string;
74
78
  metric_type: string | null;
75
79
  metric_type_display_name: string | null;
76
- decimal_digit: number | null;
80
+ decimal_digit: number;
77
81
  }>;
78
82
  getUom: ({ id, datatypes }: ItemUomGetProps) => Promise<any>;
79
83
  listUoms: ({ limit, offset, filters, sortfield, sortorder, datatypes }: ItemUomListProps) => Promise<{
@@ -88,13 +92,14 @@ export declare const ItemUomService: (props: ItemUomServiceProps) => {
88
92
  isdelete: boolean | null;
89
93
  istrash: boolean | null;
90
94
  accountid: bigint;
91
- status: number | null;
92
- name: string | null;
95
+ status: boolean | null;
93
96
  description: string | null;
94
97
  uom_id: bigint;
98
+ uom_name: string | null;
99
+ uom_code: string;
95
100
  metric_type: string | null;
96
101
  metric_type_display_name: string | null;
97
- decimal_digit: number | null;
102
+ decimal_digit: number;
98
103
  }[]>;
99
104
  getDataTypes: () => string[];
100
105
  };
@@ -11,9 +11,10 @@ exports.uomDataTypes = {
11
11
  const getCreatePayload = (data) => {
12
12
  if ("uom" in data) {
13
13
  return {
14
- [`${models_1.ModelUomFields.name}`]: data.uom.description,
14
+ [`${models_1.ModelUomFields.uom_name}`]: data.uom.name,
15
+ [`${models_1.ModelUomFields.uom_code}`]: data.uom.code,
15
16
  [`${models_1.ModelUomFields.description}`]: data.uom.description,
16
- [`${models_1.ModelUomFields.status}`]: data.uom.status ? 1 : 0,
17
+ [`${models_1.ModelUomFields.status}`]: Boolean(data.uom.status),
17
18
  [`${models_1.ModelUomFields.decimal_digit}`]: data.uom.decimalDigit,
18
19
  [`${models_1.ModelUomFields.metric_type}`]: data.uom.metricType,
19
20
  [`${models_1.ModelUomFields.metric_type_display_name}`]: data.uom.metricTypeDisplayName
@@ -24,9 +25,10 @@ const getCreatePayload = (data) => {
24
25
  const getUpdatePayload = (data) => {
25
26
  if ("uom" in data) {
26
27
  return {
27
- [`${models_1.ModelUomFields.name}`]: data.uom.description,
28
+ [`${models_1.ModelUomFields.uom_name}`]: data.uom.name,
29
+ ...(data.uom?.code) ? { [`${models_1.ModelUomFields.uom_code}`]: data.uom.code } : {},
28
30
  [`${models_1.ModelUomFields.description}`]: data.uom.description,
29
- [`${models_1.ModelUomFields.status}`]: data.uom.status ? 1 : 0,
31
+ [`${models_1.ModelUomFields.status}`]: Boolean(data.uom.status),
30
32
  [`${models_1.ModelUomFields.decimal_digit}`]: data.uom.decimalDigit,
31
33
  [`${models_1.ModelUomFields.metric_type}`]: data.uom.metricType,
32
34
  [`${models_1.ModelUomFields.metric_type_display_name}`]: data.uom.metricTypeDisplayName
@@ -37,7 +39,8 @@ const getUpdatePayload = (data) => {
37
39
  let mainSqlSelect = {
38
40
  [`uom.${models_1.ModelUomFields.uom_id}`]: "uom_id",
39
41
  [`uom.${models_1.ModelUomFields.description}`]: "description",
40
- [`uom.${models_1.ModelUomFields.name}`]: "name",
42
+ [`uom.${models_1.ModelUomFields.uom_name}`]: "name",
43
+ [`uom.${models_1.ModelUomFields.uom_code}`]: "code",
41
44
  [`uom.${models_1.ModelUomFields.status}`]: "status",
42
45
  [`uom.${models_1.ModelUomFields.metric_type}`]: "metric_type",
43
46
  [`uom.${models_1.ModelUomFields.metric_type_display_name}`]: "metric_type_display_name",
@@ -57,6 +60,17 @@ const ItemUomService = (props) => {
57
60
  const injectionFieldService = (0, services_1.InjectionFieldService)({ ...rest, injectionFieldType: "item" });
58
61
  const uomModel = (0, models_1.UomModel)({ ...rest });
59
62
  const createUom = async ({ data }) => {
63
+ // validate code is existed
64
+ const validateCode = await uomModel.get({
65
+ where: {
66
+ [`${models_1.ModelUomFields.uom_code}`]: data.uom.code,
67
+ [`${models_1.ModelUomFields.accountid}`]: rest.accountId,
68
+ [`${models_1.ModelUomFields.isdelete}`]: false
69
+ }
70
+ });
71
+ if (validateCode) {
72
+ throw new Error(`Uom code is existed: ${validateCode.uom_code ?? 0}(${validateCode.uom_id})`);
73
+ }
60
74
  const _data = getCreatePayload(data);
61
75
  if (!_data) {
62
76
  throw new Error(`Invalid create uom payload: ${JSON.stringify(_data)}`);
@@ -65,6 +79,22 @@ const ItemUomService = (props) => {
65
79
  return response;
66
80
  };
67
81
  const updateUom = async ({ uomId, data }) => {
82
+ // validate code is existed - only if code is passed in
83
+ if (data.uom?.code) {
84
+ const validateCode = await uomModel.get({
85
+ where: {
86
+ [`${models_1.ModelUomFields.uom_id}`]: {
87
+ not: BigInt(uomId)
88
+ },
89
+ [`${models_1.ModelUomFields.uom_code}`]: data.uom.code,
90
+ [`${models_1.ModelUomFields.accountid}`]: rest.accountId,
91
+ [`${models_1.ModelUomFields.isdelete}`]: false
92
+ }
93
+ });
94
+ if (validateCode) {
95
+ throw new Error(`Uom code is existed: ${validateCode.uom_code ?? 0}(${validateCode.uom_id})`);
96
+ }
97
+ }
68
98
  const _data = getUpdatePayload(data);
69
99
  if (!_data) {
70
100
  throw new Error(`Invalid update uom payload: ${JSON.stringify(_data)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"ItemUomService.js","sourceRoot":"","sources":["../../../src/services/item/ItemUomService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n ModelUomFields,\n UomModel\n} from \"@/models\";\n\nimport { InjectionFieldService } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nexport type ItemType = \"uom\"\n\nexport const uomDataTypes = {\n uomInjectionFields: \"uom_injection_fields\"\n}\n\nexport type ItemUomDataType = keyof typeof uomDataTypes;\n\nexport type ItemUomServiceProps = DefaultServiceProps & {};\n\nexport type ItemUomGetProps = {\n id: number,\n datatypes: ItemUomDataType[]\n};\n\nexport type ItemUomListProps = QueryList & {\n datatypes: ItemUomDataType[]\n};\n\nexport type ItemUomRemoveProps = {\n uomIds: BigInt[]\n};\n\ntype ItemUomMetricType = \"weight\" | \"unit\" | \"volumn\"\n\nexport type ItemUomCreateProps = {\n data:\n // uom\n {\n uom: {\n name: string,\n description: string,\n metricType: ItemUomMetricType\n metricTypeDisplayName: string\n decimalDigit: number\n status: boolean\n }\n }\n}\n\nexport type ItemUomUpdateProps = {\n uomId: number,\n data:\n // uom\n {\n uom: {\n name: string,\n description: string,\n metricType: ItemUomMetricType\n metricTypeDisplayName: string\n decimalDigit: number\n status: boolean\n }\n }\n}\n\nconst getCreatePayload = (data: ItemUomCreateProps[\"data\"]) => {\n\n if (\"uom\" in data) {\n\n return {\n [`${ModelUomFields.name}`]: data.uom.description,\n [`${ModelUomFields.description}`]: data.uom.description,\n [`${ModelUomFields.status}`]: data.uom.status ? 1 : 0,\n [`${ModelUomFields.decimal_digit}`]: data.uom.decimalDigit,\n [`${ModelUomFields.metric_type}`]: data.uom.metricType,\n [`${ModelUomFields.metric_type_display_name}`]: data.uom.metricTypeDisplayName\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: ItemUomUpdateProps[\"data\"]) => {\n\n if (\"uom\" in data) {\n\n return {\n [`${ModelUomFields.name}`]: data.uom.description,\n [`${ModelUomFields.description}`]: data.uom.description,\n [`${ModelUomFields.status}`]: data.uom.status ? 1 : 0,\n [`${ModelUomFields.decimal_digit}`]: data.uom.decimalDigit,\n [`${ModelUomFields.metric_type}`]: data.uom.metricType,\n [`${ModelUomFields.metric_type_display_name}`]: data.uom.metricTypeDisplayName\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`uom.${ModelUomFields.uom_id}`]: \"uom_id\",\n [`uom.${ModelUomFields.description}`]: \"description\",\n [`uom.${ModelUomFields.name}`]: \"name\",\n [`uom.${ModelUomFields.status}`]: \"status\",\n [`uom.${ModelUomFields.metric_type}`]: \"metric_type\",\n [`uom.${ModelUomFields.metric_type_display_name}`]: \"metric_type_display_name\",\n [`uom.${ModelUomFields.decimal_digit}`]: \"decimal_digit\",\n}\n\nlet defaultSqlSelect = {\n [`uom.${ModelUomFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`uom.${ModelUomFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`uom.${ModelUomFields.isdelete}`]: \"isdelete\",\n [`uom.${ModelUomFields.istrash}`]: \"istrash\",\n [`uom.${ModelUomFields.accountid}`]: \"accountid\",\n}\n\nexport const ItemUomService = (props: ItemUomServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"item\" })\n\n const uomModel = UomModel({ ...rest })\n\n const createUom = async ({ data }: ItemUomCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create uom payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await uomModel.create({ data: _data })\n\n return response\n }\n\n const updateUom = async ({ uomId, data }: ItemUomUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update uom payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await uomModel.update({ where: { [`${ModelUomFields.uom_id}`]: uomId }, data: _data })\n\n return response\n }\n\n const getUom = async ({ id, datatypes = [] }: ItemUomGetProps) => {\n\n let { data } = await listUoms({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelUomFields.uom_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelUomFields.uom_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listUoms = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: ItemUomListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"uom\", \"users\", \"creator\", [\"uom.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"uom\", \"users\", \"updater\", [\"uom.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(uomDataTypes.uomInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"uom\")\n\n const uomInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif\", activeInjectionFields)\n\n // const uomInjectionFieldSqlSelect = activeInjectionFields.reduce((acc, col) => {\n // acc[`iif.${col}`] = `${col}`;\n // return acc;\n // }, {} as Record<string, string>);\n\n filterColumns = { ...filterColumns, ...uomInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, uomInjectionFieldSqlSelect)] : [])]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"uom\", \"item_injection_fields\", \"iif\", [\"uom.uom_id = iif.uom_id\", \"iif.field_ref = 'item'\", \"iif.field_module = 'uom'\", \"iif.isdelete = false\", \"iif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(uomInjectionFieldSqlSelect)]\n }\n\n let sqlWhere = [\n `uom.isdelete = false`,\n `uom.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"uoms\",\n mainAlias: \"uom\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await uomModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeUoms = async ({ uomIds }: ItemUomRemoveProps) => {\n\n if (!uomIds.length) throwError('uomIds is required');\n\n const response = await uomModel.remove({ where: { [`${ModelUomFields.uom_id}`]: { in: uomIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(uomDataTypes);\n }\n\n return {\n createUom,\n updateUom,\n getUom,\n listUoms,\n removeUoms,\n getDataTypes\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"ItemUomService.js","sourceRoot":"","sources":["../../../src/services/item/ItemUomService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n ModelUomFields,\n UomModel\n} from \"@/models\";\n\nimport { InjectionFieldService } from \"@/services\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { DefaultServiceProps } from \"@/utils\";\n\nimport { buildSqlRelation, buildSqlRawSelect, buildSqlWhere, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy, buildInjectionFieldsSqlSelect } from \"@/lib\";\n\nexport type ItemType = \"uom\"\n\nexport const uomDataTypes = {\n uomInjectionFields: \"uom_injection_fields\"\n}\n\nexport type ItemUomDataType = keyof typeof uomDataTypes;\n\nexport type ItemUomServiceProps = DefaultServiceProps & {};\n\nexport type ItemUomGetProps = {\n id: number,\n datatypes: ItemUomDataType[]\n};\n\nexport type ItemUomListProps = QueryList & {\n datatypes: ItemUomDataType[]\n};\n\nexport type ItemUomRemoveProps = {\n uomIds: BigInt[]\n};\n\ntype ItemUomMetricType = \"weight\" | \"unit\" | \"volumn\"\n\nexport type ItemUomCreateProps = {\n data:\n // uom\n {\n uom: {\n name: string,\n code: string,\n description: string,\n metricType: ItemUomMetricType\n metricTypeDisplayName: string\n decimalDigit: number\n status: boolean\n }\n }\n}\n\nexport type ItemUomUpdateProps = {\n uomId: number,\n data:\n // uom\n {\n uom: {\n name: string,\n code?: string\n description: string,\n metricType: ItemUomMetricType\n metricTypeDisplayName: string\n decimalDigit: number\n status: boolean\n }\n }\n}\n\nconst getCreatePayload = (data: ItemUomCreateProps[\"data\"]) => {\n\n if (\"uom\" in data) {\n\n return {\n [`${ModelUomFields.uom_name}`]: data.uom.name,\n [`${ModelUomFields.uom_code}`]: data.uom.code,\n [`${ModelUomFields.description}`]: data.uom.description,\n [`${ModelUomFields.status}`]: Boolean(data.uom.status),\n [`${ModelUomFields.decimal_digit}`]: data.uom.decimalDigit,\n [`${ModelUomFields.metric_type}`]: data.uom.metricType,\n [`${ModelUomFields.metric_type_display_name}`]: data.uom.metricTypeDisplayName\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: ItemUomUpdateProps[\"data\"]) => {\n\n if (\"uom\" in data) {\n\n return {\n [`${ModelUomFields.uom_name}`]: data.uom.name,\n ...(data.uom?.code) ? { [`${ModelUomFields.uom_code}`]: data.uom.code } : {},\n [`${ModelUomFields.description}`]: data.uom.description,\n [`${ModelUomFields.status}`]: Boolean(data.uom.status),\n [`${ModelUomFields.decimal_digit}`]: data.uom.decimalDigit,\n [`${ModelUomFields.metric_type}`]: data.uom.metricType,\n [`${ModelUomFields.metric_type_display_name}`]: data.uom.metricTypeDisplayName\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`uom.${ModelUomFields.uom_id}`]: \"uom_id\",\n [`uom.${ModelUomFields.description}`]: \"description\",\n [`uom.${ModelUomFields.uom_name}`]: \"name\",\n [`uom.${ModelUomFields.uom_code}`]: \"code\",\n [`uom.${ModelUomFields.status}`]: \"status\",\n [`uom.${ModelUomFields.metric_type}`]: \"metric_type\",\n [`uom.${ModelUomFields.metric_type_display_name}`]: \"metric_type_display_name\",\n [`uom.${ModelUomFields.decimal_digit}`]: \"decimal_digit\",\n}\n\nlet defaultSqlSelect = {\n [`uom.${ModelUomFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`uom.${ModelUomFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`uom.${ModelUomFields.isdelete}`]: \"isdelete\",\n [`uom.${ModelUomFields.istrash}`]: \"istrash\",\n [`uom.${ModelUomFields.accountid}`]: \"accountid\",\n}\n\nexport const ItemUomService = (props: ItemUomServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"item\" })\n\n const uomModel = UomModel({ ...rest })\n\n const createUom = async ({ data }: ItemUomCreateProps) => {\n\n // validate code is existed\n const validateCode = await uomModel.get({\n where: {\n [`${ModelUomFields.uom_code}`]: data.uom.code,\n [`${ModelUomFields.accountid}`]: rest.accountId,\n [`${ModelUomFields.isdelete}`]: false\n }\n })\n\n if (validateCode) {\n throw new Error(`Uom code is existed: ${validateCode.uom_code ?? 0}(${validateCode.uom_id})`);\n }\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create uom payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await uomModel.create({ data: _data })\n\n return response\n }\n\n const updateUom = async ({ uomId, data }: ItemUomUpdateProps) => {\n\n // validate code is existed - only if code is passed in\n if (data.uom?.code) {\n const validateCode = await uomModel.get({\n where: {\n [`${ModelUomFields.uom_id}`]: {\n not: BigInt(uomId)\n },\n [`${ModelUomFields.uom_code}`]: data.uom.code,\n [`${ModelUomFields.accountid}`]: rest.accountId,\n [`${ModelUomFields.isdelete}`]: false\n }\n })\n\n if (validateCode) {\n throw new Error(`Uom code is existed: ${validateCode.uom_code ?? 0}(${validateCode.uom_id})`);\n }\n }\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update uom payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await uomModel.update({ where: { [`${ModelUomFields.uom_id}`]: uomId }, data: _data })\n\n return response\n }\n\n const getUom = async ({ id, datatypes = [] }: ItemUomGetProps) => {\n\n let { data } = await listUoms({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelUomFields.uom_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelUomFields.uom_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listUoms = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: ItemUomListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"uom\", \"users\", \"creator\", [\"uom.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"uom\", \"users\", \"updater\", [\"uom.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(uomDataTypes.uomInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"uom\")\n\n const uomInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif\", activeInjectionFields)\n\n // const uomInjectionFieldSqlSelect = activeInjectionFields.reduce((acc, col) => {\n // acc[`iif.${col}`] = `${col}`;\n // return acc;\n // }, {} as Record<string, string>);\n\n filterColumns = { ...filterColumns, ...uomInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, uomInjectionFieldSqlSelect)] : [])]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"uom\", \"item_injection_fields\", \"iif\", [\"uom.uom_id = iif.uom_id\", \"iif.field_ref = 'item'\", \"iif.field_module = 'uom'\", \"iif.isdelete = false\", \"iif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(uomInjectionFieldSqlSelect)]\n }\n\n let sqlWhere = [\n `uom.isdelete = false`,\n `uom.istrash = false`,\n ...(filters.length ? [buildSqlWhere(filters, filterColumns)?.where] : []),\n ]\n\n let sqlOrderby = buildSqlOrderBy(sortfield, sortorder)\n let sqlLimitOffset = buildSqlLimitOffset(limit, offset)\n\n const sqlRaw = buildSqlRawSelect({\n tableName: \"uoms\",\n mainAlias: \"uom\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await uomModel.raw(sqlRaw)\n\n const response = {\n data: data.map(({ filtered_count, ...rest }) => rest),\n total: data.length ? Number(data[0].filtered_count) : 0\n }\n\n return response\n\n };\n\n const removeUoms = async ({ uomIds }: ItemUomRemoveProps) => {\n\n if (!uomIds.length) throwError('uomIds is required');\n\n const response = await uomModel.remove({ where: { [`${ModelUomFields.uom_id}`]: { in: uomIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(uomDataTypes);\n }\n\n return {\n createUom,\n updateUom,\n getUom,\n listUoms,\n removeUoms,\n getDataTypes\n }\n\n}\n\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "storemw-core-api",
3
- "version": "1.0.170",
3
+ "version": "1.0.172",
4
4
  "description": "STOREMW Core API",
5
5
  "main": "dist/app.js",
6
6
  "types": "dist/app.d.ts",
@@ -407,36 +407,37 @@ model branches {
407
407
  }
408
408
 
409
409
  model brands {
410
- brand_id BigInt @id(map: "cl_brands_pkey") @default(autoincrement())
411
- name String? @db.VarChar(128)
412
- description String? @db.VarChar(256)
413
- status Int? @db.SmallInt
414
- createdatetime DateTime? @db.Timestamp(6)
410
+ brand_id BigInt @id @default(autoincrement())
411
+ createdatetime DateTime? @db.Timestamptz(6)
415
412
  createuserid BigInt @default(0)
416
- updatedatetime DateTime? @db.Timestamp(6)
413
+ updatedatetime DateTime? @db.Timestamptz(6)
417
414
  updateuserid BigInt @default(0)
418
415
  isdelete Boolean? @default(false)
419
416
  istrash Boolean? @default(false)
420
417
  accountid BigInt @default(0)
418
+ brand_name String? @db.VarChar(128)
419
+ brand_code String @default(dbgenerated("0")) @db.VarChar(128)
420
+ description String? @db.VarChar(256)
421
+ status Boolean?
421
422
 
422
423
  @@schema("public")
423
424
  }
424
425
 
425
426
  model categories {
426
- category_id BigInt @id(map: "cl_categories_pkey") @default(autoincrement())
427
- parent_category_id BigInt @default(0)
428
- name String? @db.VarChar(128)
429
- description String? @db.VarChar(256)
430
- status Int? @db.SmallInt
431
- createdatetime DateTime? @db.Timestamp(6)
427
+ category_id BigInt @id @default(autoincrement())
428
+ createdatetime DateTime? @db.Timestamptz(6)
432
429
  createuserid BigInt @default(0)
433
- updatedatetime DateTime? @db.Timestamp(6)
430
+ updatedatetime DateTime? @db.Timestamptz(6)
434
431
  updateuserid BigInt @default(0)
435
432
  isdelete Boolean? @default(false)
436
433
  istrash Boolean? @default(false)
437
434
  accountid BigInt @default(0)
435
+ category_code String @default(dbgenerated("0")) @db.VarChar(128)
436
+ parent_category_id BigInt @default(0)
437
+ category_name String? @db.VarChar(128)
438
+ description String? @db.VarChar(256)
439
+ status Boolean?
438
440
 
439
- @@index([category_id], map: "ids_categories_category_id")
440
441
  @@schema("public")
441
442
  }
442
443
 
@@ -804,44 +805,6 @@ model item_injection_fields {
804
805
  @@schema("public")
805
806
  }
806
807
 
807
- model items {
808
- item_id BigInt @id(map: "cl_items_pkey") @default(autoincrement())
809
- uom_id BigInt @default(0)
810
- item_code String? @db.VarChar(256)
811
- item_description String?
812
- cost Decimal? @default(0.0000) @db.Decimal(10, 4)
813
- uom_price Decimal? @default(0.0000) @db.Decimal(15, 4)
814
- remark String?
815
- summary String? @db.VarChar(256)
816
- gross_weight Decimal? @default(0.0000) @db.Decimal(10, 4)
817
- net_weight Decimal? @default(0.0000) @db.Decimal(10, 4)
818
- uom_bal Decimal @default(0.0000) @db.Decimal(10, 4)
819
- status Int? @default(0) @db.SmallInt
820
- is_package Int @default(0) @db.SmallInt
821
- createdatetime DateTime? @db.Timestamp(6)
822
- createuserid BigInt @default(0)
823
- updatedatetime DateTime? @db.Timestamp(6)
824
- updateuserid BigInt @default(0)
825
- isdelete Boolean? @default(false)
826
- istrash Boolean? @default(false)
827
- accountid BigInt @default(0)
828
- product_id BigInt @default(0)
829
- floor_price Decimal? @db.Decimal(10, 4)
830
- dimension_width Decimal? @default(0.0000) @db.Decimal(10, 4)
831
- dimension_height Decimal? @db.Decimal(10, 4)
832
- dimension_length Decimal? @db.Decimal(10, 4)
833
- cbm Decimal? @db.Decimal(10, 4)
834
- volume_weight Decimal? @db.Decimal(10, 4)
835
-
836
- @@index([product_id], map: "cl_items_product_id_index")
837
- @@index([accountid], map: "ids_items_account_id")
838
- @@index([accountid, isdelete, status], map: "ids_items_account_status_is_delete")
839
- @@index([isdelete], map: "ids_items_is_delete")
840
- @@index([status], map: "ids_items_status")
841
- @@index([uom_id], map: "ids_items_uom_id")
842
- @@schema("public")
843
- }
844
-
845
808
  model location_zones {
846
809
  location_zone_id BigInt @id(map: "cl_location_zones_pkey") @default(autoincrement())
847
810
  location_id BigInt @default(0)
@@ -881,27 +844,23 @@ model logistic_injection_fields {
881
844
  }
882
845
 
883
846
  model products {
884
- product_id BigInt @id(map: "cl_goods_pkey") @default(autoincrement())
885
- product_name String @db.VarChar(256)
886
- category_id BigInt @default(0)
887
- brand_id BigInt? @default(0)
888
- model String? @db.VarChar(256)
889
- description String?
890
- summary String?
891
- status Int? @default(0) @db.SmallInt
892
- createdatetime DateTime? @db.Timestamp(6)
847
+ product_id BigInt @id @default(autoincrement())
848
+ createdatetime DateTime? @db.Timestamptz(6)
893
849
  createuserid BigInt @default(0)
894
- updatedatetime DateTime? @db.Timestamp(6)
850
+ updatedatetime DateTime? @db.Timestamptz(6)
895
851
  updateuserid BigInt @default(0)
896
852
  isdelete Boolean? @default(false)
897
853
  istrash Boolean? @default(false)
898
854
  accountid BigInt @default(0)
899
- product_code String? @db.VarChar
855
+ product_code String @default(dbgenerated("0")) @db.VarChar(255)
856
+ product_name String @db.VarChar(255)
857
+ category_id BigInt @default(0)
858
+ brand_id BigInt @default(0)
859
+ model String? @db.VarChar(128)
860
+ description String? @db.VarChar(256)
861
+ summary String? @db.VarChar(256)
862
+ status Boolean? @default(false)
900
863
 
901
- @@index([brand_id], map: "ids_products_brand_id")
902
- @@index([category_id], map: "ids_products_category_id")
903
- @@index([product_name], map: "ids_products_item_name")
904
- @@index([product_code], map: "ids_products_product_code")
905
864
  @@schema("public")
906
865
  }
907
866
 
@@ -955,22 +914,22 @@ model retailers {
955
914
  }
956
915
 
957
916
  model uoms {
958
- uom_id BigInt @id(map: "cl_uoms_pkey") @default(autoincrement())
959
- name String? @db.VarChar(128)
960
- description String? @db.VarChar(256)
961
- metric_type String? @db.VarChar(256)
962
- status Int? @db.SmallInt
963
- createdatetime DateTime? @db.Timestamp(6)
917
+ uom_id BigInt @id @default(autoincrement())
918
+ createdatetime DateTime? @db.Timestamptz(6)
964
919
  createuserid BigInt @default(0)
965
- updatedatetime DateTime? @db.Timestamp(6)
920
+ updatedatetime DateTime? @db.Timestamptz(6)
966
921
  updateuserid BigInt @default(0)
967
922
  isdelete Boolean? @default(false)
968
923
  istrash Boolean? @default(false)
969
924
  accountid BigInt @default(0)
925
+ uom_name String? @db.VarChar(128)
926
+ uom_code String @default(dbgenerated("0")) @db.VarChar(128)
927
+ description String? @db.VarChar(256)
928
+ metric_type String? @db.VarChar(256)
970
929
  metric_type_display_name String? @db.VarChar(128)
971
- decimal_digit Int? @default(2) @db.SmallInt
930
+ decimal_digit Int @default(2) @db.SmallInt
931
+ status Boolean?
972
932
 
973
- @@index([metric_type], map: "ids_uoms_metric_type")
974
933
  @@schema("public")
975
934
  }
976
935
 
@@ -2407,22 +2366,6 @@ model cl_wallets {
2407
2366
  @@schema("public")
2408
2367
  }
2409
2368
 
2410
- model custom_brands {
2411
- custom_brand_id BigInt @id @default(autoincrement())
2412
- createdatetime DateTime? @db.Timestamptz(6)
2413
- createuserid BigInt @default(0)
2414
- updatedatetime DateTime? @db.Timestamptz(6)
2415
- updateuserid BigInt @default(0)
2416
- isdelete Boolean? @default(false)
2417
- istrash Boolean? @default(false)
2418
- accountid BigInt @default(0)
2419
- name String? @db.VarChar(128)
2420
- description String?
2421
- status Boolean? @default(false)
2422
-
2423
- @@schema("public")
2424
- }
2425
-
2426
2369
  model document_amounts_unuse {
2427
2370
  document_amount_id BigInt @id(map: "cl_document_amount_pkey") @default(autoincrement())
2428
2371
  document_id BigInt @default(0)
@@ -3130,3 +3073,69 @@ model scheduler_requests {
3130
3073
 
3131
3074
  @@schema("public")
3132
3075
  }
3076
+
3077
+ model items {
3078
+ item_id BigInt @id(map: "items_pkey1") @default(autoincrement())
3079
+ createdatetime DateTime? @db.Timestamptz(6)
3080
+ createuserid BigInt @default(0)
3081
+ updatedatetime DateTime? @db.Timestamptz(6)
3082
+ updateuserid BigInt @default(0)
3083
+ isdelete Boolean? @default(false)
3084
+ istrash Boolean? @default(false)
3085
+ accountid BigInt @default(0)
3086
+ product_id BigInt @default(0)
3087
+ uom_id BigInt @default(0)
3088
+ uom_name String? @db.VarChar(128)
3089
+ uom_code String @default(dbgenerated("0")) @db.VarChar(128)
3090
+ item_code String? @db.VarChar(255)
3091
+ item_description String? @db.VarChar(256)
3092
+ item_cost Decimal? @default(0.0000) @db.Decimal(10, 4)
3093
+ item_price Decimal? @default(0.0000) @db.Decimal(15, 4)
3094
+ floor_price Decimal? @default(0.0000) @db.Decimal(10, 4)
3095
+ remark String? @db.VarChar(256)
3096
+ summary String? @db.VarChar(256)
3097
+ gross_weight Decimal? @default(0.0000) @db.Decimal(10, 4)
3098
+ net_weight Decimal? @default(0.0000) @db.Decimal(10, 4)
3099
+ volume_weight Decimal? @default(0.0000) @db.Decimal(10, 4)
3100
+ dimension_width Decimal? @default(0.0000) @db.Decimal(10, 4)
3101
+ dimension_height Decimal? @default(0.0000) @db.Decimal(10, 4)
3102
+ dimension_length Decimal? @default(0.0000) @db.Decimal(10, 4)
3103
+ cbm Decimal? @default(0.0000) @db.Decimal(10, 4)
3104
+ balance_quantity Decimal @default(0.0000) @db.Decimal(10, 4)
3105
+ status Boolean? @default(false)
3106
+ is_package Boolean? @default(false)
3107
+
3108
+ @@schema("public")
3109
+ }
3110
+
3111
+ model items2 {
3112
+ item_id BigInt @id(map: "items_pkey") @default(autoincrement())
3113
+ createdatetime DateTime? @db.Timestamptz(6)
3114
+ createuserid BigInt
3115
+ updatedatetime DateTime? @db.Timestamptz(6)
3116
+ updateuserid BigInt
3117
+ isdelete Boolean? @default(false)
3118
+ istrash Boolean? @default(false)
3119
+ accountid BigInt
3120
+ product_id BigInt
3121
+ uom_id BigInt
3122
+ item_code String? @db.VarChar(255)
3123
+ item_description String? @db.VarChar(256)
3124
+ item_cost Decimal? @db.Decimal(10, 4)
3125
+ item_price Decimal? @db.Decimal(15, 4)
3126
+ floor_price Decimal? @db.Decimal(10, 4)
3127
+ remark String? @db.VarChar(256)
3128
+ summary String? @db.VarChar(256)
3129
+ gross_weight Decimal? @db.Decimal(10, 4)
3130
+ net_weight Decimal? @db.Decimal(10, 4)
3131
+ volume_weight Decimal? @db.Decimal(10, 4)
3132
+ dimension_width Decimal? @db.Decimal(10, 4)
3133
+ dimension_height Decimal? @db.Decimal(10, 4)
3134
+ dimension_length Decimal? @db.Decimal(10, 4)
3135
+ cbm Decimal? @db.Decimal(10, 4)
3136
+ balance_quantity Decimal? @db.Decimal(10, 4)
3137
+ status Boolean? @default(false)
3138
+ is_package Boolean @default(false)
3139
+
3140
+ @@schema("public")
3141
+ }