arcli 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/README.md +5 -0
  3. package/dist/cli/commands/billing.command.interactive-preview.d.ts +1 -0
  4. package/dist/cli/commands/billing.command.interactive-preview.js +5 -1
  5. package/dist/cli/commands/billing.command.interactive-preview.js.map +1 -1
  6. package/dist/cli/commands/billing.command.options.js +17 -1
  7. package/dist/cli/commands/billing.command.options.js.map +1 -1
  8. package/dist/cli/commands/billing.command.parser.d.ts +3 -0
  9. package/dist/cli/commands/billing.command.parser.js +36 -2
  10. package/dist/cli/commands/billing.command.parser.js.map +1 -1
  11. package/dist/cli/commands/billing.command.shared.js +24 -3
  12. package/dist/cli/commands/billing.command.shared.js.map +1 -1
  13. package/dist/cli/commands/fce-obligation.command.d.ts +2 -0
  14. package/dist/cli/commands/fce-obligation.command.js +51 -0
  15. package/dist/cli/commands/fce-obligation.command.js.map +1 -0
  16. package/dist/cli/help.d.ts +1 -0
  17. package/dist/cli/help.js +64 -3
  18. package/dist/cli/help.js.map +1 -1
  19. package/dist/cli/program.js +2 -0
  20. package/dist/cli/program.js.map +1 -1
  21. package/dist/cli/version.d.ts +1 -1
  22. package/dist/cli/version.js +1 -1
  23. package/dist/lib/dates/arca-date.d.ts +4 -0
  24. package/dist/lib/dates/arca-date.js +18 -1
  25. package/dist/lib/dates/arca-date.js.map +1 -1
  26. package/dist/modules/billing/billing.amounts.d.ts +12 -2
  27. package/dist/modules/billing/billing.amounts.js +52 -10
  28. package/dist/modules/billing/billing.amounts.js.map +1 -1
  29. package/dist/modules/billing/billing.associated-period.d.ts +8 -0
  30. package/dist/modules/billing/billing.associated-period.js +40 -0
  31. package/dist/modules/billing/billing.associated-period.js.map +1 -0
  32. package/dist/modules/billing/billing.associated-vouchers.d.ts +2 -0
  33. package/dist/modules/billing/billing.associated-vouchers.js +29 -7
  34. package/dist/modules/billing/billing.associated-vouchers.js.map +1 -1
  35. package/dist/modules/billing/billing.currency.d.ts +18 -0
  36. package/dist/modules/billing/billing.currency.js +53 -0
  37. package/dist/modules/billing/billing.currency.js.map +1 -0
  38. package/dist/modules/billing/billing.date-range.d.ts +5 -4
  39. package/dist/modules/billing/billing.date-range.js +34 -27
  40. package/dist/modules/billing/billing.date-range.js.map +1 -1
  41. package/dist/modules/billing/billing.display.js +26 -0
  42. package/dist/modules/billing/billing.display.js.map +1 -1
  43. package/dist/modules/billing/billing.fce.d.ts +21 -0
  44. package/dist/modules/billing/billing.fce.js +59 -0
  45. package/dist/modules/billing/billing.fce.js.map +1 -0
  46. package/dist/modules/billing/billing.iva-receptor.d.ts +7 -0
  47. package/dist/modules/billing/billing.iva-receptor.js +58 -0
  48. package/dist/modules/billing/billing.iva-receptor.js.map +1 -0
  49. package/dist/modules/billing/billing.labels.js +1 -1
  50. package/dist/modules/billing/billing.mappers.js +2 -1
  51. package/dist/modules/billing/billing.mappers.js.map +1 -1
  52. package/dist/modules/billing/billing.schemas.d.ts +38 -5
  53. package/dist/modules/billing/billing.schemas.js +38 -1
  54. package/dist/modules/billing/billing.schemas.js.map +1 -1
  55. package/dist/modules/billing/billing.serialize.js +2 -0
  56. package/dist/modules/billing/billing.serialize.js.map +1 -1
  57. package/dist/modules/billing/billing.service.d.ts +12 -0
  58. package/dist/modules/billing/billing.service.js +68 -10
  59. package/dist/modules/billing/billing.service.js.map +1 -1
  60. package/dist/modules/billing/billing.text.js +11 -3
  61. package/dist/modules/billing/billing.text.js.map +1 -1
  62. package/dist/modules/billing/billing.types.internal.d.ts +2 -0
  63. package/dist/modules/billing/billing.validation.d.ts +4 -2
  64. package/dist/modules/billing/billing.validation.js +36 -1
  65. package/dist/modules/billing/billing.validation.js.map +1 -1
  66. package/dist/modules/config/config-value-parser.d.ts +1 -1
  67. package/dist/modules/config/config-value-parser.js +29 -1
  68. package/dist/modules/config/config-value-parser.js.map +1 -1
  69. package/dist/modules/config/config.presenter.js +8 -0
  70. package/dist/modules/config/config.presenter.js.map +1 -1
  71. package/dist/modules/config/config.schemas.d.ts +26 -3
  72. package/dist/modules/config/config.schemas.js +19 -0
  73. package/dist/modules/config/config.schemas.js.map +1 -1
  74. package/dist/modules/config/config.service.js +4 -0
  75. package/dist/modules/config/config.service.js.map +1 -1
  76. package/dist/modules/examples/examples.d.ts +1 -1
  77. package/dist/modules/examples/examples.js +60 -25
  78. package/dist/modules/examples/examples.js.map +1 -1
  79. package/dist/modules/fce/fce-obligation.d.ts +20 -0
  80. package/dist/modules/fce/fce-obligation.js +33 -0
  81. package/dist/modules/fce/fce-obligation.js.map +1 -0
  82. package/dist/modules/fce/fce-obligation.presenter.d.ts +9 -0
  83. package/dist/modules/fce/fce-obligation.presenter.js +32 -0
  84. package/dist/modules/fce/fce-obligation.presenter.js.map +1 -0
  85. package/dist/services/arca/arca-billing.gateway.d.ts +1 -0
  86. package/dist/services/arca/arca-billing.gateway.js +12 -0
  87. package/dist/services/arca/arca-billing.gateway.js.map +1 -1
  88. package/dist/services/arca/arca-fce-obligation.gateway.d.ts +7 -0
  89. package/dist/services/arca/arca-fce-obligation.gateway.js +36 -0
  90. package/dist/services/arca/arca-fce-obligation.gateway.js.map +1 -0
  91. package/dist/ui/presenters/errors.zod-presenter.js +22 -1
  92. package/dist/ui/presenters/errors.zod-presenter.js.map +1 -1
  93. package/llms.txt +9 -5
  94. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/modules/config/config.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/modules/config/config.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare function renderExamples(): string;
