@things-factory/sales-base 3.7.15 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist-server/constants/validation-error-code.js +2 -1
  2. package/dist-server/constants/validation-error-code.js.map +1 -1
  3. package/dist-server/entities/release-good.js +4 -0
  4. package/dist-server/entities/release-good.js.map +1 -1
  5. package/dist-server/graphql/resolvers/arrival-notice/update-arrival-notice-details.js +28 -0
  6. package/dist-server/graphql/resolvers/arrival-notice/update-arrival-notice-details.js.map +1 -0
  7. package/dist-server/graphql/resolvers/release-good/bulk-add-release-goods.js +213 -0
  8. package/dist-server/graphql/resolvers/release-good/bulk-add-release-goods.js.map +1 -0
  9. package/dist-server/graphql/resolvers/release-good/bulk-release-goods-available-items.js +163 -0
  10. package/dist-server/graphql/resolvers/release-good/bulk-release-goods-available-items.js.map +1 -0
  11. package/dist-server/graphql/resolvers/release-good/generate-release-good.js +2 -1
  12. package/dist-server/graphql/resolvers/release-good/generate-release-good.js.map +1 -1
  13. package/dist-server/graphql/resolvers/release-good/index.js +5 -3
  14. package/dist-server/graphql/resolvers/release-good/index.js.map +1 -1
  15. package/dist-server/graphql/resolvers/release-good/release-good-requests.js +17 -0
  16. package/dist-server/graphql/resolvers/release-good/release-good-requests.js.map +1 -1
  17. package/dist-server/graphql/resolvers/release-good/update-release-good-details.js +4 -5
  18. package/dist-server/graphql/resolvers/release-good/update-release-good-details.js.map +1 -1
  19. package/dist-server/graphql/resolvers/return-order/generate-return-order.js +2 -4
  20. package/dist-server/graphql/resolvers/return-order/generate-return-order.js.map +1 -1
  21. package/dist-server/graphql/types/release-good/index.js +14 -0
  22. package/dist-server/graphql/types/release-good/index.js.map +1 -1
  23. package/dist-server/graphql/types/release-good/new-raw-release-good.js +62 -0
  24. package/dist-server/graphql/types/release-good/new-raw-release-good.js.map +1 -0
  25. package/dist-server/graphql/types/release-good/raw-release-good.js +65 -0
  26. package/dist-server/graphql/types/release-good/raw-release-good.js.map +1 -0
  27. package/dist-server/graphql/types/release-good/release-good.js +1 -0
  28. package/dist-server/graphql/types/release-good/release-good.js.map +1 -1
  29. package/dist-server/utils/inventory-util.js +5 -0
  30. package/dist-server/utils/inventory-util.js.map +1 -1
  31. package/package.json +12 -12
  32. package/server/constants/validation-error-code.ts +3 -2
  33. package/server/entities/release-good.ts +3 -0
  34. package/server/graphql/resolvers/arrival-notice/update-arrival-notice-details.ts +32 -0
  35. package/server/graphql/resolvers/release-good/bulk-add-release-goods.ts +343 -0
  36. package/server/graphql/resolvers/release-good/bulk-release-goods-available-items.ts +207 -0
  37. package/server/graphql/resolvers/release-good/generate-release-good.ts +3 -2
  38. package/server/graphql/resolvers/release-good/index.ts +5 -1
  39. package/server/graphql/resolvers/release-good/release-good-requests.ts +23 -0
  40. package/server/graphql/resolvers/release-good/update-release-good-details.ts +8 -5
  41. package/server/graphql/resolvers/return-order/generate-return-order.ts +6 -6
  42. package/server/graphql/types/release-good/index.ts +14 -0
  43. package/server/graphql/types/release-good/new-raw-release-good.ts +56 -0
  44. package/server/graphql/types/release-good/raw-release-good.ts +59 -0
  45. package/server/graphql/types/release-good/release-good.ts +1 -0
  46. package/server/utils/inventory-util.ts +7 -0
@@ -1,10 +1,12 @@
1
+ import { EntityManager } from 'typeorm'
2
+
1
3
  import { Attachment, createAttachments } from '@things-factory/attachment-base'
2
4
  import { User } from '@things-factory/auth-base'
3
- import { Bizplace, getMyBizplace } from '@things-factory/biz-base'
5
+ import { Bizplace } from '@things-factory/biz-base'
4
6
  import { Product } from '@things-factory/product-base'
5
7
  import { Domain } from '@things-factory/shell'
6
8
  import { Inventory } from '@things-factory/warehouse-base'
7
- import { EntityManager } from 'typeorm'
9
+
8
10
  import { ORDER_STATUS } from '../../../constants'
9
11
  import { ATTACHMENT_TYPE } from '../../../constants/attachment-type'
