arcli 1.8.0 → 2.1.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 (280) hide show
  1. package/CHANGELOG.md +110 -1
  2. package/README.md +17 -16
  3. package/dist/cli/arca-runtime.d.ts +20 -0
  4. package/dist/cli/arca-runtime.js +42 -0
  5. package/dist/cli/arca-runtime.js.map +1 -0
  6. package/dist/cli/commands/billing.command.batch.d.ts +15 -5
  7. package/dist/cli/commands/billing.command.batch.js +28 -11
  8. package/dist/cli/commands/billing.command.batch.js.map +1 -1
  9. package/dist/cli/commands/billing.command.interactive-preview.js +4 -1
  10. package/dist/cli/commands/billing.command.interactive-preview.js.map +1 -1
  11. package/dist/cli/commands/billing.command.options.js +18 -16
  12. package/dist/cli/commands/billing.command.options.js.map +1 -1
  13. package/dist/cli/commands/billing.command.output.d.ts +4 -0
  14. package/dist/cli/commands/billing.command.output.js +3 -2
  15. package/dist/cli/commands/billing.command.output.js.map +1 -1
  16. package/dist/cli/commands/billing.command.parser.d.ts +7 -0
  17. package/dist/cli/commands/billing.command.parser.js +85 -43
  18. package/dist/cli/commands/billing.command.parser.js.map +1 -1
  19. package/dist/cli/commands/billing.command.pdf.d.ts +1 -1
  20. package/dist/cli/commands/billing.command.pdf.js +17 -2
  21. package/dist/cli/commands/billing.command.pdf.js.map +1 -1
  22. package/dist/cli/commands/billing.command.shared.d.ts +22 -3
  23. package/dist/cli/commands/billing.command.shared.js +84 -47
  24. package/dist/cli/commands/billing.command.shared.js.map +1 -1
  25. package/dist/cli/commands/config.command.d.ts +3 -4
  26. package/dist/cli/commands/config.command.js +43 -41
  27. package/dist/cli/commands/config.command.js.map +1 -1
  28. package/dist/cli/commands/cuit-argument.d.ts +2 -0
  29. package/dist/cli/commands/cuit-argument.js +10 -0
  30. package/dist/cli/commands/cuit-argument.js.map +1 -0
  31. package/dist/cli/commands/fce-obligation.command.js +6 -13
  32. package/dist/cli/commands/fce-obligation.command.js.map +1 -1
  33. package/dist/cli/commands/interactive.command.js +8 -6
  34. package/dist/cli/commands/interactive.command.js.map +1 -1
  35. package/dist/cli/commands/padron.command.d.ts +2 -0
  36. package/dist/cli/commands/padron.command.js +47 -0
  37. package/dist/cli/commands/padron.command.js.map +1 -0
  38. package/dist/cli/commands/parameters.command.js +8 -7
  39. package/dist/cli/commands/parameters.command.js.map +1 -1
  40. package/dist/cli/commands/pdf.command.js +17 -30
  41. package/dist/cli/commands/pdf.command.js.map +1 -1
  42. package/dist/cli/commands/vouchers.command.js +9 -9
  43. package/dist/cli/commands/vouchers.command.js.map +1 -1
  44. package/dist/cli/error-output.d.ts +25 -0
  45. package/dist/cli/error-output.js +86 -0
  46. package/dist/cli/error-output.js.map +1 -0
  47. package/dist/cli/global-options.d.ts +26 -0
  48. package/dist/cli/global-options.js +56 -0
  49. package/dist/cli/global-options.js.map +1 -0
  50. package/dist/cli/help-argv.d.ts +5 -0
  51. package/dist/cli/help-argv.js +21 -0
  52. package/dist/cli/help-argv.js.map +1 -0
  53. package/dist/cli/help.d.ts +2 -0
  54. package/dist/cli/help.js +78 -31
  55. package/dist/cli/help.js.map +1 -1
  56. package/dist/cli/ignored-global-options.d.ts +6 -0
  57. package/dist/cli/ignored-global-options.js +33 -0
  58. package/dist/cli/ignored-global-options.js.map +1 -0
  59. package/dist/cli/index.js +16 -26
  60. package/dist/cli/index.js.map +1 -1
  61. package/dist/cli/interactive/advanced-options.js +2 -2
  62. package/dist/cli/interactive/advanced-options.js.map +1 -1
  63. package/dist/cli/interactive/config.flow.d.ts +1 -2
  64. package/dist/cli/interactive/config.flow.js +4 -3
  65. package/dist/cli/interactive/config.flow.js.map +1 -1
  66. package/dist/cli/interactive/interactive-mode.js +108 -9
  67. package/dist/cli/interactive/interactive-mode.js.map +1 -1
  68. package/dist/cli/interactive/invoice-picker.js +3 -2
  69. package/dist/cli/interactive/invoice-picker.js.map +1 -1
  70. package/dist/cli/interactive/invoice.flow.d.ts +2 -0
  71. package/dist/cli/interactive/invoice.flow.js +4 -3
  72. package/dist/cli/interactive/invoice.flow.js.map +1 -1
  73. package/dist/cli/interactive/note.flow.d.ts +4 -0
  74. package/dist/cli/interactive/note.flow.js +25 -11
  75. package/dist/cli/interactive/note.flow.js.map +1 -1
  76. package/dist/cli/interactive/pdf.flow.js +33 -22
  77. package/dist/cli/interactive/pdf.flow.js.map +1 -1
  78. package/dist/cli/interactive/prompts.d.ts +3 -1
  79. package/dist/cli/interactive/prompts.js +8 -4
  80. package/dist/cli/interactive/prompts.js.map +1 -1
  81. package/dist/cli/interactive/receiver-padron.d.ts +29 -0
  82. package/dist/cli/interactive/receiver-padron.js +53 -0
  83. package/dist/cli/interactive/receiver-padron.js.map +1 -0
  84. package/dist/cli/interactive/repeat.flow.js +25 -10
  85. package/dist/cli/interactive/repeat.flow.js.map +1 -1
  86. package/dist/cli/interactive/session.js +4 -1
  87. package/dist/cli/interactive/session.js.map +1 -1
  88. package/dist/cli/interactive/update.flow.d.ts +6 -0
  89. package/dist/cli/interactive/update.flow.js +26 -0
  90. package/dist/cli/interactive/update.flow.js.map +1 -0
  91. package/dist/cli/interactive/validators.js +8 -4
  92. package/dist/cli/interactive/validators.js.map +1 -1
  93. package/dist/cli/option-parsers.d.ts +6 -0
  94. package/dist/cli/option-parsers.js +34 -0
  95. package/dist/cli/option-parsers.js.map +1 -0
  96. package/dist/cli/program.d.ts +5 -1
  97. package/dist/cli/program.js +8 -2
  98. package/dist/cli/program.js.map +1 -1
  99. package/dist/cli/version.d.ts +1 -1
  100. package/dist/cli/version.js +1 -1
  101. package/dist/lib/dates/arca-date.d.ts +13 -0
  102. package/dist/lib/dates/arca-date.js +28 -11
  103. package/dist/lib/dates/arca-date.js.map +1 -1
  104. package/dist/lib/errors/app-error.d.ts +4 -1
  105. package/dist/lib/errors/app-error.js +5 -1
  106. package/dist/lib/errors/app-error.js.map +1 -1
  107. package/dist/lib/files/restrict-to-owner.d.ts +7 -0
  108. package/dist/lib/files/restrict-to-owner.js +19 -0
  109. package/dist/lib/files/restrict-to-owner.js.map +1 -0
  110. package/dist/lib/files/write-new-file.d.ts +5 -0
  111. package/dist/lib/files/write-new-file.js +30 -0
  112. package/dist/lib/files/write-new-file.js.map +1 -0
  113. package/dist/lib/identity/format-cuit.d.ts +2 -0
  114. package/dist/lib/identity/format-cuit.js +6 -0
  115. package/dist/lib/identity/format-cuit.js.map +1 -0
  116. package/dist/lib/links.d.ts +2 -0
  117. package/dist/lib/links.js +2 -0
  118. package/dist/lib/links.js.map +1 -1
  119. package/dist/lib/numbers/argentine-amount.d.ts +23 -0
  120. package/dist/lib/numbers/argentine-amount.js +37 -0
  121. package/dist/lib/numbers/argentine-amount.js.map +1 -0
  122. package/dist/lib/numbers/strict-integer.d.ts +4 -0
  123. package/dist/lib/numbers/strict-integer.js +10 -0
  124. package/dist/lib/numbers/strict-integer.js.map +1 -0
  125. package/dist/lib/security/certificate.d.ts +5 -1
  126. package/dist/lib/security/certificate.js +10 -7
  127. package/dist/lib/security/certificate.js.map +1 -1
  128. package/dist/lib/security/pem.js +5 -1
  129. package/dist/lib/security/pem.js.map +1 -1
  130. package/dist/modules/billing/billing-response.js +15 -2
  131. package/dist/modules/billing/billing-response.js.map +1 -1
  132. package/dist/modules/billing/billing.amounts.d.ts +2 -0
  133. package/dist/modules/billing/billing.amounts.js +6 -3
  134. package/dist/modules/billing/billing.amounts.js.map +1 -1
  135. package/dist/modules/billing/billing.associated-vouchers.js +14 -3
  136. package/dist/modules/billing/billing.associated-vouchers.js.map +1 -1
  137. package/dist/modules/billing/billing.batch.js +13 -1
  138. package/dist/modules/billing/billing.batch.js.map +1 -1
  139. package/dist/modules/billing/billing.date-range.js +31 -9
  140. package/dist/modules/billing/billing.date-range.js.map +1 -1
  141. package/dist/modules/billing/billing.display.js +9 -5
  142. package/dist/modules/billing/billing.display.js.map +1 -1
  143. package/dist/modules/billing/billing.errors.d.ts +12 -0
  144. package/dist/modules/billing/billing.errors.js +18 -0
  145. package/dist/modules/billing/billing.errors.js.map +1 -0
  146. package/dist/modules/billing/billing.json-input.d.ts +58 -0
  147. package/dist/modules/billing/billing.json-input.js +279 -0
  148. package/dist/modules/billing/billing.json-input.js.map +1 -0
  149. package/dist/modules/billing/billing.padron.d.ts +14 -0
  150. package/dist/modules/billing/billing.padron.js +55 -0
  151. package/dist/modules/billing/billing.padron.js.map +1 -0
  152. package/dist/modules/billing/billing.schemas.d.ts +5 -0
  153. package/dist/modules/billing/billing.schemas.js +19 -5
  154. package/dist/modules/billing/billing.schemas.js.map +1 -1
  155. package/dist/modules/billing/billing.serialize.d.ts +1 -0
  156. package/dist/modules/billing/billing.serialize.js +5 -12
  157. package/dist/modules/billing/billing.serialize.js.map +1 -1
  158. package/dist/modules/billing/billing.service.d.ts +3 -0
  159. package/dist/modules/billing/billing.service.js +31 -3
  160. package/dist/modules/billing/billing.service.js.map +1 -1
  161. package/dist/modules/billing/billing.text.js +4 -12
  162. package/dist/modules/billing/billing.text.js.map +1 -1
  163. package/dist/modules/billing/billing.types.internal.d.ts +10 -2
  164. package/dist/modules/billing/billing.validation.js +4 -0
  165. package/dist/modules/billing/billing.validation.js.map +1 -1
  166. package/dist/modules/config/certificate-expiry.d.ts +42 -0
  167. package/dist/modules/config/certificate-expiry.js +91 -0
  168. package/dist/modules/config/certificate-expiry.js.map +1 -0
  169. package/dist/modules/config/config-doctor.d.ts +5 -4
  170. package/dist/modules/config/config-doctor.js +8 -16
  171. package/dist/modules/config/config-doctor.js.map +1 -1
  172. package/dist/modules/config/config-value-parser.d.ts +1 -1
  173. package/dist/modules/config/config-value-parser.js +24 -20
  174. package/dist/modules/config/config-value-parser.js.map +1 -1
  175. package/dist/modules/config/config.presenter.d.ts +2 -0
  176. package/dist/modules/config/config.presenter.js +6 -0
  177. package/dist/modules/config/config.presenter.js.map +1 -1
  178. package/dist/modules/config/config.schemas.d.ts +4 -2
  179. package/dist/modules/config/config.schemas.js +3 -0
  180. package/dist/modules/config/config.schemas.js.map +1 -1
  181. package/dist/modules/config/config.sections.js +6 -1
  182. package/dist/modules/config/config.sections.js.map +1 -1
  183. package/dist/modules/config/config.service.d.ts +5 -0
  184. package/dist/modules/config/config.service.js +62 -14
  185. package/dist/modules/config/config.service.js.map +1 -1
  186. package/dist/modules/examples/examples.d.ts +5 -0
  187. package/dist/modules/examples/examples.js +34 -29
  188. package/dist/modules/examples/examples.js.map +1 -1
  189. package/dist/modules/interactive/amount-input.d.ts +3 -5
  190. package/dist/modules/interactive/amount-input.js +9 -26
  191. package/dist/modules/interactive/amount-input.js.map +1 -1
  192. package/dist/modules/interactive/config-fields.js +8 -1
  193. package/dist/modules/interactive/config-fields.js.map +1 -1
  194. package/dist/modules/interactive/equivalent-command.js +8 -10
  195. package/dist/modules/interactive/equivalent-command.js.map +1 -1
  196. package/dist/modules/interactive/invoice-copy.d.ts +19 -0
  197. package/dist/modules/interactive/invoice-copy.js +26 -0
  198. package/dist/modules/interactive/invoice-copy.js.map +1 -0
  199. package/dist/modules/interactive/periods.d.ts +2 -2
  200. package/dist/modules/interactive/periods.js +8 -4
  201. package/dist/modules/interactive/periods.js.map +1 -1
  202. package/dist/modules/padron/padron.d.ts +46 -0
  203. package/dist/modules/padron/padron.js +24 -0
  204. package/dist/modules/padron/padron.js.map +1 -0
  205. package/dist/modules/padron/padron.presenter.d.ts +7 -0
  206. package/dist/modules/padron/padron.presenter.js +49 -0
  207. package/dist/modules/padron/padron.presenter.js.map +1 -0
  208. package/dist/modules/parameters/health.d.ts +17 -0
  209. package/dist/modules/parameters/health.js +29 -0
  210. package/dist/modules/parameters/health.js.map +1 -0
  211. package/dist/modules/parameters/parameters.presenter.js +5 -2
  212. package/dist/modules/parameters/parameters.presenter.js.map +1 -1
  213. package/dist/modules/pdf/pdf.errors.d.ts +0 -1
  214. package/dist/modules/pdf/pdf.errors.js +1 -3
  215. package/dist/modules/pdf/pdf.errors.js.map +1 -1
  216. package/dist/modules/storybook/showcase.js +21 -5
  217. package/dist/modules/storybook/showcase.js.map +1 -1
  218. package/dist/modules/update-check/changelog.d.ts +23 -0
  219. package/dist/modules/update-check/changelog.js +99 -0
  220. package/dist/modules/update-check/changelog.js.map +1 -0
  221. package/dist/modules/update-check/update-check.presenter.d.ts +4 -0
  222. package/dist/modules/update-check/update-check.presenter.js +80 -2
  223. package/dist/modules/update-check/update-check.presenter.js.map +1 -1
  224. package/dist/modules/update-check/update-check.service.d.ts +3 -0
  225. package/dist/modules/update-check/update-check.service.js +2 -2
  226. package/dist/modules/update-check/update-check.service.js.map +1 -1
  227. package/dist/modules/vouchers/voucher-history.presenter.d.ts +3 -3
  228. package/dist/modules/vouchers/voucher-history.presenter.js +27 -7
  229. package/dist/modules/vouchers/voucher-history.presenter.js.map +1 -1
  230. package/dist/services/arca/arca-billing.gateway.d.ts +8 -2
  231. package/dist/services/arca/arca-billing.gateway.js +17 -2
  232. package/dist/services/arca/arca-billing.gateway.js.map +1 -1
  233. package/dist/services/arca/arca-client.factory.d.ts +2 -1
  234. package/dist/services/arca/arca-client.factory.js +5 -0
  235. package/dist/services/arca/arca-client.factory.js.map +1 -1
  236. package/dist/services/arca/arca-context.resolver.d.ts +11 -0
  237. package/dist/services/arca/arca-context.resolver.js +17 -1
  238. package/dist/services/arca/arca-context.resolver.js.map +1 -1
  239. package/dist/services/arca/arca-padron.gateway.d.ts +9 -0
  240. package/dist/services/arca/arca-padron.gateway.js +104 -0
  241. package/dist/services/arca/arca-padron.gateway.js.map +1 -0
  242. package/dist/services/clipboard/clipboard.d.ts +2 -0
  243. package/dist/services/clipboard/clipboard.js +17 -0
  244. package/dist/services/clipboard/clipboard.js.map +1 -0
  245. package/dist/services/pdf/escape-html.d.ts +6 -0
  246. package/dist/services/pdf/escape-html.js +25 -0
  247. package/dist/services/pdf/escape-html.js.map +1 -0
  248. package/dist/services/pdf/pdf-exporter.d.ts +6 -3
  249. package/dist/services/pdf/pdf-exporter.js +13 -10
  250. package/dist/services/pdf/pdf-exporter.js.map +1 -1
  251. package/dist/ui/components/certificateBanner.d.ts +11 -0
  252. package/dist/ui/components/certificateBanner.js +9 -0
  253. package/dist/ui/components/certificateBanner.js.map +1 -0
  254. package/dist/ui/components/index.d.ts +1 -0
  255. package/dist/ui/components/index.js +1 -0
  256. package/dist/ui/components/index.js.map +1 -1
  257. package/dist/ui/components/statusBar.d.ts +15 -4
  258. package/dist/ui/components/statusBar.js +16 -11
  259. package/dist/ui/components/statusBar.js.map +1 -1
  260. package/dist/ui/presenters/config.presenter.d.ts +1 -1
  261. package/dist/ui/presenters/config.presenter.js +1 -1
  262. package/dist/ui/presenters/config.presenter.js.map +1 -1
  263. package/dist/ui/presenters/errors.presenter.js +8 -4
  264. package/dist/ui/presenters/errors.presenter.js.map +1 -1
  265. package/dist/ui/presenters/errors.zod-presenter.js +5 -26
  266. package/dist/ui/presenters/errors.zod-presenter.js.map +1 -1
  267. package/dist/ui/primitives/renderLogo.d.ts +2 -1
  268. package/dist/ui/primitives/renderLogo.js +21 -4
  269. package/dist/ui/primitives/renderLogo.js.map +1 -1
  270. package/dist/ui/primitives/renderPanel.d.ts +2 -0
  271. package/dist/ui/primitives/renderPanel.js +15 -5
  272. package/dist/ui/primitives/renderPanel.js.map +1 -1
  273. package/dist/ui/stream/terminal-stream.d.ts +11 -0
  274. package/dist/ui/stream/terminal-stream.js +27 -1
  275. package/dist/ui/stream/terminal-stream.js.map +1 -1
  276. package/dist/ui/theme/theme.d.ts +3 -3
  277. package/dist/ui/theme/theme.js +14 -3
  278. package/dist/ui/theme/theme.js.map +1 -1
  279. package/llms.txt +65 -45
  280. package/package.json +1 -1
