arcli 1.3.0 → 1.4.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/CHANGELOG.md +31 -1
- package/dist/cli/commands/billing.command.batch.d.ts +22 -0
- package/dist/cli/commands/billing.command.batch.js +51 -0
- package/dist/cli/commands/billing.command.batch.js.map +1 -0
- package/dist/cli/commands/billing.command.options.js +1 -1
- package/dist/cli/commands/billing.command.options.js.map +1 -1
- package/dist/cli/commands/billing.command.parser.d.ts +7 -0
- package/dist/cli/commands/billing.command.parser.js +82 -11
- package/dist/cli/commands/billing.command.parser.js.map +1 -1
- package/dist/cli/commands/billing.command.shared.js +14 -11
- package/dist/cli/commands/billing.command.shared.js.map +1 -1
- package/dist/cli/commands/vouchers.command.d.ts +2 -0
- package/dist/cli/commands/vouchers.command.js +96 -0
- package/dist/cli/commands/vouchers.command.js.map +1 -0
- package/dist/cli/help.d.ts +1 -0
- package/dist/cli/help.js +22 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/interactive/advanced-options.d.ts +14 -0
- package/dist/cli/interactive/advanced-options.js +126 -0
- package/dist/cli/interactive/advanced-options.js.map +1 -0
- package/dist/cli/interactive/history.flow.js +10 -19
- package/dist/cli/interactive/history.flow.js.map +1 -1
- package/dist/cli/interactive/interactive-mode.js +2 -1
- package/dist/cli/interactive/interactive-mode.js.map +1 -1
- package/dist/cli/interactive/invoice.flow.d.ts +20 -0
- package/dist/cli/interactive/invoice.flow.js +120 -42
- package/dist/cli/interactive/invoice.flow.js.map +1 -1
- package/dist/cli/interactive/note.flow.d.ts +24 -0
- package/dist/cli/interactive/note.flow.js +205 -68
- package/dist/cli/interactive/note.flow.js.map +1 -1
- package/dist/cli/interactive/prompts.d.ts +8 -0
- package/dist/cli/interactive/prompts.js +22 -0
- package/dist/cli/interactive/prompts.js.map +1 -1
- package/dist/cli/interactive/session.d.ts +1 -1
- package/dist/cli/interactive/session.js +3 -1
- package/dist/cli/interactive/session.js.map +1 -1
- package/dist/cli/interactive/validators.d.ts +4 -0
- package/dist/cli/interactive/validators.js +18 -0
- package/dist/cli/interactive/validators.js.map +1 -1
- package/dist/cli/program.js +2 -0
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/modules/billing/billing.amounts.d.ts +1 -1
- package/dist/modules/billing/billing.amounts.js +34 -13
- package/dist/modules/billing/billing.amounts.js.map +1 -1
- package/dist/modules/billing/billing.batch.d.ts +23 -0
- package/dist/modules/billing/billing.batch.js +43 -0
- package/dist/modules/billing/billing.batch.js.map +1 -0
- package/dist/modules/billing/billing.display.js +12 -3
- package/dist/modules/billing/billing.display.js.map +1 -1
- package/dist/modules/billing/billing.schemas.d.ts +31 -0
- package/dist/modules/billing/billing.schemas.js +26 -6
- package/dist/modules/billing/billing.schemas.js.map +1 -1
- package/dist/modules/config/config-value-parser.js +2 -1
- package/dist/modules/config/config-value-parser.js.map +1 -1
- package/dist/modules/interactive/equivalent-command.js +13 -0
- package/dist/modules/interactive/equivalent-command.js.map +1 -1
- package/dist/modules/interactive/wizard.d.ts +16 -0
- package/dist/modules/interactive/wizard.js +33 -0
- package/dist/modules/interactive/wizard.js.map +1 -0
- package/dist/modules/{interactive → vouchers}/voucher-history.d.ts +9 -0
- package/dist/modules/{interactive → vouchers}/voucher-history.js +1 -0
- package/dist/modules/vouchers/voucher-history.js.map +1 -0
- package/dist/modules/vouchers/voucher-history.presenter.d.ts +22 -0
- package/dist/modules/vouchers/voucher-history.presenter.js +108 -0
- package/dist/modules/vouchers/voucher-history.presenter.js.map +1 -0
- package/dist/services/arca/arca-voucher-history.gateway.d.ts +1 -1
- package/dist/services/arca/arca-voucher-history.gateway.js +9 -1
- package/dist/services/arca/arca-voucher-history.gateway.js.map +1 -1
- package/dist/ui/presenters/errors.presenter.js +11 -1
- package/dist/ui/presenters/errors.presenter.js.map +1 -1
- package/dist/ui/presenters/errors.zod-presenter.d.ts +2 -0
- package/dist/ui/presenters/errors.zod-presenter.js +4 -0
- package/dist/ui/presenters/errors.zod-presenter.js.map +1 -1
- package/dist/ui/presenters/index.d.ts +1 -0
- package/dist/ui/presenters/index.js +1 -0
- package/dist/ui/presenters/index.js.map +1 -1
- package/dist/ui/primitives/text.d.ts +5 -0
- package/dist/ui/primitives/text.js +10 -1
- package/dist/ui/primitives/text.js.map +1 -1
- package/llms.txt +8 -3
- package/package.json +1 -1
- package/dist/cli/interactive/voucher-format.d.ts +0 -4
- package/dist/cli/interactive/voucher-format.js +0 -28
- package/dist/cli/interactive/voucher-format.js.map +0 -1
- package/dist/modules/interactive/voucher-history.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.amounts.js","sourceRoot":"","sources":["../../../src/modules/billing/billing.amounts.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,QAAQ,CAAC;AAEzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAIvD,6CAA6C;AAC7C,MAAM,oBAAoB,GAA2E;IACnG,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;IACzB,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;IAC/B,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;IAC5B,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;IAChC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7B,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAmB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"billing.amounts.js","sourceRoot":"","sources":["../../../src/modules/billing/billing.amounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AppError } from '../../lib/errors/app-error';
|
|
2
|
+
export interface BatchItemError {
|
|
3
|
+
/** Posicion en el lote, empezando en 1. */
|
|
4
|
+
readonly index: number;
|
|
5
|
+
readonly message: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function describeBatchItemError(error: unknown): string;
|
|
8
|
+
/** Uno o mas comprobantes del lote no pasan la validacion. Se detecta antes de emitir: no se emitio ninguno. */
|
|
9
|
+
export declare class BatchValidationError extends AppError {
|
|
10
|
+
constructor(errors: readonly BatchItemError[], total: number);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* La emision se corto a mitad del lote (red, ARCA). Los resultados ya emitidos se imprimen antes que este
|
|
14
|
+
* error, para que nadie los vuelva a cargar y los duplique.
|
|
15
|
+
*/
|
|
16
|
+
export declare class BatchEmissionError extends AppError {
|
|
17
|
+
constructor(options: {
|
|
18
|
+
readonly cause: unknown;
|
|
19
|
+
readonly emitted: number;
|
|
20
|
+
readonly failedIndex: number;
|
|
21
|
+
readonly total: number;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ZodError } from 'zod';
|
|
2
|
+
import { AppError } from '../../lib/errors/app-error.js';
|
|
3
|
+
import { summarizeZodError } from '../../ui/index.js';
|
|
4
|
+
export function describeBatchItemError(error) {
|
|
5
|
+
if (error instanceof ZodError) {
|
|
6
|
+
return summarizeZodError(error);
|
|
7
|
+
}
|
|
8
|
+
return error instanceof Error ? error.message : String(error);
|
|
9
|
+
}
|
|
10
|
+
/** Uno o mas comprobantes del lote no pasan la validacion. Se detecta antes de emitir: no se emitio ninguno. */
|
|
11
|
+
export class BatchValidationError extends AppError {
|
|
12
|
+
constructor(errors, total) {
|
|
13
|
+
const lines = errors.map((item) => `#${item.index}: ${item.message}`);
|
|
14
|
+
super([`${errors.length} de ${total} comprobantes del lote tienen errores. No se emitio ninguno.`, '', ...lines].join('\n'), {
|
|
15
|
+
code: 'BATCH_VALIDATION_ERROR',
|
|
16
|
+
details: { comprobantes: errors.map((item) => ({ error: item.message, indice: item.index })) },
|
|
17
|
+
});
|
|
18
|
+
this.name = 'BatchValidationError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* La emision se corto a mitad del lote (red, ARCA). Los resultados ya emitidos se imprimen antes que este
|
|
23
|
+
* error, para que nadie los vuelva a cargar y los duplique.
|
|
24
|
+
*/
|
|
25
|
+
export class BatchEmissionError extends AppError {
|
|
26
|
+
constructor(options) {
|
|
27
|
+
const pending = Array.from({ length: options.total - options.failedIndex }, (_, offset) => options.failedIndex + 1 + offset);
|
|
28
|
+
super([
|
|
29
|
+
`El lote se interrumpio en el comprobante #${options.failedIndex}: ${describeBatchItemError(options.cause)}`,
|
|
30
|
+
`Procesados: ${options.emitted} de ${options.total}.${pending.length > 0 ? ` Sin procesar: ${pending.map((index) => `#${index}`).join(', ')}.` : ''}`,
|
|
31
|
+
].join('\n'), {
|
|
32
|
+
code: 'BATCH_EMISSION_ERROR',
|
|
33
|
+
details: {
|
|
34
|
+
procesados: options.emitted,
|
|
35
|
+
fallo: options.failedIndex,
|
|
36
|
+
sinProcesar: pending,
|
|
37
|
+
total: options.total,
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
this.name = 'BatchEmissionError';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=billing.batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing.batch.js","sourceRoot":"","sources":["../../../src/modules/billing/billing.batch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAQ7C,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACnD,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,gHAAgH;AAChH,MAAM,OAAO,oBAAqB,SAAQ,QAAQ;IAChD,YAAmB,MAAiC,EAAE,KAAa;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEtE,KAAK,CACH,CAAC,GAAG,MAAM,CAAC,MAAM,OAAO,KAAK,8DAA8D,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAC7G,IAAI,CACL,EACD;YACE,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;SAC/F,CACF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,QAAQ;IAC9C,YAAmB,OAKlB;QACC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACxB,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,EAC/C,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,GAAG,MAAM,CAChD,CAAC;QAEF,KAAK,CACH;YACE,6CAA6C,OAAO,CAAC,WAAW,KAAK,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC5G,eAAe,OAAO,CAAC,OAAO,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;SACtJ,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ;YACE,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE;gBACP,UAAU,EAAE,OAAO,CAAC,OAAO;gBAC3B,KAAK,EAAE,OAAO,CAAC,WAAW;gBAC1B,WAAW,EAAE,OAAO;gBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB;SACF,CACF,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -40,6 +40,17 @@ const FCE_OPTIONAL_LABELS = {
|
|
|
40
40
|
'2101': 'CBU',
|
|
41
41
|
'2102': 'Alias CBU',
|
|
42
42
|
};
|
|
43
|
+
/** Una alicuota: su tasa. Varias: el desglose de neto e IVA de cada una. */
|
|
44
|
+
function formatIvaRows(iva) {
|
|
45
|
+
if (iva.length === 0) {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
const label = (aliquotId) => resolveIvaRateLabel(aliquotId) ?? String(aliquotId);
|
|
49
|
+
if (iva.length === 1 && iva[0]) {
|
|
50
|
+
return [['Alicuota IVA', label(iva[0].Id)]];
|
|
51
|
+
}
|
|
52
|
+
return iva.map((item) => [`IVA ${label(item.Id)}`, `${formatMoneyLabel(item.Importe)} sobre ${formatMoneyLabel(item.BaseImp)}`]);
|
|
53
|
+
}
|
|
43
54
|
function formatFriendlyPayloadRows(result) {
|
|
44
55
|
const payload = result.payload;
|
|
45
56
|
const rows = [
|
|
@@ -62,9 +73,7 @@ function formatFriendlyPayloadRows(result) {
|
|
|
62
73
|
['Cotizacion', formatDecimalLabel(payload.MonCotiz)],
|
|
63
74
|
['Importe neto', formatMoneyLabel(payload.ImpNeto)],
|
|
64
75
|
['Importe IVA', formatMoneyLabel(payload.ImpIVA)],
|
|
65
|
-
...(payload.Iva
|
|
66
|
-
? [['Alicuota IVA', resolveIvaRateLabel(payload.Iva[0].Id) ?? String(payload.Iva[0].Id)]]
|
|
67
|
-
: []),
|
|
76
|
+
...formatIvaRows(payload.Iva ?? []),
|
|
68
77
|
['Importe tributos', formatMoneyLabel(payload.ImpTrib)],
|
|
69
78
|
['Importe exento', formatMoneyLabel(payload.ImpOpEx)],
|
|
70
79
|
['Importe no gravado', formatMoneyLabel(payload.ImpTotConc)],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.display.js","sourceRoot":"","sources":["../../../src/modules/billing/billing.display.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"billing.display.js","sourceRoot":"","sources":["../../../src/modules/billing/billing.display.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,12 @@ export declare const billingIvaConditionSchema: z.ZodEnum<{
|
|
|
23
23
|
"sujeto-exento": "sujeto-exento";
|
|
24
24
|
"sujeto-no-categorizado": "sujeto-no-categorizado";
|
|
25
25
|
}>;
|
|
26
|
+
declare const IVA_RATE_VALUES: readonly ["0", "2.5", "5", "10.5", "21", "27"];
|
|
27
|
+
/** Nombres con que ARCA llama a las alicuotas mas usadas; se aceptan igual que el numero. */
|
|
28
|
+
export declare const IVA_RATE_ALIASES: Readonly<Record<string, (typeof IVA_RATE_VALUES)[number]>>;
|
|
29
|
+
export declare const IVA_RATE_HINT = "general (21), reducida (10.5), incrementada (27), cero (0), 5 o 2.5";
|
|
30
|
+
/** Acepta el alias o el numero: "reducida", "10,5", "10.5" o "10.5%". */
|
|
31
|
+
export declare function normalizeIvaRateInput(value: unknown): unknown;
|
|
26
32
|
export declare const billingIvaRateSchema: z.ZodPreprocess<z.ZodEnum<{
|
|
27
33
|
0: "0";
|
|
28
34
|
5: "5";
|
|
@@ -31,6 +37,18 @@ export declare const billingIvaRateSchema: z.ZodPreprocess<z.ZodEnum<{
|
|
|
31
37
|
21: "21";
|
|
32
38
|
27: "27";
|
|
33
39
|
}>, unknown>;
|
|
40
|
+
/** Una alicuota con el importe que le corresponde, IVA incluido (igual que --monto). */
|
|
41
|
+
declare const billingIvaRateAmountSchema: z.ZodObject<{
|
|
42
|
+
amount: z.ZodNumber;
|
|
43
|
+
rate: z.ZodPreprocess<z.ZodEnum<{
|
|
44
|
+
0: "0";
|
|
45
|
+
5: "5";
|
|
46
|
+
2.5: "2.5";
|
|
47
|
+
10.5: "10.5";
|
|
48
|
+
21: "21";
|
|
49
|
+
27: "27";
|
|
50
|
+
}>, unknown>;
|
|
51
|
+
}, z.core.$strip>;
|
|
34
52
|
export declare const billingCommandSchema: z.ZodObject<{
|
|
35
53
|
associatedPeriod: z.ZodOptional<z.ZodObject<{
|
|
36
54
|
desde: z.ZodOptional<z.ZodString>;
|
|
@@ -73,6 +91,17 @@ export declare const billingCommandSchema: z.ZodObject<{
|
|
|
73
91
|
21: "21";
|
|
74
92
|
27: "27";
|
|
75
93
|
}>, unknown>>;
|
|
94
|
+
ivaRateAmounts: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
95
|
+
amount: z.ZodNumber;
|
|
96
|
+
rate: z.ZodPreprocess<z.ZodEnum<{
|
|
97
|
+
0: "0";
|
|
98
|
+
5: "5";
|
|
99
|
+
2.5: "2.5";
|
|
100
|
+
10.5: "10.5";
|
|
101
|
+
21: "21";
|
|
102
|
+
27: "27";
|
|
103
|
+
}>, unknown>;
|
|
104
|
+
}, z.core.$strip>>>;
|
|
76
105
|
dueDay: z.ZodOptional<z.ZodNumber>;
|
|
77
106
|
ivaCondition: z.ZodEnum<{
|
|
78
107
|
"consumidor-final": "consumidor-final";
|
|
@@ -104,4 +133,6 @@ export type BillingConcept = z.infer<typeof billingConceptSchema>;
|
|
|
104
133
|
export type BillingDocumentType = z.infer<typeof billingDocumentTypeSchema>;
|
|
105
134
|
export type BillingIvaCondition = z.infer<typeof billingIvaConditionSchema>;
|
|
106
135
|
export type BillingIvaRate = z.infer<typeof billingIvaRateSchema>;
|
|
136
|
+
export type BillingIvaRateAmount = z.infer<typeof billingIvaRateAmountSchema>;
|
|
107
137
|
export type BillingCommandInput = z.infer<typeof billingCommandSchema>;
|
|
138
|
+
export {};
|
|
@@ -32,12 +32,31 @@ export const billingIvaConditionSchema = z.enum([
|
|
|
32
32
|
'sujeto-no-categorizado',
|
|
33
33
|
]);
|
|
34
34
|
const IVA_RATE_VALUES = ['0', '2.5', '5', '10.5', '21', '27'];
|
|
35
|
-
|
|
36
|
-
export const
|
|
37
|
-
|
|
38
|
-
:
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
/** Nombres con que ARCA llama a las alicuotas mas usadas; se aceptan igual que el numero. */
|
|
36
|
+
export const IVA_RATE_ALIASES = {
|
|
37
|
+
cero: '0',
|
|
38
|
+
general: '21',
|
|
39
|
+
incrementada: '27',
|
|
40
|
+
reducida: '10.5',
|
|
41
|
+
};
|
|
42
|
+
export const IVA_RATE_HINT = 'general (21), reducida (10.5), incrementada (27), cero (0), 5 o 2.5';
|
|
43
|
+
/** Acepta el alias o el numero: "reducida", "10,5", "10.5" o "10.5%". */
|
|
44
|
+
export function normalizeIvaRateInput(value) {
|
|
45
|
+
if (typeof value === 'number') {
|
|
46
|
+
return String(value);
|
|
47
|
+
}
|
|
48
|
+
if (typeof value !== 'string') {
|
|
49
|
+
return value;
|
|
50
|
+
}
|
|
51
|
+
const normalized = value.trim().toLowerCase();
|
|
52
|
+
return IVA_RATE_ALIASES[normalized] ?? normalized.replace(',', '.').replace(/%$/, '');
|
|
53
|
+
}
|
|
54
|
+
export const billingIvaRateSchema = z.preprocess(normalizeIvaRateInput, z.enum(IVA_RATE_VALUES, { message: `La alicuota debe ser ${IVA_RATE_HINT}.` }));
|
|
55
|
+
/** Una alicuota con el importe que le corresponde, IVA incluido (igual que --monto). */
|
|
56
|
+
const billingIvaRateAmountSchema = z.object({
|
|
57
|
+
amount: z.number().positive(),
|
|
58
|
+
rate: billingIvaRateSchema,
|
|
59
|
+
});
|
|
41
60
|
const billingAssociatedVoucherSchema = z
|
|
42
61
|
.object({
|
|
43
62
|
cuit: z
|
|
@@ -82,6 +101,7 @@ export const billingCommandSchema = z.object({
|
|
|
82
101
|
exchangeRate: z.number().positive().optional(),
|
|
83
102
|
exemptAmount: z.number().positive().optional(),
|
|
84
103
|
ivaRate: billingIvaRateSchema.optional(),
|
|
104
|
+
ivaRateAmounts: z.array(billingIvaRateAmountSchema).min(1).optional(),
|
|
85
105
|
dueDay: z.number().int().min(1).max(31).optional(),
|
|
86
106
|
ivaCondition: billingIvaConditionSchema,
|
|
87
107
|
paymentDueDate: z.string().trim().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.schemas.js","sourceRoot":"","sources":["../../../src/modules/billing/billing.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,uBAAuB,GAAG;IAC9B,CAAC,EAAE,WAAW;IACd,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,WAAW;IACtB,EAAE,EAAE,qBAAqB;IACzB,uBAAuB,EAAE,qBAAqB;IAC9C,qBAAqB,EAAE,qBAAqB;IAC5C,CAAC,EAAE,WAAW;IACd,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,WAAW;CACd,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,UAAU,CAC9C,CAAC,KAAK,EAAE,EAAE;IACR,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEnD,OAAO,uBAAuB,CAAC,eAAuD,CAAC,IAAI,KAAK,CAAC;AACnG,CAAC,EACD,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,qBAAqB,EAAE,WAAW,CAAC,CAAC,CAC1D,CAAC;AACF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7F,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9C,sBAAsB;IACtB,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,uBAAuB;IACvB,gDAAgD;IAChD,wBAAwB;IACxB,uBAAuB;IACvB,yBAAyB;IACzB,eAAe;IACf,wBAAwB;CACzB,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAU,CAAC;AAEvE,
|
|
1
|
+
{"version":3,"file":"billing.schemas.js","sourceRoot":"","sources":["../../../src/modules/billing/billing.schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { readPemFile } from '../../lib/security/pem.js';
|
|
2
|
+
import { IVA_RATE_HINT } from '../billing/billing.schemas.js';
|
|
2
3
|
import { arcliDefaultConceptSchema, arcliDefaultIvaConditionSchema, arcliDefaultIvaRateSchema, arcliEnvironmentSchema, } from './config.schemas.js';
|
|
3
4
|
function parseBoolean(value) {
|
|
4
5
|
const normalizedValue = value.trim().toLowerCase();
|
|
@@ -20,7 +21,7 @@ function parseNonEmptyString(value) {
|
|
|
20
21
|
function parseIvaRate(value) {
|
|
21
22
|
const result = arcliDefaultIvaRateSchema.safeParse(value);
|
|
22
23
|
if (!result.success) {
|
|
23
|
-
throw new Error(`La alicuota "${value}" no es valida. Use
|
|
24
|
+
throw new Error(`La alicuota "${value}" no es valida. Use ${IVA_RATE_HINT}.`);
|
|
24
25
|
}
|
|
25
26
|
return result.data;
|
|
26
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-value-parser.js","sourceRoot":"","sources":["../../../src/modules/config/config-value-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-value-parser.js","sourceRoot":"","sources":["../../../src/modules/config/config-value-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isForeignCurrency } from '../billing/billing.currency.js';
|
|
1
2
|
const CONCEPT_FLAGS = {
|
|
2
3
|
productos: '--cp',
|
|
3
4
|
'productos-servicios': '--csp',
|
|
@@ -56,8 +57,20 @@ export function buildEquivalentCommand(input, options) {
|
|
|
56
57
|
parts.push('--pv', String(input.pointOfSale));
|
|
57
58
|
if (input.billingDate)
|
|
58
59
|
parts.push('-f', input.billingDate);
|
|
60
|
+
if (isForeignCurrency(input)) {
|
|
61
|
+
parts.push('--moneda', input.currencyCode.toUpperCase());
|
|
62
|
+
if (input.sameCurrency) {
|
|
63
|
+
parts.push('--misma-moneda');
|
|
64
|
+
}
|
|
65
|
+
else if (input.exchangeRate) {
|
|
66
|
+
parts.push('--cm', formatAmount(input.exchangeRate));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
59
69
|
if (input.ivaRate)
|
|
60
70
|
parts.push('--alicuota', input.ivaRate);
|
|
71
|
+
for (const { amount, rate } of input.ivaRateAmounts ?? []) {
|
|
72
|
+
parts.push('--alicuota', `${rate}:${formatAmount(amount)}`);
|
|
73
|
+
}
|
|
61
74
|
if (input.exemptAmount)
|
|
62
75
|
parts.push('--exento', formatAmount(input.exemptAmount));
|
|
63
76
|
if (input.untaxedAmount)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equivalent-command.js","sourceRoot":"","sources":["../../../src/modules/interactive/equivalent-command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"equivalent-command.js","sourceRoot":"","sources":["../../../src/modules/interactive/equivalent-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Respuesta de un paso para volver al anterior. */
|
|
2
|
+
export declare const BACK: unique symbol;
|
|
3
|
+
export type Back = typeof BACK;
|
|
4
|
+
export interface WizardStep<S> {
|
|
5
|
+
readonly name: string;
|
|
6
|
+
/** Pasos que no aplican al estado actual (por ejemplo, el DNI si el receptor es consumidor final). */
|
|
7
|
+
readonly skip?: (state: S) => boolean;
|
|
8
|
+
/** Devuelve los campos que completa o BACK para volver al paso anterior. */
|
|
9
|
+
readonly run: (state: S) => Promise<Back | Partial<S>>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Corre los pasos en orden y permite volver atras. Al volver se restaura el estado que habia antes
|
|
13
|
+
* del paso anterior, asi una respuesta vieja no queda colgada si cambia el camino.
|
|
14
|
+
* Devuelve el estado final, o `undefined` si se vuelve desde el primer paso (salir del flujo).
|
|
15
|
+
*/
|
|
16
|
+
export declare function runWizard<S>(steps: ReadonlyArray<WizardStep<S>>, initial: S): Promise<S | undefined>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Respuesta de un paso para volver al anterior. */
|
|
2
|
+
export const BACK = Symbol('volver');
|
|
3
|
+
/**
|
|
4
|
+
* Corre los pasos en orden y permite volver atras. Al volver se restaura el estado que habia antes
|
|
5
|
+
* del paso anterior, asi una respuesta vieja no queda colgada si cambia el camino.
|
|
6
|
+
* Devuelve el estado final, o `undefined` si se vuelve desde el primer paso (salir del flujo).
|
|
7
|
+
*/
|
|
8
|
+
export async function runWizard(steps, initial) {
|
|
9
|
+
const history = [];
|
|
10
|
+
let state = initial;
|
|
11
|
+
let index = 0;
|
|
12
|
+
while (index < steps.length) {
|
|
13
|
+
const step = steps[index];
|
|
14
|
+
if (!step || step.skip?.(state)) {
|
|
15
|
+
index += 1;
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
const result = await step.run(state);
|
|
19
|
+
if (result === BACK) {
|
|
20
|
+
const previous = history.pop();
|
|
21
|
+
if (!previous) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
({ index, state } = previous);
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
history.push({ index, state });
|
|
28
|
+
state = { ...state, ...result };
|
|
29
|
+
index += 1;
|
|
30
|
+
}
|
|
31
|
+
return state;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=wizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../../src/modules/interactive/wizard.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAYrC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAI,KAAmC,EAAE,OAAU;IAChF,MAAM,OAAO,GAAyD,EAAE,CAAC;IACzE,IAAI,KAAK,GAAG,OAAO,CAAC;IACpB,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAErC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAE/B,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/B,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC;QAChC,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,20 +1,29 @@
|
|
|
1
1
|
import type { BillingDocumentType, BillingIvaRate } from '../billing/billing.schemas';
|
|
2
|
+
/** Comprobante ya emitido, tal como lo devuelve ARCA (FECompConsultar). Fechas en formato yyyymmdd. */
|
|
2
3
|
export interface IssuedVoucher {
|
|
3
4
|
readonly cae?: string;
|
|
5
|
+
readonly caeExpiration?: string;
|
|
4
6
|
readonly concept?: number;
|
|
7
|
+
readonly currency?: string;
|
|
5
8
|
readonly date: string;
|
|
6
9
|
readonly documentNumber: number;
|
|
7
10
|
readonly documentTypeCode: number;
|
|
11
|
+
readonly exchangeRate?: number;
|
|
12
|
+
readonly exemptAmount?: number;
|
|
8
13
|
readonly ivaAmount: number;
|
|
9
14
|
readonly netAmount: number;
|
|
10
15
|
readonly number: number;
|
|
16
|
+
readonly result?: string;
|
|
17
|
+
readonly taxesAmount?: number;
|
|
11
18
|
readonly total: number;
|
|
19
|
+
readonly untaxedAmount?: number;
|
|
12
20
|
}
|
|
13
21
|
export interface VoucherHistoryGateway {
|
|
14
22
|
getLastNumber(pointOfSale: number, voucherType: number): Promise<number>;
|
|
15
23
|
getVoucher(number: number, pointOfSale: number, voucherType: number): Promise<IssuedVoucher | undefined>;
|
|
16
24
|
}
|
|
17
25
|
export declare const RECENT_VOUCHERS_LIMIT = 10;
|
|
26
|
+
export declare const MAX_RECENT_VOUCHERS = 50;
|
|
18
27
|
export declare function resolveDocumentType(code: number): BillingDocumentType | undefined;
|
|
19
28
|
/** ARCA no devuelve la alicuota de la factura; se deduce de IVA / neto cuando coincide con una tasa conocida. */
|
|
20
29
|
export declare function inferIvaRate(netAmount: number, ivaAmount: number): BillingIvaRate | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voucher-history.js","sourceRoot":"","sources":["../../../src/modules/vouchers/voucher-history.ts"],"names":[],"mappings":"AA2BA,MAAM,sBAAsB,GAAwC;IAClE,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,KAAK;IACT,EAAE,EAAE,kBAAkB;CACvB,CAAC;AAEF,MAAM,SAAS,GAAqD;IAClE,CAAC,GAAG,EAAE,CAAC,CAAC;IACR,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,GAAG,EAAE,IAAI,CAAC;IACX,CAAC,MAAM,EAAE,KAAK,CAAC;IACf,CAAC,IAAI,EAAE,IAAI,CAAC;IACZ,CAAC,IAAI,EAAE,IAAI,CAAC;CACb,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,iHAAiH;AACjH,MAAM,UAAU,YAAY,CAAC,SAAiB,EAAE,SAAiB;IAC/D,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;IACpC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;IAE3E,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA8B,EAC9B,WAAmB,EACnB,WAAmB,EACnB,UAAsE,EAAE;IAExE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,qBAAqB,CAAC;IACrD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;IACtG,MAAM,QAAQ,GAAqC,EAAE,CAAC;IAEtD,iFAAiF;IACjF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,WAAW,EAAE,CAAC;QACjE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,CAAC,CAAC;QAExD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrH,CAAC;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAA4B,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { VoucherKindDefinition } from '../billing/billing.types';
|
|
2
|
+
import type { IssuedVoucher } from './voucher-history';
|
|
3
|
+
export interface VoucherListReport {
|
|
4
|
+
readonly environment: 'produccion' | 'testing';
|
|
5
|
+
readonly pointOfSale: number;
|
|
6
|
+
readonly voucherKind: VoucherKindDefinition;
|
|
7
|
+
readonly vouchers: readonly IssuedVoucher[];
|
|
8
|
+
}
|
|
9
|
+
export interface VoucherDetailReport {
|
|
10
|
+
readonly environment: 'produccion' | 'testing';
|
|
11
|
+
readonly pointOfSale: number;
|
|
12
|
+
readonly voucher: IssuedVoucher;
|
|
13
|
+
readonly voucherKind: VoucherKindDefinition;
|
|
14
|
+
}
|
|
15
|
+
export declare function formatVoucherNumber(pointOfSale: number, number: number): string;
|
|
16
|
+
export declare function formatReceiver(voucher: IssuedVoucher): string;
|
|
17
|
+
/** Una linea por comprobante, para listas y para elegir una factura en el modo interactivo. */
|
|
18
|
+
export declare function formatVoucherSummary(pointOfSale: number, voucher: IssuedVoucher): string;
|
|
19
|
+
export declare function formatVoucherListAsText(report: VoucherListReport): string;
|
|
20
|
+
export declare function formatVoucherListAsJson(report: VoucherListReport): string;
|
|
21
|
+
export declare function formatVoucherDetailAsJson(report: VoucherDetailReport): string;
|
|
22
|
+
export declare function formatVoucherDetailAsText(report: VoucherDetailReport): string;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { formatArcaDateAsArgentineDate } from '../../lib/dates/arca-date.js';
|
|
2
|
+
import { keyValuePanel, noticePanel, renderKeyValueRows, resolveKeyValueLabelWidth } from '../../ui/index.js';
|
|
3
|
+
import { formatConceptLabel, formatCurrencyLabel, formatMoneyLabel } from '../billing/billing.labels.js';
|
|
4
|
+
const DOCUMENT_LABELS = {
|
|
5
|
+
80: 'CUIT',
|
|
6
|
+
86: 'CUIL',
|
|
7
|
+
96: 'DNI',
|
|
8
|
+
};
|
|
9
|
+
export function formatVoucherNumber(pointOfSale, number) {
|
|
10
|
+
return `${String(pointOfSale).padStart(5, '0')}-${String(number).padStart(8, '0')}`;
|
|
11
|
+
}
|
|
12
|
+
export function formatReceiver(voucher) {
|
|
13
|
+
if (voucher.documentTypeCode === 99) {
|
|
14
|
+
return 'Consumidor final';
|
|
15
|
+
}
|
|
16
|
+
const label = DOCUMENT_LABELS[voucher.documentTypeCode] ?? `Doc ${voucher.documentTypeCode}`;
|
|
17
|
+
return `${label} ${voucher.documentNumber}`;
|
|
18
|
+
}
|
|
19
|
+
/** Una linea por comprobante, para listas y para elegir una factura en el modo interactivo. */
|
|
20
|
+
export function formatVoucherSummary(pointOfSale, voucher) {
|
|
21
|
+
return [
|
|
22
|
+
`N° ${formatVoucherNumber(pointOfSale, voucher.number)}`,
|
|
23
|
+
formatArcaDateAsArgentineDate(voucher.date),
|
|
24
|
+
formatReceiver(voucher).padEnd(20),
|
|
25
|
+
formatMoneyLabel(voucher.total),
|
|
26
|
+
].join(' · ');
|
|
27
|
+
}
|
|
28
|
+
export function formatVoucherListAsText(report) {
|
|
29
|
+
const { environment, pointOfSale, voucherKind, vouchers } = report;
|
|
30
|
+
if (vouchers.length === 0) {
|
|
31
|
+
return noticePanel(`No hay ${voucherKind.displayName} emitidas en el punto de venta ${pointOfSale}.`, 'muted');
|
|
32
|
+
}
|
|
33
|
+
const rows = vouchers.map((voucher) => [
|
|
34
|
+
formatVoucherNumber(pointOfSale, voucher.number),
|
|
35
|
+
formatArcaDateAsArgentineDate(voucher.date),
|
|
36
|
+
formatReceiver(voucher).padEnd(20),
|
|
37
|
+
formatMoneyLabel(voucher.total).padStart(16),
|
|
38
|
+
voucher.cae ? `CAE ${voucher.cae}` : '',
|
|
39
|
+
].join(' '));
|
|
40
|
+
return keyValuePanel(`Ultimas ${voucherKind.displayName} · PV ${pointOfSale} · ${environment}`, rows, undefined, 'wide', undefined, 'listing');
|
|
41
|
+
}
|
|
42
|
+
function serializeVoucher(voucher) {
|
|
43
|
+
return {
|
|
44
|
+
cae: voucher.cae ?? null,
|
|
45
|
+
caeVencimiento: voucher.caeExpiration ?? null,
|
|
46
|
+
concepto: voucher.concept ?? null,
|
|
47
|
+
cotizacion: voucher.exchangeRate ?? null,
|
|
48
|
+
fecha: voucher.date,
|
|
49
|
+
importes: {
|
|
50
|
+
exento: voucher.exemptAmount ?? 0,
|
|
51
|
+
iva: voucher.ivaAmount,
|
|
52
|
+
neto: voucher.netAmount,
|
|
53
|
+
noGravado: voucher.untaxedAmount ?? 0,
|
|
54
|
+
total: voucher.total,
|
|
55
|
+
tributos: voucher.taxesAmount ?? 0,
|
|
56
|
+
},
|
|
57
|
+
moneda: voucher.currency ?? null,
|
|
58
|
+
numero: voucher.number,
|
|
59
|
+
numeroDocumento: voucher.documentNumber,
|
|
60
|
+
resultado: voucher.result ?? null,
|
|
61
|
+
tipoDocumento: voucher.documentTypeCode,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function serializeVoucherKind(voucherKind) {
|
|
65
|
+
return { atajo: voucherKind.shortcut, comprobante: voucherKind.displayName, tipoArca: voucherKind.arcaType };
|
|
66
|
+
}
|
|
67
|
+
export function formatVoucherListAsJson(report) {
|
|
68
|
+
return JSON.stringify({
|
|
69
|
+
...serializeVoucherKind(report.voucherKind),
|
|
70
|
+
comprobantes: report.vouchers.map(serializeVoucher),
|
|
71
|
+
entorno: report.environment,
|
|
72
|
+
puntoVenta: report.pointOfSale,
|
|
73
|
+
}, null, 2);
|
|
74
|
+
}
|
|
75
|
+
export function formatVoucherDetailAsJson(report) {
|
|
76
|
+
return JSON.stringify({
|
|
77
|
+
...serializeVoucherKind(report.voucherKind),
|
|
78
|
+
...serializeVoucher(report.voucher),
|
|
79
|
+
entorno: report.environment,
|
|
80
|
+
puntoVenta: report.pointOfSale,
|
|
81
|
+
}, null, 2);
|
|
82
|
+
}
|
|
83
|
+
export function formatVoucherDetailAsText(report) {
|
|
84
|
+
const { pointOfSale, voucher, voucherKind } = report;
|
|
85
|
+
const rows = [
|
|
86
|
+
['Numero', formatVoucherNumber(pointOfSale, voucher.number)],
|
|
87
|
+
['Fecha', formatArcaDateAsArgentineDate(voucher.date)],
|
|
88
|
+
['Receptor', formatReceiver(voucher)],
|
|
89
|
+
['Concepto', formatConceptLabel(voucher.concept)],
|
|
90
|
+
['Moneda', formatCurrencyLabel(voucher.currency)],
|
|
91
|
+
];
|
|
92
|
+
if (voucher.currency && voucher.currency !== 'PES') {
|
|
93
|
+
rows.push(['Cotizacion', String(voucher.exchangeRate ?? 1)]);
|
|
94
|
+
}
|
|
95
|
+
rows.push(['Importe neto', formatMoneyLabel(voucher.netAmount)], ['Importe IVA', formatMoneyLabel(voucher.ivaAmount)]);
|
|
96
|
+
if (voucher.exemptAmount)
|
|
97
|
+
rows.push(['Importe exento', formatMoneyLabel(voucher.exemptAmount)]);
|
|
98
|
+
if (voucher.untaxedAmount)
|
|
99
|
+
rows.push(['Importe no gravado', formatMoneyLabel(voucher.untaxedAmount)]);
|
|
100
|
+
if (voucher.taxesAmount)
|
|
101
|
+
rows.push(['Importe tributos', formatMoneyLabel(voucher.taxesAmount)]);
|
|
102
|
+
rows.push(['Importe total', formatMoneyLabel(voucher.total)], ['CAE', voucher.cae ?? 'N/D']);
|
|
103
|
+
if (voucher.caeExpiration) {
|
|
104
|
+
rows.push(['Vencimiento CAE', formatArcaDateAsArgentineDate(voucher.caeExpiration)]);
|
|
105
|
+
}
|
|
106
|
+
return keyValuePanel(voucherKind.displayName, renderKeyValueRows(rows, { labelWidth: resolveKeyValueLabelWidth('compact', rows) }), voucher.result === 'A' ? 'APROBADO' : voucher.result === 'R' ? 'RECHAZADO' : undefined, 'compact', voucher.result === 'R' ? 'danger' : 'success', 'ticket');
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=voucher-history.presenter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voucher-history.presenter.js","sourceRoot":"","sources":["../../../src/modules/vouchers/voucher-history.presenter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Arca } from '@arcasdk/core';
|
|
2
|
-
import type { IssuedVoucher, VoucherHistoryGateway } from '../../modules/
|
|
2
|
+
import type { IssuedVoucher, VoucherHistoryGateway } from '../../modules/vouchers/voucher-history';
|
|
3
3
|
export declare class ArcaVoucherHistoryGateway implements VoucherHistoryGateway {
|
|
4
4
|
private readonly arca;
|
|
5
5
|
constructor(arca: Arca);
|