@things-factory/sales-base 7.0.1-beta.16 → 7.0.1-beta.18
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/arrival-notice/arrival-notice-query.js +2 -2
- package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
- package/dist-server/service/delivery-order/delivery-order-query.js +2 -2
- package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -1
- package/dist-server/service/draft-release-good/draft-release-good-query.js +1 -1
- package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -1
- package/dist-server/service/goods-receival-note/goods-receival-note-query.js +1 -1
- package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +1 -1
- package/dist-server/service/manifest/manifest-query.js +1 -1
- package/dist-server/service/manifest/manifest-query.js.map +1 -1
- package/dist-server/service/manifest/manifest.js +2 -2
- package/dist-server/service/manifest/manifest.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory-query.js +3 -3
- package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
- package/dist-server/service/order-tote/order-tote.js +1 -1
- package/dist-server/service/order-tote/order-tote.js.map +1 -1
- package/dist-server/service/others/other-query.js +3 -3
- package/dist-server/service/others/other-query.js.map +1 -1
- package/dist-server/service/release-good/release-good-query.js +2 -2
- package/dist-server/service/release-good/release-good-query.js.map +1 -1
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js +1 -1
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js.map +1 -1
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js +2 -2
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js.map +1 -1
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js +1 -1
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js.map +1 -1
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js +2 -2
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -13
- package/server/service/arrival-notice/arrival-notice-query.ts +8 -2
- package/server/service/delivery-order/delivery-order-query.ts +9 -3
- package/server/service/draft-release-good/draft-release-good-query.ts +4 -1
- package/server/service/goods-receival-note/goods-receival-note-query.ts +10 -7
- package/server/service/manifest/manifest-query.ts +1 -1
- package/server/service/manifest/manifest.ts +2 -2
- package/server/service/order-inventory/order-inventory-query.ts +9 -3
- package/server/service/order-tote/order-tote.ts +1 -1
- package/server/service/others/other-query.ts +3 -3
- package/server/service/release-good/release-good-query.ts +8 -2
- package/server/service/reverse-kitting-order/reverse-kitting-order-query.ts +1 -1
- package/server/service/reverse-kitting-order/reverse-kitting-order.ts +2 -2
- package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.ts +1 -1
- package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.ts +2 -2
|
@@ -263,7 +263,7 @@ tslib_1.__decorate([
|
|
|
263
263
|
(0, type_graphql_1.Directive)('@privilege(category: "order_customer", privilege: "query", domainOwnerGranted: true)'),
|
|
264
264
|
(0, type_graphql_1.Query)(returns => __1.ArrivalNoticeList),
|
|
265
265
|
tslib_1.__param(0, (0, type_graphql_1.Ctx)()),
|
|
266
|
-
tslib_1.__param(1, (0, type_graphql_1.Args)()),
|
|
266
|
+
tslib_1.__param(1, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
267
267
|
tslib_1.__metadata("design:type", Function),
|
|
268
268
|
tslib_1.__metadata("design:paramtypes", [Object, shell_1.ListParam]),
|
|
269
269
|
tslib_1.__metadata("design:returntype", Promise)
|
|
@@ -271,7 +271,7 @@ tslib_1.__decorate([
|
|
|
271
271
|
tslib_1.__decorate([
|
|
272
272
|
(0, type_graphql_1.Directive)('@privilege(category: "order_warehouse", privilege: "query", domainOwnerGranted: true)'),
|
|
273
273
|
(0, type_graphql_1.Query)(returns => __1.ArrivalNoticeList),
|
|
274
|
-
tslib_1.__param(0, (0, type_graphql_1.Args)()),
|
|
274
|
+
tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
275
275
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
276
276
|
tslib_1.__metadata("design:type", Function),
|
|
277
277
|
tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrival-notice-query.js","sourceRoot":"","sources":["../../../server/service/arrival-notice/arrival-notice-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { EntityManager, In, OrderByCondition, SelectQueryBuilder } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { checkUserBelongsDomain, User } from '@things-factory/auth-base'\nimport { Bizplace, getCompanyBizplace, getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { ProductDetail } from '@things-factory/product-base'\nimport { buildQuery, Domain, getRepository, ListParam } from '@things-factory/shell'\n\nimport { ArrivalNoticeList, NewArrivalNotice, RawArrivalNotice } from '../'\nimport { ATTACHMENT_TYPE, ORDER_STATUS } from '../../constants'\nimport { OrderInventory, OrderProduct } from '../../service'\nimport { ArrivalNotice } from './arrival-notice'\n\n@Resolver(ArrivalNotice)\nexport class ArrivalNoticeQuery {\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ArrivalNotice)\n async arrivalNotice(\n @Ctx() context: ResolverContext,\n @Arg('name', { nullable: true }) name?: string,\n @Arg('refNo', { nullable: true }) refNo?: string\n ): Promise<ArrivalNotice> {\n const { domain, user, bizplace }: { domain: Domain; user: User; bizplace?: Bizplace } = context.state\n\n let param: any = { domain, bizplace: bizplace ? bizplace : In(await getPermittedBizplaceIds(domain, user)) }\n\n if (name) param = { ...param, name }\n else if (refNo) param = { ...param, refNo }\n else return\n\n let foundGAN: ArrivalNotice = await getRepository(ArrivalNotice).findOne({\n where: { ...param },\n relations: [\n 'domain',\n 'bizplace',\n 'bizplace.domain',\n 'releaseGood',\n 'purchaseOrder',\n 'purchaseOrder.bufferLocation',\n 'orderProducts',\n 'orderProducts.product',\n 'orderInventories',\n 'orderInventories.inventory',\n 'orderInventories.inventory.product',\n 'orderInventories.inventory.location',\n 'orderVass',\n 'orderVass.vas',\n 'orderVass.targetProduct',\n 'supplier',\n 'creator',\n 'updater'\n ]\n })\n\n if (name && !foundGAN) throw new Error(`Failed to find arrival notice with ${name}`)\n\n if (foundGAN) {\n const foundAttachments: Attachment[] = await getRepository(Attachment).find({\n where: {\n domain: { id: domain.id },\n refBy: foundGAN?.id,\n category: ATTACHMENT_TYPE.GAN\n }\n })\n\n const foundPOAttachments: Attachment[] = foundGAN?.purchaseOrder?.id\n ? await getRepository(Attachment).find({\n where: {\n domain: { id: domain.id },\n refBy: foundGAN.purchaseOrder?.id,\n category: ATTACHMENT_TYPE.PO\n }\n })\n : []\n\n // add productDetails data to orderProduct.product\n foundGAN.orderProducts = await Promise.all(\n foundGAN.orderProducts.map(async (orderProduct: OrderProduct) => {\n orderProduct.product['productDetails'] = await getRepository(ProductDetail).find({\n where: {\n product: { id: orderProduct.product.id },\n packingType: orderProduct.packingType,\n packingSize: orderProduct.packingSize\n }\n })\n return orderProduct\n })\n )\n\n // add productDetails data to orderInventory.inventory.product if orderInventory is exist\n if (foundGAN.orderInventories && foundGAN.orderInventories.length) {\n foundGAN.orderInventories = await Promise.all(\n foundGAN.orderInventories.map(async (orderInventory: OrderInventory) => {\n orderInventory.inventory.product['productDetails'] = await getRepository(ProductDetail).find({\n where: {\n product: { id: orderInventory.inventory.product.id },\n packingType: orderInventory.inventory.packingType,\n packingSize: orderInventory.inventory.packingSize\n }\n })\n return orderInventory\n })\n )\n }\n\n return {\n ...foundGAN,\n attachment: [...foundPOAttachments, ...foundAttachments]\n }\n } else {\n return\n }\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ArrivalNoticeList)\n async arrivalNotices(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<ArrivalNoticeList> {\n const { domain, user } = context.state\n\n if (await checkUserBelongsDomain(domain, user)) {\n if (!params.filters.some(e => e.name === 'status') && !params.filters.some(e => e.name === 'name')) {\n params.filters.push({\n name: 'status',\n operator: 'notin',\n value: [ORDER_STATUS.PENDING, ORDER_STATUS.EDITING],\n relation: false\n })\n }\n }\n\n if (!params.filters.find((filter: any) => filter.name === 'bizplace')) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n const qb: SelectQueryBuilder<ArrivalNotice> = getRepository(ArrivalNotice).createQueryBuilder('an')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 9999)', 'rank')\n qb.leftJoinAndSelect('an.domain', 'domain')\n qb.leftJoinAndSelect('an.bizplace', 'bizplace')\n qb.leftJoinAndSelect('an.releaseGood', 'ro')\n qb.leftJoinAndSelect('an.creator', 'creator')\n qb.leftJoinAndSelect('an.updater', 'updater')\n qb.leftJoinAndSelect('an.acceptedBy', 'accepter')\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'ORDER_STATUS'`)\n },\n 'cc',\n 'cc.status = an.status'\n )\n\n const arrChildSortData = ['bizplace']\n const sort: OrderByCondition = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0 ? sort.name + '.name' : 'an.' + sort.name]: sort.desc ? 'DESC' : 'ASC'\n }),\n !params.sortings.some(e => e.name === 'status') ? { rank: 'ASC' } : {}\n )\n\n qb.orderBy(sort)\n\n const [items, total] = await qb.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"order_warehouse\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ArrivalNoticeList)\n async arrivalNoticeRequests(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<ArrivalNoticeList> {\n try {\n const { domain, user } = context.state\n const statusFilter = params.filters.some(e => e.name === 'status')\n const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')\n\n if (!statusFilter) {\n params.filters.push({\n name: 'status',\n operator: 'notin',\n value: [ORDER_STATUS.PENDING, ORDER_STATUS.EDITING],\n relation: false\n })\n }\n\n if (!bizplaceFilter) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n const qb: SelectQueryBuilder<ArrivalNotice> = getRepository(ArrivalNotice).createQueryBuilder('an')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 9999)', 'rank')\n qb.leftJoinAndSelect('an.domain', 'domain')\n qb.leftJoinAndSelect('an.bizplace', 'bizplace')\n qb.leftJoinAndSelect('an.releaseGood', 'ro')\n qb.leftJoinAndSelect('an.creator', 'creator')\n qb.leftJoinAndSelect('an.updater', 'updater')\n qb.leftJoinAndSelect('an.acceptedBy', 'accepter')\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'ORDER_STATUS'`)\n },\n 'cc',\n 'cc.status = an.status'\n )\n\n const arrChildSortData = ['bizplace']\n const sort: OrderByCondition = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0 ? sort.name + '.name' : 'an.' + sort.name]: sort.desc\n ? 'DESC'\n : 'ASC'\n }),\n !params.sortings.some(e => e.name === 'status') ? { rank: 'ASC' } : {}\n )\n\n qb.orderBy(sort)\n\n const [items, total] = await qb.getManyAndCount()\n\n return { items, total }\n } catch (error) {\n throw error\n }\n }\n\n @Directive('@transaction')\n @Query(returns => [RawArrivalNotice])\n async validateBulkArrivalNotices(\n @Ctx() context: ResolverContext,\n @Arg('rawArrivalNotices', type => [NewArrivalNotice], { nullable: true }) rawArrivalNotices: NewArrivalNotice[],\n @Arg('bizplaceId', type => String) bizplaceId: string\n ): Promise<RawArrivalNotice[]> {\n const tx: EntityManager = context.state.tx\n return await validateBulkArrivalNoticesFunction(rawArrivalNotices, bizplaceId, tx)\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() arrivalNotice: ArrivalNotice): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: arrivalNotice.domainId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() arrivalNotice: ArrivalNotice): Promise<User> {\n return await getRepository(User).findOneBy({ id: arrivalNotice.creatorId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() arrivalNotice: ArrivalNotice): Promise<User> {\n return await getRepository(User).findOneBy({ id: arrivalNotice.updaterId })\n }\n}\n\nexport async function validateBulkArrivalNoticesFunction(\n rawArrivalNotices: NewArrivalNotice[],\n bizplaceId: string,\n trxMgr: EntityManager\n): Promise<RawArrivalNotice[]> {\n const companyBizplace: Bizplace = await getCompanyBizplace(null, null, bizplaceId)\n\n const json_oi = JSON.stringify(\n rawArrivalNotices.map(raw => {\n return {\n ref_no: raw.refNo || null,\n ref_no_2: raw.refNo2 || null,\n ref_no_3: raw.refNo3 || null,\n eta_date: raw.etaDate || null,\n truck_no: raw.truckNo || null,\n own_transport: !!raw.truckNo || false,\n loose_item: raw.looseItem || false,\n import_cargo: raw.importCargo || false,\n container: (!!raw.containerNo && !!raw.containerSize) || false,\n container_no: raw.containerNo || null,\n container_size: raw.containerSize || null,\n sku: raw.sku || null,\n batch_id: raw.batchId || null,\n batch_id_ref: raw.batchIdRef || null,\n packing_type: raw.packingType || null,\n packing_size: raw.packingSize || null,\n uom: raw.uom || null,\n pack_qty: raw.packQty || null,\n pallet_qty: raw.palletQty || null,\n unit_price: raw.unitPrice || null,\n manufacture_date: raw.manufactureDate || null\n }\n })\n )\n\n await trxMgr.query(\n `\n CREATE TEMP TABLE raw_arrival_notices(\n ref_no VARCHAR(150),\n ref_no_2 VARCHAR(150),\n ref_no_3 VARCHAR(150),\n eta_date VARCHAR(24),\n truck_no VARCHAR(10),\n own_transport BOOLEAN,\n container BOOLEAN,\n container_no VARCHAR(50),\n container_size VARCHAR(24),\n import_cargo BOOLEAN,\n loose_item BOOLEAN,\n sku VARCHAR(150),\n batch_id VARCHAR(100),\n batch_id_ref VARCHAR(100),\n packing_type VARCHAR(50),\n packing_size INT,\n uom VARCHAR(10),\n pack_qty INT,\n pallet_qty INT,\n unit_price FLOAT8,\n manufacture_date DATE\n );\n `\n )\n\n await trxMgr.query(\n `\n CREATE TEMP TABLE temp_gan AS (\n SELECT an.name, an.ref_no, an.ref_no_2, an.ref_no_3, an.eta_date, an.truck_no, an.own_transport, an.container, an.container_no, an.container_size, an.import_cargo, an.loose_item\n FROM arrival_notices an\n WHERE EXISTS (\n SELECT raw.* FROM\n JSON_POPULATE_RECORDSET(NULL:: arrival_notices, $1) raw\n WHERE raw.ref_no = an.ref_no \n AND raw.ref_no_2 = an.ref_no_2\n AND raw.ref_no_3 = an.ref_no_3\n AND raw.eta_date::date = an.eta_date::date\n AND raw.truck_no = an.truck_no\n AND raw.own_transport = an.own_transport\n AND raw.container = an.container\n AND raw.container_no = an.container_no\n AND raw.container_size = an.container_size\n AND raw.loose_item = an.loose_item\n AND raw.import_cargo = an.import_cargo\t\t\t\n )\n )\n `,\n [json_oi]\n )\n\n await trxMgr.query(\n `\n INSERT INTO raw_arrival_notices \n SELECT \n js.ref_no, js.ref_no_2, js.ref_no_3, js.eta_date, js.truck_no, js.own_transport, js.container,\n js.container_no, js.container_size, js.import_cargo, js.loose_item, js.sku, js.batch_id,\n js.batch_id_ref, js.packing_type, js.packing_size, js.uom, js.pack_qty, js.pallet_qty,\n js.unit_price, js.manufacture_date\n FROM \n JSON_POPULATE_RECORDSET(NULL:: raw_arrival_notices, $1) js;\n `,\n [json_oi]\n )\n\n const insertResult: any[] = await trxMgr.query(`\n SELECT * from raw_arrival_notices\n `)\n\n let validatedItems = await trxMgr.query(\n `\n WITH foo AS (\n\t SELECT \n\t \tan.name AS gan_name,\n\t \tan.ref_no AS gan_ref_no,\n\t raw.ref_no, \n\t raw.ref_no_2, \n\t raw.ref_no_3, \n\t raw.eta_date, \n\t raw.truck_no, \n\t raw.own_transport, \n\t raw.container, \n\t raw.container_no, \n\t raw.container_size, \n\t raw.import_cargo, \n\t raw.loose_item, \n\t pr.id AS product_id, \n\t pd.id AS product_detail_id, \n\t raw.sku AS sku, \n\t CASE WHEN pr.description NOT IN (NULL, '', '-') THEN CONCAT(pr.name, '(', pr.description, ')') ELSE pr.name END AS product_info, \n\t raw.batch_id,\n\t raw.batch_id_ref,\n\t pd.packing_type, \n\t pd.packing_size, \n\t sum(raw.pack_qty) AS pack_qty, \n\t sum(pd.uom_value) AS uom_value,\n\t pd.uom, \n\t sum(raw.pallet_qty) AS pallet_qty, \n\t raw.unit_price, \n\t raw.manufacture_date\n\t FROM \n\t raw_arrival_notices raw \n\t LEFT JOIN temp_gan an ON raw.ref_no = an.ref_no \n\t AND raw.ref_no_2 = an.ref_no_2\n\t AND raw.ref_no_3 = an.ref_no_3\n\t AND raw.eta_date::date = an.eta_date::date\n\t AND raw.truck_no = an.truck_no\n\t AND raw.own_transport = an.own_transport\n\t AND raw.container = an.container\n\t AND raw.container_no = an.container_no\n\t AND raw.container_size = an.container_size\n\t AND raw.loose_item = an.loose_item\n\t AND raw.import_cargo = an.import_cargo \n\t LEFT JOIN products pr ON LOWER(pr.sku) = LOWER(raw.sku)\n\t LEFT JOIN product_details pd ON pr.id = pd.product_id\n\t AND CASE WHEN raw.packing_type NOTNULL AND raw.packing_size NOTNULL AND raw.uom NOTNULL\n\t THEN pd.packing_type = raw.packing_type AND pd.packing_size = raw.packing_size AND pd.uom = raw.uom \n\t WHEN raw.packing_type NOTNULL AND raw.packing_size NOTNULL AND raw.uom ISNULL\n\t THEN pd.packing_type = raw.packing_type AND pd.packing_size = raw.packing_size AND pd.is_default IS TRUE\n\t WHEN raw.packing_type ISNULL AND raw.packing_size ISNULL AND raw.uom NOTNULL\n\t THEN pd.uom = raw.uom AND pd.is_default IS TRUE ELSE pd.is_default IS TRUE\n\t END\n WHERE pr.bizplace_id = $1\n\t GROUP BY raw.ref_no, raw.ref_no_2, raw.ref_no_3, raw.eta_date, raw.truck_no, raw.own_transport, raw.container, raw.container_no, raw.container_size, raw.import_cargo, raw.loose_item,\n\t pr.id, pd.id, raw.sku, pr.name, pr.description, raw.batch_id, raw.batch_id_ref, raw.packing_type, raw.packing_size, raw.uom, raw.unit_price, raw.manufacture_date, an.ref_no, an.name\n ) SELECT foo.*, \n\t CONCAT(COALESCE(ROUND(foo.uom_value:: numeric, 2), 0) * COALESCE(foo.pack_qty, 0), ' ', foo.uom) AS total_uom_value,\n CASE WHEN foo.gan_ref_no NOTNULL THEN concat('order duplicated with ', foo.gan_name)\n WHEN foo.manufacture_date > current_date THEN 'invalid manufacture date'\n WHEN foo.product_id ISNULL OR foo.product_detail_id ISNULL OR foo.sku ISNULL THEN 'product not found'\n WHEN foo.pack_qty ISNULL OR foo.pack_qty <= 0 THEN 'invalid pack qty'\n WHEN foo.batch_id ISNULL THEN 'batch no. is required'\n WHEN foo.ref_no ISNULL OR foo.ref_no = '' THEN 'ref no. is required'\n WHEN foo.eta_date ISNULL THEN 'eta date is required'\n WHEN foo.container_no NOTNULL AND foo.container_size ISNULL OR foo.container_no ISNULL AND foo.container_size NOTNULL THEN 'incomplete container information'\n WHEN foo.unit_price < 0 THEN 'invalid unit price'\n WHEN foo.pallet_qty < 0 THEN 'invalid pallet qty'\n ELSE '' END AS error_msg\n FROM foo\n ORDER BY foo.ref_no, foo.ref_no_2, foo.ref_no_3, foo.sku\n `,\n [companyBizplace.id]\n )\n\n await trxMgr.query('DROP TABLE raw_arrival_notices, temp_gan')\n\n return validatedItems.map(item => {\n return {\n refNo: item.ref_no,\n refNo2: item.ref_no_2,\n refNo3: item.ref_no_3,\n etaDate: item.eta_date,\n truckNo: item.truck_no,\n ownTransport: !!item.own_transport,\n container: item.container,\n containerNo: item.container_no,\n containerSize: item.container_size,\n importCargo: !!item.import_cargo,\n looseItem: !!item.loose_item,\n productId: item.product_id,\n productDetailId: item.product_detail_id,\n sku: item.sku,\n productInfo: item.product_info,\n batchId: item.batch_id,\n batchIdRef: item.batch_id_ref,\n packingType: item.packing_type,\n packingSize: item.packing_size,\n uom: item.uom,\n packQty: item.pack_qty,\n uomValue: item.uom_value,\n totalUomValue: item.total_uom_value,\n palletQty: item.pallet_qty,\n unitPrice: item.unit_price,\n manufactureDate: item.manufacture_date,\n errorMsg: item.error_msg\n }\n })\n}\n"]}
|
|
1
|
+
{"version":3,"file":"arrival-notice-query.js","sourceRoot":"","sources":["../../../server/service/arrival-notice/arrival-notice-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { EntityManager, In, OrderByCondition, SelectQueryBuilder } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { checkUserBelongsDomain, User } from '@things-factory/auth-base'\nimport { Bizplace, getCompanyBizplace, getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { ProductDetail } from '@things-factory/product-base'\nimport { buildQuery, Domain, getRepository, ListParam } from '@things-factory/shell'\n\nimport { ArrivalNoticeList, NewArrivalNotice, RawArrivalNotice } from '../'\nimport { ATTACHMENT_TYPE, ORDER_STATUS } from '../../constants'\nimport { OrderInventory, OrderProduct } from '../../service'\nimport { ArrivalNotice } from './arrival-notice'\n\n@Resolver(ArrivalNotice)\nexport class ArrivalNoticeQuery {\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ArrivalNotice)\n async arrivalNotice(\n @Ctx() context: ResolverContext,\n @Arg('name', { nullable: true }) name?: string,\n @Arg('refNo', { nullable: true }) refNo?: string\n ): Promise<ArrivalNotice> {\n const { domain, user, bizplace }: { domain: Domain; user: User; bizplace?: Bizplace } = context.state\n\n let param: any = { domain, bizplace: bizplace ? bizplace : In(await getPermittedBizplaceIds(domain, user)) }\n\n if (name) param = { ...param, name }\n else if (refNo) param = { ...param, refNo }\n else return\n\n let foundGAN: ArrivalNotice = await getRepository(ArrivalNotice).findOne({\n where: { ...param },\n relations: [\n 'domain',\n 'bizplace',\n 'bizplace.domain',\n 'releaseGood',\n 'purchaseOrder',\n 'purchaseOrder.bufferLocation',\n 'orderProducts',\n 'orderProducts.product',\n 'orderInventories',\n 'orderInventories.inventory',\n 'orderInventories.inventory.product',\n 'orderInventories.inventory.location',\n 'orderVass',\n 'orderVass.vas',\n 'orderVass.targetProduct',\n 'supplier',\n 'creator',\n 'updater'\n ]\n })\n\n if (name && !foundGAN) throw new Error(`Failed to find arrival notice with ${name}`)\n\n if (foundGAN) {\n const foundAttachments: Attachment[] = await getRepository(Attachment).find({\n where: {\n domain: { id: domain.id },\n refBy: foundGAN?.id,\n category: ATTACHMENT_TYPE.GAN\n }\n })\n\n const foundPOAttachments: Attachment[] = foundGAN?.purchaseOrder?.id\n ? await getRepository(Attachment).find({\n where: {\n domain: { id: domain.id },\n refBy: foundGAN.purchaseOrder?.id,\n category: ATTACHMENT_TYPE.PO\n }\n })\n : []\n\n // add productDetails data to orderProduct.product\n foundGAN.orderProducts = await Promise.all(\n foundGAN.orderProducts.map(async (orderProduct: OrderProduct) => {\n orderProduct.product['productDetails'] = await getRepository(ProductDetail).find({\n where: {\n product: { id: orderProduct.product.id },\n packingType: orderProduct.packingType,\n packingSize: orderProduct.packingSize\n }\n })\n return orderProduct\n })\n )\n\n // add productDetails data to orderInventory.inventory.product if orderInventory is exist\n if (foundGAN.orderInventories && foundGAN.orderInventories.length) {\n foundGAN.orderInventories = await Promise.all(\n foundGAN.orderInventories.map(async (orderInventory: OrderInventory) => {\n orderInventory.inventory.product['productDetails'] = await getRepository(ProductDetail).find({\n where: {\n product: { id: orderInventory.inventory.product.id },\n packingType: orderInventory.inventory.packingType,\n packingSize: orderInventory.inventory.packingSize\n }\n })\n return orderInventory\n })\n )\n }\n\n return {\n ...foundGAN,\n attachment: [...foundPOAttachments, ...foundAttachments]\n }\n } else {\n return\n }\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ArrivalNoticeList)\n async arrivalNotices(\n @Ctx() context: ResolverContext,\n @Args(type => ListParam) params: ListParam\n ): Promise<ArrivalNoticeList> {\n const { domain, user } = context.state\n\n if (await checkUserBelongsDomain(domain, user)) {\n if (!params.filters.some(e => e.name === 'status') && !params.filters.some(e => e.name === 'name')) {\n params.filters.push({\n name: 'status',\n operator: 'notin',\n value: [ORDER_STATUS.PENDING, ORDER_STATUS.EDITING],\n relation: false\n })\n }\n }\n\n if (!params.filters.find((filter: any) => filter.name === 'bizplace')) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n const qb: SelectQueryBuilder<ArrivalNotice> = getRepository(ArrivalNotice).createQueryBuilder('an')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 9999)', 'rank')\n qb.leftJoinAndSelect('an.domain', 'domain')\n qb.leftJoinAndSelect('an.bizplace', 'bizplace')\n qb.leftJoinAndSelect('an.releaseGood', 'ro')\n qb.leftJoinAndSelect('an.creator', 'creator')\n qb.leftJoinAndSelect('an.updater', 'updater')\n qb.leftJoinAndSelect('an.acceptedBy', 'accepter')\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'ORDER_STATUS'`)\n },\n 'cc',\n 'cc.status = an.status'\n )\n\n const arrChildSortData = ['bizplace']\n const sort: OrderByCondition = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0 ? sort.name + '.name' : 'an.' + sort.name]: sort.desc ? 'DESC' : 'ASC'\n }),\n !params.sortings.some(e => e.name === 'status') ? { rank: 'ASC' } : {}\n )\n\n qb.orderBy(sort)\n\n const [items, total] = await qb.getManyAndCount()\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"order_warehouse\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ArrivalNoticeList)\n async arrivalNoticeRequests(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<ArrivalNoticeList> {\n try {\n const { domain, user } = context.state\n const statusFilter = params.filters.some(e => e.name === 'status')\n const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')\n\n if (!statusFilter) {\n params.filters.push({\n name: 'status',\n operator: 'notin',\n value: [ORDER_STATUS.PENDING, ORDER_STATUS.EDITING],\n relation: false\n })\n }\n\n if (!bizplaceFilter) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n const qb: SelectQueryBuilder<ArrivalNotice> = getRepository(ArrivalNotice).createQueryBuilder('an')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 9999)', 'rank')\n qb.leftJoinAndSelect('an.domain', 'domain')\n qb.leftJoinAndSelect('an.bizplace', 'bizplace')\n qb.leftJoinAndSelect('an.releaseGood', 'ro')\n qb.leftJoinAndSelect('an.creator', 'creator')\n qb.leftJoinAndSelect('an.updater', 'updater')\n qb.leftJoinAndSelect('an.acceptedBy', 'accepter')\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'ORDER_STATUS'`)\n },\n 'cc',\n 'cc.status = an.status'\n )\n\n const arrChildSortData = ['bizplace']\n const sort: OrderByCondition = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0 ? sort.name + '.name' : 'an.' + sort.name]: sort.desc\n ? 'DESC'\n : 'ASC'\n }),\n !params.sortings.some(e => e.name === 'status') ? { rank: 'ASC' } : {}\n )\n\n qb.orderBy(sort)\n\n const [items, total] = await qb.getManyAndCount()\n\n return { items, total }\n } catch (error) {\n throw error\n }\n }\n\n @Directive('@transaction')\n @Query(returns => [RawArrivalNotice])\n async validateBulkArrivalNotices(\n @Ctx() context: ResolverContext,\n @Arg('rawArrivalNotices', type => [NewArrivalNotice], { nullable: true }) rawArrivalNotices: NewArrivalNotice[],\n @Arg('bizplaceId', type => String) bizplaceId: string\n ): Promise<RawArrivalNotice[]> {\n const tx: EntityManager = context.state.tx\n return await validateBulkArrivalNoticesFunction(rawArrivalNotices, bizplaceId, tx)\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() arrivalNotice: ArrivalNotice): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: arrivalNotice.domainId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() arrivalNotice: ArrivalNotice): Promise<User> {\n return await getRepository(User).findOneBy({ id: arrivalNotice.creatorId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() arrivalNotice: ArrivalNotice): Promise<User> {\n return await getRepository(User).findOneBy({ id: arrivalNotice.updaterId })\n }\n}\n\nexport async function validateBulkArrivalNoticesFunction(\n rawArrivalNotices: NewArrivalNotice[],\n bizplaceId: string,\n trxMgr: EntityManager\n): Promise<RawArrivalNotice[]> {\n const companyBizplace: Bizplace = await getCompanyBizplace(null, null, bizplaceId)\n\n const json_oi = JSON.stringify(\n rawArrivalNotices.map(raw => {\n return {\n ref_no: raw.refNo || null,\n ref_no_2: raw.refNo2 || null,\n ref_no_3: raw.refNo3 || null,\n eta_date: raw.etaDate || null,\n truck_no: raw.truckNo || null,\n own_transport: !!raw.truckNo || false,\n loose_item: raw.looseItem || false,\n import_cargo: raw.importCargo || false,\n container: (!!raw.containerNo && !!raw.containerSize) || false,\n container_no: raw.containerNo || null,\n container_size: raw.containerSize || null,\n sku: raw.sku || null,\n batch_id: raw.batchId || null,\n batch_id_ref: raw.batchIdRef || null,\n packing_type: raw.packingType || null,\n packing_size: raw.packingSize || null,\n uom: raw.uom || null,\n pack_qty: raw.packQty || null,\n pallet_qty: raw.palletQty || null,\n unit_price: raw.unitPrice || null,\n manufacture_date: raw.manufactureDate || null\n }\n })\n )\n\n await trxMgr.query(\n `\n CREATE TEMP TABLE raw_arrival_notices(\n ref_no VARCHAR(150),\n ref_no_2 VARCHAR(150),\n ref_no_3 VARCHAR(150),\n eta_date VARCHAR(24),\n truck_no VARCHAR(10),\n own_transport BOOLEAN,\n container BOOLEAN,\n container_no VARCHAR(50),\n container_size VARCHAR(24),\n import_cargo BOOLEAN,\n loose_item BOOLEAN,\n sku VARCHAR(150),\n batch_id VARCHAR(100),\n batch_id_ref VARCHAR(100),\n packing_type VARCHAR(50),\n packing_size INT,\n uom VARCHAR(10),\n pack_qty INT,\n pallet_qty INT,\n unit_price FLOAT8,\n manufacture_date DATE\n );\n `\n )\n\n await trxMgr.query(\n `\n CREATE TEMP TABLE temp_gan AS (\n SELECT an.name, an.ref_no, an.ref_no_2, an.ref_no_3, an.eta_date, an.truck_no, an.own_transport, an.container, an.container_no, an.container_size, an.import_cargo, an.loose_item\n FROM arrival_notices an\n WHERE EXISTS (\n SELECT raw.* FROM\n JSON_POPULATE_RECORDSET(NULL:: arrival_notices, $1) raw\n WHERE raw.ref_no = an.ref_no \n AND raw.ref_no_2 = an.ref_no_2\n AND raw.ref_no_3 = an.ref_no_3\n AND raw.eta_date::date = an.eta_date::date\n AND raw.truck_no = an.truck_no\n AND raw.own_transport = an.own_transport\n AND raw.container = an.container\n AND raw.container_no = an.container_no\n AND raw.container_size = an.container_size\n AND raw.loose_item = an.loose_item\n AND raw.import_cargo = an.import_cargo\t\t\t\n )\n )\n `,\n [json_oi]\n )\n\n await trxMgr.query(\n `\n INSERT INTO raw_arrival_notices \n SELECT \n js.ref_no, js.ref_no_2, js.ref_no_3, js.eta_date, js.truck_no, js.own_transport, js.container,\n js.container_no, js.container_size, js.import_cargo, js.loose_item, js.sku, js.batch_id,\n js.batch_id_ref, js.packing_type, js.packing_size, js.uom, js.pack_qty, js.pallet_qty,\n js.unit_price, js.manufacture_date\n FROM \n JSON_POPULATE_RECORDSET(NULL:: raw_arrival_notices, $1) js;\n `,\n [json_oi]\n )\n\n const insertResult: any[] = await trxMgr.query(`\n SELECT * from raw_arrival_notices\n `)\n\n let validatedItems = await trxMgr.query(\n `\n WITH foo AS (\n\t SELECT \n\t \tan.name AS gan_name,\n\t \tan.ref_no AS gan_ref_no,\n\t raw.ref_no, \n\t raw.ref_no_2, \n\t raw.ref_no_3, \n\t raw.eta_date, \n\t raw.truck_no, \n\t raw.own_transport, \n\t raw.container, \n\t raw.container_no, \n\t raw.container_size, \n\t raw.import_cargo, \n\t raw.loose_item, \n\t pr.id AS product_id, \n\t pd.id AS product_detail_id, \n\t raw.sku AS sku, \n\t CASE WHEN pr.description NOT IN (NULL, '', '-') THEN CONCAT(pr.name, '(', pr.description, ')') ELSE pr.name END AS product_info, \n\t raw.batch_id,\n\t raw.batch_id_ref,\n\t pd.packing_type, \n\t pd.packing_size, \n\t sum(raw.pack_qty) AS pack_qty, \n\t sum(pd.uom_value) AS uom_value,\n\t pd.uom, \n\t sum(raw.pallet_qty) AS pallet_qty, \n\t raw.unit_price, \n\t raw.manufacture_date\n\t FROM \n\t raw_arrival_notices raw \n\t LEFT JOIN temp_gan an ON raw.ref_no = an.ref_no \n\t AND raw.ref_no_2 = an.ref_no_2\n\t AND raw.ref_no_3 = an.ref_no_3\n\t AND raw.eta_date::date = an.eta_date::date\n\t AND raw.truck_no = an.truck_no\n\t AND raw.own_transport = an.own_transport\n\t AND raw.container = an.container\n\t AND raw.container_no = an.container_no\n\t AND raw.container_size = an.container_size\n\t AND raw.loose_item = an.loose_item\n\t AND raw.import_cargo = an.import_cargo \n\t LEFT JOIN products pr ON LOWER(pr.sku) = LOWER(raw.sku)\n\t LEFT JOIN product_details pd ON pr.id = pd.product_id\n\t AND CASE WHEN raw.packing_type NOTNULL AND raw.packing_size NOTNULL AND raw.uom NOTNULL\n\t THEN pd.packing_type = raw.packing_type AND pd.packing_size = raw.packing_size AND pd.uom = raw.uom \n\t WHEN raw.packing_type NOTNULL AND raw.packing_size NOTNULL AND raw.uom ISNULL\n\t THEN pd.packing_type = raw.packing_type AND pd.packing_size = raw.packing_size AND pd.is_default IS TRUE\n\t WHEN raw.packing_type ISNULL AND raw.packing_size ISNULL AND raw.uom NOTNULL\n\t THEN pd.uom = raw.uom AND pd.is_default IS TRUE ELSE pd.is_default IS TRUE\n\t END\n WHERE pr.bizplace_id = $1\n\t GROUP BY raw.ref_no, raw.ref_no_2, raw.ref_no_3, raw.eta_date, raw.truck_no, raw.own_transport, raw.container, raw.container_no, raw.container_size, raw.import_cargo, raw.loose_item,\n\t pr.id, pd.id, raw.sku, pr.name, pr.description, raw.batch_id, raw.batch_id_ref, raw.packing_type, raw.packing_size, raw.uom, raw.unit_price, raw.manufacture_date, an.ref_no, an.name\n ) SELECT foo.*, \n\t CONCAT(COALESCE(ROUND(foo.uom_value:: numeric, 2), 0) * COALESCE(foo.pack_qty, 0), ' ', foo.uom) AS total_uom_value,\n CASE WHEN foo.gan_ref_no NOTNULL THEN concat('order duplicated with ', foo.gan_name)\n WHEN foo.manufacture_date > current_date THEN 'invalid manufacture date'\n WHEN foo.product_id ISNULL OR foo.product_detail_id ISNULL OR foo.sku ISNULL THEN 'product not found'\n WHEN foo.pack_qty ISNULL OR foo.pack_qty <= 0 THEN 'invalid pack qty'\n WHEN foo.batch_id ISNULL THEN 'batch no. is required'\n WHEN foo.ref_no ISNULL OR foo.ref_no = '' THEN 'ref no. is required'\n WHEN foo.eta_date ISNULL THEN 'eta date is required'\n WHEN foo.container_no NOTNULL AND foo.container_size ISNULL OR foo.container_no ISNULL AND foo.container_size NOTNULL THEN 'incomplete container information'\n WHEN foo.unit_price < 0 THEN 'invalid unit price'\n WHEN foo.pallet_qty < 0 THEN 'invalid pallet qty'\n ELSE '' END AS error_msg\n FROM foo\n ORDER BY foo.ref_no, foo.ref_no_2, foo.ref_no_3, foo.sku\n `,\n [companyBizplace.id]\n )\n\n await trxMgr.query('DROP TABLE raw_arrival_notices, temp_gan')\n\n return validatedItems.map(item => {\n return {\n refNo: item.ref_no,\n refNo2: item.ref_no_2,\n refNo3: item.ref_no_3,\n etaDate: item.eta_date,\n truckNo: item.truck_no,\n ownTransport: !!item.own_transport,\n container: item.container,\n containerNo: item.container_no,\n containerSize: item.container_size,\n importCargo: !!item.import_cargo,\n looseItem: !!item.loose_item,\n productId: item.product_id,\n productDetailId: item.product_detail_id,\n sku: item.sku,\n productInfo: item.product_info,\n batchId: item.batch_id,\n batchIdRef: item.batch_id_ref,\n packingType: item.packing_type,\n packingSize: item.packing_size,\n uom: item.uom,\n packQty: item.pack_qty,\n uomValue: item.uom_value,\n totalUomValue: item.total_uom_value,\n palletQty: item.pallet_qty,\n unitPrice: item.unit_price,\n manufactureDate: item.manufacture_date,\n errorMsg: item.error_msg\n }\n })\n}\n"]}
|
|
@@ -443,7 +443,7 @@ exports.DeliveryOrderQuery = DeliveryOrderQuery;
|
|
|
443
443
|
tslib_1.__decorate([
|
|
444
444
|
(0, type_graphql_1.Query)(returns => delivery_order_types_1.DeliveryOrderList),
|
|
445
445
|
tslib_1.__param(0, (0, type_graphql_1.Ctx)()),
|
|
446
|
-
tslib_1.__param(1, (0, type_graphql_1.Args)()),
|
|
446
|
+
tslib_1.__param(1, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
447
447
|
tslib_1.__metadata("design:type", Function),
|
|
448
448
|
tslib_1.__metadata("design:paramtypes", [Object, shell_1.ListParam]),
|
|
449
449
|
tslib_1.__metadata("design:returntype", Promise)
|
|
@@ -493,7 +493,7 @@ tslib_1.__decorate([
|
|
|
493
493
|
tslib_1.__decorate([
|
|
494
494
|
(0, type_graphql_1.Query)(returns => delivery_order_types_1.DeliveryOrderList),
|
|
495
495
|
tslib_1.__param(0, (0, type_graphql_1.Ctx)()),
|
|
496
|
-
tslib_1.__param(1, (0, type_graphql_1.Args)()),
|
|
496
|
+
tslib_1.__param(1, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
497
497
|
tslib_1.__metadata("design:type", Function),
|
|
498
498
|
tslib_1.__metadata("design:paramtypes", [Object, shell_1.ListParam]),
|
|
499
499
|
tslib_1.__metadata("design:returntype", Promise)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-order-query.js","sourceRoot":"","sources":["../../../server/service/delivery-order/delivery-order-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { EntityManager, In, Not, OrderByCondition, Repository } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { Product } from '@things-factory/product-base'\nimport {\n buildQuery,\n convertListParams,\n Domain,\n Filter,\n getRepository,\n ListParam,\n Pagination,\n Sorting\n} from '@things-factory/shell'\nimport { Inventory } from '@things-factory/warehouse-base'\n\nimport { ORDER_STATUS } from '../../constants'\nimport { OrderInventory } from '../order-inventory/order-inventory'\nimport { OrderInventoryList } from '../order-inventory/order-inventory-types'\nimport { ReleaseGood } from '../release-good/release-good'\nimport { DeliveryOrder } from './delivery-order'\nimport { DeliveryOrderList } from './delivery-order-types'\n\nconst debug = require('debug')('things-factory:sales-base:delivery-orders')\n\n@Resolver(DeliveryOrder)\nexport class DeliveryOrderQuery {\n @Query(returns => DeliveryOrderList)\n async deliveryOrders(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<DeliveryOrderList> {\n try {\n const { domain, user, tx } = context.state\n\n const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')\n if (!bizplaceFilter) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n const releaseGoodParam = params.filters.find(param => param.name === 'releaseGoodNo')\n if (releaseGoodParam) {\n let arrFilters = []\n params.filters.splice(\n params.filters.findIndex(item => item.name == 'releaseGoodNo'),\n 1\n )\n arrFilters.push({ ...releaseGoodParam, name: 'name' })\n\n const foundReleaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({\n ...convertListParams(\n { filters: arrFilters },\n {\n searchables: ['name', 'releaseGoodNo', 'truckNo']\n }\n )\n })\n\n if (foundReleaseGoods && foundReleaseGoods.length) {\n params.filters.push({\n name: 'releaseGoodId',\n operator: 'in',\n value: foundReleaseGoods.map((releaseGood: ReleaseGood) => releaseGood.id),\n relation: false\n })\n }\n }\n\n const tzOffsetIdx = params.filters.findIndex(param => param.name === 'tzoffset')\n let tzOffset = 0\n if (tzOffsetIdx >= 0) {\n tzOffset = params.filters[tzOffsetIdx].value\n params.filters.splice(tzOffsetIdx, 1)\n }\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n let refNoFilter = params.filters.find(x => x.name == 'refNo')\n let refNo2Filter = params.filters.find(x => x.name == 'refNo2')\n let refNo3Filter = params.filters.find(x => x.name == 'refNo3')\n let orderProductsApiFilter = params.filters.find(x => x.name == 'orderProductsApi')\n\n params.filters = params.filters.filter(\n x => x.name != 'refNo' && x.name != 'refNo2' && x.name != 'refNo3' && x.name != 'orderProductsApi'\n )\n\n const qb: any = getRepository(DeliveryOrder).createQueryBuilder('do')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 99999)', 'rank')\n qb.leftJoinAndSelect('do.bizplace', 'bizplace')\n qb.leftJoinAndSelect('do.releaseGood', 'releaseGood')\n qb.leftJoinAndSelect('do.transportDriver', 'td')\n qb.leftJoinAndSelect('do.transportVehicle', 'th')\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'DELIVERY_STATUS'`)\n },\n 'cc',\n 'cc.status = do.status'\n )\n\n // was add specifically for API usage, do we really need\n // orderProducts over orderInventories? else we should remove this\n if (orderProductsApiFilter?.value) {\n qb.innerJoinAndSelect('releaseGood.orderProducts', 'orderProducts')\n }\n\n if (refNoFilter?.value) {\n qb.andWhere('releaseGood.ref_no ilike :refNo', { refNo: refNoFilter.value })\n }\n if (refNo2Filter?.value) {\n qb.andWhere('releaseGood.ref_no_2 ilike :refNo2', { refNo2: refNo2Filter.value })\n }\n if (refNo3Filter?.value) {\n qb.andWhere('releaseGood.ref_no_3 ilike :refNo3', { refNo3: refNo3Filter.value })\n }\n\n const arrChildSortData = ['refNo', 'refNo2', 'refNo3']\n const arrNameSortData = ['bizplace', 'releaseGood', 'updater']\n const sort: OrderByCondition = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0\n ? 'releaseGood.' + sort.name\n : arrNameSortData.indexOf(sort.name) >= 0\n ? sort.name + '.name'\n : 'do.' + sort.name]: sort.desc ? 'DESC' : 'ASC'\n }),\n params.sortings.length < 1 ? { rank: 'ASC', 'do.createdAt': 'DESC' } : {}\n )\n\n qb.orderBy(sort)\n\n let [items, total] = await qb.getManyAndCount()\n if (orderProductsApiFilter?.value) {\n items = await Promise.all(\n items.map(async itm => {\n const qb: any = getRepository(OrderInventory).createQueryBuilder('OrderInventory')\n\n let orderInventories: any[] = await qb\n .leftJoinAndSelect('OrderInventory.product', 'Product')\n .leftJoinAndSelect('OrderInventory.orderToteItems', 'OrderToteItems')\n .leftJoinAndSelect('OrderToteItems.orderTote', 'OrderTote')\n .leftJoinAndSelect('OrderTote.orderToteSeals', 'OrderToteSeals')\n .where('OrderInventory.delivery_order_id = :deliveryOrderId', { deliveryOrderId: itm.id })\n .andWhere('OrderInventory.domain_id = :domainId', { domainId: domain.id })\n .getMany()\n\n return {\n ...itm,\n orderInventories\n }\n })\n )\n }\n\n return { items, total }\n } catch (error) {\n debug('deliveryOrders', error.toString())\n throw error\n }\n }\n\n @Query(returns => DeliveryOrder)\n async deliveryOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<DeliveryOrder> {\n const { domain } = context.state\n\n const foundDO = await getRepository(DeliveryOrder).findOne({\n where: {\n domain: { id: domain.id },\n name\n },\n relations: ['domain', 'bizplace', 'transportDriver', 'transportVehicle', 'releaseGood', 'creator', 'updater']\n })\n\n let foundAttachments = []\n if (foundDO) {\n foundAttachments = await getRepository(Attachment).find({\n where: {\n domain: { id: domain.id },\n refBy: foundDO.id\n }\n })\n }\n\n return { ...foundDO, attachments: foundAttachments }\n }\n\n @Query(returns => DeliveryOrderList)\n async deliveryOrderRequests(\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<DeliveryOrderList> {\n const { domain, user } = context.state\n\n const convertedParams = convertListParams({ filters, pagination, sortings })\n\n if (!convertedParams.where || !convertedParams.where.status) {\n convertedParams.where.status = Not(In([ORDER_STATUS.PENDING, ORDER_STATUS.EDITING]))\n }\n\n ;(convertedParams as any).bizplace = In(await getPermittedBizplaceIds(domain, user))\n\n const [items, total] = await getRepository(DeliveryOrder).findAndCount({\n ...convertedParams,\n relations: ['domain', 'bizplace', 'releaseGood', 'transportDriver', 'transportVehicle', 'creator', 'updater']\n })\n\n return { items, total }\n }\n\n @Query(returns => DeliveryOrderList)\n async deliveryOrderByReleaseGood(\n @Arg('releaseGoodNo') releaseGoodNo: string,\n @Ctx() context: ResolverContext\n ): Promise<DeliveryOrderList> {\n const releaseGood: ReleaseGood = await getRepository(ReleaseGood).findOne({\n where: { name: releaseGoodNo }\n })\n\n return await deliveryOrderByReleaseGood(releaseGood)\n }\n\n @Query(returns => OrderInventoryList)\n async deliveryOrderItems(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<OrderInventoryList> {\n const { domain } = context.state\n const deliveryOrder: DeliveryOrder = await getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n let [items, total] = await getRepository(OrderInventory).findAndCount({\n where: { domain: { id: domain.id }, deliveryOrder: { id: deliveryOrder.id } },\n relations: ['inventory', 'inventory.product', 'inventory.reusablePallet']\n })\n\n items = items\n .map((oi: OrderInventory) => {\n const inventory: Inventory = oi.inventory\n const product: Product = inventory.product\n return {\n inventory: inventory,\n productName: `${product.name} (${product.description})`,\n packingType: inventory.packingType,\n batchId: inventory.batchId,\n releaseQty: oi.releaseQty,\n releaseUomValue: oi.releaseUomValue,\n remark: oi.remark,\n crossDocking: oi.crossDocking,\n pallet: inventory?.reusablePallet && inventory?.reusablePallet?.name ? inventory.reusablePallet.name : ''\n }\n })\n .reduce((newItem, item) => {\n var foundItem = newItem.find(\n newItem =>\n newItem.productName === item.productName &&\n newItem.batchId === item.batchId &&\n newItem.crossDocking === item.crossDocking &&\n newItem.pallet === item.pallet\n )\n if (!foundItem) {\n foundItem = {\n inventory: item.inventory,\n productName: item.productName,\n packingType: item.packingType,\n batchId: item.batchId,\n releaseQty: item.releaseQty,\n releaseUomValue: item.releaseUomValue,\n palletQty: 1,\n remark: item.remark,\n crossDocking: item.crossDocking,\n pallet: item.pallet\n }\n\n newItem.push(foundItem)\n return newItem\n } else {\n return newItem.map(ni => {\n if (\n ni.productName === item.productName &&\n ni.batchId === item.batchId &&\n ni.crossDocking === item.crossDocking &&\n ni.pallet === item.pallet\n ) {\n return {\n ...ni,\n palletQty: ni.palletQty + 1,\n releaseQty: ni.releaseQty + item.releaseQty,\n releaseUomValue: ni.releaseUomValue + item.releaseUomValue\n }\n } else {\n return ni\n }\n })\n }\n }, [])\n\n items = items.map((prod: any) => {\n return {\n ...prod,\n systemRemark: prod?.remark\n ? prod.remark\n : prod.crossDocking\n ? prod.pallet === ''\n ? `${prod.palletQty} PALLET(S) [C/D]`\n : `${prod.palletQty} PALLET(S) (${prod.pallet}) [C/D]`\n : prod.pallet === ''\n ? `${prod.palletQty} PALLET(S)`\n : `${prod.palletQty} PALLET(S) (${prod.pallet})`\n }\n })\n\n return { items, total }\n }\n\n @Query(returns => OrderInventoryList)\n async manualDeliveryOrderItems(\n @Arg('name') name: string,\n @Ctx() context: ResolverContext\n ): Promise<OrderInventoryList> {\n const { domain } = context.state\n const deliveryOrder: DeliveryOrder = await getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n let [items, total] = await getRepository(OrderInventory).findAndCount({\n where: { domain: { id: domain.id }, deliveryOrder: { id: deliveryOrder.id } },\n relations: ['product']\n })\n\n items = items\n .map((oi: OrderInventory) => {\n const product: Product = oi.product\n return {\n inventory: oi.inventory,\n productId: product.id,\n productName: `${product.name} (${product.description})`,\n packingType: oi.packingType,\n batchId: oi.batchId,\n releaseQty: oi.releaseQty,\n releaseUomValue: oi.releaseUomValue,\n remark: oi.remark,\n crossDocking: oi.crossDocking,\n pallet: ''\n }\n })\n .reduce((newItem, item) => {\n var foundItem = newItem.find(\n newItem =>\n newItem.productName === item.productName &&\n newItem.batchId === item.batchId &&\n newItem.crossDocking === item.crossDocking &&\n newItem.pallet === item.pallet\n )\n if (!foundItem) {\n foundItem = {\n inventory: item.inventory,\n productId: item.productId,\n productName: item.productName,\n packingType: item.packingType,\n batchId: item.batchId,\n releaseQty: item.releaseQty,\n releaseUomValue: item.releaseUomValue,\n palletQty: 1,\n remark: item.remark,\n crossDocking: item.crossDocking,\n pallet: item.pallet\n }\n\n newItem.push(foundItem)\n return newItem\n } else {\n return newItem.map(ni => {\n if (\n ni.productName === item.productName &&\n ni.batchId === item.batchId &&\n ni.crossDocking === item.crossDocking &&\n ni.pallet === item.pallet\n ) {\n return {\n ...ni,\n palletQty: ni.palletQty + 1,\n releaseQty: ni.releaseQty + item.releaseQty,\n releaseUomValue: ni.releaseUomValue + item.releaseUomValue\n }\n } else {\n return ni\n }\n })\n }\n }, [])\n\n items = items.map((prod: any) => {\n return {\n ...prod,\n systemRemark: prod?.remark\n ? prod.remark\n : prod.crossDocking\n ? prod.pallet === ''\n ? `${prod.palletQty} PALLET(S) [C/D]`\n : `${prod.palletQty} PALLET(S) (${prod.pallet}) [C/D]`\n : prod.pallet === ''\n ? `${prod.palletQty} PALLET(S)`\n : `${prod.palletQty} PALLET(S) (${prod.pallet})`\n }\n })\n\n return { items, total }\n }\n\n @Query(returns => DeliveryOrderList)\n async deliveryOrderReport(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<DeliveryOrderList> {\n try {\n const { domain, user } = context.state\n\n const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')\n if (!bizplaceFilter) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n const releaseGoodParam = params.filters.find(param => param.name === 'releaseGoodNo')\n if (releaseGoodParam) {\n let arrFilters = [] \n params.filters.splice(\n params.filters.findIndex(item => item.name == 'releaseGoodNo'),\n 1\n )\n arrFilters.push({ ...releaseGoodParam, name: 'name' })\n\n const foundReleaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({\n ...convertListParams({ filters: arrFilters })\n })\n\n if (foundReleaseGoods && foundReleaseGoods.length) {\n params.filters.push({\n name: 'releaseGoodId',\n operator: 'in',\n value: foundReleaseGoods.map((releaseGood: ReleaseGood) => releaseGood.id),\n relation: false\n })\n }\n }\n\n const tzOffsetIdx = params.filters.findIndex(param => param.name === 'tzoffset')\n let tzOffset = 0\n if (tzOffsetIdx >= 0) {\n tzOffset = params.filters[tzOffsetIdx].value\n params.filters.splice(tzOffsetIdx, 1)\n }\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n let refNoFilter = params.filters.find(x => x.name == 'refNo')\n let refNo2Filter = params.filters.find(x => x.name == 'refNo2')\n let refNo3Filter = params.filters.find(x => x.name == 'refNo3')\n\n params.filters = params.filters.filter(x => x.name != 'refNo' && x.name != 'refNo2' && x.name != 'refNo3')\n\n const qb: any = getRepository(DeliveryOrder).createQueryBuilder('do')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 99999)', 'rank')\n qb.leftJoinAndSelect('do.domain', 'domain')\n qb.leftJoinAndSelect('do.bizplace', 'bizplace')\n qb.leftJoinAndSelect('do.releaseGood', 'releaseGood')\n qb.leftJoinAndSelect('do.transportDriver', 'td')\n qb.leftJoinAndSelect('do.transportVehicle', 'th')\n qb.leftJoinAndSelect('do.orderInventories', 'oi')\n qb.leftJoinAndSelect('oi.inventory', 'inv')\n qb.leftJoinAndSelect('inv.product', 'prd')\n qb.leftJoinAndSelect('do.creator', 'creator')\n qb.leftJoinAndSelect('do.updater', 'updater')\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'DELIVERY_STATUS'`)\n },\n 'cc',\n 'cc.status = do.status'\n )\n\n if (refNoFilter?.value) {\n qb.andWhere('releaseGood.ref_no ilike :refNo', { refNo: refNoFilter.value })\n }\n if (refNo2Filter?.value) {\n qb.andWhere('releaseGood.ref_no_2 ilike :refNo2', { refNo2: refNo2Filter.value })\n }\n if (refNo3Filter?.value) {\n qb.andWhere('releaseGood.ref_no_3 ilike :refNo3', { refNo3: refNo3Filter.value })\n }\n\n const arrChildSortData = ['refNo', 'refNo2', 'refNo3']\n const arrNameSortData = ['bizplace', 'releaseGood', 'updater']\n const sort: OrderByCondition = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0\n ? 'releaseGood.' + sort.name\n : arrNameSortData.indexOf(sort.name) >= 0\n ? sort.name + '.name'\n : 'do.' + sort.name]: sort.desc ? 'DESC' : 'ASC'\n }),\n params.sortings.length < 1 ? { rank: 'ASC', 'do.createdAt': 'DESC' } : {}\n )\n\n qb.orderBy(sort)\n\n const [items, total] = await qb.getManyAndCount()\n return { items, total }\n } catch (error) {\n debug('deliveryOrders', error.toString())\n throw error\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() deliveryOrder: DeliveryOrder): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: deliveryOrder.domainId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() deliveryOrder: DeliveryOrder): Promise<User> {\n return await getRepository(User).findOneBy({ id: deliveryOrder.creatorId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() deliveryOrder: DeliveryOrder): Promise<User> {\n return await getRepository(User).findOneBy({ id: deliveryOrder.updaterId })\n }\n}\n\nexport async function deliveryOrderByReleaseGood(releaseGood: ReleaseGood, trxMgr?: EntityManager): Promise<any> {\n const doRepo: Repository<DeliveryOrder> = trxMgr?.getRepository(DeliveryOrder) || getRepository(DeliveryOrder)\n const oiRepo: Repository<OrderInventory> = trxMgr?.getRepository(OrderInventory) || getRepository(OrderInventory)\n\n let [items, total] = await doRepo.findAndCount({\n where: { releaseGood: { id: releaseGood.id } },\n relations: ['domain', 'bizplace', 'releaseGood', 'transportDriver', 'transportVehicle', 'creator', 'updater']\n })\n\n items = await Promise.all(\n items.map(async (deliveryOrder: DeliveryOrder) => {\n return {\n ...deliveryOrder,\n truck: deliveryOrder?.truckNo || deliveryOrder.transportVehicle?.name || null,\n targetInventories: await oiRepo.find({\n where: { deliveryOrder: { id: deliveryOrder.id } },\n relations: ['domain', 'bizplace', 'releaseGood', 'inventory']\n })\n }\n })\n )\n\n return {\n items,\n total\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"delivery-order-query.js","sourceRoot":"","sources":["../../../server/service/delivery-order/delivery-order-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { EntityManager, In, Not, OrderByCondition, Repository } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { Product } from '@things-factory/product-base'\nimport {\n buildQuery,\n convertListParams,\n Domain,\n Filter,\n getRepository,\n ListParam,\n Pagination,\n Sorting\n} from '@things-factory/shell'\nimport { Inventory } from '@things-factory/warehouse-base'\n\nimport { ORDER_STATUS } from '../../constants'\nimport { OrderInventory } from '../order-inventory/order-inventory'\nimport { OrderInventoryList } from '../order-inventory/order-inventory-types'\nimport { ReleaseGood } from '../release-good/release-good'\nimport { DeliveryOrder } from './delivery-order'\nimport { DeliveryOrderList } from './delivery-order-types'\n\nconst debug = require('debug')('things-factory:sales-base:delivery-orders')\n\n@Resolver(DeliveryOrder)\nexport class DeliveryOrderQuery {\n @Query(returns => DeliveryOrderList)\n async deliveryOrders(\n @Ctx() context: ResolverContext,\n @Args(type => ListParam) params: ListParam\n ): Promise<DeliveryOrderList> {\n try {\n const { domain, user, tx } = context.state\n\n const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')\n if (!bizplaceFilter) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n const releaseGoodParam = params.filters.find(param => param.name === 'releaseGoodNo')\n if (releaseGoodParam) {\n let arrFilters = []\n params.filters.splice(\n params.filters.findIndex(item => item.name == 'releaseGoodNo'),\n 1\n )\n arrFilters.push({ ...releaseGoodParam, name: 'name' })\n\n const foundReleaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({\n ...convertListParams(\n { filters: arrFilters },\n {\n searchables: ['name', 'releaseGoodNo', 'truckNo']\n }\n )\n })\n\n if (foundReleaseGoods && foundReleaseGoods.length) {\n params.filters.push({\n name: 'releaseGoodId',\n operator: 'in',\n value: foundReleaseGoods.map((releaseGood: ReleaseGood) => releaseGood.id),\n relation: false\n })\n }\n }\n\n const tzOffsetIdx = params.filters.findIndex(param => param.name === 'tzoffset')\n let tzOffset = 0\n if (tzOffsetIdx >= 0) {\n tzOffset = params.filters[tzOffsetIdx].value\n params.filters.splice(tzOffsetIdx, 1)\n }\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n let refNoFilter = params.filters.find(x => x.name == 'refNo')\n let refNo2Filter = params.filters.find(x => x.name == 'refNo2')\n let refNo3Filter = params.filters.find(x => x.name == 'refNo3')\n let orderProductsApiFilter = params.filters.find(x => x.name == 'orderProductsApi')\n\n params.filters = params.filters.filter(\n x => x.name != 'refNo' && x.name != 'refNo2' && x.name != 'refNo3' && x.name != 'orderProductsApi'\n )\n\n const qb: any = getRepository(DeliveryOrder).createQueryBuilder('do')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 99999)', 'rank')\n qb.leftJoinAndSelect('do.bizplace', 'bizplace')\n qb.leftJoinAndSelect('do.releaseGood', 'releaseGood')\n qb.leftJoinAndSelect('do.transportDriver', 'td')\n qb.leftJoinAndSelect('do.transportVehicle', 'th')\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'DELIVERY_STATUS'`)\n },\n 'cc',\n 'cc.status = do.status'\n )\n\n // was add specifically for API usage, do we really need\n // orderProducts over orderInventories? else we should remove this\n if (orderProductsApiFilter?.value) {\n qb.innerJoinAndSelect('releaseGood.orderProducts', 'orderProducts')\n }\n\n if (refNoFilter?.value) {\n qb.andWhere('releaseGood.ref_no ilike :refNo', { refNo: refNoFilter.value })\n }\n if (refNo2Filter?.value) {\n qb.andWhere('releaseGood.ref_no_2 ilike :refNo2', { refNo2: refNo2Filter.value })\n }\n if (refNo3Filter?.value) {\n qb.andWhere('releaseGood.ref_no_3 ilike :refNo3', { refNo3: refNo3Filter.value })\n }\n\n const arrChildSortData = ['refNo', 'refNo2', 'refNo3']\n const arrNameSortData = ['bizplace', 'releaseGood', 'updater']\n const sort: OrderByCondition = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0\n ? 'releaseGood.' + sort.name\n : arrNameSortData.indexOf(sort.name) >= 0\n ? sort.name + '.name'\n : 'do.' + sort.name]: sort.desc ? 'DESC' : 'ASC'\n }),\n params.sortings.length < 1 ? { rank: 'ASC', 'do.createdAt': 'DESC' } : {}\n )\n\n qb.orderBy(sort)\n\n let [items, total] = await qb.getManyAndCount()\n if (orderProductsApiFilter?.value) {\n items = await Promise.all(\n items.map(async itm => {\n const qb: any = getRepository(OrderInventory).createQueryBuilder('OrderInventory')\n\n let orderInventories: any[] = await qb\n .leftJoinAndSelect('OrderInventory.product', 'Product')\n .leftJoinAndSelect('OrderInventory.orderToteItems', 'OrderToteItems')\n .leftJoinAndSelect('OrderToteItems.orderTote', 'OrderTote')\n .leftJoinAndSelect('OrderTote.orderToteSeals', 'OrderToteSeals')\n .where('OrderInventory.delivery_order_id = :deliveryOrderId', { deliveryOrderId: itm.id })\n .andWhere('OrderInventory.domain_id = :domainId', { domainId: domain.id })\n .getMany()\n\n return {\n ...itm,\n orderInventories\n }\n })\n )\n }\n\n return { items, total }\n } catch (error) {\n debug('deliveryOrders', error.toString())\n throw error\n }\n }\n\n @Query(returns => DeliveryOrder)\n async deliveryOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<DeliveryOrder> {\n const { domain } = context.state\n\n const foundDO = await getRepository(DeliveryOrder).findOne({\n where: {\n domain: { id: domain.id },\n name\n },\n relations: ['domain', 'bizplace', 'transportDriver', 'transportVehicle', 'releaseGood', 'creator', 'updater']\n })\n\n let foundAttachments = []\n if (foundDO) {\n foundAttachments = await getRepository(Attachment).find({\n where: {\n domain: { id: domain.id },\n refBy: foundDO.id\n }\n })\n }\n\n return { ...foundDO, attachments: foundAttachments }\n }\n\n @Query(returns => DeliveryOrderList)\n async deliveryOrderRequests(\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<DeliveryOrderList> {\n const { domain, user } = context.state\n\n const convertedParams = convertListParams({ filters, pagination, sortings })\n\n if (!convertedParams.where || !convertedParams.where.status) {\n convertedParams.where.status = Not(In([ORDER_STATUS.PENDING, ORDER_STATUS.EDITING]))\n }\n\n ;(convertedParams as any).bizplace = In(await getPermittedBizplaceIds(domain, user))\n\n const [items, total] = await getRepository(DeliveryOrder).findAndCount({\n ...convertedParams,\n relations: ['domain', 'bizplace', 'releaseGood', 'transportDriver', 'transportVehicle', 'creator', 'updater']\n })\n\n return { items, total }\n }\n\n @Query(returns => DeliveryOrderList)\n async deliveryOrderByReleaseGood(\n @Arg('releaseGoodNo') releaseGoodNo: string,\n @Ctx() context: ResolverContext\n ): Promise<DeliveryOrderList> {\n const releaseGood: ReleaseGood = await getRepository(ReleaseGood).findOne({\n where: { name: releaseGoodNo }\n })\n\n return await deliveryOrderByReleaseGood(releaseGood)\n }\n\n @Query(returns => OrderInventoryList)\n async deliveryOrderItems(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<OrderInventoryList> {\n const { domain } = context.state\n const deliveryOrder: DeliveryOrder = await getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n let [items, total] = await getRepository(OrderInventory).findAndCount({\n where: { domain: { id: domain.id }, deliveryOrder: { id: deliveryOrder.id } },\n relations: ['inventory', 'inventory.product', 'inventory.reusablePallet']\n })\n\n items = items\n .map((oi: OrderInventory) => {\n const inventory: Inventory = oi.inventory\n const product: Product = inventory.product\n return {\n inventory: inventory,\n productName: `${product.name} (${product.description})`,\n packingType: inventory.packingType,\n batchId: inventory.batchId,\n releaseQty: oi.releaseQty,\n releaseUomValue: oi.releaseUomValue,\n remark: oi.remark,\n crossDocking: oi.crossDocking,\n pallet: inventory?.reusablePallet && inventory?.reusablePallet?.name ? inventory.reusablePallet.name : ''\n }\n })\n .reduce((newItem, item) => {\n var foundItem = newItem.find(\n newItem =>\n newItem.productName === item.productName &&\n newItem.batchId === item.batchId &&\n newItem.crossDocking === item.crossDocking &&\n newItem.pallet === item.pallet\n )\n if (!foundItem) {\n foundItem = {\n inventory: item.inventory,\n productName: item.productName,\n packingType: item.packingType,\n batchId: item.batchId,\n releaseQty: item.releaseQty,\n releaseUomValue: item.releaseUomValue,\n palletQty: 1,\n remark: item.remark,\n crossDocking: item.crossDocking,\n pallet: item.pallet\n }\n\n newItem.push(foundItem)\n return newItem\n } else {\n return newItem.map(ni => {\n if (\n ni.productName === item.productName &&\n ni.batchId === item.batchId &&\n ni.crossDocking === item.crossDocking &&\n ni.pallet === item.pallet\n ) {\n return {\n ...ni,\n palletQty: ni.palletQty + 1,\n releaseQty: ni.releaseQty + item.releaseQty,\n releaseUomValue: ni.releaseUomValue + item.releaseUomValue\n }\n } else {\n return ni\n }\n })\n }\n }, [])\n\n items = items.map((prod: any) => {\n return {\n ...prod,\n systemRemark: prod?.remark\n ? prod.remark\n : prod.crossDocking\n ? prod.pallet === ''\n ? `${prod.palletQty} PALLET(S) [C/D]`\n : `${prod.palletQty} PALLET(S) (${prod.pallet}) [C/D]`\n : prod.pallet === ''\n ? `${prod.palletQty} PALLET(S)`\n : `${prod.palletQty} PALLET(S) (${prod.pallet})`\n }\n })\n\n return { items, total }\n }\n\n @Query(returns => OrderInventoryList)\n async manualDeliveryOrderItems(\n @Arg('name') name: string,\n @Ctx() context: ResolverContext\n ): Promise<OrderInventoryList> {\n const { domain } = context.state\n const deliveryOrder: DeliveryOrder = await getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n let [items, total] = await getRepository(OrderInventory).findAndCount({\n where: { domain: { id: domain.id }, deliveryOrder: { id: deliveryOrder.id } },\n relations: ['product']\n })\n\n items = items\n .map((oi: OrderInventory) => {\n const product: Product = oi.product\n return {\n inventory: oi.inventory,\n productId: product.id,\n productName: `${product.name} (${product.description})`,\n packingType: oi.packingType,\n batchId: oi.batchId,\n releaseQty: oi.releaseQty,\n releaseUomValue: oi.releaseUomValue,\n remark: oi.remark,\n crossDocking: oi.crossDocking,\n pallet: ''\n }\n })\n .reduce((newItem, item) => {\n var foundItem = newItem.find(\n newItem =>\n newItem.productName === item.productName &&\n newItem.batchId === item.batchId &&\n newItem.crossDocking === item.crossDocking &&\n newItem.pallet === item.pallet\n )\n if (!foundItem) {\n foundItem = {\n inventory: item.inventory,\n productId: item.productId,\n productName: item.productName,\n packingType: item.packingType,\n batchId: item.batchId,\n releaseQty: item.releaseQty,\n releaseUomValue: item.releaseUomValue,\n palletQty: 1,\n remark: item.remark,\n crossDocking: item.crossDocking,\n pallet: item.pallet\n }\n\n newItem.push(foundItem)\n return newItem\n } else {\n return newItem.map(ni => {\n if (\n ni.productName === item.productName &&\n ni.batchId === item.batchId &&\n ni.crossDocking === item.crossDocking &&\n ni.pallet === item.pallet\n ) {\n return {\n ...ni,\n palletQty: ni.palletQty + 1,\n releaseQty: ni.releaseQty + item.releaseQty,\n releaseUomValue: ni.releaseUomValue + item.releaseUomValue\n }\n } else {\n return ni\n }\n })\n }\n }, [])\n\n items = items.map((prod: any) => {\n return {\n ...prod,\n systemRemark: prod?.remark\n ? prod.remark\n : prod.crossDocking\n ? prod.pallet === ''\n ? `${prod.palletQty} PALLET(S) [C/D]`\n : `${prod.palletQty} PALLET(S) (${prod.pallet}) [C/D]`\n : prod.pallet === ''\n ? `${prod.palletQty} PALLET(S)`\n : `${prod.palletQty} PALLET(S) (${prod.pallet})`\n }\n })\n\n return { items, total }\n }\n\n @Query(returns => DeliveryOrderList)\n async deliveryOrderReport(\n @Ctx() context: ResolverContext,\n @Args(type => ListParam) params: ListParam\n ): Promise<DeliveryOrderList> {\n try {\n const { domain, user } = context.state\n\n const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')\n if (!bizplaceFilter) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n const releaseGoodParam = params.filters.find(param => param.name === 'releaseGoodNo')\n if (releaseGoodParam) {\n let arrFilters = []\n params.filters.splice(\n params.filters.findIndex(item => item.name == 'releaseGoodNo'),\n 1\n )\n arrFilters.push({ ...releaseGoodParam, name: 'name' })\n\n const foundReleaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({\n ...convertListParams({ filters: arrFilters })\n })\n\n if (foundReleaseGoods && foundReleaseGoods.length) {\n params.filters.push({\n name: 'releaseGoodId',\n operator: 'in',\n value: foundReleaseGoods.map((releaseGood: ReleaseGood) => releaseGood.id),\n relation: false\n })\n }\n }\n\n const tzOffsetIdx = params.filters.findIndex(param => param.name === 'tzoffset')\n let tzOffset = 0\n if (tzOffsetIdx >= 0) {\n tzOffset = params.filters[tzOffsetIdx].value\n params.filters.splice(tzOffsetIdx, 1)\n }\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n let refNoFilter = params.filters.find(x => x.name == 'refNo')\n let refNo2Filter = params.filters.find(x => x.name == 'refNo2')\n let refNo3Filter = params.filters.find(x => x.name == 'refNo3')\n\n params.filters = params.filters.filter(x => x.name != 'refNo' && x.name != 'refNo2' && x.name != 'refNo3')\n\n const qb: any = getRepository(DeliveryOrder).createQueryBuilder('do')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 99999)', 'rank')\n qb.leftJoinAndSelect('do.domain', 'domain')\n qb.leftJoinAndSelect('do.bizplace', 'bizplace')\n qb.leftJoinAndSelect('do.releaseGood', 'releaseGood')\n qb.leftJoinAndSelect('do.transportDriver', 'td')\n qb.leftJoinAndSelect('do.transportVehicle', 'th')\n qb.leftJoinAndSelect('do.orderInventories', 'oi')\n qb.leftJoinAndSelect('oi.inventory', 'inv')\n qb.leftJoinAndSelect('inv.product', 'prd')\n qb.leftJoinAndSelect('do.creator', 'creator')\n qb.leftJoinAndSelect('do.updater', 'updater')\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'DELIVERY_STATUS'`)\n },\n 'cc',\n 'cc.status = do.status'\n )\n\n if (refNoFilter?.value) {\n qb.andWhere('releaseGood.ref_no ilike :refNo', { refNo: refNoFilter.value })\n }\n if (refNo2Filter?.value) {\n qb.andWhere('releaseGood.ref_no_2 ilike :refNo2', { refNo2: refNo2Filter.value })\n }\n if (refNo3Filter?.value) {\n qb.andWhere('releaseGood.ref_no_3 ilike :refNo3', { refNo3: refNo3Filter.value })\n }\n\n const arrChildSortData = ['refNo', 'refNo2', 'refNo3']\n const arrNameSortData = ['bizplace', 'releaseGood', 'updater']\n const sort: OrderByCondition = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0\n ? 'releaseGood.' + sort.name\n : arrNameSortData.indexOf(sort.name) >= 0\n ? sort.name + '.name'\n : 'do.' + sort.name]: sort.desc ? 'DESC' : 'ASC'\n }),\n params.sortings.length < 1 ? { rank: 'ASC', 'do.createdAt': 'DESC' } : {}\n )\n\n qb.orderBy(sort)\n\n const [items, total] = await qb.getManyAndCount()\n return { items, total }\n } catch (error) {\n debug('deliveryOrders', error.toString())\n throw error\n }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() deliveryOrder: DeliveryOrder): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: deliveryOrder.domainId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() deliveryOrder: DeliveryOrder): Promise<User> {\n return await getRepository(User).findOneBy({ id: deliveryOrder.creatorId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() deliveryOrder: DeliveryOrder): Promise<User> {\n return await getRepository(User).findOneBy({ id: deliveryOrder.updaterId })\n }\n}\n\nexport async function deliveryOrderByReleaseGood(releaseGood: ReleaseGood, trxMgr?: EntityManager): Promise<any> {\n const doRepo: Repository<DeliveryOrder> = trxMgr?.getRepository(DeliveryOrder) || getRepository(DeliveryOrder)\n const oiRepo: Repository<OrderInventory> = trxMgr?.getRepository(OrderInventory) || getRepository(OrderInventory)\n\n let [items, total] = await doRepo.findAndCount({\n where: { releaseGood: { id: releaseGood.id } },\n relations: ['domain', 'bizplace', 'releaseGood', 'transportDriver', 'transportVehicle', 'creator', 'updater']\n })\n\n items = await Promise.all(\n items.map(async (deliveryOrder: DeliveryOrder) => {\n return {\n ...deliveryOrder,\n truck: deliveryOrder?.truckNo || deliveryOrder.transportVehicle?.name || null,\n targetInventories: await oiRepo.find({\n where: { deliveryOrder: { id: deliveryOrder.id } },\n relations: ['domain', 'bizplace', 'releaseGood', 'inventory']\n })\n }\n })\n )\n\n return {\n items,\n total\n }\n}\n"]}
|
|
@@ -207,7 +207,7 @@ tslib_1.__decorate([
|
|
|
207
207
|
tslib_1.__decorate([
|
|
208
208
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
209
209
|
(0, type_graphql_1.Query)(returns => draft_release_good_type_1.DraftReleaseGoodList, { description: 'To fetch multiple DraftReleaseGoods' }),
|
|
210
|
-
tslib_1.__param(0, (0, type_graphql_1.Args)()),
|
|
210
|
+
tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
211
211
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
212
212
|
tslib_1.__metadata("design:type", Function),
|
|
213
213
|
tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft-release-good-query.js","sourceRoot":"","sources":["../../../server/service/draft-release-good/draft-release-good-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, Directive, Query, Resolver } from 'type-graphql'\nimport { EntityManager, In, OrderByCondition, SelectQueryBuilder } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getPermittedBizplaceIds, getPermittedBizplaces } from '@things-factory/biz-base'\nimport { buildQuery, Domain, getRepository, ListParam } from '@things-factory/shell'\n\nimport { ATTACHMENT_TYPE, DRAFT_RELEASE_ORDER_STATUS } from '../../constants'\nimport { InventoryUtil } from '../../utils'\nimport { DraftReleaseGood } from './draft-release-good'\nimport { DraftReleaseGoodList } from './draft-release-good-type'\n\n@Resolver(DraftReleaseGood)\nexport class DraftReleaseGoodQuery {\n @Query(returns => DraftReleaseGood, { description: 'To fetch a DraftReleaseGood' })\n async draftReleaseGood(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<DraftReleaseGood> {\n const { domain } = context.state\n\n return await getRepository(DraftReleaseGood).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Directive('@transaction')\n @Query(returns => DraftReleaseGood, { description: 'To fetch a DraftReleaseGood' })\n async draftReleaseGoodByName(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<DraftReleaseGood> {\n const { domain, tx } = context.state\n\n return getDraftReleaseGoodFunction(null, name, context, tx)\n }\n\n @Directive('@transaction')\n @Query(returns => DraftReleaseGoodList, { description: 'To fetch multiple DraftReleaseGoods' })\n async draftReleaseGoods(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<DraftReleaseGoodList> {\n try {\n const { domain, user, tx } = context.state\n\n const statusFilter = params.filters.find(e => e.name === 'status')\n const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')\n const noOfItemsFilter = params.filters.find(param => param.name === 'noOfItems')\n const skuFilter = params.filters.find(param => param.name === 'sku')\n const orderRemarkFilter = params.filters.find(param => param.name === 'orderRemark')\n\n if (!bizplaceFilter) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n params.filters = params.filters.filter(\n itm => itm.name !== 'noOfItems' && itm.name !== 'sku' && itm.name !== 'status'\n )\n\n if (orderRemarkFilter) {\n const orderRemarkIdx = params.filters.findIndex(param => param.name === 'orderRemark')\n if (orderRemarkFilter.value == true) {\n params.filters.splice(orderRemarkIdx, 1)\n params.filters.push({\n name: 'remark',\n operator: 'is_not_null',\n value: null,\n relation: false\n })\n } else {\n params.filters.splice(orderRemarkIdx, 1)\n params.filters.push({\n name: 'remark',\n operator: 'is_null',\n value: null,\n relation: false\n })\n }\n }\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n tx.query(\n `\n create temp table temp_op_calculation on commit drop as (\n SELECT drg1.id from draft_release_goods drg1\n left join order_products op on drg1.id = op.draft_release_good_id\n where drg1.status ='DRAFT' AND drg1.domain_id = $1\n AND NOT EXISTS (\n SELECT * FROM warehouse_bizplace_onhand_inventories wboi \n where (wboi.\"productId\" = op.product_id or wboi.\"productBundleId\" = op.product_id) \n and wboi.\"domainId\" = op.domain_id\n and wboi.\"bizplaceId\" = op.bizplace_id\n AND wboi.\"remainQty\" >= op.release_qty\n ) GROUP BY drg1.id\n )\n `,\n [domain.id]\n )\n\n const qb: SelectQueryBuilder<DraftReleaseGood> = tx.getRepository(DraftReleaseGood).createQueryBuilder('drg')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 99999)', 'rank')\n qb.addSelect(\n `CASE WHEN \"drg\".status = 'DRAFT' and tmp_calc.id IS NOT null then 'INSUFFICIENT' else \"drg\".status END`,\n 'computed_status'\n )\n qb.leftJoin(`temp_op_calculation`, 'tmp_calc', 'tmp_calc.id = drg.id')\n qb.leftJoinAndSelect('drg.domain', 'domain')\n qb.leftJoinAndSelect('drg.bizplace', 'bizplace')\n qb.leftJoinAndSelect('drg.creator', 'creator')\n qb.leftJoinAndSelect('drg.updater', 'updater')\n qb.leftJoinAndSelect('drg.deliverTo', 'deliverTo')\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'ODO_REQUESTS_STATUS'`)\n },\n 'cc',\n 'cc.status = drg.status'\n )\n\n if (skuFilter) {\n qb.andWhere(\n `\n exists (\n select * from order_products op \n inner join products p on op.product_id = p.id\n where op.draft_release_good_id = drg.id\n and lower(p.sku) ilike :sku\n )\n `,\n { sku: skuFilter.value.toLowerCase() }\n )\n }\n\n if (noOfItemsFilter) {\n qb.andWhere(\n `\n exists (\n select numberFilterOp.product_id from order_products numberFilterOp \n where numberFilterOp.draft_release_good_id = drg.id\n group by numberFilterOp.product_id having count(*) ${noOfItemsFilter.value == 1 ? ' = 1' : '> 1'}\n )\n `\n )\n }\n\n if (statusFilter) {\n if (statusFilter.value == DRAFT_RELEASE_ORDER_STATUS.DRAFT) {\n qb.andWhere(\n `\n drg.status = 'DRAFT' and tmp_calc.id IS null\n `\n )\n } else if (statusFilter.value == DRAFT_RELEASE_ORDER_STATUS.INSUFFICIENT) {\n qb.andWhere(\n `\n drg.status = 'DRAFT' and tmp_calc.id IS NOT null\n `\n )\n } else {\n qb.andWhere(\n `\n drg.status = '${statusFilter.value}'\n `\n )\n }\n }\n\n const arrChildSortData = ['bizplace', 'creator']\n const sort: OrderByCondition = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0 ? sort.name + '.name' : 'drg.' + sort.name]: sort.desc\n ? 'DESC'\n : 'ASC'\n }),\n params.sortings.length < 1 ? { rank: 'ASC', 'drg.createdAt': 'DESC' } : {}\n )\n\n qb.orderBy(sort)\n qb.offset((params.pagination.page - 1) * params.pagination.limit)\n qb.limit(params.pagination.limit)\n\n let [items, total] = await Promise.all([qb.getRawMany(), qb.getCount()])\n\n items = items.map(itm => {\n return {\n id: itm.drg_id,\n name: itm.drg_name,\n description: itm.drg_description,\n type: itm.drg_type,\n releaseDate: itm.drg_release_date,\n exportOption: itm.drg_export_option,\n ownTransport: itm.drg_own_transport,\n bizplace: { id: itm.bizplace_id, name: itm.bizplace_name, description: itm.bizplace_description },\n refNo: itm.drg_ref_no,\n refNo2: itm.drg_ref_no_2,\n refNo3: itm.drg_ref_no_3,\n status: itm.computed_status,\n createdAt: itm.drg_created_at,\n creator: { id: itm.creator_id, name: itm.creator_name, description: itm.creator_description },\n updatedAt: itm.drg_updated_at,\n updater: { id: itm.updater_id, name: itm.updater_name, description: itm.updater_description }\n }\n })\n\n return { items, total }\n } catch (error) {\n throw error\n }\n }\n}\n\nexport async function getDraftReleaseGoodFunction(_: any, name: any, context: any, tx?: EntityManager) {\n try {\n const { domain, user, bizplace }: { domain: Domain; user: User; bizplace: Bizplace } = context.state\n\n let permittedBizplaces = await getPermittedBizplaces(domain, user)\n let result: any = await tx.getRepository(DraftReleaseGood).findOne({\n where: { domain: { id: domain.id }, name, bizplace: { id: In(permittedBizplaces.map(biz => biz.id)) } },\n relations: [\n 'releaseGood',\n 'orderProducts',\n 'orderProducts.product',\n 'orderProducts.productBundle',\n 'shippingOrder',\n 'bizplace',\n 'domain',\n 'creator',\n 'updater'\n ]\n })\n\n if (!result?.id) throw new Error(`Failed to find draft release good ${name}`)\n\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (result.bizplace.id) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == result.bizplace.id)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n\n let productInventory\n if (result.orderProducts.length > 0)\n productInventory = await InventoryUtil.bizplaceProductInventory(\n bizplaces,\n {\n filters: [\n { name: 'bizplaceId', operator: 'eq', value: result.bizplace.id },\n {\n name: 'productId',\n operator: 'in',\n value: [\n ...result.orderProducts\n .filter(itm => itm?.product)\n .map(itm => {\n return itm.product.id\n }),\n ...result.orderProducts\n .filter(itm => itm?.productBundle)\n .map(itm => {\n return itm.productBundle.id\n })\n ]\n }\n ]\n },\n context,\n tx\n )\n\n result.orderProducts = result.orderProducts.map(itm => {\n let foundProductInv = productInventory?.items.find(\n i =>\n (i.productId == itm?.product?.id || i.productId == itm?.productBundle?.id) &&\n i.packingType == itm.packingType &&\n i.packingSize == itm.packingSize &&\n i.uom == itm.uom\n )\n return {\n ...itm,\n product: itm.product || {\n id: foundProductInv.productId,\n name: foundProductInv.productName,\n brand: foundProductInv.productBrand,\n sku: foundProductInv.productSKU\n },\n groupType: foundProductInv ? foundProductInv.groupType : 'SINGLE',\n remainQty: foundProductInv ? foundProductInv.remainQty : 0,\n remainUomValue: foundProductInv ? foundProductInv.remainUomValue : 0,\n remainUomValueWithUom: foundProductInv ? foundProductInv.remainUomValueWithUom : 0\n }\n })\n const foundAttachments: Attachment[] = await tx.getRepository(Attachment).find({\n where: {\n domain: { id: domain.id },\n refBy: result.id,\n category: ATTACHMENT_TYPE.DGRN\n }\n })\n\n return {\n ...result,\n attachment: foundAttachments\n }\n } catch (error) {\n console.error(error)\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"draft-release-good-query.js","sourceRoot":"","sources":["../../../server/service/draft-release-good/draft-release-good-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Args, Ctx, Directive, Query, Resolver } from 'type-graphql'\nimport { EntityManager, In, OrderByCondition, SelectQueryBuilder } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getPermittedBizplaceIds, getPermittedBizplaces } from '@things-factory/biz-base'\nimport { buildQuery, Domain, getRepository, ListParam } from '@things-factory/shell'\n\nimport { ATTACHMENT_TYPE, DRAFT_RELEASE_ORDER_STATUS } from '../../constants'\nimport { InventoryUtil } from '../../utils'\nimport { DraftReleaseGood } from './draft-release-good'\nimport { DraftReleaseGoodList } from './draft-release-good-type'\n\n@Resolver(DraftReleaseGood)\nexport class DraftReleaseGoodQuery {\n @Query(returns => DraftReleaseGood, { description: 'To fetch a DraftReleaseGood' })\n async draftReleaseGood(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<DraftReleaseGood> {\n const { domain } = context.state\n\n return await getRepository(DraftReleaseGood).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Directive('@transaction')\n @Query(returns => DraftReleaseGood, { description: 'To fetch a DraftReleaseGood' })\n async draftReleaseGoodByName(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<DraftReleaseGood> {\n const { domain, tx } = context.state\n\n return getDraftReleaseGoodFunction(null, name, context, tx)\n }\n\n @Directive('@transaction')\n @Query(returns => DraftReleaseGoodList, { description: 'To fetch multiple DraftReleaseGoods' })\n async draftReleaseGoods(\n @Args(type => ListParam) params: ListParam,\n @Ctx() context: ResolverContext\n ): Promise<DraftReleaseGoodList> {\n try {\n const { domain, user, tx } = context.state\n\n const statusFilter = params.filters.find(e => e.name === 'status')\n const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')\n const noOfItemsFilter = params.filters.find(param => param.name === 'noOfItems')\n const skuFilter = params.filters.find(param => param.name === 'sku')\n const orderRemarkFilter = params.filters.find(param => param.name === 'orderRemark')\n\n if (!bizplaceFilter) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n params.filters = params.filters.filter(\n itm => itm.name !== 'noOfItems' && itm.name !== 'sku' && itm.name !== 'status'\n )\n\n if (orderRemarkFilter) {\n const orderRemarkIdx = params.filters.findIndex(param => param.name === 'orderRemark')\n if (orderRemarkFilter.value == true) {\n params.filters.splice(orderRemarkIdx, 1)\n params.filters.push({\n name: 'remark',\n operator: 'is_not_null',\n value: null,\n relation: false\n })\n } else {\n params.filters.splice(orderRemarkIdx, 1)\n params.filters.push({\n name: 'remark',\n operator: 'is_null',\n value: null,\n relation: false\n })\n }\n }\n\n const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')\n if (fromDateParamIdx >= 0) {\n let fromDateVal = new Date(params.filters[fromDateParamIdx].value)\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'gte',\n value: fromDateVal.toISOString(),\n relation: false\n })\n }\n\n const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')\n if (toDateParamIdx >= 0) {\n let toDateVal = new Date(params.filters[toDateParamIdx].value)\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: 'createdAt',\n operator: 'lt',\n value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n tx.query(\n `\n create temp table temp_op_calculation on commit drop as (\n SELECT drg1.id from draft_release_goods drg1\n left join order_products op on drg1.id = op.draft_release_good_id\n where drg1.status ='DRAFT' AND drg1.domain_id = $1\n AND NOT EXISTS (\n SELECT * FROM warehouse_bizplace_onhand_inventories wboi \n where (wboi.\"productId\" = op.product_id or wboi.\"productBundleId\" = op.product_id) \n and wboi.\"domainId\" = op.domain_id\n and wboi.\"bizplaceId\" = op.bizplace_id\n AND wboi.\"remainQty\" >= op.release_qty\n ) GROUP BY drg1.id\n )\n `,\n [domain.id]\n )\n\n const qb: SelectQueryBuilder<DraftReleaseGood> = tx.getRepository(DraftReleaseGood).createQueryBuilder('drg')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 99999)', 'rank')\n qb.addSelect(\n `CASE WHEN \"drg\".status = 'DRAFT' and tmp_calc.id IS NOT null then 'INSUFFICIENT' else \"drg\".status END`,\n 'computed_status'\n )\n qb.leftJoin(`temp_op_calculation`, 'tmp_calc', 'tmp_calc.id = drg.id')\n qb.leftJoinAndSelect('drg.domain', 'domain')\n qb.leftJoinAndSelect('drg.bizplace', 'bizplace')\n qb.leftJoinAndSelect('drg.creator', 'creator')\n qb.leftJoinAndSelect('drg.updater', 'updater')\n qb.leftJoinAndSelect('drg.deliverTo', 'deliverTo')\n qb.leftJoin(\n subQuery => {\n return subQuery\n .select(`ccd.rank`, 'rank')\n .addSelect(`ccd.name`, 'status')\n .from(`common_code_details`, 'ccd')\n .innerJoin(`ccd.commonCode`, 'cc')\n .where(`ccd.domain_id = :domainId`, { domainId: domain.id })\n .andWhere(`cc.name = 'ODO_REQUESTS_STATUS'`)\n },\n 'cc',\n 'cc.status = drg.status'\n )\n\n if (skuFilter) {\n qb.andWhere(\n `\n exists (\n select * from order_products op \n inner join products p on op.product_id = p.id\n where op.draft_release_good_id = drg.id\n and lower(p.sku) ilike :sku\n )\n `,\n { sku: skuFilter.value.toLowerCase() }\n )\n }\n\n if (noOfItemsFilter) {\n qb.andWhere(\n `\n exists (\n select numberFilterOp.product_id from order_products numberFilterOp \n where numberFilterOp.draft_release_good_id = drg.id\n group by numberFilterOp.product_id having count(*) ${noOfItemsFilter.value == 1 ? ' = 1' : '> 1'}\n )\n `\n )\n }\n\n if (statusFilter) {\n if (statusFilter.value == DRAFT_RELEASE_ORDER_STATUS.DRAFT) {\n qb.andWhere(\n `\n drg.status = 'DRAFT' and tmp_calc.id IS null\n `\n )\n } else if (statusFilter.value == DRAFT_RELEASE_ORDER_STATUS.INSUFFICIENT) {\n qb.andWhere(\n `\n drg.status = 'DRAFT' and tmp_calc.id IS NOT null\n `\n )\n } else {\n qb.andWhere(\n `\n drg.status = '${statusFilter.value}'\n `\n )\n }\n }\n\n const arrChildSortData = ['bizplace', 'creator']\n const sort: OrderByCondition = (params.sortings || []).reduce(\n (acc, sort) => ({\n ...acc,\n [arrChildSortData.indexOf(sort.name) >= 0 ? sort.name + '.name' : 'drg.' + sort.name]: sort.desc\n ? 'DESC'\n : 'ASC'\n }),\n params.sortings.length < 1 ? { rank: 'ASC', 'drg.createdAt': 'DESC' } : {}\n )\n\n qb.orderBy(sort)\n qb.offset((params.pagination.page - 1) * params.pagination.limit)\n qb.limit(params.pagination.limit)\n\n let [items, total] = await Promise.all([qb.getRawMany(), qb.getCount()])\n\n items = items.map(itm => {\n return {\n id: itm.drg_id,\n name: itm.drg_name,\n description: itm.drg_description,\n type: itm.drg_type,\n releaseDate: itm.drg_release_date,\n exportOption: itm.drg_export_option,\n ownTransport: itm.drg_own_transport,\n bizplace: { id: itm.bizplace_id, name: itm.bizplace_name, description: itm.bizplace_description },\n refNo: itm.drg_ref_no,\n refNo2: itm.drg_ref_no_2,\n refNo3: itm.drg_ref_no_3,\n status: itm.computed_status,\n createdAt: itm.drg_created_at,\n creator: { id: itm.creator_id, name: itm.creator_name, description: itm.creator_description },\n updatedAt: itm.drg_updated_at,\n updater: { id: itm.updater_id, name: itm.updater_name, description: itm.updater_description }\n }\n })\n\n return { items, total }\n } catch (error) {\n throw error\n }\n }\n}\n\nexport async function getDraftReleaseGoodFunction(_: any, name: any, context: any, tx?: EntityManager) {\n try {\n const { domain, user, bizplace }: { domain: Domain; user: User; bizplace: Bizplace } = context.state\n\n let permittedBizplaces = await getPermittedBizplaces(domain, user)\n let result: any = await tx.getRepository(DraftReleaseGood).findOne({\n where: { domain: { id: domain.id }, name, bizplace: { id: In(permittedBizplaces.map(biz => biz.id)) } },\n relations: [\n 'releaseGood',\n 'orderProducts',\n 'orderProducts.product',\n 'orderProducts.productBundle',\n 'shippingOrder',\n 'bizplace',\n 'domain',\n 'creator',\n 'updater'\n ]\n })\n\n if (!result?.id) throw new Error(`Failed to find draft release good ${name}`)\n\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (result.bizplace.id) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == result.bizplace.id)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n\n let productInventory\n if (result.orderProducts.length > 0)\n productInventory = await InventoryUtil.bizplaceProductInventory(\n bizplaces,\n {\n filters: [\n { name: 'bizplaceId', operator: 'eq', value: result.bizplace.id },\n {\n name: 'productId',\n operator: 'in',\n value: [\n ...result.orderProducts\n .filter(itm => itm?.product)\n .map(itm => {\n return itm.product.id\n }),\n ...result.orderProducts\n .filter(itm => itm?.productBundle)\n .map(itm => {\n return itm.productBundle.id\n })\n ]\n }\n ]\n },\n context,\n tx\n )\n\n result.orderProducts = result.orderProducts.map(itm => {\n let foundProductInv = productInventory?.items.find(\n i =>\n (i.productId == itm?.product?.id || i.productId == itm?.productBundle?.id) &&\n i.packingType == itm.packingType &&\n i.packingSize == itm.packingSize &&\n i.uom == itm.uom\n )\n return {\n ...itm,\n product: itm.product || {\n id: foundProductInv.productId,\n name: foundProductInv.productName,\n brand: foundProductInv.productBrand,\n sku: foundProductInv.productSKU\n },\n groupType: foundProductInv ? foundProductInv.groupType : 'SINGLE',\n remainQty: foundProductInv ? foundProductInv.remainQty : 0,\n remainUomValue: foundProductInv ? foundProductInv.remainUomValue : 0,\n remainUomValueWithUom: foundProductInv ? foundProductInv.remainUomValueWithUom : 0\n }\n })\n const foundAttachments: Attachment[] = await tx.getRepository(Attachment).find({\n where: {\n domain: { id: domain.id },\n refBy: result.id,\n category: ATTACHMENT_TYPE.DGRN\n }\n })\n\n return {\n ...result,\n attachment: foundAttachments\n }\n } catch (error) {\n console.error(error)\n }\n}\n"]}
|
|
@@ -224,7 +224,7 @@ exports.GoodsReceivalNoteQuery = GoodsReceivalNoteQuery;
|
|
|
224
224
|
tslib_1.__decorate([
|
|
225
225
|
(0, type_graphql_1.Query)(returns => __1.GoodsReceivalNoteList),
|
|
226
226
|
tslib_1.__param(0, (0, type_graphql_1.Ctx)()),
|
|
227
|
-
tslib_1.__param(1, (0, type_graphql_1.Args)()),
|
|
227
|
+
tslib_1.__param(1, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
|
|
228
228
|
tslib_1.__metadata("design:type", Function),
|
|
229
229
|
tslib_1.__metadata("design:paramtypes", [Object, shell_1.ListParam]),
|
|
230
230
|
tslib_1.__metadata("design:returntype", Promise)
|