@@ -12,6 +12,8 @@ export interface BillingCommandDefaults {
12
12
  readonly defaultEmit?: boolean;
13
13
  readonly defaultExchangeRate?: number;
14
14
  readonly defaultIvaCondition?: BillingCommandInput['ivaCondition'];
15
+ /** Con un CUIT y sin IVA receptor explicito, se va a consultar el padron: no hace falta un default. */
16
+ readonly lookupIvaConditionInPadron?: boolean;
15
17
  }
16
18
  export interface BillingCommandPlan {
17
19
  /** Posicion en el lote (desde 1) de cada item de `inputs`. */
@@ -19,6 +21,11 @@ export interface BillingCommandPlan {
19
21
  readonly inputs: BillingCommandInput[];
20
22
  /** Items del lote que no se pudieron leer; el comando no emite nada si hay alguno. */
21
23
  readonly invalidItems: BatchItemError[];
24
+ /**
25
+ * `--cargar` trajo un array: es un lote aunque tenga un solo elemento (sale como array y con errores
26
+ * `BATCH_*`). Un objeto o los flags son un comprobante suelto.
27
+ */
28
+ readonly isBatch: boolean;
22
29
  readonly modeSource: 'default' | 'file' | 'flags';
23
30
  /** Cantidad de items del lote (1 si no hay lote). */
24
31
  readonly total: number;
@@ -1,7 +1,10 @@
1
+ import Big from 'big.js';
1
2
  import { InputValidationError } from '../../lib/errors/app-error.js';
2
3
  import { readJsonFile } from '../../lib/files/read-json-file.js';
4
+ import { parseArgentineAmount } from '../../lib/numbers/argentine-amount.js';
3
5
  import { BatchValidationError, describeBatchItemError } from '../../modules/billing/billing.batch.js';
4
6
  import { isForeignCurrency } from '../../modules/billing/billing.currency.js';
7
+ import { parseBillingJsonInput, readBillingJsonItems, } from '../../modules/billing/billing.json-input.js';
5
8
  import { billingCommandSchema } from '../../modules/billing/billing.schemas.js';
6
9
  import { getVoucherKindByShortcut } from '../../modules/billing/voucher-kind-map.js';
7
10
  import { resolveConceptShortcut, resolveDocumentIdentity, resolveIvaShortcut } from './billing.command.shortcuts.js';
@@ -12,10 +15,12 @@ function pickString(...values) {
12
15
  function pickNumber(...values) {
13
16
  return values.find((value) => typeof value === 'number');
14
17
  }
15
- function parseAmountText(raw) {
16
- const value = raw.trim();
17
- // "552,50" -> 552.5; con punto se toma como decimal, igual que --monto.
18
- return Number(value.includes(',') && !value.includes('.') ? value.replace(',', '.') : value);
18
+ function parseRateAmount(flagValue, raw) {
19
+ const result = parseArgentineAmount(raw);
20
+ if (!result.ok) {
21
+ throw new InputValidationError(`--alicuota "${flagValue}": el monto no es valido: ${result.reason}.`);
22
+ }
23
+ return result.value;
19
24
  }
20
25
  /**
21
26
  * `--alicuota` acepta una tasa sola ("reducida", "10.5") o, repetido, pares TASA:MONTO con el importe
@@ -28,7 +33,7 @@ function parseIvaRateFlags(values) {
28
33
  const withAmount = values.filter((value) => value.includes(':'));
29
34
  if (withAmount.length === 0) {
30
35
  if (values.length > 1) {
31
- throw new InputValidationError('Para varias alicuotas use --alicuota TASA:MONTO en cada una, por ejemplo --alicuota general:1210 --alicuota reducida:552.50.');
36
+ throw new InputValidationError('Para varias alicuotas use --alicuota TASA:MONTO en cada una, por ejemplo --alicuota general:1210 --alicuota reducida:552,50.');
32
37
  }
33
38
  return { ivaRate: values[0] };
34
39
  }
@@ -38,10 +43,41 @@ function parseIvaRateFlags(values) {
38
43
  return {
39
44
  ivaRateAmounts: values.map((value) => {
40
45
  const separator = value.indexOf(':');
41
- return { amount: parseAmountText(value.slice(separator + 1)), rate: value.slice(0, separator) };
46
+ return { amount: parseRateAmount(value, value.slice(separator + 1)), rate: value.slice(0, separator) };
42
47
  }),
43
48
  };
44
49
  }
50
+ /** Total de un comprobante con varias alicuotas, sumado con Big: 100.1 + 200.2 da 300.3, no 300.29999999999995. */
51
+ function sumRateAmounts(rateAmounts, exemptAmount, untaxedAmount) {
52
+ return rateAmounts
53
+ .reduce((sum, item) => sum.plus(typeof item.amount === 'number' ? item.amount : 0), new Big(0))
54
+ .plus(exemptAmount ?? 0)
55
+ .plus(untaxedAmount ?? 0)
56
+ .toNumber();
57
+ }
58
+ /**
59
+ * Emitir o no, por nivel: lo escrito en el comando, despues el archivo y por ultimo la config.
60
+ * El primer nivel que diga algo decide; solo es error que un mismo nivel pida las dos cosas.
61
+ */
62
+ function resolveShouldEmit(options) {
63
+ if (options.cliEmit && options.cliPreview) {
64
+ throw new InputValidationError('Use --emitir o --previsualizar, pero no ambos a la vez.');
65
+ }
66
+ if (options.cliEmit !== undefined || options.cliPreview !== undefined) {
67
+ return options.cliEmit === true;
68
+ }
69
+ if (options.fileEmit === true && options.filePreview === true) {
70
+ throw new InputValidationError('En el archivo use "emitir" o "previsualizar", pero no ambos en true.');
71
+ }
72
+ if (typeof options.fileEmit === 'boolean') {
73
+ return options.fileEmit;
74
+ }
75
+ // "previsualizar": false no es lo mismo que "emitir": true; sin "emitir" decide la config.
76
+ if (options.filePreview === true) {
77
+ return false;
78
+ }
79
+ return Boolean(options.defaultEmit);
80
+ }
45
81
  function resolvePdfFlag(commandOptions, fileInput) {
46
82
  const exportPdf = commandOptions.exportarPdf === true || commandOptions.pdf === true;
47
83
  if (exportPdf && commandOptions.sinPdf === true) {
@@ -82,24 +118,27 @@ function parseBillingCommandInputFromSource(command, shortcut, fileInput, defaul
82
118
  : typeof fileInput?.emitir === 'boolean' || typeof fileInput?.previsualizar === 'boolean'
83
119
  ? 'file'
84
120
  : 'default';
85
- const shouldEmit = emitirSource === 'cli'
86
- ? Boolean(commandOptions.emitir)
87
- : typeof fileInput?.emitir === 'boolean'
88
- ? fileInput.emitir
89
- : Boolean(defaults.defaultEmit);
90
- const shouldDryRun = previsualizarSource === 'cli'
91
- ? Boolean(commandOptions.previsualizar)
92
- : typeof fileInput?.previsualizar === 'boolean'
93
- ? fileInput.previsualizar
94
- : !shouldEmit;
121
+ const shouldEmit = resolveShouldEmit({
122
+ cliEmit: emitirSource === 'cli' ? commandOptions.emitir === true : undefined,
123
+ cliPreview: previsualizarSource === 'cli' ? commandOptions.previsualizar === true : undefined,
124
+ defaultEmit: defaults.defaultEmit,
125
+ fileEmit: fileInput?.emitir,
126
+ filePreview: fileInput?.previsualizar,
127
+ });
95
128
  const conceptShortcut = resolveConceptShortcut(commandOptions);
96
129
  const documentIdentity = resolveDocumentIdentity(commandOptions);
97
130
  const ivaShortcut = resolveIvaShortcut(commandOptions);
98
131
  const resolvedConcept = pickString(commandOptions.concepto) ?? conceptShortcut ?? fileInput?.concepto ?? defaults.defaultConcept;
99
- const resolvedIvaCondition = pickString(commandOptions.ivaReceptor, commandOptions.ir) ??
100
- ivaShortcut ??
101
- fileInput?.ivaReceptor ??
102
- defaults.defaultIvaCondition;
132
+ const explicitIvaCondition = pickString(commandOptions.ivaReceptor, commandOptions.ir) ?? ivaShortcut ?? fileInput?.ivaReceptor;
133
+ const documentType = documentIdentity.documentType ?? fileInput?.tipoDocumento;
134
+ const willLookupPadron = !explicitIvaCondition && defaults.lookupIvaConditionInPadron === true && documentType === 'cuit';
135
+ const resolvedIvaCondition = explicitIvaCondition ?? defaults.defaultIvaCondition;
136
+ // Sin definir es explicito: asi la entrada que arma el parser es igual a la del modo interactivo.
137
+ const ivaConditionSource = explicitIvaCondition
138
+ ? undefined
139
+ : resolvedIvaCondition
140
+ ? 'default'
141
+ : 'missing';
103
142
  if (typeof commandOptions.concepto === 'string' && conceptShortcut) {
104
143
  throw new InputValidationError('Use --concepto o un flag corto de concepto (--cs, --cp, --csp), pero no ambos.');
105
144
  }
@@ -109,13 +148,10 @@ function parseBillingCommandInputFromSource(command, shortcut, fileInput, defaul
109
148
  if ((typeof commandOptions.ivaReceptor === 'string' || typeof commandOptions.ir === 'string') && ivaShortcut) {
110
149
  throw new InputValidationError('Use --iva-receptor, --ir o un flag corto --ir-*, pero no varios a la vez.');
111
150
  }
112
- if (shouldEmit && shouldDryRun) {
113
- throw new InputValidationError('Use --emitir o --previsualizar, pero no ambos a la vez.');
114
- }
115
151
  if (!resolvedConcept) {
116
152
  throw new InputValidationError('Falta el concepto. Use --concepto <tipo>, o bien --cs/--cp/--csp, o configure uno por defecto con "arcli config establecer concepto servicios".');
117
153
  }
118
- if (!resolvedIvaCondition) {
154
+ if (!resolvedIvaCondition && !willLookupPadron) {
119
155
  throw new InputValidationError('Falta IVA receptor. Use --iva-receptor <tipo>, --ir <tipo>, un flag --ir-*, o configure uno por defecto con "arcli config establecer ivaReceptor consumidor-final".');
120
156
  }
121
157
  const associatedVoucherFromFile = fileInput?.comprobanteAsociado
@@ -129,8 +165,11 @@ function parseBillingCommandInputFromSource(command, shortcut, fileInput, defaul
129
165
  }
130
166
  : undefined;
131
167
  const currencyCode = pickString(commandOptions.moneda, commandOptions.mda, fileInput?.codigoMoneda, defaults.defaultCurrencyCode);
132
- const sameCurrency = commandOptions.mismaMoneda === true || fileInput?.mismaMoneda === true;
133
- const explicitExchangeRate = pickNumber(commandOptions.cotizacionMoneda, commandOptions.cm, fileInput?.cotizacionMoneda);
168
+ // Un flag pisa lo del archivo: --cm descarta "mismaMoneda" del JSON y --misma-moneda, su "cotizacionMoneda".
169
+ const flagExchangeRate = pickNumber(commandOptions.cotizacionMoneda, commandOptions.cm);
170
+ const flagSameCurrency = commandOptions.mismaMoneda === true;
171
+ const sameCurrency = flagSameCurrency || (flagExchangeRate === undefined && fileInput?.mismaMoneda === true);
172
+ const explicitExchangeRate = flagExchangeRate ?? (flagSameCurrency ? undefined : fileInput?.cotizacionMoneda);
134
173
  if (sameCurrency && typeof explicitExchangeRate === 'number') {
135
174
  throw new InputValidationError('Con --misma-moneda la cotizacion se toma de ARCA. Quite --cotizacion-moneda o --cm.');
136
175
  }
@@ -147,16 +186,13 @@ function parseBillingCommandInputFromSource(command, shortcut, fileInput, defaul
147
186
  const associatedPeriod = periodFrom || periodTo ? { desde: periodFrom, hasta: periodTo } : fileInput?.periodoAsociado;
148
187
  const flagRates = parseIvaRateFlags(commandOptions.alicuota);
149
188
  const fileRateAmounts = fileInput?.alicuotas?.map((item) => ({ amount: item.monto, rate: item.tasa }));
150
- const ivaRateAmounts = flagRates.ivaRateAmounts ?? fileRateAmounts;
189
+ // --alicuota TASA tambien pisa las "alicuotas" del archivo.
190
+ const ivaRateAmounts = flagRates.ivaRateAmounts ?? (flagRates.ivaRate ? undefined : fileRateAmounts);
151
191
  const exemptAmount = pickNumber(commandOptions.exento, fileInput?.importeExento);
152
192
  const untaxedAmount = pickNumber(commandOptions.nogravado, fileInput?.importeNoGravado);
153
193
  // Con varias alicuotas el monto total se puede omitir: es la suma de cada una mas exento y no gravado.
154
194
  const totalAmount = pickNumber(commandOptions.monto, fileInput?.montoTotal) ??
155
- (ivaRateAmounts
156
- ? ivaRateAmounts.reduce((sum, item) => sum + (typeof item.amount === 'number' ? item.amount : 0), 0) +
157
- (exemptAmount ?? 0) +
158
- (untaxedAmount ?? 0)
159
- : undefined);
195
+ (ivaRateAmounts ? sumRateAmounts(ivaRateAmounts, exemptAmount, untaxedAmount) : undefined);
160
196
  return {
161
197
  ...billingCommandSchema.parse({
162
198
  associatedPeriod,
@@ -168,8 +204,8 @@ function parseBillingCommandInputFromSource(command, shortcut, fileInput, defaul
168
204
  concept: resolvedConcept,
169
205
  currencyCode,
170
206
  documentNumber: documentIdentity.documentNumber ?? fileInput?.numeroDocumento,
171
- documentType: documentIdentity.documentType ?? fileInput?.tipoDocumento,
172
- dryRun: shouldDryRun,
207
+ documentType,
208
+ dryRun: !shouldEmit,
173
209
  dueDay: pickNumber(commandOptions.dia, fileInput?.dia),
174
210
  emit: shouldEmit,
175
211
  exchangeRate,
@@ -178,7 +214,9 @@ function parseBillingCommandInputFromSource(command, shortcut, fileInput, defaul
178
214
  ? undefined
179
215
  : (flagRates.ivaRate ?? fileInput?.alicuotaIva ?? (usesIvaRateDefault ? defaults.defaultIvaRate : undefined)),
180
216
  ivaRateAmounts,
181
- ivaCondition: resolvedIvaCondition,
217
+ // Sin valor todavia: lo completa el padron antes de emitir (ver `ivaConditionSource`).
218
+ ivaCondition: resolvedIvaCondition ?? 'consumidor-final',
219
+ ivaConditionSource,
182
220
  paymentDueDate: pickString(commandOptions.vencimiento, commandOptions.vto, fileInput?.vencimientoPago),
183
221
  pdf: resolvePdfFlag(commandOptions, fileInput),
184
222
  pdfDescription: pickString(commandOptions.descripcion, fileInput?.descripcion),
@@ -199,30 +237,33 @@ function parseBillingCommandInputFromSource(command, shortcut, fileInput, defaul
199
237
  export function parseBillingCommandPlan(command, shortcut, defaults = {}) {
200
238
  const commandOptions = command.optsWithGlobals();
201
239
  const inputFilePath = typeof commandOptions.cargar === 'string' ? commandOptions.cargar : undefined;
202
- const fileInputSource = inputFilePath ? readJsonFile(inputFilePath) : undefined;
203
- const fileInputs = Array.isArray(fileInputSource) ? fileInputSource : [fileInputSource].filter(Boolean);
240
+ // Se lee sin asumir la forma: cada item se valida con `parseBillingJsonInput` (en un lote, por separado).
241
+ const source = inputFilePath ? readJsonFile(inputFilePath) : undefined;
242
+ const fileInputs = inputFilePath ? readBillingJsonItems(source) : [];
243
+ const isBatch = Array.isArray(source);
204
244
  if (fileInputs.length === 0) {
205
245
  const { __modeSource, ...input } = parseBillingCommandInputFromSource(command, shortcut, undefined, defaults);
206
246
  return {
207
247
  inputIndexes: [1],
208
248
  inputs: [input],
209
249
  invalidItems: [],
250
+ isBatch: false,
210
251
  modeSource: __modeSource,
211
252
  total: 1,
212
253
  };
213
254
  }
214
- // Un solo comprobante falla como siempre. En un lote se leen todos y se juntan los errores,
215
- // para informarlos de una vez en lugar de cortar en el primero.
216
- if (fileInputs.length === 1) {
217
- const { __modeSource, ...input } = parseBillingCommandInputFromSource(command, shortcut, fileInputs[0], defaults);
218
- return { inputIndexes: [1], inputs: [input], invalidItems: [], modeSource: __modeSource, total: 1 };
255
+ // Un objeto suelto falla como siempre. En un lote (un array, aunque tenga un solo elemento) se leen todos
256
+ // y se juntan los errores, para informarlos de una vez en lugar de cortar en el primero.
257
+ if (!isBatch) {
258
+ const { __modeSource, ...input } = parseBillingCommandInputFromSource(command, shortcut, parseBillingJsonInput(fileInputs[0]), defaults);
259
+ return { inputIndexes: [1], inputs: [input], invalidItems: [], isBatch: false, modeSource: __modeSource, total: 1 };
219
260
  }
220
261
  const parsed = [];
221
262
  const inputIndexes = [];
222
263
  const invalidItems = [];
223
264
  fileInputs.forEach((fileInput, position) => {
224
265
  try {
225
- parsed.push(parseBillingCommandInputFromSource(command, shortcut, fileInput, defaults));
266
+ parsed.push(parseBillingCommandInputFromSource(command, shortcut, parseBillingJsonInput(fileInput), defaults));
226
267
  inputIndexes.push(position + 1);
227
268
  }
228
269
  catch (error) {
@@ -238,6 +279,7 @@ export function parseBillingCommandPlan(command, shortcut, defaults = {}) {
238
279
  inputIndexes,
239
280
  inputs: parsed.map(({ __modeSource: _modeSource, ...input }) => input),
240
281
  invalidItems,
282
+ isBatch: true,
241
283
  modeSource,
242
284
  total: fileInputs.length,
243
285
  };
@@ -1 +1 @@
1
- {"version":3,"file":"billing.command.parser.js","sourceRoot":"","sources":["../../../src/cli/commands/billing.command.parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"billing.command.parser.js","sourceRoot":"","sources":["../../../src/cli/commands/billing.command.parser.ts"],"names":[],"mappings":"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"}
@@ -21,4 +21,4 @@ export interface PdfStepOptions {
21
21
  * Genera los PDFs de los comprobantes emitidos. Nunca lanza: el comprobante ya esta emitido, asi que un
22
22
  * error del PDF se devuelve en `pdf.error` y no cambia el codigo de salida.
23
23
  */
24
- export declare function attachPdfs(options: PdfStepOptions, deps?: PdfStepDependencies): Promise<BillingExecutionResult[]>;
24
+ export declare function attachPdfs(options: PdfStepOptions, defaultDeps?: PdfStepDependencies): Promise<BillingExecutionResult[]>;
@@ -5,7 +5,7 @@ import { canHavePdf, resolvePdfDecision } from '../../modules/pdf/pdf-decision.j
5
5
  import { resolvePdfIssuer } from '../../modules/pdf/pdf-issuer.js';
6
6
  import { exportBillingPdf, toPdfFailure } from '../../services/pdf/pdf-exporter.js';
7
7
  import { PdfPlugin } from '../../services/pdf/pdf-plugin.js';
8
- import { confirm } from '../interactive/prompts.js';
8
+ import { confirm, isPromptCancellation } from '../interactive/prompts.js';
9
9
  import { startSpinner } from '../spinner.js';
10
10
  export const PDF_ONLY_FLAGS_WARNING = '--descripcion, --receptor-nombre y --receptor-domicilio solo se usan en el PDF; no se genero ninguno.';
11
11
  export const defaultPdfStepDependencies = {
@@ -74,7 +74,22 @@ async function loadRenderer(plugin, interactive, deps) {
74
74
  * Genera los PDFs de los comprobantes emitidos. Nunca lanza: el comprobante ya esta emitido, asi que un
75
75
  * error del PDF se devuelve en `pdf.error` y no cambia el codigo de salida.
76
76
  */
77
- export async function attachPdfs(options, deps = defaultPdfStepDependencies) {
77
+ export async function attachPdfs(options, defaultDeps = defaultPdfStepDependencies) {
78
+ // El comprobante ya se emitio: Ctrl+C en una pregunta del PDF es "No", no un error del comando.
79
+ const deps = {
80
+ ...defaultDeps,
81
+ confirm: async (...args) => {
82
+ try {
83
+ return await defaultDeps.confirm(...args);
84
+ }
85
+ catch (error) {
86
+ if (isPromptCancellation(error)) {
87
+ return false;
88
+ }
89
+ throw error;
90
+ }
91
+ },
92
+ };
78
93
  const decisions = await resolveDecisions(options, deps);
79
94
  const targets = decisions.flatMap((decision, index) => (decision === 'generar' ? [index] : []));
80
95
  const outcomes = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"billing.command.pdf.js","sourceRoot":"","sources":["../../../src/cli/commands/billing.command.pdf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"billing.command.pdf.js","sourceRoot":"","sources":["../../../src/cli/commands/billing.command.pdf.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,26 @@
1
1
  import type { Command } from 'commander';
2
+ import type { BillingCommandInput } from '../../modules/billing/billing.schemas';
2
3
  import type { VoucherShortcut } from '../../modules/billing/billing.types';
3
- import type { GlobalCliOptions } from '../types';
4
- export declare function registerGlobalOptions(command: Command): void;
4
+ import type { BillingExecutionResult } from '../../modules/billing/billing.types.internal';
5
+ import type { ArcliConfig } from '../../modules/config/config.schemas';
6
+ import { writeBillingCommandResults } from './billing.command.output';
7
+ import { type BillingCommandDefaults } from './billing.command.parser';
8
+ /** Exit code cuando ARCA rechaza algun comprobante: la operacion corrio bien, pero no hay CAE. */
9
+ export declare const REJECTED_EXIT_CODE = 2;
10
+ /** 2 si ARCA rechazo alguno de los comprobantes emitidos; si no, no se toca (queda en 0). */
11
+ export declare function setExitCodeForResults(results: readonly BillingExecutionResult[]): void;
5
12
  export declare function registerBillingCommandOptions(command: Command): void;
6
- export declare function getGlobalOptions(command: Command): GlobalCliOptions;
13
+ /** Los defaults de la config que completan lo que no viene por flags ni por JSON. */
14
+ export declare function resolveBillingCommandDefaults(config: ArcliConfig): BillingCommandDefaults;
15
+ /**
16
+ * Imprime los resultados con su PDF, segun la config `pdf` o `--exportar-pdf`. Se usa con el lote completo y
17
+ * con los ya emitidos de un lote que se corto: esos tambien tienen CAE y merecen su PDF.
18
+ */
19
+ export declare function writeResultsWithPdfs(results: BillingExecutionResult[], options: {
20
+ readonly config: ArcliConfig;
21
+ /** Los del lote entero; se toman los primeros `results.length`. */
22
+ readonly inputs: readonly BillingCommandInput[];
23
+ readonly interactive: boolean;
24
+ readonly output: Parameters<typeof writeBillingCommandResults>[1];
25
+ }): Promise<void>;
7
26
  export declare function executeBillingCommand(command: Command, shortcut: VoucherShortcut): Promise<void>;
@@ -2,27 +2,60 @@ import { BillingService } from '../../modules/billing/billing.service.js';
2
2
  import { getVoucherKindByShortcut } from '../../modules/billing/voucher-kind-map.js';
3
3
  import { ArcaBillingGateway } from '../../services/arca/arca-billing.gateway.js';
4
4
  import { ArcaClientFactory } from '../../services/arca/arca-client.factory.js';
5
- import { ArcaContextResolver } from '../../services/arca/arca-context.resolver.js';
6
5
  import { ArcaFceObligationGateway } from '../../services/arca/arca-fce-obligation.gateway.js';
6
+ import { ArcaPadronGateway } from '../../services/arca/arca-padron.gateway.js';
7
+ import { certificateWarnings, resolveArcaRuntime } from '../arca-runtime.js';
8
+ import { getGlobalOptions, registerGlobalOptions } from '../global-options.js';
7
9
  import { startSpinner } from '../spinner.js';
8
- import { emitBatch, validateBatchBeforeEmitting } from './billing.command.batch.js';
10
+ import { emitBatch, prepareBatch } from './billing.command.batch.js';
9
11
  import { runInteractiveBillingPreview } from './billing.command.interactive-preview.js';
10
12
  import { writeBillingCommandResults, writePdfOutcomes } from './billing.command.output.js';
11
13
  import { parseBillingCommandPlan, registerBillingOptions } from './billing.command.parser.js';
12
14
  import { attachPdfs } from './billing.command.pdf.js';
13
- export function registerGlobalOptions(command) {
14
- command
15
- .option('--testing', 'usar entorno de testing en esta ejecucion')
16
- .option('--produccion', 'usar entorno de produccion en esta ejecucion')
17
- .option('--json', 'imprimir salida JSON')
18
- .option('--bruto', 'mostrar la respuesta bruta de ARCA cuando exista');
15
+ /** Exit code cuando ARCA rechaza algun comprobante: la operacion corrio bien, pero no hay CAE. */
16
+ export const REJECTED_EXIT_CODE = 2;
17
+ /** 2 si ARCA rechazo alguno de los comprobantes emitidos; si no, no se toca (queda en 0). */
18
+ export function setExitCodeForResults(results) {
19
+ if (results.some((result) => !result.dryRun && result.response.status === 'rechazado')) {
20
+ process.exitCode = REJECTED_EXIT_CODE;
21
+ }
19
22
  }
20
23
  export function registerBillingCommandOptions(command) {
21
24
  registerGlobalOptions(command);
22
25
  registerBillingOptions(command);
23
26
  }
24
- export function getGlobalOptions(command) {
25
- return command.optsWithGlobals();
27
+ /** Los defaults de la config que completan lo que no viene por flags ni por JSON. */
28
+ export function resolveBillingCommandDefaults(config) {
29
+ return {
30
+ defaultCbu: config.cbu,
31
+ defaultCbuAlias: config.aliasCbu,
32
+ defaultConcept: config.conceptoPorDefecto,
33
+ defaultCurrencyCode: config.monedaPorDefecto,
34
+ defaultEmit: config.output.emitirPorDefecto,
35
+ defaultExchangeRate: config.cotizacionPorDefecto,
36
+ defaultIvaCondition: config.ivaReceptorPorDefecto,
37
+ defaultIvaRate: config.alicuotaPorDefecto,
38
+ lookupIvaConditionInPadron: config.consultarPadron !== false,
39
+ };
40
+ }
41
+ /**
42
+ * Imprime los resultados con su PDF, segun la config `pdf` o `--exportar-pdf`. Se usa con el lote completo y
43
+ * con los ya emitidos de un lote que se corto: esos tambien tienen CAE y merecen su PDF.
44
+ */
45
+ export async function writeResultsWithPdfs(results, options) {
46
+ const pdfOptions = {
47
+ config: options.config,
48
+ inputs: options.inputs.slice(0, results.length),
49
+ interactive: options.interactive,
50
+ results,
51
+ };
52
+ // En JSON el PDF va dentro del mismo resultado; en texto primero se ve el CAE y despues se pregunta.
53
+ if (options.output.outputJson) {
54
+ writeBillingCommandResults(await attachPdfs(pdfOptions), options.output);
55
+ return;
56
+ }
57
+ writeBillingCommandResults(results, options.output);
58
+ writePdfOutcomes(results, await attachPdfs(pdfOptions));
26
59
  }
27
60
  async function resolveFceWarnings(inputs, service, gateway) {
28
61
  const warnings = [];
@@ -37,29 +70,38 @@ export async function executeBillingCommand(command, shortcut) {
37
70
  let spinner = null;
38
71
  const voucherKind = getVoucherKindByShortcut(shortcut);
39
72
  try {
40
- const runtime = new ArcaContextResolver({ options: globalOptions }).resolve();
41
- const plan = parseBillingCommandPlan(command, shortcut, {
42
- defaultCbu: runtime.config.cbu,
43
- defaultCbuAlias: runtime.config.aliasCbu,
44
- defaultConcept: runtime.config.conceptoPorDefecto,
45
- defaultCurrencyCode: runtime.config.monedaPorDefecto,
46
- defaultEmit: runtime.config.output.emitirPorDefecto,
47
- defaultExchangeRate: runtime.config.cotizacionPorDefecto,
48
- defaultIvaCondition: runtime.config.ivaReceptorPorDefecto,
49
- defaultIvaRate: runtime.config.alicuotaPorDefecto,
50
- });
73
+ const runtime = resolveArcaRuntime(globalOptions);
74
+ const plan = parseBillingCommandPlan(command, shortcut, resolveBillingCommandDefaults(runtime.config));
51
75
  const service = new BillingService();
52
76
  const arca = new ArcaClientFactory().create(runtime);
53
77
  const gateway = new ArcaBillingGateway(arca);
54
78
  const useRaw = typeof globalOptions.bruto === 'boolean' ? globalOptions.bruto : runtime.outputRaw;
55
- const plannedInputs = [];
56
- for (const input of plan.inputs) {
57
- plannedInputs.push(await service.resolveExchangeRate(input, gateway));
58
- }
59
- validateBatchBeforeEmitting(plan, plannedInputs, (input) => service.buildVoucherPayload(input, runtime));
60
- const warnings = runtime.config.verificarFce
79
+ const padronGateway = new ArcaPadronGateway(arca);
80
+ // En un lote, un fallo del padron o de la cotizacion sale con su indice, junto a los de validacion.
81
+ const prepared = await prepareBatch({
82
+ inputs: plan.inputs,
83
+ plan,
84
+ resolve: async (input) => {
85
+ const resolution = await service.resolveIvaConditionFromPadron(input, padronGateway);
86
+ return {
87
+ input: await service.resolveExchangeRate(resolution.input, gateway),
88
+ warnings: resolution.warnings,
89
+ };
90
+ },
91
+ validate: ({ input }) => {
92
+ service.buildVoucherPayload(input, runtime);
93
+ },
94
+ });
95
+ const plannedInputs = prepared.map(({ input }) => input);
96
+ const padronWarnings = prepared.map(({ warnings }) => warnings);
97
+ const fceWarnings = runtime.config.verificarFce
61
98
  ? await resolveFceWarnings(plannedInputs, service, new ArcaFceObligationGateway(arca))
62
99
  : [];
100
+ const warnings = plannedInputs.map((_input, position) => [
101
+ ...certificateWarnings(runtime),
102
+ ...(padronWarnings[position] ?? []),
103
+ ...(fceWarnings[position] ?? []),
104
+ ]);
63
105
  const preview = await runInteractiveBillingPreview({
64
106
  inputs: plannedInputs,
65
107
  modeSource: plan.modeSource,
@@ -77,35 +119,30 @@ export async function executeBillingCommand(command, shortcut) {
77
119
  if (spinner) {
78
120
  spinner.text = inputs.length > 1 ? `Procesando ${inputs.length} comprobantes...` : 'Procesando comprobante...';
79
121
  }
80
- const outputOptions = {
81
- environment: runtime.environment,
82
- outputJson: runtime.outputJson,
83
- previewShown,
84
- raw: useRaw,
122
+ const deliveryOptions = {
123
+ config: runtime.config,
124
+ inputs,
125
+ interactive: !runtime.outputJson && Boolean(process.stdin.isTTY && process.stdout.isTTY),
126
+ output: {
127
+ batch: plan.isBatch,
128
+ environment: runtime.environment,
129
+ outputJson: runtime.outputJson,
130
+ previewShown,
131
+ raw: useRaw,
132
+ },
85
133
  };
86
134
  const results = await emitBatch({
87
135
  emit: (input, position) => service.execute({ gateway, input, runtime, warnings: warnings[position] }),
88
136
  inputs,
89
- onPartialResults: (partial) => {
137
+ onPartialResults: async (partial) => {
90
138
  spinner?.stop();
91
- writeBillingCommandResults(partial, outputOptions);
139
+ await writeResultsWithPdfs(partial, deliveryOptions);
92
140
  },
93
141
  plan,
94
142
  });
95
143
  spinner?.stop();
96
- const pdfOptions = {
97
- config: runtime.config,
98
- inputs,
99
- interactive: !runtime.outputJson && Boolean(process.stdin.isTTY && process.stdout.isTTY),
100
- results,
101
- };
102
- // En JSON el PDF va dentro del mismo resultado; en texto primero se ve el CAE y despues se pregunta.
103
- if (runtime.outputJson) {
104
- writeBillingCommandResults(await attachPdfs(pdfOptions), outputOptions);
105
- return;
106
- }
107
- writeBillingCommandResults(results, outputOptions);
108
- writePdfOutcomes(results, await attachPdfs(pdfOptions));
144
+ setExitCodeForResults(results);
145
+ await writeResultsWithPdfs(results, deliveryOptions);
109
146
  }
110
147
  catch (error) {
111
148
  spinner?.stop();