@things-factory/product-base 9.0.0-beta.8 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist-server/service/product/product-mutation.js +49 -27
  2. package/dist-server/service/product/product-mutation.js.map +1 -1
  3. package/dist-server/service/product/product-query.js +12 -8
  4. package/dist-server/service/product/product-query.js.map +1 -1
  5. package/dist-server/service/product/validate-product.js +1 -1
  6. package/dist-server/service/product/validate-product.js.map +1 -1
  7. package/dist-server/service/product-bundle/product-bundle-mutation.js +31 -8
  8. package/dist-server/service/product-bundle/product-bundle-mutation.js.map +1 -1
  9. package/dist-server/service/product-bundle/product-bundle-query.js +3 -1
  10. package/dist-server/service/product-bundle/product-bundle-query.js.map +1 -1
  11. package/dist-server/service/product-bundle-setting/product-bundle-setting-mutation.js +9 -4
  12. package/dist-server/service/product-bundle-setting/product-bundle-setting-mutation.js.map +1 -1
  13. package/dist-server/service/product-bundle-setting/product-bundle-setting-query.js +31 -5
  14. package/dist-server/service/product-bundle-setting/product-bundle-setting-query.js.map +1 -1
  15. package/dist-server/service/product-combination/product-combination-mutation.js +33 -9
  16. package/dist-server/service/product-combination/product-combination-mutation.js.map +1 -1
  17. package/dist-server/service/product-combination/product-combination-query.js +4 -1
  18. package/dist-server/service/product-combination/product-combination-query.js.map +1 -1
  19. package/dist-server/service/product-combination-setting/product-combination-setting-mutation.js +37 -10
  20. package/dist-server/service/product-combination-setting/product-combination-setting-mutation.js.map +1 -1
  21. package/dist-server/service/product-combination-setting/product-combination-setting-query.js +6 -4
  22. package/dist-server/service/product-combination-setting/product-combination-setting-query.js.map +1 -1
  23. package/dist-server/service/product-detail/product-detail-mutation.js +74 -33
  24. package/dist-server/service/product-detail/product-detail-mutation.js.map +1 -1
  25. package/dist-server/service/product-detail/product-detail-query.js +18 -10
  26. package/dist-server/service/product-detail/product-detail-query.js.map +1 -1
  27. package/dist-server/service/product-detail-bizplace-setting/product-detail-bizplace-setting-mutation.js +22 -5
  28. package/dist-server/service/product-detail-bizplace-setting/product-detail-bizplace-setting-mutation.js.map +1 -1
  29. package/dist-server/service/product-detail-bizplace-setting/product-detail-bizplace-setting-query.js +8 -1
  30. package/dist-server/service/product-detail-bizplace-setting/product-detail-bizplace-setting-query.js.map +1 -1
  31. package/dist-server/service/product-set/product-set-mutation.js +25 -7
  32. package/dist-server/service/product-set/product-set-mutation.js.map +1 -1
  33. package/dist-server/service/product-set/product-set-query.js +4 -1
  34. package/dist-server/service/product-set/product-set-query.js.map +1 -1
  35. package/dist-server/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"product-combination-setting-mutation.js","sourceRoot":"","sources":["../../../server/service/product-combination-setting/product-combination-setting-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In, SelectQueryBuilder } from 'typeorm'\n\nimport { ProductCombinationSetting } from './product-combination-setting'\nimport { NewProductCombinationSetting, ProductCombinationSettingPatch } from './product-combination-setting-type'\n\nconst debug = require('debug')('things-factory:product-base:productCombinationSetting')\n\n@Resolver(ProductCombinationSetting)\nexport class ProductCombinationSettingMutation {\n @Directive('@transaction')\n @Mutation(returns => ProductCombinationSetting, { description: 'To create new ProductCombinationSetting' })\n async createProductCombinationSetting(\n @Arg('productCombinationSetting') productCombinationSetting: NewProductCombinationSetting,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(ProductCombinationSetting).save({\n ...(productCombinationSetting as any),\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => ProductCombinationSetting, { description: 'To modify ProductCombinationSetting information' })\n async updateProductCombinationSetting(\n @Arg('id') id: string,\n @Arg('patch') patch: ProductCombinationSettingPatch,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ProductCombinationSetting)\n const productCombinationSetting = await repository.findOne({\n where: { id }\n })\n\n return await repository.save({\n ...productCombinationSetting,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [ProductCombinationSetting], {\n description: \"To modify multiple ProductCombinationSettings' information\"\n })\n async updateMultipleProductCombinationSetting(\n @Arg('patches', type => [ProductCombinationSettingPatch]) patches: ProductCombinationSettingPatch[],\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const productCombinationSettingRepo = tx.getRepository(ProductCombinationSetting)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await productCombinationSettingRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const productCombinationSetting = await productCombinationSettingRepo.findOneBy({ id: newRecord.id })\n\n const result = await productCombinationSettingRepo.save({\n ...productCombinationSetting,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete ProductCombinationSetting' })\n async deleteProductCombinationSetting(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ProductCombinationSetting).delete({ id })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple productCombinationSettings' })\n async deleteProductCombinationSettings(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ProductCombinationSetting).delete({\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To link product combination for kitting process' })\n async linkProductCombination(\n @Arg('productCombinationId', type => String) productCombinationId: string,\n @Arg('patches', type => [ProductCombinationSettingPatch]) patches: ProductCombinationSettingPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n try {\n const { domain, tx } = context.state\n\n const qb: SelectQueryBuilder<ProductCombinationSetting> = tx\n .getRepository(ProductCombinationSetting)\n .createQueryBuilder('pbs')\n .innerJoinAndSelect('pbs.product', 'prd')\n .innerJoinAndSelect('pbs.productDetail', 'pd')\n .innerJoinAndSelect('pbs.productCombination', 'pc')\n .where('pc.id = :productCombinationId', { productCombinationId })\n .andWhere('pc.domain_id = :domainId', { domainId: domain.id })\n\n const existingCombinationLink = await qb.getMany()\n\n let newCombinationLink: ProductCombinationSetting[] = patches.reduce((acc, curr) => {\n if (\n !existingCombinationLink.find(\n item => item.product.id === curr.product.id && item.productDetail.id === curr.productDetail.id\n )\n ) {\n acc.push({\n productCombination: { id: productCombinationId },\n product: { id: curr.product.id },\n productDetail: { id: curr.productDetail.id },\n qty: curr.qty,\n cuFlag: '+'\n })\n }\n // check if there is existing bundle link but changes in bundle qty\n else if (\n existingCombinationLink.find(\n item =>\n item.product.id === curr.product.id &&\n item.productDetail.id === curr.productDetail.id &&\n item.qty !== curr.qty\n )\n ) {\n acc.push({\n id: curr.id,\n productCombination: { id: productCombinationId },\n product: { id: curr.product.id },\n productDetail: { id: curr.productDetail.id },\n qty: curr.qty,\n cuFlag: 'M'\n })\n }\n return acc\n }, [])\n\n let removeCombinationLink: ProductCombinationSetting[] = existingCombinationLink.reduce((acc, curr) => {\n if (\n !patches.find(item => item.product.id == curr.product.id && item.productDetail.id == curr.productDetail.id)\n ) {\n acc.push({\n id: curr.id,\n productCombination: { id: productCombinationId },\n product: { id: curr.product.id },\n productDetail: { id: curr.productDetail.id },\n qty: curr.qty\n })\n }\n return acc\n }, [])\n\n if (newCombinationLink.length > 0) {\n await updateMultipleProductCombinationSetting(newCombinationLink, context)\n }\n\n if (removeCombinationLink.length > 0) {\n await tx.getRepository(ProductCombinationSetting).delete({\n id: In(removeCombinationLink.map(combinationLink => combinationLink.id))\n })\n }\n\n return true\n } catch (error) {\n debug('link-product-combination', error)\n throw error\n }\n }\n}\n\nexport async function updateMultipleProductCombinationSetting(patches: any, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const productCombinationSettingRepo = tx.getRepository(ProductCombinationSetting)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await productCombinationSettingRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const productCombinationSetting = await productCombinationSettingRepo.findOneBy({ id: newRecord.id })\n\n const result = await productCombinationSettingRepo.save({\n ...productCombinationSetting,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n}\n"]}
