@things-factory/sales-base 7.0.1-beta.16 → 7.0.1-beta.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist-server/service/arrival-notice/arrival-notice-query.js +2 -2
  2. package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
  3. package/dist-server/service/delivery-order/delivery-order-query.js +2 -2
  4. package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -1
  5. package/dist-server/service/draft-release-good/draft-release-good-query.js +1 -1
  6. package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -1
  7. package/dist-server/service/goods-receival-note/goods-receival-note-query.js +1 -1
  8. package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +1 -1
  9. package/dist-server/service/manifest/manifest-query.js +1 -1
  10. package/dist-server/service/manifest/manifest-query.js.map +1 -1
  11. package/dist-server/service/manifest/manifest.js +2 -2
  12. package/dist-server/service/manifest/manifest.js.map +1 -1
  13. package/dist-server/service/order-inventory/order-inventory-query.js +3 -3
  14. package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
  15. package/dist-server/service/order-tote/order-tote.js +1 -1
  16. package/dist-server/service/order-tote/order-tote.js.map +1 -1
  17. package/dist-server/service/others/other-query.js +3 -3
  18. package/dist-server/service/others/other-query.js.map +1 -1
  19. package/dist-server/service/release-good/release-good-query.js +2 -2
  20. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  21. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js +1 -1
  22. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js.map +1 -1
  23. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js +2 -2
  24. package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js.map +1 -1
  25. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js +1 -1
  26. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js.map +1 -1
  27. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js +2 -2
  28. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js.map +1 -1
  29. package/dist-server/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +13 -13
  31. package/server/service/arrival-notice/arrival-notice-query.ts +8 -2
  32. package/server/service/delivery-order/delivery-order-query.ts +9 -3
  33. package/server/service/draft-release-good/draft-release-good-query.ts +4 -1
  34. package/server/service/goods-receival-note/goods-receival-note-query.ts +10 -7
  35. package/server/service/manifest/manifest-query.ts +1 -1
  36. package/server/service/manifest/manifest.ts +2 -2
  37. package/server/service/order-inventory/order-inventory-query.ts +9 -3
  38. package/server/service/order-tote/order-tote.ts +1 -1
  39. package/server/service/others/other-query.ts +3 -3
  40. package/server/service/release-good/release-good-query.ts +8 -2
  41. package/server/service/reverse-kitting-order/reverse-kitting-order-query.ts +1 -1
  42. package/server/service/reverse-kitting-order/reverse-kitting-order.ts +2 -2
  43. package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.ts +1 -1
  44. package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"other-query.js","sourceRoot":"","sources":["../../../server/service/others/other-query.ts"],"names":[],"mappings":"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","sourcesContent":["import orderBy from 'lodash/orderBy'\nimport { Arg, Args, Ctx, Directive, Query, Resolver } from 'type-graphql'\nimport { EntityManager } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getPermittedBizplaces } from '@things-factory/biz-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { PartnerSetting, Setting } from '@things-factory/setting-base'\nimport { Domain, ListParam } from '@things-factory/shell'\n\nimport {\n InventoryProductGroup,\n InventoryProductGroupList,\n NewOrderInventory,\n NewOrderProduct,\n OrderInventory,\n OrderProduct\n} from '../'\nimport { InventoryUtil } from '../../utils'\n\n@Resolver()\nexport class OtherQuery {\n @Directive('@privilege(category: \"inventory\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async allBizplaceProductInventory(\n @Ctx() context: ResolverContext,\n @Args() params: ListParam\n ): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\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: companyDomain } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.bizplaceProductInventory(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"inventory\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async inventoryProductGroup(\n @Ctx() context: ResolverContext,\n @Args() params: ListParam\n ): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\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 if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.bizplaceInventoryProductGroup(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async inventoryProductGroupOpenAPI(\n @Ctx() context: ResolverContext,\n @Args() params: ListParam\n ): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\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 if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.inventoryProductGroupOpenAPI(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [OrderInventory])\n async bulkUploadValidateWarehousePartnersProductsQuantity(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderInventories', type => [NewOrderInventory], { nullable: true }) orderInventories?: NewOrderInventory[]\n ): Promise<OrderInventory[]> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n const partnerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({\n where: {\n id: partnerBizplaceId\n },\n relations: ['company', 'company.domain']\n })\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\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 if (bizplace) bizplaces.push(bizplace)\n\n let newOrderInventories: any[] = []\n\n for (var i = 0; i < orderInventories.length; i++) {\n const orderInventory: any = orderInventories[i]\n\n let filters: any[] = [\n {\n name: 'productName',\n operator: 'eq',\n value: orderInventory.productSKU\n }\n ]\n\n if (orderInventory?.packingType != null) {\n filters.push({\n name: 'packingType',\n operator: 'eq',\n value: orderInventory.packingType\n })\n }\n\n const params: any = {\n filters: [...filters]\n }\n\n const { items, total } = await InventoryUtil.bizplaceInventoryProductGroup(bizplaces, params, context, tx)\n\n // Filter to find for item with enough remain qty\n const availableItems = items.filter(item => item.remainQty >= orderInventory.releaseQty)\n let availableItem\n\n if (availableItems.length > 0) {\n availableItem = availableItems[0]\n }\n\n let packageUomValue = availableItem ? availableItem.remainUomValue / availableItem.remainQty : null\n const newOrderInventory: any = {\n product: availableItem\n ? {\n id: availableItem.productId,\n sku: availableItem.productSKU,\n name: availableItem.productName\n }\n : { id: null },\n inventory: availableItem\n ? {\n ...availableItem,\n remainQty: availableItem ? availableItem.remainQty : null,\n remainUomValue: availableItem ? availableItem.remainUomValue : null,\n remainUomValueWithUom: availableItem ? availableItem.remainUomValueWithUom : ''\n }\n : null,\n productId: availableItem ? availableItem.productId : null,\n productSKU: availableItem ? availableItem.productSKU : orderInventory.productSKU,\n productName: availableItem ? availableItem.productName : null,\n uom: availableItem ? availableItem.uom : null,\n remainQty: availableItem ? availableItem.remainQty : null,\n remainUomValue: availableItem ? availableItem.remainUomValue : null,\n remainUomValueWithUom: availableItem ? availableItem.remainUomValueWithUom : '',\n batchId: availableItem ? availableItem.batchId : null,\n batchIdRef: availableItem ? availableItem.batchIdRef : null,\n packingType: availableItem ? availableItem.packingType : orderInventory.packingType,\n packingSize: availableItem ? availableItem.packingSize : 1,\n releaseQty: orderInventory.releaseQty\n ? Number.isInteger(orderInventory.releaseQty)\n ? orderInventory.releaseQty\n : null\n : null,\n releaseUomValue: availableItem\n ? Number.isInteger(orderInventory.releaseQty)\n ? parseFloat((orderInventory.releaseQty * packageUomValue).toFixed(2))\n : null\n : null,\n groupType: availableItem ? availableItem.groupType : null,\n isError: !availableItem ? true : false\n }\n\n newOrderInventories.push(newOrderInventory)\n\n // end loop\n }\n\n try {\n await InventoryUtil.validateWarehousePartnersProductsQuantity(\n domain,\n partnerBizplace,\n newOrderInventories,\n context,\n tx\n )\n } catch (e) {\n const errorData = JSON.parse(e.detail.data)\n\n errorData.forEach(dt => {\n let idx = newOrderInventories.findIndex(\n x =>\n x.product?.id && x.product.id == dt.productId && x.batchId == dt.batchId && x.packingType == dt.packingType\n )\n\n if (idx >= 0) {\n newOrderInventories[idx].remainQty = dt.availableQty\n newOrderInventories[idx].remainUomValue = dt.availableUomValue\n newOrderInventories[idx].isError =\n dt.availableQty == null\n ? newOrderInventories[idx].releaseQty > 0\n : newOrderInventories[idx].releaseQty > dt.availableQty\n newOrderInventories[idx].remainUomValueWithUom =\n dt.availableUomValue == null ? '' : `${dt.availableUomValue} ${dt.uom}`\n if (newOrderInventories[idx].inventory != null) {\n newOrderInventories[idx].inventory.remainQty = dt.availableQty\n newOrderInventories[idx].inventory.remainUomValue = dt.availableUomValue\n newOrderInventories[idx].inventory.remainUomValueWithUom = `${dt.availableUomValue} ${dt.uom}` || ''\n }\n }\n })\n }\n\n return orderBy(newOrderInventories, ['isError'], ['desc'])\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [InventoryProductGroup])\n async bulkUploadValidateOrderProducts(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderProducts', type => [NewOrderProduct], { nullable: true }) orderProducts: NewOrderProduct[]\n ): Promise<OrderProduct[]> {\n const { domain, user, tx, bizplace } = context.state\n\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['domain', '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 if (bizplace) bizplaces.push(bizplace)\n\n let strictProduct: any = false\n\n const strictProductSelectionSetting: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: { id: domain.id }, category: 'id-rule', name: 'strict-product-selection' }\n })\n\n if (strictProductSelectionSetting) strictProduct = strictProductSelectionSetting.value\n\n const partnerStrictProductSelectionSetting: PartnerSetting = await tx.getRepository(PartnerSetting).findOne({\n where: {\n setting: { id: strictProductSelectionSetting.id },\n domain: { id: domain.id },\n partnerDomain: { id: foundPermittedBizplace?.domain?.id }\n }\n })\n\n if (partnerStrictProductSelectionSetting) strictProduct = partnerStrictProductSelectionSetting.value\n\n let newOrderProducts: any[] = []\n\n for (var i = 0; i < orderProducts.length; i++) {\n const orderProduct = orderProducts[i]\n const productSKU: string = orderProduct.productSKU\n const foundProduct: Product = await tx.getRepository(Product).findOne({\n where: {\n sku: productSKU,\n bizplace: { id: companyBizplace.id }\n }\n })\n\n let newOrderProduct: any\n\n if (foundProduct) {\n let productDetail: ProductDetail\n const hasConditions: boolean = Boolean(\n (orderProduct?.packingType && orderProduct?.packingType.trim() != '') ||\n (orderProduct?.uom && orderProduct?.uom.trim() != '')\n )\n let productDetailCondition: any = { product: foundProduct }\n\n if (hasConditions) {\n if (orderProduct?.packingType && orderProduct.packingType.trim() != '')\n productDetailCondition.packingType = orderProduct.packingType.trim()\n\n if (orderProduct?.uom && orderProduct.uom.trim() != '') productDetailCondition.uom = orderProduct.uom.trim()\n } else {\n productDetailCondition.isDefault = true\n }\n\n productDetail = await productDetailRepo.findOne({\n where: productDetailCondition\n })\n\n const uomValue: number =\n strictProduct == true\n ? productDetail?.uomValue\n ? productDetail.uomValue\n : null\n : orderProduct?.uomValue\n ? orderProduct.uomValue\n : productDetail.uomValue\n\n newOrderProduct = {\n ...orderProduct,\n packingType: orderProduct?.packingType ? orderProduct.packingType : productDetail.packingType,\n packingSize: productDetail?.packingSize ? productDetail.packingSize : null,\n uom: productDetail?.uom ? productDetail.uom : null,\n uomValue: uomValue,\n productName: `${foundProduct.name}(${foundProduct.description}(${foundProduct.sku}))`,\n productBrand: foundProduct?.brand ? foundProduct.brand : null,\n isError: productDetail ? false : true,\n product: {\n id: foundProduct.id,\n name: foundProduct.name,\n sku: foundProduct.sku,\n type: foundProduct.type,\n brand: foundProduct.brand,\n primaryUnit: productDetail?.uom ? productDetail.uom : null,\n primaryValue: productDetail?.uomValue ? productDetail.uomValue : null\n },\n totalUomValue:\n orderProduct.packQty > 0\n ? uomValue\n ? `${(orderProduct.packQty * uomValue).toFixed(2)} ${productDetail.uom}`\n : null\n : null\n }\n } else {\n newOrderProduct = {\n ...orderProduct,\n productName: orderProduct.productSKU,\n isError: true\n }\n }\n\n newOrderProducts.push(newOrderProduct)\n }\n\n return newOrderProducts\n }\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [InventoryProductGroup])\n async bulkUploadValidatePoOrderProducts(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderProducts', type => [NewOrderProduct], { nullable: true }) orderProducts: NewOrderProduct[]\n ): Promise<OrderProduct[]> {\n const { domain, user, tx, bizplace } = context.state\n\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['domain', '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 if (bizplace) bizplaces.push(bizplace)\n\n let strictProduct: any = false\n\n const strictProductSelectionSetting: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: { id: domain.id }, category: 'id-rule', name: 'strict-product-selection' }\n })\n\n if (strictProductSelectionSetting) strictProduct = strictProductSelectionSetting.value\n\n const partnerStrictProductSelectionSetting: PartnerSetting = await tx.getRepository(PartnerSetting).findOne({\n where: {\n setting: { id: strictProductSelectionSetting.id },\n domain: { id: domain.id },\n partnerDomain: { id: foundPermittedBizplace?.domain?.id }\n }\n })\n\n if (partnerStrictProductSelectionSetting) strictProduct = partnerStrictProductSelectionSetting.value\n\n let newOrderProducts: any[] = []\n\n for (var i = 0; i < orderProducts.length; i++) {\n const orderProduct = orderProducts[i]\n const productSKU: string = orderProduct.productSKU\n const foundProduct: Product = await tx.getRepository(Product).findOne({\n where: {\n sku: productSKU,\n bizplace: { id: companyBizplace.id }\n }\n })\n\n let newOrderProduct: any\n\n if (foundProduct) {\n let productDetail: ProductDetail\n const hasConditions: boolean = Boolean(\n (orderProduct?.packingType && orderProduct?.packingType.trim() != '') ||\n (orderProduct?.uom && orderProduct?.uom.trim() != '')\n )\n let productDetailCondition: any = { product: foundProduct }\n\n if (hasConditions) {\n if (orderProduct?.packingType && orderProduct.packingType.trim() != '')\n productDetailCondition.packingType = orderProduct.packingType.trim()\n\n if (orderProduct?.uom && orderProduct.uom.trim() != '') productDetailCondition.uom = orderProduct.uom.trim()\n } else {\n productDetailCondition.isDefault = true\n }\n\n productDetail = await productDetailRepo.findOne({\n where: productDetailCondition\n })\n\n const uomValue: number =\n strictProduct == true\n ? productDetail?.uomValue\n ? productDetail.uomValue\n : null\n : orderProduct?.uomValue\n ? orderProduct.uomValue\n : productDetail.uomValue\n\n newOrderProduct = {\n ...orderProduct,\n packingType: orderProduct?.packingType ? orderProduct.packingType : productDetail.packingType,\n packingSize: productDetail?.packingSize ? productDetail.packingSize : null,\n uom: productDetail?.uom ? productDetail.uom : null,\n uomValue: uomValue,\n productName: `${foundProduct.name}(${foundProduct.description}(${foundProduct.sku}))`,\n productBrand: foundProduct?.brand ? foundProduct.brand : null,\n isError: productDetail ? false : true,\n product: {\n id: foundProduct.id,\n name: foundProduct.name,\n sku: foundProduct.sku,\n type: foundProduct.type,\n brand: foundProduct.brand,\n primaryUnit: productDetail?.uom ? productDetail.uom : null,\n primaryValue: productDetail?.uomValue ? productDetail.uomValue : null\n },\n totalUomValue:\n orderProduct.packQty > 0\n ? uomValue\n ? `${(orderProduct.packQty * uomValue).toFixed(2)} ${productDetail.uom}`\n : null\n : null\n }\n } else {\n newOrderProduct = {\n ...orderProduct,\n productName: orderProduct.productSKU,\n isError: true\n }\n }\n\n newOrderProducts.push(newOrderProduct)\n }\n\n return newOrderProducts\n }\n}\n"]}
1
+ {"version":3,"file":"other-query.js","sourceRoot":"","sources":["../../../server/service/others/other-query.ts"],"names":[],"mappings":"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","sourcesContent":["import orderBy from 'lodash/orderBy'\nimport { Arg, Args, Ctx, Directive, Query, Resolver } from 'type-graphql'\nimport { EntityManager } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getPermittedBizplaces } from '@things-factory/biz-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { PartnerSetting, Setting } from '@things-factory/setting-base'\nimport { Domain, ListParam } from '@things-factory/shell'\n\nimport {\n InventoryProductGroup,\n InventoryProductGroupList,\n NewOrderInventory,\n NewOrderProduct,\n OrderInventory,\n OrderProduct\n} from '../'\nimport { InventoryUtil } from '../../utils'\n\n@Resolver()\nexport class OtherQuery {\n @Directive('@privilege(category: \"inventory\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async allBizplaceProductInventory(\n @Ctx() context: ResolverContext,\n @Args(type => ListParam) params: ListParam\n ): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\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: companyDomain } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.bizplaceProductInventory(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"inventory\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async inventoryProductGroup(\n @Ctx() context: ResolverContext,\n @Args(type => ListParam) params: ListParam\n ): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\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 if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.bizplaceInventoryProductGroup(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async inventoryProductGroupOpenAPI(\n @Ctx() context: ResolverContext,\n @Args(type => ListParam) params: ListParam\n ): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\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 if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.inventoryProductGroupOpenAPI(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [OrderInventory])\n async bulkUploadValidateWarehousePartnersProductsQuantity(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderInventories', type => [NewOrderInventory], { nullable: true }) orderInventories?: NewOrderInventory[]\n ): Promise<OrderInventory[]> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n const partnerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({\n where: {\n id: partnerBizplaceId\n },\n relations: ['company', 'company.domain']\n })\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\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 if (bizplace) bizplaces.push(bizplace)\n\n let newOrderInventories: any[] = []\n\n for (var i = 0; i < orderInventories.length; i++) {\n const orderInventory: any = orderInventories[i]\n\n let filters: any[] = [\n {\n name: 'productName',\n operator: 'eq',\n value: orderInventory.productSKU\n }\n ]\n\n if (orderInventory?.packingType != null) {\n filters.push({\n name: 'packingType',\n operator: 'eq',\n value: orderInventory.packingType\n })\n }\n\n const params: any = {\n filters: [...filters]\n }\n\n const { items, total } = await InventoryUtil.bizplaceInventoryProductGroup(bizplaces, params, context, tx)\n\n // Filter to find for item with enough remain qty\n const availableItems = items.filter(item => item.remainQty >= orderInventory.releaseQty)\n let availableItem\n\n if (availableItems.length > 0) {\n availableItem = availableItems[0]\n }\n\n let packageUomValue = availableItem ? availableItem.remainUomValue / availableItem.remainQty : null\n const newOrderInventory: any = {\n product: availableItem\n ? {\n id: availableItem.productId,\n sku: availableItem.productSKU,\n name: availableItem.productName\n }\n : { id: null },\n inventory: availableItem\n ? {\n ...availableItem,\n remainQty: availableItem ? availableItem.remainQty : null,\n remainUomValue: availableItem ? availableItem.remainUomValue : null,\n remainUomValueWithUom: availableItem ? availableItem.remainUomValueWithUom : ''\n }\n : null,\n productId: availableItem ? availableItem.productId : null,\n productSKU: availableItem ? availableItem.productSKU : orderInventory.productSKU,\n productName: availableItem ? availableItem.productName : null,\n uom: availableItem ? availableItem.uom : null,\n remainQty: availableItem ? availableItem.remainQty : null,\n remainUomValue: availableItem ? availableItem.remainUomValue : null,\n remainUomValueWithUom: availableItem ? availableItem.remainUomValueWithUom : '',\n batchId: availableItem ? availableItem.batchId : null,\n batchIdRef: availableItem ? availableItem.batchIdRef : null,\n packingType: availableItem ? availableItem.packingType : orderInventory.packingType,\n packingSize: availableItem ? availableItem.packingSize : 1,\n releaseQty: orderInventory.releaseQty\n ? Number.isInteger(orderInventory.releaseQty)\n ? orderInventory.releaseQty\n : null\n : null,\n releaseUomValue: availableItem\n ? Number.isInteger(orderInventory.releaseQty)\n ? parseFloat((orderInventory.releaseQty * packageUomValue).toFixed(2))\n : null\n : null,\n groupType: availableItem ? availableItem.groupType : null,\n isError: !availableItem ? true : false\n }\n\n newOrderInventories.push(newOrderInventory)\n\n // end loop\n }\n\n try {\n await InventoryUtil.validateWarehousePartnersProductsQuantity(\n domain,\n partnerBizplace,\n newOrderInventories,\n context,\n tx\n )\n } catch (e) {\n const errorData = JSON.parse(e.detail.data)\n\n errorData.forEach(dt => {\n let idx = newOrderInventories.findIndex(\n x =>\n x.product?.id && x.product.id == dt.productId && x.batchId == dt.batchId && x.packingType == dt.packingType\n )\n\n if (idx >= 0) {\n newOrderInventories[idx].remainQty = dt.availableQty\n newOrderInventories[idx].remainUomValue = dt.availableUomValue\n newOrderInventories[idx].isError =\n dt.availableQty == null\n ? newOrderInventories[idx].releaseQty > 0\n : newOrderInventories[idx].releaseQty > dt.availableQty\n newOrderInventories[idx].remainUomValueWithUom =\n dt.availableUomValue == null ? '' : `${dt.availableUomValue} ${dt.uom}`\n if (newOrderInventories[idx].inventory != null) {\n newOrderInventories[idx].inventory.remainQty = dt.availableQty\n newOrderInventories[idx].inventory.remainUomValue = dt.availableUomValue\n newOrderInventories[idx].inventory.remainUomValueWithUom = `${dt.availableUomValue} ${dt.uom}` || ''\n }\n }\n })\n }\n\n return orderBy(newOrderInventories, ['isError'], ['desc'])\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [InventoryProductGroup])\n async bulkUploadValidateOrderProducts(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderProducts', type => [NewOrderProduct], { nullable: true }) orderProducts: NewOrderProduct[]\n ): Promise<OrderProduct[]> {\n const { domain, user, tx, bizplace } = context.state\n\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['domain', '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 if (bizplace) bizplaces.push(bizplace)\n\n let strictProduct: any = false\n\n const strictProductSelectionSetting: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: { id: domain.id }, category: 'id-rule', name: 'strict-product-selection' }\n })\n\n if (strictProductSelectionSetting) strictProduct = strictProductSelectionSetting.value\n\n const partnerStrictProductSelectionSetting: PartnerSetting = await tx.getRepository(PartnerSetting).findOne({\n where: {\n setting: { id: strictProductSelectionSetting.id },\n domain: { id: domain.id },\n partnerDomain: { id: foundPermittedBizplace?.domain?.id }\n }\n })\n\n if (partnerStrictProductSelectionSetting) strictProduct = partnerStrictProductSelectionSetting.value\n\n let newOrderProducts: any[] = []\n\n for (var i = 0; i < orderProducts.length; i++) {\n const orderProduct = orderProducts[i]\n const productSKU: string = orderProduct.productSKU\n const foundProduct: Product = await tx.getRepository(Product).findOne({\n where: {\n sku: productSKU,\n bizplace: { id: companyBizplace.id }\n }\n })\n\n let newOrderProduct: any\n\n if (foundProduct) {\n let productDetail: ProductDetail\n const hasConditions: boolean = Boolean(\n (orderProduct?.packingType && orderProduct?.packingType.trim() != '') ||\n (orderProduct?.uom && orderProduct?.uom.trim() != '')\n )\n let productDetailCondition: any = { product: foundProduct }\n\n if (hasConditions) {\n if (orderProduct?.packingType && orderProduct.packingType.trim() != '')\n productDetailCondition.packingType = orderProduct.packingType.trim()\n\n if (orderProduct?.uom && orderProduct.uom.trim() != '') productDetailCondition.uom = orderProduct.uom.trim()\n } else {\n productDetailCondition.isDefault = true\n }\n\n productDetail = await productDetailRepo.findOne({\n where: productDetailCondition\n })\n\n const uomValue: number =\n strictProduct == true\n ? productDetail?.uomValue\n ? productDetail.uomValue\n : null\n : orderProduct?.uomValue\n ? orderProduct.uomValue\n : productDetail.uomValue\n\n newOrderProduct = {\n ...orderProduct,\n packingType: orderProduct?.packingType ? orderProduct.packingType : productDetail.packingType,\n packingSize: productDetail?.packingSize ? productDetail.packingSize : null,\n uom: productDetail?.uom ? productDetail.uom : null,\n uomValue: uomValue,\n productName: `${foundProduct.name}(${foundProduct.description}(${foundProduct.sku}))`,\n productBrand: foundProduct?.brand ? foundProduct.brand : null,\n isError: productDetail ? false : true,\n product: {\n id: foundProduct.id,\n name: foundProduct.name,\n sku: foundProduct.sku,\n type: foundProduct.type,\n brand: foundProduct.brand,\n primaryUnit: productDetail?.uom ? productDetail.uom : null,\n primaryValue: productDetail?.uomValue ? productDetail.uomValue : null\n },\n totalUomValue:\n orderProduct.packQty > 0\n ? uomValue\n ? `${(orderProduct.packQty * uomValue).toFixed(2)} ${productDetail.uom}`\n : null\n : null\n }\n } else {\n newOrderProduct = {\n ...orderProduct,\n productName: orderProduct.productSKU,\n isError: true\n }\n }\n\n newOrderProducts.push(newOrderProduct)\n }\n\n return newOrderProducts\n }\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [InventoryProductGroup])\n async bulkUploadValidatePoOrderProducts(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderProducts', type => [NewOrderProduct], { nullable: true }) orderProducts: NewOrderProduct[]\n ): Promise<OrderProduct[]> {\n const { domain, user, tx, bizplace } = context.state\n\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['domain', '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 if (bizplace) bizplaces.push(bizplace)\n\n let strictProduct: any = false\n\n const strictProductSelectionSetting: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: { id: domain.id }, category: 'id-rule', name: 'strict-product-selection' }\n })\n\n if (strictProductSelectionSetting) strictProduct = strictProductSelectionSetting.value\n\n const partnerStrictProductSelectionSetting: PartnerSetting = await tx.getRepository(PartnerSetting).findOne({\n where: {\n setting: { id: strictProductSelectionSetting.id },\n domain: { id: domain.id },\n partnerDomain: { id: foundPermittedBizplace?.domain?.id }\n }\n })\n\n if (partnerStrictProductSelectionSetting) strictProduct = partnerStrictProductSelectionSetting.value\n\n let newOrderProducts: any[] = []\n\n for (var i = 0; i < orderProducts.length; i++) {\n const orderProduct = orderProducts[i]\n const productSKU: string = orderProduct.productSKU\n const foundProduct: Product = await tx.getRepository(Product).findOne({\n where: {\n sku: productSKU,\n bizplace: { id: companyBizplace.id }\n }\n })\n\n let newOrderProduct: any\n\n if (foundProduct) {\n let productDetail: ProductDetail\n const hasConditions: boolean = Boolean(\n (orderProduct?.packingType && orderProduct?.packingType.trim() != '') ||\n (orderProduct?.uom && orderProduct?.uom.trim() != '')\n )\n let productDetailCondition: any = { product: foundProduct }\n\n if (hasConditions) {\n if (orderProduct?.packingType && orderProduct.packingType.trim() != '')\n productDetailCondition.packingType = orderProduct.packingType.trim()\n\n if (orderProduct?.uom && orderProduct.uom.trim() != '') productDetailCondition.uom = orderProduct.uom.trim()\n } else {\n productDetailCondition.isDefault = true\n }\n\n productDetail = await productDetailRepo.findOne({\n where: productDetailCondition\n })\n\n const uomValue: number =\n strictProduct == true\n ? productDetail?.uomValue\n ? productDetail.uomValue\n : null\n : orderProduct?.uomValue\n ? orderProduct.uomValue\n : productDetail.uomValue\n\n newOrderProduct = {\n ...orderProduct,\n packingType: orderProduct?.packingType ? orderProduct.packingType : productDetail.packingType,\n packingSize: productDetail?.packingSize ? productDetail.packingSize : null,\n uom: productDetail?.uom ? productDetail.uom : null,\n uomValue: uomValue,\n productName: `${foundProduct.name}(${foundProduct.description}(${foundProduct.sku}))`,\n productBrand: foundProduct?.brand ? foundProduct.brand : null,\n isError: productDetail ? false : true,\n product: {\n id: foundProduct.id,\n name: foundProduct.name,\n sku: foundProduct.sku,\n type: foundProduct.type,\n brand: foundProduct.brand,\n primaryUnit: productDetail?.uom ? productDetail.uom : null,\n primaryValue: productDetail?.uomValue ? productDetail.uomValue : null\n },\n totalUomValue:\n orderProduct.packQty > 0\n ? uomValue\n ? `${(orderProduct.packQty * uomValue).toFixed(2)} ${productDetail.uom}`\n : null\n : null\n }\n } else {\n newOrderProduct = {\n ...orderProduct,\n productName: orderProduct.productSKU,\n isError: true\n }\n }\n\n newOrderProducts.push(newOrderProduct)\n }\n\n return newOrderProducts\n }\n}\n"]}
@@ -533,7 +533,7 @@ tslib_1.__decorate([
533
533
  (0, type_graphql_1.Directive)('@privilege(category: "order_customer", privilege: "query", domainOwnerGranted: true)'),
534
534
  (0, type_graphql_1.Query)(returns => release_good_types_1.ReleaseGoodList),
535
535
  tslib_1.__param(0, (0, type_graphql_1.Ctx)()),
536
- tslib_1.__param(1, (0, type_graphql_1.Args)()),
536
+ tslib_1.__param(1, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
537
537
  tslib_1.__metadata("design:type", Function),
538
538
  tslib_1.__metadata("design:paramtypes", [Object, shell_1.ListParam]),
539
539
  tslib_1.__metadata("design:returntype", Promise)
@@ -563,7 +563,7 @@ tslib_1.__decorate([
563
563
  (0, type_graphql_1.Directive)('@privilege(category: "order_warehouse", privilege: "query", domainOwnerGranted: true)'),
564
564
  (0, type_graphql_1.Query)(returns => release_good_types_1.ReleaseGoodList),
565
565
  tslib_1.__param(0, (0, type_graphql_1.Ctx)()),
566
- tslib_1.__param(1, (0, type_graphql_1.Args)()),
566
+ tslib_1.__param(1, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
567
567
  tslib_1.__metadata("design:type", Function),
568
568
  tslib_1.__metadata("design:paramtypes", [Object, shell_1.ListParam]),
569
569
  tslib_1.__metadata("design:returntype", Promise)
@@ -1 +1 @@
1
- {"version":3,"file":"release-good-query.js","sourceRoot":"","sources":["../../../server/service/release-good/release-good-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, Repository, SelectQueryBuilder } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { checkUserBelongsDomain, User } from '@things-factory/auth-base'\nimport { Bizplace, getCompanyBizplace, getMyBizplace, getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { logger } from '@things-factory/env'\nimport { buildQuery, Domain, Filter, getRepository, ListParam, Pagination, Sorting } from '@things-factory/shell'\nimport { Inventory, LOCATION_TYPE } from '@things-factory/warehouse-base'\n\nimport { ATTACHMENT_TYPE, ORDER_INVENTORY_STATUS, ORDER_STATUS } from '../../constants'\nimport { OrderInventory } from '../order-inventory/order-inventory'\nimport { ShippingOrder } from '../shipping-order/shipping-order'\nimport { ReleaseGood } from './release-good'\nimport { NewReleaseGood, ReleasableInventory, ReleasableInventoryList, ReleaseGoodList } from './release-good-types'\n\n@Resolver(ReleaseGood)\nexport class ReleaseGoodQuery {\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ReleaseGoodList)\n async releaseGoods(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<ReleaseGoodList> {\n try {\n const { domain, user } = context.state\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<ReleaseGood> = getRepository(ReleaseGood).createQueryBuilder('rg')\n buildQuery(qb, params, context)\n let items: any\n let total: number\n qb.addSelect('COALESCE(\"cc\".rank, 99999)', 'rank')\n qb.leftJoinAndSelect('rg.domain', 'domain')\n qb.leftJoinAndSelect('rg.bizplace', 'bizplace')\n qb.leftJoinAndSelect('rg.orderInventories', 'oi')\n qb.leftJoinAndSelect('rg.orderProducts', 'op')\n qb.leftJoinAndSelect('oi.inventory', 'inv')\n qb.leftJoinAndSelect('oi.product', 'prod')\n qb.leftJoinAndSelect('rg.arrivalNotice', 'an')\n qb.leftJoinAndSelect('rg.creator', 'creator')\n qb.leftJoinAndSelect('rg.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 = 'RO_LIST_STATUS'`)\n },\n 'cc',\n 'cc.status = rg.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' : 'rg.' + 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 let [itemsRes, totalRes] = await qb.getManyAndCount()\n items = itemsRes\n total = totalRes\n\n return { items, total }\n } catch (error) {\n throw error\n }\n }\n\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ReleaseGood)\n async releaseGood(\n @Ctx() context: ResolverContext,\n @Arg('name', { nullable: true }) name: string,\n @Arg('trackingNo', { nullable: true }) trackingNo: string\n ): Promise<ReleaseGood> {\n const { domain, user } = context.state\n\n if (name) {\n return await getRepository(ReleaseGood).findOne({\n where: {\n domain: { id: domain.id },\n name,\n bizplace: { id: In(await getPermittedBizplaceIds(domain, user)) }\n },\n relations: [\n 'domain',\n 'bizplace',\n 'shippingOrder',\n 'arrivalNotice',\n 'orderInventories',\n 'orderInventories.product',\n 'orderInventories.inventory',\n 'orderInventories.inventory.product',\n 'orderVass',\n 'orderVass.vas',\n 'creator',\n 'updater'\n ]\n })\n } else if (trackingNo) {\n let releaseGood = await getRepository(ReleaseGood).findOne({\n where: {\n domain: { id: domain.id },\n trackingNo,\n bizplace: { id: In(await getPermittedBizplaceIds(domain, user)) }\n },\n relations: ['bizplace']\n })\n\n if (!releaseGood) {\n throw new Error('Tracking No not found in any orders')\n } else {\n return releaseGood\n }\n }\n }\n\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => ReleaseGood)\n async releaseGoodDetail(\n @Ctx() context: ResolverContext,\n @Arg('refNo', { nullable: true }) refNo?: string,\n @Arg('name', { nullable: true }) name?: string\n ): Promise<ReleaseGood> {\n try {\n const { domain, tx } = context.state\n let param: any\n\n if (name) param = { domain, name }\n else param = { domain, refNo }\n\n const releaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({\n where: { ...param },\n relations: [\n 'domain',\n 'bizplace',\n 'shippingOrder',\n 'arrivalNotice',\n 'orderProducts',\n 'orderProducts.product',\n 'orderVass',\n 'orderVass.vas',\n 'orderVass.targetProduct',\n 'orderVass.inventory',\n 'creator',\n 'updater'\n ]\n })\n\n if (releaseGood) {\n let oiQb: SelectQueryBuilder<OrderInventory> = tx\n .getRepository(OrderInventory)\n .createQueryBuilder('oi')\n .leftJoinAndSelect('oi.inventory', 'inventory')\n .leftJoinAndSelect('oi.product', 'product')\n .leftJoinAndSelect('inventory.location', 'location')\n .where('oi.domain_id = :domainId', { domainId: domain.id })\n .andWhere('oi.release_good_id = :releaseGoodId', { releaseGoodId: releaseGood.id })\n .andWhere('oi.status NOT IN (:...orderInventoryStatus)', {\n orderInventoryStatus: [ORDER_INVENTORY_STATUS.COMPLETE_SPLIT, ORDER_INVENTORY_STATUS.REPLACED]\n })\n .orderBy('product.sku', 'ASC')\n\n let orderInventories: OrderInventory[] = await oiQb.getMany()\n\n const shippingOrder: ShippingOrder = releaseGood.shippingOrder\n const foundAttachments: Attachment[] = await tx.getRepository(Attachment).find({\n where: {\n domain: { id: domain.id },\n refBy: releaseGood.id,\n category: ATTACHMENT_TYPE.DELIVERY_ORDER\n }\n })\n\n let invInfos = await Promise.all(\n orderInventories.map(async (orderInv: OrderInventory) => {\n if (orderInv?.inventory?.id) {\n const inventory: Inventory = orderInv.inventory\n return {\n id: inventory.id,\n name: inventory.name,\n batchId: inventory.batchId,\n batchIdRef: inventory.batchIdRef,\n palletId: inventory.palletId,\n product: orderInv.product,\n productIdRef: orderInv.product.id,\n productName: `${orderInv.product.name} (${orderInv.product.description})`,\n packingType: orderInv.packingType,\n packingSize: orderInv.packingSize,\n location: inventory.location,\n qty: inventory.qty,\n lockedQty: inventory.lockedQty,\n lockedUomValue: inventory.lockedUomValue,\n uom: inventory.uom,\n uomValue: inventory.uomValue,\n invStatus: inventory.status,\n releaseQty: orderInv.releaseQty,\n releaseUomValue: orderInv.releaseUomValue,\n status: orderInv.status,\n refWorksheetId: orderInv.refWorksheetId\n }\n }\n })\n )\n\n const result = {\n ...releaseGood,\n attachment: foundAttachments,\n shippingOrderInfo: {\n containerNo: shippingOrder?.containerNo || '',\n containerSize: shippingOrder?.containerSize || '',\n containerLeavingDate: shippingOrder?.containerLeavingDate || '',\n containerArrivalDate: shippingOrder?.containerArrivalDate || '',\n containerClosureDate: shippingOrder?.containerClosureDate || '',\n shipName: shippingOrder?.shipName || '',\n remark: shippingOrder?.remark || '',\n remindContainerDeparture: shippingOrder?.remindContainerDeparture || null\n },\n inventoryInfos: invInfos\n }\n\n return result\n }\n } catch (error) {\n logger.error(`release-good-query[releaseGoodDetail]: ${error}`)\n throw new Error(error)\n }\n }\n\n @Directive('@privilege(category: \"order_warehouse\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ReleaseGoodList)\n async releaseGoodRequests(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<ReleaseGoodList> {\n try {\n console.time('t1')\n const { domain, user } = context.state\n\n const statusFilter = params.filters.some(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 routeId = params.filters.find(param => param.name === 'routeId')\n const orderRemarkFilter = params.filters.find(param => param.name === 'orderRemark')\n const manifestedFilter = params.filters.find(param => param.name === 'manifested')\n const orderInfoFilter = params.filters.find(param => param.name === 'name')\n const typeFilter = params.filters.find(param => param.name === 'type')?.value\n\n if (await checkUserBelongsDomain(domain, user)) {\n if (!statusFilter && !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 (!bizplaceFilter) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n if (skuFilter) {\n params.filters = params.filters.filter(param => param.name !== 'sku')\n }\n\n if (orderInfoFilter) {\n params.filters = params.filters.filter(param => param.name !== 'name')\n }\n\n if (routeId) {\n if (routeId.value == true) {\n params.filters.find(param => param.name === 'routeId').value = 'null'\n } else {\n params.filters.find(param => param.name === 'routeId').operator = 'is_null'\n params.filters.find(param => param.name === 'routeId').value = null\n }\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 if (manifestedFilter) {\n const manifestedIdx = params.filters.findIndex(param => param.name === 'manifested')\n if (manifestedFilter.value == true) {\n params.filters.splice(manifestedIdx, 1)\n params.filters.push({\n name: 'manifestId',\n operator: 'is_not_null',\n value: null,\n relation: false\n })\n } else {\n params.filters.splice(manifestedIdx, 1)\n params.filters.push({\n name: 'manifestId',\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 let releaseDateFrom = params.filters.find(param => param.name === 'fromDate')?.value\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: typeFilter == 'b2c' ? 'releaseDate' : 'createdAt',\n operator: 'gte',\n value: typeFilter == 'b2c' ? releaseDateFrom : 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 let releaseDateTo = params.filters.find(param => param.name === 'toDate')?.value\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: typeFilter == 'b2c' ? 'releaseDate' : 'createdAt',\n operator: typeFilter == 'b2c' ? 'lte' : 'lt',\n value:\n typeFilter == 'b2c' ? releaseDateTo : new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n if (noOfItemsFilter && noOfItemsFilter.value == 1) {\n params.filters.find(param => param.name === 'noOfItems').operator = 'eq'\n }\n\n const qb: SelectQueryBuilder<ReleaseGood> = getRepository(ReleaseGood).createQueryBuilder('rg')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 99999)', 'rank')\n qb.leftJoinAndSelect('rg.domain', 'domain')\n qb.leftJoinAndSelect('rg.bizplace', 'bizplace')\n qb.leftJoinAndSelect('rg.arrivalNotice', 'an')\n qb.leftJoinAndSelect('rg.creator', 'creator')\n qb.leftJoinAndSelect('rg.updater', 'updater')\n qb.leftJoinAndSelect('rg.acceptedBy', 'acceptedBy')\n qb.leftJoinAndSelect('rg.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 = 'RO_REQUESTS_STATUS'`)\n },\n 'cc',\n 'cc.status = rg.status'\n )\n\n if (skuFilter) {\n let removeSymbol = skuFilter.value\n .split('')\n .filter(res => res !== '%')\n .join('')\n\n let products = removeSymbol\n .toLowerCase()\n .split(',')\n .map(prod => {\n return \"'%\" + prod.trim().replace(/'/g, \"''\") + \"%'\"\n })\n .join(',')\n\n qb.andWhere(\n `\n exists (select * from order_inventories oi \n inner join products p on oi.product_id = p.id\n inner join inventories i on i.product_id = p.id\n where oi.release_good_id = rg.id\n and (lower(p.sku) like any(array[${products}])\n or lower(p.brand_sku) like any(array[${products}])\n or lower(p.name) like any(array[${products}])\n or lower(p.description) like any(array[${products}]))\n )\n `\n )\n }\n\n if (orderInfoFilter) {\n let removeSymbol = orderInfoFilter.value\n .split('')\n .filter(res => res !== '%')\n .join('')\n\n let orderInfos = removeSymbol\n .toLowerCase()\n .split(',')\n .map(prod => {\n return \"'%\" + prod.trim().replace(/'/g, \"''\") + \"%'\"\n })\n .join(',')\n\n qb.andWhere(`(\n lower(rg.name) like any(array[${orderInfos}])\n or lower(rg.ref_no) like any(array[${orderInfos}])\n or lower(rg.ref_no_2) like any(array[${orderInfos}])\n or lower(rg.ref_no_3) like any(array[${orderInfos}])\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' : 'rg.' + sort.name]: sort.desc\n ? 'DESC'\n : 'ASC'\n }),\n params.sortings.length < 1 ? { rank: 'ASC', 'rg.createdAt': 'DESC' } : {}\n )\n\n qb.orderBy(sort)\n\n let [items, total] = await qb.getManyAndCount()\n\n items = items\n .filter(item => {\n return item.domainId === domain.id\n })\n .map(item => {\n return {\n ...item,\n orderRemark: item?.remark ? true : false\n }\n })\n console.timeEnd('t1')\n return { items, total }\n } catch (error) {\n logger.error(`release-good-query[releaseGoodRequests]: ${error}`)\n throw error\n }\n }\n\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ReleasableInventoryList)\n async releasableInventories(\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<ReleasableInventoryList> {\n const myBizplace: Bizplace = await getMyBizplace(context.state.domain, context.state.user)\n const INV_ALIAS = 'INV'\n const PROD_ALIAS = 'PROD'\n const GAN_ALIAS = 'GAN'\n const conditions = filters\n let {\n batchId = null,\n containerNo = null,\n product = [],\n packingType = null,\n inventory = []\n } = getConditionValues(conditions)\n\n const SELECT: string = `\n SELECT\n ${INV_ALIAS}.batch_id,\n ${INV_ALIAS}.packing_type,\n (SUM(COALESCE(${INV_ALIAS}.qty, 0)) - SUM(COALESCE(${INV_ALIAS}.locked_qty, 0))) as remain_qty,\n (SUM(COALESCE(${INV_ALIAS}.uomValue, 0)) - SUM(COALESCE(${INV_ALIAS}.locked_uom_value, 0))) as remain_uom_value,\n ${PROD_ALIAS}.id as product_id,\n ${PROD_ALIAS}.name as product_name,\n ${GAN_ALIAS}.container_no\n `\n const FROM: string = `\n FROM\n inventories ${INV_ALIAS}\n LEFT JOIN\n products ${PROD_ALIAS}\n ON\n ${PROD_ALIAS}.id = ${INV_ALIAS}.product_id\n LEFT JOIN\n arrival_notices ${GAN_ALIAS}\n ON\n ${GAN_ALIAS}.id = CAST(${INV_ALIAS}.ref_order_id as uuid)\n `\n\n const WHERE: string = `\n WHERE\n ${INV_ALIAS}.status = 'STORED'\n AND ${INV_ALIAS}.qty > 0\n AND ${INV_ALIAS}.bizplace_id = '${myBizplace.id}'\n ${batchId ? `AND LOWER(${INV_ALIAS}.batch_id) LIKE '%${batchId.toLowerCase()}%'` : ''}\n ${packingType ? `AND LOWER(${INV_ALIAS}.packing_type) LIKE '%${packingType.toLowerCase()}%'` : ''}\n ${containerNo ? `AND LOWER(${GAN_ALIAS}.container_no) LIKE '%${containerNo.toLowerCase()}%'` : ''}\n ${\n product?.length > 0 && product[0]\n ? `AND ${PROD_ALIAS}.id IN (${product.map((id: string) => `'${id}'`).join(', ')})`\n : product[0] === null\n ? `AND ${PROD_ALIAS}.id isnull`\n : ''\n }\n ${\n inventory?.length > 0\n ? `\n AND (${INV_ALIAS}.batch_id, ${PROD_ALIAS}.id) ${\n filters.find((filter: { name: string; operator: string; value: any }) => filter.name === 'inventory')\n .operator\n } (\n ${inventory\n .map((inv: { batchId: string; productId: string }) => `('${inv.batchId}', '${inv.productId}')`)\n .join(', ')}\n )\n `\n : ''\n }\n `\n\n // ${product?.length > 0 ? `AND ${PROD_ALIAS}.id IN (${product.map((id: string) => id ? `'${id}'` : null).join(', ')})` : ''}\n const GROUP_BY: string = `\n GROUP BY\n ${INV_ALIAS}.batch_id,\n ${INV_ALIAS}.packing_type,\n ${GAN_ALIAS}.container_no,\n ${PROD_ALIAS}.id\n `\n\n const OFFSET_LIMIT: string = `\n OFFSET ${pagination.limit * (pagination.page - 1)}\n LIMIT ${pagination.limit}\n `\n\n const invRepo: Repository<Inventory> = getRepository(Inventory)\n let items: any[] = await invRepo.query(`\n ${SELECT} ${FROM} ${WHERE} ${GROUP_BY} ${OFFSET_LIMIT}\n `)\n items = items.map((item: any) => {\n return {\n batchId: item.batch_id,\n packingType: item.packing_type,\n remainQty: item.remain_qty,\n remainUomValue: item.remain_uom_value,\n productName: item.product_name,\n product: {\n id: item.product_id,\n name: item.product_name\n },\n containerNo: item.container_no\n }\n }) as any\n\n const results: [{ total: number }] = await invRepo.query(`\n SELECT max(cnt.cnt) as total FROM (\n SELECT (ROW_NUMBER() OVER()) as cnt ${FROM} ${WHERE} ${GROUP_BY}\n ) as cnt\n `)\n\n return {\n items,\n total: Number(results[0].total)\n }\n }\n\n @Directive('@transaction')\n @Query(returns => [ReleaseGood])\n async bulkReleaseGoodsAvailableItems(\n @Ctx() context: ResolverContext,\n @Arg('rawReleaseGoods', type => [NewReleaseGood], { nullable: true }) rawReleaseGoods: NewReleaseGood[],\n @Arg('bizplaceId', type => String) bizplaceId: string\n ): Promise<ReleaseGood[]> {\n const { tx } = context.state\n const availableItems: any[] = await bulkReleaseGoodsAvailableItemsFunction(rawReleaseGoods, bizplaceId, context, tx)\n\n return availableItems\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() releaseGood: ReleaseGood): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: releaseGood.domainId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() releaseGood: ReleaseGood): Promise<User> {\n return await getRepository(User).findOneBy({ id: releaseGood.creatorId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() releaseGood: ReleaseGood): Promise<User> {\n return await getRepository(User).findOneBy({ id: releaseGood.updaterId })\n }\n}\n\nasync function prepOITempTable(domain: Domain, tx: EntityManager) {\n await tx.query(\n `\n CREATE TEMP TABLE oi ON COMMIT DROP AS (\n SELECT\n SUM(oi.release_qty) as release_qty,\n SUM(oi.release_uom_value) as release_uom_value,\n oi.batch_id,\n p.id as product_id,\n oi.packing_type\n FROM\n order_inventories oi\n LEFT JOIN\n products p\n ON\n oi.product_id = p.id\n WHERE\n oi.status IN ('PENDING', 'PENDING_RECEIVE', 'PENDING_WORKSHEET', 'PENDING_SPLIT') \n AND oi.batch_id NOTNULL\n AND oi.product_id NOTNULL\n AND oi.packing_type NOTNULL\n AND oi.inventory_id IS NULL\n AND oi.domain_id = $1\n GROUP BY\n oi.product_id,\n oi.batch_id,\n oi.packing_type,\n p.id\n )`,\n [domain.id]\n )\n}\n\nasync function getAvailableAmount(\n roBizId: string,\n productIdRef: string,\n batchId: string,\n packingType: string,\n tx: EntityManager\n): Promise<{ qty: number; uomValue: number; uom: string }> {\n const result: any[] = await tx.getRepository(Inventory).query(`\n SELECT\n SUM(COALESCE(i.qty, 0)) - SUM(COALESCE(i.locked_qty, 0)) - MAX(COALESCE(oi.release_qty, 0)) as \"qty\",\n SUM(COALESCE(i.uom_value, 0)) - SUM(COALESCE(i.locked_uom_value, 0)) - MAX(COALESCE(oi.release_uom_value, 0)) as \"uom_value\",\n uom\n FROM\n inventories i\n LEFT JOIN products p on i.product_id = p.id\n LEFT JOIN oi on i.batch_id = oi.batch_id\n AND p.id = oi.product_id\n AND i.packing_type = oi.packing_type\n WHERE\n i.bizplace_id = '${roBizId}'\n AND i.status = 'STORED'\n AND i.batch_id = '${batchId}'\n AND p.id = '${productIdRef}'\n AND i.packing_type = '${packingType}'\n GROUP BY\n i.batch_id,\n p.id,\n i.packing_type,\n i.uom\n `)\n\n let qty: number = 0\n let uomValue: number = 0\n let uom: string = ''\n if (result?.length) {\n qty = result[0].qty\n uomValue = result[0].uom_value\n uom = result[0].uom\n }\n\n return { qty, uomValue, uom }\n}\n\nasync function dropOITempTable(domain: Domain, tx: EntityManager) {\n await tx.query(`DROP TABLE oi`)\n}\n\nexport async function bulkReleaseGoodsAvailableItemsFunction(\n rawReleaseGoods: any[],\n bizplaceId: string,\n context: any,\n tx?: EntityManager\n): Promise<any[]> {\n const { domain } = context.state\n const companyBizplaceId: Bizplace = await getCompanyBizplace(null, null, bizplaceId)\n\n if (!rawReleaseGoods) return\n const json_oi = JSON.stringify(\n rawReleaseGoods.map(raw => {\n return {\n sku: raw.sku,\n packing_type: raw.packingType,\n packing_size: raw.packingSize,\n uom: raw.uom,\n releaseQty: raw.releaseQty,\n release_qty: raw.releaseQty\n }\n })\n )\n\n await tx.query(\n `\n CREATE TEMP TABLE raw_release_goods(\n product_id VARCHAR(50),\n product_detail_id VARCHAR(50),\n sku VARCHAR(150),\n product_info VARCHAR(250),\n packing_type VARCHAR(50),\n packing_size INT,\n uom VARCHAR(10),\n release_qty INT\n );\n `\n )\n\n await tx.query(\n `\n INSERT INTO raw_release_goods\n SELECT p.id AS product_id,\n pd.id AS product_detail_id,\n js.sku,\n CASE WHEN p.description NOT IN (NULL, '', '-') THEN CONCAT(p.name, '(', p.description, ')')\n ELSE p.name END AS product_info,\n CASE WHEN js.packing_type NOTNULL AND js.packing_size NOTNULL THEN js.packing_type ELSE pd.packing_type END,\n CASE WHEN js.packing_type NOTNULL AND js.packing_size NOTNULL THEN js.packing_size ELSE pd.packing_size END,\n CASE WHEN js.uom NOTNULL THEN js.uom ELSE pd.uom END\n FROM JSON_POPULATE_RECORDSET(NULL::raw_release_goods, $1) js\n LEFT JOIN products p ON LOWER(js.sku) = LOWER(p.sku) AND p.bizplace_id = $2\n LEFT JOIN product_details pd ON p.id = pd.product_id\n AND CASE WHEN js.packing_type NOTNULL AND js.packing_size NOTNULL AND js.uom NOTNULL\n THEN pd.packing_type = js.packing_type AND pd.packing_size = js.packing_size AND pd.uom = js.uom \n WHEN js.packing_type NOTNULL AND js.packing_size NOTNULL AND js.uom ISNULL \t\n THEN pd.packing_type = js.packing_type AND pd.packing_size = js.packing_size AND pd.is_default IS TRUE\n WHEN js.packing_type ISNULL AND js.packing_size ISNULL AND js.uom NOTNULL\n THEN pd.uom = js.uom AND pd.is_default IS TRUE ELSE pd.is_default IS TRUE \n END;\n `,\n [json_oi, companyBizplaceId.id]\n )\n\n let availableItems = await tx.query(\n `\n WITH inv AS (\n SELECT i.product_id, foo.product_detail_id, foo.sku, foo.product_info, i.packing_type, i.packing_size, i.uom,\n SUM(i.qty - COALESCE(i.locked_qty, 0)) - COALESCE(\n (\n SELECT SUM(oi.release_qty) FROM order_inventories oi \n WHERE oi.status IN ('PENDING', 'PENDING_RECEIVE', 'PENDING_WORKSHEET', 'PENDING_SPLIT')\n AND oi.inventory_id IS null\n AND oi.product_id = i.product_id::uuid\n AND oi.packing_type = i.packing_type\n AND oi.uom = i.uom\n AND oi.domain_id = $1\n AND oi.bizplace_id = $2\n ), 0) as \"remain_qty\",\n SUM(i.uom_value - COALESCE(i.locked_uom_value, 0)) - COALESCE(\n (\n SELECT SUM(oi.release_uom_value) FROM order_inventories oi \n WHERE oi.status IN ('PENDING', 'PENDING_RECEIVE', 'PENDING_WORKSHEET', 'PENDING_SPLIT')\n AND oi.inventory_id IS null\n AND oi.product_id = i.product_id::uuid\n AND oi.packing_type = i.packing_type\n AND oi.uom = i.uom\n AND oi.domain_id = $1\n AND oi.bizplace_id = $2\n ), 0) as \"remain_uom_value\"\n FROM inventories i\n LEFT JOIN locations l\n ON i.location_id = l.id\n INNER JOIN (\n SELECT rrg.product_id, rrg.product_detail_id, rrg.sku, rrg.product_info, rrg.packing_type, rrg.packing_size, rrg.uom \n FROM raw_release_goods rrg\n GROUP BY rrg.product_id, rrg.product_detail_id, rrg.sku, rrg.product_info, rrg.packing_type, rrg.packing_size, rrg.uom\n ) AS foo\n ON i.product_id = foo.product_id::uuid\n AND i.packing_type = foo.packing_type\n AND i.packing_size = foo.packing_size\n AND i.uom = foo.uom\n AND i.domain_id = $1\n AND i.bizplace_id = $2\n WHERE l.type NOT IN ($3, $4)\n GROUP BY i.product_id, foo.product_detail_id, foo.sku,foo.product_info, i.packing_type, i.packing_size, i.uom\n ORDER BY foo.sku, remain_qty\n ) SELECT * FROM inv WHERE remain_qty > 0\n `,\n [domain.id, bizplaceId, LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE]\n )\n\n await tx.query(`DROP TABLE raw_release_goods`)\n\n availableItems = availableItems.map(item => {\n return {\n productId: item.product_id,\n productDetailId: item.product_detail_id,\n productInfo: item.product_info,\n sku: item.sku,\n packingType: item.packing_type,\n packingSize: Number(item.packing_size || 0),\n uom: item.uom,\n remainQty: item.remain_qty,\n remainUomValue: item.remain_uom_value\n }\n })\n\n return _extractData(rawReleaseGoods, availableItems)\n}\n\nfunction _extractData(rawData, validatedData) {\n return rawData.map(raw => {\n const idx = validatedData.findIndex(val => {\n const comparison = ['packingType', 'packingSize', 'uom']\n\n let a: any = {},\n b: any = {}\n\n comparison.forEach(cc => {\n if (raw[cc]) {\n a[cc] = raw[cc]\n b[cc] = val[cc]\n }\n })\n\n a = JSON.stringify(Object.fromEntries(Object.entries(a).sort()))\n b = JSON.stringify(Object.fromEntries(Object.entries(b).sort()))\n\n return val.sku.toLowerCase() == raw.sku.toLowerCase() && a === b\n })\n\n let releaseUomValue = 0\n\n // if sku is matched, assign qty and product id\n if (idx >= 0) {\n // assign qty to rawData as much as possible\n releaseUomValue =\n (Math.round((validatedData[idx]?.remainUomValue / validatedData[idx]?.remainQty) * 100) / 100) * raw.releaseQty\n\n raw.assignedQty =\n validatedData[idx].remainQty >= raw.releaseQty\n ? raw.releaseQty > 0\n ? raw.releaseQty\n : 0\n : validatedData[idx].remainQty\n\n raw.assignedUomValue =\n validatedData[idx].remainUomValue >= releaseUomValue\n ? releaseUomValue > 0\n ? releaseUomValue\n : 0\n : validatedData[idx].remainUomValue\n\n // deduct qty & uomValue from validateData\n validatedData[idx].remainQty -= raw.assignedQty\n validatedData[idx].remainUomValue -= raw.assignedUomValue\n\n raw.productId = validatedData[idx].productId\n raw.productDetailId = validatedData[idx].productDetailId\n raw.productInfo = validatedData[idx].productInfo\n raw.packingType = validatedData[idx].packingType\n raw.packingSize = validatedData[idx].packingSize\n raw.uom = validatedData[idx].uom\n } else {\n raw.assignedQty = 0\n raw.assignedUomValue = 0\n raw.productId = null\n }\n\n let releaseDate = _getStdDateStr(new Date(raw.releaseDate || ''))\n\n return {\n ...raw,\n releaseUomValue,\n errorMsg:\n !raw.productId || !raw.productDetailId\n ? 'inventory or product not found'\n : raw.releaseQty <= 0\n ? 'invalid release qty'\n : raw.assignedQty < raw.releaseQty\n ? 'insufficient stock'\n : raw.releaseDate == ''\n ? 'release date is empty'\n : releaseDate < _getStdDateStr(new Date())\n ? 'backdate is not allowed'\n : !raw.refNo\n ? 'ref no is empty'\n : ''\n }\n })\n}\n\nfunction getConditionValues(conditions: Filter[]): {\n batchId?: string\n containerNo?: string\n product?: string[]\n packingType?: string\n inventory?: { batchId: string; productId: string }[]\n} {\n return conditions.reduce((condition, cond: Filter): {} => {\n condition = {\n ...condition,\n [cond.name]: cond.value\n }\n\n return condition\n }, {})\n}\n\nfunction _getStdDateStr(date) {\n if (isNaN(date.getFullYear())) return ''\n else {\n date.setHours(date.getHours() + 8)\n return date.toISOString().split('T')[0]\n }\n}\n"]}
1
+ {"version":3,"file":"release-good-query.js","sourceRoot":"","sources":["../../../server/service/release-good/release-good-query.ts"],"names":[],"mappings":";;;;AAAA,+CAA8F;AAC9F,qCAA6F;AAE7F,qEAA4D;AAC5D,yDAAwE;AACxE,uDAA+G;AAC/G,6CAA4C;AAC5C,iDAAiH;AACjH,mEAAyE;AAEzE,+CAAuF;AACvF,wEAAmE;AAEnE,iDAA4C;AAC5C,6DAAoH;AAG7G,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAGrB,AAAN,KAAK,CAAC,YAAY,CACT,OAAwB,EACN,MAAiB;QAE1C,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAEtC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;gBACtE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,MAAM,IAAA,kCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC;oBAClD,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;YACrF,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;gBAC1B,IAAI,WAAW,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAA;gBAClE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAA;gBAE1C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE;oBAChC,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;YACjF,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAA;gBAC9D,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;gBAExC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;oBACzE,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,EAAE,GAAoC,IAAA,qBAAa,EAAC,0BAAW,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;YAC/F,IAAA,kBAAU,EAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC/B,IAAI,KAAU,CAAA;YACd,IAAI,KAAa,CAAA;YACjB,EAAE,CAAC,SAAS,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAA;YAClD,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YAC3C,EAAE,CAAC,iBAAiB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;YAC/C,EAAE,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAA;YACjD,EAAE,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;YAC9C,EAAE,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;YAC3C,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;YAC1C,EAAE,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;YAC9C,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;YAC7C,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;YAC7C,EAAE,CAAC,QAAQ,CACT,QAAQ,CAAC,EAAE;gBACT,OAAO,QAAQ;qBACZ,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC;qBAC1B,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC;qBAC/B,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC;qBAClC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC;qBACjC,KAAK,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;qBAC3D,QAAQ,CAAC,4BAA4B,CAAC,CAAA;YAC3C,CAAC,EACD,IAAI,EACJ,uBAAuB,CACxB,CAAA;YAED,MAAM,gBAAgB,GAAG,CAAC,UAAU,CAAC,CAAA;YACrC,MAAM,IAAI,GAAqB,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAC3D,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,iCACV,GAAG,KACN,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI;oBAC7F,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,KAAK,IACT,EACF,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CACvE,CAAA;YAED,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAEhB,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,MAAM,EAAE,CAAC,eAAe,EAAE,CAAA;YACrD,KAAK,GAAG,QAAQ,CAAA;YAChB,KAAK,GAAG,QAAQ,CAAA;YAEhB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CACR,OAAwB,EACE,IAAY,EACN,UAAkB;QAEzD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,MAAM,IAAA,qBAAa,EAAC,0BAAW,CAAC,CAAC,OAAO,CAAC;gBAC9C,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;oBACzB,IAAI;oBACJ,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,MAAM,IAAA,kCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE;iBAClE;gBACD,SAAS,EAAE;oBACT,QAAQ;oBACR,UAAU;oBACV,eAAe;oBACf,eAAe;oBACf,kBAAkB;oBAClB,0BAA0B;oBAC1B,4BAA4B;oBAC5B,oCAAoC;oBACpC,WAAW;oBACX,eAAe;oBACf,SAAS;oBACT,SAAS;iBACV;aACF,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,UAAU,EAAE,CAAC;YACtB,IAAI,WAAW,GAAG,MAAM,IAAA,qBAAa,EAAC,0BAAW,CAAC,CAAC,OAAO,CAAC;gBACzD,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;oBACzB,UAAU;oBACV,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,MAAM,IAAA,kCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE;iBAClE;gBACD,SAAS,EAAE,CAAC,UAAU,CAAC;aACxB,CAAC,CAAA;YAEF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;YACxD,CAAC;iBAAM,CAAC;gBACN,OAAO,WAAW,CAAA;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAKK,AAAN,KAAK,CAAC,iBAAiB,CACd,OAAwB,EACG,KAAc,EACf,IAAa;QAE9C,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YACpC,IAAI,KAAU,CAAA;YAEd,IAAI,IAAI;gBAAE,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;gBAC7B,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;YAE9B,MAAM,WAAW,GAAgB,MAAM,EAAE,CAAC,aAAa,CAAC,0BAAW,CAAC,CAAC,OAAO,CAAC;gBAC3E,KAAK,oBAAO,KAAK,CAAE;gBACnB,SAAS,EAAE;oBACT,QAAQ;oBACR,UAAU;oBACV,eAAe;oBACf,eAAe;oBACf,eAAe;oBACf,uBAAuB;oBACvB,WAAW;oBACX,eAAe;oBACf,yBAAyB;oBACzB,qBAAqB;oBACrB,SAAS;oBACT,SAAS;iBACV;aACF,CAAC,CAAA;YAEF,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,IAAI,GAAuC,EAAE;qBAC9C,aAAa,CAAC,gCAAc,CAAC;qBAC7B,kBAAkB,CAAC,IAAI,CAAC;qBACxB,iBAAiB,CAAC,cAAc,EAAE,WAAW,CAAC;qBAC9C,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC;qBAC1C,iBAAiB,CAAC,oBAAoB,EAAE,UAAU,CAAC;qBACnD,KAAK,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;qBAC1D,QAAQ,CAAC,qCAAqC,EAAE,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC;qBAClF,QAAQ,CAAC,6CAA6C,EAAE;oBACvD,oBAAoB,EAAE,CAAC,kCAAsB,CAAC,cAAc,EAAE,kCAAsB,CAAC,QAAQ,CAAC;iBAC/F,CAAC;qBACD,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAA;gBAEhC,IAAI,gBAAgB,GAAqB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;gBAE7D,MAAM,aAAa,GAAkB,WAAW,CAAC,aAAa,CAAA;gBAC9D,MAAM,gBAAgB,GAAiB,MAAM,EAAE,CAAC,aAAa,CAAC,4BAAU,CAAC,CAAC,IAAI,CAAC;oBAC7E,KAAK,EAAE;wBACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;wBACzB,KAAK,EAAE,WAAW,CAAC,EAAE;wBACrB,QAAQ,EAAE,2BAAe,CAAC,cAAc;qBACzC;iBACF,CAAC,CAAA;gBAEF,IAAI,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAwB,EAAE,EAAE;;oBACtD,IAAI,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,0CAAE,EAAE,EAAE,CAAC;wBAC5B,MAAM,SAAS,GAAc,QAAQ,CAAC,SAAS,CAAA;wBAC/C,OAAO;4BACL,EAAE,EAAE,SAAS,CAAC,EAAE;4BAChB,IAAI,EAAE,SAAS,CAAC,IAAI;4BACpB,OAAO,EAAE,SAAS,CAAC,OAAO;4BAC1B,UAAU,EAAE,SAAS,CAAC,UAAU;4BAChC,QAAQ,EAAE,SAAS,CAAC,QAAQ;4BAC5B,OAAO,EAAE,QAAQ,CAAC,OAAO;4BACzB,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE;4BACjC,WAAW,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC,WAAW,GAAG;4BACzE,WAAW,EAAE,QAAQ,CAAC,WAAW;4BACjC,WAAW,EAAE,QAAQ,CAAC,WAAW;4BACjC,QAAQ,EAAE,SAAS,CAAC,QAAQ;4BAC5B,GAAG,EAAE,SAAS,CAAC,GAAG;4BAClB,SAAS,EAAE,SAAS,CAAC,SAAS;4BAC9B,cAAc,EAAE,SAAS,CAAC,cAAc;4BACxC,GAAG,EAAE,SAAS,CAAC,GAAG;4BAClB,QAAQ,EAAE,SAAS,CAAC,QAAQ;4BAC5B,SAAS,EAAE,SAAS,CAAC,MAAM;4BAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;4BAC/B,eAAe,EAAE,QAAQ,CAAC,eAAe;4BACzC,MAAM,EAAE,QAAQ,CAAC,MAAM;4BACvB,cAAc,EAAE,QAAQ,CAAC,cAAc;yBACxC,CAAA;oBACH,CAAC;gBACH,CAAC,CAAC,CACH,CAAA;gBAED,MAAM,MAAM,mCACP,WAAW,KACd,UAAU,EAAE,gBAAgB,EAC5B,iBAAiB,EAAE;wBACjB,WAAW,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,KAAI,EAAE;wBAC7C,aAAa,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,KAAI,EAAE;wBACjD,oBAAoB,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,oBAAoB,KAAI,EAAE;wBAC/D,oBAAoB,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,oBAAoB,KAAI,EAAE;wBAC/D,oBAAoB,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,oBAAoB,KAAI,EAAE;wBAC/D,QAAQ,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,KAAI,EAAE;wBACvC,MAAM,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,KAAI,EAAE;wBACnC,wBAAwB,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,wBAAwB,KAAI,IAAI;qBAC1E,EACD,cAAc,EAAE,QAAQ,GACzB,CAAA;gBAED,OAAO,MAAM,CAAA;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAM,CAAC,KAAK,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAA;YAC/D,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,mBAAmB,CAChB,OAAwB,EACN,MAAiB;;QAE1C,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAClB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAEtC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;YAClE,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAA;YAChF,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAA;YAChF,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA;YACpE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;YACtE,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAA;YACpF,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAA;YAClF,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;YAC3E,MAAM,UAAU,GAAG,MAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,0CAAE,KAAK,CAAA;YAE7E,IAAI,MAAM,IAAA,kCAAsB,EAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;oBAClE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,OAAO;wBACjB,KAAK,EAAE,CAAC,wBAAY,CAAC,OAAO,EAAE,wBAAY,CAAC,OAAO,EAAE,EAAE,CAAC;wBACvD,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,MAAM,IAAA,kCAAuB,EAAC,MAAM,EAAE,IAAI,CAAC;oBAClD,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAA;YACJ,CAAC;YAED,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA;YACvE,CAAC;YAED,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;YACxE,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;oBAC1B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,KAAK,GAAG,MAAM,CAAA;gBACvE,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAA;oBAC3E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,KAAK,GAAG,IAAI,CAAA;gBACrE,CAAC;YACH,CAAC;YAED,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAA;gBACtF,IAAI,iBAAiB,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;oBACpC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;oBACxC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,aAAa;wBACvB,KAAK,EAAE,IAAI;wBACX,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAA;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;oBACxC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,SAAS;wBACnB,KAAK,EAAE,IAAI;wBACX,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAA;gBACpF,IAAI,gBAAgB,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;oBACnC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAA;oBACvC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE,YAAY;wBAClB,QAAQ,EAAE,aAAa;wBACvB,KAAK,EAAE,IAAI;wBACX,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAA;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAA;oBACvC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;wBAClB,IAAI,EAAE,YAAY;wBAClB,QAAQ,EAAE,SAAS;wBACnB,KAAK,EAAE,IAAI;wBACX,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAAA;YACrF,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;gBAC1B,IAAI,WAAW,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAA;gBAClE,IAAI,eAAe,GAAG,MAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,0CAAE,KAAK,CAAA;gBACpF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAA;gBAE1C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW;oBACvD,QAAQ,EAAE,KAAK;oBACf,KAAK,EAAE,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE;oBACxE,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAA;YACJ,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAA;YACjF,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAA;gBAC9D,IAAI,aAAa,GAAG,MAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,0CAAE,KAAK,CAAA;gBAChF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAA;gBAExC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,EAAE,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW;oBACvD,QAAQ,EAAE,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;oBAC5C,KAAK,EACH,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;oBAC1G,QAAQ,EAAE,KAAK;iBAChB,CAAC,CAAA;YACJ,CAAC;YAED,IAAI,eAAe,IAAI,eAAe,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;gBAClD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAA;YAC1E,CAAC;YAED,MAAM,EAAE,GAAoC,IAAA,qBAAa,EAAC,0BAAW,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;YAC/F,IAAA,kBAAU,EAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC/B,EAAE,CAAC,SAAS,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAA;YAClD,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YAC3C,EAAE,CAAC,iBAAiB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;YAC/C,EAAE,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;YAC9C,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;YAC7C,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;YAC7C,EAAE,CAAC,iBAAiB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;YACnD,EAAE,CAAC,iBAAiB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;YACjD,EAAE,CAAC,QAAQ,CACT,QAAQ,CAAC,EAAE;gBACT,OAAO,QAAQ;qBACZ,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC;qBAC1B,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC;qBAC/B,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC;qBAClC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC;qBACjC,KAAK,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;qBAC3D,QAAQ,CAAC,gCAAgC,CAAC,CAAA;YAC/C,CAAC,EACD,IAAI,EACJ,uBAAuB,CACxB,CAAA;YAED,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,YAAY,GAAG,SAAS,CAAC,KAAK;qBAC/B,KAAK,CAAC,EAAE,CAAC;qBACT,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC;qBAC1B,IAAI,CAAC,EAAE,CAAC,CAAA;gBAEX,IAAI,QAAQ,GAAG,YAAY;qBACxB,WAAW,EAAE;qBACb,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,IAAI,CAAC,EAAE;oBACV,OAAO,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAA;gBACtD,CAAC,CAAC;qBACD,IAAI,CAAC,GAAG,CAAC,CAAA;gBAEZ,EAAE,CAAC,QAAQ,CACT;;;;;2CAKiC,QAAQ;+CACJ,QAAQ;0CACb,QAAQ;iDACD,QAAQ;;SAEhD,CACA,CAAA;YACH,CAAC;YAED,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,YAAY,GAAG,eAAe,CAAC,KAAK;qBACrC,KAAK,CAAC,EAAE,CAAC;qBACT,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC;qBAC1B,IAAI,CAAC,EAAE,CAAC,CAAA;gBAEX,IAAI,UAAU,GAAG,YAAY;qBAC1B,WAAW,EAAE;qBACb,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,IAAI,CAAC,EAAE;oBACV,OAAO,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAA;gBACtD,CAAC,CAAC;qBACD,IAAI,CAAC,GAAG,CAAC,CAAA;gBAEZ,EAAE,CAAC,QAAQ,CAAC;0CACsB,UAAU;+CACL,UAAU;iDACR,UAAU;iDACV,UAAU;UACjD,CAAC,CAAA;YACL,CAAC;YAED,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;YAChD,MAAM,IAAI,GAAqB,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CAC3D,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,iCACV,GAAG,KACN,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI;oBAC7F,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,KAAK,IACT,EACF,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAC1E,CAAA;YAED,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAEhB,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,eAAe,EAAE,CAAA;YAE/C,KAAK,GAAG,KAAK;iBACV,MAAM,CAAC,IAAI,CAAC,EAAE;gBACb,OAAO,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAA;YACpC,CAAC,CAAC;iBACD,GAAG,CAAC,IAAI,CAAC,EAAE;gBACV,uCACK,IAAI,KACP,WAAW,EAAE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IACzC;YACH,CAAC,CAAC,CAAA;YACJ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAM,CAAC,KAAK,CAAC,4CAA4C,KAAK,EAAE,CAAC,CAAA;YACjE,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,qBAAqB,CAClB,OAAwB,EACuB,OAAkB,EACb,UAAuB,EAC1B,QAAoB;QAE5E,MAAM,UAAU,GAAa,MAAM,IAAA,wBAAa,EAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1F,MAAM,SAAS,GAAG,KAAK,CAAA;QACvB,MAAM,UAAU,GAAG,MAAM,CAAA;QACzB,MAAM,SAAS,GAAG,KAAK,CAAA;QACvB,MAAM,UAAU,GAAG,OAAO,CAAA;QAC1B,IAAI,EACF,OAAO,GAAG,IAAI,EACd,WAAW,GAAG,IAAI,EAClB,OAAO,GAAG,EAAE,EACZ,WAAW,GAAG,IAAI,EAClB,SAAS,GAAG,EAAE,EACf,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;QAElC,MAAM,MAAM,GAAW;;UAEjB,SAAS;UACT,SAAS;wBACK,SAAS,4BAA4B,SAAS;wBAC9C,SAAS,iCAAiC,SAAS;UACjE,UAAU;UACV,UAAU;UACV,SAAS;KACd,CAAA;QACD,MAAM,IAAI,GAAW;;sBAEH,SAAS;;mBAEZ,UAAU;;UAEnB,UAAU,SAAS,SAAS;;0BAEZ,SAAS;;UAEzB,SAAS,cAAc,SAAS;KACrC,CAAA;QAED,MAAM,KAAK,GAAW;;UAEhB,SAAS;cACL,SAAS;cACT,SAAS,mBAAmB,UAAU,CAAC,EAAE;UAC7C,OAAO,CAAC,CAAC,CAAC,aAAa,SAAS,qBAAqB,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;UACnF,WAAW,CAAC,CAAC,CAAC,aAAa,SAAS,yBAAyB,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;UAC/F,WAAW,CAAC,CAAC,CAAC,aAAa,SAAS,yBAAyB,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;UAE/F,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,IAAG,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC;YAC/B,CAAC,CAAC,OAAO,UAAU,WAAW,OAAO,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAClF,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI;gBACnB,CAAC,CAAC,OAAO,UAAU,YAAY;gBAC/B,CAAC,CAAC,EACR;UAEE,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,MAAM,IAAG,CAAC;YACnB,CAAC,CAAC;qBACO,SAAS,cAAc,UAAU,QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAsD,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC;iBAClG,QACL;kBACI,SAAS;iBACR,GAAG,CAAC,CAAC,GAA2C,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,OAAO,GAAG,CAAC,SAAS,IAAI,CAAC;iBAC9F,IAAI,CAAC,IAAI,CAAC;;aAEhB;YACD,CAAC,CAAC,EACN;KACH,CAAA;QAED,6HAA6H;QAC7H,MAAM,QAAQ,GAAW;;QAErB,SAAS;QACT,SAAS;QACT,SAAS;QACT,UAAU;KACb,CAAA;QAED,MAAM,YAAY,GAAW;iBAChB,UAAU,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;gBACzC,UAAU,CAAC,KAAK;KAC3B,CAAA;QAED,MAAM,OAAO,GAA0B,IAAA,qBAAa,EAAC,0BAAS,CAAC,CAAA;QAC/D,IAAI,KAAK,GAAU,MAAM,OAAO,CAAC,KAAK,CAAC;QACnC,MAAM,IAAI,IAAI,IAAI,KAAK,IAAI,QAAQ,IAAI,YAAY;KACtD,CAAC,CAAA;QACF,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;YAC9B,OAAO;gBACL,OAAO,EAAE,IAAI,CAAC,QAAQ;gBACtB,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,cAAc,EAAE,IAAI,CAAC,gBAAgB;gBACrC,WAAW,EAAE,IAAI,CAAC,YAAY;gBAC9B,OAAO,EAAE;oBACP,EAAE,EAAE,IAAI,CAAC,UAAU;oBACnB,IAAI,EAAE,IAAI,CAAC,YAAY;iBACxB;gBACD,WAAW,EAAE,IAAI,CAAC,YAAY;aAC/B,CAAA;QACH,CAAC,CAAQ,CAAA;QAET,MAAM,OAAO,GAAwB,MAAM,OAAO,CAAC,KAAK,CAAC;;8CAEf,IAAI,IAAI,KAAK,IAAI,QAAQ;;KAElE,CAAC,CAAA;QAEF,OAAO;YACL,KAAK;YACL,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAChC,CAAA;IACH,CAAC;IAIK,AAAN,KAAK,CAAC,8BAA8B,CAC3B,OAAwB,EACuC,eAAiC,EACpE,UAAkB;QAErD,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC5B,MAAM,cAAc,GAAU,MAAM,sCAAsC,CAAC,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;QAEpH,OAAO,cAAc,CAAA;IACvB,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAS,WAAwB;QAC3C,OAAO,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC5E,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,WAAwB;QAC5C,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAA;IAC3E,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,WAAwB;QAC5C,OAAO,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAA;IAC3E,CAAC;CACF,CAAA;AAroBY,4CAAgB;AAGrB;IAFL,IAAA,wBAAS,EAAC,sFAAsF,CAAC;IACjG,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,oCAAe,CAAC;IAE/B,mBAAA,IAAA,kBAAG,GAAE,CAAA;IACL,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;;qDAAS,iBAAS;;oDAyF3C;AAIK;IAFL,IAAA,wBAAS,EAAC,6EAA6E,CAAC;IACxF,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,0BAAW,CAAC;IAE3B,mBAAA,IAAA,kBAAG,GAAE,CAAA;IACL,mBAAA,IAAA,kBAAG,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/B,mBAAA,IAAA,kBAAG,EAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;;;;mDA0CvC;AAKK;IAHL,IAAA,wBAAS,EAAC,6EAA6E,CAAC;IACxF,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,0BAAW,CAAC;IAE3B,mBAAA,IAAA,kBAAG,GAAE,CAAA;IACL,mBAAA,IAAA,kBAAG,EAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAChC,mBAAA,IAAA,kBAAG,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;;;;yDAyGjC;AAIK;IAFL,IAAA,wBAAS,EAAC,uFAAuF,CAAC;IAClG,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,oCAAe,CAAC;IAE/B,mBAAA,IAAA,kBAAG,GAAE,CAAA;IACL,mBAAA,IAAA,mBAAI,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,CAAC,CAAA;;qDAAS,iBAAS;;2DA0O3C;AAIK;IAFL,IAAA,wBAAS,EAAC,6EAA6E,CAAC;IACxF,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,4CAAuB,CAAC;IAEvC,mBAAA,IAAA,kBAAG,GAAE,CAAA;IACL,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,cAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACpD,mBAAA,IAAA,kBAAG,EAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,kBAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACzD,mBAAA,IAAA,kBAAG,EAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,eAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;;4DADiB,kBAAU;;6DAiHnF;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,0BAAW,CAAC,CAAC;IAE7B,mBAAA,IAAA,kBAAG,GAAE,CAAA;IACL,mBAAA,IAAA,kBAAG,EAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,mCAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACpE,mBAAA,IAAA,kBAAG,EAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;;;;sEAMnC;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IAChB,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAc,0BAAW;;8CAE5C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAc,0BAAW;;+CAE7C;AAGK;IADL,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,mBAAA,IAAA,mBAAI,GAAE,CAAA;;6CAAc,0BAAW;;+CAE7C;2BApoBU,gBAAgB;IAD5B,IAAA,uBAAQ,EAAC,0BAAW,CAAC;GACT,gBAAgB,CAqoB5B;AAED,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,EAAiB;IAC9D,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;MA0BE,EACF,CAAC,MAAM,CAAC,EAAE,CAAC,CACZ,CAAA;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,OAAe,EACf,YAAoB,EACpB,OAAe,EACf,WAAmB,EACnB,EAAiB;IAEjB,MAAM,MAAM,GAAU,MAAM,EAAE,CAAC,aAAa,CAAC,0BAAS,CAAC,CAAC,KAAK,CAAC;;;;;;;;;;;;yBAYvC,OAAO;;0BAEN,OAAO;oBACb,YAAY;8BACF,WAAW;;;;;;GAMtC,CAAC,CAAA;IAEF,IAAI,GAAG,GAAW,CAAC,CAAA;IACnB,IAAI,QAAQ,GAAW,CAAC,CAAA;IACxB,IAAI,GAAG,GAAW,EAAE,CAAA;IACpB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE,CAAC;QACnB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QACnB,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC9B,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IACrB,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAA;AAC/B,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,EAAiB;IAC9D,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;AACjC,CAAC;AAEM,KAAK,UAAU,sCAAsC,CAC1D,eAAsB,EACtB,UAAkB,EAClB,OAAY,EACZ,EAAkB;IAElB,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAChC,MAAM,iBAAiB,GAAa,MAAM,IAAA,6BAAkB,EAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;IAEpF,IAAI,CAAC,eAAe;QAAE,OAAM;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAC5B,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACxB,OAAO;YACL,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,YAAY,EAAE,GAAG,CAAC,WAAW;YAC7B,YAAY,EAAE,GAAG,CAAC,WAAW;YAC7B,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,WAAW,EAAE,GAAG,CAAC,UAAU;SAC5B,CAAA;IACH,CAAC,CAAC,CACH,CAAA;IAED,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;OAWG,CACJ,CAAA;IAED,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;;;;;OAoBG,EACH,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAChC,CAAA;IAED,IAAI,cAAc,GAAG,MAAM,EAAE,CAAC,KAAK,CACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2CG,EACH,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,8BAAa,CAAC,UAAU,EAAE,8BAAa,CAAC,OAAO,CAAC,CACzE,CAAA;IAED,MAAM,EAAE,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAE9C,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACzC,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,eAAe,EAAE,IAAI,CAAC,iBAAiB;YACvC,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;YAC3C,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,cAAc,EAAE,IAAI,CAAC,gBAAgB;SACtC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,YAAY,CAAC,eAAe,EAAE,cAAc,CAAC,CAAA;AACtD,CAAC;AAhID,wFAgIC;AAED,SAAS,YAAY,CAAC,OAAO,EAAE,aAAa;IAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;;QACvB,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACxC,MAAM,UAAU,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,CAAC,CAAA;YAExD,IAAI,CAAC,GAAQ,EAAE,EACb,CAAC,GAAQ,EAAE,CAAA;YAEb,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBACtB,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACZ,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;oBACf,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;gBACjB,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YAChE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YAEhE,OAAO,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAClE,CAAC,CAAC,CAAA;QAEF,IAAI,eAAe,GAAG,CAAC,CAAA;QAEvB,+CAA+C;QAC/C,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,4CAA4C;YAC5C,eAAe;gBACb,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA,MAAA,aAAa,CAAC,GAAG,CAAC,0CAAE,cAAc,KAAG,MAAA,aAAa,CAAC,GAAG,CAAC,0CAAE,SAAS,CAAA,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,UAAU,CAAA;YAEjH,GAAG,CAAC,WAAW;gBACb,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,UAAU;oBAC5C,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC;wBAClB,CAAC,CAAC,GAAG,CAAC,UAAU;wBAChB,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,CAAA;YAElC,GAAG,CAAC,gBAAgB;gBAClB,aAAa,CAAC,GAAG,CAAC,CAAC,cAAc,IAAI,eAAe;oBAClD,CAAC,CAAC,eAAe,GAAG,CAAC;wBACnB,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,cAAc,CAAA;YAEvC,0CAA0C;YAC1C,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC,WAAW,CAAA;YAC/C,aAAa,CAAC,GAAG,CAAC,CAAC,cAAc,IAAI,GAAG,CAAC,gBAAgB,CAAA;YAEzD,GAAG,CAAC,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,CAAA;YAC5C,GAAG,CAAC,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,eAAe,CAAA;YACxD,GAAG,CAAC,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,CAAA;YAChD,GAAG,CAAC,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,CAAA;YAChD,GAAG,CAAC,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,CAAA;YAChD,GAAG,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,WAAW,GAAG,CAAC,CAAA;YACnB,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAA;YACxB,GAAG,CAAC,SAAS,GAAG,IAAI,CAAA;QACtB,CAAC;QAED,IAAI,WAAW,GAAG,cAAc,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAA;QAEjE,uCACK,GAAG,KACN,eAAe,EACf,QAAQ,EACN,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,eAAe;gBACpC,CAAC,CAAC,gCAAgC;gBAClC,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC;oBACnB,CAAC,CAAC,qBAAqB;oBACvB,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,UAAU;wBAChC,CAAC,CAAC,oBAAoB;wBACtB,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;4BACrB,CAAC,CAAC,uBAAuB;4BACzB,CAAC,CAAC,WAAW,GAAG,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC;gCACxC,CAAC,CAAC,yBAAyB;gCAC3B,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK;oCACV,CAAC,CAAC,iBAAiB;oCACnB,CAAC,CAAC,EAAE,IACnB;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAoB;IAO9C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,IAAY,EAAM,EAAE;QACvD,SAAS,mCACJ,SAAS,KACZ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,GACxB,CAAA;QAED,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;AACR,CAAC;AAED,SAAS,cAAc,CAAC,IAAI;IAC1B,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAAE,OAAO,EAAE,CAAA;SACnC,CAAC;QACJ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAA;QAClC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACzC,CAAC;AACH,CAAC","sourcesContent":["import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'\nimport { EntityManager, In, OrderByCondition, Repository, SelectQueryBuilder } from 'typeorm'\n\nimport { Attachment } from '@things-factory/attachment-base'\nimport { checkUserBelongsDomain, User } from '@things-factory/auth-base'\nimport { Bizplace, getCompanyBizplace, getMyBizplace, getPermittedBizplaceIds } from '@things-factory/biz-base'\nimport { logger } from '@things-factory/env'\nimport { buildQuery, Domain, Filter, getRepository, ListParam, Pagination, Sorting } from '@things-factory/shell'\nimport { Inventory, LOCATION_TYPE } from '@things-factory/warehouse-base'\n\nimport { ATTACHMENT_TYPE, ORDER_INVENTORY_STATUS, ORDER_STATUS } from '../../constants'\nimport { OrderInventory } from '../order-inventory/order-inventory'\nimport { ShippingOrder } from '../shipping-order/shipping-order'\nimport { ReleaseGood } from './release-good'\nimport { NewReleaseGood, ReleasableInventory, ReleasableInventoryList, ReleaseGoodList } from './release-good-types'\n\n@Resolver(ReleaseGood)\nexport class ReleaseGoodQuery {\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ReleaseGoodList)\n async releaseGoods(\n @Ctx() context: ResolverContext,\n @Args(type => ListParam) params: ListParam\n ): Promise<ReleaseGoodList> {\n try {\n const { domain, user } = context.state\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<ReleaseGood> = getRepository(ReleaseGood).createQueryBuilder('rg')\n buildQuery(qb, params, context)\n let items: any\n let total: number\n qb.addSelect('COALESCE(\"cc\".rank, 99999)', 'rank')\n qb.leftJoinAndSelect('rg.domain', 'domain')\n qb.leftJoinAndSelect('rg.bizplace', 'bizplace')\n qb.leftJoinAndSelect('rg.orderInventories', 'oi')\n qb.leftJoinAndSelect('rg.orderProducts', 'op')\n qb.leftJoinAndSelect('oi.inventory', 'inv')\n qb.leftJoinAndSelect('oi.product', 'prod')\n qb.leftJoinAndSelect('rg.arrivalNotice', 'an')\n qb.leftJoinAndSelect('rg.creator', 'creator')\n qb.leftJoinAndSelect('rg.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 = 'RO_LIST_STATUS'`)\n },\n 'cc',\n 'cc.status = rg.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' : 'rg.' + 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 let [itemsRes, totalRes] = await qb.getManyAndCount()\n items = itemsRes\n total = totalRes\n\n return { items, total }\n } catch (error) {\n throw error\n }\n }\n\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ReleaseGood)\n async releaseGood(\n @Ctx() context: ResolverContext,\n @Arg('name', { nullable: true }) name: string,\n @Arg('trackingNo', { nullable: true }) trackingNo: string\n ): Promise<ReleaseGood> {\n const { domain, user } = context.state\n\n if (name) {\n return await getRepository(ReleaseGood).findOne({\n where: {\n domain: { id: domain.id },\n name,\n bizplace: { id: In(await getPermittedBizplaceIds(domain, user)) }\n },\n relations: [\n 'domain',\n 'bizplace',\n 'shippingOrder',\n 'arrivalNotice',\n 'orderInventories',\n 'orderInventories.product',\n 'orderInventories.inventory',\n 'orderInventories.inventory.product',\n 'orderVass',\n 'orderVass.vas',\n 'creator',\n 'updater'\n ]\n })\n } else if (trackingNo) {\n let releaseGood = await getRepository(ReleaseGood).findOne({\n where: {\n domain: { id: domain.id },\n trackingNo,\n bizplace: { id: In(await getPermittedBizplaceIds(domain, user)) }\n },\n relations: ['bizplace']\n })\n\n if (!releaseGood) {\n throw new Error('Tracking No not found in any orders')\n } else {\n return releaseGood\n }\n }\n }\n\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => ReleaseGood)\n async releaseGoodDetail(\n @Ctx() context: ResolverContext,\n @Arg('refNo', { nullable: true }) refNo?: string,\n @Arg('name', { nullable: true }) name?: string\n ): Promise<ReleaseGood> {\n try {\n const { domain, tx } = context.state\n let param: any\n\n if (name) param = { domain, name }\n else param = { domain, refNo }\n\n const releaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({\n where: { ...param },\n relations: [\n 'domain',\n 'bizplace',\n 'shippingOrder',\n 'arrivalNotice',\n 'orderProducts',\n 'orderProducts.product',\n 'orderVass',\n 'orderVass.vas',\n 'orderVass.targetProduct',\n 'orderVass.inventory',\n 'creator',\n 'updater'\n ]\n })\n\n if (releaseGood) {\n let oiQb: SelectQueryBuilder<OrderInventory> = tx\n .getRepository(OrderInventory)\n .createQueryBuilder('oi')\n .leftJoinAndSelect('oi.inventory', 'inventory')\n .leftJoinAndSelect('oi.product', 'product')\n .leftJoinAndSelect('inventory.location', 'location')\n .where('oi.domain_id = :domainId', { domainId: domain.id })\n .andWhere('oi.release_good_id = :releaseGoodId', { releaseGoodId: releaseGood.id })\n .andWhere('oi.status NOT IN (:...orderInventoryStatus)', {\n orderInventoryStatus: [ORDER_INVENTORY_STATUS.COMPLETE_SPLIT, ORDER_INVENTORY_STATUS.REPLACED]\n })\n .orderBy('product.sku', 'ASC')\n\n let orderInventories: OrderInventory[] = await oiQb.getMany()\n\n const shippingOrder: ShippingOrder = releaseGood.shippingOrder\n const foundAttachments: Attachment[] = await tx.getRepository(Attachment).find({\n where: {\n domain: { id: domain.id },\n refBy: releaseGood.id,\n category: ATTACHMENT_TYPE.DELIVERY_ORDER\n }\n })\n\n let invInfos = await Promise.all(\n orderInventories.map(async (orderInv: OrderInventory) => {\n if (orderInv?.inventory?.id) {\n const inventory: Inventory = orderInv.inventory\n return {\n id: inventory.id,\n name: inventory.name,\n batchId: inventory.batchId,\n batchIdRef: inventory.batchIdRef,\n palletId: inventory.palletId,\n product: orderInv.product,\n productIdRef: orderInv.product.id,\n productName: `${orderInv.product.name} (${orderInv.product.description})`,\n packingType: orderInv.packingType,\n packingSize: orderInv.packingSize,\n location: inventory.location,\n qty: inventory.qty,\n lockedQty: inventory.lockedQty,\n lockedUomValue: inventory.lockedUomValue,\n uom: inventory.uom,\n uomValue: inventory.uomValue,\n invStatus: inventory.status,\n releaseQty: orderInv.releaseQty,\n releaseUomValue: orderInv.releaseUomValue,\n status: orderInv.status,\n refWorksheetId: orderInv.refWorksheetId\n }\n }\n })\n )\n\n const result = {\n ...releaseGood,\n attachment: foundAttachments,\n shippingOrderInfo: {\n containerNo: shippingOrder?.containerNo || '',\n containerSize: shippingOrder?.containerSize || '',\n containerLeavingDate: shippingOrder?.containerLeavingDate || '',\n containerArrivalDate: shippingOrder?.containerArrivalDate || '',\n containerClosureDate: shippingOrder?.containerClosureDate || '',\n shipName: shippingOrder?.shipName || '',\n remark: shippingOrder?.remark || '',\n remindContainerDeparture: shippingOrder?.remindContainerDeparture || null\n },\n inventoryInfos: invInfos\n }\n\n return result\n }\n } catch (error) {\n logger.error(`release-good-query[releaseGoodDetail]: ${error}`)\n throw new Error(error)\n }\n }\n\n @Directive('@privilege(category: \"order_warehouse\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ReleaseGoodList)\n async releaseGoodRequests(\n @Ctx() context: ResolverContext,\n @Args(type => ListParam) params: ListParam\n ): Promise<ReleaseGoodList> {\n try {\n console.time('t1')\n const { domain, user } = context.state\n\n const statusFilter = params.filters.some(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 routeId = params.filters.find(param => param.name === 'routeId')\n const orderRemarkFilter = params.filters.find(param => param.name === 'orderRemark')\n const manifestedFilter = params.filters.find(param => param.name === 'manifested')\n const orderInfoFilter = params.filters.find(param => param.name === 'name')\n const typeFilter = params.filters.find(param => param.name === 'type')?.value\n\n if (await checkUserBelongsDomain(domain, user)) {\n if (!statusFilter && !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 (!bizplaceFilter) {\n params.filters.push({\n name: 'bizplaceId',\n operator: 'in',\n value: await getPermittedBizplaceIds(domain, user),\n relation: false\n })\n }\n\n if (skuFilter) {\n params.filters = params.filters.filter(param => param.name !== 'sku')\n }\n\n if (orderInfoFilter) {\n params.filters = params.filters.filter(param => param.name !== 'name')\n }\n\n if (routeId) {\n if (routeId.value == true) {\n params.filters.find(param => param.name === 'routeId').value = 'null'\n } else {\n params.filters.find(param => param.name === 'routeId').operator = 'is_null'\n params.filters.find(param => param.name === 'routeId').value = null\n }\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 if (manifestedFilter) {\n const manifestedIdx = params.filters.findIndex(param => param.name === 'manifested')\n if (manifestedFilter.value == true) {\n params.filters.splice(manifestedIdx, 1)\n params.filters.push({\n name: 'manifestId',\n operator: 'is_not_null',\n value: null,\n relation: false\n })\n } else {\n params.filters.splice(manifestedIdx, 1)\n params.filters.push({\n name: 'manifestId',\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 let releaseDateFrom = params.filters.find(param => param.name === 'fromDate')?.value\n params.filters.splice(fromDateParamIdx, 1)\n\n params.filters.push({\n name: typeFilter == 'b2c' ? 'releaseDate' : 'createdAt',\n operator: 'gte',\n value: typeFilter == 'b2c' ? releaseDateFrom : 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 let releaseDateTo = params.filters.find(param => param.name === 'toDate')?.value\n params.filters.splice(toDateParamIdx, 1)\n\n params.filters.push({\n name: typeFilter == 'b2c' ? 'releaseDate' : 'createdAt',\n operator: typeFilter == 'b2c' ? 'lte' : 'lt',\n value:\n typeFilter == 'b2c' ? releaseDateTo : new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),\n relation: false\n })\n }\n\n if (noOfItemsFilter && noOfItemsFilter.value == 1) {\n params.filters.find(param => param.name === 'noOfItems').operator = 'eq'\n }\n\n const qb: SelectQueryBuilder<ReleaseGood> = getRepository(ReleaseGood).createQueryBuilder('rg')\n buildQuery(qb, params, context)\n qb.addSelect('COALESCE(\"cc\".rank, 99999)', 'rank')\n qb.leftJoinAndSelect('rg.domain', 'domain')\n qb.leftJoinAndSelect('rg.bizplace', 'bizplace')\n qb.leftJoinAndSelect('rg.arrivalNotice', 'an')\n qb.leftJoinAndSelect('rg.creator', 'creator')\n qb.leftJoinAndSelect('rg.updater', 'updater')\n qb.leftJoinAndSelect('rg.acceptedBy', 'acceptedBy')\n qb.leftJoinAndSelect('rg.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 = 'RO_REQUESTS_STATUS'`)\n },\n 'cc',\n 'cc.status = rg.status'\n )\n\n if (skuFilter) {\n let removeSymbol = skuFilter.value\n .split('')\n .filter(res => res !== '%')\n .join('')\n\n let products = removeSymbol\n .toLowerCase()\n .split(',')\n .map(prod => {\n return \"'%\" + prod.trim().replace(/'/g, \"''\") + \"%'\"\n })\n .join(',')\n\n qb.andWhere(\n `\n exists (select * from order_inventories oi \n inner join products p on oi.product_id = p.id\n inner join inventories i on i.product_id = p.id\n where oi.release_good_id = rg.id\n and (lower(p.sku) like any(array[${products}])\n or lower(p.brand_sku) like any(array[${products}])\n or lower(p.name) like any(array[${products}])\n or lower(p.description) like any(array[${products}]))\n )\n `\n )\n }\n\n if (orderInfoFilter) {\n let removeSymbol = orderInfoFilter.value\n .split('')\n .filter(res => res !== '%')\n .join('')\n\n let orderInfos = removeSymbol\n .toLowerCase()\n .split(',')\n .map(prod => {\n return \"'%\" + prod.trim().replace(/'/g, \"''\") + \"%'\"\n })\n .join(',')\n\n qb.andWhere(`(\n lower(rg.name) like any(array[${orderInfos}])\n or lower(rg.ref_no) like any(array[${orderInfos}])\n or lower(rg.ref_no_2) like any(array[${orderInfos}])\n or lower(rg.ref_no_3) like any(array[${orderInfos}])\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' : 'rg.' + sort.name]: sort.desc\n ? 'DESC'\n : 'ASC'\n }),\n params.sortings.length < 1 ? { rank: 'ASC', 'rg.createdAt': 'DESC' } : {}\n )\n\n qb.orderBy(sort)\n\n let [items, total] = await qb.getManyAndCount()\n\n items = items\n .filter(item => {\n return item.domainId === domain.id\n })\n .map(item => {\n return {\n ...item,\n orderRemark: item?.remark ? true : false\n }\n })\n console.timeEnd('t1')\n return { items, total }\n } catch (error) {\n logger.error(`release-good-query[releaseGoodRequests]: ${error}`)\n throw error\n }\n }\n\n @Directive('@privilege(category: \"order\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(returns => ReleasableInventoryList)\n async releasableInventories(\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<ReleasableInventoryList> {\n const myBizplace: Bizplace = await getMyBizplace(context.state.domain, context.state.user)\n const INV_ALIAS = 'INV'\n const PROD_ALIAS = 'PROD'\n const GAN_ALIAS = 'GAN'\n const conditions = filters\n let {\n batchId = null,\n containerNo = null,\n product = [],\n packingType = null,\n inventory = []\n } = getConditionValues(conditions)\n\n const SELECT: string = `\n SELECT\n ${INV_ALIAS}.batch_id,\n ${INV_ALIAS}.packing_type,\n (SUM(COALESCE(${INV_ALIAS}.qty, 0)) - SUM(COALESCE(${INV_ALIAS}.locked_qty, 0))) as remain_qty,\n (SUM(COALESCE(${INV_ALIAS}.uomValue, 0)) - SUM(COALESCE(${INV_ALIAS}.locked_uom_value, 0))) as remain_uom_value,\n ${PROD_ALIAS}.id as product_id,\n ${PROD_ALIAS}.name as product_name,\n ${GAN_ALIAS}.container_no\n `\n const FROM: string = `\n FROM\n inventories ${INV_ALIAS}\n LEFT JOIN\n products ${PROD_ALIAS}\n ON\n ${PROD_ALIAS}.id = ${INV_ALIAS}.product_id\n LEFT JOIN\n arrival_notices ${GAN_ALIAS}\n ON\n ${GAN_ALIAS}.id = CAST(${INV_ALIAS}.ref_order_id as uuid)\n `\n\n const WHERE: string = `\n WHERE\n ${INV_ALIAS}.status = 'STORED'\n AND ${INV_ALIAS}.qty > 0\n AND ${INV_ALIAS}.bizplace_id = '${myBizplace.id}'\n ${batchId ? `AND LOWER(${INV_ALIAS}.batch_id) LIKE '%${batchId.toLowerCase()}%'` : ''}\n ${packingType ? `AND LOWER(${INV_ALIAS}.packing_type) LIKE '%${packingType.toLowerCase()}%'` : ''}\n ${containerNo ? `AND LOWER(${GAN_ALIAS}.container_no) LIKE '%${containerNo.toLowerCase()}%'` : ''}\n ${\n product?.length > 0 && product[0]\n ? `AND ${PROD_ALIAS}.id IN (${product.map((id: string) => `'${id}'`).join(', ')})`\n : product[0] === null\n ? `AND ${PROD_ALIAS}.id isnull`\n : ''\n }\n ${\n inventory?.length > 0\n ? `\n AND (${INV_ALIAS}.batch_id, ${PROD_ALIAS}.id) ${\n filters.find((filter: { name: string; operator: string; value: any }) => filter.name === 'inventory')\n .operator\n } (\n ${inventory\n .map((inv: { batchId: string; productId: string }) => `('${inv.batchId}', '${inv.productId}')`)\n .join(', ')}\n )\n `\n : ''\n }\n `\n\n // ${product?.length > 0 ? `AND ${PROD_ALIAS}.id IN (${product.map((id: string) => id ? `'${id}'` : null).join(', ')})` : ''}\n const GROUP_BY: string = `\n GROUP BY\n ${INV_ALIAS}.batch_id,\n ${INV_ALIAS}.packing_type,\n ${GAN_ALIAS}.container_no,\n ${PROD_ALIAS}.id\n `\n\n const OFFSET_LIMIT: string = `\n OFFSET ${pagination.limit * (pagination.page - 1)}\n LIMIT ${pagination.limit}\n `\n\n const invRepo: Repository<Inventory> = getRepository(Inventory)\n let items: any[] = await invRepo.query(`\n ${SELECT} ${FROM} ${WHERE} ${GROUP_BY} ${OFFSET_LIMIT}\n `)\n items = items.map((item: any) => {\n return {\n batchId: item.batch_id,\n packingType: item.packing_type,\n remainQty: item.remain_qty,\n remainUomValue: item.remain_uom_value,\n productName: item.product_name,\n product: {\n id: item.product_id,\n name: item.product_name\n },\n containerNo: item.container_no\n }\n }) as any\n\n const results: [{ total: number }] = await invRepo.query(`\n SELECT max(cnt.cnt) as total FROM (\n SELECT (ROW_NUMBER() OVER()) as cnt ${FROM} ${WHERE} ${GROUP_BY}\n ) as cnt\n `)\n\n return {\n items,\n total: Number(results[0].total)\n }\n }\n\n @Directive('@transaction')\n @Query(returns => [ReleaseGood])\n async bulkReleaseGoodsAvailableItems(\n @Ctx() context: ResolverContext,\n @Arg('rawReleaseGoods', type => [NewReleaseGood], { nullable: true }) rawReleaseGoods: NewReleaseGood[],\n @Arg('bizplaceId', type => String) bizplaceId: string\n ): Promise<ReleaseGood[]> {\n const { tx } = context.state\n const availableItems: any[] = await bulkReleaseGoodsAvailableItemsFunction(rawReleaseGoods, bizplaceId, context, tx)\n\n return availableItems\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() releaseGood: ReleaseGood): Promise<Domain> {\n return await getRepository(Domain).findOneBy({ id: releaseGood.domainId })\n }\n\n @FieldResolver(type => User)\n async creator(@Root() releaseGood: ReleaseGood): Promise<User> {\n return await getRepository(User).findOneBy({ id: releaseGood.creatorId })\n }\n\n @FieldResolver(type => User)\n async updater(@Root() releaseGood: ReleaseGood): Promise<User> {\n return await getRepository(User).findOneBy({ id: releaseGood.updaterId })\n }\n}\n\nasync function prepOITempTable(domain: Domain, tx: EntityManager) {\n await tx.query(\n `\n CREATE TEMP TABLE oi ON COMMIT DROP AS (\n SELECT\n SUM(oi.release_qty) as release_qty,\n SUM(oi.release_uom_value) as release_uom_value,\n oi.batch_id,\n p.id as product_id,\n oi.packing_type\n FROM\n order_inventories oi\n LEFT JOIN\n products p\n ON\n oi.product_id = p.id\n WHERE\n oi.status IN ('PENDING', 'PENDING_RECEIVE', 'PENDING_WORKSHEET', 'PENDING_SPLIT') \n AND oi.batch_id NOTNULL\n AND oi.product_id NOTNULL\n AND oi.packing_type NOTNULL\n AND oi.inventory_id IS NULL\n AND oi.domain_id = $1\n GROUP BY\n oi.product_id,\n oi.batch_id,\n oi.packing_type,\n p.id\n )`,\n [domain.id]\n )\n}\n\nasync function getAvailableAmount(\n roBizId: string,\n productIdRef: string,\n batchId: string,\n packingType: string,\n tx: EntityManager\n): Promise<{ qty: number; uomValue: number; uom: string }> {\n const result: any[] = await tx.getRepository(Inventory).query(`\n SELECT\n SUM(COALESCE(i.qty, 0)) - SUM(COALESCE(i.locked_qty, 0)) - MAX(COALESCE(oi.release_qty, 0)) as \"qty\",\n SUM(COALESCE(i.uom_value, 0)) - SUM(COALESCE(i.locked_uom_value, 0)) - MAX(COALESCE(oi.release_uom_value, 0)) as \"uom_value\",\n uom\n FROM\n inventories i\n LEFT JOIN products p on i.product_id = p.id\n LEFT JOIN oi on i.batch_id = oi.batch_id\n AND p.id = oi.product_id\n AND i.packing_type = oi.packing_type\n WHERE\n i.bizplace_id = '${roBizId}'\n AND i.status = 'STORED'\n AND i.batch_id = '${batchId}'\n AND p.id = '${productIdRef}'\n AND i.packing_type = '${packingType}'\n GROUP BY\n i.batch_id,\n p.id,\n i.packing_type,\n i.uom\n `)\n\n let qty: number = 0\n let uomValue: number = 0\n let uom: string = ''\n if (result?.length) {\n qty = result[0].qty\n uomValue = result[0].uom_value\n uom = result[0].uom\n }\n\n return { qty, uomValue, uom }\n}\n\nasync function dropOITempTable(domain: Domain, tx: EntityManager) {\n await tx.query(`DROP TABLE oi`)\n}\n\nexport async function bulkReleaseGoodsAvailableItemsFunction(\n rawReleaseGoods: any[],\n bizplaceId: string,\n context: any,\n tx?: EntityManager\n): Promise<any[]> {\n const { domain } = context.state\n const companyBizplaceId: Bizplace = await getCompanyBizplace(null, null, bizplaceId)\n\n if (!rawReleaseGoods) return\n const json_oi = JSON.stringify(\n rawReleaseGoods.map(raw => {\n return {\n sku: raw.sku,\n packing_type: raw.packingType,\n packing_size: raw.packingSize,\n uom: raw.uom,\n releaseQty: raw.releaseQty,\n release_qty: raw.releaseQty\n }\n })\n )\n\n await tx.query(\n `\n CREATE TEMP TABLE raw_release_goods(\n product_id VARCHAR(50),\n product_detail_id VARCHAR(50),\n sku VARCHAR(150),\n product_info VARCHAR(250),\n packing_type VARCHAR(50),\n packing_size INT,\n uom VARCHAR(10),\n release_qty INT\n );\n `\n )\n\n await tx.query(\n `\n INSERT INTO raw_release_goods\n SELECT p.id AS product_id,\n pd.id AS product_detail_id,\n js.sku,\n CASE WHEN p.description NOT IN (NULL, '', '-') THEN CONCAT(p.name, '(', p.description, ')')\n ELSE p.name END AS product_info,\n CASE WHEN js.packing_type NOTNULL AND js.packing_size NOTNULL THEN js.packing_type ELSE pd.packing_type END,\n CASE WHEN js.packing_type NOTNULL AND js.packing_size NOTNULL THEN js.packing_size ELSE pd.packing_size END,\n CASE WHEN js.uom NOTNULL THEN js.uom ELSE pd.uom END\n FROM JSON_POPULATE_RECORDSET(NULL::raw_release_goods, $1) js\n LEFT JOIN products p ON LOWER(js.sku) = LOWER(p.sku) AND p.bizplace_id = $2\n LEFT JOIN product_details pd ON p.id = pd.product_id\n AND CASE WHEN js.packing_type NOTNULL AND js.packing_size NOTNULL AND js.uom NOTNULL\n THEN pd.packing_type = js.packing_type AND pd.packing_size = js.packing_size AND pd.uom = js.uom \n WHEN js.packing_type NOTNULL AND js.packing_size NOTNULL AND js.uom ISNULL \t\n THEN pd.packing_type = js.packing_type AND pd.packing_size = js.packing_size AND pd.is_default IS TRUE\n WHEN js.packing_type ISNULL AND js.packing_size ISNULL AND js.uom NOTNULL\n THEN pd.uom = js.uom AND pd.is_default IS TRUE ELSE pd.is_default IS TRUE \n END;\n `,\n [json_oi, companyBizplaceId.id]\n )\n\n let availableItems = await tx.query(\n `\n WITH inv AS (\n SELECT i.product_id, foo.product_detail_id, foo.sku, foo.product_info, i.packing_type, i.packing_size, i.uom,\n SUM(i.qty - COALESCE(i.locked_qty, 0)) - COALESCE(\n (\n SELECT SUM(oi.release_qty) FROM order_inventories oi \n WHERE oi.status IN ('PENDING', 'PENDING_RECEIVE', 'PENDING_WORKSHEET', 'PENDING_SPLIT')\n AND oi.inventory_id IS null\n AND oi.product_id = i.product_id::uuid\n AND oi.packing_type = i.packing_type\n AND oi.uom = i.uom\n AND oi.domain_id = $1\n AND oi.bizplace_id = $2\n ), 0) as \"remain_qty\",\n SUM(i.uom_value - COALESCE(i.locked_uom_value, 0)) - COALESCE(\n (\n SELECT SUM(oi.release_uom_value) FROM order_inventories oi \n WHERE oi.status IN ('PENDING', 'PENDING_RECEIVE', 'PENDING_WORKSHEET', 'PENDING_SPLIT')\n AND oi.inventory_id IS null\n AND oi.product_id = i.product_id::uuid\n AND oi.packing_type = i.packing_type\n AND oi.uom = i.uom\n AND oi.domain_id = $1\n AND oi.bizplace_id = $2\n ), 0) as \"remain_uom_value\"\n FROM inventories i\n LEFT JOIN locations l\n ON i.location_id = l.id\n INNER JOIN (\n SELECT rrg.product_id, rrg.product_detail_id, rrg.sku, rrg.product_info, rrg.packing_type, rrg.packing_size, rrg.uom \n FROM raw_release_goods rrg\n GROUP BY rrg.product_id, rrg.product_detail_id, rrg.sku, rrg.product_info, rrg.packing_type, rrg.packing_size, rrg.uom\n ) AS foo\n ON i.product_id = foo.product_id::uuid\n AND i.packing_type = foo.packing_type\n AND i.packing_size = foo.packing_size\n AND i.uom = foo.uom\n AND i.domain_id = $1\n AND i.bizplace_id = $2\n WHERE l.type NOT IN ($3, $4)\n GROUP BY i.product_id, foo.product_detail_id, foo.sku,foo.product_info, i.packing_type, i.packing_size, i.uom\n ORDER BY foo.sku, remain_qty\n ) SELECT * FROM inv WHERE remain_qty > 0\n `,\n [domain.id, bizplaceId, LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE]\n )\n\n await tx.query(`DROP TABLE raw_release_goods`)\n\n availableItems = availableItems.map(item => {\n return {\n productId: item.product_id,\n productDetailId: item.product_detail_id,\n productInfo: item.product_info,\n sku: item.sku,\n packingType: item.packing_type,\n packingSize: Number(item.packing_size || 0),\n uom: item.uom,\n remainQty: item.remain_qty,\n remainUomValue: item.remain_uom_value\n }\n })\n\n return _extractData(rawReleaseGoods, availableItems)\n}\n\nfunction _extractData(rawData, validatedData) {\n return rawData.map(raw => {\n const idx = validatedData.findIndex(val => {\n const comparison = ['packingType', 'packingSize', 'uom']\n\n let a: any = {},\n b: any = {}\n\n comparison.forEach(cc => {\n if (raw[cc]) {\n a[cc] = raw[cc]\n b[cc] = val[cc]\n }\n })\n\n a = JSON.stringify(Object.fromEntries(Object.entries(a).sort()))\n b = JSON.stringify(Object.fromEntries(Object.entries(b).sort()))\n\n return val.sku.toLowerCase() == raw.sku.toLowerCase() && a === b\n })\n\n let releaseUomValue = 0\n\n // if sku is matched, assign qty and product id\n if (idx >= 0) {\n // assign qty to rawData as much as possible\n releaseUomValue =\n (Math.round((validatedData[idx]?.remainUomValue / validatedData[idx]?.remainQty) * 100) / 100) * raw.releaseQty\n\n raw.assignedQty =\n validatedData[idx].remainQty >= raw.releaseQty\n ? raw.releaseQty > 0\n ? raw.releaseQty\n : 0\n : validatedData[idx].remainQty\n\n raw.assignedUomValue =\n validatedData[idx].remainUomValue >= releaseUomValue\n ? releaseUomValue > 0\n ? releaseUomValue\n : 0\n : validatedData[idx].remainUomValue\n\n // deduct qty & uomValue from validateData\n validatedData[idx].remainQty -= raw.assignedQty\n validatedData[idx].remainUomValue -= raw.assignedUomValue\n\n raw.productId = validatedData[idx].productId\n raw.productDetailId = validatedData[idx].productDetailId\n raw.productInfo = validatedData[idx].productInfo\n raw.packingType = validatedData[idx].packingType\n raw.packingSize = validatedData[idx].packingSize\n raw.uom = validatedData[idx].uom\n } else {\n raw.assignedQty = 0\n raw.assignedUomValue = 0\n raw.productId = null\n }\n\n let releaseDate = _getStdDateStr(new Date(raw.releaseDate || ''))\n\n return {\n ...raw,\n releaseUomValue,\n errorMsg:\n !raw.productId || !raw.productDetailId\n ? 'inventory or product not found'\n : raw.releaseQty <= 0\n ? 'invalid release qty'\n : raw.assignedQty < raw.releaseQty\n ? 'insufficient stock'\n : raw.releaseDate == ''\n ? 'release date is empty'\n : releaseDate < _getStdDateStr(new Date())\n ? 'backdate is not allowed'\n : !raw.refNo\n ? 'ref no is empty'\n : ''\n }\n })\n}\n\nfunction getConditionValues(conditions: Filter[]): {\n batchId?: string\n containerNo?: string\n product?: string[]\n packingType?: string\n inventory?: { batchId: string; productId: string }[]\n} {\n return conditions.reduce((condition, cond: Filter): {} => {\n condition = {\n ...condition,\n [cond.name]: cond.value\n }\n\n return condition\n }, {})\n}\n\nfunction _getStdDateStr(date) {\n if (isNaN(date.getFullYear())) return ''\n else {\n date.setHours(date.getHours() + 8)\n return date.toISOString().split('T')[0]\n }\n}\n"]}
@@ -177,7 +177,7 @@ tslib_1.__decorate([
177
177
  ], ReverseKittingOrderQuery.prototype, "generateReverseKittingLotId", null);
178
178
  tslib_1.__decorate([
179
179
  (0, type_graphql_1.Query)(returns => reverse_kitting_order_type_1.ReverseKittingOrderList, { description: 'To fetch multiple ReverseKittingOrders' }),
180
- tslib_1.__param(0, (0, type_graphql_1.Args)()),
180
+ tslib_1.__param(0, (0, type_graphql_1.Args)(type => shell_1.ListParam)),
181
181
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
182
182
  tslib_1.__metadata("design:type", Function),
183
183
  tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),