10
12
  import { ORDER_INVENTORY_STATUS } from '../../../constants/order'
@@ -17,7 +19,6 @@ export const generateReturnOrder = {
17
19
 
18
20
  const bizplace: Bizplace = await tx.getRepository(Bizplace).findOne(returnOrder.customerBizplaceId)
19
21
  let orderInventories: OrderInventory[] = returnOrder.orderInventories
20
- let foundInv = Inventory
21
22
 
22
23
  let newReturnOrder: ReturnOrder = {
23
24
  ...returnOrder,
@@ -29,7 +30,7 @@ export const generateReturnOrder = {
29
30
  updater: user
30
31
  }
31
32
 
32
- if (newReturnOrder.orderInventories[0].returnQty < 0) {
33
+ if (newReturnOrder.orderInventories[0].returnQty < 0) {
33
34
  throw new Error('invalid return quantity')
34
35
  }
35
36
 
@@ -47,8 +48,7 @@ export const generateReturnOrder = {
47
48
  newOrderInv.updater = user
48
49
 
49
50
  if (newOrderInv.inventory?.id) {
50
- foundInv = await tx.getRepository(Inventory).findOne(newOrderInv.inventory.id)
51
- newOrderInv.inventory = foundInv
51
+ newOrderInv.inventory = await tx.getRepository(Inventory).findOne(newOrderInv.inventory?.id)
52
52
  }
53
53
 
54
54
  await tx.getRepository(OrderInventory).save(newOrderInv)
@@ -1,5 +1,7 @@
1
1
  import { InventoryInfos } from './inventory-infos'
2
+ import { NewRawReleaseGood } from './new-raw-release-good'
2
3
  import { NewReleaseGood } from './new-release-good'
4
+ import { RawReleaseGood } from './raw-release-good'
3
5
  import { ReleasableInventory } from './releasable-inventory'
4
6
  import { ReleasableInventoryList } from './releasable-inventory-list'
5
7
  import { ReleaseGood } from './release-good'
@@ -9,6 +11,11 @@ import { ReleaseGoodPatch } from './release-good-patch'
9
11
  import { ShippingOrderInfo } from './shipping-order-info'
10
12
 
11
13
  export const Mutation = /* GraphQL */ `
14
+ bulkAddReleaseGoods (
15
+ rawReleaseGoods: [NewRawReleaseGood]
16
+ bizplaceId: String
17
+ ): ReleaseGoodList @privilege(category: "order_customer", privilege: "mutation") @transaction
18
+
12
19
  deleteReleaseGood (
13
20
  name: String!
14
21
  ): Boolean @privilege(category: "order_customer", privilege: "mutation") @transaction
@@ -49,6 +56,11 @@ export const Mutation = /* GraphQL */ `
49
56
  `
50
57
 
51
58
  export const Query = /* GraphQL */ `
59
+ bulkReleaseGoodsAvailableItems (
60
+ rawReleaseGoods: [NewRawReleaseGood]
61
+ bizplaceId: String
62
+ ): [RawReleaseGood] @privilege(category: "order_customer", privilege: "query") @transaction
63
+
52
64
  releaseGoods (
53
65
  filters: [Filter],
54
66
  pagination: Pagination,
@@ -78,7 +90,9 @@ export const Query = /* GraphQL */ `
78
90
  `
79
91
 
80
92
  export const Types = [
93
+ RawReleaseGood,
81
94
  ReleaseGood,
95
+ NewRawReleaseGood,
82
96
  NewReleaseGood,
83
97
  ReleaseGoodPatch,
84
98
  ReleaseGoodList,
@@ -0,0 +1,56 @@
1
+ import gql from 'graphql-tag'
2
+
3
+ export const NewRawReleaseGood = gql`
4
+ input NewRawReleaseGood {
5
+ name: String
6
+ releaseDate: String
7
+ type: String
8
+ collectionOrderNo: String
9
+ ownTransport: Boolean
10
+ crossDocking: Boolean
11
+ courierOption: Boolean
12
+ packingOption: Boolean
13
+ packageId: String
14
+ truckNo: String
15
+ refNo: String
16
+ refNo2: String
17
+ refNo3: String
18
+ pickupAddress: String
19
+ pickupTime: String
20
+ handoverType: String
21
+ dropoffAddress: String
22
+ marketplaceOrderStatus: String
23
+ billingAddress: String
24
+ deliveryAddress1: String
25
+ deliveryAddress2: String
26
+ deliveryAddress3: String
27
+ deliveryAddress4: String
28
+ deliveryAddress5: String
29
+ attentionTo: String
30
+ attentionCompany: String
31
+ city: String
32
+ state: String
33
+ postalCode: String
34
+ country: String
35
+ phone1: String
36
+ phone2: String
37
+ email: String
38
+ transporter: String
39
+ trackingNo: String
40
+ airwayBill: String
41
+ invoice: String
42
+ status: String
43
+ description: String
44
+ warehouseId: String #outletID
45
+ deliverTo: String
46
+ customerBizplaceId: String
47
+ partnerBizplaceId: String
48
+ batchId: String
49
+ packingType: String
50
+ packingSize: Int
51
+ uom: String
52
+ productId: String
53
+ sku: String
54
+ releaseQty: Int
55
+ }
56
+ `
@@ -0,0 +1,59 @@
1
+ import gql from 'graphql-tag'
2
+
3
+ export const RawReleaseGood = gql`
4
+ type RawReleaseGood {
5
+ name: String
6
+ releaseDate: String
7
+ type: String
8
+ collectionOrderNo: String
9
+ ownTransport: Boolean
10
+ crossDocking: Boolean
11
+ courierOption: Boolean
12
+ packingOption: Boolean
13
+ packageId: String
14
+ truckNo: String
15
+ refNo: String
16
+ refNo2: String
17
+ refNo3: String
18
+ pickupAddress: String
19
+ pickupTime: String
20
+ handoverType: String
21
+ dropoffAddress: String
22
+ marketplaceOrderStatus: String
23
+ billingAddress: String
24
+ deliveryAddress1: String
25
+ deliveryAddress2: String
26
+ deliveryAddress3: String
27
+ deliveryAddress4: String
28
+ deliveryAddress5: String
29
+ attentionTo: String
30
+ attentionCompany: String
31
+ city: String
32
+ state: String
33
+ postalCode: String
34
+ country: String
35
+ phone1: String
36
+ phone2: String
37
+ email: String
38
+ transporter: String
39
+ trackingNo: String
40
+ airwayBill: String
41
+ invoice: String
42
+ status: String
43
+ description: String
44
+ warehouseId: String #outletID
45
+ deliverTo: String
46
+ customerBizplaceId: String
47
+ partnerBizplaceId: String
48
+ batchId: String
49
+ packingType: String
50
+ packingSize: Int
51
+ uom: String
52
+ productId: String
53
+ sku: String
54
+ releaseQty: Int
55
+ releaseUomValue: Float
56
+ assignedQty: Int
57
+ assignedUomValue: Float
58
+ }
59
+ `
@@ -25,6 +25,7 @@ export const ReleaseGood = gql`
25
25
  refNo: String
26
26
  refNo2: String
27
27
  refNo3: String
28
+ noOfItems: Int
28
29
  attachments: [Attachment]
29
30
  deliveryOrders: [DeliveryOrder]
30
31
  exportOption: Boolean
@@ -11,6 +11,7 @@ import {
11
11
  InventoryNoGenerator,
12
12
  Location,
13
13
  LOCATION_STATUS,
14
+ LOCATION_TYPE,
14
15
  Pallet
15
16
  } from '@things-factory/warehouse-base'
16
17
 
@@ -109,6 +110,7 @@ export const InventoryUtil = {
109
110
  inventories i
110
111
  LEFT JOIN products p ON i.product_id = p.id
111
112
  LEFT JOIN oi ON i.batch_id = oi.batch_id AND p.name = oi.product_name AND i.packing_type = oi.packing_type AND i.packing_size = oi.packing_size AND i.uom = oi.uom
113
+ LEFT JOIN locations l2 ON i.location_id = l2.id AND i.domain_id = l2.domain_id
112
114
  LEFT JOIN (
113
115
  SELECT pbs.product_id, SUM(pbs.bundle_qty * src.release_qty) AS bundle_product_release_qty, SUM(pbs.bundle_qty * src.release_uom_value) AS bundle_product_release_uom_value
114
116
  FROM product_bundle_settings pbs
@@ -116,6 +118,7 @@ export const InventoryUtil = {
116
118
  GROUP BY pbs.product_id
117
119
  ) bp on i.product_id = bp.product_id
118
120
  WHERE i.domain_id = $1
121
+ AND l2.type NOT IN ('${LOCATION_TYPE.QUARANTINE}', '${LOCATION_TYPE.RESERVE}')
119
122
  ${productWhereClause}
120
123
  GROUP BY
121
124
  i.batch_id,
@@ -422,6 +425,10 @@ async function getConditions(
422
425
  whereClause += `AND LOWER("groupType") LIKE 'bundle'`
423
426
  break
424
427
 
428
+ case 'hideBundle':
429
+ whereClause += `AND LOWER("groupType") LIKE 'single'`
430
+ break
431
+
425
432
  case 'batch_product':
426
433
  productWhereClause += `
427
434
  AND (i.batch_id, p.id, i.packing_type) ${operator === 'in' ? 'IN' : 'NOT IN'} (${value