1
+ {"version":3,"file":"product-combination-setting-mutation.js","sourceRoot":"","sources":["../../../server/service/product-combination-setting/product-combination-setting-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In, SelectQueryBuilder } from 'typeorm'\n\nimport { ProductCombinationSetting } from './product-combination-setting'\nimport { NewProductCombinationSetting, ProductCombinationSettingPatch } from './product-combination-setting-type'\n\nconst debug = require('debug')('things-factory:product-base:productCombinationSetting')\n\n@Resolver(ProductCombinationSetting)\nexport class ProductCombinationSettingMutation {\n @Directive('@transaction')\n @Mutation(returns => ProductCombinationSetting, { description: 'To create new ProductCombinationSetting' })\n async createProductCombinationSetting(\n @Arg('productCombinationSetting') productCombinationSetting: NewProductCombinationSetting,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(ProductCombinationSetting).save({\n ...(productCombinationSetting as any),\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => ProductCombinationSetting, { description: 'To modify ProductCombinationSetting information' })\n async updateProductCombinationSetting(\n @Arg('id') id: string,\n @Arg('patch') patch: ProductCombinationSettingPatch,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ProductCombinationSetting)\n const productCombinationSetting = await repository.findOne({\n where: { id }\n })\n\n return await repository.save({\n ...productCombinationSetting,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [ProductCombinationSetting], {\n description: \"To modify multiple ProductCombinationSettings' information\"\n })\n async updateMultipleProductCombinationSetting(\n @Arg('patches', type => [ProductCombinationSettingPatch]) patches: ProductCombinationSettingPatch[],\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const productCombinationSettingRepo = tx.getRepository(ProductCombinationSetting)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await productCombinationSettingRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const productCombinationSetting = await productCombinationSettingRepo.findOneBy({ id: newRecord.id })\n\n const result = await productCombinationSettingRepo.save({\n ...productCombinationSetting,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete ProductCombinationSetting' })\n async deleteProductCombinationSetting(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ProductCombinationSetting).delete({ id })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple productCombinationSettings' })\n async deleteProductCombinationSettings(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(ProductCombinationSetting).delete({\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To link product combination for kitting process' })\n async linkProductCombination(\n @Arg('productCombinationId', type => String) productCombinationId: string,\n @Arg('patches', type => [ProductCombinationSettingPatch]) patches: ProductCombinationSettingPatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n try {\n const { domain, tx } = context.state\n\n const qb: SelectQueryBuilder<ProductCombinationSetting> = tx\n .getRepository(ProductCombinationSetting)\n .createQueryBuilder('pbs')\n .innerJoinAndSelect('pbs.product', 'prd')\n .innerJoinAndSelect('pbs.productDetail', 'pd')\n .innerJoinAndSelect('pbs.productCombination', 'pc')\n .where('pc.id = :productCombinationId', { productCombinationId })\n .andWhere('pc.domain_id = :domainId', { domainId: domain.id })\n\n const existingCombinationLink = await qb.getMany()\n\n let newCombinationLink: ProductCombinationSetting[] = patches.reduce((acc, curr) => {\n if (\n !existingCombinationLink.find(\n item => item.product.id === curr.product.id && item.productDetail.id === curr.productDetail.id\n )\n ) {\n acc.push({\n productCombination: { id: productCombinationId },\n product: { id: curr.product.id },\n productDetail: { id: curr.productDetail.id },\n qty: curr.qty,\n cuFlag: '+'\n })\n }\n // check if there is existing bundle link but changes in bundle qty\n else if (\n existingCombinationLink.find(\n item =>\n item.product.id === curr.product.id &&\n item.productDetail.id === curr.productDetail.id &&\n item.qty !== curr.qty\n )\n ) {\n acc.push({\n id: curr.id,\n productCombination: { id: productCombinationId },\n product: { id: curr.product.id },\n productDetail: { id: curr.productDetail.id },\n qty: curr.qty,\n cuFlag: 'M'\n })\n }\n return acc\n }, [])\n\n let removeCombinationLink: ProductCombinationSetting[] = existingCombinationLink.reduce((acc, curr) => {\n if (\n !patches.find(item => item.product.id == curr.product.id && item.productDetail.id == curr.productDetail.id)\n ) {\n acc.push({\n id: curr.id,\n productCombination: { id: productCombinationId },\n product: { id: curr.product.id },\n productDetail: { id: curr.productDetail.id },\n qty: curr.qty\n })\n }\n return acc\n }, [])\n\n if (newCombinationLink.length > 0) {\n await updateMultipleProductCombinationSetting(newCombinationLink, context)\n }\n\n if (removeCombinationLink.length > 0) {\n await tx.getRepository(ProductCombinationSetting).delete({\n id: In(removeCombinationLink.map(combinationLink => combinationLink.id))\n })\n }\n\n return true\n } catch (error) {\n debug('link-product-combination', error)\n throw error\n }\n }\n}\n\nexport async function updateMultipleProductCombinationSetting(patches: any, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const productCombinationSettingRepo = tx.getRepository(ProductCombinationSetting)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await productCombinationSettingRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const productCombinationSetting = await productCombinationSettingRepo.findOneBy({ id: newRecord.id })\n\n const result = await productCombinationSettingRepo.save({\n ...productCombinationSetting,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n}\n"]}
@@ -27,7 +27,6 @@ let ProductCombinationSettingQuery = class ProductCombinationSettingQuery {
27
27
  return { items, total };
28
28
  }
29
29
  async productCombinationSets(params, context) {
30
- var _a;
31
30
  const { domain } = context.state;
32
31
  const page = params.pagination.page;
33
32
  const limit = params.pagination.limit;
@@ -42,17 +41,20 @@ let ProductCombinationSettingQuery = class ProductCombinationSettingQuery {
42
41
  { name: 'prdDet.gtin' },
43
42
  ...params.sortings.map(sorting => {
44
43
  const name = sorting.name.replace('product', '').toLowerCase();
45
- return Object.assign(Object.assign({}, sorting), { name });
44
+ return {
45
+ ...sorting,
46
+ name
47
+ };
46
48
  })
47
49
  ];
48
- if (bizplaceFilter === null || bizplaceFilter === void 0 ? void 0 : bizplaceFilter.value) {
50
+ if (bizplaceFilter?.value) {
49
51
  const bizplaceId = bizplaceFilter.value;
50
52
  const foundBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
51
53
  where: { id: bizplaceId } /* CONFIRMME regarding TYPEORM - migrated correctly ? */,
52
54
  relations: ['company', 'company.domain']
53
55
  });
54
56
  if (foundBizplace) {
55
- const companyDomain = (_a = foundBizplace.company) === null || _a === void 0 ? void 0 : _a.domain;
57
+ const companyDomain = foundBizplace.company?.domain;
56
58
  const companyBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
57
59
  where: { domain: { id: companyDomain.id } }
58
60
  });
