@things-factory/transport-base 4.3.595 → 4.3.631
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.
|
@@ -50,19 +50,33 @@ let TransportDriverMutation = class TransportDriverMutation {
|
|
|
50
50
|
id: patch.id
|
|
51
51
|
});
|
|
52
52
|
}
|
|
53
|
-
else if (patch.
|
|
54
|
-
foundDriver = await tx
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
53
|
+
else if (patch.driverCode) {
|
|
54
|
+
foundDriver = await tx
|
|
55
|
+
.getRepository(transport_driver_1.TransportDriver)
|
|
56
|
+
.createQueryBuilder('driver')
|
|
57
|
+
.where('LOWER(driver.driverCode) = LOWER(:driverCode)', { driverCode: patch.driverCode })
|
|
58
|
+
.andWhere('driver.domain = :domain', { domain: domain.id })
|
|
59
|
+
.getOne();
|
|
58
60
|
}
|
|
59
61
|
if (!foundDriver) {
|
|
60
62
|
patch === null || patch === void 0 ? true : delete patch.id;
|
|
61
63
|
await tx.getRepository(transport_driver_1.TransportDriver).save(Object.assign(Object.assign({}, patch), { domain, creator: user, updater: user }));
|
|
62
64
|
}
|
|
63
65
|
else {
|
|
66
|
+
if (patch.driverCode) {
|
|
67
|
+
const existingDriver = await tx
|
|
68
|
+
.getRepository(transport_driver_1.TransportDriver)
|
|
69
|
+
.createQueryBuilder('driver')
|
|
70
|
+
.where('LOWER(driver.driverCode) = LOWER(:driverCode)', { driverCode: patch.driverCode })
|
|
71
|
+
.andWhere('driver.id != :id', { id: foundDriver.id })
|
|
72
|
+
.andWhere('driver.domain = :domain', { domain: domain.id })
|
|
73
|
+
.getOne();
|
|
74
|
+
if (existingDriver) {
|
|
75
|
+
throw new Error(i18next_1.default.t('error.driver code (x) already exists', { x: patch.driverCode }));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
64
78
|
if (patch.cuFlag === '+') {
|
|
65
|
-
throw new Error(i18next_1.default.t('error.driver code (x) already exists', { x: patch.
|
|
79
|
+
throw new Error(i18next_1.default.t('error.driver code (x) already exists', { x: patch.driverCode }));
|
|
66
80
|
}
|
|
67
81
|
delete patch.cuFlag;
|
|
68
82
|
await tx.getRepository(transport_driver_1.TransportDriver).update({ id: foundDriver.id }, Object.assign(Object.assign({}, patch), { updater: user }));
|
|
@@ -70,7 +84,9 @@ let TransportDriverMutation = class TransportDriverMutation {
|
|
|
70
84
|
}
|
|
71
85
|
return true;
|
|
72
86
|
}
|
|
73
|
-
catch (e) {
|
|
87
|
+
catch (e) {
|
|
88
|
+
throw e;
|
|
89
|
+
}
|
|
74
90
|
}
|
|
75
91
|
};
|
|
76
92
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport-driver-mutation.js","sourceRoot":"","sources":["../../../server/service/transport-driver/transport-driver-mutation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,+CAAsE;AACtE,qCAAsE;AAEtE,yDAAgD;AAGhD,2BAA8D;AAC9D,yDAAoD;AACpD,sDAA6B;AAE7B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,+CAA+C,CAAC,CAAA;AAGxE,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAI5B,AAAN,KAAK,CAAC,qBAAqB,CAC2B,eAAmC,EAChF,OAAY;QAEnB,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAC7F,OAAO,MAAM,qBAAqB,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;IACvE,CAAC;IAKK,AAAN,KAAK,CAAC,qBAAqB,CACd,EAAU,EACuB,KAA2B,EAChE,OAAY;QAEnB,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAE7F,OAAO,MAAM,qBAAqB,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;IACjE,CAAC;IAKK,AAAN,KAAK,CAAC,qBAAqB,CAAY,EAAU,EAAS,OAAY;QACpE,MAAM,EAAE,EAAE,EAAE,GAA0B,OAAO,CAAC,KAAK,CAAA;QAEnD,OAAO,MAAM,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAC5C,CAAC;IAKK,AAAN,KAAK,CAAC,sBAAsB,CAA+B,GAAa,EAAS,OAAY;QAC3F,OAAO,MAAM,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;IAKK,AAAN,KAAK,CAAC,6BAA6B,CACe,OAA+B,EACxE,OAAY;QAEnB,IAAI;YACF,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;YAE7F,KAAK,IAAI,KAAK,IAAI,OAAO,EAAE;gBACzB,IAAI,WAA4B,CAAA;gBAEhC,IAAI,KAAK,CAAC,EAAE,EAAE;oBACZ,WAAW,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,kCAAe,CAAC,CAAC,OAAO,CAAC;wBAC5D,MAAM;wBACN,EAAE,EAAE,KAAK,CAAC,EAAE;qBACb,CAAC,CAAA;iBACH;qBAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"transport-driver-mutation.js","sourceRoot":"","sources":["../../../server/service/transport-driver/transport-driver-mutation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/transport-base",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.631",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -25,5 +25,5 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@things-factory/biz-base": "^4.3.595"
|
|
27
27
|
},
|
|
28
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "c6f91170d443086dcd3bfd691113fcf08a2f1b89"
|
|
29
29
|
}
|
|
@@ -70,20 +70,37 @@ export class TransportDriverMutation {
|
|
|
70
70
|
domain,
|
|
71
71
|
id: patch.id
|
|
72
72
|
})
|
|
73
|
-
} else if (patch.
|
|
74
|
-
foundDriver = await tx
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
} else if (patch.driverCode) {
|
|
74
|
+
foundDriver = await tx
|
|
75
|
+
.getRepository(TransportDriver)
|
|
76
|
+
.createQueryBuilder('driver')
|
|
77
|
+
.where('LOWER(driver.driverCode) = LOWER(:driverCode)', { driverCode: patch.driverCode })
|
|
78
|
+
.andWhere('driver.domain = :domain', { domain: domain.id })
|
|
79
|
+
.getOne()
|
|
78
80
|
}
|
|
79
81
|
|
|
80
82
|
if (!foundDriver) {
|
|
81
83
|
delete patch?.id
|
|
82
84
|
await tx.getRepository(TransportDriver).save({ ...patch, domain, creator: user, updater: user })
|
|
83
85
|
} else {
|
|
86
|
+
if (patch.driverCode) {
|
|
87
|
+
const existingDriver = await tx
|
|
88
|
+
.getRepository(TransportDriver)
|
|
89
|
+
.createQueryBuilder('driver')
|
|
90
|
+
.where('LOWER(driver.driverCode) = LOWER(:driverCode)', { driverCode: patch.driverCode })
|
|
91
|
+
.andWhere('driver.id != :id', { id: foundDriver.id })
|
|
92
|
+
.andWhere('driver.domain = :domain', { domain: domain.id })
|
|
93
|
+
.getOne()
|
|
94
|
+
|
|
95
|
+
if (existingDriver) {
|
|
96
|
+
throw new Error(i18next.t('error.driver code (x) already exists', { x: patch.driverCode }))
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
84
100
|
if (patch.cuFlag === '+') {
|
|
85
|
-
throw new Error(i18next.t('error.driver code (x) already exists', { x: patch.
|
|
101
|
+
throw new Error(i18next.t('error.driver code (x) already exists', { x: patch.driverCode }))
|
|
86
102
|
}
|
|
103
|
+
|
|
87
104
|
delete patch.cuFlag
|
|
88
105
|
await tx.getRepository(TransportDriver).update(
|
|
89
106
|
{ id: foundDriver.id },
|
|
@@ -96,7 +113,9 @@ export class TransportDriverMutation {
|
|
|
96
113
|
}
|
|
97
114
|
|
|
98
115
|
return true
|
|
99
|
-
} catch (e) {
|
|
116
|
+
} catch (e) {
|
|
117
|
+
throw e
|
|
118
|
+
}
|
|
100
119
|
}
|
|
101
120
|
}
|
|
102
121
|
|