@things-factory/operato-mms 6.0.0-alpha.6 → 6.0.0-alpha.7

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.
@@ -30,7 +30,7 @@ exports.addReleaseOrderResolver = {
30
30
  });
31
31
  const marketplaceOrderItems = marketplaceOrder.marketplaceOrderItems;
32
32
  let marketplaceOrderShippings = await (0, shell_1.getRepository)(marketplace_base_1.MarketplaceOrderShipping).find({
33
- where: { orderNoRef: marketplaceOrder.orderNo, domain },
33
+ where: { orderNoRef: marketplaceOrder.orderNo, domain: { id: domain.id } },
34
34
  order: { subOrderNoRef: 'ASC' },
35
35
  relations: [
36
36
  'marketplaceOrderShippingItems',
@@ -1 +1 @@
1
- {"version":3,"file":"add-release-order.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/interface-with-hub/add-release-order.ts"],"names":[],"mappings":"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","sourcesContent":["import { Bizplace, getCustomerBizplaces } from '@things-factory/biz-base'\nimport { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-fulfillment'\nimport {\n MarketplaceOrder,\n MarketplaceOrderItem,\n MarketplaceOrderShipping,\n MarketplaceOrderShippingItem\n} from '@things-factory/marketplace-base'\nimport { Product, ProductBundle } from '@things-factory/product-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nexport const addReleaseOrderResolver = {\n async addReleaseOrder(\n _: void,\n { marketplaceOrderIds, warehouseId }: { marketplaceOrderIds: any; warehouseId: string },\n context: any\n ): Promise<void> {\n const { domain } = context.state\n\n const fulfilmentCenter: FulfillmentCenter = await FulfillmentAPI.getFulfillmentCenter(warehouseId)\n const centerId: string = fulfilmentCenter.centerId\n\n var warehouseDomain: Domain = await getRepository(Domain).findOne({ where: { subdomain: centerId } })\n var customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)\n\n const customerBizplaceId: string = customerBizplaces.find(\n customerBizplace => customerBizplace.company.domain.id === domain.id\n ).id\n\n for (var i = 0; i < marketplaceOrderIds.length; i++) {\n const marketplaceOrderId = marketplaceOrderIds[i]\n\n const marketplaceOrder: MarketplaceOrder = await getRepository(MarketplaceOrder).findOne({\n where: {\n id: marketplaceOrderId\n },\n relations: [\n 'marketplaceOrderItems',\n 'marketplaceOrderItems.marketplaceProductVariation',\n 'marketplaceOrderItems.marketplaceOrderShippingItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',\n 'marketplaceStore'\n ]\n })\n\n const marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems\n\n let marketplaceOrderShippings: MarketplaceOrderShipping[] = await getRepository(MarketplaceOrderShipping).find({\n where: { orderNoRef: marketplaceOrder.orderNo, domain },\n order: { subOrderNoRef: 'ASC' },\n relations: [\n 'marketplaceOrderShippingItems',\n 'marketplaceOrderShippingItems.marketplaceOrderItem',\n 'marketplaceOrderShippingItems.product'\n ]\n })\n\n for (let j = 0; j < marketplaceOrderShippings.length; j++) {\n let marketplaceOrderShipping: MarketplaceOrderShipping = marketplaceOrderShippings[j]\n let marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =\n marketplaceOrderShipping.marketplaceOrderShippingItems\n\n if (!marketplaceOrderShipping?.releaseOrderId) {\n const date: Date = new Date()\n const releaseDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date\n .getDate()\n .toString()\n .padStart(2, '0')}`\n\n var newReleaseOrder: any = {\n releaseDate,\n type: 'b2c',\n transporter: marketplaceOrder.shippingProvider,\n trackingNo: marketplaceOrderShipping?.ownTrackingNo\n ? marketplaceOrderShipping.ownTrackingNo\n : marketplaceOrderShipping.trackingNo,\n packingOption: true,\n exportOption: false,\n ownTransport: true,\n courierOption: true,\n collectionOrderNo: marketplaceOrder.orderNo,\n refNo: marketplaceOrder.orderNo,\n refNo2:\n marketplaceOrderShippings.length > 1 ? marketplaceOrderShipping?.subOrderNoRef : marketplaceOrder.orderNo,\n deliverTo: {\n deliveryAddress1: marketplaceOrderShipping.address1,\n deliveryAddress2: marketplaceOrderShipping.address2,\n deliveryAddress3: marketplaceOrderShipping.address3,\n deliveryAddress4: marketplaceOrderShipping.address4,\n deliveryAddress5: marketplaceOrderShipping.address5,\n attentionTo: marketplaceOrderShipping.attentionTo,\n city: marketplaceOrderShipping.city,\n postalCode: marketplaceOrderShipping.postCode,\n country: marketplaceOrderShipping.country,\n state: marketplaceOrderShipping.state,\n phone1: marketplaceOrderShipping.phone1,\n phone2: marketplaceOrderShipping?.phone2 ? marketplaceOrderShipping.phone2 : null\n },\n marketplaceOrderStatus: marketplaceOrder.status,\n airwayBill: marketplaceOrderShipping?.airwayBill ? marketplaceOrderShipping.airwayBill : null,\n invoice: marketplaceOrderShipping?.invoice ? marketplaceOrderShipping.invoice : null,\n orderInventories: marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {\n return {\n product: {\n sku: marketplaceOrderShippingItem.product.sku\n },\n releaseQty: marketplaceOrderShippingItem.qty\n }\n })\n }\n\n try {\n var releaseOrder: any = await FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {\n customerBizplaceId,\n releaseOrder: newReleaseOrder\n })\n\n marketplaceOrderShipping.releaseOrderId = releaseOrder.id\n marketplaceOrderShipping.fulfillmentCenter = fulfilmentCenter\n await getRepository(MarketplaceOrderShipping).save(marketplaceOrderShipping)\n\n if (releaseOrder && releaseOrder?.id) {\n marketplaceOrder.releaseOrderId = releaseOrder.id\n marketplaceOrder.fulfillmentCenter = fulfilmentCenter\n await getRepository(MarketplaceOrder).save(marketplaceOrder)\n }\n } catch (e) {}\n }\n }\n\n var invoiceProducts = await Promise.all(\n marketplaceOrderItems.map(async mi => {\n let product: Product = await getRepository(Product).findOne({\n where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }\n })\n\n let productBundle: ProductBundle\n if (!product) {\n productBundle = await getRepository(ProductBundle).findOne({\n where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }\n })\n }\n\n return {\n sku: product ? product.sku : productBundle.sku,\n name: product ? product.name : productBundle.name,\n description: product ? product.description : productBundle.description,\n qty: mi.qty,\n unitPrice: (mi?.originalPrice || 0) / mi.qty,\n paidPrice: (mi?.paidPrice || 0) / mi.qty,\n discount: mi?.discount || 0,\n shippingFeePaidByCustomer: mi?.shippingFeePaidByCustomer || 0\n }\n })\n )\n\n let newInvoice = {\n invoiceProducts,\n name: '-',\n refNo1: newReleaseOrder.refNo.toString(),\n refNo2: newReleaseOrder.refNo2.toString(),\n issuedOn: new Date(),\n from: marketplaceOrder.marketplaceStore.storeName,\n fromContactPhone: '-',\n fromAddress1: '-',\n fromAddress2: null,\n fromAddress3: null,\n fromAddress4: null,\n fromAddress5: null,\n fromPostcode: null,\n fromCity: null,\n fromState: null,\n fromCountry: null,\n deliverTo: newReleaseOrder.deliverTo.attentionTo || '-',\n deliverToPhone: newReleaseOrder.deliverTo.phone1 || '-',\n deliveryAddress1: newReleaseOrder.deliverTo.deliveryAddress1 || '-',\n deliveryAddress2: newReleaseOrder.deliverTo.deliveryAddress2,\n deliveryAddress3: newReleaseOrder.deliverTo.deliveryAddress3,\n deliveryAddress4: newReleaseOrder.deliverTo.deliveryAddress4,\n deliveryAddress5: newReleaseOrder.deliverTo.deliveryAddress5,\n deliveryPostcode: newReleaseOrder.deliverTo.postalCode || '-',\n deliveryCity: newReleaseOrder.deliverTo.city || '-',\n deliveryState: newReleaseOrder.deliverTo.state || '-',\n deliveryCountry: newReleaseOrder.deliverTo.country || '-',\n billTo: newReleaseOrder.deliverTo.attentionTo || '-',\n billToPhone: newReleaseOrder.deliverTo.phone1 || '-',\n billingAddress1: newReleaseOrder.deliverTo.billingAddress || newReleaseOrder.deliverTo.deliveryAddress1 || '-',\n billingAddress2: null,\n billingAddress3: null,\n billingAddress4: null,\n billingAddress5: null,\n billingPostcode: '-',\n billingCity: '-',\n billingState: '-',\n billingCountry: '-'\n }\n\n try {\n await FulfillmentAPI.createSalesInvoice(fulfilmentCenter, {\n customerBizplaceId,\n invoice: newInvoice\n })\n } catch (e) {}\n }\n }\n}\n"]}
1
+ {"version":3,"file":"add-release-order.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/interface-with-hub/add-release-order.ts"],"names":[],"mappings":"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","sourcesContent":["import { Bizplace, getCustomerBizplaces } from '@things-factory/biz-base'\nimport { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-fulfillment'\nimport {\n MarketplaceOrder,\n MarketplaceOrderItem,\n MarketplaceOrderShipping,\n MarketplaceOrderShippingItem\n} from '@things-factory/marketplace-base'\nimport { Product, ProductBundle } from '@things-factory/product-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nexport const addReleaseOrderResolver = {\n async addReleaseOrder(\n _: void,\n { marketplaceOrderIds, warehouseId }: { marketplaceOrderIds: any; warehouseId: string },\n context: any\n ): Promise<void> {\n const { domain } = context.state\n\n const fulfilmentCenter: FulfillmentCenter = await FulfillmentAPI.getFulfillmentCenter(warehouseId)\n const centerId: string = fulfilmentCenter.centerId\n\n var warehouseDomain: Domain = await getRepository(Domain).findOne({ where: { subdomain: centerId } })\n var customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)\n\n const customerBizplaceId: string = customerBizplaces.find(\n customerBizplace => customerBizplace.company.domain.id === domain.id\n ).id\n\n for (var i = 0; i < marketplaceOrderIds.length; i++) {\n const marketplaceOrderId = marketplaceOrderIds[i]\n\n const marketplaceOrder: MarketplaceOrder = await getRepository(MarketplaceOrder).findOne({\n where: {\n id: marketplaceOrderId\n },\n relations: [\n 'marketplaceOrderItems',\n 'marketplaceOrderItems.marketplaceProductVariation',\n 'marketplaceOrderItems.marketplaceOrderShippingItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',\n 'marketplaceStore'\n ]\n })\n\n const marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems\n\n let marketplaceOrderShippings: MarketplaceOrderShipping[] = await getRepository(MarketplaceOrderShipping).find({\n where: { orderNoRef: marketplaceOrder.orderNo, domain: { id: domain.id } },\n order: { subOrderNoRef: 'ASC' },\n relations: [\n 'marketplaceOrderShippingItems',\n 'marketplaceOrderShippingItems.marketplaceOrderItem',\n 'marketplaceOrderShippingItems.product'\n ]\n })\n\n for (let j = 0; j < marketplaceOrderShippings.length; j++) {\n let marketplaceOrderShipping: MarketplaceOrderShipping = marketplaceOrderShippings[j]\n let marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =\n marketplaceOrderShipping.marketplaceOrderShippingItems\n\n if (!marketplaceOrderShipping?.releaseOrderId) {\n const date: Date = new Date()\n const releaseDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date\n .getDate()\n .toString()\n .padStart(2, '0')}`\n\n var newReleaseOrder: any = {\n releaseDate,\n type: 'b2c',\n transporter: marketplaceOrder.shippingProvider,\n trackingNo: marketplaceOrderShipping?.ownTrackingNo\n ? marketplaceOrderShipping.ownTrackingNo\n : marketplaceOrderShipping.trackingNo,\n packingOption: true,\n exportOption: false,\n ownTransport: true,\n courierOption: true,\n collectionOrderNo: marketplaceOrder.orderNo,\n refNo: marketplaceOrder.orderNo,\n refNo2:\n marketplaceOrderShippings.length > 1 ? marketplaceOrderShipping?.subOrderNoRef : marketplaceOrder.orderNo,\n deliverTo: {\n deliveryAddress1: marketplaceOrderShipping.address1,\n deliveryAddress2: marketplaceOrderShipping.address2,\n deliveryAddress3: marketplaceOrderShipping.address3,\n deliveryAddress4: marketplaceOrderShipping.address4,\n deliveryAddress5: marketplaceOrderShipping.address5,\n attentionTo: marketplaceOrderShipping.attentionTo,\n city: marketplaceOrderShipping.city,\n postalCode: marketplaceOrderShipping.postCode,\n country: marketplaceOrderShipping.country,\n state: marketplaceOrderShipping.state,\n phone1: marketplaceOrderShipping.phone1,\n phone2: marketplaceOrderShipping?.phone2 ? marketplaceOrderShipping.phone2 : null\n },\n marketplaceOrderStatus: marketplaceOrder.status,\n airwayBill: marketplaceOrderShipping?.airwayBill ? marketplaceOrderShipping.airwayBill : null,\n invoice: marketplaceOrderShipping?.invoice ? marketplaceOrderShipping.invoice : null,\n orderInventories: marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {\n return {\n product: {\n sku: marketplaceOrderShippingItem.product.sku\n },\n releaseQty: marketplaceOrderShippingItem.qty\n }\n })\n }\n\n try {\n var releaseOrder: any = await FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {\n customerBizplaceId,\n releaseOrder: newReleaseOrder\n })\n\n marketplaceOrderShipping.releaseOrderId = releaseOrder.id\n marketplaceOrderShipping.fulfillmentCenter = fulfilmentCenter\n await getRepository(MarketplaceOrderShipping).save(marketplaceOrderShipping)\n\n if (releaseOrder && releaseOrder?.id) {\n marketplaceOrder.releaseOrderId = releaseOrder.id\n marketplaceOrder.fulfillmentCenter = fulfilmentCenter\n await getRepository(MarketplaceOrder).save(marketplaceOrder)\n }\n } catch (e) {}\n }\n }\n\n var invoiceProducts = await Promise.all(\n marketplaceOrderItems.map(async mi => {\n let product: Product = await getRepository(Product).findOne({\n where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }\n })\n\n let productBundle: ProductBundle\n if (!product) {\n productBundle = await getRepository(ProductBundle).findOne({\n where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }\n })\n }\n\n return {\n sku: product ? product.sku : productBundle.sku,\n name: product ? product.name : productBundle.name,\n description: product ? product.description : productBundle.description,\n qty: mi.qty,\n unitPrice: (mi?.originalPrice || 0) / mi.qty,\n paidPrice: (mi?.paidPrice || 0) / mi.qty,\n discount: mi?.discount || 0,\n shippingFeePaidByCustomer: mi?.shippingFeePaidByCustomer || 0\n }\n })\n )\n\n let newInvoice = {\n invoiceProducts,\n name: '-',\n refNo1: newReleaseOrder.refNo.toString(),\n refNo2: newReleaseOrder.refNo2.toString(),\n issuedOn: new Date(),\n from: marketplaceOrder.marketplaceStore.storeName,\n fromContactPhone: '-',\n fromAddress1: '-',\n fromAddress2: null,\n fromAddress3: null,\n fromAddress4: null,\n fromAddress5: null,\n fromPostcode: null,\n fromCity: null,\n fromState: null,\n fromCountry: null,\n deliverTo: newReleaseOrder.deliverTo.attentionTo || '-',\n deliverToPhone: newReleaseOrder.deliverTo.phone1 || '-',\n deliveryAddress1: newReleaseOrder.deliverTo.deliveryAddress1 || '-',\n deliveryAddress2: newReleaseOrder.deliverTo.deliveryAddress2,\n deliveryAddress3: newReleaseOrder.deliverTo.deliveryAddress3,\n deliveryAddress4: newReleaseOrder.deliverTo.deliveryAddress4,\n deliveryAddress5: newReleaseOrder.deliverTo.deliveryAddress5,\n deliveryPostcode: newReleaseOrder.deliverTo.postalCode || '-',\n deliveryCity: newReleaseOrder.deliverTo.city || '-',\n deliveryState: newReleaseOrder.deliverTo.state || '-',\n deliveryCountry: newReleaseOrder.deliverTo.country || '-',\n billTo: newReleaseOrder.deliverTo.attentionTo || '-',\n billToPhone: newReleaseOrder.deliverTo.phone1 || '-',\n billingAddress1: newReleaseOrder.deliverTo.billingAddress || newReleaseOrder.deliverTo.deliveryAddress1 || '-',\n billingAddress2: null,\n billingAddress3: null,\n billingAddress4: null,\n billingAddress5: null,\n billingPostcode: '-',\n billingCity: '-',\n billingState: '-',\n billingCountry: '-'\n }\n\n try {\n await FulfillmentAPI.createSalesInvoice(fulfilmentCenter, {\n customerBizplaceId,\n invoice: newInvoice\n })\n } catch (e) {}\n }\n }\n}\n"]}
@@ -33,7 +33,7 @@ exports.autoAddReleaseOrderResolver = {
33
33
  const marketplaceOrder = marketplaceOrders[i];
34
34
  const marketplaceOrderItems = marketplaceOrder.marketplaceOrderItems;
35
35
  const marketplaceOrderShippings = await (0, shell_1.getRepository)(marketplace_base_1.MarketplaceOrderShipping).find({
36
- where: { orderNoRef: marketplaceOrder.orderNo, domain },
36
+ where: { orderNoRef: marketplaceOrder.orderNo, domain: { id: domain.id } },
37
37
  order: { subOrderNoRef: 'ASC' },
38
38
  relations: [
39
39
  'marketplaceOrderShippingItems',
@@ -1 +1 @@
1
- {"version":3,"file":"auto-add-release-order.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/interface-with-hub/auto-add-release-order.ts"],"names":[],"mappings":"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","sourcesContent":["import { createQueryBuilder, SelectQueryBuilder } from 'typeorm'\n\nimport { Bizplace, getCustomerBizplaces } from '@things-factory/biz-base'\nimport { FulfillmentAPI } from '@things-factory/integration-fulfillment'\nimport {\n MarketplaceOrder,\n MarketplaceOrderItem,\n MarketplaceOrderShipping,\n MarketplaceOrderShippingItem\n} from '@things-factory/marketplace-base'\nimport { Product, ProductBundle } from '@things-factory/product-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nexport const autoAddReleaseOrderResolver = {\n async autoAddReleaseOrder(\n _: void,\n { warehouseId }: { warehouseId: string },\n context: ResolverContext\n ): Promise<void> {\n const { domain } = context.state\n\n const qb: SelectQueryBuilder<MarketplaceOrder> = createQueryBuilder(MarketplaceOrder, 'MO')\n const marketplaceOrders: MarketplaceOrder[] = await qb\n .leftJoinAndSelect('MO.marketplaceOrderItems', 'MOI')\n .leftJoinAndSelect('MOI.marketplaceOrderShippingItems', 'MOSI')\n .leftJoinAndSelect('MOSI.marketplaceOrderShipping', 'MOS')\n .leftJoinAndSelect('MOI.marketplaceProductVariation', 'MPV')\n .leftJoinAndSelect('MO.marketplaceStore', 'MPS')\n .where('MO.domain = :domainId', { domainId: domain.id })\n .andWhere('MO.releaseOrderId IS NULL')\n .andWhere('MO.status IN (:...status)', {\n status: ['ready_to_ship', 'unfulfilled', 'packed', 'processing']\n })\n .andWhere('MPS.status = :marketplaceStatus', { marketplaceStatus: 'ACTIVE' })\n .getMany()\n\n var fulfilmentCenter = await FulfillmentAPI.getFulfillmentCenter(warehouseId)\n var centerId: string = fulfilmentCenter.centerId\n\n var warehouseDomain: Domain = await getRepository(Domain).findOne({ where: { subdomain: centerId } })\n var customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)\n const customerBizplaceId: string = customerBizplaces.find(\n customerBizplace => customerBizplace.company.domain.id === domain.id\n ).id\n\n for (var i = 0; i < marketplaceOrders.length; i++) {\n const marketplaceOrder = marketplaceOrders[i]\n\n const marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems\n\n const marketplaceOrderShippings: MarketplaceOrderShipping[] = await getRepository(MarketplaceOrderShipping).find({\n where: { orderNoRef: marketplaceOrder.orderNo, domain },\n order: { subOrderNoRef: 'ASC' },\n relations: [\n 'marketplaceOrderShippingItems',\n 'marketplaceOrderShippingItems.marketplaceOrderItem',\n 'marketplaceOrderShippingItems.product'\n ]\n })\n\n for (let j = 0; j < marketplaceOrderShippings.length; j++) {\n let marketplaceOrderShipping: MarketplaceOrderShipping = marketplaceOrderShippings[j]\n let marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =\n marketplaceOrderShipping.marketplaceOrderShippingItems\n\n if (!marketplaceOrderShipping?.releaseOrderId) {\n const date: Date = new Date()\n const releaseDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date\n .getDate()\n .toString()\n .padStart(2, '0')}`\n\n var newReleaseOrder: any = {\n releaseDate,\n type: 'b2c',\n transporter: marketplaceOrder.shippingProvider,\n trackingNo: marketplaceOrderShipping?.ownTrackingNo\n ? marketplaceOrderShipping.ownTrackingNo\n : marketplaceOrderShipping.trackingNo,\n packingOption: true,\n exportOption: false,\n ownTransport: true,\n courierOption: true,\n collectionOrderNo: marketplaceOrder.orderNo,\n refNo: marketplaceOrder.orderNo,\n refNo2:\n marketplaceOrderShippings.length > 1 ? marketplaceOrderShipping?.subOrderNoRef : marketplaceOrder.orderNo,\n deliverTo: {\n deliveryAddress1: marketplaceOrderShipping.address1,\n deliveryAddress2: marketplaceOrderShipping.address2,\n deliveryAddress3: marketplaceOrderShipping.address3,\n deliveryAddress4: marketplaceOrderShipping.address4,\n deliveryAddress5: marketplaceOrderShipping.address5,\n attentionTo: marketplaceOrderShipping.attentionTo,\n city: marketplaceOrderShipping.city,\n postalCode: marketplaceOrderShipping.postCode,\n country: marketplaceOrderShipping.country,\n state: marketplaceOrderShipping.state,\n phone1: marketplaceOrderShipping.phone1,\n phone2: marketplaceOrderShipping?.phone2 ? marketplaceOrderShipping.phone2 : null\n },\n marketplaceOrderStatus: marketplaceOrder.status,\n airwayBill: marketplaceOrderShipping?.airwayBill ? marketplaceOrderShipping.airwayBill : null,\n invoice: marketplaceOrderShipping?.invoice ? marketplaceOrderShipping.invoice : null,\n orderInventories: marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {\n return {\n product: {\n sku: marketplaceOrderShippingItem.product.sku\n },\n releaseQty: marketplaceOrderShippingItem.qty\n }\n })\n }\n\n try {\n var releaseOrder: any = await FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {\n customerBizplaceId,\n releaseOrder: newReleaseOrder\n })\n\n marketplaceOrderShipping.releaseOrderId = releaseOrder.id\n marketplaceOrderShipping.fulfillmentCenter = fulfilmentCenter\n await getRepository(MarketplaceOrderShipping).save(marketplaceOrderShipping)\n\n if (releaseOrder && releaseOrder?.id) {\n marketplaceOrder.releaseOrderId = releaseOrder.id\n marketplaceOrder.fulfillmentCenter = fulfilmentCenter\n await getRepository(MarketplaceOrder).save(marketplaceOrder)\n }\n } catch (e) {}\n }\n }\n\n var invoiceProducts = await Promise.all(\n marketplaceOrderItems.map(async mi => {\n let product: Product = await getRepository(Product).findOne({\n where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }\n })\n\n let productBundle: ProductBundle\n if (!product) {\n productBundle = await getRepository(ProductBundle).findOne({\n where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }\n })\n }\n\n return {\n sku: product ? product.sku : productBundle.sku,\n name: product ? product.name : productBundle.name,\n description: product ? product.description : productBundle.description,\n qty: mi.qty,\n unitPrice: (mi?.originalPrice || 0) / mi.qty,\n paidPrice: (mi?.paidPrice || 0) / mi.qty,\n discount: mi?.discount || 0,\n shippingFeePaidByCustomer: mi?.shippingFeePaidByCustomer || 0\n }\n })\n )\n\n let newInvoice = {\n invoiceProducts,\n name: '-',\n refNo1: newReleaseOrder.refNo.toString(),\n refNo2: newReleaseOrder.refNo2.toString(),\n issuedOn: new Date(),\n from: marketplaceOrder.marketplaceStore.storeName,\n fromContactPhone: '-',\n fromAddress1: '-',\n fromAddress2: null,\n fromAddress3: null,\n fromAddress4: null,\n fromAddress5: null,\n fromPostcode: null,\n fromCity: null,\n fromState: null,\n fromCountry: null,\n deliverTo: newReleaseOrder.deliverTo.attentionTo || '-',\n deliverToPhone: newReleaseOrder.deliverTo.phone1 || '-',\n deliveryAddress1: newReleaseOrder.deliverTo.deliveryAddress1 || '-',\n deliveryAddress2: newReleaseOrder.deliverTo.deliveryAddress2,\n deliveryAddress3: newReleaseOrder.deliverTo.deliveryAddress3,\n deliveryAddress4: newReleaseOrder.deliverTo.deliveryAddress4,\n deliveryAddress5: newReleaseOrder.deliverTo.deliveryAddress5,\n deliveryPostcode: newReleaseOrder.deliverTo.postalCode || '-',\n deliveryCity: newReleaseOrder.deliverTo.city || '-',\n deliveryState: newReleaseOrder.deliverTo.state || '-',\n deliveryCountry: newReleaseOrder.deliverTo.country || '-',\n billTo: newReleaseOrder.deliverTo.attentionTo || '-',\n billToPhone: newReleaseOrder.deliverTo.phone1 || '-',\n billingAddress1: newReleaseOrder.deliverTo.billingAddress || newReleaseOrder.deliverTo.deliveryAddress1 || '-',\n billingAddress2: null,\n billingAddress3: null,\n billingAddress4: null,\n billingAddress5: null,\n billingPostcode: '-',\n billingCity: '-',\n billingState: '-',\n billingCountry: '-'\n }\n\n try {\n await FulfillmentAPI.createSalesInvoice(fulfilmentCenter, {\n customerBizplaceId,\n invoice: newInvoice\n })\n } catch (e) {}\n }\n }\n}\n"]}
1
+ {"version":3,"file":"auto-add-release-order.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/interface-with-hub/auto-add-release-order.ts"],"names":[],"mappings":"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","sourcesContent":["import { createQueryBuilder, SelectQueryBuilder } from 'typeorm'\n\nimport { Bizplace, getCustomerBizplaces } from '@things-factory/biz-base'\nimport { FulfillmentAPI } from '@things-factory/integration-fulfillment'\nimport {\n MarketplaceOrder,\n MarketplaceOrderItem,\n MarketplaceOrderShipping,\n MarketplaceOrderShippingItem\n} from '@things-factory/marketplace-base'\nimport { Product, ProductBundle } from '@things-factory/product-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nexport const autoAddReleaseOrderResolver = {\n async autoAddReleaseOrder(\n _: void,\n { warehouseId }: { warehouseId: string },\n context: ResolverContext\n ): Promise<void> {\n const { domain } = context.state\n\n const qb: SelectQueryBuilder<MarketplaceOrder> = createQueryBuilder(MarketplaceOrder, 'MO')\n const marketplaceOrders: MarketplaceOrder[] = await qb\n .leftJoinAndSelect('MO.marketplaceOrderItems', 'MOI')\n .leftJoinAndSelect('MOI.marketplaceOrderShippingItems', 'MOSI')\n .leftJoinAndSelect('MOSI.marketplaceOrderShipping', 'MOS')\n .leftJoinAndSelect('MOI.marketplaceProductVariation', 'MPV')\n .leftJoinAndSelect('MO.marketplaceStore', 'MPS')\n .where('MO.domain = :domainId', { domainId: domain.id })\n .andWhere('MO.releaseOrderId IS NULL')\n .andWhere('MO.status IN (:...status)', {\n status: ['ready_to_ship', 'unfulfilled', 'packed', 'processing']\n })\n .andWhere('MPS.status = :marketplaceStatus', { marketplaceStatus: 'ACTIVE' })\n .getMany()\n\n var fulfilmentCenter = await FulfillmentAPI.getFulfillmentCenter(warehouseId)\n var centerId: string = fulfilmentCenter.centerId\n\n var warehouseDomain: Domain = await getRepository(Domain).findOne({ where: { subdomain: centerId } })\n var customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)\n const customerBizplaceId: string = customerBizplaces.find(\n customerBizplace => customerBizplace.company.domain.id === domain.id\n ).id\n\n for (var i = 0; i < marketplaceOrders.length; i++) {\n const marketplaceOrder = marketplaceOrders[i]\n\n const marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems\n\n const marketplaceOrderShippings: MarketplaceOrderShipping[] = await getRepository(MarketplaceOrderShipping).find({\n where: { orderNoRef: marketplaceOrder.orderNo, domain: { id: domain.id } },\n order: { subOrderNoRef: 'ASC' },\n relations: [\n 'marketplaceOrderShippingItems',\n 'marketplaceOrderShippingItems.marketplaceOrderItem',\n 'marketplaceOrderShippingItems.product'\n ]\n })\n\n for (let j = 0; j < marketplaceOrderShippings.length; j++) {\n let marketplaceOrderShipping: MarketplaceOrderShipping = marketplaceOrderShippings[j]\n let marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =\n marketplaceOrderShipping.marketplaceOrderShippingItems\n\n if (!marketplaceOrderShipping?.releaseOrderId) {\n const date: Date = new Date()\n const releaseDate = `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date\n .getDate()\n .toString()\n .padStart(2, '0')}`\n\n var newReleaseOrder: any = {\n releaseDate,\n type: 'b2c',\n transporter: marketplaceOrder.shippingProvider,\n trackingNo: marketplaceOrderShipping?.ownTrackingNo\n ? marketplaceOrderShipping.ownTrackingNo\n : marketplaceOrderShipping.trackingNo,\n packingOption: true,\n exportOption: false,\n ownTransport: true,\n courierOption: true,\n collectionOrderNo: marketplaceOrder.orderNo,\n refNo: marketplaceOrder.orderNo,\n refNo2:\n marketplaceOrderShippings.length > 1 ? marketplaceOrderShipping?.subOrderNoRef : marketplaceOrder.orderNo,\n deliverTo: {\n deliveryAddress1: marketplaceOrderShipping.address1,\n deliveryAddress2: marketplaceOrderShipping.address2,\n deliveryAddress3: marketplaceOrderShipping.address3,\n deliveryAddress4: marketplaceOrderShipping.address4,\n deliveryAddress5: marketplaceOrderShipping.address5,\n attentionTo: marketplaceOrderShipping.attentionTo,\n city: marketplaceOrderShipping.city,\n postalCode: marketplaceOrderShipping.postCode,\n country: marketplaceOrderShipping.country,\n state: marketplaceOrderShipping.state,\n phone1: marketplaceOrderShipping.phone1,\n phone2: marketplaceOrderShipping?.phone2 ? marketplaceOrderShipping.phone2 : null\n },\n marketplaceOrderStatus: marketplaceOrder.status,\n airwayBill: marketplaceOrderShipping?.airwayBill ? marketplaceOrderShipping.airwayBill : null,\n invoice: marketplaceOrderShipping?.invoice ? marketplaceOrderShipping.invoice : null,\n orderInventories: marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {\n return {\n product: {\n sku: marketplaceOrderShippingItem.product.sku\n },\n releaseQty: marketplaceOrderShippingItem.qty\n }\n })\n }\n\n try {\n var releaseOrder: any = await FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {\n customerBizplaceId,\n releaseOrder: newReleaseOrder\n })\n\n marketplaceOrderShipping.releaseOrderId = releaseOrder.id\n marketplaceOrderShipping.fulfillmentCenter = fulfilmentCenter\n await getRepository(MarketplaceOrderShipping).save(marketplaceOrderShipping)\n\n if (releaseOrder && releaseOrder?.id) {\n marketplaceOrder.releaseOrderId = releaseOrder.id\n marketplaceOrder.fulfillmentCenter = fulfilmentCenter\n await getRepository(MarketplaceOrder).save(marketplaceOrder)\n }\n } catch (e) {}\n }\n }\n\n var invoiceProducts = await Promise.all(\n marketplaceOrderItems.map(async mi => {\n let product: Product = await getRepository(Product).findOne({\n where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }\n })\n\n let productBundle: ProductBundle\n if (!product) {\n productBundle = await getRepository(ProductBundle).findOne({\n where: { domain: { id: domain.id }, sku: mi.marketplaceProductVariation.sku }\n })\n }\n\n return {\n sku: product ? product.sku : productBundle.sku,\n name: product ? product.name : productBundle.name,\n description: product ? product.description : productBundle.description,\n qty: mi.qty,\n unitPrice: (mi?.originalPrice || 0) / mi.qty,\n paidPrice: (mi?.paidPrice || 0) / mi.qty,\n discount: mi?.discount || 0,\n shippingFeePaidByCustomer: mi?.shippingFeePaidByCustomer || 0\n }\n })\n )\n\n let newInvoice = {\n invoiceProducts,\n name: '-',\n refNo1: newReleaseOrder.refNo.toString(),\n refNo2: newReleaseOrder.refNo2.toString(),\n issuedOn: new Date(),\n from: marketplaceOrder.marketplaceStore.storeName,\n fromContactPhone: '-',\n fromAddress1: '-',\n fromAddress2: null,\n fromAddress3: null,\n fromAddress4: null,\n fromAddress5: null,\n fromPostcode: null,\n fromCity: null,\n fromState: null,\n fromCountry: null,\n deliverTo: newReleaseOrder.deliverTo.attentionTo || '-',\n deliverToPhone: newReleaseOrder.deliverTo.phone1 || '-',\n deliveryAddress1: newReleaseOrder.deliverTo.deliveryAddress1 || '-',\n deliveryAddress2: newReleaseOrder.deliverTo.deliveryAddress2,\n deliveryAddress3: newReleaseOrder.deliverTo.deliveryAddress3,\n deliveryAddress4: newReleaseOrder.deliverTo.deliveryAddress4,\n deliveryAddress5: newReleaseOrder.deliverTo.deliveryAddress5,\n deliveryPostcode: newReleaseOrder.deliverTo.postalCode || '-',\n deliveryCity: newReleaseOrder.deliverTo.city || '-',\n deliveryState: newReleaseOrder.deliverTo.state || '-',\n deliveryCountry: newReleaseOrder.deliverTo.country || '-',\n billTo: newReleaseOrder.deliverTo.attentionTo || '-',\n billToPhone: newReleaseOrder.deliverTo.phone1 || '-',\n billingAddress1: newReleaseOrder.deliverTo.billingAddress || newReleaseOrder.deliverTo.deliveryAddress1 || '-',\n billingAddress2: null,\n billingAddress3: null,\n billingAddress4: null,\n billingAddress5: null,\n billingPostcode: '-',\n billingCity: '-',\n billingState: '-',\n billingCountry: '-'\n }\n\n try {\n await FulfillmentAPI.createSalesInvoice(fulfilmentCenter, {\n customerBizplaceId,\n invoice: newInvoice\n })\n } catch (e) {}\n }\n }\n}\n"]}
@@ -13,14 +13,14 @@ exports.autoUpdateAllMarketplaceProductVariationQuantityResolver = {
13
13
  async autoUpdateAllMarketplaceProductVariationQuantity(_, { companyDomainId, warehouseId }, context) {
14
14
  const companyDomain = await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: companyDomainId });
15
15
  const marketplaceStores = await (0, shell_1.getRepository)(integration_marketplace_1.MarketplaceStore).find({
16
- where: { domain: companyDomain, status: 'ACTIVE' },
16
+ where: { domain: { id: companyDomain.id }, status: 'ACTIVE' },
17
17
  relations: ['marketplaceDistributors']
18
18
  });
19
19
  const fulfilmentCenter = await integration_fulfillment_1.FulfillmentAPI.getFulfillmentCenter(warehouseId);
20
20
  const centerId = fulfilmentCenter.centerId;
21
21
  const warehouseDomain = await (0, shell_1.getRepository)(shell_1.Domain).findOne({ where: { subdomain: centerId } });
22
22
  let products = await (0, shell_1.getRepository)(product_base_1.Product).find({
23
- where: { domain: companyDomain },
23
+ where: { domain: { id: companyDomain.id } },
24
24
  relations: ['productDetails']
25
25
  });
26
26
  let inventoryProducts = await Promise.all(products.map(async (product) => {
@@ -67,7 +67,7 @@ exports.autoUpdateAllMarketplaceProductVariationQuantityResolver = {
67
67
  try {
68
68
  const marketplaceStore = marketplaceStores[i];
69
69
  const marketplaceSetting = await (0, shell_1.getRepository)(integration_marketplace_1.MarketplaceSetting).findOne({
70
- where: { marketplaceStore, category: 'stock_allocation' }
70
+ where: { marketplaceStore: { id: marketplaceStore.id }, category: 'stock_allocation' }
71
71
  });
72
72
  for (let j = 0; j < inventoryProducts.length; j++) {
73
73
  try {
@@ -77,7 +77,7 @@ exports.autoUpdateAllMarketplaceProductVariationQuantityResolver = {
77
77
  const marketplaceProductVariations = await tx
78
78
  .getRepository(marketplace_base_1.MarketplaceProductVariation)
79
79
  .find({
80
- where: { domain: companyDomain, sku: inventoryProduct.sku },
80
+ where: { domain: { id: companyDomain.id }, sku: inventoryProduct.sku },
81
81
  relations: ['marketplaceProduct', 'marketplaceProduct.marketplaceStore']
82
82
  });
83
83
  let storeProductVariations = marketplaceProductVariations.filter(productVariation => productVariation.marketplaceProduct.marketplaceStore.id === marketplaceStore.id);
@@ -1 +1 @@
1
- {"version":3,"file":"auto-update-all-marketplace-product-variation-quantity.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/interface-with-hub/auto-update-all-marketplace-product-variation-quantity.ts"],"names":[],"mappings":"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","sourcesContent":["import { getConnection } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { FulfillmentAPI } from '@things-factory/integration-fulfillment'\nimport { MarketplaceSetting, MarketplaceStore, StoreAPI } from '@things-factory/integration-marketplace'\nimport { MarketplaceProductVariation } from '@things-factory/marketplace-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { getProductBundleInventory, Inventory, INVENTORY_STATUS, LOCATION_TYPE } from '@things-factory/warehouse-base'\n\nexport const autoUpdateAllMarketplaceProductVariationQuantityResolver = {\n async autoUpdateAllMarketplaceProductVariationQuantity(\n _: any,\n { companyDomainId, warehouseId },\n context: ResolverContext\n ) {\n const companyDomain: Domain = await getRepository(Domain).findOneBy({ id: companyDomainId })\n\n const marketplaceStores: MarketplaceStore[] = await getRepository(MarketplaceStore).find({\n where: { domain: companyDomain, status: 'ACTIVE' },\n relations: ['marketplaceDistributors']\n })\n\n const fulfilmentCenter = await FulfillmentAPI.getFulfillmentCenter(warehouseId)\n const centerId: string = fulfilmentCenter.centerId\n const warehouseDomain: Domain = await getRepository(Domain).findOne({ where: { subdomain: centerId } })\n\n let products: Product[] = await getRepository(Product).find({\n where: { domain: companyDomain },\n relations: ['productDetails']\n })\n\n let inventoryProducts: any[] = await Promise.all(\n products.map(async product => {\n const productDetails: ProductDetail[] = product.productDetails\n const defaultProductDetail: ProductDetail = productDetails.filter(productDetail => productDetail.isDefault)[0]\n\n let qb = await getRepository(Inventory).createQueryBuilder('inv')\n qb.leftJoinAndSelect('inv.location', 'loc')\n .andWhere('\"inv\".\"domain_id\" = :domainId')\n .andWhere('\"inv\".\"product_id\" = :productId')\n .andWhere('\"inv\".\"status\" != :status')\n .andWhere('\"loc\".\"type\" NOT IN (:...locationTypes)')\n .setParameters({\n domainId: warehouseDomain.id,\n productId: product.id,\n status: INVENTORY_STATUS.TERMINATED,\n locationTypes: [LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE]\n })\n\n let inventories: Inventory[] = await qb.getMany()\n\n const inventoryQty: number = inventories.reduce((total, currentValue) => {\n total += currentValue.qty\n return total\n }, 0)\n\n const inventoryLockedQty: number = inventories.reduce((total, currentValue) => {\n total += currentValue.lockedQty\n return total\n }, 0)\n\n return {\n product,\n sku: product.sku,\n name: product.name,\n packingType: defaultProductDetail.packingType,\n packingSize: defaultProductDetail.packingSize,\n uom: defaultProductDetail.uom,\n qty: inventoryQty - inventoryLockedQty\n }\n })\n )\n\n await getConnection().transaction(async tx => {\n let bundleProductInventories: any[] = await getProductBundleInventory(\n warehouseDomain,\n companyDomain,\n inventoryProducts,\n tx\n )\n\n bundleProductInventories.map(bundleProductInventory => {\n inventoryProducts.push(bundleProductInventory)\n })\n })\n\n for (let i = 0; i < marketplaceStores.length; i++) {\n try {\n const marketplaceStore: MarketplaceStore = marketplaceStores[i]\n\n const marketplaceSetting: MarketplaceSetting = await getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore, category: 'stock_allocation' }\n })\n\n for (let j = 0; j < inventoryProducts.length; j++) {\n try {\n await getConnection().transaction(async tx => {\n const inventoryProduct = inventoryProducts[j]\n const marketplaceProductVariations: MarketplaceProductVariation[] = await tx\n .getRepository(MarketplaceProductVariation)\n .find({\n where: { domain: companyDomain, sku: inventoryProduct.sku },\n relations: ['marketplaceProduct', 'marketplaceProduct.marketplaceStore']\n })\n\n let storeProductVariations: MarketplaceProductVariation[] = marketplaceProductVariations.filter(\n productVariation => productVariation.marketplaceProduct.marketplaceStore.id === marketplaceStore.id\n )\n\n let percentageValue: number = 100\n if (storeProductVariations) {\n for (let k = 0; k < storeProductVariations.length; k++) {\n let storeProductVariation: MarketplaceProductVariation = storeProductVariations[k]\n if (marketplaceSetting) {\n percentageValue = parseInt(marketplaceSetting.value)\n }\n\n let remainQty: number = Math.floor(\n (inventoryProduct.qty - storeProductVariation.reserveQty) * (percentageValue / 100)\n )\n if (remainQty < 0) remainQty = 0\n\n let productVariationLocationId = storeProductVariation?.locationId\n let adjustQty: number = remainQty\n\n if (marketplaceStore.platform === 'shopify') {\n let locationIds: any[] = JSON.parse(productVariationLocationId)\n adjustQty = adjustQty - storeProductVariation.qty\n if (locationIds[0]?.location_id) productVariationLocationId = locationIds[0].location_id\n }\n\n let validMarketplaceDistributors: any[] = []\n if (marketplaceStore.marketplaceDistributors) {\n validMarketplaceDistributors = marketplaceStore.marketplaceDistributors.filter(\n distributor => distributor.status === 'ACTIVE'\n )\n }\n\n const hasVariation: boolean = storeProductVariation?.marketplaceProduct?.hasVariation\n\n if (hasVariation) {\n await StoreAPI.updateStoreProductVariationStock(marketplaceStore, [\n {\n itemId: storeProductVariation.marketplaceProduct.itemId,\n variationId: storeProductVariation.variationId,\n variationSku: storeProductVariation.variationSku,\n qty: adjustQty,\n locationId: productVariationLocationId,\n inventoryItemId: storeProductVariation.inventoryItemId,\n distributors: validMarketplaceDistributors\n }\n ])\n } else {\n await StoreAPI.updateStoreProductStock(marketplaceStore, [\n {\n itemId: storeProductVariation.marketplaceProduct.itemId,\n variationId: storeProductVariation.variationId,\n variationSku: storeProductVariation.variationSku,\n qty: adjustQty,\n distributors: validMarketplaceDistributors\n }\n ])\n }\n\n storeProductVariation.qty = remainQty\n await tx.getRepository(MarketplaceProductVariation).save(storeProductVariation)\n }\n }\n })\n } catch (error) {\n logger.error(\n `interface-with-hub[autoUpdateAllMarketplaceProductVariationQuantity]inventoryProducts: ${error}`\n )\n }\n }\n } catch (e) {\n logger.error(`interface-with-hub[autoUpdateAllMarketplaceProductVariationQuantity]marketplaceStores: ${e}`)\n }\n }\n\n return true\n }\n}\n"]}
1
+ {"version":3,"file":"auto-update-all-marketplace-product-variation-quantity.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/interface-with-hub/auto-update-all-marketplace-product-variation-quantity.ts"],"names":[],"mappings":"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","sourcesContent":["import { getConnection } from 'typeorm'\n\nimport { logger } from '@things-factory/env'\nimport { FulfillmentAPI } from '@things-factory/integration-fulfillment'\nimport { MarketplaceSetting, MarketplaceStore, StoreAPI } from '@things-factory/integration-marketplace'\nimport { MarketplaceProductVariation } from '@things-factory/marketplace-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { getProductBundleInventory, Inventory, INVENTORY_STATUS, LOCATION_TYPE } from '@things-factory/warehouse-base'\n\nexport const autoUpdateAllMarketplaceProductVariationQuantityResolver = {\n async autoUpdateAllMarketplaceProductVariationQuantity(\n _: any,\n { companyDomainId, warehouseId },\n context: ResolverContext\n ) {\n const companyDomain: Domain = await getRepository(Domain).findOneBy({ id: companyDomainId })\n\n const marketplaceStores: MarketplaceStore[] = await getRepository(MarketplaceStore).find({\n where: { domain: { id: companyDomain.id }, status: 'ACTIVE' },\n relations: ['marketplaceDistributors']\n })\n\n const fulfilmentCenter = await FulfillmentAPI.getFulfillmentCenter(warehouseId)\n const centerId: string = fulfilmentCenter.centerId\n const warehouseDomain: Domain = await getRepository(Domain).findOne({ where: { subdomain: centerId } })\n\n let products: Product[] = await getRepository(Product).find({\n where: { domain: { id: companyDomain.id } },\n relations: ['productDetails']\n })\n\n let inventoryProducts: any[] = await Promise.all(\n products.map(async product => {\n const productDetails: ProductDetail[] = product.productDetails\n const defaultProductDetail: ProductDetail = productDetails.filter(productDetail => productDetail.isDefault)[0]\n\n let qb = await getRepository(Inventory).createQueryBuilder('inv')\n qb.leftJoinAndSelect('inv.location', 'loc')\n .andWhere('\"inv\".\"domain_id\" = :domainId')\n .andWhere('\"inv\".\"product_id\" = :productId')\n .andWhere('\"inv\".\"status\" != :status')\n .andWhere('\"loc\".\"type\" NOT IN (:...locationTypes)')\n .setParameters({\n domainId: warehouseDomain.id,\n productId: product.id,\n status: INVENTORY_STATUS.TERMINATED,\n locationTypes: [LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE]\n })\n\n let inventories: Inventory[] = await qb.getMany()\n\n const inventoryQty: number = inventories.reduce((total, currentValue) => {\n total += currentValue.qty\n return total\n }, 0)\n\n const inventoryLockedQty: number = inventories.reduce((total, currentValue) => {\n total += currentValue.lockedQty\n return total\n }, 0)\n\n return {\n product,\n sku: product.sku,\n name: product.name,\n packingType: defaultProductDetail.packingType,\n packingSize: defaultProductDetail.packingSize,\n uom: defaultProductDetail.uom,\n qty: inventoryQty - inventoryLockedQty\n }\n })\n )\n\n await getConnection().transaction(async tx => {\n let bundleProductInventories: any[] = await getProductBundleInventory(\n warehouseDomain,\n companyDomain,\n inventoryProducts,\n tx\n )\n\n bundleProductInventories.map(bundleProductInventory => {\n inventoryProducts.push(bundleProductInventory)\n })\n })\n\n for (let i = 0; i < marketplaceStores.length; i++) {\n try {\n const marketplaceStore: MarketplaceStore = marketplaceStores[i]\n\n const marketplaceSetting: MarketplaceSetting = await getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id }, category: 'stock_allocation' }\n })\n\n for (let j = 0; j < inventoryProducts.length; j++) {\n try {\n await getConnection().transaction(async tx => {\n const inventoryProduct = inventoryProducts[j]\n const marketplaceProductVariations: MarketplaceProductVariation[] = await tx\n .getRepository(MarketplaceProductVariation)\n .find({\n where: { domain: { id: companyDomain.id }, sku: inventoryProduct.sku },\n relations: ['marketplaceProduct', 'marketplaceProduct.marketplaceStore']\n })\n\n let storeProductVariations: MarketplaceProductVariation[] = marketplaceProductVariations.filter(\n productVariation => productVariation.marketplaceProduct.marketplaceStore.id === marketplaceStore.id\n )\n\n let percentageValue: number = 100\n if (storeProductVariations) {\n for (let k = 0; k < storeProductVariations.length; k++) {\n let storeProductVariation: MarketplaceProductVariation = storeProductVariations[k]\n if (marketplaceSetting) {\n percentageValue = parseInt(marketplaceSetting.value)\n }\n\n let remainQty: number = Math.floor(\n (inventoryProduct.qty - storeProductVariation.reserveQty) * (percentageValue / 100)\n )\n if (remainQty < 0) remainQty = 0\n\n let productVariationLocationId = storeProductVariation?.locationId\n let adjustQty: number = remainQty\n\n if (marketplaceStore.platform === 'shopify') {\n let locationIds: any[] = JSON.parse(productVariationLocationId)\n adjustQty = adjustQty - storeProductVariation.qty\n if (locationIds[0]?.location_id) productVariationLocationId = locationIds[0].location_id\n }\n\n let validMarketplaceDistributors: any[] = []\n if (marketplaceStore.marketplaceDistributors) {\n validMarketplaceDistributors = marketplaceStore.marketplaceDistributors.filter(\n distributor => distributor.status === 'ACTIVE'\n )\n }\n\n const hasVariation: boolean = storeProductVariation?.marketplaceProduct?.hasVariation\n\n if (hasVariation) {\n await StoreAPI.updateStoreProductVariationStock(marketplaceStore, [\n {\n itemId: storeProductVariation.marketplaceProduct.itemId,\n variationId: storeProductVariation.variationId,\n variationSku: storeProductVariation.variationSku,\n qty: adjustQty,\n locationId: productVariationLocationId,\n inventoryItemId: storeProductVariation.inventoryItemId,\n distributors: validMarketplaceDistributors\n }\n ])\n } else {\n await StoreAPI.updateStoreProductStock(marketplaceStore, [\n {\n itemId: storeProductVariation.marketplaceProduct.itemId,\n variationId: storeProductVariation.variationId,\n variationSku: storeProductVariation.variationSku,\n qty: adjustQty,\n distributors: validMarketplaceDistributors\n }\n ])\n }\n\n storeProductVariation.qty = remainQty\n await tx.getRepository(MarketplaceProductVariation).save(storeProductVariation)\n }\n }\n })\n } catch (error) {\n logger.error(\n `interface-with-hub[autoUpdateAllMarketplaceProductVariationQuantity]inventoryProducts: ${error}`\n )\n }\n }\n } catch (e) {\n logger.error(`interface-with-hub[autoUpdateAllMarketplaceProductVariationQuantity]marketplaceStores: ${e}`)\n }\n }\n\n return true\n }\n}\n"]}
@@ -71,7 +71,7 @@ exports.etraxRouter.post(`/lmd/etrax/status_update`, async (context, next) => {
71
71
  let orderItems = order.marketplaceOrderItems;
72
72
  const marketplaceStore = order.marketplaceStore;
73
73
  const marketplaceTransporter = await (0, shell_1.getRepository)(integration_marketplace_1.MarketplaceTransporter).findOne({
74
- where: { marketplaceStore },
74
+ where: { marketplaceStore: { id: marketplaceStore.id } },
75
75
  relations: ['pickupTransporter']
76
76
  });
77
77
  for (const orderItem of orderItems) {
@@ -1 +1 @@
1
- {"version":3,"file":"etrax-router.js","sourceRoot":"","sources":["../../server/routers/etrax-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\n\nimport { Bizplace, getCustomerBizplaces } from '@things-factory/biz-base'\nimport { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-fulfillment'\nimport { Etrax, LastMileDelivery } from '@things-factory/integration-lmd'\nimport { MarketplaceStore, MarketplaceTransporter, StoreAPI } from '@things-factory/integration-marketplace'\nimport {\n MarketplaceOrder,\n MarketplaceOrderItem,\n MarketplaceOrderShipping,\n MarketplaceOrderShippingItem\n} from '@things-factory/marketplace-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nconst debug = require('debug')('things-factory:jest.config')\nexport const etraxRouter = new Router()\n\netraxRouter.post(`/lmd/etrax/status_update`, async (context, next) => {\n const repo = getRepository(LastMileDelivery)\n const requestBody = context.request.body\n debug('etrax_status_update/context: ', context)\n\n const bodyToken = requestBody.Token\n const bodyTimestamp = requestBody.TimeStamp\n const bodySourceID = requestBody.SourceID\n const extOrderNo = requestBody.ExtOrderNo\n const trackingNo = requestBody.TrackingNo\n const status = requestBody.Status\n const awbUrl = requestBody.AWBurl\n\n const customerCode = bodySourceID\n const lmd: LastMileDelivery = await repo.findOne({\n where: { clientName: customerCode, platform: 'eTrax' }\n })\n debug(lmd)\n\n const secretKey = lmd.secretKey\n\n if (customerCode === '' || secretKey === '') {\n //Cant find the correct record\n return\n }\n\n const etrax = new Etrax(customerCode)\n debug('RequestBody: ', requestBody)\n //Validate Token\n const validate = await etrax.validateToken(bodyToken, 'UPDATE_STATUS', bodyTimestamp)\n debug('IsAuthenticated: ', validate)\n\n if (!validate) {\n //Return unauthorized\n const resp = {\n Status: 'ERROR',\n Code: 302,\n Message: 'Validate failed',\n OrderNo: extOrderNo,\n ExtOrderNo: extOrderNo,\n TrackingNo: trackingNo\n }\n context.type = 'application/json'\n context.body = JSON.stringify(resp)\n return\n }\n\n //TAS - Transporter Assignment Success\n if (status === 'TAS') {\n //Update DB if Validate Success\n const orderRepo = getRepository(MarketplaceOrder)\n const orderShippingRepo = getRepository(MarketplaceOrderShipping)\n\n let order: MarketplaceOrder = await orderRepo.findOne({\n where: { orderNo: extOrderNo },\n relations: [\n 'domain',\n 'marketplaceStore',\n 'marketplaceOrderItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',\n 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping.fulfillmentCenter',\n 'marketplaceOrderItems.marketplaceProductVariation'\n ]\n })\n let orderItems: MarketplaceOrderItem[] = order.marketplaceOrderItems\n\n const marketplaceStore: MarketplaceStore = order.marketplaceStore\n\n const marketplaceTransporter: MarketplaceTransporter = await getRepository(MarketplaceTransporter).findOne({\n where: { marketplaceStore },\n relations: ['pickupTransporter']\n })\n\n for (const orderItem of orderItems) {\n if (orderItem.marketplaceOrderShippingItems[0].marketplaceOrderShipping !== null) {\n const orderShippingItems: MarketplaceOrderShippingItem[] = orderItem.marketplaceOrderShippingItems\n const orderShipping: MarketplaceOrderShipping = orderShippingItems[0].marketplaceOrderShipping\n const fulfillmentCenter: FulfillmentCenter = orderShipping?.fulfillmentCenter\n\n const centerId: string = fulfillmentCenter.centerId\n const warehouseDomain: Domain = await getRepository(Domain).findOne({ where: { subdomain: centerId } })\n const customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)\n const customerBizplaceId: string = customerBizplaces.find(\n customerBizplace => customerBizplace.company.domain.id == order?.domain.id\n ).id\n\n let patch = {\n id: orderShipping.releaseOrderId,\n trackingNo: trackingNo,\n transporter: marketplaceTransporter?.pickupTransporter.name\n }\n\n FulfillmentAPI.updateReleaseGoodDetails(fulfillmentCenter, {\n customerBizplaceId,\n releaseOrder: { ...patch },\n shippingOrder: null\n })\n\n await orderShippingRepo.update({ id: orderShipping.id }, {\n trackingNo: trackingNo,\n airwayBill: awbUrl,\n updatedAt: new Date(),\n transporter: marketplaceTransporter?.pickupTransporter.name || orderShipping.transporter\n } as any)\n }\n }\n\n // to-do update tracking no to every marketplaces\n if (marketplaceStore.platform === 'woocommerce' || marketplaceStore.platform === 'shopify') {\n const note = 'http://ets.sntglobal.com/?mod=tracking&action=index&orders=' + trackingNo\n let orderInfo: MarketplaceOrder = await getRepository(MarketplaceOrder).findOne({\n where: {\n name: order.name\n },\n relations: ['marketplaceOrderItems', 'marketplaceOrderItems.marketplaceProductVariation']\n })\n const result = await StoreAPI.setStoreOrderStatusReadyToShip(marketplaceStore, {\n orderId: order.name,\n trackingUrl: note,\n trackingNo,\n order: orderInfo,\n note,\n transporter: marketplaceTransporter?.pickupTransporter.name\n })\n\n if (marketplaceStore.platform === 'woocommerce') {\n await StoreAPI.updateOrderStatus(marketplaceStore, {\n orderId: order.name,\n status: 'DELIVERED'\n })\n }\n }\n\n try {\n const updatedOrder = await StoreAPI.getStoreOrder(marketplaceStore, { orderId: order.name })\n\n order.status = updatedOrder.status\n order.orderUpdatedAt = updatedOrder.orderUpdatedAt\n order.trackingNo = updatedOrder.trackingNo\n order.shippingProvider = updatedOrder.shippingProvider\n await getRepository(MarketplaceOrder).save(order)\n\n for (let idx = 0; idx < order.marketplaceOrderItems.length; idx++) {\n let matchItem = updatedOrder.orderItems.find(\n i => i.variationId == order.marketplaceOrderItems[idx].marketplaceProductVariation.variationId\n )\n\n if (matchItem) {\n let targetMarketplaceOrderItem = {\n ...order.marketplaceOrderItems[idx],\n shippingProvider: matchItem.shippingProvider,\n trackingCode: matchItem.trackingNo,\n status: matchItem.status\n }\n\n await getRepository(MarketplaceOrderItem).save(targetMarketplaceOrderItem)\n }\n }\n } catch (e) {}\n\n const resp = {\n Status: 'SUCCESS',\n Code: 200,\n Message: 'Updated',\n OrderNo: order.orderNo,\n ExtOrderNo: extOrderNo,\n TrackingNo: trackingNo\n }\n context.type = 'application/json'\n context.body = JSON.stringify(resp)\n }\n})\n"]}
1
+ {"version":3,"file":"etrax-router.js","sourceRoot":"","sources":["../../server/routers/etrax-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\n\nimport { Bizplace, getCustomerBizplaces } from '@things-factory/biz-base'\nimport { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-fulfillment'\nimport { Etrax, LastMileDelivery } from '@things-factory/integration-lmd'\nimport { MarketplaceStore, MarketplaceTransporter, StoreAPI } from '@things-factory/integration-marketplace'\nimport {\n MarketplaceOrder,\n MarketplaceOrderItem,\n MarketplaceOrderShipping,\n MarketplaceOrderShippingItem\n} from '@things-factory/marketplace-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nconst debug = require('debug')('things-factory:jest.config')\nexport const etraxRouter = new Router()\n\netraxRouter.post(`/lmd/etrax/status_update`, async (context, next) => {\n const repo = getRepository(LastMileDelivery)\n const requestBody = context.request.body\n debug('etrax_status_update/context: ', context)\n\n const bodyToken = requestBody.Token\n const bodyTimestamp = requestBody.TimeStamp\n const bodySourceID = requestBody.SourceID\n const extOrderNo = requestBody.ExtOrderNo\n const trackingNo = requestBody.TrackingNo\n const status = requestBody.Status\n const awbUrl = requestBody.AWBurl\n\n const customerCode = bodySourceID\n const lmd: LastMileDelivery = await repo.findOne({\n where: { clientName: customerCode, platform: 'eTrax' }\n })\n debug(lmd)\n\n const secretKey = lmd.secretKey\n\n if (customerCode === '' || secretKey === '') {\n //Cant find the correct record\n return\n }\n\n const etrax = new Etrax(customerCode)\n debug('RequestBody: ', requestBody)\n //Validate Token\n const validate = await etrax.validateToken(bodyToken, 'UPDATE_STATUS', bodyTimestamp)\n debug('IsAuthenticated: ', validate)\n\n if (!validate) {\n //Return unauthorized\n const resp = {\n Status: 'ERROR',\n Code: 302,\n Message: 'Validate failed',\n OrderNo: extOrderNo,\n ExtOrderNo: extOrderNo,\n TrackingNo: trackingNo\n }\n context.type = 'application/json'\n context.body = JSON.stringify(resp)\n return\n }\n\n //TAS - Transporter Assignment Success\n if (status === 'TAS') {\n //Update DB if Validate Success\n const orderRepo = getRepository(MarketplaceOrder)\n const orderShippingRepo = getRepository(MarketplaceOrderShipping)\n\n let order: MarketplaceOrder = await orderRepo.findOne({\n where: { orderNo: extOrderNo },\n relations: [\n 'domain',\n 'marketplaceStore',\n 'marketplaceOrderItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping',\n 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping.fulfillmentCenter',\n 'marketplaceOrderItems.marketplaceProductVariation'\n ]\n })\n let orderItems: MarketplaceOrderItem[] = order.marketplaceOrderItems\n\n const marketplaceStore: MarketplaceStore = order.marketplaceStore\n\n const marketplaceTransporter: MarketplaceTransporter = await getRepository(MarketplaceTransporter).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id } },\n relations: ['pickupTransporter']\n })\n\n for (const orderItem of orderItems) {\n if (orderItem.marketplaceOrderShippingItems[0].marketplaceOrderShipping !== null) {\n const orderShippingItems: MarketplaceOrderShippingItem[] = orderItem.marketplaceOrderShippingItems\n const orderShipping: MarketplaceOrderShipping = orderShippingItems[0].marketplaceOrderShipping\n const fulfillmentCenter: FulfillmentCenter = orderShipping?.fulfillmentCenter\n\n const centerId: string = fulfillmentCenter.centerId\n const warehouseDomain: Domain = await getRepository(Domain).findOne({ where: { subdomain: centerId } })\n const customerBizplaces: Bizplace[] = await getCustomerBizplaces(warehouseDomain)\n const customerBizplaceId: string = customerBizplaces.find(\n customerBizplace => customerBizplace.company.domain.id == order?.domain.id\n ).id\n\n let patch = {\n id: orderShipping.releaseOrderId,\n trackingNo: trackingNo,\n transporter: marketplaceTransporter?.pickupTransporter.name\n }\n\n FulfillmentAPI.updateReleaseGoodDetails(fulfillmentCenter, {\n customerBizplaceId,\n releaseOrder: { ...patch },\n shippingOrder: null\n })\n\n await orderShippingRepo.update({ id: orderShipping.id }, {\n trackingNo: trackingNo,\n airwayBill: awbUrl,\n updatedAt: new Date(),\n transporter: marketplaceTransporter?.pickupTransporter.name || orderShipping.transporter\n } as any)\n }\n }\n\n // to-do update tracking no to every marketplaces\n if (marketplaceStore.platform === 'woocommerce' || marketplaceStore.platform === 'shopify') {\n const note = 'http://ets.sntglobal.com/?mod=tracking&action=index&orders=' + trackingNo\n let orderInfo: MarketplaceOrder = await getRepository(MarketplaceOrder).findOne({\n where: {\n name: order.name\n },\n relations: ['marketplaceOrderItems', 'marketplaceOrderItems.marketplaceProductVariation']\n })\n const result = await StoreAPI.setStoreOrderStatusReadyToShip(marketplaceStore, {\n orderId: order.name,\n trackingUrl: note,\n trackingNo,\n order: orderInfo,\n note,\n transporter: marketplaceTransporter?.pickupTransporter.name\n })\n\n if (marketplaceStore.platform === 'woocommerce') {\n await StoreAPI.updateOrderStatus(marketplaceStore, {\n orderId: order.name,\n status: 'DELIVERED'\n })\n }\n }\n\n try {\n const updatedOrder = await StoreAPI.getStoreOrder(marketplaceStore, { orderId: order.name })\n\n order.status = updatedOrder.status\n order.orderUpdatedAt = updatedOrder.orderUpdatedAt\n order.trackingNo = updatedOrder.trackingNo\n order.shippingProvider = updatedOrder.shippingProvider\n await getRepository(MarketplaceOrder).save(order)\n\n for (let idx = 0; idx < order.marketplaceOrderItems.length; idx++) {\n let matchItem = updatedOrder.orderItems.find(\n i => i.variationId == order.marketplaceOrderItems[idx].marketplaceProductVariation.variationId\n )\n\n if (matchItem) {\n let targetMarketplaceOrderItem = {\n ...order.marketplaceOrderItems[idx],\n shippingProvider: matchItem.shippingProvider,\n trackingCode: matchItem.trackingNo,\n status: matchItem.status\n }\n\n await getRepository(MarketplaceOrderItem).save(targetMarketplaceOrderItem)\n }\n }\n } catch (e) {}\n\n const resp = {\n Status: 'SUCCESS',\n Code: 200,\n Message: 'Updated',\n OrderNo: order.orderNo,\n ExtOrderNo: extOrderNo,\n TrackingNo: trackingNo\n }\n context.type = 'application/json'\n context.body = JSON.stringify(resp)\n }\n})\n"]}
@@ -38,10 +38,10 @@ exports.shopifyPosPublicRouter.post('/webhook-shopify/orders/create', async (con
38
38
  const data = request.body;
39
39
  if (data.source_name === 'pos') {
40
40
  const domainCompany = await (0, shell_1.getRepository)(biz_base_1.Company).findOne({
41
- where: { domain: marketplaceStore.domain }
41
+ where: { domain: { id: marketplaceStore.domain.id } }
42
42
  });
43
43
  const bizplaces = await (0, shell_1.getRepository)(biz_base_1.Bizplace).find({
44
- where: { company: domainCompany },
44
+ where: { company: { id: domainCompany.id } },
45
45
  relations: ['domain']
46
46
  });
47
47
  const warehouseDomains = bizplaces.map((bizplace) => bizplace.domain);
@@ -55,7 +55,7 @@ exports.shopifyPosPublicRouter.post('/webhook-shopify/orders/create', async (con
55
55
  const marketplaceProductVariation = await (0, shell_1.getRepository)(marketplace_base_1.MarketplaceProductVariation).findOne({
56
56
  where: {
57
57
  variationId,
58
- domain: marketplaceStore.domain
58
+ domain: { id: marketplaceStore.domain.id }
59
59
  }
60
60
  });
61
61
  const warehouseProduct = await (0, shell_1.getRepository)(product_base_1.Product).findOne({
@@ -66,7 +66,7 @@ exports.shopifyPosPublicRouter.post('/webhook-shopify/orders/create', async (con
66
66
  });
67
67
  const inventories = await (0, shell_1.getRepository)(warehouse_base_1.Inventory).find({
68
68
  where: {
69
- product: warehouseProduct,
69
+ product: { id: warehouseProduct.id },
70
70
  domain: selectedWarehouseDomain[0],
71
71
  status: 'STORED'
72
72
  },
@@ -1 +1 @@
1
- {"version":3,"file":"shopify-pos-public-router.js","sourceRoot":"","sources":["../../server/routers/shopify-pos-public-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\n\nimport { Bizplace, Company } from '@things-factory/biz-base'\nimport { config } from '@things-factory/env'\nimport { MarketplaceStore, Shopify } from '@things-factory/integration-marketplace'\nimport { MarketplaceProductVariation } from '@things-factory/marketplace-base'\nimport { Product } from '@things-factory/product-base'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport {\n generateInventoryHistory,\n Inventory,\n INVENTORY_STATUS,\n INVENTORY_TRANSACTION_TYPE\n} from '@things-factory/warehouse-base'\n\nconst shopifyConfig = config.get('marketplaceIntegrationShopify', {})\nconst { apiKey, apiSecret } = shopifyConfig\n\nexport const shopifyPosPublicRouter = new Router()\n\nshopifyPosPublicRouter.post('/webhook-shopify/orders/create', async (context, next) => {\n const { request, t } = context\n\n const hmac = request.get('x-shopify-hmac-sha256')\n const shopDomain = request.get('x-shopify-shop-domain')\n const shop = shopDomain.replace('.myshopify.com', '')\n const shopify = new Shopify({ apiKey, apiSecret, shop })\n\n const marketplaceStore: MarketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: { storeId: shop, status: 'ACTIVE' },\n relations: ['domain']\n })\n if (!marketplaceStore) {\n context.status = 404\n context.body = t('error.unable to find store account')\n return\n }\n\n const webhookKey: string = marketplaceStore.webhookKey\n\n const verifyMerchant: boolean = shopify.verifyWebhook(request, hmac, webhookKey)\n if (!verifyMerchant) {\n context.status = 404\n context.body = t('error.unable to verify webhook origin')\n return\n }\n\n const data = request.body\n if (data.source_name === 'pos') {\n const domainCompany: Company = await getRepository(Company).findOne({\n where: { domain: marketplaceStore.domain }\n })\n\n const bizplaces: Bizplace[] = await getRepository(Bizplace).find({\n where: { company: domainCompany },\n relations: ['domain']\n })\n\n const warehouseDomains: Domain[] = bizplaces.map((bizplace: Bizplace) => bizplace.domain)\n\n const selectedWarehouseDomain: Domain[] = warehouseDomains.filter(\n domain => domain.description === 'default' && domain.extType === 'warehouse'\n )\n\n const refOrder: any = { id: data.id, name: data.order_number }\n\n const lineItems = data.line_items\n for (var i = 0; i < lineItems.length; i++) {\n const variationId: string = lineItems[i].variant_id\n var itemQty: number = lineItems[i].quantity\n var itemUomValue: number = 0\n\n const marketplaceProductVariation: MarketplaceProductVariation = await getRepository(\n MarketplaceProductVariation\n ).findOne({\n where: {\n variationId,\n domain: marketplaceStore.domain\n }\n })\n\n const warehouseProduct: Product = await getRepository(Product).findOne({\n where: {\n sku: marketplaceProductVariation.sku\n },\n relations: ['bizplace']\n })\n\n const inventories: Inventory[] = await getRepository(Inventory).find({\n where: {\n product: warehouseProduct,\n domain: selectedWarehouseDomain[0],\n status: 'STORED'\n },\n relations: ['domain', 'bizplace', 'product', 'warehouse', 'location']\n })\n\n for (var j = 0; j < inventories.length; j++) {\n var inventory: Inventory = inventories[j]\n\n if (inventory.qty >= itemQty) {\n itemUomValue = (inventory.uomValue / inventory.qty) * itemQty\n inventory.qty -= itemQty\n inventory.uomValue -= itemUomValue\n\n await generateInventoryHistory(\n inventory,\n refOrder,\n INVENTORY_TRANSACTION_TYPE.SALES_ADJUSTMENT,\n -itemQty,\n -itemUomValue,\n null\n )\n\n if (inventory.qty === 0) {\n inventory.status = INVENTORY_STATUS.TERMINATED\n\n await generateInventoryHistory(inventory, refOrder, INVENTORY_STATUS.TERMINATED, 0, 0, null)\n }\n itemQty = 0\n } else {\n itemQty -= inventory.qty\n itemUomValue = (inventory.uomValue / inventory.qty) * itemQty\n inventory.qty -= itemQty\n inventory.uomValue -= itemUomValue\n\n await generateInventoryHistory(\n inventory,\n refOrder,\n INVENTORY_TRANSACTION_TYPE.SALES_ADJUSTMENT,\n -itemQty,\n -itemUomValue,\n null\n )\n\n if (inventory.qty === 0) {\n inventory.status = INVENTORY_STATUS.TERMINATED\n\n await generateInventoryHistory(inventory, refOrder, INVENTORY_STATUS.TERMINATED, 0, 0, null)\n }\n }\n\n if (itemQty == 0) {\n break\n }\n }\n }\n }\n\n context.status = 200\n})\n"]}
1
+ {"version":3,"file":"shopify-pos-public-router.js","sourceRoot":"","sources":["../../server/routers/shopify-pos-public-router.ts"],"names":[],"mappings":"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","sourcesContent":["import Router from 'koa-router'\n\nimport { Bizplace, Company } from '@things-factory/biz-base'\nimport { config } from '@things-factory/env'\nimport { MarketplaceStore, Shopify } from '@things-factory/integration-marketplace'\nimport { MarketplaceProductVariation } from '@things-factory/marketplace-base'\nimport { Product } from '@things-factory/product-base'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport {\n generateInventoryHistory,\n Inventory,\n INVENTORY_STATUS,\n INVENTORY_TRANSACTION_TYPE\n} from '@things-factory/warehouse-base'\n\nconst shopifyConfig = config.get('marketplaceIntegrationShopify', {})\nconst { apiKey, apiSecret } = shopifyConfig\n\nexport const shopifyPosPublicRouter = new Router()\n\nshopifyPosPublicRouter.post('/webhook-shopify/orders/create', async (context, next) => {\n const { request, t } = context\n\n const hmac = request.get('x-shopify-hmac-sha256')\n const shopDomain = request.get('x-shopify-shop-domain')\n const shop = shopDomain.replace('.myshopify.com', '')\n const shopify = new Shopify({ apiKey, apiSecret, shop })\n\n const marketplaceStore: MarketplaceStore = await getRepository(MarketplaceStore).findOne({\n where: { storeId: shop, status: 'ACTIVE' },\n relations: ['domain']\n })\n if (!marketplaceStore) {\n context.status = 404\n context.body = t('error.unable to find store account')\n return\n }\n\n const webhookKey: string = marketplaceStore.webhookKey\n\n const verifyMerchant: boolean = shopify.verifyWebhook(request, hmac, webhookKey)\n if (!verifyMerchant) {\n context.status = 404\n context.body = t('error.unable to verify webhook origin')\n return\n }\n\n const data = request.body\n if (data.source_name === 'pos') {\n const domainCompany: Company = await getRepository(Company).findOne({\n where: { domain: { id: marketplaceStore.domain.id } }\n })\n\n const bizplaces: Bizplace[] = await getRepository(Bizplace).find({\n where: { company: { id: domainCompany.id } },\n relations: ['domain']\n })\n\n const warehouseDomains: Domain[] = bizplaces.map((bizplace: Bizplace) => bizplace.domain)\n\n const selectedWarehouseDomain: Domain[] = warehouseDomains.filter(\n domain => domain.description === 'default' && domain.extType === 'warehouse'\n )\n\n const refOrder: any = { id: data.id, name: data.order_number }\n\n const lineItems = data.line_items\n for (var i = 0; i < lineItems.length; i++) {\n const variationId: string = lineItems[i].variant_id\n var itemQty: number = lineItems[i].quantity\n var itemUomValue: number = 0\n\n const marketplaceProductVariation: MarketplaceProductVariation = await getRepository(\n MarketplaceProductVariation\n ).findOne({\n where: {\n variationId,\n domain: { id: marketplaceStore.domain.id }\n }\n })\n\n const warehouseProduct: Product = await getRepository(Product).findOne({\n where: {\n sku: marketplaceProductVariation.sku\n },\n relations: ['bizplace']\n })\n\n const inventories: Inventory[] = await getRepository(Inventory).find({\n where: {\n product: { id: warehouseProduct.id },\n domain: selectedWarehouseDomain[0],\n status: 'STORED'\n },\n relations: ['domain', 'bizplace', 'product', 'warehouse', 'location']\n })\n\n for (var j = 0; j < inventories.length; j++) {\n var inventory: Inventory = inventories[j]\n\n if (inventory.qty >= itemQty) {\n itemUomValue = (inventory.uomValue / inventory.qty) * itemQty\n inventory.qty -= itemQty\n inventory.uomValue -= itemUomValue\n\n await generateInventoryHistory(\n inventory,\n refOrder,\n INVENTORY_TRANSACTION_TYPE.SALES_ADJUSTMENT,\n -itemQty,\n -itemUomValue,\n null\n )\n\n if (inventory.qty === 0) {\n inventory.status = INVENTORY_STATUS.TERMINATED\n\n await generateInventoryHistory(inventory, refOrder, INVENTORY_STATUS.TERMINATED, 0, 0, null)\n }\n itemQty = 0\n } else {\n itemQty -= inventory.qty\n itemUomValue = (inventory.uomValue / inventory.qty) * itemQty\n inventory.qty -= itemQty\n inventory.uomValue -= itemUomValue\n\n await generateInventoryHistory(\n inventory,\n refOrder,\n INVENTORY_TRANSACTION_TYPE.SALES_ADJUSTMENT,\n -itemQty,\n -itemUomValue,\n null\n )\n\n if (inventory.qty === 0) {\n inventory.status = INVENTORY_STATUS.TERMINATED\n\n await generateInventoryHistory(inventory, refOrder, INVENTORY_STATUS.TERMINATED, 0, 0, null)\n }\n }\n\n if (itemQty == 0) {\n break\n }\n }\n }\n }\n\n context.status = 200\n})\n"]}