@autohubs/lib-cte 0.2.1 → 0.3.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.
- package/README.md +35 -3
- package/dist/application/use-cases/GerarDacteUseCase.d.ts +11 -0
- package/dist/application/use-cases/GerarDacteUseCase.d.ts.map +1 -0
- package/dist/application/use-cases/GerarDacteUseCase.js +25 -0
- package/dist/application/use-cases/GerarDacteUseCase.js.map +1 -0
- package/dist/core/CTeCore.d.ts +7 -0
- package/dist/core/CTeCore.d.ts.map +1 -1
- package/dist/core/CTeCore.js +10 -0
- package/dist/core/CTeCore.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/infra/dacte/DacteGenerator.d.ts +30 -0
- package/dist/infra/dacte/DacteGenerator.d.ts.map +1 -0
- package/dist/infra/dacte/DacteGenerator.js +505 -0
- package/dist/infra/dacte/DacteGenerator.js.map +1 -0
- package/dist/infra/dacte/barcode128.d.ts +20 -0
- package/dist/infra/dacte/barcode128.d.ts.map +1 -0
- package/dist/infra/dacte/barcode128.js +80 -0
- package/dist/infra/dacte/barcode128.js.map +1 -0
- package/dist/infra/dacte/xml-parser.d.ts +100 -0
- package/dist/infra/dacte/xml-parser.d.ts.map +1 -0
- package/dist/infra/dacte/xml-parser.js +287 -0
- package/dist/infra/dacte/xml-parser.js.map +1 -0
- package/dist/shared/constants/cte-urls.d.ts +13 -4
- package/dist/shared/constants/cte-urls.d.ts.map +1 -1
- package/dist/shared/constants/cte-urls.js +11 -21
- package/dist/shared/constants/cte-urls.js.map +1 -1
- package/package.json +10 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Code128C encoding para chave de acesso do CT-e (44 digitos numericos).
|
|
4
|
+
* Code128C codifica pares de digitos — ideal para strings numericas.
|
|
5
|
+
* Retorna array de larguras de barras (1 = barra fina, etc).
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.encodeCode128C = encodeCode128C;
|
|
9
|
+
exports.getBarcodeWidth = getBarcodeWidth;
|
|
10
|
+
// Patterns Code128: cada simbolo tem 6 elementos (3 barras + 3 espacos)
|
|
11
|
+
// Valor = indice no array
|
|
12
|
+
const PATTERNS = [
|
|
13
|
+
[2, 1, 2, 2, 2, 2], [2, 2, 2, 1, 2, 2], [2, 2, 2, 2, 2, 1], [1, 2, 1, 2, 2, 3], [1, 2, 1, 3, 2, 2],
|
|
14
|
+
[1, 3, 1, 2, 2, 2], [1, 2, 2, 2, 1, 3], [1, 2, 2, 3, 1, 2], [1, 3, 2, 2, 1, 2], [2, 2, 1, 2, 1, 3],
|
|
15
|
+
[2, 2, 1, 3, 1, 2], [2, 3, 1, 2, 1, 2], [1, 1, 2, 2, 3, 2], [1, 2, 2, 1, 3, 2], [1, 2, 2, 2, 3, 1],
|
|
16
|
+
[1, 1, 3, 2, 2, 2], [1, 2, 3, 1, 2, 2], [1, 2, 3, 2, 2, 1], [2, 2, 3, 2, 1, 1], [2, 2, 1, 1, 3, 2],
|
|
17
|
+
[2, 2, 1, 2, 3, 1], [2, 1, 3, 2, 1, 2], [2, 2, 3, 1, 1, 2], [3, 1, 2, 1, 3, 1], [3, 1, 1, 2, 2, 2],
|
|
18
|
+
[3, 2, 1, 1, 2, 2], [3, 2, 1, 2, 2, 1], [3, 1, 2, 2, 1, 2], [3, 2, 2, 1, 1, 2], [3, 2, 2, 2, 1, 1],
|
|
19
|
+
[2, 1, 2, 1, 2, 3], [2, 1, 2, 3, 2, 1], [2, 3, 2, 1, 2, 1], [1, 1, 1, 3, 2, 3], [1, 3, 1, 1, 2, 3],
|
|
20
|
+
[1, 3, 1, 3, 2, 1], [1, 1, 2, 3, 1, 3], [1, 3, 2, 1, 1, 3], [1, 3, 2, 3, 1, 1], [2, 1, 1, 3, 1, 3],
|
|
21
|
+
[2, 3, 1, 1, 1, 3], [2, 3, 1, 3, 1, 1], [1, 1, 2, 1, 3, 3], [1, 1, 2, 3, 3, 1], [1, 3, 2, 1, 3, 1],
|
|
22
|
+
[1, 1, 3, 1, 2, 3], [1, 1, 3, 3, 2, 1], [1, 3, 3, 1, 2, 1], [3, 1, 3, 1, 2, 1], [2, 1, 1, 3, 3, 1],
|
|
23
|
+
[2, 3, 1, 1, 3, 1], [2, 1, 3, 1, 1, 3], [2, 1, 3, 3, 1, 1], [2, 1, 3, 1, 3, 1], [3, 1, 1, 1, 2, 3],
|
|
24
|
+
[3, 1, 1, 3, 2, 1], [3, 3, 1, 1, 2, 1], [3, 1, 2, 1, 1, 3], [3, 1, 2, 3, 1, 1], [3, 3, 2, 1, 1, 1],
|
|
25
|
+
[3, 1, 4, 1, 1, 1], [2, 2, 1, 4, 1, 1], [4, 3, 1, 1, 1, 1], [1, 1, 1, 2, 2, 4], [1, 1, 1, 4, 2, 2],
|
|
26
|
+
[1, 2, 1, 1, 2, 4], [1, 2, 1, 4, 2, 1], [1, 4, 1, 1, 2, 2], [1, 4, 1, 2, 2, 1], [1, 1, 2, 2, 1, 4],
|
|
27
|
+
[1, 1, 2, 4, 1, 2], [1, 2, 2, 1, 1, 4], [1, 2, 2, 4, 1, 1], [1, 4, 2, 1, 1, 2], [1, 4, 2, 2, 1, 1],
|
|
28
|
+
[2, 4, 1, 2, 1, 1], [2, 2, 1, 1, 1, 4], [4, 1, 3, 1, 1, 1], [2, 4, 1, 1, 1, 2], [1, 3, 4, 1, 1, 1],
|
|
29
|
+
[1, 1, 1, 2, 4, 2], [1, 2, 1, 1, 4, 2], [1, 2, 1, 2, 4, 1], [1, 1, 4, 2, 1, 2], [1, 2, 4, 1, 1, 2],
|
|
30
|
+
[1, 2, 4, 2, 1, 1], [4, 1, 1, 2, 1, 2], [4, 2, 1, 1, 1, 2], [4, 2, 1, 2, 1, 1], [2, 1, 2, 1, 4, 1],
|
|
31
|
+
[2, 1, 4, 1, 2, 1], [4, 1, 2, 1, 2, 1], [1, 1, 1, 1, 4, 3], [1, 1, 1, 3, 4, 1], [1, 3, 1, 1, 4, 1],
|
|
32
|
+
[1, 1, 4, 1, 1, 3], [1, 1, 4, 3, 1, 1], [4, 1, 1, 1, 1, 3], [4, 1, 1, 3, 1, 1], [1, 1, 3, 1, 4, 1],
|
|
33
|
+
[1, 1, 4, 1, 3, 1], [3, 1, 1, 1, 4, 1], [4, 1, 1, 1, 3, 1], [2, 1, 1, 4, 1, 2], [2, 1, 1, 2, 1, 4],
|
|
34
|
+
[2, 1, 1, 2, 3, 2], [2, 3, 3, 1, 1, 1, 2]
|
|
35
|
+
];
|
|
36
|
+
const START_CODE_C = 105;
|
|
37
|
+
const STOP_CODE = 106;
|
|
38
|
+
/**
|
|
39
|
+
* Codifica uma string numerica (deve ter comprimento par) em Code128C.
|
|
40
|
+
* Retorna array de barras com posicao x e largura.
|
|
41
|
+
*/
|
|
42
|
+
function encodeCode128C(digits) {
|
|
43
|
+
if (digits.length % 2 !== 0) {
|
|
44
|
+
throw new Error('Code128C requer numero par de digitos');
|
|
45
|
+
}
|
|
46
|
+
const values = [START_CODE_C];
|
|
47
|
+
for (let i = 0; i < digits.length; i += 2) {
|
|
48
|
+
values.push(parseInt(digits.substring(i, i + 2), 10));
|
|
49
|
+
}
|
|
50
|
+
// Checksum
|
|
51
|
+
let checksum = values[0];
|
|
52
|
+
for (let i = 1; i < values.length; i++) {
|
|
53
|
+
checksum += values[i] * i;
|
|
54
|
+
}
|
|
55
|
+
values.push(checksum % 103);
|
|
56
|
+
values.push(STOP_CODE);
|
|
57
|
+
// Gerar barras
|
|
58
|
+
const bars = [];
|
|
59
|
+
let x = 0;
|
|
60
|
+
const unit = 1;
|
|
61
|
+
for (const value of values) {
|
|
62
|
+
const pattern = PATTERNS[value];
|
|
63
|
+
for (let j = 0; j < pattern.length; j++) {
|
|
64
|
+
const width = pattern[j] * unit;
|
|
65
|
+
bars.push({ x, width, isBar: j % 2 === 0 });
|
|
66
|
+
x += width;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return bars;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Retorna a largura total do barcode em unidades.
|
|
73
|
+
*/
|
|
74
|
+
function getBarcodeWidth(bars) {
|
|
75
|
+
if (bars.length === 0)
|
|
76
|
+
return 0;
|
|
77
|
+
const last = bars[bars.length - 1];
|
|
78
|
+
return last.x + last.width;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=barcode128.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"barcode128.js","sourceRoot":"","sources":["../../../src/infra/dacte/barcode128.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA0CH,wCAkCC;AAKD,0CAIC;AAnFD,wEAAwE;AACxE,0BAA0B;AAC1B,MAAM,QAAQ,GAAwB;IACpC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;IACrE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,SAAS,GAAG,GAAG,CAAC;AAQtB;;;GAGG;AACH,SAAgB,cAAc,CAAC,MAAc;IAC3C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,MAAM,GAAa,CAAC,YAAY,CAAC,CAAC;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,WAAW;IACX,IAAI,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEvB,eAAe;IACf,MAAM,IAAI,GAAiB,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,IAAI,GAAG,CAAC,CAAC;IAEf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC,IAAI,KAAK,CAAC;QACb,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,IAA2B;IACzD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export type DacteEmitente = {
|
|
2
|
+
readonly nome: string;
|
|
3
|
+
readonly fantasia?: string;
|
|
4
|
+
readonly cnpj: string;
|
|
5
|
+
readonly ie: string;
|
|
6
|
+
readonly endereco: string;
|
|
7
|
+
readonly bairro: string;
|
|
8
|
+
readonly cidade: string;
|
|
9
|
+
readonly uf: string;
|
|
10
|
+
readonly cep: string;
|
|
11
|
+
readonly fone?: string;
|
|
12
|
+
};
|
|
13
|
+
export type DactePessoa = {
|
|
14
|
+
readonly nome: string;
|
|
15
|
+
readonly cnpjCpf: string;
|
|
16
|
+
readonly ie?: string;
|
|
17
|
+
readonly endereco?: string;
|
|
18
|
+
readonly bairro?: string;
|
|
19
|
+
readonly cidade?: string;
|
|
20
|
+
readonly uf?: string;
|
|
21
|
+
readonly cep?: string;
|
|
22
|
+
readonly pais?: string;
|
|
23
|
+
readonly fone?: string;
|
|
24
|
+
};
|
|
25
|
+
export type DacteComponente = {
|
|
26
|
+
readonly nome: string;
|
|
27
|
+
readonly valor: string;
|
|
28
|
+
};
|
|
29
|
+
export type DactePrestacao = {
|
|
30
|
+
readonly valorTotal: string;
|
|
31
|
+
readonly valorReceber: string;
|
|
32
|
+
readonly componentes: readonly DacteComponente[];
|
|
33
|
+
};
|
|
34
|
+
export type DacteImposto = {
|
|
35
|
+
readonly situacaoTributaria: string;
|
|
36
|
+
readonly baseCalculo: string;
|
|
37
|
+
readonly aliquota: string;
|
|
38
|
+
readonly valor: string;
|
|
39
|
+
readonly reducaoBc?: string;
|
|
40
|
+
readonly icmsSubstituicao?: string;
|
|
41
|
+
};
|
|
42
|
+
export type DacteDocumentoOriginario = {
|
|
43
|
+
readonly tipo: string;
|
|
44
|
+
readonly cnpjCpfEmitente: string;
|
|
45
|
+
readonly serieNumero: string;
|
|
46
|
+
};
|
|
47
|
+
export type DacteRodoviario = {
|
|
48
|
+
readonly rntrc?: string;
|
|
49
|
+
readonly ciot?: string;
|
|
50
|
+
readonly lotacao?: boolean;
|
|
51
|
+
readonly dataPrevistaEntrega?: string;
|
|
52
|
+
readonly veiculoPlaca?: string;
|
|
53
|
+
readonly veiculoUf?: string;
|
|
54
|
+
readonly motoristaNome?: string;
|
|
55
|
+
readonly motoristaCpf?: string;
|
|
56
|
+
};
|
|
57
|
+
export type DacteData = {
|
|
58
|
+
readonly chaveAcesso: string;
|
|
59
|
+
readonly modal: string;
|
|
60
|
+
readonly modalTexto: string;
|
|
61
|
+
readonly modelo: string;
|
|
62
|
+
readonly serie: string;
|
|
63
|
+
readonly numero: string;
|
|
64
|
+
readonly dataEmissao: string;
|
|
65
|
+
readonly tipoCTe: string;
|
|
66
|
+
readonly tipoServico: string;
|
|
67
|
+
readonly cfop: string;
|
|
68
|
+
readonly naturezaOperacao: string;
|
|
69
|
+
readonly origemUf: string;
|
|
70
|
+
readonly origemMunicipio: string;
|
|
71
|
+
readonly destinoUf: string;
|
|
72
|
+
readonly destinoMunicipio: string;
|
|
73
|
+
readonly emitente: DacteEmitente;
|
|
74
|
+
readonly remetente?: DactePessoa;
|
|
75
|
+
readonly destinatario?: DactePessoa;
|
|
76
|
+
readonly expedidor?: DactePessoa;
|
|
77
|
+
readonly recebedor?: DactePessoa;
|
|
78
|
+
readonly tomador?: DactePessoa;
|
|
79
|
+
readonly produtoPredominante: string;
|
|
80
|
+
readonly outrasCaracteristicasCarga?: string;
|
|
81
|
+
readonly pesoBruto?: string;
|
|
82
|
+
readonly quantidadeVolumes?: string;
|
|
83
|
+
readonly prestacao: DactePrestacao;
|
|
84
|
+
readonly impostos: readonly DacteImposto[];
|
|
85
|
+
readonly documentosOriginarios: readonly DacteDocumentoOriginario[];
|
|
86
|
+
readonly rodoviario?: DacteRodoviario;
|
|
87
|
+
readonly observacoes?: string;
|
|
88
|
+
readonly protocolo: string;
|
|
89
|
+
readonly dataAutorizacao: string;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Parseia o XML autorizado de um CT-e (cteProc/protCTe + CTe) para os dados
|
|
93
|
+
* necessarios ao DACTE. Cobre o modal rodoviario com mais detalhe (mais
|
|
94
|
+
* comum no Brasil); demais modais tem os campos gerais (emitente, remetente,
|
|
95
|
+
* destinatario, carga, prestacao, impostos) mas nao os campos especificos de
|
|
96
|
+
* modal (aereo, aquaviario, ferroviario, dutoviario, multimodal) — ver
|
|
97
|
+
* PLANO.md para o roadmap de cobertura dos demais modais.
|
|
98
|
+
*/
|
|
99
|
+
export declare function parseCTeXml(xml: string): DacteData;
|
|
100
|
+
//# sourceMappingURL=xml-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml-parser.d.ts","sourceRoot":"","sources":["../../../src/infra/dacte/xml-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseCTeXml = parseCTeXml;
|
|
4
|
+
const CTeError_1 = require("../../shared/errors/CTeError");
|
|
5
|
+
const TIPO_SERVICO_TEXTO = {
|
|
6
|
+
'0': 'Normal',
|
|
7
|
+
'1': 'Subcontratação',
|
|
8
|
+
'2': 'Redespacho',
|
|
9
|
+
'3': 'Redespacho Intermediário',
|
|
10
|
+
'4': 'Serviço Vinculado a Multimodal',
|
|
11
|
+
'5': 'Transporte de Pessoas',
|
|
12
|
+
'6': 'Transporte de Valores'
|
|
13
|
+
};
|
|
14
|
+
const MODAL_TEXTO = {
|
|
15
|
+
'01': 'Rodoviário',
|
|
16
|
+
'02': 'Aéreo',
|
|
17
|
+
'03': 'Aquaviário',
|
|
18
|
+
'04': 'Ferroviário',
|
|
19
|
+
'05': 'Dutoviário',
|
|
20
|
+
'06': 'Multimodal'
|
|
21
|
+
};
|
|
22
|
+
const CST_ICMS_TEXTO = {
|
|
23
|
+
ICMS00: '00 - Tributação Normal do ICMS',
|
|
24
|
+
ICMS20: '20 - Tributação com BC Reduzida do ICMS',
|
|
25
|
+
ICMS45: '45 - ICMS Isento, Não Tributado ou Diferido',
|
|
26
|
+
ICMS60: '60 - ICMS Cobrado por Substituição Tributária',
|
|
27
|
+
ICMS90: '90 - ICMS Outros',
|
|
28
|
+
ICMSOutraUF: 'ICMS Devido à UF de Origem, Distinta da do Emitente',
|
|
29
|
+
ICMSSN: 'Simples Nacional'
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Parseia o XML autorizado de um CT-e (cteProc/protCTe + CTe) para os dados
|
|
33
|
+
* necessarios ao DACTE. Cobre o modal rodoviario com mais detalhe (mais
|
|
34
|
+
* comum no Brasil); demais modais tem os campos gerais (emitente, remetente,
|
|
35
|
+
* destinatario, carga, prestacao, impostos) mas nao os campos especificos de
|
|
36
|
+
* modal (aereo, aquaviario, ferroviario, dutoviario, multimodal) — ver
|
|
37
|
+
* PLANO.md para o roadmap de cobertura dos demais modais.
|
|
38
|
+
*/
|
|
39
|
+
function parseCTeXml(xml) {
|
|
40
|
+
const chaveAcesso = extractAttr(xml, 'infCte', 'Id')?.replace('CTe', '') ?? '';
|
|
41
|
+
if (!chaveAcesso || chaveAcesso.length !== 44) {
|
|
42
|
+
throw new CTeError_1.CTeError('XML invalido: chave de acesso nao encontrada em infCte[@Id]');
|
|
43
|
+
}
|
|
44
|
+
const ide = extractBlock(xml, 'ide');
|
|
45
|
+
const emit = extractBlock(xml, 'emit');
|
|
46
|
+
const rem = extractBlock(xml, 'rem');
|
|
47
|
+
const dest = extractBlock(xml, 'dest');
|
|
48
|
+
const exped = extractBlock(xml, 'exped');
|
|
49
|
+
const receb = extractBlock(xml, 'receb');
|
|
50
|
+
const toma4 = extractBlock(xml, 'toma4');
|
|
51
|
+
const vPrest = extractBlock(xml, 'vPrest');
|
|
52
|
+
const infCarga = extractBlock(xml, 'infCarga');
|
|
53
|
+
const rodo = extractBlock(xml, 'rodo');
|
|
54
|
+
const infProt = extractBlock(xml, 'infProt');
|
|
55
|
+
const emitEnder = extractBlock(emit, 'enderEmit');
|
|
56
|
+
const modal = xmlTag(ide, 'modal') ?? '01';
|
|
57
|
+
return {
|
|
58
|
+
chaveAcesso,
|
|
59
|
+
modal,
|
|
60
|
+
modalTexto: MODAL_TEXTO[modal] ?? modal,
|
|
61
|
+
modelo: xmlTag(ide, 'mod') ?? '57',
|
|
62
|
+
serie: xmlTag(ide, 'serie') ?? '',
|
|
63
|
+
numero: xmlTag(ide, 'nCT') ?? '',
|
|
64
|
+
dataEmissao: formatDate(xmlTag(ide, 'dhEmi') ?? ''),
|
|
65
|
+
tipoCTe: xmlTag(ide, 'tpCTe') ?? '0',
|
|
66
|
+
tipoServico: TIPO_SERVICO_TEXTO[xmlTag(ide, 'tpServ') ?? ''] ?? xmlTag(ide, 'tpServ') ?? '',
|
|
67
|
+
cfop: xmlTag(ide, 'CFOP') ?? '',
|
|
68
|
+
naturezaOperacao: xmlTag(ide, 'natOp') ?? '',
|
|
69
|
+
origemUf: xmlTag(ide, 'UFIni') ?? '',
|
|
70
|
+
origemMunicipio: xmlTag(ide, 'xMunIni') ?? '',
|
|
71
|
+
destinoUf: xmlTag(ide, 'UFFim') ?? '',
|
|
72
|
+
destinoMunicipio: xmlTag(ide, 'xMunFim') ?? '',
|
|
73
|
+
emitente: {
|
|
74
|
+
nome: xmlTag(emit, 'xNome') ?? '',
|
|
75
|
+
fantasia: xmlTag(emit, 'xFant') ?? undefined,
|
|
76
|
+
cnpj: xmlTag(emit, 'CNPJ') ?? '',
|
|
77
|
+
ie: xmlTag(emit, 'IE') ?? '',
|
|
78
|
+
endereco: `${xmlTag(emitEnder, 'xLgr') ?? ''}, ${xmlTag(emitEnder, 'nro') ?? ''}`,
|
|
79
|
+
bairro: xmlTag(emitEnder, 'xBairro') ?? '',
|
|
80
|
+
cidade: xmlTag(emitEnder, 'xMun') ?? '',
|
|
81
|
+
uf: xmlTag(emitEnder, 'UF') ?? '',
|
|
82
|
+
cep: xmlTag(emitEnder, 'CEP') ?? '',
|
|
83
|
+
fone: xmlTag(emitEnder, 'fone') ?? undefined
|
|
84
|
+
},
|
|
85
|
+
remetente: parsePessoa(rem, 'enderReme'),
|
|
86
|
+
destinatario: parsePessoa(dest, 'enderDest'),
|
|
87
|
+
expedidor: parsePessoa(exped, 'enderExped'),
|
|
88
|
+
recebedor: parsePessoa(receb, 'enderReceb'),
|
|
89
|
+
tomador: parseTomador(ide, xml, toma4, { rem, dest, exped, receb }),
|
|
90
|
+
produtoPredominante: xmlTag(infCarga, 'proPred') ?? '',
|
|
91
|
+
outrasCaracteristicasCarga: xmlTag(infCarga, 'xOutCat') ?? undefined,
|
|
92
|
+
pesoBruto: parsePesoBruto(infCarga),
|
|
93
|
+
quantidadeVolumes: parseQuantidadeVolumes(infCarga),
|
|
94
|
+
prestacao: parsePrestacao(vPrest),
|
|
95
|
+
impostos: parseImpostos(xml),
|
|
96
|
+
documentosOriginarios: parseDocumentosOriginarios(xml),
|
|
97
|
+
rodoviario: modal === '01' ? parseRodoviario(rodo) : undefined,
|
|
98
|
+
observacoes: xmlTag(xml, 'xObs') ?? undefined,
|
|
99
|
+
protocolo: xmlTag(infProt, 'nProt') ?? '',
|
|
100
|
+
dataAutorizacao: formatDate(xmlTag(infProt, 'dhRecbto') ?? '')
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function parsePessoa(bloco, enderTag) {
|
|
104
|
+
if (!bloco)
|
|
105
|
+
return undefined;
|
|
106
|
+
const ender = extractBlock(bloco, enderTag);
|
|
107
|
+
const nome = xmlTag(bloco, 'xNome');
|
|
108
|
+
if (!nome)
|
|
109
|
+
return undefined;
|
|
110
|
+
return {
|
|
111
|
+
nome,
|
|
112
|
+
cnpjCpf: xmlTag(bloco, 'CNPJ') ?? xmlTag(bloco, 'CPF') ?? '',
|
|
113
|
+
ie: xmlTag(bloco, 'IE') ?? undefined,
|
|
114
|
+
endereco: ender ? `${xmlTag(ender, 'xLgr') ?? ''}, ${xmlTag(ender, 'nro') ?? ''}` : undefined,
|
|
115
|
+
bairro: xmlTag(ender, 'xBairro') ?? undefined,
|
|
116
|
+
cidade: xmlTag(ender, 'xMun') ?? undefined,
|
|
117
|
+
uf: xmlTag(ender, 'UF') ?? undefined,
|
|
118
|
+
cep: xmlTag(ender, 'CEP') ?? undefined,
|
|
119
|
+
pais: xmlTag(ender, 'xPais') ?? undefined,
|
|
120
|
+
fone: xmlTag(bloco, 'fone') ?? undefined
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* O tomador do servico pode ser um dos 4 papeis padrao (toma03, referenciando
|
|
125
|
+
* remetente/expedidor/recebedor/destinatario) ou "outros" (toma04, com dados
|
|
126
|
+
* proprios). Ver correlacao no Manual do DACTE secao 1.25.
|
|
127
|
+
*/
|
|
128
|
+
function parseTomador(ide, xmlCompleto, toma4, referenciados) {
|
|
129
|
+
if (toma4) {
|
|
130
|
+
const enderToma = extractBlock(toma4, 'enderToma');
|
|
131
|
+
return {
|
|
132
|
+
nome: xmlTag(toma4, 'xNome') ?? xmlTag(toma4, 'xFant') ?? '',
|
|
133
|
+
cnpjCpf: xmlTag(toma4, 'CNPJ') ?? xmlTag(toma4, 'CPF') ?? '',
|
|
134
|
+
ie: xmlTag(toma4, 'IE') ?? undefined,
|
|
135
|
+
endereco: enderToma ? `${xmlTag(enderToma, 'xLgr') ?? ''}, ${xmlTag(enderToma, 'nro') ?? ''}` : undefined,
|
|
136
|
+
cidade: xmlTag(enderToma, 'xMun') ?? undefined,
|
|
137
|
+
uf: xmlTag(enderToma, 'UF') ?? undefined,
|
|
138
|
+
cep: xmlTag(enderToma, 'CEP') ?? undefined,
|
|
139
|
+
pais: xmlTag(enderToma, 'xPais') ?? undefined,
|
|
140
|
+
fone: xmlTag(toma4, 'fone') ?? undefined
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
const toma03 = extractBlock(ide, 'toma03');
|
|
144
|
+
const tomaCodigo = xmlTag(toma03, 'toma');
|
|
145
|
+
if (tomaCodigo === undefined || tomaCodigo === null)
|
|
146
|
+
return undefined;
|
|
147
|
+
const blocoReferenciado = { '0': referenciados.rem, '1': referenciados.exped, '2': referenciados.receb, '3': referenciados.dest }[tomaCodigo];
|
|
148
|
+
if (!blocoReferenciado)
|
|
149
|
+
return undefined;
|
|
150
|
+
const enderTag = { '0': 'enderReme', '1': 'enderExped', '2': 'enderReceb', '3': 'enderDest' }[tomaCodigo] ?? '';
|
|
151
|
+
return parsePessoa(blocoReferenciado, enderTag);
|
|
152
|
+
}
|
|
153
|
+
function parsePesoBruto(infCarga) {
|
|
154
|
+
const infQRegex = /<infQ>([\s\S]*?)<\/infQ>/g;
|
|
155
|
+
let match;
|
|
156
|
+
while ((match = infQRegex.exec(infCarga)) !== null) {
|
|
157
|
+
const infQ = match[1];
|
|
158
|
+
if ((xmlTag(infQ, 'tpMed') ?? '').toUpperCase().includes('PESO BRUTO')) {
|
|
159
|
+
const cUnid = xmlTag(infQ, 'cUnid') ?? '01';
|
|
160
|
+
const qCarga = parseFloat(xmlTag(infQ, 'qCarga') ?? '0');
|
|
161
|
+
const fator = cUnid === '02' ? 1000 : 1;
|
|
162
|
+
return (qCarga * fator).toFixed(2);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
function parseQuantidadeVolumes(infCarga) {
|
|
168
|
+
const infQRegex = /<infQ>([\s\S]*?)<\/infQ>/g;
|
|
169
|
+
let match;
|
|
170
|
+
while ((match = infQRegex.exec(infCarga)) !== null) {
|
|
171
|
+
const infQ = match[1];
|
|
172
|
+
if (xmlTag(infQ, 'cUnid') === '00') {
|
|
173
|
+
return xmlTag(infQ, 'qCarga') ?? undefined;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return undefined;
|
|
177
|
+
}
|
|
178
|
+
function parsePrestacao(vPrest) {
|
|
179
|
+
const componentes = [];
|
|
180
|
+
const compRegex = /<Comp>([\s\S]*?)<\/Comp>/g;
|
|
181
|
+
let match;
|
|
182
|
+
while ((match = compRegex.exec(vPrest)) !== null) {
|
|
183
|
+
const comp = match[1];
|
|
184
|
+
componentes.push({
|
|
185
|
+
nome: xmlTag(comp, 'xNome') ?? '',
|
|
186
|
+
valor: xmlTag(comp, 'vComp') ?? '0.00'
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
valorTotal: xmlTag(vPrest, 'vTPrest') ?? '0.00',
|
|
191
|
+
valorReceber: xmlTag(vPrest, 'vRec') ?? '0.00',
|
|
192
|
+
componentes
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
const ICMS_GRUPOS = ['ICMS00', 'ICMS20', 'ICMS45', 'ICMS60', 'ICMS90', 'ICMSOutraUF', 'ICMSSN'];
|
|
196
|
+
function parseImpostos(xml) {
|
|
197
|
+
const impBlock = extractBlock(xml, 'imp');
|
|
198
|
+
const icms = extractBlock(impBlock, 'ICMS');
|
|
199
|
+
const impostos = [];
|
|
200
|
+
for (const grupo of ICMS_GRUPOS) {
|
|
201
|
+
const inner = extractBlock(icms, grupo);
|
|
202
|
+
if (!inner)
|
|
203
|
+
continue;
|
|
204
|
+
impostos.push({
|
|
205
|
+
situacaoTributaria: CST_ICMS_TEXTO[grupo] ?? grupo,
|
|
206
|
+
baseCalculo: xmlTag(inner, 'vBC') ?? '0.00',
|
|
207
|
+
aliquota: xmlTag(inner, 'pICMS') ?? '0.00',
|
|
208
|
+
valor: xmlTag(inner, 'vICMS') ?? '0.00',
|
|
209
|
+
reducaoBc: xmlTag(inner, 'pRedBC') ?? undefined,
|
|
210
|
+
icmsSubstituicao: xmlTag(inner, 'vICMSSTRet') ?? undefined
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
return impostos;
|
|
214
|
+
}
|
|
215
|
+
function parseDocumentosOriginarios(xml) {
|
|
216
|
+
const docs = [];
|
|
217
|
+
const infNFeRegex = /<infNFe>([\s\S]*?)<\/infNFe>/g;
|
|
218
|
+
let match;
|
|
219
|
+
while ((match = infNFeRegex.exec(xml)) !== null) {
|
|
220
|
+
const chave = xmlTag(match[1], 'chave');
|
|
221
|
+
if (chave) {
|
|
222
|
+
docs.push({ tipo: 'NF-e', cnpjCpfEmitente: chave.substring(6, 20), serieNumero: chave.substring(22, 34) });
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
const infNFRegex = /<infNF>([\s\S]*?)<\/infNF>/g;
|
|
226
|
+
while ((match = infNFRegex.exec(xml)) !== null) {
|
|
227
|
+
const inner = match[1];
|
|
228
|
+
docs.push({
|
|
229
|
+
tipo: 'NF',
|
|
230
|
+
cnpjCpfEmitente: xmlTag(inner, 'CNPJ') ?? xmlTag(inner, 'CPF') ?? '',
|
|
231
|
+
serieNumero: `${xmlTag(inner, 'serie') ?? ''}/${xmlTag(inner, 'nDoc') ?? ''}`
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
return docs;
|
|
235
|
+
}
|
|
236
|
+
function parseRodoviario(rodo) {
|
|
237
|
+
const veic = extractBlock(rodo, 'veic');
|
|
238
|
+
const moto = extractBlock(veic, 'moto');
|
|
239
|
+
return {
|
|
240
|
+
rntrc: xmlTag(rodo, 'RNTRC') ?? undefined,
|
|
241
|
+
ciot: xmlTag(rodo, 'CIOT') ?? undefined,
|
|
242
|
+
lotacao: xmlTag(rodo, 'lota') === '1',
|
|
243
|
+
dataPrevistaEntrega: xmlTag(rodo, 'dPrev') ?? undefined,
|
|
244
|
+
veiculoPlaca: xmlTag(veic, 'placa') ?? undefined,
|
|
245
|
+
veiculoUf: xmlTag(veic, 'UF') ?? undefined,
|
|
246
|
+
motoristaNome: xmlTag(moto, 'xNome') ?? undefined,
|
|
247
|
+
motoristaCpf: xmlTag(moto, 'CPF') ?? undefined
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
function xmlTag(xml, tagName) {
|
|
251
|
+
const match = xml.match(new RegExp(`<${tagName}>([^<]*)</${tagName}>`));
|
|
252
|
+
return match ? unescapeXml(match[1]) : null;
|
|
253
|
+
}
|
|
254
|
+
function unescapeXml(value) {
|
|
255
|
+
return value
|
|
256
|
+
.replace(/&/g, '&')
|
|
257
|
+
.replace(/</g, '<')
|
|
258
|
+
.replace(/>/g, '>')
|
|
259
|
+
.replace(/"/g, '"')
|
|
260
|
+
.replace(/'/g, "'");
|
|
261
|
+
}
|
|
262
|
+
function extractBlock(xml, tagName) {
|
|
263
|
+
const match = xml.match(new RegExp(`<${tagName}[^>]*>([\\s\\S]*?)</${tagName}>`));
|
|
264
|
+
return match ? match[0] : '';
|
|
265
|
+
}
|
|
266
|
+
function extractAttr(xml, tagName, attr) {
|
|
267
|
+
const match = xml.match(new RegExp(`<${tagName}[^>]*${attr}="([^"]+)"`));
|
|
268
|
+
return match ? match[1] : null;
|
|
269
|
+
}
|
|
270
|
+
function formatDate(isoDate) {
|
|
271
|
+
if (!isoDate)
|
|
272
|
+
return '';
|
|
273
|
+
try {
|
|
274
|
+
const d = new Date(isoDate);
|
|
275
|
+
const dd = String(d.getDate()).padStart(2, '0');
|
|
276
|
+
const mm = String(d.getMonth() + 1).padStart(2, '0');
|
|
277
|
+
const yyyy = d.getFullYear();
|
|
278
|
+
const hh = String(d.getHours()).padStart(2, '0');
|
|
279
|
+
const min = String(d.getMinutes()).padStart(2, '0');
|
|
280
|
+
const ss = String(d.getSeconds()).padStart(2, '0');
|
|
281
|
+
return `${dd}/${mm}/${yyyy} ${hh}:${min}:${ss}`;
|
|
282
|
+
}
|
|
283
|
+
catch {
|
|
284
|
+
return isoDate;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=xml-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml-parser.js","sourceRoot":"","sources":["../../../src/infra/dacte/xml-parser.ts"],"names":[],"mappings":";;AAyIA,kCAkEC;AA3MD,0DAAuD;AAoGvD,MAAM,kBAAkB,GAA2B;IACjD,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,gBAAgB;IACrB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,0BAA0B;IAC/B,GAAG,EAAE,gCAAgC;IACrC,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,uBAAuB;CAC7B,CAAC;AAEF,MAAM,WAAW,GAA2B;IAC1C,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,YAAY;CACnB,CAAC;AAEF,MAAM,cAAc,GAA2B;IAC7C,MAAM,EAAE,gCAAgC;IACxC,MAAM,EAAE,yCAAyC;IACjD,MAAM,EAAE,6CAA6C;IACrD,MAAM,EAAE,+CAA+C;IACvD,MAAM,EAAE,kBAAkB;IAC1B,WAAW,EAAE,qDAAqD;IAClE,MAAM,EAAE,kBAAkB;CAC3B,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,WAAW,CAAC,GAAW;IACrC,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC9C,MAAM,IAAI,mBAAQ,CAAC,6DAA6D,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAE7C,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;IAE3C,OAAO;QACL,WAAW;QACX,KAAK;QACL,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK;QACvC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI;QAClC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE;QACjC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE;QAChC,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACnD,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,GAAG;QACpC,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE;QAC3F,IAAI,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE;QAC/B,gBAAgB,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE;QAC5C,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE;QACpC,eAAe,EAAE,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE;QAC7C,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE;QACrC,gBAAgB,EAAE,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE;QAC9C,QAAQ,EAAE;YACR,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;YACjC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,SAAS;YAC5C,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;YAChC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YAC5B,QAAQ,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE;YACjF,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE;YAC1C,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE;YACvC,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE;YACjC,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE;YACnC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,SAAS;SAC7C;QACD,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC;QACxC,YAAY,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC;QAC5C,SAAS,EAAE,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC;QAC3C,SAAS,EAAE,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC;QAC3C,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACnE,mBAAmB,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE;QACtD,0BAA0B,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,SAAS;QACpE,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC;QACnC,iBAAiB,EAAE,sBAAsB,CAAC,QAAQ,CAAC;QACnD,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC;QACjC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC;QAC5B,qBAAqB,EAAE,0BAA0B,CAAC,GAAG,CAAC;QACtD,UAAU,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;QAC9D,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,SAAS;QAC7C,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;QACzC,eAAe,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,QAAgB;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;QAC5D,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,SAAS;QACpC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;QAC7F,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,SAAS;QAC7C,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,SAAS;QAC1C,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,SAAS;QACpC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,SAAS;QACtC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,SAAS;QACzC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,SAAS;KACzC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CACnB,GAAW,EACX,WAAmB,EACnB,KAAa,EACb,aAA0E;IAE1E,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACnD,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE;YAC5D,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;YAC5D,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,SAAS;YACpC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;YACzG,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,SAAS;YAC9C,EAAE,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,SAAS;YACxC,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,SAAS;YAC1C,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,SAAS;YAC7C,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,SAAS;SACzC,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAEtE,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,aAAa,CAAC,IAAI,EAAE,CAC/H,UAAU,CACX,CAAC;IACF,IAAI,CAAC,iBAAiB;QAAE,OAAO,SAAS,CAAC;IAEzC,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAChH,OAAO,WAAW,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,SAAS,GAAG,2BAA2B,CAAC;IAC9C,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACvE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC;YAC5C,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;YACzD,MAAM,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,MAAM,SAAS,GAAG,2BAA2B,CAAC;IAC9C,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,SAAS,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,WAAW,GAAsB,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,2BAA2B,CAAC;IAC9C,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;YACjC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM;SACvC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM;QAC/C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,MAAM;QAC9C,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAU,CAAC;AAEzG,SAAS,aAAa,CAAC,GAAW;IAChC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,SAAS;QAErB,QAAQ,CAAC,IAAI,CAAC;YACZ,kBAAkB,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK;YAClD,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM;YAC3C,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM;YAC1C,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM;YACvC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,SAAS;YAC/C,gBAAgB,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,IAAI,SAAS;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,0BAA0B,CAAC,GAAW;IAC7C,MAAM,IAAI,GAA+B,EAAE,CAAC;IAE5C,MAAM,WAAW,GAAG,+BAA+B,CAAC;IACpD,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7G,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,6BAA6B,CAAC;IACjD,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,IAAI;YACV,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;YACpE,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE;SAC9E,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAExC,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,SAAS;QACzC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,SAAS;QACvC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG;QACrC,mBAAmB,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,SAAS;QACvD,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,SAAS;QAChD,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,SAAS;QAC1C,aAAa,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,SAAS;QACjD,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,OAAe;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,OAAO,aAAa,OAAO,GAAG,CAAC,CAAC,CAAC;IACxE,OAAO,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK;SACT,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,GAAW,EAAE,OAAe;IAChD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,OAAO,uBAAuB,OAAO,GAAG,CAAC,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,OAAe,EAAE,IAAY;IAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,OAAO,QAAQ,IAAI,YAAY,CAAC,CAAC,CAAC;IACzE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CAAC,OAAe;IACjC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnD,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC"}
|
|
@@ -10,10 +10,14 @@ export type CTeEnvironment = 'homologacao' | 'producao';
|
|
|
10
10
|
* SE, TO (RS incluido no SVRS pois nenhuma pesquisa encontrou host proprio
|
|
11
11
|
* de CT-e para RS distinto do SVRS — diferente da NF-e, onde RS tem host
|
|
12
12
|
* proprio `sefazrs.rs.gov.br` separado do SVRS `svrs.rs.gov.br`)
|
|
13
|
-
* - SVSP: AP, PE, RR
|
|
14
|
-
* -
|
|
13
|
+
* - SP (inclui o grupo "SVSP"): AP, PE, RR, SP — confirmado com teste real
|
|
14
|
+
* (consulta de CT-e emitido por SEFAZ-PE contra o host proprio de SP
|
|
15
|
+
* retornou resposta de negocio valida, nao erro de rota/schema — ver
|
|
16
|
+
* comentario em AUTORIZADOR_URLS). O "SVSP" (Sefaz Virtual de Sao Paulo)
|
|
17
|
+
* nao e' um host separado: reaproveita a mesma infraestrutura de SP.
|
|
18
|
+
* - Webservice proprio: MG, MS, MT, PR
|
|
15
19
|
*/
|
|
16
|
-
export type Autorizador = 'SVRS' | '
|
|
20
|
+
export type Autorizador = 'SVRS' | 'MG' | 'MS' | 'MT' | 'PR' | 'SP';
|
|
17
21
|
type ServiceUrls = {
|
|
18
22
|
readonly [service in CTeService]: string;
|
|
19
23
|
};
|
|
@@ -41,6 +45,12 @@ export declare const UF_AUTORIZADOR: Record<string, Autorizador>;
|
|
|
41
45
|
* - SP, PR, MG: confirmados via fetch direto das paginas oficiais da SEFAZ
|
|
42
46
|
* (portal.fazenda.sp.gov.br, sped.fazenda.pr.gov.br,
|
|
43
47
|
* portalsped.fazenda.mg.gov.br) — maior nivel de confianca desta tabela.
|
|
48
|
+
* O host de SP tambem atende AP/PE/RR (grupo "SVSP") — confirmado com
|
|
49
|
+
* teste real: consulta de um CT-e emitido pela SEFAZ-PE contra
|
|
50
|
+
* `nfe.fazenda.sp.gov.br/CTeWS/WS/CTeConsultaV4.asmx` retornou `cStat 731`
|
|
51
|
+
* ("Consulta a uma Chave de Acesso muito antiga") — uma rejeicao de
|
|
52
|
+
* negocio legitima, nao um erro de rota/schema, confirmando que a SEFAZ-SP
|
|
53
|
+
* reconhece e processa chaves de PE nesse mesmo endpoint.
|
|
44
54
|
* - MS: confirmado por busca (nao fetch direto da pagina, que redireciona
|
|
45
55
|
* para uma landing page sem o detalhe tecnico) — padrao consistente
|
|
46
56
|
* `ws/CTeXxxV4` em homologacao e producao. CTeRecepcaoEvento de producao
|
|
@@ -56,7 +66,6 @@ export declare const UF_AUTORIZADOR: Record<string, Autorizador>;
|
|
|
56
66
|
* servicos. CONFIRMAR contra o WSDL real (`?wsdl`) antes de usar em
|
|
57
67
|
* producao. CTeRecepcaoEvento de homologacao nao foi encontrado; inferido
|
|
58
68
|
* por simetria com producao.
|
|
59
|
-
* - SVSP (AP, PE, RR): host nao encontrado — ver comentario abaixo.
|
|
60
69
|
*/
|
|
61
70
|
export declare const AUTORIZADOR_URLS: Record<Autorizador, AutorizadorUrls>;
|
|
62
71
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cte-urls.d.ts","sourceRoot":"","sources":["../../../src/shared/constants/cte-urls.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;AAE3F,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,UAAU,CAAC;AAExD
|
|
1
|
+
{"version":3,"file":"cte-urls.d.ts","sourceRoot":"","sources":["../../../src/shared/constants/cte-urls.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;AAE3F,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,UAAU,CAAC;AAExD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpE,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,OAAO,IAAI,UAAU,GAAG,MAAM;CACzC,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,QAAQ,EAAE,GAAG,IAAI,cAAc,GAAG,WAAW;CAC9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA4BtD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,eAAe,CAmFjE,CAAC;AAoCF;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,GAAG,MAAM,CAgB9F;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMnD;AAMD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAM3C"}
|
|
@@ -13,7 +13,7 @@ exports.UF_AUTORIZADOR = {
|
|
|
13
13
|
AC: 'SVRS',
|
|
14
14
|
AL: 'SVRS',
|
|
15
15
|
AM: 'SVRS',
|
|
16
|
-
AP: '
|
|
16
|
+
AP: 'SP',
|
|
17
17
|
BA: 'SVRS',
|
|
18
18
|
CE: 'SVRS',
|
|
19
19
|
DF: 'SVRS',
|
|
@@ -25,13 +25,13 @@ exports.UF_AUTORIZADOR = {
|
|
|
25
25
|
MT: 'MT',
|
|
26
26
|
PA: 'SVRS',
|
|
27
27
|
PB: 'SVRS',
|
|
28
|
-
PE: '
|
|
28
|
+
PE: 'SP',
|
|
29
29
|
PI: 'SVRS',
|
|
30
30
|
PR: 'PR',
|
|
31
31
|
RJ: 'SVRS',
|
|
32
32
|
RN: 'SVRS',
|
|
33
33
|
RO: 'SVRS',
|
|
34
|
-
RR: '
|
|
34
|
+
RR: 'SP',
|
|
35
35
|
RS: 'SVRS',
|
|
36
36
|
SC: 'SVRS',
|
|
37
37
|
SE: 'SVRS',
|
|
@@ -54,6 +54,12 @@ exports.UF_AUTORIZADOR = {
|
|
|
54
54
|
* - SP, PR, MG: confirmados via fetch direto das paginas oficiais da SEFAZ
|
|
55
55
|
* (portal.fazenda.sp.gov.br, sped.fazenda.pr.gov.br,
|
|
56
56
|
* portalsped.fazenda.mg.gov.br) — maior nivel de confianca desta tabela.
|
|
57
|
+
* O host de SP tambem atende AP/PE/RR (grupo "SVSP") — confirmado com
|
|
58
|
+
* teste real: consulta de um CT-e emitido pela SEFAZ-PE contra
|
|
59
|
+
* `nfe.fazenda.sp.gov.br/CTeWS/WS/CTeConsultaV4.asmx` retornou `cStat 731`
|
|
60
|
+
* ("Consulta a uma Chave de Acesso muito antiga") — uma rejeicao de
|
|
61
|
+
* negocio legitima, nao um erro de rota/schema, confirmando que a SEFAZ-SP
|
|
62
|
+
* reconhece e processa chaves de PE nesse mesmo endpoint.
|
|
57
63
|
* - MS: confirmado por busca (nao fetch direto da pagina, que redireciona
|
|
58
64
|
* para uma landing page sem o detalhe tecnico) — padrao consistente
|
|
59
65
|
* `ws/CTeXxxV4` em homologacao e producao. CTeRecepcaoEvento de producao
|
|
@@ -69,7 +75,6 @@ exports.UF_AUTORIZADOR = {
|
|
|
69
75
|
* servicos. CONFIRMAR contra o WSDL real (`?wsdl`) antes de usar em
|
|
70
76
|
* producao. CTeRecepcaoEvento de homologacao nao foi encontrado; inferido
|
|
71
77
|
* por simetria com producao.
|
|
72
|
-
* - SVSP (AP, PE, RR): host nao encontrado — ver comentario abaixo.
|
|
73
78
|
*/
|
|
74
79
|
exports.AUTORIZADOR_URLS = {
|
|
75
80
|
SVRS: {
|
|
@@ -84,23 +89,6 @@ exports.AUTORIZADOR_URLS = {
|
|
|
84
89
|
CTeRecepcaoEvento: 'https://cte.svrs.rs.gov.br/ws/CTeRecepcaoEventoV4/CTeRecepcaoEventoV4.asmx'
|
|
85
90
|
}
|
|
86
91
|
},
|
|
87
|
-
// Host do SVSP para CT-e ainda nao confirmado — a unica fonte encontrada
|
|
88
|
-
// confundia SVSP (ambiente virtual primario de AP/PE/RR) com SVC-SP
|
|
89
|
-
// (contingencia federal, servico diferente). Todas as URLs ficam vazias de
|
|
90
|
-
// proposito, para falhar de forma explicita via getCteUrl() em vez de
|
|
91
|
-
// apontar para um host possivelmente errado.
|
|
92
|
-
SVSP: {
|
|
93
|
-
homologacao: {
|
|
94
|
-
CTeStatusServico: '',
|
|
95
|
-
CTeConsultaProtocolo: '',
|
|
96
|
-
CTeRecepcaoEvento: ''
|
|
97
|
-
},
|
|
98
|
-
producao: {
|
|
99
|
-
CTeStatusServico: '',
|
|
100
|
-
CTeConsultaProtocolo: '',
|
|
101
|
-
CTeRecepcaoEvento: ''
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
92
|
MG: {
|
|
105
93
|
homologacao: {
|
|
106
94
|
CTeStatusServico: 'https://hcte.fazenda.mg.gov.br/cte/services/CTeStatusServicoV4',
|
|
@@ -152,6 +140,8 @@ exports.AUTORIZADOR_URLS = {
|
|
|
152
140
|
CTeRecepcaoEvento: 'https://cte.fazenda.pr.gov.br/cte4/CTeRecepcaoEventoV4'
|
|
153
141
|
}
|
|
154
142
|
},
|
|
143
|
+
// Atende SP e tambem AP/PE/RR ("SVSP") — mesmo host, sem distincao de
|
|
144
|
+
// path por UF (a UF de interesse vai no corpo da mensagem, nao na URL).
|
|
155
145
|
SP: {
|
|
156
146
|
homologacao: {
|
|
157
147
|
CTeStatusServico: 'https://homologacao.nfe.fazenda.sp.gov.br/CTeWS/WS/CTeStatusServicoV4.asmx',
|