@@ -1 +1 @@
1
- {"version":3,"file":"product-combination-setting-query.js","sourceRoot":"","sources":["../../../server/service/product-combination-setting/product-combination-setting-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets, SelectQueryBuilder } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport { buildCondition, buildQuery, convertListParams, Domain, getRepository, ListParam } from '@things-factory/shell'\n\nimport { ProductCombination } from '../product-combination/product-combination'\nimport { ProductDetail } from '../product-detail/product-detail'\nimport { Product } from '../product/product'\nimport { ProductCombinationSetting } from './product-combination-setting'\nimport { ProductCombinationSettingList } from './product-combination-setting-type'\n\n@Resolver(ProductCombinationSetting)\nexport class ProductCombinationSettingQuery {\n @Query(returns => ProductCombinationSetting, { description: 'To fetch a ProductCombinationSetting' })\n async productCombinationSetting(\n @Arg('productCombinationId') productCombinationId: string,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting[]> {\n const productCombination: ProductCombination = await getRepository(ProductCombination).findOne({\n where: { id: productCombinationId },\n relations: ['productCombinationSetting']\n })\n\n const productCombinationSettings: ProductCombinationSetting[] = productCombination.productCombinationSettings\n\n return productCombinationSettings\n }\n\n @Query(returns => ProductCombinationSettingList, { description: 'To fetch multiple ProductCombinationSettings' })\n async productCombinationSettings(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSettingList> {\n const { domain } = context.state\n\n const convertedParams = convertListParams(params, { domain })\n const [items, total] = await getRepository(ProductCombinationSetting).findAndCount(convertedParams)\n\n return { items, total }\n }\n\n @Query(returns => ProductCombinationSettingList, { description: 'To fetch a set of product combinations' })\n async productCombinationSets(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSettingList> {\n const { domain } = context.state\n const page = params.pagination.page\n const limit = params.pagination.limit\n\n const filters = params.filters.filter(\n x => x.name !== 'product_info' && x.name !== 'productCombinationId' && x.name !== 'bizplace_id'\n )\n const bizplaceFilter = params.filters.find(x => x.name == 'bizplace_id')\n const productCombinationId = params.filters.find(x => x.name === 'productCombinationId')\n const productInfoFilter = params.filters.find(x => x.name === 'product_info')\n const productInfoColumns = ['sku', 'name', 'description']\n params.filters = [...filters]\n\n params.sortings = [\n { name: 'prd.sku' },\n { name: 'prdDet.gtin' },\n ...params.sortings.map(sorting => {\n const name = sorting.name.replace('product', '').toLowerCase()\n return {\n ...sorting,\n name\n }\n })\n ]\n\n if (bizplaceFilter?.value) {\n const bizplaceId: string = bizplaceFilter.value\n\n const foundBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { id: bizplaceId } /* CONFIRMME regarding TYPEORM - migrated correctly ? */,\n relations: ['company', 'company.domain']\n })\n\n if (foundBizplace) {\n const companyDomain: Domain = foundBizplace.company?.domain\n const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: companyDomain.id } }\n })\n\n const bizplaceIds = [companyBizplace.id, foundBizplace.id]\n params.filters = [...filters, { name: 'bizplace_id', operator: 'in', value: [...new Set(bizplaceIds)] }]\n }\n } else {\n let bizplace: Bizplace = await getRepository(Bizplace).findOne({ where: { domain: { id: domain.id } } })\n params.filters = [...filters, { name: 'bizplace_id', operator: 'in', value: [bizplace.id] }]\n }\n\n const qb: SelectQueryBuilder<Product> = getRepository(Product).createQueryBuilder('prd')\n buildQuery(qb, params, context, {\n domainRef: false\n })\n\n qb.innerJoinAndSelect('product_details', 'prdDet', 'prdDet.product_id = prd.id')\n qb.leftJoinAndSelect(\n 'product_combination_settings',\n 'pcs',\n `pcs.product_id = prd.id and pcs.product_detail_id = prdDet.id ${\n productCombinationId && productCombinationId.operator === 'noteq' ? 'and pcs.product_detail_id = null' : ''\n }`\n )\n qb.leftJoinAndSelect('pcs.productCombination', 'pc')\n\n if (productInfoFilter) {\n qb.andWhere(\n new Brackets(qb2 => {\n productInfoColumns.forEach(filter => {\n const condition = buildCondition(\n qb.alias,\n filter,\n productInfoFilter.operator,\n productInfoFilter.value,\n productInfoFilter.relation,\n Object.keys(qb.getParameters()).length\n )\n\n qb2.orWhere(condition.clause, condition.parameters)\n })\n })\n )\n }\n\n if (productCombinationId && productCombinationId.operator === 'eq') {\n qb.andWhere('pc.id = :combinationId::uuid', {\n combinationId: productCombinationId.value\n })\n }\n\n let productCombinationSets = await qb\n .offset((page - 1) * limit)\n .limit(limit)\n .getRawMany()\n\n const items = productCombinationSets.map(item => {\n return {\n id: item.pcs_id,\n productDetailId: item.prdDet_id,\n gtin: item.prdDet_gtin,\n packingType: item.prdDet_packing_type,\n packingSize: item.prdDet_packing_size,\n productId: item.prd_id,\n productSku: item.prd_sku,\n productName: item.prd_name,\n productDescription: item.prd_description,\n productType: item.prd_type,\n combinationId: item.pc_id,\n qty: item.pcs_qty\n }\n })\n\n const total = await qb.getCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Product)\n async product(@Root() productCombinationSetting: ProductCombinationSetting): Promise<Product> {\n return await getRepository(Product).findOneBy({ id: productCombinationSetting.productId })\n }\n\n @FieldResolver(type => ProductDetail)\n async productDetail(@Root() productCombinationSetting: ProductCombinationSetting): Promise<ProductDetail> {\n return await getRepository(ProductDetail).findOneBy({ id: productCombinationSetting.productDetailId })\n }\n\n @FieldResolver(type => ProductCombination)\n async productCombination(@Root() productCombinationSetting: ProductCombinationSetting): Promise<ProductCombination> {\n return await getRepository(ProductCombination).findOneBy({ id: productCombinationSetting.productCombinationId })\n }\n}\n"]}
1
+ {"version":3,"file":"product-combination-setting-query.js","sourceRoot":"","sources":["../../../server/service/product-combination-setting/product-combination-setting-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets, SelectQueryBuilder } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport { buildCondition, buildQuery, convertListParams, Domain, getRepository, ListParam } from '@things-factory/shell'\n\nimport { ProductCombination } from '../product-combination/product-combination'\nimport { ProductDetail } from '../product-detail/product-detail'\nimport { Product } from '../product/product'\nimport { ProductCombinationSetting } from './product-combination-setting'\nimport { ProductCombinationSettingList } from './product-combination-setting-type'\n\n@Resolver(ProductCombinationSetting)\nexport class ProductCombinationSettingQuery {\n @Query(returns => ProductCombinationSetting, { description: 'To fetch a ProductCombinationSetting' })\n async productCombinationSetting(\n @Arg('productCombinationId') productCombinationId: string,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSetting[]> {\n const productCombination: ProductCombination = await getRepository(ProductCombination).findOne({\n where: { id: productCombinationId },\n relations: ['productCombinationSetting']\n })\n\n const productCombinationSettings: ProductCombinationSetting[] = productCombination.productCombinationSettings\n\n return productCombinationSettings\n }\n\n @Query(returns => ProductCombinationSettingList, { description: 'To fetch multiple ProductCombinationSettings' })\n async productCombinationSettings(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSettingList> {\n const { domain } = context.state\n\n const convertedParams = convertListParams(params, { domain })\n const [items, total] = await getRepository(ProductCombinationSetting).findAndCount(convertedParams)\n\n return { items, total }\n }\n\n @Query(returns => ProductCombinationSettingList, { description: 'To fetch a set of product combinations' })\n async productCombinationSets(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ProductCombinationSettingList> {\n const { domain } = context.state\n const page = params.pagination.page\n const limit = params.pagination.limit\n\n const filters = params.filters.filter(\n x => x.name !== 'product_info' && x.name !== 'productCombinationId' && x.name !== 'bizplace_id'\n )\n const bizplaceFilter = params.filters.find(x => x.name == 'bizplace_id')\n const productCombinationId = params.filters.find(x => x.name === 'productCombinationId')\n const productInfoFilter = params.filters.find(x => x.name === 'product_info')\n const productInfoColumns = ['sku', 'name', 'description']\n params.filters = [...filters]\n\n params.sortings = [\n { name: 'prd.sku' },\n { name: 'prdDet.gtin' },\n ...params.sortings.map(sorting => {\n const name = sorting.name.replace('product', '').toLowerCase()\n return {\n ...sorting,\n name\n }\n })\n ]\n\n if (bizplaceFilter?.value) {\n const bizplaceId: string = bizplaceFilter.value\n\n const foundBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { id: bizplaceId } /* CONFIRMME regarding TYPEORM - migrated correctly ? */,\n relations: ['company', 'company.domain']\n })\n\n if (foundBizplace) {\n const companyDomain: Domain = foundBizplace.company?.domain\n const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: companyDomain.id } }\n })\n\n const bizplaceIds = [companyBizplace.id, foundBizplace.id]\n params.filters = [...filters, { name: 'bizplace_id', operator: 'in', value: [...new Set(bizplaceIds)] }]\n }\n } else {\n let bizplace: Bizplace = await getRepository(Bizplace).findOne({ where: { domain: { id: domain.id } } })\n params.filters = [...filters, { name: 'bizplace_id', operator: 'in', value: [bizplace.id] }]\n }\n\n const qb: SelectQueryBuilder<Product> = getRepository(Product).createQueryBuilder('prd')\n buildQuery(qb, params, context, {\n domainRef: false\n })\n\n qb.innerJoinAndSelect('product_details', 'prdDet', 'prdDet.product_id = prd.id')\n qb.leftJoinAndSelect(\n 'product_combination_settings',\n 'pcs',\n `pcs.product_id = prd.id and pcs.product_detail_id = prdDet.id ${\n productCombinationId && productCombinationId.operator === 'noteq' ? 'and pcs.product_detail_id = null' : ''\n }`\n )\n qb.leftJoinAndSelect('pcs.productCombination', 'pc')\n\n if (productInfoFilter) {\n qb.andWhere(\n new Brackets(qb2 => {\n productInfoColumns.forEach(filter => {\n const condition = buildCondition(\n qb.alias,\n filter,\n productInfoFilter.operator,\n productInfoFilter.value,\n productInfoFilter.relation,\n Object.keys(qb.getParameters()).length\n )\n\n qb2.orWhere(condition.clause, condition.parameters)\n })\n })\n )\n }\n\n if (productCombinationId && productCombinationId.operator === 'eq') {\n qb.andWhere('pc.id = :combinationId::uuid', {\n combinationId: productCombinationId.value\n })\n }\n\n let productCombinationSets = await qb\n .offset((page - 1) * limit)\n .limit(limit)\n .getRawMany()\n\n const items = productCombinationSets.map(item => {\n return {\n id: item.pcs_id,\n productDetailId: item.prdDet_id,\n gtin: item.prdDet_gtin,\n packingType: item.prdDet_packing_type,\n packingSize: item.prdDet_packing_size,\n productId: item.prd_id,\n productSku: item.prd_sku,\n productName: item.prd_name,\n productDescription: item.prd_description,\n productType: item.prd_type,\n combinationId: item.pc_id,\n qty: item.pcs_qty\n }\n })\n\n const total = await qb.getCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Product)\n async product(@Root() productCombinationSetting: ProductCombinationSetting): Promise<Product> {\n return await getRepository(Product).findOneBy({ id: productCombinationSetting.productId })\n }\n\n @FieldResolver(type => ProductDetail)\n async productDetail(@Root() productCombinationSetting: ProductCombinationSetting): Promise<ProductDetail> {\n return await getRepository(ProductDetail).findOneBy({ id: productCombinationSetting.productDetailId })\n }\n\n @FieldResolver(type => ProductCombination)\n async productCombination(@Root() productCombinationSetting: ProductCombinationSetting): Promise<ProductCombination> {\n return await getRepository(ProductCombination).findOneBy({ id: productCombinationSetting.productCombinationId })\n }\n}\n"]}
@@ -82,7 +82,12 @@ exports.ProductDetailMutation = ProductDetailMutation = tslib_1.__decorate([
82
82
  ], ProductDetailMutation);