1
+ export declare function renderExamples(today?: Date): string;
@@ -37,7 +37,37 @@ function resolveAssociatedShortcut(definition) {
37
37
  }
38
38
  return `fce${definition.letter}`;
39
39
  }
40
- function buildMinimalLong(definition) {
40
+ const EXAMPLE_CBU = '0110599520000012345678';
41
+ function formatExampleDate(value) {
42
+ const day = String(value.getDate()).padStart(2, '0');
43
+ const month = String(value.getMonth() + 1).padStart(2, '0');
44
+ return `${day}-${month}-${value.getFullYear()}`;
45
+ }
46
+ // Fechas relativas a hoy para que los ejemplos queden dentro de la ventana que acepta ARCA.
47
+ function resolveExampleDates(today) {
48
+ const monthStart = new Date(today.getFullYear(), today.getMonth(), 1);
49
+ const paymentDue = new Date(today.getFullYear(), today.getMonth(), today.getDate() + 10);
50
+ return {
51
+ associated: formatExampleDate(monthStart),
52
+ billing: formatExampleDate(today),
53
+ paymentDue: formatExampleDate(paymentDue),
54
+ serviceEnd: formatExampleDate(today),
55
+ serviceStart: formatExampleDate(monthStart),
56
+ };
57
+ }
58
+ function isElectronicCreditNote(definition) {
59
+ return definition.isElectronicCredit && definition.requiresAssociatedVoucher;
60
+ }
61
+ function resolveElectronicCreditFlags(definition, dates, variant) {
62
+ if (!definition.isElectronicCredit) {
63
+ return [];
64
+ }
65
+ if (isElectronicCreditNote(definition)) {
66
+ return [`--afecha ${dates.associated}`];
67
+ }
68
+ return variant === 'full' ? [`--cbu ${EXAMPLE_CBU}`, '--transferencia sca'] : [`--cbu ${EXAMPLE_CBU}`];
69
+ }
70
+ function buildMinimalLong(definition, dates) {
41
71
  const command = [
42
72
  `arcli ${definition.family} ${definition.letter}`,
43
73
  `--monto ${resolveAmount(definition)}`,
@@ -47,59 +77,63 @@ function buildMinimalLong(definition) {
47
77
  if (definition.requiresAssociatedVoucher) {
48
78
  command.push(`--ac ${resolveAssociatedShortcut(definition)}`, '--asociado-punto-venta 3', '--ar 120', '--acuit 20409509763');
49
79
  }
50
- command.push('--previsualizar');
80
+ command.push(...resolveElectronicCreditFlags(definition, dates, 'minimal'), '--previsualizar');
51
81
  return command.join(' ');
52
82
  }
53
- function buildMinimalShort(definition) {
83
+ function buildMinimalShort(definition, dates) {
54
84
  const command = [`arcli ${definition.shortcut}`, `-m ${resolveAmount(definition)}`, '--cs'];
55
85
  command.push(...resolveIdentityShort(definition));
56
86
  if (definition.requiresAssociatedVoucher) {
57
87
  command.push(`--ac ${resolveAssociatedShortcut(definition)}`, '--apv 3', '--ar 120', '--acuit 20409509763');
58
88
  }
59
- command.push('--previsualizar');
89
+ command.push(...resolveElectronicCreditFlags(definition, dates, 'minimal'), '--previsualizar');
60
90
  return command.join(' ');
61
91
  }
62
- function buildFullLong(definition) {
92
+ function buildFullLong(definition, dates) {
63
93
  const command = [
64
94
  `arcli ${definition.family} ${definition.letter}`,
65
95
  `--monto ${resolveAmount(definition)}`,
66
96
  '--concepto servicios',
67
97
  '--punto-venta 3',
68
- '--fecha 31-03-2026',
98
+ `--fecha ${dates.billing}`,
69
99
  '--moneda PES',
70
100
  '--cotizacion-moneda 1',
71
- '--dia 31',
72
- '--servicio-desde 01-03-2026',
73
- '--servicio-hasta 31-03-2026',
101
+ `--servicio-desde ${dates.serviceStart}`,
102
+ `--servicio-hasta ${dates.serviceEnd}`,
74
103
  ];
104
+ if (!isElectronicCreditNote(definition)) {
105
+ command.push(`--vencimiento ${dates.paymentDue}`);
106
+ }
75
107
  command.push(...resolveIdentityLong(definition));
76
108
  if (definition.requiresAssociatedVoucher) {
77
109
  command.push(`--ac ${resolveAssociatedShortcut(definition)}`, '--asociado-punto-venta 3', '--ar 120', '--acuit 20409509763');
78
110
  }
79
- command.push('--previsualizar');
111
+ command.push(...resolveElectronicCreditFlags(definition, dates, 'full'), '--previsualizar');
80
112
  return command.join(' ');
81
113
  }
82
- function buildFullShort(definition) {
114
+ function buildFullShort(definition, dates) {
83
115
  const command = [
84
116
  `arcli ${definition.shortcut}`,
85
117
  `-m ${resolveAmount(definition)}`,
86
118
  '--cs',
87
119
  '--pv 3',
88
- '-f 31-03-2026',
120
+ `-f ${dates.billing}`,
89
121
  '--mda PES',
90
122
  '--cm 1',
91
- '-d 31',
92
- '--sd 01-03-2026',
93
- '--sh 31-03-2026',
123
+ `--sd ${dates.serviceStart}`,
124
+ `--sh ${dates.serviceEnd}`,
94
125
  ];
126
+ if (!isElectronicCreditNote(definition)) {
127
+ command.push(`--vto ${dates.paymentDue}`);
128
+ }
95
129
  command.push(...resolveIdentityShort(definition));
96
130
  if (definition.requiresAssociatedVoucher) {
97
131
  command.push(`--ac ${resolveAssociatedShortcut(definition)}`, '--apv 3', '--ar 120', '--acuit 20409509763');
98
132
  }
99
- command.push('--previsualizar');
133
+ command.push(...resolveElectronicCreditFlags(definition, dates, 'full'), '--previsualizar');
100
134
  return command.join(' ');
101
135
  }
102
- function formatVoucherExample(definition) {
136
+ function formatVoucherExample(definition, dates) {
103
137
  return [
104
138
  renderPanel({
105
139
  borderType: 'note',
@@ -115,25 +149,26 @@ function formatVoucherExample(definition) {
115
149
  }),
116
150
  '',
117
151
  `${badge('MINIMA LARGA', 'info')}`,
118
- `${buildMinimalLong(definition)}`,
152
+ `${buildMinimalLong(definition, dates)}`,
119
153
  '',
120
154
  `${badge('MINIMA CORTA', 'success')}`,
121
- `${buildMinimalShort(definition)}`,
155
+ `${buildMinimalShort(definition, dates)}`,
122
156
  '',
123
157
  `${badge('FULL LARGA', 'warning')}`,
124
- `${buildFullLong(definition)}`,
158
+ `${buildFullLong(definition, dates)}`,
125
159
  '',
126
160
  `${badge('FULL CORTA', 'debug')}`,
127
- `${buildFullShort(definition)}`,
161
+ `${buildFullShort(definition, dates)}`,
128
162
  ].join('\n');
129
163
  }
130
- function renderFamilyExamples(family) {
164
+ function renderFamilyExamples(family, dates) {
131
165
  return VOUCHER_SHORTCUTS.map((shortcut) => VOUCHER_KIND_MAP[shortcut])
132
166
  .filter((definition) => definition.family === family)
133
- .map(formatVoucherExample)
167
+ .map((definition) => formatVoucherExample(definition, dates))
134
168
  .join('\n\n\n');
135
169
  }
136
- export function renderExamples() {
170
+ export function renderExamples(today = new Date()) {
171
+ const dates = resolveExampleDates(today);
137
172
  return [
138
173
  renderLogo().trim(),
139
174
  '',
@@ -149,7 +184,7 @@ export function renderExamples() {
149
184
  '',
150
185
  ISSUER_HINT,
151
186
  '',
152
- ...VOUCHER_FAMILIES.flatMap((family) => [renderFamilyExamples(family), '']),
187
+ ...VOUCHER_FAMILIES.flatMap((family) => [renderFamilyExamples(family, dates), '']),
153
188
  '',
154
189
  ].join('\n');
155
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"examples.js","sourceRoot":"","sources":["../../../src/modules/examples/examples.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"examples.js","sourceRoot":"","sources":["../../../src/modules/examples/examples.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { BillingCommandInput } from '../billing/billing.schemas';
2
+ import type { VoucherKindDefinition } from '../billing/billing.types';
3
+ /** Respuesta de wsfecred consultarMontoObligadoRecepcion. */
4
+ export interface FceObligation {
5
+ readonly minimumAmount: number;
6
+ readonly obligated: boolean;
7
+ }
8
+ export interface FceObligationGateway {
9
+ /** `issueDate` en formato ARCA yyyymmdd. */
10
+ getObligation(cuit: number, issueDate: string): Promise<FceObligation>;
11
+ }
12
+ /** Solo las facturas (comunes o FCE) a un receptor con CUIT dependen del regimen FCE. */
13
+ export declare function shouldCheckFceObligation(input: Pick<BillingCommandInput, 'documentNumber' | 'documentType'>, voucherKind: VoucherKindDefinition): input is Pick<BillingCommandInput, 'documentType'> & {
14
+ readonly documentNumber: number;
15
+ };
16
+ /**
17
+ * Compara el comprobante elegido con lo que exige el regimen FCE MiPyMEs:
18
+ * con receptor obligado y monto igual o superior al minimo corresponde FCE; si no, factura comun.
19
+ */
20
+ export declare function evaluateFceObligation(obligation: FceObligation, voucherKind: VoucherKindDefinition, amountInPesos: number): string[];
@@ -0,0 +1,33 @@
1
+ const MONEY_FORMATTER = new Intl.NumberFormat('es-AR', { maximumFractionDigits: 2, minimumFractionDigits: 0 });
2
+ function formatMoney(value) {
3
+ return `$${MONEY_FORMATTER.format(value)}`;
4
+ }
5
+ function isInvoice(voucherKind) {
6
+ return voucherKind.family === 'factura' || voucherKind.family === 'factura-credito-electronica';
7
+ }
8
+ /** Solo las facturas (comunes o FCE) a un receptor con CUIT dependen del regimen FCE. */
9
+ export function shouldCheckFceObligation(input, voucherKind) {
10
+ return isInvoice(voucherKind) && input.documentType === 'cuit' && typeof input.documentNumber === 'number';
11
+ }
12
+ /**
13
+ * Compara el comprobante elegido con lo que exige el regimen FCE MiPyMEs:
14
+ * con receptor obligado y monto igual o superior al minimo corresponde FCE; si no, factura comun.
15
+ */
16
+ export function evaluateFceObligation(obligation, voucherKind, amountInPesos) {
17
+ const requiresFce = obligation.obligated && amountInPesos >= obligation.minimumAmount;
18
+ const regularShortcut = `f${voucherKind.letter}`;
19
+ const fceShortcut = `fce${voucherKind.letter}`;
20
+ if (voucherKind.family === 'factura' && requiresFce) {
21
+ return [
22
+ `El receptor esta obligado a recibir FCE desde ${formatMoney(obligation.minimumAmount)} y este monto lo supera. Corresponde emitir ${fceShortcut} en lugar de ${regularShortcut}.`,
23
+ ];
24
+ }
25
+ if (voucherKind.family === 'factura-credito-electronica' && !requiresFce) {
26
+ const reason = obligation.obligated
27
+ ? `el monto es menor al minimo del regimen (${formatMoney(obligation.minimumAmount)})`
28
+ : 'el receptor no esta obligado a recibir FCE';
29
+ return [`Para este comprobante ${reason}. Corresponde emitir ${regularShortcut} en lugar de ${fceShortcut}.`];
30
+ }
31
+ return [];
32
+ }
33
+ //# sourceMappingURL=fce-obligation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fce-obligation.js","sourceRoot":"","sources":["../../../src/modules/fce/fce-obligation.ts"],"names":[],"mappings":"AAcA,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,CAAC;AAE/G,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,SAAS,CAAC,WAAkC;IACnD,OAAO,WAAW,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,6BAA6B,CAAC;AAClG,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,wBAAwB,CACtC,KAAmE,EACnE,WAAkC;IAElC,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,cAAc,KAAK,QAAQ,CAAC;AAC7G,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAyB,EACzB,WAAkC,EAClC,aAAqB;IAErB,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,IAAI,aAAa,IAAI,UAAU,CAAC,aAAa,CAAC;IACtF,MAAM,eAAe,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;IACjD,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;IAE/C,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW,EAAE,CAAC;QACpD,OAAO;YACL,iDAAiD,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,+CAA+C,WAAW,gBAAgB,eAAe,GAAG;SACnL,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,6BAA6B,IAAI,CAAC,WAAW,EAAE,CAAC;QACzE,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS;YACjC,CAAC,CAAC,4CAA4C,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG;YACtF,CAAC,CAAC,4CAA4C,CAAC;QAEjD,OAAO,CAAC,yBAAyB,MAAM,wBAAwB,eAAe,gBAAgB,WAAW,GAAG,CAAC,CAAC;IAChH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { FceObligation } from './fce-obligation';
2
+ export interface FceObligationReport {
3
+ readonly cuit: number;
4
+ readonly environment: 'produccion' | 'testing';
5
+ readonly issueDate: string;
6
+ readonly obligation: FceObligation;
7
+ }
8
+ export declare function formatFceObligationAsJson(report: FceObligationReport): string;
9
+ export declare function formatFceObligationAsText(report: FceObligationReport): string;
@@ -0,0 +1,32 @@
1
+ import { keyValuePanel, renderKeyValueRows, resolveKeyValueLabelWidth } from '../../ui/index.js';
2
+ const MONEY_FORMATTER = new Intl.NumberFormat('es-AR', {
3
+ currency: 'ARS',
4
+ maximumFractionDigits: 2,
5
+ minimumFractionDigits: 2,
6
+ style: 'currency',
7
+ });
8
+ function formatArcaDate(value) {
9
+ return `${value.slice(6, 8)}/${value.slice(4, 6)}/${value.slice(0, 4)}`;
10
+ }
11
+ export function formatFceObligationAsJson(report) {
12
+ return JSON.stringify({
13
+ cuit: report.cuit,
14
+ entorno: report.environment,
15
+ fecha: report.issueDate,
16
+ montoDesde: report.obligation.minimumAmount,
17
+ obligado: report.obligation.obligated,
18
+ }, null, 2);
19
+ }
20
+ export function formatFceObligationAsText(report) {
21
+ const rows = [
22
+ ['CUIT', String(report.cuit)],
23
+ ['Fecha consultada', formatArcaDate(report.issueDate)],
24
+ ['Obligado a recibir FCE', report.obligation.obligated ? 'si' : 'no'],
25
+ ['Monto minimo', MONEY_FORMATTER.format(report.obligation.minimumAmount)],
26
+ ];
27
+ const footer = report.obligation.obligated
28
+ ? `Desde ese monto corresponde emitir FCE (fcea, fceb o fcec). Debajo, factura comun.`
29
+ : 'Corresponde emitir factura comun (fa, fb o fc).';
30
+ return keyValuePanel('Regimen FCE MiPyMEs', renderKeyValueRows(rows, { labelWidth: resolveKeyValueLabelWidth('standard', rows) }), footer);
31
+ }
32
+ //# sourceMappingURL=fce-obligation.presenter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fce-obligation.presenter.js","sourceRoot":"","sources":["../../../src/modules/fce/fce-obligation.presenter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAWxF,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;IACrD,QAAQ,EAAE,KAAK;IACf,qBAAqB,EAAE,CAAC;IACxB,qBAAqB,EAAE,CAAC;IACxB,KAAK,EAAE,UAAU;CAClB,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAA2B;IACnE,OAAO,IAAI,CAAC,SAAS,CACnB;QACE,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,WAAW;QAC3B,KAAK,EAAE,MAAM,CAAC,SAAS;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa;QAC3C,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;KACtC,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAA2B;IACnE,MAAM,IAAI,GAAqC;QAC7C,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,kBAAkB,EAAE,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC,wBAAwB,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACrE,CAAC,cAAc,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;KAC1E,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS;QACxC,CAAC,CAAC,oFAAoF;QACtF,CAAC,CAAC,iDAAiD,CAAC;IAEtD,OAAO,aAAa,CAClB,qBAAqB,EACrB,kBAAkB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,yBAAyB,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,EACrF,MAAM,CACP,CAAC;AACJ,CAAC"}
@@ -6,4 +6,5 @@ export declare class ArcaBillingGateway implements BillingGateway {
6
6
  private readonly arca;
7
7
  constructor(arca: Arca);
8
8
  createNextVoucher(payload: INextVoucher): Promise<CreateVoucherResultDto>;
9
+ getQuotation(currencyCode: string): Promise<number>;
9
10
  }
@@ -1,3 +1,4 @@
1
+ import { AppError } from '../../lib/errors/app-error.js';
1
2
  export class ArcaBillingGateway {
2
3
  arca;
3
4
  constructor(arca) {
@@ -6,5 +7,16 @@ export class ArcaBillingGateway {
6
7
  async createNextVoucher(payload) {
7
8
  return this.arca.electronicBillingService.createNextVoucher(payload);
8
9
  }
10
+ async getQuotation(currencyCode) {
11
+ const result = await this.arca.electronicBillingService.getQuotation(currencyCode);
12
+ const exchangeRate = result.resultGet?.monCotiz;
13
+ if (typeof exchangeRate !== 'number' || exchangeRate <= 0) {
14
+ throw new AppError(`ARCA no devolvio una cotizacion valida para ${currencyCode}.`, {
15
+ code: 'ARCA_QUOTATION_ERROR',
16
+ details: { errors: result.errors },
17
+ });
18
+ }
19
+ return exchangeRate;
20
+ }
9
21
  }
10
22
  //# sourceMappingURL=arca-billing.gateway.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arca-billing.gateway.js","sourceRoot":"","sources":["../../../src/services/arca/arca-billing.gateway.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,kBAAkB;IACO;IAApC,YAAoC,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAE3C,KAAK,CAAC,iBAAiB,CAAC,OAAqB;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC;CACF"}
1
+ {"version":3,"file":"arca-billing.gateway.js","sourceRoot":"","sources":["../../../src/services/arca/arca-billing.gateway.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAGtD,MAAM,OAAO,kBAAkB;IACO;IAApC,YAAoC,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAE3C,KAAK,CAAC,iBAAiB,CAAC,OAAqB;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,YAAoB;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACnF,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC;QAEhD,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,IAAI,QAAQ,CAAC,+CAA+C,YAAY,GAAG,EAAE;gBACjF,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;aACnC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import type { Arca } from '@arcasdk/core';
2
+ import type { FceObligation, FceObligationGateway } from '../../modules/fce/fce-obligation';
3
+ export declare class ArcaFceObligationGateway implements FceObligationGateway {
4
+ private readonly arca;
5
+ constructor(arca: Arca);
6
+ getObligation(cuit: number, issueDate: string): Promise<FceObligation>;
7
+ }
@@ -0,0 +1,36 @@
1
+ import { AppError } from '../../lib/errors/app-error.js';
2
+ const NOT_AUTHORIZED_MESSAGE = 'El certificado no esta autorizado para el servicio wsfecred (Factura de Credito Electronica). Autoricelo igual que wsfe: en testing desde WSASS ("Crear autorizacion a servicio") y en produccion desde el Administrador de Relaciones.';
3
+ function toIsoDate(arcaDate) {
4
+ return `${arcaDate.slice(0, 4)}-${arcaDate.slice(4, 6)}-${arcaDate.slice(6, 8)}`;
5
+ }
6
+ export class ArcaFceObligationGateway {
7
+ arca;
8
+ constructor(arca) {
9
+ this.arca = arca;
10
+ }
11
+ async getObligation(cuit, issueDate) {
12
+ let output;
13
+ try {
14
+ output = await this.arca.wsfecredService.consultarMontoObligadoRecepcion({
15
+ cuitConsultada: cuit,
16
+ fechaEmision: toIsoDate(issueDate),
17
+ });
18
+ }
19
+ catch (error) {
20
+ if (error instanceof Error && error.message.includes('notAuthorized')) {
21
+ throw new AppError(NOT_AUTHORIZED_MESSAGE, { code: 'FCE_SERVICE_NOT_AUTHORIZED' });
22
+ }
23
+ throw error;
24
+ }
25
+ const result = output.consultarMontoObligadoRecepcionReturn;
26
+ const errors = result.arrayErrores?.codigoDescripcion ?? [];
27
+ if (errors.length > 0) {
28
+ throw new AppError(`ARCA no pudo informar si el receptor esta obligado a FCE: ${errors.map((item) => `${item.codigo} ${item.descripcion}`).join('; ')}`, { code: 'FCE_OBLIGATION_ERROR', details: { errors } });
29
+ }
30
+ return {
31
+ minimumAmount: Number(result.montoDesde ?? 0),
32
+ obligated: result.obligado === 'S',
33
+ };
34
+ }
35
+ }
36
+ //# sourceMappingURL=arca-fce-obligation.gateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arca-fce-obligation.gateway.js","sourceRoot":"","sources":["../../../src/services/arca/arca-fce-obligation.gateway.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAGtD,MAAM,sBAAsB,GAC1B,yOAAyO,CAAC;AAE5O,SAAS,SAAS,CAAC,QAAgB;IACjC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACnF,CAAC;AAED,MAAM,OAAO,wBAAwB;IACC;IAApC,YAAoC,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAAG,CAAC;IAE3C,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,SAAiB;QACxD,IAAI,MAAuF,CAAC;QAE5F,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,+BAA+B,CAAC;gBACvE,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,SAAS,CAAC,SAAS,CAAC;aACnC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBACtE,MAAM,IAAI,QAAQ,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC,CAAC;YACrF,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,qCAAqC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,iBAAiB,IAAI,EAAE,CAAC;QAE5D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,QAAQ,CAChB,6DAA6D,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACpI,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,CACtD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;YAC7C,SAAS,EAAE,MAAM,CAAC,QAAQ,KAAK,GAAG;SACnC,CAAC;IACJ,CAAC;CACF"}
@@ -2,34 +2,54 @@ import { errorPanel } from '../components/errorPanel.js';
2
2
  import { renderJson } from '../primitives/renderJson.js';
3
3
  import { bold } from '../primitives/text.js';
4
4
  const ZOD_PATH_LABELS = {
5
+ associatedPeriod: 'periodo asociado',
5
6
  associatedVoucher: 'comprobante asociado',
6
7
  billingDate: 'fecha del comprobante',
8
+ cancellation: 'anulacion',
9
+ cbu: 'CBU',
10
+ cbuAlias: 'alias del CBU',
7
11
  concept: 'concepto',
8
12
  currencyCode: 'moneda',
9
13
  documentNumber: 'numero de documento',
10
14
  documentType: 'tipo de documento',
11
15
  dueDay: 'dia de vencimiento',
12
16
  exchangeRate: 'cotizacion',
17
+ exemptAmount: 'importe exento',
18
+ ivaRate: 'alicuota de IVA',
13
19
  ivaCondition: 'IVA receptor',
20
+ paymentDueDate: 'vencimiento de pago',
14
21
  pointOfSale: 'punto de venta',
22
+ sameCurrency: 'misma moneda',
15
23
  serviceEndDate: 'servicio hasta',
16
24
  serviceStartDate: 'servicio desde',
17
25
  totalAmount: 'monto',
26
+ transferMode: 'modalidad de transferencia',
27
+ untaxedAmount: 'importe no gravado',
18
28
  };
19
29
  const ZOD_PUBLIC_PATHS = {
30
+ associatedPeriod: ['periodoAsociado'],
20
31
  associatedVoucher: ['comprobanteAsociado'],
21
32
  billingDate: ['fechaComprobante'],
33
+ cancellation: ['anulacion'],
34
+ cbu: ['cbu'],
35
+ cbuAlias: ['aliasCbu'],
22
36
  concept: ['concepto'],
23
37
  currencyCode: ['codigoMoneda'],
24
38
  documentNumber: ['numeroDocumento'],
25
39
  documentType: ['tipoDocumento'],
26
40
  dueDay: ['dia'],
27
41
  exchangeRate: ['cotizacionMoneda'],
42
+ exemptAmount: ['importeExento'],
43
+ ivaRate: ['alicuotaIva'],
28
44
  ivaCondition: ['ivaReceptor'],
45
+ paymentDueDate: ['vencimientoPago'],
29
46
  pointOfSale: ['puntoVenta'],
47
+ sameCurrency: ['mismaMoneda'],
30
48
  serviceEndDate: ['servicioHasta'],
31
49
  serviceStartDate: ['servicioDesde'],
32
50
  totalAmount: ['montoTotal'],
51
+ transferMode: ['transferencia'],
52
+ untaxedAmount: ['importeNoGravado'],
33
53
  };
34
54
  function formatZodIssuePath(path) {
35
55
  if (path.length === 0) {
@@ -50,7 +70,8 @@ function humanizeZodIssue(issue) {
50
70
  return `${label[0]?.toUpperCase() ?? ''}${label.slice(1)} debe ser mayor a ${issue.minimum}.`;
51
71
  }
52
72
  if (issue.code === 'invalid_value') {
53
- return `${label[0]?.toUpperCase() ?? ''}${label.slice(1)} tiene un valor no soportado.`;
73
+ const allowedValues = issue.values.map((value) => String(value)).join(', ');
74
+ return `${label[0]?.toUpperCase() ?? ''}${label.slice(1)} tiene un valor no soportado. Valores validos: ${allowedValues}.`;
54
75
  }
55
76
  if (issue.code === 'invalid_type') {
56
77
  return `${label[0]?.toUpperCase() ?? ''}${label.slice(1)} tiene un formato invalido.`;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.zod-presenter.js","sourceRoot":"","sources":["../../../src/ui/presenters/errors.zod-presenter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.zod-presenter.js","sourceRoot":"","sources":["../../../src/ui/presenters/errors.zod-presenter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE1C,MAAM,eAAe,GAA2B;IAC9C,gBAAgB,EAAE,kBAAkB;IACpC,iBAAiB,EAAE,sBAAsB;IACzC,WAAW,EAAE,uBAAuB;IACpC,YAAY,EAAE,WAAW;IACzB,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,UAAU;IACnB,YAAY,EAAE,QAAQ;IACtB,cAAc,EAAE,qBAAqB;IACrC,YAAY,EAAE,mBAAmB;IACjC,MAAM,EAAE,oBAAoB;IAC5B,YAAY,EAAE,YAAY;IAC1B,YAAY,EAAE,gBAAgB;IAC9B,OAAO,EAAE,iBAAiB;IAC1B,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,qBAAqB;IACrC,WAAW,EAAE,gBAAgB;IAC7B,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EAAE,gBAAgB;IAClC,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,4BAA4B;IAC1C,aAAa,EAAE,oBAAoB;CACpC,CAAC;AAEF,MAAM,gBAAgB,GAA6B;IACjD,gBAAgB,EAAE,CAAC,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,CAAC,qBAAqB,CAAC;IAC1C,WAAW,EAAE,CAAC,kBAAkB,CAAC;IACjC,YAAY,EAAE,CAAC,WAAW,CAAC;IAC3B,GAAG,EAAE,CAAC,KAAK,CAAC;IACZ,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,CAAC,UAAU,CAAC;IACrB,YAAY,EAAE,CAAC,cAAc,CAAC;IAC9B,cAAc,EAAE,CAAC,iBAAiB,CAAC;IACnC,YAAY,EAAE,CAAC,eAAe,CAAC;IAC/B,MAAM,EAAE,CAAC,KAAK,CAAC;IACf,YAAY,EAAE,CAAC,kBAAkB,CAAC;IAClC,YAAY,EAAE,CAAC,eAAe,CAAC;IAC/B,OAAO,EAAE,CAAC,aAAa,CAAC;IACxB,YAAY,EAAE,CAAC,aAAa,CAAC;IAC7B,cAAc,EAAE,CAAC,iBAAiB,CAAC;IACnC,WAAW,EAAE,CAAC,YAAY,CAAC;IAC3B,YAAY,EAAE,CAAC,aAAa,CAAC;IAC7B,cAAc,EAAE,CAAC,eAAe,CAAC;IACjC,gBAAgB,EAAE,CAAC,eAAe,CAAC;IACnC,WAAW,EAAE,CAAC,YAAY,CAAC;IAC3B,YAAY,EAAE,CAAC,eAAe,CAAC;IAC/B,aAAa,EAAE,CAAC,kBAAkB,CAAC;CACpC,CAAC;AAEF,SAAS,kBAAkB,CAAC,IAAmB;IAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAiC;IACzD,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;IAElD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/D,OAAO,SAAS,KAAK,GAAG,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpE,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;YAC9B,OAAO,8BAA8B,CAAC;QACxC,CAAC;QAED,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,KAAK,CAAC,OAAO,GAAG,CAAC;IAChG,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACnC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5E,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,kDAAkD,aAAa,GAAG,CAAC;IAC7H,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAClC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,6BAA6B,CAAC;IACxF,CAAC;IAED,OAAO,KAAK,CAAC,OAAO,CAAC;AACvB,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAmB;IAChD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAEzC,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAe,EAAE,OAAgB;IAC9D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,UAAU,CAAC;YAChB,MAAM,EAAE,wBAAwB;YAChC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACrC,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC;gBAChC,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC;aACxC,CAAC,CAAC;YACH,KAAK,EAAE,uDAAuD;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;QAElD,OAAO,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CACf,kBAAkB,EAClB,uDAAuD,EACvD,WAAW,EACX,qEAAqE,CACtE,CAAC;AACJ,CAAC"}
package/llms.txt CHANGED
@@ -46,11 +46,15 @@ Shortcuts (`family` = comando alternativo `arcli <family> <letra>`, ej. `arcli f
46
46
  - Concepto: `--concepto <tipo>` (`productos`/`servicios`/`productos-servicios`) o atajos `--cs` `--cp` `--csp`. Uno solo, no combinar `--concepto` con un atajo.
47
47
  - IVA receptor: `--iva-receptor <tipo>` / `--ir <tipo>` (alias) o un atajo `--ir-ce|--ir-cf|--ir-il|--ir-ina|--ir-ms|--ir-mtip|--ir-pe|--ir-ri|--ir-rm|--ir-se|--ir-snc`. Usar exactamente una forma.
48
48
  Valores válidos: `cliente-del-exterior`, `consumidor-final`, `iva-liberado`, `iva-no-alcanzado`, `monotributista-social`, `monotributo-trabajador-independiente-promovido`, `proveedor-del-exterior`, `responsable-inscripto`, `responsable-monotributo`, `sujeto-exento`, `sujeto-no-categorizado`.
49
- - Identidad del receptor: `--cuit <n>` / `--cuil <n>` / `--dni <n>` / `--consumidor-final` (alias `--cfinal`, documento 0). Usar como máximo una.
49
+ El IVA receptor tiene que ser válido para la letra: `A` solo admite `responsable-inscripto`, `responsable-monotributo`, `monotributista-social` y `monotributo-trabajador-independiente-promovido`; `B` admite el resto; `C` admite todos. Letras `A` y `B` siempre discriminan IVA al 21%.
50
+ - IVA (solo letras A y B): `--alicuota 0|2.5|5|10.5|21|27` (default `config.alicuota` o 21; la config no aplica a C), `--exento <monto>` y `--nogravado <monto>` (sin guion). `--monto` es siempre el total; exento y no gravado se descuentan y el IVA se calcula sobre el resto. En letra C esos flags dan error.
51
+ - Identidad del receptor: `--cuit <n>` / `--cuil <n>` / `--dni <n>` / `--consumidor-final` (alias `--cfinal`, documento 0). Usar como máximo una. Desde $10.000.000 (total × cotización) no se puede usar `--consumidor-final`: identificar con `--dni`/`--cuit`/`--cuil` y `--ir-cf`.
50
52
  - Punto de venta: `--punto-venta <n>` (alias `--pv`). Si no se pasa, usa el default de config.
51
- - Moneda: `--moneda <codigo>` (alias `--mda`, ej. `ARS`/`USD`) y `--cotizacion-moneda <n>` (alias `--cm`).
52
- - Fechas: `-f, --fecha <fecha>` acepta formato argentino día-primero: `D`, `DD`, `D/M`, `DD/MM`, `D-M-YY`, `DD-MM-YYYY` (con `-` o `/`); si se omiten mes/año usa los actuales. También `--servicio-desde`/`--sd` y `--servicio-hasta`/`--sh`, y `-d, --dia <n>` (día de vencimiento).
53
- - Comprobante asociado (obligatorio en notas de crédito/débito): `--ac <shortcut>` (ej. `fc`), `--apv <n>` (punto de venta, alias `--asociado-punto-venta`), `--ar <n>` (número), `--acuit <n>`, `--at <n>` (tipo ARCA, alternativa a `--ac`; no combinar ambos).
53
+ - Moneda: `--moneda <codigo>` (alias `--mda`, ej. `ARS`/`USD`; `USD` se envía como `DOL`) y `--cotizacion-moneda <n>` (alias `--cm`). En moneda extranjera la cotización es obligatoria y no puede ser 1; si el pago es en la misma moneda extranjera, usar `--misma-moneda` en lugar de `--cm` (consulta la cotización oficial a ARCA). En pesos no pasar cotización distinta de 1.
54
+ - Fechas: `-f, --fecha <fecha>` acepta formato argentino día-primero: `D`, `DD`, `D/M`, `DD/MM`, `D-M-YY`, `DD-MM-YYYY` (con `-` o `/`); si se omiten mes/año usa los actuales. También `--servicio-desde`/`--sd` y `--servicio-hasta`/`--sh`, y `-d, --dia <n>` (día de vencimiento). `--vencimiento <fecha>` (alias `--vto`) fija `FchVtoPago` aparte del período de servicio (servicios y facturas FCE; no en productos ni NC/ND FCE). Ventana de `--fecha` respecto de hoy: productos ±5 días, servicios ±10, FCE −5/+1; en productos y FCE una fecha futura tiene que caer en el mes actual.
55
+ - Comprobante asociado (obligatorio en notas de crédito/débito): `--ac <shortcut>` (ej. `fc`), `--apv <n>` (punto de venta, alias `--asociado-punto-venta`), `--ar <n>` (número), `--acuit <n>`, `--at <n>` (tipo ARCA, alternativa a `--ac`; no combinar ambos), `--afecha <fecha>` (fecha del asociado, opcional salvo en NC/ND FCE). En notas comunes, en lugar del bloque `--ac` se puede usar un período: `--periodo-desde <fecha>` y `--periodo-hasta <fecha>` (alias `--pd`/`--ph`); no se combinan con `--ac`/`--at`, no aplican a FCE y el período no puede terminar después de la nota.
56
+ - Crédito electrónico (FCE): las facturas `fcea/fceb/fcec` requieren `--cbu <22 dígitos>` (o `arcli config establecer cbu ...`); opcionales `--alias <alias>` y `--transferencia sca|adc` (default `sca`). Las NC/ND FCE (`ncea`…`ndec`) requieren `--afecha`, aceptan `--anulacion`, toman `--acuit` del CUIT emisor si se omite y no aceptan `--cbu`/`--alias`/`--transferencia`. Fuera de FCE esos flags dan error.
57
+ - Régimen FCE: `arcli fce-obligado <cuit> [--fecha <fecha>] [--json]` consulta en ARCA (`wsfecred`) si el receptor está obligado a recibir FCE y desde qué monto. Con `arcli config establecer verificarFce true`, cada factura con CUIT hace esa consulta y devuelve avisos en `avisos` (JSON) sin bloquear. Requiere autorizar `wsfecred` en ARCA además de `wsfe`.
54
58
  - Ejecución: `--previsualizar` (default si no se especifica nada) vs `--emitir` (real contra ARCA) — son mutuamente excluyentes. En producción hace falta `--produccion --emitir` juntos — no hay un flag de confirmación adicional, así que esa combinación emite de verdad.
55
59
  - Salida: `--json` (estructurada, para scripts/agentes — desactiva el aviso de nueva versión), `--bruto` (incluye la respuesta cruda de ARCA).
56
60
  - `--cargar <path.json>`: carga uno o un array de comprobantes desde un JSON en vez de flags (ver forma abajo). Los flags pisan lo que venga del archivo.
@@ -133,7 +137,7 @@ arcli config establecer <clave> <valor>
133
137
  arcli config eliminar <clave>
134
138
  ```
135
139
 
136
- Claves válidas: `cuit`, `puntoVenta`, `concepto`, `ivaReceptor`, `moneda`, `cotizacion`,
140
+ Claves válidas: `cuit`, `cbu`, `aliasCbu` (solo facturas FCE), `verificarFce`, `alicuota`, `puntoVenta`, `concepto`, `ivaReceptor`, `moneda`, `cotizacion`,
137
141
  `entorno` (`testing`/`produccion`), `emitir`, `json`, `bruto` (booleanos: `true/false`,
138
142
  `si/no`, `1/0`), `cert.testing`, `cert.produccion`, `key.testing`, `key.produccion`
139
143
  (rutas a archivos PEM, se validan al guardar), `ticketPath` (carpeta donde se cachea el
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "arcli",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "CLI para previsualizar y emitir comprobantes ARCA desde terminal, con validaciones claras y salida lista para automatizar",
5
5
  "keywords": [
6
6
  "arca",
@@ -38,6 +38,7 @@
38
38
  "dist",
39
39
  "LICENSE",
40
40
  "README.md",
41
+ "CHANGELOG.md",
41
42
  "llms.txt"
42
43
  ],
43
44
  "scripts": {
@@ -70,7 +71,7 @@
70
71
  ]
71
72
  },
72
73
  "dependencies": {
73
- "@arcasdk/core": "2.0.0",
74
+ "@arcasdk/core": "2.0.2",
74
75
  "@inquirer/select": "5.2.2",
75
76
  "big.js": "7.0.1",
76
77
  "boxen": "8.0.1",