storemw-core-api 1.0.153 → 1.0.155
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/features/index.d.ts +1 -1
- package/dist/features/index.js.map +1 -1
- package/dist/features/user_me/userMeRegistry.js +4 -0
- package/dist/features/user_me/userMeRegistry.js.map +1 -1
- package/dist/features/user_me/userMeType.d.ts +17 -3
- package/dist/features/user_me/userMeType.js.map +1 -1
- package/dist/services/access_control/AccessControlRoleService.js +1 -1
- package/dist/services/access_control/AccessControlRoleService.js.map +1 -1
- package/dist/services/access_key/AccessKeyService.js +1 -1
- package/dist/services/access_key/AccessKeyService.js.map +1 -1
- package/dist/services/account/AccountService.js +1 -1
- package/dist/services/account/AccountService.js.map +1 -1
- package/dist/services/auth/AuthService.js +2 -2
- package/dist/services/auth/AuthService.js.map +1 -1
- package/dist/services/business/BusinessService.js +1 -1
- package/dist/services/business/BusinessService.js.map +1 -1
- package/dist/services/file/FileService.js +4 -4
- package/dist/services/file/FileService.js.map +1 -1
- package/dist/services/gateway/SmtpEmailService.js +5 -4
- package/dist/services/gateway/SmtpEmailService.js.map +1 -1
- package/dist/services/injection_field/InjectionFieldService.js +1 -1
- package/dist/services/injection_field/InjectionFieldService.js.map +1 -1
- package/dist/services/item/ItemBrandService.js +1 -1
- package/dist/services/item/ItemBrandService.js.map +1 -1
- package/dist/services/item/ItemCategoryService.js +1 -1
- package/dist/services/item/ItemCategoryService.js.map +1 -1
- package/dist/services/item/ItemItemService.js +1 -1
- package/dist/services/item/ItemItemService.js.map +1 -1
- package/dist/services/item/ItemProductService.js +1 -1
- package/dist/services/item/ItemProductService.js.map +1 -1
- package/dist/services/item/ItemUomService.js +1 -1
- package/dist/services/item/ItemUomService.js.map +1 -1
- package/dist/services/location/LocationLocationService.js +1 -1
- package/dist/services/location/LocationLocationService.js.map +1 -1
- package/dist/services/location/LocationRackService.js +1 -1
- package/dist/services/location/LocationRackService.js.map +1 -1
- package/dist/services/location/LocationSlotService.js +1 -1
- package/dist/services/location/LocationSlotService.js.map +1 -1
- package/dist/services/one_time_code/OneTimeCodeService.js +1 -1
- package/dist/services/one_time_code/OneTimeCodeService.js.map +1 -1
- package/dist/services/region/AreaService.js +1 -1
- package/dist/services/region/AreaService.js.map +1 -1
- package/dist/services/region/CountryService.js +1 -1
- package/dist/services/region/CountryService.js.map +1 -1
- package/dist/services/region/StateService.js +1 -1
- package/dist/services/region/StateService.js.map +1 -1
- package/dist/services/reset_password/ResetPasswordService.js +4 -4
- package/dist/services/reset_password/ResetPasswordService.js.map +1 -1
- package/dist/services/scheduler/SchedulerLogService.js +1 -1
- package/dist/services/scheduler/SchedulerLogService.js.map +1 -1
- package/dist/services/subscription/account/AccountSubscribeService.js +1 -1
- package/dist/services/subscription/account/AccountSubscribeService.js.map +1 -1
- package/dist/services/subscription/plan/SubscribePlanService.js +1 -1
- package/dist/services/subscription/plan/SubscribePlanService.js.map +1 -1
- package/dist/services/user/AdministratorService.js +1 -1
- package/dist/services/user/AdministratorService.js.map +1 -1
- package/dist/services/user/AgentService.js +1 -1
- package/dist/services/user/AgentService.js.map +1 -1
- package/dist/services/user/CustomerService.js +1 -1
- package/dist/services/user/CustomerService.js.map +1 -1
- package/dist/services/user/DriverService.js +1 -1
- package/dist/services/user/DriverService.js.map +1 -1
- package/dist/services/user/MemberService.js +1 -1
- package/dist/services/user/MemberService.js.map +1 -1
- package/dist/services/user/OperatorService.js +1 -1
- package/dist/services/user/OperatorService.js.map +1 -1
- package/dist/services/user/RetailerService.js +1 -1
- package/dist/services/user/RetailerService.js.map +1 -1
- package/dist/services/user/UserMeService.js +29 -8
- package/dist/services/user/UserMeService.js.map +1 -1
- package/dist/services/user/UserService.js +1 -1
- package/dist/services/user/UserService.js.map +1 -1
- package/dist/services/user/WorkerService.js +1 -1
- package/dist/services/user/WorkerService.js.map +1 -1
- package/dist/utils/featureUtils.d.ts +3 -0
- package/dist/utils/featureUtils.js +11 -0
- package/dist/utils/featureUtils.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +3 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/serviceUtils.d.ts +1 -0
- package/dist/utils/serviceUtils.js +2 -1
- package/dist/utils/serviceUtils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InjectionFieldService.js","sourceRoot":"","sources":["../../../src/services/injection_field/InjectionFieldService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport { InjectionFieldModel, ModelInjectionFieldFields, ModelUserFields, InjectionFieldTargetTableName, ItemInjectionFieldModel } from \"@/models\";\nimport { UserInjectionFieldService, UserInjectionFieldReplaceProps, UserInjectionFieldModuleRef, userModulePrefixMap, userRefPrefixMap } from \"./UserInjectionFieldService\";\nimport { ItemInjectionFieldService, ItemInjectionFieldReplaceProps, ItemInjectionFieldModuleRef, itemModulePrefixMap, itemRefPrefixMap } from \"./ItemInjectionFieldService\";\nimport { RepositoryInjectionFieldService, RepositoryInjectionFieldReplaceProps, RepositoryInjectionFieldModuleRef, repositoryModulePrefixMap, repositoryRefPrefixMap } from \"./RepositoryInjectionFieldService\";\nimport { LogisticInjectionFieldService, LogisticInjectionFieldReplaceProps, LogisticInjectionFieldModuleRef, logisticModulePrefixMap, logisticRefPrefixMap } from \"./LogisticInjectionFieldService\";\nimport { DocumentInjectionFieldService, DocumentInjectionFieldReplaceProps, DocumentInjectionFieldModuleRef, documentModulePrefixMap, documentRefPrefixMap } from \"./DocumentInjectionFieldService\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { buildSqlRawSelect, buildSqlWhere, buildSqlRelation, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\nimport { DefaultServiceProps, buildFullFieldName } from \"@/utils\";\n\nexport const injectionFieldTypes = {\n user: \"user\",\n item: \"item\",\n document: \"document\",\n repository: \"repository\",\n logistic: \"logistic\",\n} as const\n\nexport type InjectionFieldType = typeof injectionFieldTypes[keyof typeof injectionFieldTypes]\n\nexport const injectionFieldDataTypes = {\n id: \"id\",\n value: \"value\",\n numeric: \"numeric\",\n integer: \"integer\",\n timestamp: \"timestamp\",\n date: \"date\",\n date_time: \"date_time\",\n text: \"text\"\n} as const\n\nexport type InjectionFieldDataType = typeof injectionFieldDataTypes[keyof typeof injectionFieldDataTypes]\n\nconst modulePrefixMap = {\n ...userModulePrefixMap,\n ...documentModulePrefixMap,\n ...repositoryModulePrefixMap,\n ...itemModulePrefixMap,\n ...logisticModulePrefixMap\n};\n\nconst refPrefixMap = {\n ...userRefPrefixMap,\n ...documentRefPrefixMap,\n ...repositoryRefPrefixMap,\n ...itemRefPrefixMap,\n ...logisticRefPrefixMap\n};\n\nexport type InjectionFieldServiceProps = DefaultServiceProps & {\n injectionFieldType: InjectionFieldType,\n};\n\nexport type InjectionFieldGetProps = QueryGet & {\n id: number,\n};\n\nexport type InjectionFieldListProps = QueryList & {\n // id: number,\n};\n\nexport type InjectionFieldRemoveProps = {\n injectionFieldIds: BigInt[]\n};\n\ntype RenameModuleRef<T extends { module: any; ref: any }> =\n T extends any\n ? { field_module: T[\"module\"]; field_ref: T[\"ref\"] }\n : never;\n\n// Apply to the whole union\nexport type InjectionFieldModuleRef = (\n RenameModuleRef<\n UserInjectionFieldModuleRef\n | ItemInjectionFieldModuleRef\n | DocumentInjectionFieldModuleRef\n | RepositoryInjectionFieldModuleRef\n | LogisticInjectionFieldModuleRef\n >\n)\n\nexport type InjectionFieldCreateProps = {\n data: InjectionFieldModuleRef &\n {\n field_key: string\n // fieldName: string\n field_type: InjectionFieldDataType\n is_multiple: false // hardcode\n multiple_count: false // hardcode\n merge_multiple_inline: false // hardcode\n }\n}\n\n// sample\n// let c: InjectionFieldCreateProps = {\n// data: {\n// field_ref: \"item\",\n// field_module: \"product\",\n// field_type: \"date\",\n// field_key: \"aaa\",\n// // field_name: \"sdfds\",\n// is_multiple: false,\n// merge_multiple_inline: false,\n// multiple_count: false\n// }\n// }\n\nexport type InjectionFieldReplaceProps = {\n injectionFieldType?: InjectionFieldType,\n data:\n // user\n | UserInjectionFieldReplaceProps[\"data\"]\n // item\n | ItemInjectionFieldReplaceProps[\"data\"]\n // document\n | DocumentInjectionFieldReplaceProps[\"data\"]\n // repository\n | RepositoryInjectionFieldReplaceProps[\"data\"]\n // logistic\n | LogisticInjectionFieldReplaceProps[\"data\"]\n}\n\nconst getCreatePayload = (data: InjectionFieldCreateProps[\"data\"], fieldName: string) => {\n\n return {\n [`${ModelInjectionFieldFields.field_key}`]: data.field_key,\n [`${ModelInjectionFieldFields.field_module}`]: data.field_module,\n [`${ModelInjectionFieldFields.field_name}`]: `${fieldName}`,\n [`${ModelInjectionFieldFields.field_ref}`]: data.field_ref,\n [`${ModelInjectionFieldFields.field_type}`]: data.field_type,\n [`${ModelInjectionFieldFields.is_multiple}`]: 0,\n [`${ModelInjectionFieldFields.multiple_count}`]: 0,\n [`${ModelInjectionFieldFields.merge_multiple_inline}`]: 0,\n }\n\n}\n\nlet mainSqlSelect = {\n [`injf.${ModelInjectionFieldFields.field_key}`]: \"field_key\",\n [`injf.${ModelInjectionFieldFields.field_module}`]: \"field_module\",\n [`injf.${ModelInjectionFieldFields.field_name}`]: \"field_name\",\n [`injf.${ModelInjectionFieldFields.field_ref}`]: \"field_ref\",\n [`injf.${ModelInjectionFieldFields.field_type}`]: \"field_type\",\n [`injf.${ModelInjectionFieldFields.injection_field_id}`]: \"injection_field_id\",\n [`injf.${ModelInjectionFieldFields.is_multiple}`]: \"is_multiple\",\n [`injf.${ModelInjectionFieldFields.merge_multiple_inline}`]: \"merge_multiple_inline\",\n [`injf.${ModelInjectionFieldFields.multiple_count}`]: \"multiple_count\",\n}\n\nlet defaultSqlSelect = {\n [`injf.${ModelInjectionFieldFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`injf.${ModelInjectionFieldFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`injf.${ModelInjectionFieldFields.isdelete}`]: \"isdelete\",\n [`injf.${ModelInjectionFieldFields.istrash}`]: \"istrash\",\n [`injf.${ModelInjectionFieldFields.accountid}`]: \"accountid\",\n}\n\nconst getTargetTableName = (fieldRef: keyof typeof refPrefixMap) => {\n\n let targetTableName = ``\n\n if (fieldRef in userRefPrefixMap) {\n targetTableName = \"user_injection_fields\"\n }\n\n if (fieldRef in documentRefPrefixMap) {\n targetTableName = \"document_injection_fields\"\n }\n\n if (fieldRef in itemRefPrefixMap) {\n targetTableName = \"item_injection_fields\"\n }\n\n if (fieldRef in logisticRefPrefixMap) {\n targetTableName = \"logistic_injection_fields\"\n }\n\n if (fieldRef in repositoryRefPrefixMap) {\n targetTableName = \"repository_injection_fields\"\n }\n\n return targetTableName\n}\n\nexport const InjectionFieldService = (props: InjectionFieldServiceProps) => {\n\n const {\n injectionFieldType = \"user\",\n ...rest\n } = props\n\n const injectionFieldModel = InjectionFieldModel({ ...rest })\n\n const userInjectionFieldService = UserInjectionFieldService({ ...rest })\n const documentInjectionFieldService = DocumentInjectionFieldService({ ...rest })\n const repositoryInjectionFieldService = RepositoryInjectionFieldService({ ...rest })\n const logisticInjectionFieldService = LogisticInjectionFieldService({ ...rest })\n const itemInjectionFieldService = ItemInjectionFieldService({ ...rest })\n\n const createInjectionField = async ({ data }: InjectionFieldCreateProps) => {\n\n const fieldName = buildFullFieldName(`${data.field_ref}`, `${data.field_module}`, `${data.field_key}`, refPrefixMap, modulePrefixMap)\n\n // have to check the record exists\n const existing = await listInjectionFields({\n offset: 0,\n limit: 1,\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n filters: [{\n field: `${ModelInjectionFieldFields.field_name}`,\n operator: '=',\n value: `${fieldName}`\n }],\n datatypes: []\n })\n\n if (existing.data.length > 0) {\n throw new Error(`Duplicated injection field name found : ${fieldName}`);\n }\n\n const _data = getCreatePayload(data, fieldName)\n\n if (!_data) {\n throw new Error(`Invalid create injection field payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await injectionFieldModel.create({ data: _data })\n\n let fieldRef = response?.field_ref ?? \"\"\n\n if (fieldRef) {\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n // after create record - create physical table fields\n injectionFieldModel.createInjectionFieldIntoTable(targetTableName, fieldName, data.field_type)\n }\n\n return response\n }\n\n const getInjectionField = async ({ id, datatypes = [] }: InjectionFieldGetProps) => {\n\n let { data } = await listInjectionFields({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelInjectionFieldFields.injection_field_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listInjectionFields = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [] }: InjectionFieldListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(injf.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, defaultSqlSelect)\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"injf\", \"users\", \"creator\", [\"injf.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"injf\", \"users\", \"updater\", [\"injf.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n let sqlWhere = [\n `injf.isdelete = false`,\n `injf.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: \"injection_fields\",\n mainAlias: \"injf\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true // mean any injection fields not matter which account creation\n })\n\n data = await injectionFieldModel.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 replaceInjectionField = async ({ data, injectionFieldType: overrideInjectionFieldType }: InjectionFieldReplaceProps) => {\n\n const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n\n const _data = data\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n let response: any = {}\n\n if (_injectionFieldType === \"user\") {\n response = await userInjectionFieldService.replaceUserInjectionField({ data: _data as UserInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"document\") {\n response = await documentInjectionFieldService.replaceDocumentInjectionField({ data: _data as DocumentInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"item\") {\n response = await itemInjectionFieldService.replaceItemInjectionField({ data: _data as ItemInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"repository\") {\n response = await repositoryInjectionFieldService.replaceRepositoryInjectionField({ data: _data as RepositoryInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"logistic\") {\n response = await logisticInjectionFieldService.replaceLogisticInjectionField({ data: _data as LogisticInjectionFieldReplaceProps[\"data\"] })\n }\n\n return response\n }\n\n const removeInjectionFields = async ({ injectionFieldIds }: InjectionFieldRemoveProps) => {\n\n if (!injectionFieldIds.length) throwError('injectionFieldIds is required');\n\n await Promise.all(\n injectionFieldIds.map(async (id) => {\n // suspend the field in table\n const current = await getInjectionField({ id: Number(id), datatypes: [] });\n const currentFieldName = current?.field_name ?? \"\";\n\n let fieldRef = current?.field_ref ?? \"\"\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n if (currentFieldName) {\n await injectionFieldModel.suspendInjectionFieldFromTable(targetTableName, currentFieldName);\n }\n })\n );\n\n const response = await injectionFieldModel.remove({ where: { [`${ModelInjectionFieldFields.injection_field_id}`]: { in: injectionFieldIds } } });\n\n return response\n };\n\n const listActiveInjectionFields = async (fieldRef: keyof typeof refPrefixMap, fieldModule: keyof typeof modulePrefixMap) => {\n\n // const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n // let current: any = []\n\n // if (_injectionFieldType === injectionFieldTypes.item) {\n // const injectionFieldModel = ItemInjectionFieldModel({ ...rest })\n // current = await injectionFieldModel.getFields('', [\"removed_\"])\n // }\n\n let { data } = await listInjectionFields({\n limit: 100,\n offset: 0,\n filters: [\n { field: `${ModelInjectionFieldFields.field_ref}`, operator: \"=\", value: fieldRef },\n { field: `${ModelInjectionFieldFields.field_module}`, operator: \"=\", value: fieldModule },\n ],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n // return data[0] ?? null;\n\n return data.map(i => ({\n fieldName: i.field_name,\n fieldType: i.field_type\n }))\n\n }\n\n return {\n createInjectionField,\n getInjectionField,\n replaceInjectionField,\n listInjectionFields,\n removeInjectionFields,\n listActiveInjectionFields,\n }\n\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"InjectionFieldService.js","sourceRoot":"","sources":["../../../src/services/injection_field/InjectionFieldService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport { InjectionFieldModel, ModelInjectionFieldFields, ModelUserFields, InjectionFieldTargetTableName, ItemInjectionFieldModel } from \"@/models\";\nimport { UserInjectionFieldService, UserInjectionFieldReplaceProps, UserInjectionFieldModuleRef, userModulePrefixMap, userRefPrefixMap } from \"./UserInjectionFieldService\";\nimport { ItemInjectionFieldService, ItemInjectionFieldReplaceProps, ItemInjectionFieldModuleRef, itemModulePrefixMap, itemRefPrefixMap } from \"./ItemInjectionFieldService\";\nimport { RepositoryInjectionFieldService, RepositoryInjectionFieldReplaceProps, RepositoryInjectionFieldModuleRef, repositoryModulePrefixMap, repositoryRefPrefixMap } from \"./RepositoryInjectionFieldService\";\nimport { LogisticInjectionFieldService, LogisticInjectionFieldReplaceProps, LogisticInjectionFieldModuleRef, logisticModulePrefixMap, logisticRefPrefixMap } from \"./LogisticInjectionFieldService\";\nimport { DocumentInjectionFieldService, DocumentInjectionFieldReplaceProps, DocumentInjectionFieldModuleRef, documentModulePrefixMap, documentRefPrefixMap } from \"./DocumentInjectionFieldService\";\n\nimport { QueryList, QueryGet } from \"@/schema/common\";\n\nimport { buildSqlRawSelect, buildSqlWhere, buildSqlRelation, buildSqlSelect, buildSqlLimitOffset, buildSqlOrderBy } from \"@/lib\";\nimport { DefaultServiceProps, buildFullFieldName } from \"@/utils\";\n\nexport const injectionFieldTypes = {\n user: \"user\",\n item: \"item\",\n document: \"document\",\n repository: \"repository\",\n logistic: \"logistic\",\n} as const\n\nexport type InjectionFieldType = typeof injectionFieldTypes[keyof typeof injectionFieldTypes]\n\nexport const injectionFieldDataTypes = {\n id: \"id\",\n value: \"value\",\n numeric: \"numeric\",\n integer: \"integer\",\n timestamp: \"timestamp\",\n date: \"date\",\n date_time: \"date_time\",\n text: \"text\"\n} as const\n\nexport type InjectionFieldDataType = typeof injectionFieldDataTypes[keyof typeof injectionFieldDataTypes]\n\nconst modulePrefixMap = {\n ...userModulePrefixMap,\n ...documentModulePrefixMap,\n ...repositoryModulePrefixMap,\n ...itemModulePrefixMap,\n ...logisticModulePrefixMap\n};\n\nconst refPrefixMap = {\n ...userRefPrefixMap,\n ...documentRefPrefixMap,\n ...repositoryRefPrefixMap,\n ...itemRefPrefixMap,\n ...logisticRefPrefixMap\n};\n\nexport type InjectionFieldServiceProps = DefaultServiceProps & {\n injectionFieldType: InjectionFieldType,\n};\n\nexport type InjectionFieldGetProps = QueryGet & {\n id: number,\n};\n\nexport type InjectionFieldListProps = QueryList & {\n // id: number,\n};\n\nexport type InjectionFieldRemoveProps = {\n injectionFieldIds: BigInt[]\n};\n\ntype RenameModuleRef<T extends { module: any; ref: any }> =\n T extends any\n ? { field_module: T[\"module\"]; field_ref: T[\"ref\"] }\n : never;\n\n// Apply to the whole union\nexport type InjectionFieldModuleRef = (\n RenameModuleRef<\n UserInjectionFieldModuleRef\n | ItemInjectionFieldModuleRef\n | DocumentInjectionFieldModuleRef\n | RepositoryInjectionFieldModuleRef\n | LogisticInjectionFieldModuleRef\n >\n)\n\nexport type InjectionFieldCreateProps = {\n data: InjectionFieldModuleRef &\n {\n field_key: string\n // fieldName: string\n field_type: InjectionFieldDataType\n is_multiple: false // hardcode\n multiple_count: false // hardcode\n merge_multiple_inline: false // hardcode\n }\n}\n\n// sample\n// let c: InjectionFieldCreateProps = {\n// data: {\n// field_ref: \"item\",\n// field_module: \"product\",\n// field_type: \"date\",\n// field_key: \"aaa\",\n// // field_name: \"sdfds\",\n// is_multiple: false,\n// merge_multiple_inline: false,\n// multiple_count: false\n// }\n// }\n\nexport type InjectionFieldReplaceProps = {\n injectionFieldType?: InjectionFieldType,\n data:\n // user\n | UserInjectionFieldReplaceProps[\"data\"]\n // item\n | ItemInjectionFieldReplaceProps[\"data\"]\n // document\n | DocumentInjectionFieldReplaceProps[\"data\"]\n // repository\n | RepositoryInjectionFieldReplaceProps[\"data\"]\n // logistic\n | LogisticInjectionFieldReplaceProps[\"data\"]\n}\n\nconst getCreatePayload = (data: InjectionFieldCreateProps[\"data\"], fieldName: string) => {\n\n return {\n [`${ModelInjectionFieldFields.field_key}`]: data.field_key,\n [`${ModelInjectionFieldFields.field_module}`]: data.field_module,\n [`${ModelInjectionFieldFields.field_name}`]: `${fieldName}`,\n [`${ModelInjectionFieldFields.field_ref}`]: data.field_ref,\n [`${ModelInjectionFieldFields.field_type}`]: data.field_type,\n [`${ModelInjectionFieldFields.is_multiple}`]: 0,\n [`${ModelInjectionFieldFields.multiple_count}`]: 0,\n [`${ModelInjectionFieldFields.merge_multiple_inline}`]: 0,\n }\n\n}\n\nlet mainSqlSelect = {\n [`injf.${ModelInjectionFieldFields.field_key}`]: \"field_key\",\n [`injf.${ModelInjectionFieldFields.field_module}`]: \"field_module\",\n [`injf.${ModelInjectionFieldFields.field_name}`]: \"field_name\",\n [`injf.${ModelInjectionFieldFields.field_ref}`]: \"field_ref\",\n [`injf.${ModelInjectionFieldFields.field_type}`]: \"field_type\",\n [`injf.${ModelInjectionFieldFields.injection_field_id}`]: \"injection_field_id\",\n [`injf.${ModelInjectionFieldFields.is_multiple}`]: \"is_multiple\",\n [`injf.${ModelInjectionFieldFields.merge_multiple_inline}`]: \"merge_multiple_inline\",\n [`injf.${ModelInjectionFieldFields.multiple_count}`]: \"multiple_count\",\n}\n\nlet defaultSqlSelect = {\n [`injf.${ModelInjectionFieldFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`injf.${ModelInjectionFieldFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`injf.${ModelInjectionFieldFields.isdelete}`]: \"isdelete\",\n [`injf.${ModelInjectionFieldFields.istrash}`]: \"istrash\",\n [`injf.${ModelInjectionFieldFields.accountid}`]: \"accountid\",\n}\n\nconst getTargetTableName = (fieldRef: keyof typeof refPrefixMap) => {\n\n let targetTableName = ``\n\n if (fieldRef in userRefPrefixMap) {\n targetTableName = \"user_injection_fields\"\n }\n\n if (fieldRef in documentRefPrefixMap) {\n targetTableName = \"document_injection_fields\"\n }\n\n if (fieldRef in itemRefPrefixMap) {\n targetTableName = \"item_injection_fields\"\n }\n\n if (fieldRef in logisticRefPrefixMap) {\n targetTableName = \"logistic_injection_fields\"\n }\n\n if (fieldRef in repositoryRefPrefixMap) {\n targetTableName = \"repository_injection_fields\"\n }\n\n return targetTableName\n}\n\nexport const InjectionFieldService = (props: InjectionFieldServiceProps) => {\n\n const {\n injectionFieldType = \"user\",\n ...rest\n } = props\n\n const injectionFieldModel = InjectionFieldModel({ ...rest })\n\n const userInjectionFieldService = UserInjectionFieldService({ ...rest })\n const documentInjectionFieldService = DocumentInjectionFieldService({ ...rest })\n const repositoryInjectionFieldService = RepositoryInjectionFieldService({ ...rest })\n const logisticInjectionFieldService = LogisticInjectionFieldService({ ...rest })\n const itemInjectionFieldService = ItemInjectionFieldService({ ...rest })\n\n const createInjectionField = async ({ data }: InjectionFieldCreateProps) => {\n\n const fieldName = buildFullFieldName(`${data.field_ref}`, `${data.field_module}`, `${data.field_key}`, refPrefixMap, modulePrefixMap)\n\n // have to check the record exists\n const existing = await listInjectionFields({\n offset: 0,\n limit: 1,\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n filters: [{\n field: `${ModelInjectionFieldFields.field_name}`,\n operator: '=',\n value: `${fieldName}`\n }],\n datatypes: []\n })\n\n if (existing.data.length > 0) {\n throw new Error(`Duplicated injection field name found : ${fieldName}`);\n }\n\n const _data = getCreatePayload(data, fieldName)\n\n if (!_data) {\n throw new Error(`Invalid create injection field payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await injectionFieldModel.create({ data: _data })\n\n let fieldRef = response?.field_ref ?? \"\"\n\n if (fieldRef) {\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n // after create record - create physical table fields\n injectionFieldModel.createInjectionFieldIntoTable(targetTableName, fieldName, data.field_type)\n }\n\n return response\n }\n\n const getInjectionField = async ({ id, datatypes = [] }: InjectionFieldGetProps) => {\n\n let { data } = await listInjectionFields({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelInjectionFieldFields.injection_field_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listInjectionFields = async ({ limit, offset, filters = [], sortfield, sortorder, datatypes = [] }: InjectionFieldListProps) => {\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\", \"injf\", \"users\", \"creator\", [\"injf.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"injf\", \"users\", \"updater\", [\"injf.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [...Object.keys(mainSqlSelect), ...Object.keys(defaultSqlSelect)]\n\n let filterColumns = { ...mainSqlSelect, ...defaultSqlSelect }\n\n let sqlWhere = [\n `injf.isdelete = false`,\n `injf.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: \"injection_fields\",\n mainAlias: \"injf\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset,\n skipFilterAccountId: true // mean any injection fields not matter which account creation\n })\n\n data = await injectionFieldModel.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 replaceInjectionField = async ({ data, injectionFieldType: overrideInjectionFieldType }: InjectionFieldReplaceProps) => {\n\n const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n\n const _data = data\n\n if (!_data) {\n throw new Error(`Invalid create payload: ${JSON.stringify(_data)}`);\n }\n\n let response: any = {}\n\n if (_injectionFieldType === \"user\") {\n response = await userInjectionFieldService.replaceUserInjectionField({ data: _data as UserInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"document\") {\n response = await documentInjectionFieldService.replaceDocumentInjectionField({ data: _data as DocumentInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"item\") {\n response = await itemInjectionFieldService.replaceItemInjectionField({ data: _data as ItemInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"repository\") {\n response = await repositoryInjectionFieldService.replaceRepositoryInjectionField({ data: _data as RepositoryInjectionFieldReplaceProps[\"data\"] })\n }\n\n if (_injectionFieldType === \"logistic\") {\n response = await logisticInjectionFieldService.replaceLogisticInjectionField({ data: _data as LogisticInjectionFieldReplaceProps[\"data\"] })\n }\n\n return response\n }\n\n const removeInjectionFields = async ({ injectionFieldIds }: InjectionFieldRemoveProps) => {\n\n if (!injectionFieldIds.length) throwError('injectionFieldIds is required');\n\n await Promise.all(\n injectionFieldIds.map(async (id) => {\n // suspend the field in table\n const current = await getInjectionField({ id: Number(id), datatypes: [] });\n const currentFieldName = current?.field_name ?? \"\";\n\n let fieldRef = current?.field_ref ?? \"\"\n let targetTableName = getTargetTableName(fieldRef as keyof typeof refPrefixMap) as InjectionFieldTargetTableName\n\n if (currentFieldName) {\n await injectionFieldModel.suspendInjectionFieldFromTable(targetTableName, currentFieldName);\n }\n })\n );\n\n const response = await injectionFieldModel.remove({ where: { [`${ModelInjectionFieldFields.injection_field_id}`]: { in: injectionFieldIds } } });\n\n return response\n };\n\n const listActiveInjectionFields = async (fieldRef: keyof typeof refPrefixMap, fieldModule: keyof typeof modulePrefixMap) => {\n\n // const _injectionFieldType = overrideInjectionFieldType || injectionFieldType\n // let current: any = []\n\n // if (_injectionFieldType === injectionFieldTypes.item) {\n // const injectionFieldModel = ItemInjectionFieldModel({ ...rest })\n // current = await injectionFieldModel.getFields('', [\"removed_\"])\n // }\n\n let { data } = await listInjectionFields({\n limit: 100,\n offset: 0,\n filters: [\n { field: `${ModelInjectionFieldFields.field_ref}`, operator: \"=\", value: fieldRef },\n { field: `${ModelInjectionFieldFields.field_module}`, operator: \"=\", value: fieldModule },\n ],\n sortfield: `${ModelInjectionFieldFields.injection_field_id}`,\n sortorder: \"ASC\",\n datatypes: []\n })\n\n // return data[0] ?? null;\n\n return data.map(i => ({\n fieldName: i.field_name,\n fieldType: i.field_type\n }))\n\n }\n\n return {\n createInjectionField,\n getInjectionField,\n replaceInjectionField,\n listInjectionFields,\n removeInjectionFields,\n listActiveInjectionFields,\n }\n\n}\n\n"]}
|
|
@@ -78,7 +78,7 @@ const ItemBrandService = (props) => {
|
|
|
78
78
|
const listBrands = async ({ limit, offset, filters, sortfield, sortorder, datatypes = [] }) => {
|
|
79
79
|
let data = [];
|
|
80
80
|
let sqlSelect = [
|
|
81
|
-
`COUNT(
|
|
81
|
+
`COUNT(*) OVER() as filtered_count`,
|
|
82
82
|
(0, lib_1.buildSqlSelect)(``, mainSqlSelect),
|
|
83
83
|
(0, lib_1.buildSqlSelect)(``, defaultSqlSelect),
|
|
84
84
|
];
|
|
@@ -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(brd.*) 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 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"]}
|
|
@@ -95,7 +95,7 @@ const ItemCategoryService = (props) => {
|
|
|
95
95
|
const listCategories = async ({ limit, offset, filters, sortfield, sortorder, datatypes = [] }) => {
|
|
96
96
|
let data = [];
|
|
97
97
|
let sqlSelect = [
|
|
98
|
-
`COUNT(
|
|
98
|
+
`COUNT(*) OVER() as filtered_count`,
|
|
99
99
|
(0, lib_1.buildSqlSelect)(``, mainSqlSelect),
|
|
100
100
|
(0, lib_1.buildSqlSelect)(``, parentSqlSelect),
|
|
101
101
|
(0, lib_1.buildSqlSelect)(``, childrenSqlSelect),
|
|
@@ -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(categ.*) 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 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"]}
|
|
@@ -154,7 +154,7 @@ const ItemItemService = (props) => {
|
|
|
154
154
|
const listItems = async ({ limit, offset, filters, sortfield, sortorder, datatypes = [] }) => {
|
|
155
155
|
let data = [];
|
|
156
156
|
let sqlSelect = [
|
|
157
|
-
`COUNT(
|
|
157
|
+
`COUNT(*) OVER() as filtered_count`,
|
|
158
158
|
(0, lib_1.buildSqlSelect)(``, mainSqlSelect),
|
|
159
159
|
(0, lib_1.buildSqlSelect)(``, itemSqlSelect),
|
|
160
160
|
(0, lib_1.buildSqlSelect)(``, defaultSqlSelect),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemItemService.js","sourceRoot":"","sources":["../../../src/services/item/ItemItemService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n ItemModel,\n ModelItemFields,\n ModelProductFields,\n ModelCategoryFields,\n ModelBrandFields,\n ModelUomFields\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 = \"item\"\n\nexport const itemDataTypes = {\n itemInjectionFields: \"item_injection_fields\",\n // slotItem: \"slot_item\",\n // allSupplier: \"all_supplier\",\n // latestGrAmount: \"lastest_gr_amount\",\n // file: \"file\",\n // product: \"product\"\n}\n\nexport type ItemDataType = keyof typeof itemDataTypes;\n\nexport type ItemItemServiceProps = DefaultServiceProps & {};\n\nexport type ItemItemGetProps = {\n id: number,\n datatypes: ItemDataType[]\n};\n\nexport type ItemItemListProps = QueryList & {\n datatypes: ItemDataType[]\n};\n\nexport type ItemItemRemoveProps = {\n itemIds: BigInt[]\n};\n\nexport type ItemItemCreateProps = {\n data:\n // item\n {\n item: {\n productId: number\n uomId: number\n itemCode: string // code\n status: boolean\n\n isPackage: boolean\n itemDescription: string\n remark: string\n cost: number\n uomPrice: number\n\n floorPrice: number\n grossWeight: number\n volumeWeight: number\n netWeight: number\n dimensionWidth: number\n\n dimensionHeight: number\n dimensionLength: number\n cbm: number\n // transformRatio?: number\n // repackRemark?: string\n\n // supplierIds?: number[]\n // scanningCodePrefix?: number\n // scanningCodeSuffix?: number\n // relocateThresholdQty?: number\n // relocateTopupQty?: number\n\n // reorderThresholdQty?: number\n // reorderTopupQty?: number\n\n }\n }\n}\n\nexport type ItemItemUpdateProps = {\n itemId: number,\n data:\n // item\n {\n item: {\n // productId: number\n // uomId: number\n itemCode: string // code\n status: boolean\n\n isPackage: boolean\n itemDescription: string\n remark: string\n cost: number\n uomPrice: number\n\n floorPrice: number\n grossWeight: number\n volumeWeight: number\n netWeight: number\n dimensionWidth: number\n\n dimensionHeight: number\n dimensionLength: number\n cbm: number\n // transformRatio?: number\n // repackRemark?: string\n\n // supplierIds?: number[]\n // scanningCodePrefix?: number\n // scanningCodeSuffix?: number\n // relocateThresholdQty?: number\n // relocateTopupQty?: number\n\n // reorderThresholdQty?: number\n // reorderTopupQty?: number\n }\n }\n}\n\nconst getCreatePayload = (data: ItemItemCreateProps[\"data\"]) => {\n\n if (\"item\" in data) {\n\n // please ignore the item_name, model, summary\n\n return {\n [`${ModelItemFields.product_id}`]: data.item.productId,\n [`${ModelItemFields.uom_id}`]: data.item.uomId,\n [`${ModelItemFields.cbm}`]: data.item.cbm,\n [`${ModelItemFields.item_code}`]: data.item.itemCode,\n\n [`${ModelItemFields.cost}`]: data.item.cost,\n [`${ModelItemFields.uom_price}`]: data.item.uomPrice,\n [`${ModelItemFields.dimension_height}`]: data.item.dimensionHeight,\n [`${ModelItemFields.dimension_length}`]: data.item.dimensionLength,\n [`${ModelItemFields.dimension_width}`]: data.item.dimensionWidth,\n\n [`${ModelItemFields.floor_price}`]: data.item.floorPrice,\n [`${ModelItemFields.gross_weight}`]: data.item.grossWeight,\n [`${ModelItemFields.net_weight}`]: data.item.netWeight,\n [`${ModelItemFields.volume_weight}`]: data.item.volumeWeight,\n [`${ModelItemFields.is_package}`]: data.item.isPackage ? 1 : 0,\n\n [`${ModelItemFields.item_description}`]: data.item.itemDescription,\n [`${ModelItemFields.remark}`]: data.item.remark,\n [`${ModelItemFields.status}`]: data.item.status ? 1 : 0,\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: ItemItemUpdateProps[\"data\"]) => {\n\n if (\"item\" in data) {\n\n return {\n // [`${ModelItemFields.product_id}`]: data.item.productId, // cannot changed\n // [`${ModelItemFields.uom_id}`]: data.item.uomId, // cannot changed\n [`${ModelItemFields.cbm}`]: data.item.cbm,\n [`${ModelItemFields.item_code}`]: data.item.itemCode,\n\n [`${ModelItemFields.cost}`]: data.item.cost,\n [`${ModelItemFields.uom_price}`]: data.item.uomPrice,\n [`${ModelItemFields.dimension_height}`]: data.item.dimensionHeight,\n [`${ModelItemFields.dimension_length}`]: data.item.dimensionLength,\n [`${ModelItemFields.dimension_width}`]: data.item.dimensionWidth,\n\n [`${ModelItemFields.floor_price}`]: data.item.floorPrice,\n [`${ModelItemFields.gross_weight}`]: data.item.grossWeight,\n [`${ModelItemFields.net_weight}`]: data.item.netWeight,\n [`${ModelItemFields.volume_weight}`]: data.item.volumeWeight,\n [`${ModelItemFields.is_package}`]: data.item.isPackage ? 1 : 0,\n\n [`${ModelItemFields.item_description}`]: data.item.itemDescription,\n [`${ModelItemFields.remark}`]: data.item.remark,\n [`${ModelItemFields.status}`]: data.item.status ? 1 : 0,\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`itm.${ModelItemFields.item_id}`]: \"item_id\",\n // [`itm.${ModelItemFields.brand_id}`]: \"brand_id\", // no use\n // [`itm.${ModelItemFields.category_id}`]: \"category_id\", // no use\n [`itm.${ModelItemFields.uom_id}`]: \"uom_id\",\n [`itm.${ModelItemFields.cbm}::float`]: \"cbm\",\n [`itm.${ModelItemFields.item_code}`]: \"item_code\",\n [`itm.${ModelItemFields.cost}::float`]: \"cost\",\n [`itm.${ModelItemFields.dimension_height}::float`]: \"dimension_height\",\n [`itm.${ModelItemFields.dimension_length}::float`]: \"dimension_length\",\n [`itm.${ModelItemFields.dimension_width}::float`]: \"dimension_width\",\n [`itm.${ModelItemFields.floor_price}::float`]: \"floor_price\",\n [`itm.${ModelItemFields.gross_weight}::float`]: \"gross_weight\",\n [`itm.${ModelItemFields.is_package}`]: \"is_package\",\n [`itm.${ModelItemFields.item_description}`]: \"item_description\",\n // [`itm.${ModelItemFields.item_name}`]: \"item_name\", // no use\n // [`itm.${ModelItemFields.model}`]: \"model\", // no use \n [`itm.${ModelItemFields.net_weight}::float`]: \"net_weight\",\n [`itm.${ModelItemFields.remark}`]: \"remark\",\n [`itm.${ModelItemFields.status}`]: \"status\",\n [`itm.${ModelItemFields.summary}`]: \"summary\",\n [`itm.${ModelItemFields.uom_bal}::float`]: \"uom_bal\",\n [`itm.${ModelItemFields.uom_price}::float`]: \"uom_price\",\n [`itm.${ModelItemFields.volume_weight}::float`]: \"volume_weight\",\n}\n\nlet itemSqlSelect = {\n [`prd.${ModelProductFields.product_id}`]: \"product_id\",\n [`prd.${ModelProductFields.brand_id}`]: \"brand_id\",\n [`prd.${ModelProductFields.category_id}`]: \"category_id\",\n [`prd.${ModelProductFields.product_code}`]: \"product_code\",\n [`prd.${ModelProductFields.product_name}`]: \"product_name\",\n [`prd.${ModelProductFields.description}`]: \"description\",\n [`prd.${ModelProductFields.model}`]: \"model\",\n [`prd.${ModelProductFields.status}`]: \"status\",\n [`prd.${ModelProductFields.summary}`]: \"summary\",\n [`catg.${ModelCategoryFields.name}`]: \"category_name\",\n [`catg.${ModelCategoryFields.status}`]: \"category_status\",\n [`catg.${ModelCategoryFields.description}`]: \"category_description\",\n [`catg.${ModelCategoryFields.parent_category_id}`]: \"parent_category_id\",\n [`brd.${ModelBrandFields.name}`]: \"brand_status\",\n [`brd.${ModelBrandFields.status}`]: \"brand_status\",\n [`brd.${ModelBrandFields.description}`]: \"brand_description\",\n [`uom.${ModelUomFields.decimal_digit}`]: \"uom_decimal_digit\",\n [`uom.${ModelUomFields.description}`]: \"uom_description\",\n [`uom.${ModelUomFields.name}`]: \"uom_name\",\n [`uom.${ModelUomFields.status}`]: \"uom_status\",\n [`uom.${ModelUomFields.metric_type}`]: \"uom_metric_type\",\n [`uom.${ModelUomFields.metric_type_display_name}`]: \"uom_metric_type_display_name\",\n}\n\nlet defaultSqlSelect = {\n [`itm.${ModelItemFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`itm.${ModelItemFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`itm.${ModelItemFields.isdelete}`]: \"isdelete\",\n [`itm.${ModelItemFields.istrash}`]: \"istrash\",\n [`itm.${ModelItemFields.accountid}`]: \"accountid\",\n}\n\nexport const ItemItemService = (props: ItemItemServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"item\" })\n\n const itemModel = ItemModel({ ...rest })\n\n const createItem = async ({ data }: ItemItemCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create item payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await itemModel.create({ data: _data })\n\n return response\n }\n\n const updateItem = async ({ itemId, data }: ItemItemUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update item payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await itemModel.update({ where: { [`${ModelItemFields.item_id}`]: itemId }, data: _data })\n\n return response\n }\n\n const getItem = async ({ id, datatypes = [] }: ItemItemGetProps) => {\n\n let { data } = await listItems({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelItemFields.item_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelItemFields.item_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listItems = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: ItemItemListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(itm.*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, itemSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"itm\", \"products\", \"prd\", [\"itm.product_id = prd.product_id\", \"prd.isdelete = false\", \"prd.istrash = false\"]),\n buildSqlRelation(\"left\", \"itm\", \"uoms\", \"uom\", [\"itm.uom_id = uom.uom_id\", \"uom.isdelete = false\", \"uom.istrash = false\"]),\n buildSqlRelation(\"left\", \"itm\", \"categories\", \"catg\", [\"prd.category_id = catg.category_id\", \"catg.isdelete = false\", \"catg.istrash = false\"]),\n buildSqlRelation(\"left\", \"itm\", \"brands\", \"brd\", [\"prd.brand_id = brd.brand_id\", \"brd.isdelete = false\", \"brd.istrash = false\"]),\n buildSqlRelation(\"left\", \"itm\", \"users\", \"creator\", [\"itm.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"itm\", \"users\", \"updater\", [\"itm.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"]),\n // buildSqlRelation(\"left\", \"itm\", \"user_status\", \"usrsta_isowner\", [\"itm.user_id = usrsta_isowner.user_id\", \"usrsta_isowner.type = 'IS_OWNER'\", \"usrsta_isowner.isdelete = false\", \"usrsta_isowner.istrash = false\"]),\n // buildSqlRelation(\"left\", \"itm\", \"user_props\", \"usrprop_location\", [\"itm.user_id = usrprop_location.user_id\", \"usrprop_location.type = 'LOCATION_ID'\", \"usrprop_location.isdelete = false\", \"usrprop_location.istrash = false\"]),\n // buildSqlRelation(\"left\", \"itm\", \"locations\", \"location\", [\"usrprop_location.props_id = location.location_id\", \"location.isdelete = false\", \"location.istrash = false\"]),\n // buildSqlRelation(\"left\", \"itm\", \"group_owners\", \"grpown\", [\"itm.user_id = grpown.user_id\", \"grpown.isdelete = false\", \"grpown.istrash = false\"]),\n // buildSqlRelation(\"left\", \"itm\", \"groups\", \"grp\", [\"grpown.group_id = grp.group_id\", \"grp.isdelete = false\", \"grp.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(itemSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...itemSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(itemDataTypes.itemInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"item\")\n\n const injectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif\", activeInjectionFields)\n\n // const injectionFieldSqlSelect = a.reduce((acc, col) => {\n // acc[`iif.${col}`] = `${col}`;\n // return acc;\n // }, {} as Record<string, string>);\n\n // let injectionFieldSqlSelect = {\n // [`iif.itm_itm_inttest`]: \"itm_itm_inttest\",\n // // [`iif.${ModelUserFields.login_username}`]: \"login_username\",\n // // [`iif.${ModelUserFields.user_type}`]: \"user_type\",\n // // [`iif.${ModelUserFields.firstname}`]: \"firstname\",\n // // [`iif.${ModelUserFields.lastname}`]: \"lastname\",\n // // [`iif.${ModelUserFields.contact}`]: \"contact\",\n // // [`iif.${ModelUserFields.email}`]: \"email\",\n // }\n\n filterColumns = { ...filterColumns, ...injectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, injectionFieldSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"itm\", \"item_injection_fields\", \"iif\", [\"itm.item_id = iif.item_id\", \"iif.field_ref = 'item'\", \"iif.field_module = 'item'\", \"iif.isdelete = false\", \"iif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(injectionFieldSqlSelect)]\n }\n\n // if (datatypes.includes(itemDataTypes.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\", [\"itm.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n // }\n\n // if (datatypes.includes(itemDataTypes.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\", [\"itm.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\", [\"itm.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `itm.isdelete = false`,\n `itm.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: \"items\",\n mainAlias: \"itm\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await itemModel.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 removeItems = async ({ itemIds }: ItemItemRemoveProps) => {\n\n if (!itemIds.length) throwError('itemIds is required');\n\n const response = await itemModel.remove({ where: { [`${ModelItemFields.item_id}`]: { in: itemIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(itemDataTypes);\n }\n\n return {\n createItem,\n updateItem,\n getItem,\n listItems,\n removeItems,\n getDataTypes\n }\n\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"ItemItemService.js","sourceRoot":"","sources":["../../../src/services/item/ItemItemService.ts"],"names":[],"mappings":"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","sourcesContent":["import { logError, throwError } from \"@/utils\";\n\nimport {\n ModelUserFields,\n ItemModel,\n ModelItemFields,\n ModelProductFields,\n ModelCategoryFields,\n ModelBrandFields,\n ModelUomFields\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 = \"item\"\n\nexport const itemDataTypes = {\n itemInjectionFields: \"item_injection_fields\",\n // slotItem: \"slot_item\",\n // allSupplier: \"all_supplier\",\n // latestGrAmount: \"lastest_gr_amount\",\n // file: \"file\",\n // product: \"product\"\n}\n\nexport type ItemDataType = keyof typeof itemDataTypes;\n\nexport type ItemItemServiceProps = DefaultServiceProps & {};\n\nexport type ItemItemGetProps = {\n id: number,\n datatypes: ItemDataType[]\n};\n\nexport type ItemItemListProps = QueryList & {\n datatypes: ItemDataType[]\n};\n\nexport type ItemItemRemoveProps = {\n itemIds: BigInt[]\n};\n\nexport type ItemItemCreateProps = {\n data:\n // item\n {\n item: {\n productId: number\n uomId: number\n itemCode: string // code\n status: boolean\n\n isPackage: boolean\n itemDescription: string\n remark: string\n cost: number\n uomPrice: number\n\n floorPrice: number\n grossWeight: number\n volumeWeight: number\n netWeight: number\n dimensionWidth: number\n\n dimensionHeight: number\n dimensionLength: number\n cbm: number\n // transformRatio?: number\n // repackRemark?: string\n\n // supplierIds?: number[]\n // scanningCodePrefix?: number\n // scanningCodeSuffix?: number\n // relocateThresholdQty?: number\n // relocateTopupQty?: number\n\n // reorderThresholdQty?: number\n // reorderTopupQty?: number\n\n }\n }\n}\n\nexport type ItemItemUpdateProps = {\n itemId: number,\n data:\n // item\n {\n item: {\n // productId: number\n // uomId: number\n itemCode: string // code\n status: boolean\n\n isPackage: boolean\n itemDescription: string\n remark: string\n cost: number\n uomPrice: number\n\n floorPrice: number\n grossWeight: number\n volumeWeight: number\n netWeight: number\n dimensionWidth: number\n\n dimensionHeight: number\n dimensionLength: number\n cbm: number\n // transformRatio?: number\n // repackRemark?: string\n\n // supplierIds?: number[]\n // scanningCodePrefix?: number\n // scanningCodeSuffix?: number\n // relocateThresholdQty?: number\n // relocateTopupQty?: number\n\n // reorderThresholdQty?: number\n // reorderTopupQty?: number\n }\n }\n}\n\nconst getCreatePayload = (data: ItemItemCreateProps[\"data\"]) => {\n\n if (\"item\" in data) {\n\n // please ignore the item_name, model, summary\n\n return {\n [`${ModelItemFields.product_id}`]: data.item.productId,\n [`${ModelItemFields.uom_id}`]: data.item.uomId,\n [`${ModelItemFields.cbm}`]: data.item.cbm,\n [`${ModelItemFields.item_code}`]: data.item.itemCode,\n\n [`${ModelItemFields.cost}`]: data.item.cost,\n [`${ModelItemFields.uom_price}`]: data.item.uomPrice,\n [`${ModelItemFields.dimension_height}`]: data.item.dimensionHeight,\n [`${ModelItemFields.dimension_length}`]: data.item.dimensionLength,\n [`${ModelItemFields.dimension_width}`]: data.item.dimensionWidth,\n\n [`${ModelItemFields.floor_price}`]: data.item.floorPrice,\n [`${ModelItemFields.gross_weight}`]: data.item.grossWeight,\n [`${ModelItemFields.net_weight}`]: data.item.netWeight,\n [`${ModelItemFields.volume_weight}`]: data.item.volumeWeight,\n [`${ModelItemFields.is_package}`]: data.item.isPackage ? 1 : 0,\n\n [`${ModelItemFields.item_description}`]: data.item.itemDescription,\n [`${ModelItemFields.remark}`]: data.item.remark,\n [`${ModelItemFields.status}`]: data.item.status ? 1 : 0,\n }\n }\n\n return false\n\n}\n\nconst getUpdatePayload = (data: ItemItemUpdateProps[\"data\"]) => {\n\n if (\"item\" in data) {\n\n return {\n // [`${ModelItemFields.product_id}`]: data.item.productId, // cannot changed\n // [`${ModelItemFields.uom_id}`]: data.item.uomId, // cannot changed\n [`${ModelItemFields.cbm}`]: data.item.cbm,\n [`${ModelItemFields.item_code}`]: data.item.itemCode,\n\n [`${ModelItemFields.cost}`]: data.item.cost,\n [`${ModelItemFields.uom_price}`]: data.item.uomPrice,\n [`${ModelItemFields.dimension_height}`]: data.item.dimensionHeight,\n [`${ModelItemFields.dimension_length}`]: data.item.dimensionLength,\n [`${ModelItemFields.dimension_width}`]: data.item.dimensionWidth,\n\n [`${ModelItemFields.floor_price}`]: data.item.floorPrice,\n [`${ModelItemFields.gross_weight}`]: data.item.grossWeight,\n [`${ModelItemFields.net_weight}`]: data.item.netWeight,\n [`${ModelItemFields.volume_weight}`]: data.item.volumeWeight,\n [`${ModelItemFields.is_package}`]: data.item.isPackage ? 1 : 0,\n\n [`${ModelItemFields.item_description}`]: data.item.itemDescription,\n [`${ModelItemFields.remark}`]: data.item.remark,\n [`${ModelItemFields.status}`]: data.item.status ? 1 : 0,\n }\n }\n\n return false\n\n}\n\nlet mainSqlSelect = {\n [`itm.${ModelItemFields.item_id}`]: \"item_id\",\n // [`itm.${ModelItemFields.brand_id}`]: \"brand_id\", // no use\n // [`itm.${ModelItemFields.category_id}`]: \"category_id\", // no use\n [`itm.${ModelItemFields.uom_id}`]: \"uom_id\",\n [`itm.${ModelItemFields.cbm}::float`]: \"cbm\",\n [`itm.${ModelItemFields.item_code}`]: \"item_code\",\n [`itm.${ModelItemFields.cost}::float`]: \"cost\",\n [`itm.${ModelItemFields.dimension_height}::float`]: \"dimension_height\",\n [`itm.${ModelItemFields.dimension_length}::float`]: \"dimension_length\",\n [`itm.${ModelItemFields.dimension_width}::float`]: \"dimension_width\",\n [`itm.${ModelItemFields.floor_price}::float`]: \"floor_price\",\n [`itm.${ModelItemFields.gross_weight}::float`]: \"gross_weight\",\n [`itm.${ModelItemFields.is_package}`]: \"is_package\",\n [`itm.${ModelItemFields.item_description}`]: \"item_description\",\n // [`itm.${ModelItemFields.item_name}`]: \"item_name\", // no use\n // [`itm.${ModelItemFields.model}`]: \"model\", // no use \n [`itm.${ModelItemFields.net_weight}::float`]: \"net_weight\",\n [`itm.${ModelItemFields.remark}`]: \"remark\",\n [`itm.${ModelItemFields.status}`]: \"status\",\n [`itm.${ModelItemFields.summary}`]: \"summary\",\n [`itm.${ModelItemFields.uom_bal}::float`]: \"uom_bal\",\n [`itm.${ModelItemFields.uom_price}::float`]: \"uom_price\",\n [`itm.${ModelItemFields.volume_weight}::float`]: \"volume_weight\",\n}\n\nlet itemSqlSelect = {\n [`prd.${ModelProductFields.product_id}`]: \"product_id\",\n [`prd.${ModelProductFields.brand_id}`]: \"brand_id\",\n [`prd.${ModelProductFields.category_id}`]: \"category_id\",\n [`prd.${ModelProductFields.product_code}`]: \"product_code\",\n [`prd.${ModelProductFields.product_name}`]: \"product_name\",\n [`prd.${ModelProductFields.description}`]: \"description\",\n [`prd.${ModelProductFields.model}`]: \"model\",\n [`prd.${ModelProductFields.status}`]: \"status\",\n [`prd.${ModelProductFields.summary}`]: \"summary\",\n [`catg.${ModelCategoryFields.name}`]: \"category_name\",\n [`catg.${ModelCategoryFields.status}`]: \"category_status\",\n [`catg.${ModelCategoryFields.description}`]: \"category_description\",\n [`catg.${ModelCategoryFields.parent_category_id}`]: \"parent_category_id\",\n [`brd.${ModelBrandFields.name}`]: \"brand_status\",\n [`brd.${ModelBrandFields.status}`]: \"brand_status\",\n [`brd.${ModelBrandFields.description}`]: \"brand_description\",\n [`uom.${ModelUomFields.decimal_digit}`]: \"uom_decimal_digit\",\n [`uom.${ModelUomFields.description}`]: \"uom_description\",\n [`uom.${ModelUomFields.name}`]: \"uom_name\",\n [`uom.${ModelUomFields.status}`]: \"uom_status\",\n [`uom.${ModelUomFields.metric_type}`]: \"uom_metric_type\",\n [`uom.${ModelUomFields.metric_type_display_name}`]: \"uom_metric_type_display_name\",\n}\n\nlet defaultSqlSelect = {\n [`itm.${ModelItemFields.createdatetime}`]: \"createdatetime\",\n [`creator.${ModelUserFields.login_username}`]: \"createusername\",\n [`itm.${ModelItemFields.updatedatetime}`]: \"updatedatetime\",\n [`updater.${ModelUserFields.login_username}`]: \"updateusername\",\n [`itm.${ModelItemFields.isdelete}`]: \"isdelete\",\n [`itm.${ModelItemFields.istrash}`]: \"istrash\",\n [`itm.${ModelItemFields.accountid}`]: \"accountid\",\n}\n\nexport const ItemItemService = (props: ItemItemServiceProps) => {\n\n const {\n ...rest\n } = props\n\n const injectionFieldService = InjectionFieldService({ ...rest, injectionFieldType: \"item\" })\n\n const itemModel = ItemModel({ ...rest })\n\n const createItem = async ({ data }: ItemItemCreateProps) => {\n\n const _data = getCreatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid create item payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await itemModel.create({ data: _data })\n\n return response\n }\n\n const updateItem = async ({ itemId, data }: ItemItemUpdateProps) => {\n\n const _data = getUpdatePayload(data)\n\n if (!_data) {\n throw new Error(`Invalid update item payload: ${JSON.stringify(_data)}`);\n }\n\n let response = await itemModel.update({ where: { [`${ModelItemFields.item_id}`]: itemId }, data: _data })\n\n return response\n }\n\n const getItem = async ({ id, datatypes = [] }: ItemItemGetProps) => {\n\n let { data } = await listItems({\n limit: 1,\n offset: 0,\n filters: [{ field: `${ModelItemFields.item_id}`, operator: \"=\", value: id }],\n sortfield: `${ModelItemFields.item_id}`,\n sortorder: \"ASC\",\n datatypes\n })\n\n return data[0] ?? null;\n\n };\n\n const listItems = async ({\n limit,\n offset,\n filters,\n sortfield,\n sortorder,\n datatypes = []\n }: ItemItemListProps) => {\n\n let data = []\n\n let sqlSelect = [\n `COUNT(*) OVER() as filtered_count`,\n buildSqlSelect(``, mainSqlSelect),\n buildSqlSelect(``, itemSqlSelect),\n buildSqlSelect(``, defaultSqlSelect),\n ]\n\n let sqlRelation = [\n buildSqlRelation(\"left\", \"itm\", \"products\", \"prd\", [\"itm.product_id = prd.product_id\", \"prd.isdelete = false\", \"prd.istrash = false\"]),\n buildSqlRelation(\"left\", \"itm\", \"uoms\", \"uom\", [\"itm.uom_id = uom.uom_id\", \"uom.isdelete = false\", \"uom.istrash = false\"]),\n buildSqlRelation(\"left\", \"itm\", \"categories\", \"catg\", [\"prd.category_id = catg.category_id\", \"catg.isdelete = false\", \"catg.istrash = false\"]),\n buildSqlRelation(\"left\", \"itm\", \"brands\", \"brd\", [\"prd.brand_id = brd.brand_id\", \"brd.isdelete = false\", \"brd.istrash = false\"]),\n buildSqlRelation(\"left\", \"itm\", \"users\", \"creator\", [\"itm.createuserid = creator.user_id\", \"creator.isdelete = false\", \"creator.istrash = false\"]),\n buildSqlRelation(\"left\", \"itm\", \"users\", \"updater\", [\"itm.updateuserid = updater.user_id\", \"updater.isdelete = false\", \"updater.istrash = false\"]),\n // buildSqlRelation(\"left\", \"itm\", \"user_status\", \"usrsta_isowner\", [\"itm.user_id = usrsta_isowner.user_id\", \"usrsta_isowner.type = 'IS_OWNER'\", \"usrsta_isowner.isdelete = false\", \"usrsta_isowner.istrash = false\"]),\n // buildSqlRelation(\"left\", \"itm\", \"user_props\", \"usrprop_location\", [\"itm.user_id = usrprop_location.user_id\", \"usrprop_location.type = 'LOCATION_ID'\", \"usrprop_location.isdelete = false\", \"usrprop_location.istrash = false\"]),\n // buildSqlRelation(\"left\", \"itm\", \"locations\", \"location\", [\"usrprop_location.props_id = location.location_id\", \"location.isdelete = false\", \"location.istrash = false\"]),\n // buildSqlRelation(\"left\", \"itm\", \"group_owners\", \"grpown\", [\"itm.user_id = grpown.user_id\", \"grpown.isdelete = false\", \"grpown.istrash = false\"]),\n // buildSqlRelation(\"left\", \"itm\", \"groups\", \"grp\", [\"grpown.group_id = grp.group_id\", \"grp.isdelete = false\", \"grp.istrash = false\"])\n ]\n\n let sqlGroupBy: string[] = [\n ...Object.keys(mainSqlSelect),\n ...Object.keys(itemSqlSelect),\n ...Object.keys(defaultSqlSelect)\n ]\n\n let filterColumns = {\n ...mainSqlSelect,\n ...itemSqlSelect,\n ...defaultSqlSelect\n }\n\n if (datatypes.includes(itemDataTypes.itemInjectionFields)) {\n\n let activeInjectionFields = await injectionFieldService.listActiveInjectionFields(\"item\", \"item\")\n\n const injectionFieldSqlSelect = buildInjectionFieldsSqlSelect(\"iif\", activeInjectionFields)\n\n // const injectionFieldSqlSelect = a.reduce((acc, col) => {\n // acc[`iif.${col}`] = `${col}`;\n // return acc;\n // }, {} as Record<string, string>);\n\n // let injectionFieldSqlSelect = {\n // [`iif.itm_itm_inttest`]: \"itm_itm_inttest\",\n // // [`iif.${ModelUserFields.login_username}`]: \"login_username\",\n // // [`iif.${ModelUserFields.user_type}`]: \"user_type\",\n // // [`iif.${ModelUserFields.firstname}`]: \"firstname\",\n // // [`iif.${ModelUserFields.lastname}`]: \"lastname\",\n // // [`iif.${ModelUserFields.contact}`]: \"contact\",\n // // [`iif.${ModelUserFields.email}`]: \"email\",\n // }\n\n filterColumns = { ...filterColumns, ...injectionFieldSqlSelect }\n\n sqlSelect = [...sqlSelect, buildSqlSelect(``, injectionFieldSqlSelect)]\n sqlRelation = [...sqlRelation, buildSqlRelation(\"left\", \"itm\", \"item_injection_fields\", \"iif\", [\"itm.item_id = iif.item_id\", \"iif.field_ref = 'item'\", \"iif.field_module = 'item'\", \"iif.isdelete = false\", \"iif.istrash = false\"])]\n sqlGroupBy = [...sqlGroupBy, ...Object.keys(injectionFieldSqlSelect)]\n }\n\n // if (datatypes.includes(itemDataTypes.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\", [\"itm.user_id = brn.user_id\", \"brn.isdelete = false\", \"brn.istrash = false\"])]\n\n // }\n\n // if (datatypes.includes(itemDataTypes.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\", [\"itm.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\", [\"itm.user_id = brnusrcount.user_id\", \"brnusrcount.isdelete = false\", \"brnusrcount.istrash = false\"])]\n\n // }\n\n let sqlWhere = [\n `itm.isdelete = false`,\n `itm.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: \"items\",\n mainAlias: \"itm\",\n accountId: rest.accountId,\n sqlSelect,\n sqlRelation,\n sqlWhere,\n sqlGroupBy,\n sqlOrderby,\n sqlLimitOffset\n })\n\n data = await itemModel.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 removeItems = async ({ itemIds }: ItemItemRemoveProps) => {\n\n if (!itemIds.length) throwError('itemIds is required');\n\n const response = await itemModel.remove({ where: { [`${ModelItemFields.item_id}`]: { in: itemIds } } });\n\n return response\n };\n\n const getDataTypes = () => {\n return Object.values(itemDataTypes);\n }\n\n return {\n createItem,\n updateItem,\n getItem,\n listItems,\n removeItems,\n getDataTypes\n }\n\n}\n\n"]}
|
|
@@ -151,7 +151,7 @@ const ItemProductService = (props) => {
|
|
|
151
151
|
let itemsSqlSelect = await getItemsSqlSelect(datatypes, injectionFieldService);
|
|
152
152
|
let data = [];
|
|
153
153
|
let sqlSelect = [
|
|
154
|
-
`COUNT(
|
|
154
|
+
`COUNT(*) OVER() as filtered_count`,
|
|
155
155
|
(0, lib_1.buildSqlSelect)(``, mainSqlSelect),
|
|
156
156
|
(0, lib_1.buildSqlSelect)(``, itemSqlSelect),
|
|
157
157
|
(0, lib_1.buildSqlSelect)(``, itemsSqlSelect),
|