83
83
  async function createProductDetail(productDetail, context) {
84
84
  const { domain, user, tx } = context.state;
85
- return await tx.getRepository(product_detail_1.ProductDetail).save(Object.assign(Object.assign({}, productDetail), { domain, creator: user, updater: user }));
85
+ return await tx.getRepository(product_detail_1.ProductDetail).save({
86
+ ...productDetail,
87
+ domain,
88
+ creator: user,
89
+ updater: user
90
+ });
86
91
  }
87
92
  async function updateProductDetail(id, patch, context) {
88
93
  const { domain, user, tx } = context.state;
@@ -91,10 +96,13 @@ async function updateProductDetail(id, patch, context) {
91
96
  if (patch.gtin == undefined) {
92
97
  delete patch.gtin;
93
98
  }
94
- return await repository.save(Object.assign(Object.assign(Object.assign({}, productDetail), patch), { updater: user }));
99
+ return await repository.save({
100
+ ...productDetail,
101
+ ...patch,
102
+ updater: user
103
+ });
95
104
  }
96
105
  async function updateMultipleProductDetail(productId, patches, context) {
97
- var _a, e_1, _b, _c;
98
106
  try {
99
107
  const { domain, user, tx } = context.state;
100
108
  let results = [];
@@ -107,12 +115,21 @@ async function updateMultipleProductDetail(productId, patches, context) {
107
115
  const defaultProductDetail = patches.find(x => x.isDefault);
108
116
  if (_createRecords.length > 0) {
109
117
  for (let i = 0; i < _createRecords.length; i++) {
110
- const newRecord = Object.assign(Object.assign({}, _createRecords[i]), { name: _createRecords[i].gtin, product, childProductDetail: null, childQty: 0, domain: domain, creator: user, updater: user });
118
+ const newRecord = {
119
+ ..._createRecords[i],
120
+ name: _createRecords[i].gtin,
121
+ product,
122
+ childProductDetail: null,
123
+ childQty: 0,
124
+ domain: domain,
125
+ creator: user,
126
+ updater: user
127
+ };
111
128
  if (newRecord.gtin == null || newRecord.gtin == undefined) {
112
129
  throw new Error('GTIN cannot be empty.');
113
130
  }
114
131
  const result = await productDetailRepo.save(newRecord);
115
- results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
132
+ results.push({ ...result, cuFlag: '+' });
116
133
  }
117
134
  }
118
135
  let deleteIds = [];
@@ -120,42 +137,51 @@ async function updateMultipleProductDetail(productId, patches, context) {
120
137
  let updateRecords = _updateRecords.find(ur => ur.id == product.productDetails[x].id);
121
138
  if (updateRecords) {
122
139
  const productDetail = await productDetailRepo.findOneBy({ id: updateRecords.id });
123
- const updateRecord = Object.assign(Object.assign(Object.assign({}, productDetail), updateRecords), { name: updateRecords.gtin, product, childProductDetail: null, childQty: 0, updater: user });
140
+ const updateRecord = {
141
+ ...productDetail,
142
+ ...updateRecords,
143
+ name: updateRecords.gtin,
144
+ product,
145
+ childProductDetail: null,
146
+ childQty: 0,
147
+ updater: user
148
+ };
124
149
  if (updateRecord.gtin == '' || updateRecord.gtin == null || updateRecord.gtin == undefined) {
125
150
  throw new Error('GTIN cannot be empty.');
126
151
  }
127
- const result = await productDetailRepo.save(Object.assign(Object.assign(Object.assign({}, productDetail), updateRecord), { name: updateRecord.gtin, product, childProductDetail: null, childQty: 0, updater: user }));
128
- results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
152
+ const result = await productDetailRepo.save({
153
+ ...productDetail,
154
+ ...updateRecord,
155
+ name: updateRecord.gtin,
156
+ product,
157
+ childProductDetail: null,
158
+ childQty: 0,
159
+ updater: user
160
+ });
161
+ results.push({ ...result, cuFlag: 'M' });
129
162
  }
130
163
  else {
131
164
  deleteIds.push(product.productDetails[x].id);
132
165
  }
133
166
  }
134
167
  await productDetailRepo.delete({ id: (0, typeorm_1.In)(deleteIds) });
135
- try {
136
- for (var _d = true, _e = tslib_1.__asyncValues(patches.filter(x => x.childProductDetail)), _f; _f = await _e.next(), _a = _f.done, !_a; _d = true) {
137
- _c = _f.value;
138
- _d = false;
139
- let patch = _c;
140
- let matchedChildProductDetail = results.find(itm => itm.gtin == patch.childProductDetail);
141
- if (matchedChildProductDetail) {
142
- const childProductDetail = await productDetailRepo.findOne({
143
- where: { id: matchedChildProductDetail.id },
144
- relations: ['product']
145
- });
146
- const productDetail = await productDetailRepo.findOne({
147
- where: { gtin: patch.gtin, product: { id: childProductDetail.product.id } }
148
- });
149
- await productDetailRepo.save(Object.assign(Object.assign({}, productDetail), { childQty: patch.childQty, childProductDetail: childProductDetail, updater: user }));
150
- }
151
- }
152
- }
153
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
154
- finally {
155
- try {
156
- if (!_d && !_a && (_b = _e.return)) await _b.call(_e);
168
+ for await (let patch of patches.filter(x => x.childProductDetail)) {
169
+ let matchedChildProductDetail = results.find(itm => itm.gtin == patch.childProductDetail);
170
+ if (matchedChildProductDetail) {
171
+ const childProductDetail = await productDetailRepo.findOne({
172
+ where: { id: matchedChildProductDetail.id },
173
+ relations: ['product']
174
+ });
175
+ const productDetail = await productDetailRepo.findOne({
176
+ where: { gtin: patch.gtin, product: { id: childProductDetail.product.id } }
177
+ });
178
+ await productDetailRepo.save({
179
+ ...productDetail,
180
+ childQty: patch.childQty,
181
+ childProductDetail: childProductDetail,
182
+ updater: user
183
+ });
157
184
  }
158
- finally { if (e_1) throw e_1.error; }
159
185
  }
160
186
  let defaultProductUpdate;
161
187
  //// Temporary solution, to fetch the first case packing type of SKU and update Case data in Product Table.
@@ -167,11 +193,26 @@ async function updateMultipleProductDetail(productId, patches, context) {
167
193
  }
168
194
  });
169
195
  if (firstCase) {
170
- defaultProductUpdate = Object.assign(Object.assign({}, defaultProductUpdate), { caseGtin: firstCase.gtin, caseWidth: firstCase.width, caseHeight: firstCase.height, caseDepth: firstCase.depth, caseGrossWeight: firstCase.grossWeight, caseWeight: firstCase.nettWeight, caseVolume: firstCase.volume });
196
+ defaultProductUpdate = {
197
+ ...defaultProductUpdate,
198
+ caseGtin: firstCase.gtin,
199
+ caseWidth: firstCase.width,
200
+ caseHeight: firstCase.height,
201
+ caseDepth: firstCase.depth,
202
+ caseGrossWeight: firstCase.grossWeight,
203
+ caseWeight: firstCase.nettWeight,
204
+ caseVolume: firstCase.volume
205
+ };
171
206
  }
172
207
  /////////////////////////////////////////////////////
173
208
  if (defaultProductDetail) {
174
- defaultProductUpdate = Object.assign(Object.assign({}, defaultProductUpdate), { packingType: defaultProductDetail.packingType, primaryUnit: defaultProductDetail.uom, primaryValue: defaultProductDetail.uomValue, cogsAccountCode: defaultProductDetail.cogsAccountCode });
209
+ defaultProductUpdate = {
210
+ ...defaultProductUpdate,
211
+ packingType: defaultProductDetail.packingType,
212
+ primaryUnit: defaultProductDetail.uom,
213
+ primaryValue: defaultProductDetail.uomValue,
214
+ cogsAccountCode: defaultProductDetail.cogsAccountCode
215
+ };
175
216
  }
176
217
  if (!lodash_1.default.isEmpty(defaultProductUpdate)) {
177
218
  await productRepo.update({
@@ -1 +1 @@
1
- {"version":3,"file":"product-detail-mutation.js","sourceRoot":"","sources":["../../../server/service/product-detail/product-detail-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import _ from 'lodash'\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In, Raw } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { Product } from '../product/product'\nimport { ProductDetail } from './product-detail'\nimport { ProductDetailPatch } from './product-detail-types'\n\n@Resolver(ProductDetail)\nexport class ProductDetailMutation {\n @Directive('@transaction')\n @Mutation(returns => ProductDetail)\n async updateProductDetail(\n @Arg('id') id: string,\n @Arg('patch') patch: ProductDetailPatch,\n @Ctx() context: ResolverContext\n ): Promise<ProductDetail> {\n return await updateProductDetail(id, patch, context)\n }\n\n @Directive('@transaction')\n @Mutation(returns => [ProductDetail])\n async updateMultipleProductDetail(\n @Arg('productId') productId: string,\n @Arg('patches', type => [ProductDetailPatch]) patches: ProductDetailPatch[],\n @Ctx() context: ResolverContext\n ): Promise<ProductDetail[]> {\n try {\n return await updateMultipleProductDetail(productId, patches, context)\n } catch (error) {\n throw error\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteProductDetail(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {\n const { domain, user } = context.state\n\n await getRepository(ProductDetail).delete({ domain: { id: domain.id }, name })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteProductDetails(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n const { domain, user } = context.state\n\n await getRepository(ProductDetail).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n\n return true\n }\n}\n\nexport async function createProductDetail(productDetail: any, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(ProductDetail).save({\n ...productDetail,\n domain,\n creator: user,\n updater: user\n })\n}\n\nexport async function updateProductDetail(id: string, patch: any, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ProductDetail)\n const productDetail: ProductDetail = await repository.findOne({ where: { id } })\n\n if (patch.gtin == undefined) {\n delete patch.gtin\n }\n\n return await repository.save({\n ...productDetail,\n ...patch,\n updater: user\n })\n}\n\nexport async function updateMultipleProductDetail(productId, patches, context: ResolverContext) {\n try {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => !patch.id)\n const _updateRecords = patches.filter((patch: any) => patch.id)\n // const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n\n const productRepo = tx.getRepository(Product)\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n const product: Product = await productRepo.findOne({ where: { id: productId }, relations: ['productDetails'] })\n\n const defaultProductDetail: ProductDetail = patches.find(x => x.isDefault)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = {\n ..._createRecords[i],\n name: _createRecords[i].gtin,\n product,\n childProductDetail: null,\n childQty: 0,\n domain: domain,\n creator: user,\n updater: user\n }\n\n if (newRecord.gtin == null || newRecord.gtin == undefined) {\n throw new Error('GTIN cannot be empty.')\n }\n\n const result = await productDetailRepo.save(newRecord)\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n let deleteIds = []\n for (let x = 0; x < product.productDetails.length; x++) {\n let updateRecords = _updateRecords.find(ur => ur.id == product.productDetails[x].id)\n\n if (updateRecords) {\n const productDetail: ProductDetail = await productDetailRepo.findOneBy({ id: updateRecords.id })\n\n const updateRecord = {\n ...productDetail,\n ...updateRecords,\n name: updateRecords.gtin,\n product,\n childProductDetail: null,\n childQty: 0,\n updater: user\n }\n\n if (updateRecord.gtin == '' || updateRecord.gtin == null || updateRecord.gtin == undefined) {\n throw new Error('GTIN cannot be empty.')\n }\n\n const result = await productDetailRepo.save({\n ...productDetail,\n ...updateRecord,\n name: updateRecord.gtin,\n product,\n childProductDetail: null,\n childQty: 0,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n } else {\n deleteIds.push(product.productDetails[x].id)\n }\n }\n\n await productDetailRepo.delete({ id: In(deleteIds) })\n\n for await (let patch of patches.filter(x => x.childProductDetail)) {\n let matchedChildProductDetail = results.find(itm => itm.gtin == patch.childProductDetail)\n\n if (matchedChildProductDetail) {\n const childProductDetail: ProductDetail = await productDetailRepo.findOne({\n where: { id: matchedChildProductDetail.id },\n relations: ['product']\n })\n const productDetail: ProductDetail = await productDetailRepo.findOne({\n where: { gtin: patch.gtin, product: { id: childProductDetail.product.id } }\n })\n\n await productDetailRepo.save({\n ...productDetail,\n childQty: patch.childQty,\n childProductDetail: childProductDetail,\n updater: user\n })\n }\n }\n\n let defaultProductUpdate: Product\n\n //// Temporary solution, to fetch the first case packing type of SKU and update Case data in Product Table.\n //// To be removed\n let firstCase: ProductDetail = await productDetailRepo.findOne({\n where: { product: { id: product.id }, packingType: Raw(alias => `lower(${alias}) = 'case'`) },\n order: {\n name: 'ASC'\n }\n })\n if (firstCase) {\n defaultProductUpdate = {\n ...defaultProductUpdate,\n caseGtin: firstCase.gtin,\n caseWidth: firstCase.width,\n caseHeight: firstCase.height,\n caseDepth: firstCase.depth,\n caseGrossWeight: firstCase.grossWeight,\n caseWeight: firstCase.nettWeight,\n caseVolume: firstCase.volume\n }\n }\n /////////////////////////////////////////////////////\n\n if (defaultProductDetail) {\n defaultProductUpdate = {\n ...defaultProductUpdate,\n packingType: defaultProductDetail.packingType,\n primaryUnit: defaultProductDetail.uom,\n primaryValue: defaultProductDetail.uomValue,\n cogsAccountCode: defaultProductDetail.cogsAccountCode\n }\n }\n\n if (!_.isEmpty(defaultProductUpdate)) {\n await productRepo.update(\n {\n id: product.id\n },\n defaultProductUpdate\n )\n }\n\n return results\n } catch (error) {\n throw error\n }\n}\n"]}
1
+ {"version":3,"file":"product-detail-mutation.js","sourceRoot":"","sources":["../../../server/service/product-detail/product-detail-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import _ from 'lodash'\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In, Raw } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { Product } from '../product/product'\nimport { ProductDetail } from './product-detail'\nimport { ProductDetailPatch } from './product-detail-types'\n\n@Resolver(ProductDetail)\nexport class ProductDetailMutation {\n @Directive('@transaction')\n @Mutation(returns => ProductDetail)\n async updateProductDetail(\n @Arg('id') id: string,\n @Arg('patch') patch: ProductDetailPatch,\n @Ctx() context: ResolverContext\n ): Promise<ProductDetail> {\n return await updateProductDetail(id, patch, context)\n }\n\n @Directive('@transaction')\n @Mutation(returns => [ProductDetail])\n async updateMultipleProductDetail(\n @Arg('productId') productId: string,\n @Arg('patches', type => [ProductDetailPatch]) patches: ProductDetailPatch[],\n @Ctx() context: ResolverContext\n ): Promise<ProductDetail[]> {\n try {\n return await updateMultipleProductDetail(productId, patches, context)\n } catch (error) {\n throw error\n }\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteProductDetail(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {\n const { domain, user } = context.state\n\n await getRepository(ProductDetail).delete({ domain: { id: domain.id }, name })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deleteProductDetails(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n const { domain, user } = context.state\n\n await getRepository(ProductDetail).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n\n return true\n }\n}\n\nexport async function createProductDetail(productDetail: any, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(ProductDetail).save({\n ...productDetail,\n domain,\n creator: user,\n updater: user\n })\n}\n\nexport async function updateProductDetail(id: string, patch: any, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ProductDetail)\n const productDetail: ProductDetail = await repository.findOne({ where: { id } })\n\n if (patch.gtin == undefined) {\n delete patch.gtin\n }\n\n return await repository.save({\n ...productDetail,\n ...patch,\n updater: user\n })\n}\n\nexport async function updateMultipleProductDetail(productId, patches, context: ResolverContext) {\n try {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => !patch.id)\n const _updateRecords = patches.filter((patch: any) => patch.id)\n // const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n\n const productRepo = tx.getRepository(Product)\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n const product: Product = await productRepo.findOne({ where: { id: productId }, relations: ['productDetails'] })\n\n const defaultProductDetail: ProductDetail = patches.find(x => x.isDefault)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = {\n ..._createRecords[i],\n name: _createRecords[i].gtin,\n product,\n childProductDetail: null,\n childQty: 0,\n domain: domain,\n creator: user,\n updater: user\n }\n\n if (newRecord.gtin == null || newRecord.gtin == undefined) {\n throw new Error('GTIN cannot be empty.')\n }\n\n const result = await productDetailRepo.save(newRecord)\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n let deleteIds = []\n for (let x = 0; x < product.productDetails.length; x++) {\n let updateRecords = _updateRecords.find(ur => ur.id == product.productDetails[x].id)\n\n if (updateRecords) {\n const productDetail: ProductDetail = await productDetailRepo.findOneBy({ id: updateRecords.id })\n\n const updateRecord = {\n ...productDetail,\n ...updateRecords,\n name: updateRecords.gtin,\n product,\n childProductDetail: null,\n childQty: 0,\n updater: user\n }\n\n if (updateRecord.gtin == '' || updateRecord.gtin == null || updateRecord.gtin == undefined) {\n throw new Error('GTIN cannot be empty.')\n }\n\n const result = await productDetailRepo.save({\n ...productDetail,\n ...updateRecord,\n name: updateRecord.gtin,\n product,\n childProductDetail: null,\n childQty: 0,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n } else {\n deleteIds.push(product.productDetails[x].id)\n }\n }\n\n await productDetailRepo.delete({ id: In(deleteIds) })\n\n for await (let patch of patches.filter(x => x.childProductDetail)) {\n let matchedChildProductDetail = results.find(itm => itm.gtin == patch.childProductDetail)\n\n if (matchedChildProductDetail) {\n const childProductDetail: ProductDetail = await productDetailRepo.findOne({\n where: { id: matchedChildProductDetail.id },\n relations: ['product']\n })\n const productDetail: ProductDetail = await productDetailRepo.findOne({\n where: { gtin: patch.gtin, product: { id: childProductDetail.product.id } }\n })\n\n await productDetailRepo.save({\n ...productDetail,\n childQty: patch.childQty,\n childProductDetail: childProductDetail,\n updater: user\n })\n }\n }\n\n let defaultProductUpdate: Product\n\n //// Temporary solution, to fetch the first case packing type of SKU and update Case data in Product Table.\n //// To be removed\n let firstCase: ProductDetail = await productDetailRepo.findOne({\n where: { product: { id: product.id }, packingType: Raw(alias => `lower(${alias}) = 'case'`) },\n order: {\n name: 'ASC'\n }\n })\n if (firstCase) {\n defaultProductUpdate = {\n ...defaultProductUpdate,\n caseGtin: firstCase.gtin,\n caseWidth: firstCase.width,\n caseHeight: firstCase.height,\n caseDepth: firstCase.depth,\n caseGrossWeight: firstCase.grossWeight,\n caseWeight: firstCase.nettWeight,\n caseVolume: firstCase.volume\n }\n }\n /////////////////////////////////////////////////////\n\n if (defaultProductDetail) {\n defaultProductUpdate = {\n ...defaultProductUpdate,\n packingType: defaultProductDetail.packingType,\n primaryUnit: defaultProductDetail.uom,\n primaryValue: defaultProductDetail.uomValue,\n cogsAccountCode: defaultProductDetail.cogsAccountCode\n }\n }\n\n if (!_.isEmpty(defaultProductUpdate)) {\n await productRepo.update(\n {\n id: product.id\n },\n defaultProductUpdate\n )\n }\n\n return results\n } catch (error) {\n throw error\n }\n}\n"]}
@@ -34,7 +34,6 @@ let ProductDetailQuery = class ProductDetailQuery {
34
34
  return foundProductDetail;
35
35
  }
36
36
  async productDetails(context, filters, pagination, sortings) {
37
- var _a;
38
37
  const { domain, user } = context.state;
39
38
  const { domains } = user;
40
39
  const params = { filters, pagination };
@@ -62,14 +61,14 @@ let ProductDetailQuery = class ProductDetailQuery {
62
61
  domainRef: false,
63
62
  searchables: ['name']
64
63
  });
65
- if (bizplaceFilter === null || bizplaceFilter === void 0 ? void 0 : bizplaceFilter.value) {
64
+ if (bizplaceFilter?.value) {
66
65
  const bizplaceId = bizplaceFilter.value;
67
66
  const foundBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
68
67
  where: { id: bizplaceId } /* CONFIRMME regarding TYPEORM - did I migrate correctly ? */,
69
68
  relations: ['company', 'company.domain']
70
69
  });
71
70
  if (foundBizplace) {
72
- const companyDomain = (_a = foundBizplace.company) === null || _a === void 0 ? void 0 : _a.domain;
71
+ const companyDomain = foundBizplace.company?.domain;
73
72
  const companyBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
74
73
  where: { domain: { id: companyDomain.id } }
75
74
  });
@@ -80,13 +79,13 @@ let ProductDetailQuery = class ProductDetailQuery {
80
79
  else {
81
80
  const warehouseDomain = domain;
82
81
  let bizplaceIds = [];
83
- if ((warehouseDomain === null || warehouseDomain === void 0 ? void 0 : warehouseDomain.extType) === 'company') {
82
+ if (warehouseDomain?.extType === 'company') {
84
83
  const companyBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
85
84
  where: { domain: { id: warehouseDomain.id } }
86
85
  });
87
86
  bizplaceIds.push(companyBizplace.id);
88
87
  }
89
- else if ((warehouseDomain === null || warehouseDomain === void 0 ? void 0 : warehouseDomain.extType) === 'factory') {
88
+ else if (warehouseDomain?.extType === 'factory') {
90
89
  const myBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
91
90
  where: { domain: { id: warehouseDomain.id } },
92
91
  relations: ['domain']
@@ -102,7 +101,7 @@ let ProductDetailQuery = class ProductDetailQuery {
102
101
  }
103
102
  qb.andWhere('Product.bizplace_id IN (:...bizplaceIds)', { bizplaceIds: bizplaceIds });
104
103
  }
105
- if (productFilter === null || productFilter === void 0 ? void 0 : productFilter.value) {
104
+ if (productFilter?.value) {
106
105
  if (productFilter.operator === 'eq') {
107
106
  qb.andWhere('ProductDetail.product_id = :productId', { productId: productFilter.value });
108
107
  }
@@ -110,7 +109,7 @@ let ProductDetailQuery = class ProductDetailQuery {
110
109
  qb.andWhere('ProductDetail.product_id in(:...productId)', { productId: productFilter.value });
111
110
  }
112
111
  }
113
- if (productInfoFilters === null || productInfoFilters === void 0 ? void 0 : productInfoFilters.value) {
112
+ if (productInfoFilters?.value) {
114
113
  let productInfo = productInfoFilters;
115
114
  qb.andWhere(new typeorm_1.Brackets(qb2 => {
116
115
  productInfoFilterColumns.forEach(filter => {
@@ -119,12 +118,21 @@ let ProductDetailQuery = class ProductDetailQuery {
119
118
  });
120
119
  }));
121
120
  }
122
- if (createArrivalNotice === null || createArrivalNotice === void 0 ? void 0 : createArrivalNotice.value) {
121
+ if (createArrivalNotice?.value) {
123
122
  qb.andWhere('(Product.isRequireSerialNumberScanning = false OR (Product.isRequireSerialNumberScanning = true AND ProductDetail.isDefault = true))');
124
123
  }
125
124
  let [items, total] = await qb.getManyAndCount();
126
125
  items = items.map(item => {
127
- return Object.assign(Object.assign({}, item), { productId: item.product.id, name: item.product.name, description: item.product.description, type: item.product.type, sku: item.product.sku, isRequireSerialNumberScanningInbound: item.product.isRequireSerialNumberScanningInbound, isRequireSerialNumberScanningOutbound: item.product.isRequireSerialNumberScanningOutbound });
126
+ return {
127
+ ...item,
128
+ productId: item.product.id,
129
+ name: item.product.name,
130
+ description: item.product.description,
131
+ type: item.product.type,
132
+ sku: item.product.sku,
133
+ isRequireSerialNumberScanningInbound: item.product.isRequireSerialNumberScanningInbound,
134
+ isRequireSerialNumberScanningOutbound: item.product.isRequireSerialNumberScanningOutbound
135
+ };
128
136
  });
129
137
  return { items, total };
130
138
  }
@@ -139,7 +147,7 @@ let ProductDetailQuery = class ProductDetailQuery {
139
147
  where: { domain: { id: customerDomainId.id }, gtin },
140
148
  relations: ['product']
141
149
  });
142
- if ((items === null || items === void 0 ? void 0 : items.length) <= 0)
150
+ if (items?.length <= 0)
143
151
  throw new Error('No product candidate found');
144
152
  return { items, total };
145
153
  }
@@ -1 +1 @@
1
- {"version":3,"file":"product-detail-query.js","sourceRoot":"","sources":["../../../server/service/product-detail/product-detail-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets, SelectQueryBuilder } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getCompaniesBizplaces, getPartnersCompanyBizplaces } from '@things-factory/biz-base'\nimport { buildCondition, buildQuery, Domain, Filter, getRepository, Pagination, Sorting } from '@things-factory/shell'\n\nimport { ProductDetail } from './product-detail'\nimport { ProductDetailList } from './product-detail-types'\n\n@Resolver(ProductDetail)\nexport class ProductDetailQuery {\n @Directive('@transaction')\n @Query(returns => ProductDetail)\n async productDetail(\n @Arg('gtin') gtin: string,\n @Arg('productId') productId: string,\n @Arg('customerCompanyDomainId') customerCompanyDomainId: string,\n @Ctx() context: ResolverContext\n ): Promise<ProductDetail> {\n const { tx } = context.state\n\n const customerDomain = await tx.getRepository(Domain).findOneBy({ id: customerCompanyDomainId })\n if (!customerDomain) {\n throw new Error('Unable to find company domain')\n }\n\n var foundProductDetail\n if (productId) {\n foundProductDetail = await tx.getRepository(ProductDetail).findOne({\n where: { domain: { id: customerDomain.id }, product: { id: productId } },\n relations: ['product']\n })\n } else {\n foundProductDetail = await tx.getRepository(ProductDetail).findOne({\n where: { domain: { id: customerDomain.id }, gtin },\n relations: ['product']\n })\n }\n\n if (!foundProductDetail) throw new Error('No product candidate found')\n\n return foundProductDetail\n }\n\n @Query(returns => ProductDetailList)\n async productDetails(\n @Ctx() context: ResolverContext,\n @Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],\n @Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,\n @Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]\n ): Promise<ProductDetailList> {\n const { domain, user } = context.state\n const { domains } = user\n\n const params = { filters, pagination }\n const productInfoFilters = params.filters.find(x => x.name == 'product_info' || x.name == 'sku' || x.name == 'name' || x.name == 'description' || x.name == 'type')\n\n const bizplaceFilter = params.filters.find(x => x.name == 'bizplace_id')\n const productFilter = params.filters.find(x => x.name == 'product')\n const createArrivalNotice = params.filters.find(x => x.name == 'create_arrival_notice')\n const productInfoFilterColumns = ['sku', 'name', 'description', 'type', 'brand']\n params.filters = params.filters.filter(\n x =>\n x.name != 'product_info' &&\n x.name != 'bizplace_id' &&\n x.name != 'product' &&\n x.name != 'sku' &&\n x.name != 'brand' &&\n x.name != 'name' &&\n x.name != 'description' &&\n x.name != 'type' &&\n x.name != 'create_arrival_notice'\n )\n\n const qb: SelectQueryBuilder<ProductDetail> = getRepository(ProductDetail).createQueryBuilder('ProductDetail')\n qb.innerJoinAndSelect('ProductDetail.product', 'Product', '\"Product\".\"deleted_at\" IS NULL')\n qb.innerJoinAndSelect('Product.bizplace', 'Bizplace')\n qb.leftJoinAndSelect('ProductDetail.childProductDetail', 'ChildProductDetail')\n qb.leftJoinAndSelect('Product.creator', 'Creator')\n qb.leftJoinAndSelect('Product.updater', 'Updater')\n\n buildQuery(qb, params, context, {\n domainRef: false,\n searchables: ['name']\n })\n\n if (bizplaceFilter?.value) {\n const bizplaceId: string = bizplaceFilter.value\n\n const foundBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { id: bizplaceId } /* CONFIRMME regarding TYPEORM - did I migrate correctly ? */,\n relations: ['company', 'company.domain']\n })\n\n if (foundBizplace) {\n const companyDomain: Domain = foundBizplace.company?.domain\n const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: companyDomain.id } }\n })\n\n const bizplaceIds = [companyBizplace.id, foundBizplace.id]\n qb.andWhere('Bizplace.id IN (:...bizplaceIds)', { bizplaceIds: [...new Set(bizplaceIds)] })\n }\n } else {\n const warehouseDomain: Domain = domain\n let bizplaceIds = []\n if (warehouseDomain?.extType === 'company') {\n const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: warehouseDomain.id } }\n })\n bizplaceIds.push(companyBizplace.id)\n } else if (warehouseDomain?.extType === 'factory') {\n const myBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: warehouseDomain.id } },\n relations: ['domain']\n })\n const companiesBizplaces: Bizplace[] = await getCompaniesBizplaces(domains, warehouseDomain)\n const partnersCompanyBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(domain, user)\n bizplaceIds = [...bizplaceIds, myBizplace.id, ...companiesBizplaces.map(biz => biz.id), ...partnersCompanyBizplaces.map(biz => biz.id)]\n } else {\n const companiesBizplaces: Bizplace[] = await getCompaniesBizplaces(domains, warehouseDomain)\n const partnersCompanyBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(domain, user)\n bizplaceIds = [...bizplaceIds, ...companiesBizplaces.map(biz => biz.id), ...partnersCompanyBizplaces.map(biz => biz.id)]\n }\n\n qb.andWhere('Product.bizplace_id IN (:...bizplaceIds)', { bizplaceIds: bizplaceIds })\n }\n\n if (productFilter?.value) {\n if (productFilter.operator === 'eq') {\n qb.andWhere('ProductDetail.product_id = :productId', { productId: productFilter.value })\n } else if (productFilter.operator === 'in') {\n qb.andWhere('ProductDetail.product_id in(:...productId)', { productId: productFilter.value })\n }\n }\n\n if (productInfoFilters?.value) {\n let productInfo = productInfoFilters\n qb.andWhere(\n new Brackets(qb2 => {\n productInfoFilterColumns.forEach(filter => {\n const condition = buildCondition('Product', filter, productInfo.operator, productInfo.value, productInfo.relation, Object.keys(qb.getParameters()).length)\n\n qb2.orWhere(condition.clause, condition.parameters)\n })\n })\n )\n }\n\n if (createArrivalNotice?.value) {\n qb.andWhere('(Product.isRequireSerialNumberScanning = false OR (Product.isRequireSerialNumberScanning = true AND ProductDetail.isDefault = true))')\n }\n\n let [items, total] = await qb.getManyAndCount()\n\n items = items.map(item => {\n return {\n ...item,\n productId: item.product.id,\n name: item.product.name,\n description: item.product.description,\n type: item.product.type,\n sku: item.product.sku,\n isRequireSerialNumberScanningInbound: item.product.isRequireSerialNumberScanningInbound,\n isRequireSerialNumberScanningOutbound: item.product.isRequireSerialNumberScanningOutbound\n }\n })\n\n return { items, total }\n }\n\n @Query(returns => ProductDetailList)\n async checkGtin(\n @Arg('gtin') gtin: string,\n @Arg('customerCompanyDomainId') customerCompanyDomainId: string,\n @Ctx() context: ResolverContext\n ): Promise<ProductDetailList> {\n try {\n const { tx } = context.state\n\n const customerDomainId: Domain = await getRepository(Domain).findOneBy({ id: customerCompanyDomainId })\n if (!customerDomainId) throw new Error('Unable to find company domain')\n var foundProductDetails\n\n let [items, total] = await getRepository(ProductDetail).findAndCount({\n where: { domain: { id: customerDomainId.id }, gtin },\n relations: ['product']\n })\n\n if (items?.length <= 0) throw new Error('No product candidate found')\n\n return { items, total }\n } catch (e) {\n throw new Error(e)\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() productDetail: ProductDetail): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: productDetail.domain.id })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() productDetail: ProductDetail): Promise<User> {\n return await getRepository(User).findOneBy({ id: productDetail.updater.id })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() productDetail: ProductDetail): Promise<User> {\n return await getRepository(User).findOneBy({ id: productDetail.creator.id })\n }\n}\n"]}
1
+ {"version":3,"file":"product-detail-query.js","sourceRoot":"","sources":["../../../server/service/product-detail/product-detail-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { Brackets, SelectQueryBuilder } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getCompaniesBizplaces, getPartnersCompanyBizplaces } from '@things-factory/biz-base'\nimport { buildCondition, buildQuery, Domain, Filter, getRepository, Pagination, Sorting } from '@things-factory/shell'\n\nimport { ProductDetail } from './product-detail'\nimport { ProductDetailList } from './product-detail-types'\n\n@Resolver(ProductDetail)\nexport class ProductDetailQuery {\n @Directive('@transaction')\n @Query(returns => ProductDetail)\n async productDetail(\n @Arg('gtin') gtin: string,\n @Arg('productId') productId: string,\n @Arg('customerCompanyDomainId') customerCompanyDomainId: string,\n @Ctx() context: ResolverContext\n ): Promise<ProductDetail> {\n const { tx } = context.state\n\n const customerDomain = await tx.getRepository(Domain).findOneBy({ id: customerCompanyDomainId })\n if (!customerDomain) {\n throw new Error('Unable to find company domain')\n }\n\n var foundProductDetail\n if (productId) {\n foundProductDetail = await tx.getRepository(ProductDetail).findOne({\n where: { domain: { id: customerDomain.id }, product: { id: productId } },\n relations: ['product']\n })\n } else {\n foundProductDetail = await tx.getRepository(ProductDetail).findOne({\n where: { domain: { id: customerDomain.id }, gtin },\n relations: ['product']\n })\n }\n\n if (!foundProductDetail) throw new Error('No product candidate found')\n\n return foundProductDetail\n }\n\n @Query(returns => ProductDetailList)\n async productDetails(\n @Ctx() context: ResolverContext,\n @Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],\n @Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,\n @Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]\n ): Promise<ProductDetailList> {\n const { domain, user } = context.state\n const { domains } = user\n\n const params = { filters, pagination }\n const productInfoFilters = params.filters.find(x => x.name == 'product_info' || x.name == 'sku' || x.name == 'name' || x.name == 'description' || x.name == 'type')\n\n const bizplaceFilter = params.filters.find(x => x.name == 'bizplace_id')\n const productFilter = params.filters.find(x => x.name == 'product')\n const createArrivalNotice = params.filters.find(x => x.name == 'create_arrival_notice')\n const productInfoFilterColumns = ['sku', 'name', 'description', 'type', 'brand']\n params.filters = params.filters.filter(\n x =>\n x.name != 'product_info' &&\n x.name != 'bizplace_id' &&\n x.name != 'product' &&\n x.name != 'sku' &&\n x.name != 'brand' &&\n x.name != 'name' &&\n x.name != 'description' &&\n x.name != 'type' &&\n x.name != 'create_arrival_notice'\n )\n\n const qb: SelectQueryBuilder<ProductDetail> = getRepository(ProductDetail).createQueryBuilder('ProductDetail')\n qb.innerJoinAndSelect('ProductDetail.product', 'Product', '\"Product\".\"deleted_at\" IS NULL')\n qb.innerJoinAndSelect('Product.bizplace', 'Bizplace')\n qb.leftJoinAndSelect('ProductDetail.childProductDetail', 'ChildProductDetail')\n qb.leftJoinAndSelect('Product.creator', 'Creator')\n qb.leftJoinAndSelect('Product.updater', 'Updater')\n\n buildQuery(qb, params, context, {\n domainRef: false,\n searchables: ['name']\n })\n\n if (bizplaceFilter?.value) {\n const bizplaceId: string = bizplaceFilter.value\n\n const foundBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { id: bizplaceId } /* CONFIRMME regarding TYPEORM - did I migrate correctly ? */,\n relations: ['company', 'company.domain']\n })\n\n if (foundBizplace) {\n const companyDomain: Domain = foundBizplace.company?.domain\n const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: companyDomain.id } }\n })\n\n const bizplaceIds = [companyBizplace.id, foundBizplace.id]\n qb.andWhere('Bizplace.id IN (:...bizplaceIds)', { bizplaceIds: [...new Set(bizplaceIds)] })\n }\n } else {\n const warehouseDomain: Domain = domain\n let bizplaceIds = []\n if (warehouseDomain?.extType === 'company') {\n const companyBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: warehouseDomain.id } }\n })\n bizplaceIds.push(companyBizplace.id)\n } else if (warehouseDomain?.extType === 'factory') {\n const myBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: { id: warehouseDomain.id } },\n relations: ['domain']\n })\n const companiesBizplaces: Bizplace[] = await getCompaniesBizplaces(domains, warehouseDomain)\n const partnersCompanyBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(domain, user)\n bizplaceIds = [...bizplaceIds, myBizplace.id, ...companiesBizplaces.map(biz => biz.id), ...partnersCompanyBizplaces.map(biz => biz.id)]\n } else {\n const companiesBizplaces: Bizplace[] = await getCompaniesBizplaces(domains, warehouseDomain)\n const partnersCompanyBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(domain, user)\n bizplaceIds = [...bizplaceIds, ...companiesBizplaces.map(biz => biz.id), ...partnersCompanyBizplaces.map(biz => biz.id)]\n }\n\n qb.andWhere('Product.bizplace_id IN (:...bizplaceIds)', { bizplaceIds: bizplaceIds })\n }\n\n if (productFilter?.value) {\n if (productFilter.operator === 'eq') {\n qb.andWhere('ProductDetail.product_id = :productId', { productId: productFilter.value })\n } else if (productFilter.operator === 'in') {\n qb.andWhere('ProductDetail.product_id in(:...productId)', { productId: productFilter.value })\n }\n }\n\n if (productInfoFilters?.value) {\n let productInfo = productInfoFilters\n qb.andWhere(\n new Brackets(qb2 => {\n productInfoFilterColumns.forEach(filter => {\n const condition = buildCondition('Product', filter, productInfo.operator, productInfo.value, productInfo.relation, Object.keys(qb.getParameters()).length)\n\n qb2.orWhere(condition.clause, condition.parameters)\n })\n })\n )\n }\n\n if (createArrivalNotice?.value) {\n qb.andWhere('(Product.isRequireSerialNumberScanning = false OR (Product.isRequireSerialNumberScanning = true AND ProductDetail.isDefault = true))')\n }\n\n let [items, total] = await qb.getManyAndCount()\n\n items = items.map(item => {\n return {\n ...item,\n productId: item.product.id,\n name: item.product.name,\n description: item.product.description,\n type: item.product.type,\n sku: item.product.sku,\n isRequireSerialNumberScanningInbound: item.product.isRequireSerialNumberScanningInbound,\n isRequireSerialNumberScanningOutbound: item.product.isRequireSerialNumberScanningOutbound\n }\n })\n\n return { items, total }\n }\n\n @Query(returns => ProductDetailList)\n async checkGtin(\n @Arg('gtin') gtin: string,\n @Arg('customerCompanyDomainId') customerCompanyDomainId: string,\n @Ctx() context: ResolverContext\n ): Promise<ProductDetailList> {\n try {\n const { tx } = context.state\n\n const customerDomainId: Domain = await getRepository(Domain).findOneBy({ id: customerCompanyDomainId })\n if (!customerDomainId) throw new Error('Unable to find company domain')\n var foundProductDetails\n\n let [items, total] = await getRepository(ProductDetail).findAndCount({\n where: { domain: { id: customerDomainId.id }, gtin },\n relations: ['product']\n })\n\n if (items?.length <= 0) throw new Error('No product candidate found')\n\n return { items, total }\n } catch (e) {\n throw new Error(e)\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() productDetail: ProductDetail): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: productDetail.domain.id })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() productDetail: ProductDetail): Promise<User> {\n return await getRepository(User).findOneBy({ id: productDetail.updater.id })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() productDetail: ProductDetail): Promise<User> {\n return await getRepository(User).findOneBy({ id: productDetail.creator.id })\n }\n}\n"]}