storemw-core-api 1.0.169 → 1.0.171
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.
- package/dist/app.js +20 -2
- package/dist/app.js.map +1 -1
- package/dist/controllers/access_control/accessControlRoleController.js +5 -1
- package/dist/controllers/access_control/accessControlRoleController.js.map +1 -1
- package/dist/controllers/index.js +1 -1
- package/dist/controllers/item/itemController.js +22 -10
- package/dist/controllers/item/itemController.js.map +1 -1
- package/dist/lib/route_factory/RouteFactory.d.ts +15 -0
- package/dist/lib/route_factory/RouteFactory.js +21 -0
- package/dist/lib/route_factory/RouteFactory.js.map +1 -0
- package/dist/lib/route_factory/index.d.ts +6 -0
- package/dist/lib/route_factory/index.js +11 -0
- package/dist/lib/route_factory/index.js.map +1 -0
- package/dist/lib/route_factory/routeRegistry.d.ts +8 -0
- package/dist/lib/route_factory/routeRegistry.js +5 -0
- package/dist/lib/route_factory/routeRegistry.js.map +1 -0
- package/dist/lib/route_factory/routeSpec.d.ts +36 -0
- package/dist/lib/route_factory/routeSpec.js +81 -0
- package/dist/lib/route_factory/routeSpec.js.map +1 -0
- package/dist/models/item/BrandModel.d.ts +34 -23
- package/dist/models/item/CategoryModel.d.ts +34 -23
- package/dist/models/item/ItemModel.d.ts +100 -78
- package/dist/models/item/ProductModel.d.ts +33 -33
- package/dist/models/item/UomModel.d.ts +44 -33
- package/dist/route_contracts/access_control/accessControlPoliciesRoutes.d.ts +2 -0
- package/dist/route_contracts/access_control/accessControlPoliciesRoutes.js +21 -0
- package/dist/route_contracts/access_control/accessControlPoliciesRoutes.js.map +1 -0
- package/dist/route_contracts/access_control/accessControlRoleRoutes.d.ts +2 -0
- package/dist/route_contracts/access_control/accessControlRoleRoutes.js +48 -0
- package/dist/route_contracts/access_control/accessControlRoleRoutes.js.map +1 -0
- package/dist/route_contracts/access_control/accessControlRolesRoutes.d.ts +2 -0
- package/dist/route_contracts/access_control/accessControlRolesRoutes.js +37 -0
- package/dist/route_contracts/access_control/accessControlRolesRoutes.js.map +1 -0
- package/dist/route_contracts/access_control/accessControlRoutes.d.ts +2 -0
- package/dist/route_contracts/access_control/accessControlRoutes.js +18 -0
- package/dist/route_contracts/access_control/accessControlRoutes.js.map +1 -0
- package/dist/route_contracts/access_control/accessControlUserRolesRoutes.d.ts +2 -0
- package/dist/route_contracts/access_control/accessControlUserRolesRoutes.js +21 -0
- package/dist/route_contracts/access_control/accessControlUserRolesRoutes.js.map +1 -0
- package/dist/route_contracts/auth/authRoutes.d.ts +2 -0
- package/dist/route_contracts/auth/authRoutes.js +23 -0
- package/dist/route_contracts/auth/authRoutes.js.map +1 -0
- package/dist/route_contracts/index.d.ts +2 -0
- package/dist/route_contracts/index.js +39 -0
- package/dist/route_contracts/index.js.map +1 -0
- package/dist/route_specs/access_control/accessControlPoliciesRouteSpecs.d.ts +2 -0
- package/dist/route_specs/access_control/accessControlPoliciesRouteSpecs.js +21 -0
- package/dist/route_specs/access_control/accessControlPoliciesRouteSpecs.js.map +1 -0
- package/dist/route_specs/access_control/accessControlRoleRouteSpecs.d.ts +2 -0
- package/dist/route_specs/access_control/accessControlRoleRouteSpecs.js +48 -0
- package/dist/route_specs/access_control/accessControlRoleRouteSpecs.js.map +1 -0
- package/dist/route_specs/access_control/accessControlRolesRouteSpecs.d.ts +2 -0
- package/dist/route_specs/access_control/accessControlRolesRouteSpecs.js +37 -0
- package/dist/route_specs/access_control/accessControlRolesRouteSpecs.js.map +1 -0
- package/dist/route_specs/access_control/accessControlRouteSpecs.d.ts +2 -0
- package/dist/route_specs/access_control/accessControlRouteSpecs.js +18 -0
- package/dist/route_specs/access_control/accessControlRouteSpecs.js.map +1 -0
- package/dist/route_specs/access_control/accessControlUserRolesRouteSpecs.d.ts +2 -0
- package/dist/route_specs/access_control/accessControlUserRolesRouteSpecs.js +21 -0
- package/dist/route_specs/access_control/accessControlUserRolesRouteSpecs.js.map +1 -0
- package/dist/route_specs/auth/authRouteSpec.d.ts +2 -0
- package/dist/route_specs/auth/authRouteSpec.js +23 -0
- package/dist/route_specs/auth/authRouteSpec.js.map +1 -0
- package/dist/route_specs/index.d.ts +2 -0
- package/dist/route_specs/index.js +39 -0
- package/dist/route_specs/index.js.map +1 -0
- package/dist/routes/index.d.ts +33 -33
- package/dist/routes/index.js +33 -34
- package/dist/routes/index.js.map +1 -1
- package/dist/schema/middleware/route/index.d.ts +2 -2
- package/dist/schema/middleware/route/index.js +2 -1
- package/dist/schema/middleware/route/index.js.map +1 -1
- package/dist/schema/middleware/route/schemaAccessControl.d.ts +9 -0
- package/dist/schema/middleware/route/schemaAccessControl.js +5 -1
- package/dist/schema/middleware/route/schemaAccessControl.js.map +1 -1
- package/dist/schema/payload/item/schemaItemBrand.d.ts +28 -14
- package/dist/schema/payload/item/schemaItemBrand.js +4 -2
- package/dist/schema/payload/item/schemaItemBrand.js.map +1 -1
- package/dist/schema/payload/item/schemaItemCategory.d.ts +28 -14
- package/dist/schema/payload/item/schemaItemCategory.js +4 -2
- package/dist/schema/payload/item/schemaItemCategory.js.map +1 -1
- package/dist/schema/payload/item/schemaItemItem.d.ts +65 -65
- package/dist/schema/payload/item/schemaItemItem.js +3 -3
- package/dist/schema/payload/item/schemaItemItem.js.map +1 -1
- package/dist/schema/payload/item/schemaItemProduct.d.ts +41 -41
- package/dist/schema/payload/item/schemaItemProduct.js +1 -1
- package/dist/schema/payload/item/schemaItemProduct.js.map +1 -1
- package/dist/schema/payload/item/schemaItemUom.d.ts +28 -14
- package/dist/schema/payload/item/schemaItemUom.js +4 -2
- package/dist/schema/payload/item/schemaItemUom.js.map +1 -1
- package/dist/services/item/ItemBrandService.d.ts +11 -6
- package/dist/services/item/ItemBrandService.js +35 -6
- package/dist/services/item/ItemBrandService.js.map +1 -1
- package/dist/services/item/ItemCategoryService.d.ts +11 -6
- package/dist/services/item/ItemCategoryService.js +37 -7
- package/dist/services/item/ItemCategoryService.js.map +1 -1
- package/dist/services/item/ItemItemService.d.ts +29 -23
- package/dist/services/item/ItemItemService.js +57 -16
- package/dist/services/item/ItemItemService.js.map +1 -1
- package/dist/services/item/ItemProductService.d.ts +9 -9
- package/dist/services/item/ItemProductService.js +11 -10
- package/dist/services/item/ItemProductService.js.map +1 -1
- package/dist/services/item/ItemService.js +39 -12
- package/dist/services/item/ItemService.js.map +1 -1
- package/dist/services/item/ItemUomService.d.ts +14 -9
- package/dist/services/item/ItemUomService.js +35 -5
- package/dist/services/item/ItemUomService.js.map +1 -1
- package/package.json +11 -1
- package/prisma/schema.prisma +101 -92
- package/dist/access_control/extra/index.d.ts +0 -2
- package/dist/access_control/extra/index.js +0 -7
- package/dist/access_control/extra/index.js.map +0 -1
- package/dist/access_control/extra/policies/administrator.d.ts +0 -3
- package/dist/access_control/extra/policies/administrator.js +0 -13
- package/dist/access_control/extra/policies/administrator.js.map +0 -1
- package/dist/access_control/extra/types.d.ts +0 -11
- package/dist/access_control/extra/types.js +0 -3
- package/dist/access_control/extra/types.js.map +0 -1
- package/dist/controllers/utils/changePasswordUtilController.d.ts +0 -3
- package/dist/controllers/utils/changePasswordUtilController.js +0 -55
- package/dist/controllers/utils/changePasswordUtilController.js.map +0 -1
- package/dist/global.d.ts +0 -5
- package/dist/global.js +0 -12
- package/dist/global.js.map +0 -1
- package/dist/helpers/unuse/prismaHelper.d.ts +0 -2
- package/dist/helpers/unuse/prismaHelper.js +0 -76
- package/dist/helpers/unuse/prismaHelper.js.map +0 -1
- package/dist/lib/global.d.ts +0 -5
- package/dist/lib/global.js +0 -12
- package/dist/lib/global.js.map +0 -1
- package/dist/middlewares/request/initialPrisma.d.ts +0 -9
- package/dist/middlewares/request/initialPrisma.js +0 -41
- package/dist/middlewares/request/initialPrisma.js.map +0 -1
- package/dist/middlewares/request/unuse/initialPrisma.d.ts +0 -9
- package/dist/middlewares/request/unuse/initialPrisma.js +0 -41
- package/dist/middlewares/request/unuse/initialPrisma.js.map +0 -1
- package/dist/middlewares/route/bk_validateDocument.d.ts +0 -2
- package/dist/middlewares/route/bk_validateDocument.js +0 -34
- package/dist/middlewares/route/bk_validateDocument.js.map +0 -1
- package/dist/middlewares/route/validateSchedulerLog.d.ts +0 -5
- package/dist/middlewares/route/validateSchedulerLog.js +0 -20
- package/dist/middlewares/route/validateSchedulerLog.js.map +0 -1
- package/dist/routes/access_control/accessControlsRoutes.d.ts +0 -3
- package/dist/routes/access_control/accessControlsRoutes.js +0 -12
- package/dist/routes/access_control/accessControlsRoutes.js.map +0 -1
- package/dist/routes/utils/changePasswordUtilRoutes.d.ts +0 -2
- package/dist/routes/utils/changePasswordUtilRoutes.js +0 -11
- package/dist/routes/utils/changePasswordUtilRoutes.js.map +0 -1
- package/dist/schema/common/unuse/response.d.ts +0 -54
- package/dist/schema/common/unuse/response.js +0 -23
- package/dist/schema/common/unuse/response.js.map +0 -1
- package/dist/schema/middleware/request/validateQuery_bk250827.d.ts +0 -27
- package/dist/schema/middleware/request/validateQuery_bk250827.js +0 -63
- package/dist/schema/middleware/request/validateQuery_bk250827.js.map +0 -1
- package/dist/schema/middleware/route/bk_schemaDocument.d.ts +0 -10
- package/dist/schema/middleware/route/bk_schemaDocument.js +0 -10
- package/dist/schema/middleware/route/bk_schemaDocument.js.map +0 -1
- package/dist/schema/middleware/route/schemaSchedulerLog.d.ts +0 -4
- package/dist/schema/middleware/route/schemaSchedulerLog.js +0 -10
- package/dist/schema/middleware/route/schemaSchedulerLog.js.map +0 -1
- package/dist/schema/payload/utils/schemaChangePasswordUtil.d.ts +0 -53
- package/dist/schema/payload/utils/schemaChangePasswordUtil.js +0 -18
- package/dist/schema/payload/utils/schemaChangePasswordUtil.js.map +0 -1
- package/dist/services/utils/ChangePasswordUtilService.d.ts +0 -13
- package/dist/services/utils/ChangePasswordUtilService.js +0 -78
- package/dist/services/utils/ChangePasswordUtilService.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemBrandService.js","sourceRoot":"","sources":["../../../src/services/item/ItemBrandService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n ModelBrandFields,\n BrandModel\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 = \"brand\"\n\nexport const brandDataTypes = {\n brandInjectionFields: \"brand_injection_fields\"\n}\n\nexport type ItemBrandDataType = keyof typeof brandDataTypes;\n\nexport type ItemBrandServiceProps = DefaultServiceProps & {};\n\nexport type ItemBrandGetProps = {\n id: number,\n datatypes: ItemBrandDataType[]\n};\n\nexport type ItemBrandListProps = QueryList & {\n datatypes: ItemBrandDataType[]\n};\n\nexport type ItemBrandRemoveProps = {\n brandIds: BigInt[]\n};\n\nexport type ItemBrandCreateProps = {\n data:\n // brand\n {\n brand: {\n name: string,\n description: string,\n status: boolean\n }\n }\n}\n\nexport type ItemBrandUpdateProps = {\n brandId: number,\n data:\n // brand\n {\n brand: {\n name: string,\n description: string,\n status: boolean\n }\n }\n}\n\nconst getCreatePayload = (data: ItemBrandCreateProps[\"data\"]) => {\n\n if (\"brand\" in data) {\n\n return {\n [`${ModelBrandFields.name}`]: data.brand.description,\n [`${ModelBrandFields.description}`]: data.brand.description,\n [`${ModelBrandFields.status}`]: data.brand.status ? 1 : 0\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: ItemBrandUpdateProps[\"data\"]) => {\n\n if (\"brand\" in data) {\n\n return {\n // [`${ModelBrandFields.brand_id}`]: data.brand.parentbrandId,\n [`${ModelBrandFields.name}`]: data.brand.description,\n [`${ModelBrandFields.description}`]: data.brand.description,\n [`${ModelBrandFields.status}`]: data.brand.status ? 1 : 0\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`brd.${ModelBrandFields.brand_id}`]: \"brand_id\",\n [`brd.${ModelBrandFields.description}`]: \"description\",\n [`brd.${ModelBrandFields.name}`]: \"name\",\n [`brd.${ModelBrandFields.status}`]: \"status\",\n}\n\nlet defaultSqlSelect = {\n [`brd.${ModelBrandFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`brd.${ModelBrandFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`brd.${ModelBrandFields.isdelete}`]: \"isdelete\",\n [`brd.${ModelBrandFields.istrash}`]: \"istrash\",\n [`brd.${ModelBrandFields.accountid}`]: \"accountid\",\n}\n\nexport const ItemBrandService = (props: ItemBrandServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"item\" })\n\n const brandModel = BrandModel({ ...rest })\n\n const createBrand = async ({ data }: ItemBrandCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create brand payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await brandModel.create({ data: _data })\n\n return response\n }\n\n const updateBrand = async ({ brandId, data }: ItemBrandUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update brand payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await brandModel.update({ where: { [`${ModelBrandFields.brand_id}`]: brandId }, data: _data })\n\n return response\n }\n\n const getBrand = async ({ id, datatypes = [] }: ItemBrandGetProps) => {\n\n let { data } = await listBrands({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelBrandFields.brand_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelBrandFields.brand_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listBrands = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: ItemBrandListProps) => {\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\", \"brd\", \"users\", \"creator\", [\"brd.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"brd\", \"users\", \"updater\", [\"brd.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(brandDataTypes.brandInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"brand\")\n\n const brandInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif\", activeInjectionFields)\n\n filterColumns = { ...filterColumns, ...brandInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, brandInjectionFieldSqlSelect)] : [])]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"brd\", \"item_injection_fields\", \"iif\", [\"brd.brand_id = iif.brand_id\", \"iif.field_ref = 'item'\", \"iif.field_module = 'brand'\", \"iif.isdelete = false\", \"iif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(brandInjectionFieldSqlSelect)]\n }\n\n let sqlWhere = [\n `brd.isdelete = false`,\n `brd.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: \"brands\",\n mainAlias: \"brd\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await brandModel.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 removeBrands = async ({ brandIds }: ItemBrandRemoveProps) => {\n\n if (!brandIds.length) throwError('brandIds is required');\n\n const response = await brandModel.remove({ where: { [`${ModelBrandFields.brand_id}`]: { in: brandIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(brandDataTypes);\n }\n\n return {\n createBrand,\n updateBrand,\n getBrand,\n listBrands,\n removeBrands,\n getDataTypes\n }\n\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"ItemBrandService.js","sourceRoot":"","sources":["../../../src/services/item/ItemBrandService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n ModelBrandFields,\n BrandModel\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 = \"brand\"\n\nexport const brandDataTypes = {\n brandInjectionFields: \"brand_injection_fields\"\n}\n\nexport type ItemBrandDataType = keyof typeof brandDataTypes;\n\nexport type ItemBrandServiceProps = DefaultServiceProps & {};\n\nexport type ItemBrandGetProps = {\n id: number,\n datatypes: ItemBrandDataType[]\n};\n\nexport type ItemBrandListProps = QueryList & {\n datatypes: ItemBrandDataType[]\n};\n\nexport type ItemBrandRemoveProps = {\n brandIds: BigInt[]\n};\n\nexport type ItemBrandCreateProps = {\n data:\n // brand\n {\n brand: {\n name: string,\n code: string,\n description: string,\n status: boolean\n }\n }\n}\n\nexport type ItemBrandUpdateProps = {\n brandId: number,\n data:\n // brand\n {\n brand: {\n name: string,\n code?: string,\n description: string,\n status: boolean\n }\n }\n}\n\nconst getCreatePayload = (data: ItemBrandCreateProps[\"data\"]) => {\n\n if (\"brand\" in data) {\n\n return {\n [`${ModelBrandFields.brand_name}`]: data.brand.description,\n [`${ModelBrandFields.brand_code}`]: data.brand.code,\n [`${ModelBrandFields.description}`]: data.brand.description,\n [`${ModelBrandFields.status}`]: Boolean(data.brand.status)\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: ItemBrandUpdateProps[\"data\"]) => {\n\n if (\"brand\" in data) {\n\n return {\n [`${ModelBrandFields.brand_name}`]: data.brand.description,\n ...(data.brand?.code) ? { [`${ModelBrandFields.brand_code}`]: data.brand.code } : {},\n [`${ModelBrandFields.description}`]: data.brand.description,\n [`${ModelBrandFields.status}`]: Boolean(data.brand.status)\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`brd.${ModelBrandFields.brand_id}`]: \"brand_id\",\n [`brd.${ModelBrandFields.brand_name}`]: \"name\",\n [`brd.${ModelBrandFields.brand_code}`]: \"code\",\n [`brd.${ModelBrandFields.description}`]: \"description\",\n [`brd.${ModelBrandFields.status}`]: \"status\",\n}\n\nlet defaultSqlSelect = {\n [`brd.${ModelBrandFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`brd.${ModelBrandFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`brd.${ModelBrandFields.isdelete}`]: \"isdelete\",\n [`brd.${ModelBrandFields.istrash}`]: \"istrash\",\n [`brd.${ModelBrandFields.accountid}`]: \"accountid\",\n}\n\nexport const ItemBrandService = (props: ItemBrandServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"item\" })\n\n const brandModel = BrandModel({ ...rest })\n\n const createBrand = async ({ data }: ItemBrandCreateProps) => {\n\n // validate code is existed\n const validateCode = await brandModel.get({\n where: {\n [`${ModelBrandFields.brand_code}`]: data.brand.code,\n [`${ModelBrandFields.accountid}`]: rest.accountId,\n [`${ModelBrandFields.isdelete}`]: false\n }\n })\n\n if (validateCode) {\n throw new Error(`Brand code is existed: ${validateCode.brand_code ?? 0}(${validateCode.brand_id})`);\n }\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create brand payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await brandModel.create({ data: _data })\n\n return response\n }\n\n const updateBrand = async ({ brandId, data }: ItemBrandUpdateProps) => {\n\n // validate code is existed - only if code is passed in\n if (data.brand?.code) {\n const validateCode = await brandModel.get({\n where: {\n [`${ModelBrandFields.brand_id}`]: {\n not: BigInt(brandId)\n },\n [`${ModelBrandFields.brand_code}`]: data.brand.code,\n [`${ModelBrandFields.accountid}`]: rest.accountId,\n [`${ModelBrandFields.isdelete}`]: false\n }\n })\n\n if (validateCode) {\n throw new Error(`Brand code is existed: ${validateCode.brand_code ?? 0}(${validateCode.brand_id})`);\n }\n }\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update brand payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await brandModel.update({ where: { [`${ModelBrandFields.brand_id}`]: brandId }, data: _data })\n\n return response\n }\n\n const getBrand = async ({ id, datatypes = [] }: ItemBrandGetProps) => {\n\n let { data } = await listBrands({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelBrandFields.brand_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelBrandFields.brand_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listBrands = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: ItemBrandListProps) => {\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\", \"brd\", \"users\", \"creator\", [\"brd.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"brd\", \"users\", \"updater\", [\"brd.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(brandDataTypes.brandInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"brand\")\n\n const brandInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif\", activeInjectionFields)\n\n filterColumns = { ...filterColumns, ...brandInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, brandInjectionFieldSqlSelect)] : [])]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"brd\", \"item_injection_fields\", \"iif\", [\"brd.brand_id = iif.brand_id\", \"iif.field_ref = 'item'\", \"iif.field_module = 'brand'\", \"iif.isdelete = false\", \"iif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(brandInjectionFieldSqlSelect)]\n }\n\n let sqlWhere = [\n `brd.isdelete = false`,\n `brd.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: \"brands\",\n mainAlias: \"brd\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await brandModel.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 removeBrands = async ({ brandIds }: ItemBrandRemoveProps) => {\n\n if (!brandIds.length) throwError('brandIds is required');\n\n const response = await brandModel.remove({ where: { [`${ModelBrandFields.brand_id}`]: { in: brandIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(brandDataTypes);\n }\n\n return {\n createBrand,\n updateBrand,\n getBrand,\n listBrands,\n removeBrands,\n getDataTypes\n }\n\n}\n\n"]}
|
|
@@ -21,6 +21,7 @@ export type ItemCategoryCreateProps = {
|
|
|
21
21
|
category: {
|
|
22
22
|
parentCategoryId: number;
|
|
23
23
|
name: string;
|
|
24
|
+
code: string;
|
|
24
25
|
description: string;
|
|
25
26
|
status: boolean;
|
|
26
27
|
};
|
|
@@ -32,6 +33,7 @@ export type ItemCategoryUpdateProps = {
|
|
|
32
33
|
category: {
|
|
33
34
|
parentCategoryId: number;
|
|
34
35
|
name: string;
|
|
36
|
+
code?: string;
|
|
35
37
|
description: string;
|
|
36
38
|
status: boolean;
|
|
37
39
|
};
|
|
@@ -46,11 +48,12 @@ export declare const ItemCategoryService: (props: ItemCategoryServiceProps) => {
|
|
|
46
48
|
isdelete: boolean | null;
|
|
47
49
|
istrash: boolean | null;
|
|
48
50
|
accountid: bigint;
|
|
49
|
-
status:
|
|
50
|
-
name: string | null;
|
|
51
|
+
status: boolean | null;
|
|
51
52
|
description: string | null;
|
|
52
53
|
category_id: bigint;
|
|
54
|
+
category_code: string;
|
|
53
55
|
parent_category_id: bigint;
|
|
56
|
+
category_name: string | null;
|
|
54
57
|
}>;
|
|
55
58
|
updateCategory: ({ categoryId, data }: ItemCategoryUpdateProps) => Promise<{
|
|
56
59
|
createdatetime: Date | null;
|
|
@@ -60,11 +63,12 @@ export declare const ItemCategoryService: (props: ItemCategoryServiceProps) => {
|
|
|
60
63
|
isdelete: boolean | null;
|
|
61
64
|
istrash: boolean | null;
|
|
62
65
|
accountid: bigint;
|
|
63
|
-
status:
|
|
64
|
-
name: string | null;
|
|
66
|
+
status: boolean | null;
|
|
65
67
|
description: string | null;
|
|
66
68
|
category_id: bigint;
|
|
69
|
+
category_code: string;
|
|
67
70
|
parent_category_id: bigint;
|
|
71
|
+
category_name: string | null;
|
|
68
72
|
}>;
|
|
69
73
|
getCategory: ({ id, datatypes }: ItemCategoryGetProps) => Promise<any>;
|
|
70
74
|
listCategories: ({ limit, offset, filters, sortfield, sortorder, datatypes }: ItemCategoryListProps) => Promise<{
|
|
@@ -79,11 +83,12 @@ export declare const ItemCategoryService: (props: ItemCategoryServiceProps) => {
|
|
|
79
83
|
isdelete: boolean | null;
|
|
80
84
|
istrash: boolean | null;
|
|
81
85
|
accountid: bigint;
|
|
82
|
-
status:
|
|
83
|
-
name: string | null;
|
|
86
|
+
status: boolean | null;
|
|
84
87
|
description: string | null;
|
|
85
88
|
category_id: bigint;
|
|
89
|
+
category_code: string;
|
|
86
90
|
parent_category_id: bigint;
|
|
91
|
+
category_name: string | null;
|
|
87
92
|
}[]>;
|
|
88
93
|
getDataTypes: () => string[];
|
|
89
94
|
};
|
|
@@ -16,8 +16,9 @@ const getCreatePayload = (data) => {
|
|
|
16
16
|
return {
|
|
17
17
|
[`${models_1.ModelCategoryFields.parent_category_id}`]: data.category.parentCategoryId,
|
|
18
18
|
[`${models_1.ModelCategoryFields.description}`]: data.category.description,
|
|
19
|
-
[`${models_1.ModelCategoryFields.
|
|
20
|
-
[`${models_1.ModelCategoryFields.
|
|
19
|
+
[`${models_1.ModelCategoryFields.category_name}`]: data.category.name,
|
|
20
|
+
[`${models_1.ModelCategoryFields.category_code}`]: data.category.code,
|
|
21
|
+
[`${models_1.ModelCategoryFields.status}`]: Boolean(data.category.status)
|
|
21
22
|
};
|
|
22
23
|
}
|
|
23
24
|
return false;
|
|
@@ -27,8 +28,9 @@ const getUpdatePayload = (data) => {
|
|
|
27
28
|
return {
|
|
28
29
|
[`${models_1.ModelCategoryFields.parent_category_id}`]: data.category.parentCategoryId,
|
|
29
30
|
[`${models_1.ModelCategoryFields.description}`]: data.category.description,
|
|
30
|
-
[`${models_1.ModelCategoryFields.
|
|
31
|
-
[`${models_1.ModelCategoryFields.
|
|
31
|
+
[`${models_1.ModelCategoryFields.category_name}`]: data.category.name,
|
|
32
|
+
...(data.category?.code) ? { [`${models_1.ModelCategoryFields.category_code}`]: data.category.code } : {},
|
|
33
|
+
[`${models_1.ModelCategoryFields.status}`]: Boolean(data.category.status)
|
|
32
34
|
};
|
|
33
35
|
}
|
|
34
36
|
return false;
|
|
@@ -37,17 +39,18 @@ let mainSqlSelect = {
|
|
|
37
39
|
[`categ.${models_1.ModelCategoryFields.category_id}`]: "category_id",
|
|
38
40
|
[`categ.${models_1.ModelCategoryFields.parent_category_id}`]: "parent_category_id",
|
|
39
41
|
[`categ.${models_1.ModelCategoryFields.description}`]: "description",
|
|
40
|
-
[`categ.${models_1.ModelCategoryFields.
|
|
42
|
+
[`categ.${models_1.ModelCategoryFields.category_name}`]: "name",
|
|
43
|
+
[`categ.${models_1.ModelCategoryFields.category_code}`]: "code",
|
|
41
44
|
[`categ.${models_1.ModelCategoryFields.status}`]: "status",
|
|
42
45
|
};
|
|
43
46
|
let parentSqlSelect = {
|
|
44
|
-
[`parentcateg.${models_1.ModelCategoryFields.
|
|
47
|
+
[`parentcateg.${models_1.ModelCategoryFields.category_name}`]: "parent_category_name",
|
|
45
48
|
[`parentcateg.${models_1.ModelCategoryFields.status}`]: "parent_category_status",
|
|
46
49
|
[`parentcateg.${models_1.ModelCategoryFields.description}`]: "parent_category_description",
|
|
47
50
|
// [`parentcateg.${ModelCategoryFields.parent_category_id}`]: "parent_category_id",
|
|
48
51
|
};
|
|
49
52
|
let childrenSqlSelect = {
|
|
50
|
-
[`childrencateg.${models_1.ModelCategoryFields.
|
|
53
|
+
[`childrencateg.${models_1.ModelCategoryFields.category_name}`]: "children_category_name",
|
|
51
54
|
[`childrencateg.${models_1.ModelCategoryFields.status}`]: "children_category_status",
|
|
52
55
|
[`childrencateg.${models_1.ModelCategoryFields.description}`]: "children_category_description",
|
|
53
56
|
// [`parentcateg.${ModelCategoryFields.parent_category_id}`]: "parent_category_id",
|
|
@@ -67,6 +70,17 @@ const ItemCategoryService = (props) => {
|
|
|
67
70
|
const categoryModel = (0, models_1.CategoryModel)({ ...rest });
|
|
68
71
|
const createCategory = async ({ data }) => {
|
|
69
72
|
const _data = getCreatePayload(data);
|
|
73
|
+
// validate code is existed
|
|
74
|
+
const validateCode = await categoryModel.get({
|
|
75
|
+
where: {
|
|
76
|
+
[`${models_1.ModelCategoryFields.category_code}`]: data.category.code,
|
|
77
|
+
[`${models_1.ModelCategoryFields.accountid}`]: rest.accountId,
|
|
78
|
+
[`${models_1.ModelCategoryFields.isdelete}`]: false
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
if (validateCode) {
|
|
82
|
+
throw new Error(`Category code is existed: ${validateCode.category_code ?? 0}(${validateCode.category_id})`);
|
|
83
|
+
}
|
|
70
84
|
if (!_data) {
|
|
71
85
|
throw new Error(`Invalid create category payload: ${JSON.stringify(_data)}`);
|
|
72
86
|
}
|
|
@@ -74,6 +88,22 @@ const ItemCategoryService = (props) => {
|
|
|
74
88
|
return response;
|
|
75
89
|
};
|
|
76
90
|
const updateCategory = async ({ categoryId, data }) => {
|
|
91
|
+
// validate code is existed - only if code is passed in
|
|
92
|
+
if (data.category?.code) {
|
|
93
|
+
const validateCode = await categoryModel.get({
|
|
94
|
+
where: {
|
|
95
|
+
[`${models_1.ModelCategoryFields.category_id}`]: {
|
|
96
|
+
not: BigInt(categoryId)
|
|
97
|
+
},
|
|
98
|
+
[`${models_1.ModelCategoryFields.category_code}`]: data.category.code,
|
|
99
|
+
[`${models_1.ModelCategoryFields.accountid}`]: rest.accountId,
|
|
100
|
+
[`${models_1.ModelCategoryFields.isdelete}`]: false
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
if (validateCode) {
|
|
104
|
+
throw new Error(`Category code is existed: ${validateCode.category_code ?? 0}(${validateCode.category_id})`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
77
107
|
const _data = getUpdatePayload(data);
|
|
78
108
|
if (!_data) {
|
|
79
109
|
throw new Error(`Invalid update category payload: ${JSON.stringify(_data)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemCategoryService.js","sourceRoot":"","sources":["../../../src/services/item/ItemCategoryService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n ModelCategoryFields,\n CategoryModel\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 = \"category\"\n\nexport const categoryDataTypes = {\n categoryInjectionFields: \"category_injection_fields\",\n // parentCategory: \"parent_category\",\n // childCategory: \"child_category\",\n // childCount: \"child_count\"\n}\n\nexport type ItemCategoryDataType = keyof typeof categoryDataTypes;\n\nexport type ItemCategoryServiceProps = DefaultServiceProps & {};\n\nexport type ItemCategoryGetProps = {\n id: number,\n datatypes: ItemCategoryDataType[]\n};\n\nexport type ItemCategoryListProps = QueryList & {\n datatypes: ItemCategoryDataType[]\n};\n\nexport type ItemCategoryRemoveProps = {\n categoryIds: BigInt[]\n};\n\nexport type ItemCategoryCreateProps = {\n data:\n // category\n {\n category: {\n parentCategoryId: number,\n name: string,\n description: string,\n status: boolean\n }\n }\n}\n\nexport type ItemCategoryUpdateProps = {\n categoryId: number,\n data:\n // category\n {\n category: {\n parentCategoryId: number,\n name: string,\n description: string,\n status: boolean\n }\n }\n}\n\nconst getCreatePayload = (data: ItemCategoryCreateProps[\"data\"]) => {\n\n if (\"category\" in data) {\n\n return {\n [`${ModelCategoryFields.parent_category_id}`]: data.category.parentCategoryId,\n [`${ModelCategoryFields.description}`]: data.category.description,\n [`${ModelCategoryFields.name}`]: data.category.name,\n [`${ModelCategoryFields.status}`]: data.category.status ? 1 : 0\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: ItemCategoryUpdateProps[\"data\"]) => {\n\n if (\"category\" in data) {\n\n return {\n [`${ModelCategoryFields.parent_category_id}`]: data.category.parentCategoryId,\n [`${ModelCategoryFields.description}`]: data.category.description,\n [`${ModelCategoryFields.name}`]: data.category.name,\n [`${ModelCategoryFields.status}`]: data.category.status ? 1 : 0\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`categ.${ModelCategoryFields.category_id}`]: \"category_id\",\n [`categ.${ModelCategoryFields.parent_category_id}`]: \"parent_category_id\",\n [`categ.${ModelCategoryFields.description}`]: \"description\",\n [`categ.${ModelCategoryFields.name}`]: \"name\",\n [`categ.${ModelCategoryFields.status}`]: \"status\",\n}\n\nlet parentSqlSelect = {\n [`parentcateg.${ModelCategoryFields.name}`]: \"parent_category_name\",\n [`parentcateg.${ModelCategoryFields.status}`]: \"parent_category_status\",\n [`parentcateg.${ModelCategoryFields.description}`]: \"parent_category_description\",\n // [`parentcateg.${ModelCategoryFields.parent_category_id}`]: \"parent_category_id\",\n}\n\nlet childrenSqlSelect = {\n [`childrencateg.${ModelCategoryFields.name}`]: \"children_category_name\",\n [`childrencateg.${ModelCategoryFields.status}`]: \"children_category_status\",\n [`childrencateg.${ModelCategoryFields.description}`]: \"children_category_description\",\n // [`parentcateg.${ModelCategoryFields.parent_category_id}`]: \"parent_category_id\",\n}\n\nlet defaultSqlSelect = {\n [`categ.${ModelCategoryFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`categ.${ModelCategoryFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`categ.${ModelCategoryFields.isdelete}`]: \"isdelete\",\n [`categ.${ModelCategoryFields.istrash}`]: \"istrash\",\n [`categ.${ModelCategoryFields.accountid}`]: \"accountid\",\n}\n\nexport const ItemCategoryService = (props: ItemCategoryServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"item\" })\n\n const categoryModel = CategoryModel({ ...rest })\n\n const createCategory = async ({ data }: ItemCategoryCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create category payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await categoryModel.create({ data: _data })\n\n return response\n }\n\n const updateCategory = async ({ categoryId, data }: ItemCategoryUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update category payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await categoryModel.update({ where: { [`${ModelCategoryFields.category_id}`]: categoryId }, data: _data })\n\n return response\n }\n\n const getCategory = async ({ id, datatypes = [] }: ItemCategoryGetProps) => {\n\n let { data } = await listCategories({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelCategoryFields.category_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelCategoryFields.category_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listCategories = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: ItemCategoryListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, parentSqlSelect),\n buildSqlSelect(``, childrenSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"categ\", \"categories\", \"childrencateg\", [\"categ.category_id = childrencateg.parent_category_id\", \"childrencateg.isdelete = false\", \"childrencateg.istrash = false\"]),\n buildSqlRelation(\"left\", \"categ\", \"categories\", \"parentcateg\", [\"categ.parent_category_id = parentcateg.category_id\", \"parentcateg.isdelete = false\", \"parentcateg.istrash = false\"]),\n buildSqlRelation(\"left\", \"categ\", \"users\", \"creator\", [\"categ.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"categ\", \"users\", \"updater\", [\"categ.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(parentSqlSelect),\n ...Object.keys(childrenSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...parentSqlSelect,\n ...childrenSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(categoryDataTypes.categoryInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"category\")\n\n const categoryInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif\", activeInjectionFields)\n\n // const categoryInjectionFieldSqlSelect = activeInjectionFields.reduce((acc, col) => {\n // acc[`iif.${col}`] = `inf_${col}`;\n // return acc;\n // }, {} as Record<string, string>);\n\n filterColumns = { ...filterColumns, ...categoryInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, categoryInjectionFieldSqlSelect)] : [])]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"categ\", \"item_injection_fields\", \"iif\", [\"categ.category_id = iif.category_id\", \"iif.field_ref = 'item'\", \"iif.field_module = 'category'\", \"iif.isdelete = false\", \"iif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(categoryInjectionFieldSqlSelect)]\n }\n\n // if (datatypes.includes(categoryDataTypes.itemInjectionFields)) {\n\n // let a = await injectionFieldService.listActiveInjectionFields(\"item\", \"item\")\n\n // // const itemInjectionFieldSqlSelect = a.reduce((acc, col) => {\n // // acc[`iif2.${col}`] = `${col}`;\n // // return acc;\n // // }, {} as Record<string, string>);\n\n // // filterColumns = { ...filterColumns, ...itemInjectionFieldSqlSelect }\n\n // // sqlSelect = [...sqlSelect, buildSqlSelect(``, itemInjectionFieldSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"itm\", \"item_injection_fields\", \"iif2\", [\"itm.item_id = iif2.item_id\", \"iif2.field_ref = 'item'\", \"iif2.field_module = 'item'\", \"iif2.isdelete = false\", \"iif2.istrash = false\"])]\n // // sqlGroupBy = [...sqlGroupBy, ...Object.keys(itemInjectionFieldSqlSelect)]\n // }\n\n // if (datatypes.includes(categoryDataTypes.location)) {\n\n // let locationSqlSelect = {\n // [`COALESCE(\n // JSON_AGG(\n // DISTINCT JSONB_BUILD_OBJECT(\n // '${ModelLocationFields.location_id}', location.location_id,\n // '${ModelLocationFields.location_code}', location.location_code,\n // '${ModelLocationFields.location_name}', location.location_name,\n // '${ModelLocationFields.location_type}', location.location_type,\n // '${ModelLocationFields.address_1}', location.address_1,\n // '${ModelLocationFields.address_2}', location.address_2,\n // '${ModelLocationFields.area}', location.area,\n // '${ModelLocationFields.area_id}', location.area_id,\n // '${ModelLocationFields.country_id}', location.country_id,\n // '${ModelLocationFields.state_id}', location.state_id,\n // '${ModelLocationFields.postcode}', location.postcode,\n // '${ModelLocationFields.is_default}', location.is_default,\n // '${ModelLocationFields.person_contact}', location.person_contact,\n // '${ModelLocationFields.person_name}', location.person_contact,\n // '${ModelLocationFields.person_email}', location.person_email,\n // '${ModelLocationFields.isdelete}', location.isdelete,\n // '${ModelLocationFields.istrash}', location.istrash\n // )\n // ) FILTER (WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false), \n // '[]'\n // )`]: \"locations\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"usrprop_location\", \"location\", \"brn\", [\"categ.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n // }\n\n // if (datatypes.includes(categoryDataTypes.locationCount)) {\n\n // let locationCountSqlSelect = {\n // [`COUNT(DISTINCT location.${ModelLocationFields.location_id})::INT`]: \"location_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationCountSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branches\", \"brncount\", [\"categ.user_id = brncount.user_id\", \"brncount.isdelete = false\", \"brncount.istrash = false\"])]\n\n // }\n\n // if (datatypes.includes(customerDataTypes.branchUserCount)) {\n\n // let branchUserCountSqlSelect = {\n // [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: \"branch_user_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branch_users\", \"brnusrcount\", [\"categ.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `categ.isdelete = false`,\n `categ.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: \"categories\",\n mainAlias: \"categ\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await categoryModel.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 removeCategories = async ({ categoryIds }: ItemCategoryRemoveProps) => {\n\n if (!categoryIds.length) throwError('categoryIds is required');\n\n const response = await categoryModel.remove({ where: { [`${ModelCategoryFields.category_id}`]: { in: categoryIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(categoryDataTypes);\n }\n\n return {\n createCategory,\n updateCategory,\n getCategory,\n listCategories,\n removeCategories,\n getDataTypes\n }\n\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"ItemCategoryService.js","sourceRoot":"","sources":["../../../src/services/item/ItemCategoryService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n ModelCategoryFields,\n CategoryModel\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 = \"category\"\n\nexport const categoryDataTypes = {\n categoryInjectionFields: \"category_injection_fields\",\n // parentCategory: \"parent_category\",\n // childCategory: \"child_category\",\n // childCount: \"child_count\"\n}\n\nexport type ItemCategoryDataType = keyof typeof categoryDataTypes;\n\nexport type ItemCategoryServiceProps = DefaultServiceProps & {};\n\nexport type ItemCategoryGetProps = {\n id: number,\n datatypes: ItemCategoryDataType[]\n};\n\nexport type ItemCategoryListProps = QueryList & {\n datatypes: ItemCategoryDataType[]\n};\n\nexport type ItemCategoryRemoveProps = {\n categoryIds: BigInt[]\n};\n\nexport type ItemCategoryCreateProps = {\n data:\n // category\n {\n category: {\n parentCategoryId: number,\n name: string,\n code: string,\n description: string,\n status: boolean\n }\n }\n}\n\nexport type ItemCategoryUpdateProps = {\n categoryId: number,\n data:\n // category\n {\n category: {\n parentCategoryId: number,\n name: string,\n code?: string, // optional\n description: string,\n status: boolean\n }\n }\n}\n\nconst getCreatePayload = (data: ItemCategoryCreateProps[\"data\"]) => {\n\n if (\"category\" in data) {\n\n return {\n [`${ModelCategoryFields.parent_category_id}`]: data.category.parentCategoryId,\n [`${ModelCategoryFields.description}`]: data.category.description,\n [`${ModelCategoryFields.category_name}`]: data.category.name,\n [`${ModelCategoryFields.category_code}`]: data.category.code,\n [`${ModelCategoryFields.status}`]: Boolean(data.category.status)\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: ItemCategoryUpdateProps[\"data\"]) => {\n\n if (\"category\" in data) {\n\n return {\n [`${ModelCategoryFields.parent_category_id}`]: data.category.parentCategoryId,\n [`${ModelCategoryFields.description}`]: data.category.description,\n [`${ModelCategoryFields.category_name}`]: data.category.name,\n ...(data.category?.code) ? { [`${ModelCategoryFields.category_code}`]: data.category.code } : {},\n [`${ModelCategoryFields.status}`]: Boolean(data.category.status)\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`categ.${ModelCategoryFields.category_id}`]: \"category_id\",\n [`categ.${ModelCategoryFields.parent_category_id}`]: \"parent_category_id\",\n [`categ.${ModelCategoryFields.description}`]: \"description\",\n [`categ.${ModelCategoryFields.category_name}`]: \"name\",\n [`categ.${ModelCategoryFields.category_code}`]: \"code\",\n [`categ.${ModelCategoryFields.status}`]: \"status\",\n}\n\nlet parentSqlSelect = {\n [`parentcateg.${ModelCategoryFields.category_name}`]: \"parent_category_name\",\n [`parentcateg.${ModelCategoryFields.status}`]: \"parent_category_status\",\n [`parentcateg.${ModelCategoryFields.description}`]: \"parent_category_description\",\n // [`parentcateg.${ModelCategoryFields.parent_category_id}`]: \"parent_category_id\",\n}\n\nlet childrenSqlSelect = {\n [`childrencateg.${ModelCategoryFields.category_name}`]: \"children_category_name\",\n [`childrencateg.${ModelCategoryFields.status}`]: \"children_category_status\",\n [`childrencateg.${ModelCategoryFields.description}`]: \"children_category_description\",\n // [`parentcateg.${ModelCategoryFields.parent_category_id}`]: \"parent_category_id\",\n}\n\nlet defaultSqlSelect = {\n [`categ.${ModelCategoryFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`categ.${ModelCategoryFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`categ.${ModelCategoryFields.isdelete}`]: \"isdelete\",\n [`categ.${ModelCategoryFields.istrash}`]: \"istrash\",\n [`categ.${ModelCategoryFields.accountid}`]: \"accountid\",\n}\n\nexport const ItemCategoryService = (props: ItemCategoryServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"item\" })\n\n const categoryModel = CategoryModel({ ...rest })\n\n const createCategory = async ({ data }: ItemCategoryCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n // validate code is existed\n const validateCode = await categoryModel.get({\n where: {\n [`${ModelCategoryFields.category_code}`]: data.category.code,\n [`${ModelCategoryFields.accountid}`]: rest.accountId,\n [`${ModelCategoryFields.isdelete}`]: false\n }\n })\n\n if (validateCode) {\n throw new Error(`Category code is existed: ${validateCode.category_code ?? 0}(${validateCode.category_id})`);\n }\n\n if (!_data) {\n throw new Error(`Invalid create category payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await categoryModel.create({ data: _data })\n\n return response\n }\n\n const updateCategory = async ({ categoryId, data }: ItemCategoryUpdateProps) => {\n\n // validate code is existed - only if code is passed in\n if (data.category?.code) {\n const validateCode = await categoryModel.get({\n where: {\n [`${ModelCategoryFields.category_id}`]: {\n not: BigInt(categoryId)\n },\n [`${ModelCategoryFields.category_code}`]: data.category.code,\n [`${ModelCategoryFields.accountid}`]: rest.accountId,\n [`${ModelCategoryFields.isdelete}`]: false\n }\n })\n\n if (validateCode) {\n throw new Error(`Category code is existed: ${validateCode.category_code ?? 0}(${validateCode.category_id})`);\n }\n }\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update category payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await categoryModel.update({ where: { [`${ModelCategoryFields.category_id}`]: categoryId }, data: _data })\n\n return response\n }\n\n const getCategory = async ({ id, datatypes = [] }: ItemCategoryGetProps) => {\n\n let { data } = await listCategories({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelCategoryFields.category_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelCategoryFields.category_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listCategories = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: ItemCategoryListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, parentSqlSelect),\n buildSqlSelect(``, childrenSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"categ\", \"categories\", \"childrencateg\", [\"categ.category_id = childrencateg.parent_category_id\", \"childrencateg.isdelete = false\", \"childrencateg.istrash = false\"]),\n buildSqlRelation(\"left\", \"categ\", \"categories\", \"parentcateg\", [\"categ.parent_category_id = parentcateg.category_id\", \"parentcateg.isdelete = false\", \"parentcateg.istrash = false\"]),\n buildSqlRelation(\"left\", \"categ\", \"users\", \"creator\", [\"categ.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"categ\", \"users\", \"updater\", [\"categ.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(parentSqlSelect),\n ...Object.keys(childrenSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...parentSqlSelect,\n ...childrenSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(categoryDataTypes.categoryInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"category\")\n\n const categoryInjectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif\", activeInjectionFields)\n\n // const categoryInjectionFieldSqlSelect = activeInjectionFields.reduce((acc, col) => {\n // acc[`iif.${col}`] = `inf_${col}`;\n // return acc;\n // }, {} as Record<string, string>);\n\n filterColumns = { ...filterColumns, ...categoryInjectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, ...(activeInjectionFields.length > 0 ? [buildSqlSelect(``, categoryInjectionFieldSqlSelect)] : [])]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"categ\", \"item_injection_fields\", \"iif\", [\"categ.category_id = iif.category_id\", \"iif.field_ref = 'item'\", \"iif.field_module = 'category'\", \"iif.isdelete = false\", \"iif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(categoryInjectionFieldSqlSelect)]\n }\n\n // if (datatypes.includes(categoryDataTypes.itemInjectionFields)) {\n\n // let a = await injectionFieldService.listActiveInjectionFields(\"item\", \"item\")\n\n // // const itemInjectionFieldSqlSelect = a.reduce((acc, col) => {\n // // acc[`iif2.${col}`] = `${col}`;\n // // return acc;\n // // }, {} as Record<string, string>);\n\n // // filterColumns = { ...filterColumns, ...itemInjectionFieldSqlSelect }\n\n // // sqlSelect = [...sqlSelect, buildSqlSelect(``, itemInjectionFieldSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"itm\", \"item_injection_fields\", \"iif2\", [\"itm.item_id = iif2.item_id\", \"iif2.field_ref = 'item'\", \"iif2.field_module = 'item'\", \"iif2.isdelete = false\", \"iif2.istrash = false\"])]\n // // sqlGroupBy = [...sqlGroupBy, ...Object.keys(itemInjectionFieldSqlSelect)]\n // }\n\n // if (datatypes.includes(categoryDataTypes.location)) {\n\n // let locationSqlSelect = {\n // [`COALESCE(\n // JSON_AGG(\n // DISTINCT JSONB_BUILD_OBJECT(\n // '${ModelLocationFields.location_id}', location.location_id,\n // '${ModelLocationFields.location_code}', location.location_code,\n // '${ModelLocationFields.location_name}', location.location_name,\n // '${ModelLocationFields.location_type}', location.location_type,\n // '${ModelLocationFields.address_1}', location.address_1,\n // '${ModelLocationFields.address_2}', location.address_2,\n // '${ModelLocationFields.area}', location.area,\n // '${ModelLocationFields.area_id}', location.area_id,\n // '${ModelLocationFields.country_id}', location.country_id,\n // '${ModelLocationFields.state_id}', location.state_id,\n // '${ModelLocationFields.postcode}', location.postcode,\n // '${ModelLocationFields.is_default}', location.is_default,\n // '${ModelLocationFields.person_contact}', location.person_contact,\n // '${ModelLocationFields.person_name}', location.person_contact,\n // '${ModelLocationFields.person_email}', location.person_email,\n // '${ModelLocationFields.isdelete}', location.isdelete,\n // '${ModelLocationFields.istrash}', location.istrash\n // )\n // ) FILTER (WHERE location.location_id IS NOT NULL AND location.isdelete = false AND location.istrash = false), \n // '[]'\n // )`]: \"locations\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"usrprop_location\", \"location\", \"brn\", [\"categ.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n // }\n\n // if (datatypes.includes(categoryDataTypes.locationCount)) {\n\n // let locationCountSqlSelect = {\n // [`COUNT(DISTINCT location.${ModelLocationFields.location_id})::INT`]: \"location_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...locationCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, locationCountSqlSelect)]\n // // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branches\", \"brncount\", [\"categ.user_id = brncount.user_id\", \"brncount.isdelete = false\", \"brncount.istrash = false\"])]\n\n // }\n\n // if (datatypes.includes(customerDataTypes.branchUserCount)) {\n\n // let branchUserCountSqlSelect = {\n // [`COUNT(DISTINCT brnusrcount.${ModelBranchUserFields.branch_user_id})::INT`]: \"branch_user_count\"\n // }\n\n // filterColumns = { ...filterColumns, ...branchUserCountSqlSelect }\n\n // sqlSelect = [...sqlSelect, buildSqlSelect(``, branchUserCountSqlSelect)]\n // sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"cus\", \"branch_users\", \"brnusrcount\", [\"categ.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `categ.isdelete = false`,\n `categ.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: \"categories\",\n mainAlias: \"categ\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await categoryModel.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 removeCategories = async ({ categoryIds }: ItemCategoryRemoveProps) => {\n\n if (!categoryIds.length) throwError('categoryIds is required');\n\n const response = await categoryModel.remove({ where: { [`${ModelCategoryFields.category_id}`]: { in: categoryIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(categoryDataTypes);\n }\n\n return {\n createCategory,\n updateCategory,\n getCategory,\n listCategories,\n removeCategories,\n getDataTypes\n }\n\n}\n\n"]}
|
|
@@ -27,7 +27,7 @@ export type ItemItemCreateProps = {
|
|
|
27
27
|
itemDescription: string;
|
|
28
28
|
remark: string;
|
|
29
29
|
cost: number;
|
|
30
|
-
|
|
30
|
+
itemPrice: number;
|
|
31
31
|
floorPrice: number;
|
|
32
32
|
grossWeight: number;
|
|
33
33
|
volumeWeight: number;
|
|
@@ -49,7 +49,7 @@ export type ItemItemUpdateProps = {
|
|
|
49
49
|
itemDescription: string;
|
|
50
50
|
remark: string;
|
|
51
51
|
cost: number;
|
|
52
|
-
|
|
52
|
+
itemPrice: number;
|
|
53
53
|
floorPrice: number;
|
|
54
54
|
grossWeight: number;
|
|
55
55
|
volumeWeight: number;
|
|
@@ -70,26 +70,28 @@ export declare const ItemItemService: (props: ItemItemServiceProps) => {
|
|
|
70
70
|
isdelete: boolean | null;
|
|
71
71
|
istrash: boolean | null;
|
|
72
72
|
accountid: bigint;
|
|
73
|
-
status:
|
|
73
|
+
status: boolean | null;
|
|
74
74
|
item_id: bigint;
|
|
75
75
|
uom_id: bigint;
|
|
76
76
|
remark: string | null;
|
|
77
77
|
product_id: bigint;
|
|
78
78
|
summary: string | null;
|
|
79
|
+
uom_name: string | null;
|
|
80
|
+
uom_code: string;
|
|
79
81
|
item_code: string | null;
|
|
80
82
|
item_description: string | null;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
+
item_cost: import("@prisma/client/runtime/library").Decimal | null;
|
|
84
|
+
item_price: import("@prisma/client/runtime/library").Decimal | null;
|
|
85
|
+
floor_price: import("@prisma/client/runtime/library").Decimal | null;
|
|
83
86
|
gross_weight: import("@prisma/client/runtime/library").Decimal | null;
|
|
84
87
|
net_weight: import("@prisma/client/runtime/library").Decimal | null;
|
|
85
|
-
|
|
86
|
-
is_package: number;
|
|
87
|
-
floor_price: import("@prisma/client/runtime/library").Decimal | null;
|
|
88
|
+
volume_weight: import("@prisma/client/runtime/library").Decimal | null;
|
|
88
89
|
dimension_width: import("@prisma/client/runtime/library").Decimal | null;
|
|
89
90
|
dimension_height: import("@prisma/client/runtime/library").Decimal | null;
|
|
90
91
|
dimension_length: import("@prisma/client/runtime/library").Decimal | null;
|
|
91
92
|
cbm: import("@prisma/client/runtime/library").Decimal | null;
|
|
92
|
-
|
|
93
|
+
balance_quantity: import("@prisma/client/runtime/library").Decimal;
|
|
94
|
+
is_package: boolean | null;
|
|
93
95
|
}>;
|
|
94
96
|
updateItem: ({ itemId, data }: ItemItemUpdateProps) => Promise<{
|
|
95
97
|
createdatetime: Date | null;
|
|
@@ -99,26 +101,28 @@ export declare const ItemItemService: (props: ItemItemServiceProps) => {
|
|
|
99
101
|
isdelete: boolean | null;
|
|
100
102
|
istrash: boolean | null;
|
|
101
103
|
accountid: bigint;
|
|
102
|
-
status:
|
|
104
|
+
status: boolean | null;
|
|
103
105
|
item_id: bigint;
|
|
104
106
|
uom_id: bigint;
|
|
105
107
|
remark: string | null;
|
|
106
108
|
product_id: bigint;
|
|
107
109
|
summary: string | null;
|
|
110
|
+
uom_name: string | null;
|
|
111
|
+
uom_code: string;
|
|
108
112
|
item_code: string | null;
|
|
109
113
|
item_description: string | null;
|
|
110
|
-
|
|
111
|
-
|
|
114
|
+
item_cost: import("@prisma/client/runtime/library").Decimal | null;
|
|
115
|
+
item_price: import("@prisma/client/runtime/library").Decimal | null;
|
|
116
|
+
floor_price: import("@prisma/client/runtime/library").Decimal | null;
|
|
112
117
|
gross_weight: import("@prisma/client/runtime/library").Decimal | null;
|
|
113
118
|
net_weight: import("@prisma/client/runtime/library").Decimal | null;
|
|
114
|
-
|
|
115
|
-
is_package: number;
|
|
116
|
-
floor_price: import("@prisma/client/runtime/library").Decimal | null;
|
|
119
|
+
volume_weight: import("@prisma/client/runtime/library").Decimal | null;
|
|
117
120
|
dimension_width: import("@prisma/client/runtime/library").Decimal | null;
|
|
118
121
|
dimension_height: import("@prisma/client/runtime/library").Decimal | null;
|
|
119
122
|
dimension_length: import("@prisma/client/runtime/library").Decimal | null;
|
|
120
123
|
cbm: import("@prisma/client/runtime/library").Decimal | null;
|
|
121
|
-
|
|
124
|
+
balance_quantity: import("@prisma/client/runtime/library").Decimal;
|
|
125
|
+
is_package: boolean | null;
|
|
122
126
|
}>;
|
|
123
127
|
getItem: ({ id, datatypes }: ItemItemGetProps) => Promise<any>;
|
|
124
128
|
listItems: ({ limit, offset, filters, sortfield, sortorder, datatypes }: ItemItemListProps) => Promise<{
|
|
@@ -133,26 +137,28 @@ export declare const ItemItemService: (props: ItemItemServiceProps) => {
|
|
|
133
137
|
isdelete: boolean | null;
|
|
134
138
|
istrash: boolean | null;
|
|
135
139
|
accountid: bigint;
|
|
136
|
-
status:
|
|
140
|
+
status: boolean | null;
|
|
137
141
|
item_id: bigint;
|
|
138
142
|
uom_id: bigint;
|
|
139
143
|
remark: string | null;
|
|
140
144
|
product_id: bigint;
|
|
141
145
|
summary: string | null;
|
|
146
|
+
uom_name: string | null;
|
|
147
|
+
uom_code: string;
|
|
142
148
|
item_code: string | null;
|
|
143
149
|
item_description: string | null;
|
|
144
|
-
|
|
145
|
-
|
|
150
|
+
item_cost: import("@prisma/client/runtime/library").Decimal | null;
|
|
151
|
+
item_price: import("@prisma/client/runtime/library").Decimal | null;
|
|
152
|
+
floor_price: import("@prisma/client/runtime/library").Decimal | null;
|
|
146
153
|
gross_weight: import("@prisma/client/runtime/library").Decimal | null;
|
|
147
154
|
net_weight: import("@prisma/client/runtime/library").Decimal | null;
|
|
148
|
-
|
|
149
|
-
is_package: number;
|
|
150
|
-
floor_price: import("@prisma/client/runtime/library").Decimal | null;
|
|
155
|
+
volume_weight: import("@prisma/client/runtime/library").Decimal | null;
|
|
151
156
|
dimension_width: import("@prisma/client/runtime/library").Decimal | null;
|
|
152
157
|
dimension_height: import("@prisma/client/runtime/library").Decimal | null;
|
|
153
158
|
dimension_length: import("@prisma/client/runtime/library").Decimal | null;
|
|
154
159
|
cbm: import("@prisma/client/runtime/library").Decimal | null;
|
|
155
|
-
|
|
160
|
+
balance_quantity: import("@prisma/client/runtime/library").Decimal;
|
|
161
|
+
is_package: boolean | null;
|
|
156
162
|
}[]>;
|
|
157
163
|
getDataTypes: () => string[];
|
|
158
164
|
};
|
|
@@ -13,16 +13,18 @@ exports.itemDataTypes = {
|
|
|
13
13
|
// file: "file",
|
|
14
14
|
// product: "product"
|
|
15
15
|
};
|
|
16
|
-
const getCreatePayload = (data) => {
|
|
16
|
+
const getCreatePayload = (data, uomName, uomCode) => {
|
|
17
17
|
if ("item" in data) {
|
|
18
18
|
// please ignore the item_name, model, summary
|
|
19
19
|
return {
|
|
20
20
|
[`${models_1.ModelItemFields.product_id}`]: data.item.productId,
|
|
21
21
|
[`${models_1.ModelItemFields.uom_id}`]: data.item.uomId,
|
|
22
|
+
[`${models_1.ModelItemFields.uom_name}`]: uomName,
|
|
23
|
+
[`${models_1.ModelItemFields.uom_code}`]: uomCode,
|
|
22
24
|
[`${models_1.ModelItemFields.cbm}`]: data.item.cbm,
|
|
23
25
|
[`${models_1.ModelItemFields.item_code}`]: data.item.itemCode,
|
|
24
|
-
[`${models_1.ModelItemFields.
|
|
25
|
-
[`${models_1.ModelItemFields.
|
|
26
|
+
[`${models_1.ModelItemFields.item_cost}`]: data.item.cost,
|
|
27
|
+
[`${models_1.ModelItemFields.item_price}`]: data.item.itemPrice,
|
|
26
28
|
[`${models_1.ModelItemFields.dimension_height}`]: data.item.dimensionHeight,
|
|
27
29
|
[`${models_1.ModelItemFields.dimension_length}`]: data.item.dimensionLength,
|
|
28
30
|
[`${models_1.ModelItemFields.dimension_width}`]: data.item.dimensionWidth,
|
|
@@ -30,10 +32,10 @@ const getCreatePayload = (data) => {
|
|
|
30
32
|
[`${models_1.ModelItemFields.gross_weight}`]: data.item.grossWeight,
|
|
31
33
|
[`${models_1.ModelItemFields.net_weight}`]: data.item.netWeight,
|
|
32
34
|
[`${models_1.ModelItemFields.volume_weight}`]: data.item.volumeWeight,
|
|
33
|
-
[`${models_1.ModelItemFields.is_package}`]: data.item.isPackage
|
|
35
|
+
[`${models_1.ModelItemFields.is_package}`]: Boolean(data.item.isPackage),
|
|
34
36
|
[`${models_1.ModelItemFields.item_description}`]: data.item.itemDescription,
|
|
35
37
|
[`${models_1.ModelItemFields.remark}`]: data.item.remark,
|
|
36
|
-
[`${models_1.ModelItemFields.status}`]: data.item.status
|
|
38
|
+
[`${models_1.ModelItemFields.status}`]: Boolean(data.item.status)
|
|
37
39
|
};
|
|
38
40
|
}
|
|
39
41
|
return false;
|
|
@@ -45,8 +47,8 @@ const getUpdatePayload = (data) => {
|
|
|
45
47
|
// [`${ModelItemFields.uom_id}`]: data.item.uomId, // cannot changed
|
|
46
48
|
[`${models_1.ModelItemFields.cbm}`]: data.item.cbm,
|
|
47
49
|
[`${models_1.ModelItemFields.item_code}`]: data.item.itemCode,
|
|
48
|
-
[`${models_1.ModelItemFields.
|
|
49
|
-
[`${models_1.ModelItemFields.
|
|
50
|
+
[`${models_1.ModelItemFields.item_cost}`]: data.item.cost,
|
|
51
|
+
[`${models_1.ModelItemFields.item_price}`]: data.item.itemPrice,
|
|
50
52
|
[`${models_1.ModelItemFields.dimension_height}`]: data.item.dimensionHeight,
|
|
51
53
|
[`${models_1.ModelItemFields.dimension_length}`]: data.item.dimensionLength,
|
|
52
54
|
[`${models_1.ModelItemFields.dimension_width}`]: data.item.dimensionWidth,
|
|
@@ -54,10 +56,10 @@ const getUpdatePayload = (data) => {
|
|
|
54
56
|
[`${models_1.ModelItemFields.gross_weight}`]: data.item.grossWeight,
|
|
55
57
|
[`${models_1.ModelItemFields.net_weight}`]: data.item.netWeight,
|
|
56
58
|
[`${models_1.ModelItemFields.volume_weight}`]: data.item.volumeWeight,
|
|
57
|
-
[`${models_1.ModelItemFields.is_package}`]: data.item.isPackage
|
|
59
|
+
[`${models_1.ModelItemFields.is_package}`]: Boolean(data.item.isPackage),
|
|
58
60
|
[`${models_1.ModelItemFields.item_description}`]: data.item.itemDescription,
|
|
59
61
|
[`${models_1.ModelItemFields.remark}`]: data.item.remark,
|
|
60
|
-
[`${models_1.ModelItemFields.status}`]: data.item.status
|
|
62
|
+
[`${models_1.ModelItemFields.status}`]: Boolean(data.item.status)
|
|
61
63
|
};
|
|
62
64
|
}
|
|
63
65
|
return false;
|
|
@@ -69,7 +71,7 @@ let mainSqlSelect = {
|
|
|
69
71
|
[`itm.${models_1.ModelItemFields.uom_id}`]: "uom_id",
|
|
70
72
|
[`itm.${models_1.ModelItemFields.cbm}::float`]: "cbm",
|
|
71
73
|
[`itm.${models_1.ModelItemFields.item_code}`]: "item_code",
|
|
72
|
-
[`itm.${models_1.ModelItemFields.
|
|
74
|
+
[`itm.${models_1.ModelItemFields.item_cost}::float`]: "cost",
|
|
73
75
|
[`itm.${models_1.ModelItemFields.dimension_height}::float`]: "dimension_height",
|
|
74
76
|
[`itm.${models_1.ModelItemFields.dimension_length}::float`]: "dimension_length",
|
|
75
77
|
[`itm.${models_1.ModelItemFields.dimension_width}::float`]: "dimension_width",
|
|
@@ -83,8 +85,8 @@ let mainSqlSelect = {
|
|
|
83
85
|
[`itm.${models_1.ModelItemFields.remark}`]: "remark",
|
|
84
86
|
[`itm.${models_1.ModelItemFields.status}`]: "status",
|
|
85
87
|
[`itm.${models_1.ModelItemFields.summary}`]: "summary",
|
|
86
|
-
[`itm.${models_1.ModelItemFields.
|
|
87
|
-
[`itm.${models_1.ModelItemFields.
|
|
88
|
+
[`itm.${models_1.ModelItemFields.balance_quantity}::float`]: "balance_quantity",
|
|
89
|
+
[`itm.${models_1.ModelItemFields.item_price}::float`]: "item_price",
|
|
88
90
|
[`itm.${models_1.ModelItemFields.volume_weight}::float`]: "volume_weight",
|
|
89
91
|
};
|
|
90
92
|
let itemSqlSelect = {
|
|
@@ -97,16 +99,16 @@ let itemSqlSelect = {
|
|
|
97
99
|
[`prd.${models_1.ModelProductFields.model}`]: "model",
|
|
98
100
|
[`prd.${models_1.ModelProductFields.status}`]: "status",
|
|
99
101
|
[`prd.${models_1.ModelProductFields.summary}`]: "summary",
|
|
100
|
-
[`catg.${models_1.ModelCategoryFields.
|
|
102
|
+
[`catg.${models_1.ModelCategoryFields.category_name}`]: "category_name",
|
|
101
103
|
[`catg.${models_1.ModelCategoryFields.status}`]: "category_status",
|
|
102
104
|
[`catg.${models_1.ModelCategoryFields.description}`]: "category_description",
|
|
103
105
|
[`catg.${models_1.ModelCategoryFields.parent_category_id}`]: "parent_category_id",
|
|
104
|
-
[`brd.${models_1.ModelBrandFields.
|
|
106
|
+
[`brd.${models_1.ModelBrandFields.brand_name}`]: "brand_status",
|
|
105
107
|
[`brd.${models_1.ModelBrandFields.status}`]: "brand_status",
|
|
106
108
|
[`brd.${models_1.ModelBrandFields.description}`]: "brand_description",
|
|
107
109
|
[`uom.${models_1.ModelUomFields.decimal_digit}`]: "uom_decimal_digit",
|
|
108
110
|
[`uom.${models_1.ModelUomFields.description}`]: "uom_description",
|
|
109
|
-
[`uom.${models_1.ModelUomFields.
|
|
111
|
+
[`uom.${models_1.ModelUomFields.uom_name}`]: "uom_name",
|
|
110
112
|
[`uom.${models_1.ModelUomFields.status}`]: "uom_status",
|
|
111
113
|
[`uom.${models_1.ModelUomFields.metric_type}`]: "uom_metric_type",
|
|
112
114
|
[`uom.${models_1.ModelUomFields.metric_type_display_name}`]: "uom_metric_type_display_name",
|
|
@@ -124,8 +126,33 @@ const ItemItemService = (props) => {
|
|
|
124
126
|
const { ...rest } = props;
|
|
125
127
|
const injectionFieldService = (0, services_1.InjectionFieldService)({ ...rest, injectionFieldType: "item" });
|
|
126
128
|
const itemModel = (0, models_1.ItemModel)({ ...rest });
|
|
129
|
+
const uomModel = (0, models_1.UomModel)({ ...rest });
|
|
127
130
|
const createItem = async ({ data }) => {
|
|
128
|
-
|
|
131
|
+
// validate uom id
|
|
132
|
+
const validateUom = await uomModel.get({
|
|
133
|
+
where: {
|
|
134
|
+
[`${models_1.ModelUomFields.uom_id}`]: data.item.uomId,
|
|
135
|
+
[`${models_1.ModelUomFields.accountid}`]: rest.accountId,
|
|
136
|
+
[`${models_1.ModelUomFields.status}`]: true,
|
|
137
|
+
[`${models_1.ModelUomFields.isdelete}`]: false,
|
|
138
|
+
[`${models_1.ModelUomFields.istrash}`]: false,
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
if (!validateUom?.uom_id) {
|
|
142
|
+
throw new Error(`Invalid uomId item payload: ${data.item.uomId}`);
|
|
143
|
+
}
|
|
144
|
+
// validate item code
|
|
145
|
+
const validateCode = await itemModel.get({
|
|
146
|
+
where: {
|
|
147
|
+
[`${models_1.ModelItemFields.item_code}`]: data.item.itemCode,
|
|
148
|
+
[`${models_1.ModelItemFields.accountid}`]: rest.accountId,
|
|
149
|
+
[`${models_1.ModelItemFields.isdelete}`]: false
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
if (validateCode?.item_id) {
|
|
153
|
+
throw new Error(`Item code existed: ${validateCode.item_code} (${validateCode.item_id})`);
|
|
154
|
+
}
|
|
155
|
+
const _data = getCreatePayload(data, validateUom.uom_name ?? "", validateUom.uom_code ?? "");
|
|
129
156
|
if (!_data) {
|
|
130
157
|
throw new Error(`Invalid create item payload: ${JSON.stringify(_data)}`);
|
|
131
158
|
}
|
|
@@ -133,6 +160,20 @@ const ItemItemService = (props) => {
|
|
|
133
160
|
return response;
|
|
134
161
|
};
|
|
135
162
|
const updateItem = async ({ itemId, data }) => {
|
|
163
|
+
// validate item code
|
|
164
|
+
const validateCode = await itemModel.get({
|
|
165
|
+
where: {
|
|
166
|
+
[`${models_1.ModelItemFields.item_id}`]: {
|
|
167
|
+
not: BigInt(itemId)
|
|
168
|
+
},
|
|
169
|
+
[`${models_1.ModelItemFields.item_code}`]: data.item.itemCode,
|
|
170
|
+
[`${models_1.ModelItemFields.accountid}`]: rest.accountId,
|
|
171
|
+
[`${models_1.ModelItemFields.isdelete}`]: false
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
if (validateCode?.item_id) {
|
|
175
|
+
throw new Error(`Item code existed: ${validateCode.item_code} (${validateCode.item_id})`);
|
|
176
|
+
}
|
|
136
177
|
const _data = getUpdatePayload(data);
|
|
137
178
|
if (!_data) {
|
|
138
179
|
throw new Error(`Invalid update item payload: ${JSON.stringify(_data)}`);
|