@things-factory/product-base 6.2.48 → 6.2.50
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-server/service/product-bundle/product-bundle-mutation.js +1 -1
- package/dist-server/service/product-bundle/product-bundle-mutation.js.map +1 -1
- package/dist-server/service/product-detail/product-detail-mutation.js +1 -1
- package/dist-server/service/product-detail/product-detail-mutation.js.map +1 -1
- package/dist-server/service/product-detail/product-detail-query.js +1 -1
- package/dist-server/service/product-detail/product-detail-query.js.map +1 -1
- package/dist-server/service/product-detail-bizplace-setting/product-detail-bizplace-setting-mutation.js +1 -1
- package/dist-server/service/product-detail-bizplace-setting/product-detail-bizplace-setting-mutation.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/server/service/product-bundle/product-bundle-mutation.ts +1 -1
- package/server/service/product-detail/product-detail-mutation.ts +1 -1
- package/server/service/product-detail/product-detail-query.ts +1 -1
- package/server/service/product-detail-bizplace-setting/product-detail-bizplace-setting-mutation.ts +1 -1
|
@@ -58,7 +58,7 @@ let ProductBundleMutation = class ProductBundleMutation {
|
|
|
58
58
|
}
|
|
59
59
|
async deleteProductBundle(name, context) {
|
|
60
60
|
const { domain, user } = context.state;
|
|
61
|
-
await (0, shell_1.getRepository)(product_bundle_1.ProductBundle).delete({ domain, name });
|
|
61
|
+
await (0, shell_1.getRepository)(product_bundle_1.ProductBundle).delete({ domain: { id: domain.id }, name });
|
|
62
62
|
return true;
|
|
63
63
|
}
|
|
64
64
|
async deleteProductBundles(ids, context) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-bundle-mutation.js","sourceRoot":"","sources":["../../../server/service/product-bundle/product-bundle-mutation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"product-bundle-mutation.js","sourceRoot":"","sources":["../../../server/service/product-bundle/product-bundle-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Mutation, Resolver } from 'type-graphql'\nimport { In, Repository } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport { getRepository } from '@things-factory/shell'\n\nimport { PRODUCT_BUNDLE_STATUS } from '../../constants'\nimport { ProductBundle } from './product-bundle'\nimport { NewProductBundle, ProductBundlePatch } from './product-bundle-types'\n\n@Resolver(ProductBundle)\nexport class ProductBundleMutation {\n @Mutation(returns => ProductBundle)\n async createProductBundle(\n @Arg('productBundle') productBundle: NewProductBundle,\n @Ctx() context: ResolverContext\n ): Promise<ProductBundle> {\n const { domain, user } = context.state\n\n return await getRepository(ProductBundle).save({\n ...productBundle,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Mutation(returns => ProductBundle)\n async updateProductBundle(\n @Arg('name') name: string,\n @Arg('patch') patch: ProductBundlePatch,\n @Ctx() context: ResolverContext\n ): Promise<ProductBundle> {\n const { domain, user } = context.state\n\n const repository = getRepository(ProductBundle)\n const productBundle = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...productBundle,\n ...patch,\n updater: user\n })\n }\n\n @Mutation(returns => [ProductBundle])\n async updateMultipleProductBundle(\n @Arg('patches', type => [ProductBundlePatch]) patches: ProductBundlePatch[],\n @Ctx() context: ResolverContext\n ): Promise<ProductBundle[]> {\n const { domain, user } = 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 productBundleRepo = getRepository(ProductBundle)\n const bizplaceRepo = getRepository(Bizplace)\n\n let bizplace: Bizplace\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n let newRecord = _createRecords[i]\n let status = newRecord.status || ''\n\n bizplace = await bizplaceRepo.findOne({ where: { name: domain.name } })\n\n if (!newRecord.status || newRecord.status === '') {\n newRecord.status = PRODUCT_BUNDLE_STATUS.INACTIVE\n }\n\n const result = await productBundleRepo.save({\n ...newRecord,\n domain,\n bizplace,\n status: newRecord.status.toUpperCase(),\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 productBundle = await productBundleRepo.findOneBy({ domain: { id: domain.id }, id: newRecord.id })\n\n if (newRecord.status) {\n newRecord.status = newRecord.status.toUpperCase()\n }\n\n const result = await productBundleRepo.save({\n ...productBundle,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Mutation(returns => Boolean)\n async deleteProductBundle(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<Boolean> {\n const { domain, user } = context.state\n\n await getRepository(ProductBundle).delete({ domain: { id: domain.id }, name })\n\n return true\n }\n\n @Mutation(returns => Boolean)\n async deleteProductBundles(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n const { tx, user } = context.state\n const productBundleRepo: Repository<ProductBundle> = getRepository(ProductBundle) || tx.getRepository(ProductBundle)\n\n let productBundles = await productBundleRepo.find({ where: { id: In(ids) } })\n\n for (let i = 0; i < productBundles.length; i++) {\n const product = productBundles[i]\n\n const result = await productBundleRepo.save({\n ...product,\n status: PRODUCT_BUNDLE_STATUS.DELETED,\n updater: user\n })\n }\n\n return true\n }\n}\n"]}
|
|
@@ -23,7 +23,7 @@ let ProductDetailMutation = class ProductDetailMutation {
|
|
|
23
23
|
}
|
|
24
24
|
async deleteProductDetail(name, context) {
|
|
25
25
|
const { domain, user } = context.state;
|
|
26
|
-
await (0, shell_1.getRepository)(product_detail_1.ProductDetail).delete({ domain, name });
|
|
26
|
+
await (0, shell_1.getRepository)(product_detail_1.ProductDetail).delete({ domain: { id: domain.id }, name });
|
|
27
27
|
return true;
|
|
28
28
|
}
|
|
29
29
|
async deleteProductDetails(names, context) {
|
|
@@ -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, 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"]}
|
|
@@ -140,7 +140,7 @@ let ProductDetailQuery = class ProductDetailQuery {
|
|
|
140
140
|
throw new Error('Unable to find company domain');
|
|
141
141
|
var foundProductDetails;
|
|
142
142
|
let [items, total] = await (0, shell_1.getRepository)(product_detail_1.ProductDetail).findAndCount({
|
|
143
|
-
where: { domain: customerDomainId, gtin },
|
|
143
|
+
where: { domain: { id: customerDomainId.id }, gtin },
|
|
144
144
|
relations: ['product']
|
|
145
145
|
});
|
|
146
146
|
if ((items === null || items === void 0 ? void 0 : items.length) <= 0)
|
|
@@ -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(\n x =>\n x.name == 'product_info' || x.name == 'sku' || x.name == 'name' || x.name == 'description' || x.name == 'type'\n )\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 = [\n ...bizplaceIds,\n myBizplace.id,\n ...companiesBizplaces.map(biz => biz.id),\n ...partnersCompanyBizplaces.map(biz => biz.id)\n ]\n } else {\n const companiesBizplaces: Bizplace[] = await getCompaniesBizplaces(domains, warehouseDomain)\n const partnersCompanyBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(domain, user)\n bizplaceIds = [\n ...bizplaceIds,\n ...companiesBizplaces.map(biz => biz.id),\n ...partnersCompanyBizplaces.map(biz => biz.id)\n ]\n }\n\n qb.andWhere('Product.bizplace_id IN (:...bizplaceIds)', { bizplaceIds: bizplaceIds })\n }\n\n if (productFilter?.value) {\n qb.andWhere('ProductDetail.product_id = :productId', { productId: productFilter.value })\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(\n 'Product',\n filter,\n productInfo.operator,\n productInfo.value,\n productInfo.relation,\n Object.keys(qb.getParameters()).length\n )\n\n qb2.orWhere(condition.clause, condition.parameters)\n })\n })\n )\n }\n\n if (createArrivalNotice?.value) {\n qb.andWhere(\n '(Product.isRequireSerialNumberScanning = false OR (Product.isRequireSerialNumberScanning = true AND ProductDetail.isDefault = true))'\n )\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: customerDomainId, 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(\n x =>\n x.name == 'product_info' || x.name == 'sku' || x.name == 'name' || x.name == 'description' || x.name == 'type'\n )\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 = [\n ...bizplaceIds,\n myBizplace.id,\n ...companiesBizplaces.map(biz => biz.id),\n ...partnersCompanyBizplaces.map(biz => biz.id)\n ]\n } else {\n const companiesBizplaces: Bizplace[] = await getCompaniesBizplaces(domains, warehouseDomain)\n const partnersCompanyBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(domain, user)\n bizplaceIds = [\n ...bizplaceIds,\n ...companiesBizplaces.map(biz => biz.id),\n ...partnersCompanyBizplaces.map(biz => biz.id)\n ]\n }\n\n qb.andWhere('Product.bizplace_id IN (:...bizplaceIds)', { bizplaceIds: bizplaceIds })\n }\n\n if (productFilter?.value) {\n qb.andWhere('ProductDetail.product_id = :productId', { productId: productFilter.value })\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(\n 'Product',\n filter,\n productInfo.operator,\n productInfo.value,\n productInfo.relation,\n Object.keys(qb.getParameters()).length\n )\n\n qb2.orWhere(condition.clause, condition.parameters)\n })\n })\n )\n }\n\n if (createArrivalNotice?.value) {\n qb.andWhere(\n '(Product.isRequireSerialNumberScanning = false OR (Product.isRequireSerialNumberScanning = true AND ProductDetail.isDefault = true))'\n )\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"]}
|
|
@@ -50,7 +50,7 @@ let ProductDetailBizplaceSettingMutation = class ProductDetailBizplaceSettingMut
|
|
|
50
50
|
}
|
|
51
51
|
async deleteProductDetailBizplaceSetting(name, context) {
|
|
52
52
|
const { domain } = context.state;
|
|
53
|
-
await (0, shell_1.getRepository)(product_detail_bizplace_setting_1.ProductDetailBizplaceSetting).delete({ domain, name });
|
|
53
|
+
await (0, shell_1.getRepository)(product_detail_bizplace_setting_1.ProductDetailBizplaceSetting).delete({ domain: { id: domain.id }, name });
|
|
54
54
|
return true;
|
|
55
55
|
}
|
|
56
56
|
async deleteProductDetailBizplaceSettings(names, context) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-detail-bizplace-setting-mutation.js","sourceRoot":"","sources":["../../../server/service/product-detail-bizplace-setting/product-detail-bizplace-setting-mutation.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"product-detail-bizplace-setting-mutation.js","sourceRoot":"","sources":["../../../server/service/product-detail-bizplace-setting/product-detail-bizplace-setting-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { ProductDetail } from '../product-detail/product-detail'\nimport { ProductDetailBizplaceSetting } from './product-detail-bizplace-setting'\nimport { ProductDetailBizplaceSettingPatch } from './product-detail-bizplace-setting-types'\n\n@Resolver(ProductDetailBizplaceSetting)\nexport class ProductDetailBizplaceSettingMutation {\n @Mutation(returns => ProductDetailBizplaceSetting)\n async updateProductDetailBizplaceSetting(\n @Arg('name') name: string,\n @Arg('patch') patch: ProductDetailBizplaceSettingPatch,\n @Ctx() context: ResolverContext\n ): Promise<ProductDetailBizplaceSetting> {\n const { domain, user } = context.state\n\n const repository = getRepository(ProductDetailBizplaceSetting)\n const productDetailBizplaceSetting = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...productDetailBizplaceSetting,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [ProductDetailBizplaceSetting])\n async updateMultipleProductDetailBizplaceSetting(\n @Arg('productId') productId: string,\n @Arg('patches', type => [ProductDetailBizplaceSettingPatch]) patches: ProductDetailBizplaceSettingPatch[],\n @Ctx() context: ResolverContext\n ): Promise<ProductDetailBizplaceSettingPatch[]> {\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\n const productDetailBizplaceSettingRepo = tx.getRepository(ProductDetailBizplaceSetting)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n delete newRecord.id\n\n const productDetail = await tx.getRepository(ProductDetail).findOneBy({ id: newRecord.productDetail.id })\n\n if (productDetail) {\n const result = await productDetailBizplaceSettingRepo.save({\n ...newRecord,\n name: productDetail.gtin,\n productDetail,\n domain: domain,\n creator: user,\n updater: user\n })\n results.push({ ...result, cuFlag: '+' })\n }\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const productDetailBizplaceSetting = await productDetailBizplaceSettingRepo.findOneBy({\n domain: { id: domain.id },\n id: newRecord.id\n })\n const productDetail = await tx.getRepository(ProductDetail).findOneBy({ id: newRecord.productDetail.id })\n\n const result = await productDetailBizplaceSettingRepo.save({\n ...productDetailBizplaceSetting,\n ...newRecord,\n name: productDetail.gtin,\n productDetail,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Mutation(returns => Boolean)\n async deleteProductDetailBizplaceSetting(\n @Arg('name') name: string,\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n const { domain } = context.state\n\n await getRepository(ProductDetailBizplaceSetting).delete({ domain: { id: domain.id }, name })\n\n return true\n }\n\n @Mutation(returns => Boolean)\n async deleteProductDetailBizplaceSettings(\n @Arg('names', type => [String]) names: string[],\n @Ctx() context: ResolverContext\n ): Promise<Boolean> {\n const { domain } = context.state\n\n await getRepository(ProductDetailBizplaceSetting).delete({\n domain: { id: domain.id },\n name: In(names)\n })\n\n return true\n }\n}\n"]}
|