@things-factory/sales-base 4.0.37 → 4.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-server/controllers/ecommerce/sellercraft-controller.js +4 -3
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
- package/dist-server/service/arrival-notice/arrival-notice-mutation.js +42 -35
- package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
- package/dist-server/service/arrival-notice/arrival-notice-query.js +91 -79
- package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
- package/dist-server/service/arrival-notice/arrival-notice-types.js +8 -0
- package/dist-server/service/arrival-notice/arrival-notice-types.js.map +1 -1
- package/dist-server/service/arrival-notice/arrival-notice.js +20 -15
- package/dist-server/service/arrival-notice/arrival-notice.js.map +1 -1
- package/dist-server/service/delivery-order/delivery-order-mutation.js +28 -26
- package/dist-server/service/delivery-order/delivery-order-mutation.js.map +1 -1
- package/dist-server/service/delivery-order/delivery-order-query.js +14 -14
- package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -1
- package/dist-server/service/delivery-order/delivery-order-summary-report.js +145 -0
- package/dist-server/service/delivery-order/delivery-order-summary-report.js.map +1 -0
- package/dist-server/service/delivery-order/delivery-order.js +16 -13
- package/dist-server/service/delivery-order/delivery-order.js.map +1 -1
- package/dist-server/service/delivery-order/index.js +3 -1
- package/dist-server/service/delivery-order/index.js.map +1 -1
- package/dist-server/service/index.js +12 -4
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/invoice/invoice-mutation.js +21 -3
- package/dist-server/service/invoice/invoice-mutation.js.map +1 -1
- package/dist-server/service/invoice/invoice-query.js +5 -7
- package/dist-server/service/invoice/invoice-query.js.map +1 -1
- package/dist-server/service/invoice/invoice-types.js +302 -20
- package/dist-server/service/invoice/invoice-types.js.map +1 -1
- package/dist-server/service/invoice/invoice.js +190 -26
- package/dist-server/service/invoice/invoice.js.map +1 -1
- package/dist-server/service/invoice-product/index.js +21 -0
- package/dist-server/service/invoice-product/index.js.map +1 -0
- package/dist-server/service/invoice-product/invoice-product-mutation.js +70 -0
- package/dist-server/service/invoice-product/invoice-product-mutation.js.map +1 -0
- package/dist-server/service/invoice-product/invoice-product-query.js +95 -0
- package/dist-server/service/invoice-product/invoice-product-query.js.map +1 -0
- package/dist-server/service/invoice-product/invoice-product-types.js +125 -0
- package/dist-server/service/invoice-product/invoice-product-types.js.map +1 -0
- package/dist-server/service/invoice-product/invoice-product.js +117 -0
- package/dist-server/service/invoice-product/invoice-product.js.map +1 -0
- package/dist-server/service/order-inventory/order-inventory-query.js +9 -7
- package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory.js +31 -25
- package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
- package/dist-server/service/order-product/order-product.js +26 -21
- package/dist-server/service/order-product/order-product.js.map +1 -1
- package/dist-server/service/order-vas/order-vas.js +34 -27
- package/dist-server/service/order-vas/order-vas.js.map +1 -1
- package/dist-server/service/others/other-query.js +4 -2
- package/dist-server/service/others/other-query.js.map +1 -1
- package/dist-server/service/others/other-types.js +42 -0
- package/dist-server/service/others/other-types.js.map +1 -1
- package/dist-server/service/purchase-order/purchase-order-mutation.js +23 -36
- package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -1
- package/dist-server/service/release-good/release-good-mutation.js +84 -82
- package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
- package/dist-server/service/release-good/release-good-query.js +8 -9
- package/dist-server/service/release-good/release-good-query.js.map +1 -1
- package/dist-server/service/release-good/release-good.js +2 -0
- package/dist-server/service/release-good/release-good.js.map +1 -1
- package/dist-server/service/return-order/return-order-mutation.js +3 -3
- package/dist-server/service/return-order/return-order-mutation.js.map +1 -1
- package/dist-server/utils/order-no-generator.js +7 -0
- package/dist-server/utils/order-no-generator.js.map +1 -1
- package/package.json +12 -12
- package/server/controllers/ecommerce/sellercraft-controller.ts +2 -1
- package/server/service/arrival-notice/arrival-notice-mutation.ts +11 -15
- package/server/service/arrival-notice/arrival-notice-query.ts +94 -78
- package/server/service/arrival-notice/arrival-notice-types.ts +6 -0
- package/server/service/arrival-notice/arrival-notice.ts +6 -1
- package/server/service/delivery-order/delivery-order-mutation.ts +4 -8
- package/server/service/delivery-order/delivery-order-query.ts +4 -4
- package/server/service/delivery-order/delivery-order-summary-report.ts +152 -0
- package/server/service/delivery-order/delivery-order.ts +4 -1
- package/server/service/delivery-order/index.ts +3 -1
- package/server/service/index.ts +20 -12
- package/server/service/invoice/invoice-mutation.ts +45 -7
- package/server/service/invoice/invoice-query.ts +6 -6
- package/server/service/invoice/invoice-types.ts +231 -18
- package/server/service/invoice/invoice.ts +154 -20
- package/server/service/invoice-product/index.ts +9 -0
- package/server/service/invoice-product/invoice-product-mutation.ts +54 -0
- package/server/service/invoice-product/invoice-product-query.ts +55 -0
- package/server/service/invoice-product/invoice-product-types.ts +80 -0
- package/server/service/invoice-product/invoice-product.ts +93 -0
- package/server/service/order-inventory/order-inventory-query.ts +3 -1
- package/server/service/order-inventory/order-inventory.ts +11 -13
- package/server/service/order-product/order-product.ts +13 -13
- package/server/service/order-vas/order-vas.ts +15 -15
- package/server/service/others/other-query.ts +9 -15
- package/server/service/others/other-types.ts +31 -0
- package/server/service/purchase-order/purchase-order-mutation.ts +19 -21
- package/server/service/release-good/release-good-mutation.ts +64 -58
- package/server/service/release-good/release-good-query.ts +6 -12
- package/server/service/release-good/release-good.ts +2 -0
- package/server/service/return-order/return-order-mutation.ts +5 -4
- package/server/utils/order-no-generator.ts +11 -0
|
@@ -21,17 +21,6 @@ import { PartnerSetting, Setting } from '@things-factory/setting-base'
|
|
|
21
21
|
import { Domain } from '@things-factory/shell'
|
|
22
22
|
import { Inventory } from '@things-factory/warehouse-base'
|
|
23
23
|
|
|
24
|
-
import {
|
|
25
|
-
ArrivalNotice,
|
|
26
|
-
NewReleaseGood,
|
|
27
|
-
OrderInventory,
|
|
28
|
-
OrderProduct,
|
|
29
|
-
OrderVas,
|
|
30
|
-
ReleaseGoodPatch,
|
|
31
|
-
ShippingOrder,
|
|
32
|
-
ShippingOrderPatch,
|
|
33
|
-
Vas
|
|
34
|
-
} from '../'
|
|
35
24
|
import {
|
|
36
25
|
ATTACHMENT_TYPE,
|
|
37
26
|
ORDER_INVENTORY_STATUS,
|
|
@@ -46,7 +35,15 @@ import {
|
|
|
46
35
|
import { EcommerceController, SellercraftController } from '../../controllers'
|
|
47
36
|
import { ValidationError } from '../../errors'
|
|
48
37
|
import { InventoryUtil, OrderNoGenerator } from '../../utils'
|
|
38
|
+
import { ArrivalNotice } from '../arrival-notice/arrival-notice'
|
|
49
39
|
import { confirmArrivalNoticeFunction, deleteArrivalNotice } from '../arrival-notice/arrival-notice-mutation'
|
|
40
|
+
import { OrderInventory } from '../order-inventory/order-inventory'
|
|
41
|
+
import { OrderProduct } from '../order-product/order-product'
|
|
42
|
+
import { OrderVas } from '../order-vas/order-vas'
|
|
43
|
+
import { NewReleaseGood, ReleaseGoodPatch } from '../release-good/release-good-types'
|
|
44
|
+
import { ShippingOrder } from '../shipping-order/shipping-order'
|
|
45
|
+
import { ShippingOrderPatch } from '../shipping-order/shipping-order-types'
|
|
46
|
+
import { Vas } from '../vas/vas'
|
|
50
47
|
import { ReleaseGood } from './release-good'
|
|
51
48
|
import { bulkReleaseGoodsAvailableItemsFunction } from './release-good-query'
|
|
52
49
|
|
|
@@ -76,7 +73,7 @@ export class ReleaseGoodMutation {
|
|
|
76
73
|
|
|
77
74
|
let releaseGoods: Partial<ReleaseGood[]> = extractRawReleaseGoods(rawReleaseGoods)
|
|
78
75
|
|
|
79
|
-
let
|
|
76
|
+
let errorsCaught: any[] = []
|
|
80
77
|
for (let i = 0, l = releaseGoods.length; i < l; i++) {
|
|
81
78
|
// generate release good by group to avoid duplication
|
|
82
79
|
// if this function is called simultaneously by different users
|
|
@@ -90,7 +87,7 @@ export class ReleaseGoodMutation {
|
|
|
90
87
|
domain
|
|
91
88
|
}
|
|
92
89
|
})
|
|
93
|
-
if (existingReleaseGood) throw new Error('
|
|
90
|
+
if (existingReleaseGood) throw new Error('this order is already exist in the system')
|
|
94
91
|
|
|
95
92
|
let availableItems: any[] = await bulkReleaseGoodsAvailableItemsFunction(
|
|
96
93
|
[...releaseGoods[i].orderInventories],
|
|
@@ -119,25 +116,30 @@ export class ReleaseGoodMutation {
|
|
|
119
116
|
|
|
120
117
|
createdReleaseGoods.push(createdReleaseGood)
|
|
121
118
|
})
|
|
122
|
-
} catch (
|
|
123
|
-
|
|
119
|
+
} catch (error) {
|
|
120
|
+
let rawReleaseGoods = formRawReleaseGoods(releaseGoods[i], error.message)
|
|
121
|
+
errorsCaught.push(...rawReleaseGoods)
|
|
124
122
|
}
|
|
125
123
|
}
|
|
126
124
|
|
|
127
125
|
let confirmedReleaseGoods: ReleaseGood[] = []
|
|
128
|
-
try {
|
|
129
|
-
confirmedReleaseGoods = await bulkConfirmReleaseGoods(
|
|
130
|
-
createdReleaseGoods.map(rg => rg.name),
|
|
131
|
-
domain,
|
|
132
|
-
user,
|
|
133
|
-
context,
|
|
134
|
-
tx
|
|
135
|
-
)
|
|
136
|
-
} catch (e) {
|
|
137
|
-
errorsFound.push(e)
|
|
138
|
-
}
|
|
139
126
|
|
|
140
|
-
|
|
127
|
+
if (createdReleaseGoods.length)
|
|
128
|
+
try {
|
|
129
|
+
confirmedReleaseGoods = await bulkConfirmReleaseGoods(
|
|
130
|
+
createdReleaseGoods.map(rg => rg.name),
|
|
131
|
+
domain,
|
|
132
|
+
user,
|
|
133
|
+
context,
|
|
134
|
+
tx
|
|
135
|
+
)
|
|
136
|
+
} catch (error) {}
|
|
137
|
+
|
|
138
|
+
if (errorsCaught.length)
|
|
139
|
+
throw new ValidationError({
|
|
140
|
+
...ValidationError.ERROR_CODES.INVALID_DATA_FOUND,
|
|
141
|
+
detail: { data: JSON.stringify(errorsCaught) }
|
|
142
|
+
})
|
|
141
143
|
|
|
142
144
|
return confirmedReleaseGoods
|
|
143
145
|
}
|
|
@@ -815,11 +817,9 @@ export async function confirmReleaseGood(name: string, context: any, tx?: Entity
|
|
|
815
817
|
if (foundMarketplaceProductVariations) {
|
|
816
818
|
await Promise.all(
|
|
817
819
|
foundMarketplaceProductVariations.map(async variation => {
|
|
818
|
-
|
|
819
|
-
variation.reserveQty -= oi.releaseQty
|
|
820
|
+
variation.reserveQty -= oi.releaseQty
|
|
820
821
|
|
|
821
|
-
|
|
822
|
-
}
|
|
822
|
+
await tx.getRepository(MarketplaceProductVariation).save(variation)
|
|
823
823
|
})
|
|
824
824
|
)
|
|
825
825
|
}
|
|
@@ -1252,29 +1252,15 @@ export async function bulkConfirmReleaseGoods(
|
|
|
1252
1252
|
): Promise<ReleaseGood[]> {
|
|
1253
1253
|
let foundReleaseGoods: ReleaseGood[] = await tx.getRepository(ReleaseGood).find({
|
|
1254
1254
|
where: { name: In(releaseGoodsNo), status: ORDER_STATUS.PENDING },
|
|
1255
|
-
relations: [
|
|
1256
|
-
'domain',
|
|
1257
|
-
'bizplace',
|
|
1258
|
-
'bizplace.domain',
|
|
1259
|
-
'bizplace.company',
|
|
1260
|
-
'bizplace.company.domain',
|
|
1261
|
-
'orderProducts',
|
|
1262
|
-
'orderProducts.product',
|
|
1263
|
-
'orderInventories',
|
|
1264
|
-
'orderInventories.product',
|
|
1265
|
-
'orderVass'
|
|
1266
|
-
]
|
|
1255
|
+
relations: ['bizplace']
|
|
1267
1256
|
})
|
|
1268
1257
|
|
|
1269
1258
|
if (!foundReleaseGoods.length) throw new Error(`release good order doesn't exists.`)
|
|
1270
1259
|
let customerBizplace: Bizplace = foundReleaseGoods[0].bizplace
|
|
1271
1260
|
|
|
1272
|
-
let foundOrderInventories: OrderInventory[] =
|
|
1273
|
-
.map((
|
|
1274
|
-
|
|
1275
|
-
orderInventories.push(...currOIs)
|
|
1276
|
-
return orderInventories
|
|
1277
|
-
}, [])
|
|
1261
|
+
let foundOrderInventories: OrderInventory[] = await tx.getRepository(OrderInventory).find({
|
|
1262
|
+
where: { domain, releaseGood: In(foundReleaseGoods.map((rg: ReleaseGood) => rg.id)) }
|
|
1263
|
+
})
|
|
1278
1264
|
|
|
1279
1265
|
await tx
|
|
1280
1266
|
.getRepository(ReleaseGood)
|
|
@@ -1307,7 +1293,7 @@ export async function bulkConfirmReleaseGoods(
|
|
|
1307
1293
|
// send notification to Office Admin Users
|
|
1308
1294
|
if (users?.length) {
|
|
1309
1295
|
const receivers: any[] = users.map(user => user.id)
|
|
1310
|
-
const
|
|
1296
|
+
const message = {
|
|
1311
1297
|
title: `New Release Order from ${customerBizplace.name}`,
|
|
1312
1298
|
body: `New incoming bulk release orders are pending for receiving`,
|
|
1313
1299
|
url: context.header.referer,
|
|
@@ -1315,18 +1301,21 @@ export async function bulkConfirmReleaseGoods(
|
|
|
1315
1301
|
}
|
|
1316
1302
|
await sendNotification({
|
|
1317
1303
|
receivers,
|
|
1318
|
-
message
|
|
1304
|
+
message
|
|
1319
1305
|
})
|
|
1320
1306
|
}
|
|
1321
1307
|
}
|
|
1322
1308
|
|
|
1323
|
-
return
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1309
|
+
return Promise.all(
|
|
1310
|
+
foundReleaseGoods.map(async (releaseGood: ReleaseGood) => {
|
|
1311
|
+
return {
|
|
1312
|
+
...releaseGood,
|
|
1313
|
+
orderInventories: await tx.getRepository(OrderInventory).find({ where: releaseGood }),
|
|
1314
|
+
status: ORDER_STATUS.PENDING_RECEIVE,
|
|
1315
|
+
updater: user
|
|
1316
|
+
}
|
|
1317
|
+
})
|
|
1318
|
+
)
|
|
1330
1319
|
}
|
|
1331
1320
|
|
|
1332
1321
|
function extractRawReleaseGoods(rawReleaseGoods): Partial<ReleaseGood[]> {
|
|
@@ -1413,3 +1402,20 @@ function extractRawReleaseGoods(rawReleaseGoods): Partial<ReleaseGood[]> {
|
|
|
1413
1402
|
return releaseGoods
|
|
1414
1403
|
}, [])
|
|
1415
1404
|
}
|
|
1405
|
+
|
|
1406
|
+
function formRawReleaseGoods(releaseGood, errorMsg) {
|
|
1407
|
+
let rawReleaseGoods = []
|
|
1408
|
+
for (let i = 0, l = releaseGood.orderInventories.length; i < l; i++) {
|
|
1409
|
+
let rawReleaseGood = {
|
|
1410
|
+
...releaseGood,
|
|
1411
|
+
...releaseGood.orderInventories[i],
|
|
1412
|
+
errorMsg
|
|
1413
|
+
}
|
|
1414
|
+
|
|
1415
|
+
delete rawReleaseGood.orderInventories
|
|
1416
|
+
delete rawReleaseGood.product
|
|
1417
|
+
|
|
1418
|
+
rawReleaseGoods.push(rawReleaseGood)
|
|
1419
|
+
}
|
|
1420
|
+
return rawReleaseGoods
|
|
1421
|
+
}
|
|
@@ -9,16 +9,11 @@ import { Product } from '@things-factory/product-base'
|
|
|
9
9
|
import { buildQuery, Domain, Filter, ListParam, Pagination, Sorting } from '@things-factory/shell'
|
|
10
10
|
import { Inventory, LOCATION_TYPE } from '@things-factory/warehouse-base'
|
|
11
11
|
|
|
12
|
-
import {
|
|
13
|
-
InventoryInfos,
|
|
14
|
-
NewReleaseGood,
|
|
15
|
-
OrderInventory,
|
|
16
|
-
ReleasableInventoryList,
|
|
17
|
-
ReleaseGoodList,
|
|
18
|
-
ShippingOrder
|
|
19
|
-
} from '../'
|
|
20
12
|
import { ATTACHMENT_TYPE, ORDER_INVENTORY_STATUS, ORDER_STATUS } from '../../constants'
|
|
13
|
+
import { OrderInventory } from '../order-inventory/order-inventory'
|
|
14
|
+
import { ShippingOrder } from '../shipping-order/shipping-order'
|
|
21
15
|
import { ReleaseGood } from './release-good'
|
|
16
|
+
import { InventoryInfos, NewReleaseGood, ReleasableInventoryList, ReleaseGoodList } from './release-good-types'
|
|
22
17
|
|
|
23
18
|
@Resolver(ReleaseGood)
|
|
24
19
|
export class ReleaseGoodQuery {
|
|
@@ -648,7 +643,7 @@ export async function bulkReleaseGoodsAvailableItemsFunction(
|
|
|
648
643
|
let availableItems = await tx.query(
|
|
649
644
|
`
|
|
650
645
|
WITH inv AS (
|
|
651
|
-
SELECT i.product_id, foo.product_detail_id, foo.sku, foo.product_info, i.
|
|
646
|
+
SELECT i.product_id, foo.product_detail_id, foo.sku, foo.product_info, i.packing_type, i.packing_size, i.uom,
|
|
652
647
|
SUM(i.qty - COALESCE(i.locked_qty, 0)) - COALESCE(
|
|
653
648
|
(
|
|
654
649
|
SELECT SUM(oi.release_qty) FROM order_inventories oi
|
|
@@ -686,7 +681,7 @@ export async function bulkReleaseGoodsAvailableItemsFunction(
|
|
|
686
681
|
AND i.domain_id = $1
|
|
687
682
|
AND i.bizplace_id = $2
|
|
688
683
|
WHERE l.type NOT IN ($3, $4)
|
|
689
|
-
GROUP BY i.product_id, foo.product_detail_id, foo.sku,foo.product_info, i.
|
|
684
|
+
GROUP BY i.product_id, foo.product_detail_id, foo.sku,foo.product_info, i.packing_type, i.packing_size, i.uom
|
|
690
685
|
ORDER BY foo.sku, remain_qty
|
|
691
686
|
) SELECT * FROM inv WHERE remain_qty > 0
|
|
692
687
|
`,
|
|
@@ -701,7 +696,6 @@ export async function bulkReleaseGoodsAvailableItemsFunction(
|
|
|
701
696
|
productDetailId: item.product_detail_id,
|
|
702
697
|
productInfo: item.product_info,
|
|
703
698
|
sku: item.sku,
|
|
704
|
-
batchId: item.batch_id,
|
|
705
699
|
packingType: item.packing_type,
|
|
706
700
|
packingSize: Number(item.packing_size || 0),
|
|
707
701
|
uom: item.uom,
|
|
@@ -762,10 +756,10 @@ function _extractData(rawData, validatedData) {
|
|
|
762
756
|
|
|
763
757
|
raw.productId = validatedData[idx].productId
|
|
764
758
|
raw.productDetailId = validatedData[idx].productDetailId
|
|
759
|
+
raw.productInfo = validatedData[idx].productInfo
|
|
765
760
|
raw.packingType = validatedData[idx].packingType
|
|
766
761
|
raw.packingSize = validatedData[idx].packingSize
|
|
767
762
|
raw.uom = validatedData[idx].uom
|
|
768
|
-
raw.batchId = validatedData[idx].batchId
|
|
769
763
|
} else {
|
|
770
764
|
raw.assignedQty = 0
|
|
771
765
|
raw.assignedUomValue = 0
|
|
@@ -45,6 +45,8 @@ export enum DispatchmentStatus {
|
|
|
45
45
|
}
|
|
46
46
|
@Entity()
|
|
47
47
|
@Index('ix_release-good_0', (releaseGood: ReleaseGood) => [releaseGood.domain, releaseGood.name], { unique: true })
|
|
48
|
+
@Index('ix_release-good_1', (releaseGood: ReleaseGood) => [releaseGood.domain, releaseGood.refNo])
|
|
49
|
+
@Index('ix_release-good_2', (releaseGood: ReleaseGood) => [releaseGood.domain, releaseGood.refNo2])
|
|
48
50
|
@ObjectType()
|
|
49
51
|
export class ReleaseGood {
|
|
50
52
|
@PrimaryGeneratedColumn('uuid')
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { FileUpload, GraphQLUpload } from 'graphql-upload'
|
|
2
|
+
import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
|
|
3
|
+
import { EntityManager, In } from 'typeorm'
|
|
4
|
+
|
|
1
5
|
import { Attachment, createAttachments } from '@things-factory/attachment-base'
|
|
2
6
|
import { Role, User } from '@things-factory/auth-base'
|
|
3
7
|
import { Bizplace, getDomainUsers } from '@things-factory/biz-base'
|
|
@@ -5,10 +9,7 @@ import { sendNotification } from '@things-factory/notification'
|
|
|
5
9
|
import { Product } from '@things-factory/product-base'
|
|
6
10
|
import { Domain } from '@things-factory/shell'
|
|
7
11
|
import { Inventory } from '@things-factory/warehouse-base'
|
|
8
|
-
|
|
9
|
-
import { TransferOrderMutation } from 'server'
|
|
10
|
-
import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
|
|
11
|
-
import { EntityManager, In } from 'typeorm'
|
|
12
|
+
|
|
12
13
|
import { NewOrderInventory, NewReturnOrder, OrderInventory, OrderVas, ReturnOrderPatch } from '../'
|
|
13
14
|
import { ATTACHMENT_TYPE, ORDER_INVENTORY_STATUS, ORDER_STATUS, ORDER_VAS_STATUS } from '../../constants'
|
|
14
15
|
import { OrderNoGenerator } from '../../utils'
|
|
@@ -58,6 +58,10 @@ export class OrderNoGenerator {
|
|
|
58
58
|
return `OP-${uuid()}`
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
static invoiceProduct() {
|
|
62
|
+
return `IP-${uuid()}`
|
|
63
|
+
}
|
|
64
|
+
|
|
61
65
|
static orderVas() {
|
|
62
66
|
return `OV-${uuid()}`
|
|
63
67
|
}
|
|
@@ -121,4 +125,11 @@ export class OrderNoGenerator {
|
|
|
121
125
|
currentDate.getMonth() + 1
|
|
122
126
|
}${currentDate.getDate()}${currentDate.getHours()}${currentDate.getMinutes()}${currentDate.getSeconds()}${currentDate.getMilliseconds()}`
|
|
123
127
|
}
|
|
128
|
+
|
|
129
|
+
static invoice() {
|
|
130
|
+
const currentDate = new Date()
|
|
131
|
+
return `INV-${currentDate.getFullYear()}${
|
|
132
|
+
currentDate.getMonth() + 1
|
|
133
|
+
}${currentDate.getDate()}${currentDate.getHours()}${currentDate.getMinutes()}${currentDate.getSeconds()}${currentDate.getMilliseconds()}`
|
|
134
|
+
}
|
|
124
135
|
}
|