@dainamite/billing 0.20.0 → 0.22.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 (604) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/dist/modules/billing/acl.js +13 -1
  3. package/dist/modules/billing/acl.js.map +2 -2
  4. package/dist/modules/billing/api/accounts/[id]/summary/route.js +52 -0
  5. package/dist/modules/billing/api/accounts/[id]/summary/route.js.map +7 -0
  6. package/dist/modules/billing/api/accounts/route.js +47 -4
  7. package/dist/modules/billing/api/accounts/route.js.map +2 -2
  8. package/dist/modules/billing/api/export/account/[id]/route.js +11 -7
  9. package/dist/modules/billing/api/export/account/[id]/route.js.map +2 -2
  10. package/dist/modules/billing/api/invoices/[id]/memos/route.js +54 -0
  11. package/dist/modules/billing/api/invoices/[id]/memos/route.js.map +7 -0
  12. package/dist/modules/billing/api/invoices/[id]/pdf/route.js +70 -0
  13. package/dist/modules/billing/api/invoices/[id]/pdf/route.js.map +7 -0
  14. package/dist/modules/billing/api/invoices/[id]/route.js +44 -24
  15. package/dist/modules/billing/api/invoices/[id]/route.js.map +2 -2
  16. package/dist/modules/billing/api/invoices/[id]/send/route.js +107 -0
  17. package/dist/modules/billing/api/invoices/[id]/send/route.js.map +7 -0
  18. package/dist/modules/billing/api/invoices/add-line/route.js +2 -2
  19. package/dist/modules/billing/api/invoices/add-line/route.js.map +2 -2
  20. package/dist/modules/billing/api/invoices/delete-draft/route.js +33 -0
  21. package/dist/modules/billing/api/invoices/delete-draft/route.js.map +7 -0
  22. package/dist/modules/billing/api/invoices/edit-line/route.js +2 -2
  23. package/dist/modules/billing/api/invoices/edit-line/route.js.map +2 -2
  24. package/dist/modules/billing/api/invoices/post/route.js +2 -2
  25. package/dist/modules/billing/api/invoices/post/route.js.map +2 -2
  26. package/dist/modules/billing/api/invoices/remove-line/route.js +2 -2
  27. package/dist/modules/billing/api/invoices/remove-line/route.js.map +2 -2
  28. package/dist/modules/billing/api/invoices/route.js +45 -46
  29. package/dist/modules/billing/api/invoices/route.js.map +2 -2
  30. package/dist/modules/billing/api/items/bulk/route.js +1 -1
  31. package/dist/modules/billing/api/items/bulk/route.js.map +2 -2
  32. package/dist/modules/billing/api/items/change-price/route.js +44 -0
  33. package/dist/modules/billing/api/items/change-price/route.js.map +7 -0
  34. package/dist/modules/billing/api/items/route.js +19 -7
  35. package/dist/modules/billing/api/items/route.js.map +2 -2
  36. package/dist/modules/billing/api/payment-imports/[id]/route.js +49 -0
  37. package/dist/modules/billing/api/payment-imports/[id]/route.js.map +7 -0
  38. package/dist/modules/billing/api/payment-imports/route.js +57 -0
  39. package/dist/modules/billing/api/payment-imports/route.js.map +7 -0
  40. package/dist/modules/billing/api/payments/[id]/route.js +60 -0
  41. package/dist/modules/billing/api/payments/[id]/route.js.map +7 -0
  42. package/dist/modules/billing/api/payments/allocate/route.js +35 -0
  43. package/dist/modules/billing/api/payments/allocate/route.js.map +7 -0
  44. package/dist/modules/billing/api/payments/assign/route.js +36 -0
  45. package/dist/modules/billing/api/payments/assign/route.js.map +7 -0
  46. package/dist/modules/billing/api/payments/convert-to-topup/route.js +35 -0
  47. package/dist/modules/billing/api/payments/convert-to-topup/route.js.map +7 -0
  48. package/dist/modules/billing/api/payments/ignore/route.js +35 -0
  49. package/dist/modules/billing/api/payments/ignore/route.js.map +7 -0
  50. package/dist/modules/billing/api/payments/import/route.js +63 -0
  51. package/dist/modules/billing/api/payments/import/route.js.map +7 -0
  52. package/dist/modules/billing/api/payments/restore/route.js +35 -0
  53. package/dist/modules/billing/api/payments/restore/route.js.map +7 -0
  54. package/dist/modules/billing/api/payments/route.js +114 -0
  55. package/dist/modules/billing/api/payments/route.js.map +7 -0
  56. package/dist/modules/billing/api/payments/unallocate/route.js +35 -0
  57. package/dist/modules/billing/api/payments/unallocate/route.js.map +7 -0
  58. package/dist/modules/billing/api/payments/unassign/route.js +35 -0
  59. package/dist/modules/billing/api/payments/unassign/route.js.map +7 -0
  60. package/dist/modules/billing/api/run-outcomes/route.js +43 -6
  61. package/dist/modules/billing/api/run-outcomes/route.js.map +2 -2
  62. package/dist/modules/billing/api/runs/[id]/post-drafts/route.js +61 -0
  63. package/dist/modules/billing/api/runs/[id]/post-drafts/route.js.map +7 -0
  64. package/dist/modules/billing/api/runs/[id]/route.js +53 -0
  65. package/dist/modules/billing/api/runs/[id]/route.js.map +7 -0
  66. package/dist/modules/billing/api/runs/retry-failed/route.js +1 -1
  67. package/dist/modules/billing/api/runs/retry-failed/route.js.map +2 -2
  68. package/dist/modules/billing/api/runs/route.js +9 -3
  69. package/dist/modules/billing/api/runs/route.js.map +2 -2
  70. package/dist/modules/billing/api/settings/number-preview/route.js +42 -0
  71. package/dist/modules/billing/api/settings/number-preview/route.js.map +7 -0
  72. package/dist/modules/billing/api/settings/route.js +92 -0
  73. package/dist/modules/billing/api/settings/route.js.map +7 -0
  74. package/dist/modules/billing/api/statements/route.js +3 -0
  75. package/dist/modules/billing/api/statements/route.js.map +2 -2
  76. package/dist/modules/billing/api/test-invoices/wipe/route.js +2 -2
  77. package/dist/modules/billing/api/test-invoices/wipe/route.js.map +2 -2
  78. package/dist/modules/billing/backend/billing/accounts/[id]/page.js +121 -232
  79. package/dist/modules/billing/backend/billing/accounts/[id]/page.js.map +2 -2
  80. package/dist/modules/billing/backend/billing/accounts/create/page.js +6 -0
  81. package/dist/modules/billing/backend/billing/accounts/create/page.js.map +2 -2
  82. package/dist/modules/billing/backend/billing/accounts/page.js +63 -4
  83. package/dist/modules/billing/backend/billing/accounts/page.js.map +2 -2
  84. package/dist/modules/billing/backend/billing/invoices/[id]/page.js +297 -65
  85. package/dist/modules/billing/backend/billing/invoices/[id]/page.js.map +3 -3
  86. package/dist/modules/billing/backend/billing/invoices/page.js +6 -172
  87. package/dist/modules/billing/backend/billing/invoices/page.js.map +2 -2
  88. package/dist/modules/billing/backend/billing/items/[id]/page.js +51 -7
  89. package/dist/modules/billing/backend/billing/items/[id]/page.js.map +2 -2
  90. package/dist/modules/billing/backend/billing/items/create/page.js +9 -6
  91. package/dist/modules/billing/backend/billing/items/create/page.js.map +2 -2
  92. package/dist/modules/billing/backend/billing/items/page.js +8 -2
  93. package/dist/modules/billing/backend/billing/items/page.js.map +2 -2
  94. package/dist/modules/billing/backend/billing/payments/[id]/page.js +297 -0
  95. package/dist/modules/billing/backend/billing/payments/[id]/page.js.map +7 -0
  96. package/dist/modules/billing/backend/billing/payments/[id]/page.meta.js +21 -0
  97. package/dist/modules/billing/backend/billing/payments/[id]/page.meta.js.map +7 -0
  98. package/dist/modules/billing/backend/billing/payments/imports/[id]/page.js +74 -0
  99. package/dist/modules/billing/backend/billing/payments/imports/[id]/page.js.map +7 -0
  100. package/dist/modules/billing/backend/billing/payments/imports/[id]/page.meta.js +21 -0
  101. package/dist/modules/billing/backend/billing/payments/imports/[id]/page.meta.js.map +7 -0
  102. package/dist/modules/billing/backend/billing/payments/page.js +58 -0
  103. package/dist/modules/billing/backend/billing/payments/page.js.map +7 -0
  104. package/dist/modules/billing/backend/billing/payments/page.meta.js +18 -0
  105. package/dist/modules/billing/backend/billing/payments/page.meta.js.map +7 -0
  106. package/dist/modules/billing/backend/billing/runs/[id]/page.js +49 -14
  107. package/dist/modules/billing/backend/billing/runs/[id]/page.js.map +2 -2
  108. package/dist/modules/billing/backend/billing/runs/page.js +58 -7
  109. package/dist/modules/billing/backend/billing/runs/page.js.map +2 -2
  110. package/dist/modules/billing/backend/billing/statements/[id]/page.js +61 -6
  111. package/dist/modules/billing/backend/billing/statements/[id]/page.js.map +2 -2
  112. package/dist/modules/billing/backend/billing/statements/page.js +1 -1
  113. package/dist/modules/billing/backend/billing/statements/page.js.map +2 -2
  114. package/dist/modules/billing/backend/billing/topups/page.js +1 -1
  115. package/dist/modules/billing/backend/billing/topups/page.js.map +2 -2
  116. package/dist/modules/billing/backend/billing/transactions/page.js +1 -1
  117. package/dist/modules/billing/backend/billing/transactions/page.js.map +2 -2
  118. package/dist/modules/billing/backend/billing/usage/create/page.js +3 -2
  119. package/dist/modules/billing/backend/billing/usage/create/page.js.map +2 -2
  120. package/dist/modules/billing/backend/config/billing/page.js +472 -0
  121. package/dist/modules/billing/backend/config/billing/page.js.map +7 -0
  122. package/dist/modules/billing/backend/config/billing/page.meta.js +19 -0
  123. package/dist/modules/billing/backend/config/billing/page.meta.js.map +7 -0
  124. package/dist/modules/billing/cli.js +22 -1
  125. package/dist/modules/billing/cli.js.map +2 -2
  126. package/dist/modules/billing/commands/accounts.js +6 -0
  127. package/dist/modules/billing/commands/accounts.js.map +2 -2
  128. package/dist/modules/billing/commands/index.js +3 -0
  129. package/dist/modules/billing/commands/index.js.map +2 -2
  130. package/dist/modules/billing/commands/invoices.js +269 -167
  131. package/dist/modules/billing/commands/invoices.js.map +2 -2
  132. package/dist/modules/billing/commands/items.js +108 -0
  133. package/dist/modules/billing/commands/items.js.map +2 -2
  134. package/dist/modules/billing/commands/memos.js +179 -0
  135. package/dist/modules/billing/commands/memos.js.map +7 -0
  136. package/dist/modules/billing/commands/payments.js +379 -0
  137. package/dist/modules/billing/commands/payments.js.map +7 -0
  138. package/dist/modules/billing/commands/runs.js +151 -4
  139. package/dist/modules/billing/commands/runs.js.map +2 -2
  140. package/dist/modules/billing/commands/settings.js +59 -0
  141. package/dist/modules/billing/commands/settings.js.map +7 -0
  142. package/dist/modules/billing/commands/topups.js +9 -2
  143. package/dist/modules/billing/commands/topups.js.map +2 -2
  144. package/dist/modules/billing/commands/transactions.js +2 -2
  145. package/dist/modules/billing/commands/transactions.js.map +2 -2
  146. package/dist/modules/billing/components/AccountForm.js +149 -42
  147. package/dist/modules/billing/components/AccountForm.js.map +2 -2
  148. package/dist/modules/billing/components/AccountInvoicesSection.js +64 -0
  149. package/dist/modules/billing/components/AccountInvoicesSection.js.map +7 -0
  150. package/dist/modules/billing/components/AccountPaymentsSection.js +43 -0
  151. package/dist/modules/billing/components/AccountPaymentsSection.js.map +7 -0
  152. package/dist/modules/billing/components/AccountPicker.js +56 -0
  153. package/dist/modules/billing/components/AccountPicker.js.map +7 -0
  154. package/dist/modules/billing/components/AllocatePaymentDialog.js +134 -0
  155. package/dist/modules/billing/components/AllocatePaymentDialog.js.map +7 -0
  156. package/dist/modules/billing/components/BillingDataTable.js +21 -0
  157. package/dist/modules/billing/components/BillingDataTable.js.map +7 -0
  158. package/dist/modules/billing/components/BillingSettingsLink.js +19 -0
  159. package/dist/modules/billing/components/BillingSettingsLink.js.map +7 -0
  160. package/dist/modules/billing/components/ChangeItemPriceDialog.js +158 -0
  161. package/dist/modules/billing/components/ChangeItemPriceDialog.js.map +7 -0
  162. package/dist/modules/billing/components/CreateMemoDialog.js +200 -0
  163. package/dist/modules/billing/components/CreateMemoDialog.js.map +7 -0
  164. package/dist/modules/billing/components/CustomerLabel.js +33 -0
  165. package/dist/modules/billing/components/CustomerLabel.js.map +7 -0
  166. package/dist/modules/billing/components/InvoicesTable.js +270 -0
  167. package/dist/modules/billing/components/InvoicesTable.js.map +7 -0
  168. package/dist/modules/billing/components/ItemForm.js +176 -44
  169. package/dist/modules/billing/components/ItemForm.js.map +2 -2
  170. package/dist/modules/billing/components/ItemPriceField.js +46 -0
  171. package/dist/modules/billing/components/ItemPriceField.js.map +7 -0
  172. package/dist/modules/billing/components/LineFormDialog.js +25 -2
  173. package/dist/modules/billing/components/LineFormDialog.js.map +2 -2
  174. package/dist/modules/billing/components/ManualPaymentDialog.js +122 -0
  175. package/dist/modules/billing/components/ManualPaymentDialog.js.map +7 -0
  176. package/dist/modules/billing/components/MoneyInput.js +14 -0
  177. package/dist/modules/billing/components/MoneyInput.js.map +7 -0
  178. package/dist/modules/billing/components/PaymentUploadDialog.js +115 -0
  179. package/dist/modules/billing/components/PaymentUploadDialog.js.map +7 -0
  180. package/dist/modules/billing/components/PaymentsTable.js +171 -0
  181. package/dist/modules/billing/components/PaymentsTable.js.map +7 -0
  182. package/dist/modules/billing/components/PostRunDraftsButton.js +105 -0
  183. package/dist/modules/billing/components/PostRunDraftsButton.js.map +7 -0
  184. package/dist/modules/billing/components/PrepaidPanel.js +14 -4
  185. package/dist/modules/billing/components/PrepaidPanel.js.map +2 -2
  186. package/dist/modules/billing/components/RunCyclesSection.js +209 -0
  187. package/dist/modules/billing/components/RunCyclesSection.js.map +7 -0
  188. package/dist/modules/billing/components/TestRunActions.js +127 -0
  189. package/dist/modules/billing/components/TestRunActions.js.map +7 -0
  190. package/dist/modules/billing/components/account/AccountItemsTab.js +157 -0
  191. package/dist/modules/billing/components/account/AccountItemsTab.js.map +7 -0
  192. package/dist/modules/billing/components/account/AccountRunBillingDialog.js +122 -0
  193. package/dist/modules/billing/components/account/AccountRunBillingDialog.js.map +7 -0
  194. package/dist/modules/billing/components/account/AccountRunsTab.js +152 -0
  195. package/dist/modules/billing/components/account/AccountRunsTab.js.map +7 -0
  196. package/dist/modules/billing/components/account/AccountStatementsTab.js +98 -0
  197. package/dist/modules/billing/components/account/AccountStatementsTab.js.map +7 -0
  198. package/dist/modules/billing/components/account/AccountSummaryCards.js +125 -0
  199. package/dist/modules/billing/components/account/AccountSummaryCards.js.map +7 -0
  200. package/dist/modules/billing/components/account/AccountUsageTab.js +91 -0
  201. package/dist/modules/billing/components/account/AccountUsageTab.js.map +7 -0
  202. package/dist/modules/billing/components/account/AccountView.js +73 -0
  203. package/dist/modules/billing/components/account/AccountView.js.map +7 -0
  204. package/dist/modules/billing/components/account/accountRow.js +39 -0
  205. package/dist/modules/billing/components/account/accountRow.js.map +7 -0
  206. package/dist/modules/billing/components/customerNames.js +42 -0
  207. package/dist/modules/billing/components/customerNames.js.map +7 -0
  208. package/dist/modules/billing/data/entities.js +560 -4
  209. package/dist/modules/billing/data/entities.js.map +2 -2
  210. package/dist/modules/billing/data/entityIds.js +10 -1
  211. package/dist/modules/billing/data/entityIds.js.map +2 -2
  212. package/dist/modules/billing/data/validators.js +269 -15
  213. package/dist/modules/billing/data/validators.js.map +2 -2
  214. package/dist/modules/billing/events.js +50 -0
  215. package/dist/modules/billing/events.js.map +2 -2
  216. package/dist/modules/billing/i18n/de.json +880 -0
  217. package/dist/modules/billing/i18n/en.json +457 -21
  218. package/dist/modules/billing/i18n/es.json +880 -0
  219. package/dist/modules/billing/i18n/pl.json +458 -22
  220. package/dist/modules/billing/index.js +6 -2
  221. package/dist/modules/billing/index.js.map +2 -2
  222. package/dist/modules/billing/lib/accountFinancials.js +58 -0
  223. package/dist/modules/billing/lib/accountFinancials.js.map +7 -0
  224. package/dist/modules/billing/lib/accountLock.js +14 -0
  225. package/dist/modules/billing/lib/accountLock.js.map +7 -0
  226. package/dist/modules/billing/lib/accountStatus.js +9 -7
  227. package/dist/modules/billing/lib/accountStatus.js.map +2 -2
  228. package/dist/modules/billing/lib/accountSummary.js +106 -0
  229. package/dist/modules/billing/lib/accountSummary.js.map +7 -0
  230. package/dist/modules/billing/lib/allocation.js +356 -0
  231. package/dist/modules/billing/lib/allocation.js.map +7 -0
  232. package/dist/modules/billing/lib/allocationEvents.js +22 -0
  233. package/dist/modules/billing/lib/allocationEvents.js.map +7 -0
  234. package/dist/modules/billing/lib/billPeriod.js +15 -1
  235. package/dist/modules/billing/lib/billPeriod.js.map +2 -2
  236. package/dist/modules/billing/lib/billRunEngine.js +237 -102
  237. package/dist/modules/billing/lib/billRunEngine.js.map +2 -2
  238. package/dist/modules/billing/lib/billingSettings.js +116 -0
  239. package/dist/modules/billing/lib/billingSettings.js.map +7 -0
  240. package/dist/modules/billing/lib/commandRoute.js +81 -0
  241. package/dist/modules/billing/lib/commandRoute.js.map +7 -0
  242. package/dist/modules/billing/lib/customerLookup.js +97 -0
  243. package/dist/modules/billing/lib/customerLookup.js.map +7 -0
  244. package/dist/modules/billing/lib/dateOnly.js +13 -0
  245. package/dist/modules/billing/lib/dateOnly.js.map +7 -0
  246. package/dist/modules/billing/lib/documentParties.js +16 -0
  247. package/dist/modules/billing/lib/documentParties.js.map +7 -0
  248. package/dist/modules/billing/lib/documentTypes.js +27 -0
  249. package/dist/modules/billing/lib/documentTypes.js.map +7 -0
  250. package/dist/modules/billing/lib/dueDate.js +18 -0
  251. package/dist/modules/billing/lib/dueDate.js.map +7 -0
  252. package/dist/modules/billing/lib/iban.js +29 -0
  253. package/dist/modules/billing/lib/iban.js.map +7 -0
  254. package/dist/modules/billing/lib/invoiceDelivery.js +133 -0
  255. package/dist/modules/billing/lib/invoiceDelivery.js.map +7 -0
  256. package/dist/modules/billing/lib/invoiceLanguages.js +28 -0
  257. package/dist/modules/billing/lib/invoiceLanguages.js.map +7 -0
  258. package/dist/modules/billing/lib/invoiceWriter.js +107 -99
  259. package/dist/modules/billing/lib/invoiceWriter.js.map +2 -2
  260. package/dist/modules/billing/lib/itemBillingState.js +27 -0
  261. package/dist/modules/billing/lib/itemBillingState.js.map +7 -0
  262. package/dist/modules/billing/lib/itemPriceChange.js +18 -0
  263. package/dist/modules/billing/lib/itemPriceChange.js.map +7 -0
  264. package/dist/modules/billing/lib/itemSelector.js.map +2 -2
  265. package/dist/modules/billing/lib/lineAmounts.js +32 -0
  266. package/dist/modules/billing/lib/lineAmounts.js.map +7 -0
  267. package/dist/modules/billing/lib/memoGuards.js +25 -0
  268. package/dist/modules/billing/lib/memoGuards.js.map +7 -0
  269. package/dist/modules/billing/lib/navigation.js +48 -0
  270. package/dist/modules/billing/lib/navigation.js.map +7 -0
  271. package/dist/modules/billing/lib/numbering.js +120 -0
  272. package/dist/modules/billing/lib/numbering.js.map +7 -0
  273. package/dist/modules/billing/lib/overdue.js +36 -0
  274. package/dist/modules/billing/lib/overdue.js.map +7 -0
  275. package/dist/modules/billing/lib/paymentCsv.js +125 -0
  276. package/dist/modules/billing/lib/paymentCsv.js.map +7 -0
  277. package/dist/modules/billing/lib/paymentGateway.js +15 -0
  278. package/dist/modules/billing/lib/paymentGateway.js.map +7 -0
  279. package/dist/modules/billing/lib/paymentImport.js +164 -0
  280. package/dist/modules/billing/lib/paymentImport.js.map +7 -0
  281. package/dist/modules/billing/lib/paymentMatcher.js +36 -0
  282. package/dist/modules/billing/lib/paymentMatcher.js.map +7 -0
  283. package/dist/modules/billing/lib/pdf/attachmentStore.js +46 -0
  284. package/dist/modules/billing/lib/pdf/attachmentStore.js.map +7 -0
  285. package/dist/modules/billing/lib/pdf/fonts/embeddedFonts.js +7 -0
  286. package/dist/modules/billing/lib/pdf/fonts/embeddedFonts.js.map +7 -0
  287. package/dist/modules/billing/lib/pdf/invoiceModel.js +194 -0
  288. package/dist/modules/billing/lib/pdf/invoiceModel.js.map +7 -0
  289. package/dist/modules/billing/lib/pdf/invoicePdf.js +165 -0
  290. package/dist/modules/billing/lib/pdf/invoicePdf.js.map +7 -0
  291. package/dist/modules/billing/lib/pdf/invoiceTemplate.js +276 -0
  292. package/dist/modules/billing/lib/pdf/invoiceTemplate.js.map +7 -0
  293. package/dist/modules/billing/lib/prepaidConfig.js +17 -25
  294. package/dist/modules/billing/lib/prepaidConfig.js.map +2 -2
  295. package/dist/modules/billing/lib/prepaidConsume.js +26 -7
  296. package/dist/modules/billing/lib/prepaidConsume.js.map +2 -2
  297. package/dist/modules/billing/lib/prepaidPeriodClose.js +277 -158
  298. package/dist/modules/billing/lib/prepaidPeriodClose.js.map +2 -2
  299. package/dist/modules/billing/lib/prepaidTaxPoint.js +37 -0
  300. package/dist/modules/billing/lib/prepaidTaxPoint.js.map +7 -0
  301. package/dist/modules/billing/lib/seeds/demo.js +51 -3
  302. package/dist/modules/billing/lib/seeds/demo.js.map +2 -2
  303. package/dist/modules/billing/lib/seeds/paymentsSample.js +93 -0
  304. package/dist/modules/billing/lib/seeds/paymentsSample.js.map +7 -0
  305. package/dist/modules/billing/lib/seeds/sellerSettings.js +41 -0
  306. package/dist/modules/billing/lib/seeds/sellerSettings.js.map +7 -0
  307. package/dist/modules/billing/lib/servicePeriods.js +121 -0
  308. package/dist/modules/billing/lib/servicePeriods.js.map +7 -0
  309. package/dist/modules/billing/lib/testRunCleanup.js +24 -0
  310. package/dist/modules/billing/lib/testRunCleanup.js.map +7 -0
  311. package/dist/modules/billing/lib/topupCapture.js +2 -2
  312. package/dist/modules/billing/lib/topupCapture.js.map +2 -2
  313. package/dist/modules/billing/lib/topupReceipt.js +58 -79
  314. package/dist/modules/billing/lib/topupReceipt.js.map +2 -2
  315. package/dist/modules/billing/lib/usageRater.js.map +1 -1
  316. package/dist/modules/billing/lib/usageRunner.js +14 -6
  317. package/dist/modules/billing/lib/usageRunner.js.map +2 -2
  318. package/dist/modules/billing/lib/vat.js +39 -0
  319. package/dist/modules/billing/lib/vat.js.map +7 -0
  320. package/dist/modules/billing/migrations/Migration20261114000000_billing_customer_kind.js +15 -0
  321. package/dist/modules/billing/migrations/Migration20261114000000_billing_customer_kind.js.map +7 -0
  322. package/dist/modules/billing/migrations/Migration20261114100000_billing_cycle_semantics.js +25 -0
  323. package/dist/modules/billing/migrations/Migration20261114100000_billing_cycle_semantics.js.map +7 -0
  324. package/dist/modules/billing/migrations/Migration20261115000000_billing_invoice_ledger.js +115 -0
  325. package/dist/modules/billing/migrations/Migration20261115000000_billing_invoice_ledger.js.map +7 -0
  326. package/dist/modules/billing/migrations/Migration20261116000000_billing_invoice_documents.js +47 -0
  327. package/dist/modules/billing/migrations/Migration20261116000000_billing_invoice_documents.js.map +7 -0
  328. package/dist/modules/billing/migrations/Migration20261117000000_billing_payments.js +89 -0
  329. package/dist/modules/billing/migrations/Migration20261117000000_billing_payments.js.map +7 -0
  330. package/dist/modules/billing/migrations/Migration20261118000000_billing_memos.js +17 -0
  331. package/dist/modules/billing/migrations/Migration20261118000000_billing_memos.js.map +7 -0
  332. package/dist/modules/billing/migrations/Migration20261119000000_billing_operator_feedback.js +27 -0
  333. package/dist/modules/billing/migrations/Migration20261119000000_billing_operator_feedback.js.map +7 -0
  334. package/dist/modules/billing/migrations/Migration20261120000000_billing_allocation_scope_indexes.js +29 -0
  335. package/dist/modules/billing/migrations/Migration20261120000000_billing_allocation_scope_indexes.js.map +7 -0
  336. package/dist/modules/billing/setup.js +7 -184
  337. package/dist/modules/billing/setup.js.map +2 -2
  338. package/dist/modules/billing/subscribers/credit-memo-auto-send.js +16 -0
  339. package/dist/modules/billing/subscribers/credit-memo-auto-send.js.map +7 -0
  340. package/dist/modules/billing/subscribers/debit-memo-apply-credit.js +16 -0
  341. package/dist/modules/billing/subscribers/debit-memo-apply-credit.js.map +7 -0
  342. package/dist/modules/billing/subscribers/debit-memo-auto-send.js +16 -0
  343. package/dist/modules/billing/subscribers/debit-memo-auto-send.js.map +7 -0
  344. package/dist/modules/billing/subscribers/invoice-apply-credit.js +34 -0
  345. package/dist/modules/billing/subscribers/invoice-apply-credit.js.map +7 -0
  346. package/dist/modules/billing/subscribers/invoice-auto-send.js +30 -0
  347. package/dist/modules/billing/subscribers/invoice-auto-send.js.map +7 -0
  348. package/dist/modules/billing/subscribers/payment-captured-to-paid.js +69 -33
  349. package/dist/modules/billing/subscribers/payment-captured-to-paid.js.map +2 -2
  350. package/dist/modules/billing/subscribers/prepaid-topup-captured.js +4 -6
  351. package/dist/modules/billing/subscribers/prepaid-topup-captured.js.map +2 -2
  352. package/generated/entities/billing_account/index.ts +3 -0
  353. package/generated/entities/billing_allocation/index.ts +18 -0
  354. package/generated/entities/billing_document_sequence/index.ts +11 -0
  355. package/generated/entities/billing_invoice/index.ts +38 -0
  356. package/generated/entities/billing_invoice_line/index.ts +24 -0
  357. package/generated/entities/billing_item/index.ts +4 -0
  358. package/generated/entities/billing_payment/index.ts +25 -0
  359. package/generated/entities/billing_payment_import/index.ts +14 -0
  360. package/generated/entities/billing_run/index.ts +0 -1
  361. package/generated/entities/billing_run_outcome/index.ts +1 -0
  362. package/generated/entities/billing_settings/index.ts +26 -0
  363. package/generated/entities/billing_statement/index.ts +1 -0
  364. package/generated/entities.ids.generated.ts +7 -0
  365. package/package.json +5 -1
  366. package/src/modules/billing/__integration__/TC-BILL-004.spec.ts +171 -0
  367. package/src/modules/billing/__integration__/TC-BILL-005.spec.ts +134 -0
  368. package/src/modules/billing/__integration__/TC-BILL-006.spec.ts +101 -0
  369. package/src/modules/billing/__integration__/TC-BILL-007.spec.ts +140 -0
  370. package/src/modules/billing/__integration__/TC-BILL-008.spec.ts +108 -0
  371. package/src/modules/billing/__integration__/TC-BILL-009.spec.ts +113 -0
  372. package/src/modules/billing/__integration__/TC-BILL-010.spec.ts +118 -0
  373. package/src/modules/billing/__integration__/TC-BILL-011.spec.ts +142 -0
  374. package/src/modules/billing/__integration__/TC-BILL-012.spec.ts +115 -0
  375. package/src/modules/billing/__integration__/TC-BILL-013.spec.ts +118 -0
  376. package/src/modules/billing/__integration__/sellerSettings.ts +24 -0
  377. package/src/modules/billing/__tests__/commands/invoices.test.ts +436 -354
  378. package/src/modules/billing/__tests__/commands/itemsBulk.test.ts +33 -0
  379. package/src/modules/billing/__tests__/commands/memos.test.ts +205 -0
  380. package/src/modules/billing/__tests__/commands/payments.test.ts +241 -0
  381. package/src/modules/billing/__tests__/commands/runsDelete.test.ts +146 -0
  382. package/src/modules/billing/__tests__/commands/runsPostDrafts.test.ts +106 -0
  383. package/src/modules/billing/__tests__/commands/topups.test.ts +11 -0
  384. package/src/modules/billing/__tests__/entityRegistry.test.ts +8 -1
  385. package/src/modules/billing/__tests__/helpers/prepaidMockEm.ts +28 -11
  386. package/src/modules/billing/__tests__/i18n/dictionaries.test.ts +64 -0
  387. package/src/modules/billing/__tests__/lib/accountFinancials.test.ts +53 -0
  388. package/src/modules/billing/__tests__/lib/accountSummary.test.ts +97 -0
  389. package/src/modules/billing/__tests__/lib/allocation.test.ts +319 -0
  390. package/src/modules/billing/__tests__/lib/billRunEngine.test.ts +228 -17
  391. package/src/modules/billing/__tests__/lib/billingSettings.test.ts +109 -0
  392. package/src/modules/billing/__tests__/lib/customerLookup.test.ts +156 -0
  393. package/src/modules/billing/__tests__/lib/dueDate.test.ts +35 -0
  394. package/src/modules/billing/__tests__/lib/iban.test.ts +38 -0
  395. package/src/modules/billing/__tests__/lib/invoiceDelivery.test.ts +206 -0
  396. package/src/modules/billing/__tests__/lib/invoiceLanguages.test.ts +49 -0
  397. package/src/modules/billing/__tests__/lib/invoiceWriter.test.ts +212 -10
  398. package/src/modules/billing/__tests__/lib/itemBillingState.test.ts +42 -0
  399. package/src/modules/billing/__tests__/lib/itemPriceChange.test.ts +165 -0
  400. package/src/modules/billing/__tests__/lib/lineAmounts.test.ts +86 -0
  401. package/src/modules/billing/__tests__/lib/navigation.test.ts +71 -0
  402. package/src/modules/billing/__tests__/lib/numbering.test.ts +91 -0
  403. package/src/modules/billing/__tests__/lib/overdue.test.ts +36 -0
  404. package/src/modules/billing/__tests__/lib/paymentCsv.test.ts +148 -0
  405. package/src/modules/billing/__tests__/lib/paymentImport.test.ts +113 -0
  406. package/src/modules/billing/__tests__/lib/paymentsSample.test.ts +73 -0
  407. package/src/modules/billing/__tests__/lib/pdf/invoicePdf.test.ts +269 -0
  408. package/src/modules/billing/__tests__/lib/pdf/invoicePdfService.test.ts +147 -0
  409. package/src/modules/billing/__tests__/lib/prepaidPeriodClose.test.ts +374 -98
  410. package/src/modules/billing/__tests__/lib/prepaidTaxPoint.test.ts +118 -0
  411. package/src/modules/billing/__tests__/lib/seedsDemo.test.ts +53 -2
  412. package/src/modules/billing/__tests__/lib/sellerSettings.test.ts +28 -0
  413. package/src/modules/billing/__tests__/lib/servicePeriods.test.ts +190 -0
  414. package/src/modules/billing/__tests__/lib/topupCapture.test.ts +6 -28
  415. package/src/modules/billing/__tests__/lib/topupReceipt.test.ts +21 -52
  416. package/src/modules/billing/__tests__/lib/vat.test.ts +51 -0
  417. package/src/modules/billing/__tests__/package-isolation.test.ts +22 -8
  418. package/src/modules/billing/__tests__/setup.test.ts +13 -4
  419. package/src/modules/billing/__tests__/validators.test.ts +197 -3
  420. package/src/modules/billing/acl.ts +12 -0
  421. package/src/modules/billing/api/accounts/[id]/summary/route.ts +62 -0
  422. package/src/modules/billing/api/accounts/route.ts +59 -4
  423. package/src/modules/billing/api/export/account/[id]/route.ts +13 -11
  424. package/src/modules/billing/api/invoices/[id]/memos/route.ts +63 -0
  425. package/src/modules/billing/api/invoices/[id]/pdf/route.ts +80 -0
  426. package/src/modules/billing/api/invoices/[id]/route.ts +57 -70
  427. package/src/modules/billing/api/invoices/[id]/send/route.ts +127 -0
  428. package/src/modules/billing/api/invoices/add-line/route.ts +2 -2
  429. package/src/modules/billing/api/invoices/delete-draft/route.ts +33 -0
  430. package/src/modules/billing/api/invoices/edit-line/route.ts +2 -2
  431. package/src/modules/billing/api/invoices/post/route.ts +7 -6
  432. package/src/modules/billing/api/invoices/remove-line/route.ts +2 -2
  433. package/src/modules/billing/api/invoices/route.ts +81 -86
  434. package/src/modules/billing/api/items/bulk/route.ts +2 -1
  435. package/src/modules/billing/api/items/change-price/route.ts +54 -0
  436. package/src/modules/billing/api/items/route.ts +23 -7
  437. package/src/modules/billing/api/payment-imports/[id]/route.ts +49 -0
  438. package/src/modules/billing/api/payment-imports/route.ts +57 -0
  439. package/src/modules/billing/api/payments/[id]/route.ts +63 -0
  440. package/src/modules/billing/api/payments/allocate/route.ts +35 -0
  441. package/src/modules/billing/api/payments/assign/route.ts +36 -0
  442. package/src/modules/billing/api/payments/convert-to-topup/route.ts +35 -0
  443. package/src/modules/billing/api/payments/ignore/route.ts +35 -0
  444. package/src/modules/billing/api/payments/import/route.ts +72 -0
  445. package/src/modules/billing/api/payments/restore/route.ts +35 -0
  446. package/src/modules/billing/api/payments/route.ts +147 -0
  447. package/src/modules/billing/api/payments/unallocate/route.ts +35 -0
  448. package/src/modules/billing/api/payments/unassign/route.ts +35 -0
  449. package/src/modules/billing/api/run-outcomes/route.ts +49 -6
  450. package/src/modules/billing/api/runs/[id]/post-drafts/route.ts +71 -0
  451. package/src/modules/billing/api/runs/[id]/route.ts +59 -0
  452. package/src/modules/billing/api/runs/retry-failed/route.ts +2 -1
  453. package/src/modules/billing/api/runs/route.ts +15 -7
  454. package/src/modules/billing/api/settings/number-preview/route.ts +46 -0
  455. package/src/modules/billing/api/settings/route.ts +116 -0
  456. package/src/modules/billing/api/statements/route.ts +5 -0
  457. package/src/modules/billing/api/test-invoices/wipe/route.ts +2 -2
  458. package/src/modules/billing/backend/billing/accounts/[id]/page.tsx +151 -372
  459. package/src/modules/billing/backend/billing/accounts/create/page.tsx +6 -0
  460. package/src/modules/billing/backend/billing/accounts/page.tsx +70 -4
  461. package/src/modules/billing/backend/billing/invoices/[id]/page.tsx +444 -95
  462. package/src/modules/billing/backend/billing/invoices/page.tsx +8 -227
  463. package/src/modules/billing/backend/billing/items/[id]/page.tsx +75 -6
  464. package/src/modules/billing/backend/billing/items/create/page.tsx +13 -8
  465. package/src/modules/billing/backend/billing/items/page.tsx +18 -2
  466. package/src/modules/billing/backend/billing/payments/[id]/page.meta.ts +19 -0
  467. package/src/modules/billing/backend/billing/payments/[id]/page.tsx +415 -0
  468. package/src/modules/billing/backend/billing/payments/imports/[id]/page.meta.ts +19 -0
  469. package/src/modules/billing/backend/billing/payments/imports/[id]/page.tsx +106 -0
  470. package/src/modules/billing/backend/billing/payments/page.meta.ts +16 -0
  471. package/src/modules/billing/backend/billing/payments/page.tsx +56 -0
  472. package/src/modules/billing/backend/billing/runs/[id]/page.tsx +49 -18
  473. package/src/modules/billing/backend/billing/runs/page.tsx +59 -8
  474. package/src/modules/billing/backend/billing/statements/[id]/page.tsx +86 -5
  475. package/src/modules/billing/backend/billing/statements/page.tsx +1 -1
  476. package/src/modules/billing/backend/billing/topups/page.tsx +1 -1
  477. package/src/modules/billing/backend/billing/transactions/page.tsx +1 -1
  478. package/src/modules/billing/backend/billing/usage/create/page.tsx +3 -2
  479. package/src/modules/billing/backend/config/billing/page.meta.ts +21 -0
  480. package/src/modules/billing/backend/config/billing/page.tsx +549 -0
  481. package/src/modules/billing/cli.ts +31 -1
  482. package/src/modules/billing/commands/accounts.ts +6 -0
  483. package/src/modules/billing/commands/index.ts +3 -0
  484. package/src/modules/billing/commands/invoices.ts +364 -231
  485. package/src/modules/billing/commands/items.ts +143 -0
  486. package/src/modules/billing/commands/memos.ts +218 -0
  487. package/src/modules/billing/commands/payments.ts +428 -0
  488. package/src/modules/billing/commands/runs.ts +205 -3
  489. package/src/modules/billing/commands/settings.ts +77 -0
  490. package/src/modules/billing/commands/topups.ts +12 -3
  491. package/src/modules/billing/commands/transactions.ts +2 -2
  492. package/src/modules/billing/components/AccountForm.tsx +199 -53
  493. package/src/modules/billing/components/AccountInvoicesSection.tsx +75 -0
  494. package/src/modules/billing/components/AccountPaymentsSection.tsx +42 -0
  495. package/src/modules/billing/components/AccountPicker.tsx +70 -0
  496. package/src/modules/billing/components/AllocatePaymentDialog.tsx +167 -0
  497. package/src/modules/billing/components/BillingDataTable.tsx +34 -0
  498. package/src/modules/billing/components/BillingSettingsLink.tsx +25 -0
  499. package/src/modules/billing/components/ChangeItemPriceDialog.tsx +180 -0
  500. package/src/modules/billing/components/CreateMemoDialog.tsx +232 -0
  501. package/src/modules/billing/components/CustomerLabel.tsx +53 -0
  502. package/src/modules/billing/components/InvoicesTable.tsx +344 -0
  503. package/src/modules/billing/components/ItemForm.tsx +233 -44
  504. package/src/modules/billing/components/ItemPriceField.tsx +81 -0
  505. package/src/modules/billing/components/LineFormDialog.tsx +25 -1
  506. package/src/modules/billing/components/ManualPaymentDialog.tsx +140 -0
  507. package/src/modules/billing/components/MoneyInput.tsx +26 -0
  508. package/src/modules/billing/components/PaymentUploadDialog.tsx +148 -0
  509. package/src/modules/billing/components/PaymentsTable.tsx +213 -0
  510. package/src/modules/billing/components/PostRunDraftsButton.tsx +129 -0
  511. package/src/modules/billing/components/PrepaidPanel.tsx +19 -6
  512. package/src/modules/billing/components/RunCyclesSection.tsx +298 -0
  513. package/src/modules/billing/components/TestRunActions.tsx +152 -0
  514. package/src/modules/billing/components/account/AccountItemsTab.tsx +192 -0
  515. package/src/modules/billing/components/account/AccountRunBillingDialog.tsx +147 -0
  516. package/src/modules/billing/components/account/AccountRunsTab.tsx +201 -0
  517. package/src/modules/billing/components/account/AccountStatementsTab.tsx +120 -0
  518. package/src/modules/billing/components/account/AccountSummaryCards.tsx +153 -0
  519. package/src/modules/billing/components/account/AccountUsageTab.tsx +122 -0
  520. package/src/modules/billing/components/account/AccountView.tsx +101 -0
  521. package/src/modules/billing/components/account/accountRow.ts +70 -0
  522. package/src/modules/billing/components/customerNames.ts +62 -0
  523. package/src/modules/billing/data/entities.ts +656 -6
  524. package/src/modules/billing/data/entityIds.ts +9 -0
  525. package/src/modules/billing/data/validators.ts +388 -8
  526. package/src/modules/billing/events.ts +56 -3
  527. package/src/modules/billing/i18n/de.json +880 -0
  528. package/src/modules/billing/i18n/en.json +457 -21
  529. package/src/modules/billing/i18n/es.json +880 -0
  530. package/src/modules/billing/i18n/pl.json +458 -22
  531. package/src/modules/billing/index.ts +6 -2
  532. package/src/modules/billing/lib/accountFinancials.ts +84 -0
  533. package/src/modules/billing/lib/accountLock.ts +32 -0
  534. package/src/modules/billing/lib/accountStatus.ts +11 -9
  535. package/src/modules/billing/lib/accountSummary.ts +172 -0
  536. package/src/modules/billing/lib/allocation.ts +515 -0
  537. package/src/modules/billing/lib/allocationEvents.ts +26 -0
  538. package/src/modules/billing/lib/billPeriod.ts +19 -0
  539. package/src/modules/billing/lib/billRunEngine.ts +350 -150
  540. package/src/modules/billing/lib/billingSettings.ts +145 -0
  541. package/src/modules/billing/lib/commandRoute.ts +112 -0
  542. package/src/modules/billing/lib/customerLookup.ts +157 -0
  543. package/src/modules/billing/lib/dateOnly.ts +22 -0
  544. package/src/modules/billing/lib/documentParties.ts +23 -0
  545. package/src/modules/billing/lib/documentTypes.ts +37 -0
  546. package/src/modules/billing/lib/dueDate.ts +26 -0
  547. package/src/modules/billing/lib/iban.ts +36 -0
  548. package/src/modules/billing/lib/invoiceDelivery.ts +196 -0
  549. package/src/modules/billing/lib/invoiceLanguages.ts +57 -0
  550. package/src/modules/billing/lib/invoiceWriter.ts +162 -148
  551. package/src/modules/billing/lib/itemBillingState.ts +67 -0
  552. package/src/modules/billing/lib/itemPriceChange.ts +56 -0
  553. package/src/modules/billing/lib/itemSelector.ts +4 -1
  554. package/src/modules/billing/lib/lineAmounts.ts +61 -0
  555. package/src/modules/billing/lib/memoGuards.ts +41 -0
  556. package/src/modules/billing/lib/navigation.ts +64 -0
  557. package/src/modules/billing/lib/numbering.ts +174 -0
  558. package/src/modules/billing/lib/overdue.ts +60 -0
  559. package/src/modules/billing/lib/paymentCsv.ts +171 -0
  560. package/src/modules/billing/lib/paymentGateway.ts +52 -0
  561. package/src/modules/billing/lib/paymentImport.ts +228 -0
  562. package/src/modules/billing/lib/paymentMatcher.ts +88 -0
  563. package/src/modules/billing/lib/pdf/attachmentStore.ts +60 -0
  564. package/src/modules/billing/lib/pdf/fonts/NotoSans-Bold.ttf +0 -0
  565. package/src/modules/billing/lib/pdf/fonts/NotoSans-Regular.ttf +0 -0
  566. package/src/modules/billing/lib/pdf/fonts/OFL.txt +93 -0
  567. package/src/modules/billing/lib/pdf/fonts/embeddedFonts.ts +9 -0
  568. package/src/modules/billing/lib/pdf/invoiceModel.ts +329 -0
  569. package/src/modules/billing/lib/pdf/invoicePdf.ts +220 -0
  570. package/src/modules/billing/lib/pdf/invoiceTemplate.ts +338 -0
  571. package/src/modules/billing/lib/prepaidConfig.ts +27 -36
  572. package/src/modules/billing/lib/prepaidConsume.ts +29 -6
  573. package/src/modules/billing/lib/prepaidPeriodClose.ts +407 -239
  574. package/src/modules/billing/lib/prepaidTaxPoint.ts +76 -0
  575. package/src/modules/billing/lib/seeds/demo.ts +79 -6
  576. package/src/modules/billing/lib/seeds/paymentsSample.ts +136 -0
  577. package/src/modules/billing/lib/seeds/sellerSettings.ts +78 -0
  578. package/src/modules/billing/lib/servicePeriods.ts +226 -0
  579. package/src/modules/billing/lib/testRunCleanup.ts +42 -0
  580. package/src/modules/billing/lib/topupCapture.ts +3 -4
  581. package/src/modules/billing/lib/topupReceipt.ts +70 -103
  582. package/src/modules/billing/lib/usageRater.ts +1 -1
  583. package/src/modules/billing/lib/usageRunner.ts +17 -5
  584. package/src/modules/billing/lib/vat.ts +56 -0
  585. package/src/modules/billing/migrations/Migration20261114000000_billing_customer_kind.ts +25 -0
  586. package/src/modules/billing/migrations/Migration20261114100000_billing_cycle_semantics.ts +37 -0
  587. package/src/modules/billing/migrations/Migration20261115000000_billing_invoice_ledger.ts +132 -0
  588. package/src/modules/billing/migrations/Migration20261116000000_billing_invoice_documents.ts +58 -0
  589. package/src/modules/billing/migrations/Migration20261117000000_billing_payments.ts +97 -0
  590. package/src/modules/billing/migrations/Migration20261118000000_billing_memos.ts +21 -0
  591. package/src/modules/billing/migrations/Migration20261119000000_billing_operator_feedback.ts +39 -0
  592. package/src/modules/billing/migrations/Migration20261120000000_billing_allocation_scope_indexes.ts +35 -0
  593. package/src/modules/billing/setup.ts +11 -237
  594. package/src/modules/billing/subscribers/credit-memo-auto-send.ts +15 -0
  595. package/src/modules/billing/subscribers/debit-memo-apply-credit.ts +15 -0
  596. package/src/modules/billing/subscribers/debit-memo-auto-send.ts +15 -0
  597. package/src/modules/billing/subscribers/invoice-apply-credit.ts +39 -0
  598. package/src/modules/billing/subscribers/invoice-auto-send.ts +46 -0
  599. package/src/modules/billing/subscribers/payment-captured-to-paid.ts +84 -62
  600. package/src/modules/billing/subscribers/prepaid-topup-captured.ts +4 -8
  601. package/dist/modules/billing/lib/invoiceStatus.js +0 -38
  602. package/dist/modules/billing/lib/invoiceStatus.js.map +0 -7
  603. package/src/modules/billing/__tests__/lib/invoiceStatus.test.ts +0 -97
  604. package/src/modules/billing/lib/invoiceStatus.ts +0 -61
@@ -0,0 +1,880 @@
1
+ {
2
+ "billing.accounts.actions.open": "Abrir",
3
+ "billing.accounts.columns.balance_due": "Saldo pendiente",
4
+ "billing.accounts.columns.credit_limit": "Límite de crédito",
5
+ "billing.accounts.columns.currency": "Moneda",
6
+ "billing.accounts.columns.customer": "Cliente",
7
+ "billing.accounts.columns.cycle": "Ciclo",
8
+ "billing.accounts.columns.last_bill": "Última facturación",
9
+ "billing.accounts.columns.mode": "Modalidad",
10
+ "billing.accounts.columns.name": "Nombre",
11
+ "billing.accounts.columns.next_bill": "Próxima facturación",
12
+ "billing.accounts.columns.overdue": "Vencido",
13
+ "billing.accounts.columns.status": "Estado",
14
+ "billing.accounts.create.action": "Nueva cuenta",
15
+ "billing.accounts.create.error": "No se pudo crear la cuenta",
16
+ "billing.accounts.create.success": "Cuenta de facturación creada",
17
+ "billing.accounts.create.title": "Crear cuenta de facturación",
18
+ "billing.accounts.detail.add_item": "Añadir concepto",
19
+ "billing.accounts.detail.add_usage": "Añadir consumo",
20
+ "billing.accounts.detail.delete.action": "Eliminación lógica",
21
+ "billing.accounts.detail.delete.confirm.button": "Eliminación lógica",
22
+ "billing.accounts.detail.delete.confirm.text": "Elimina la cuenta de forma lógica. Sus conceptos y registros de consumo se conservan en la base de datos para auditoría; el motor de ejecuciones de facturación dejará de procesarla de inmediato.",
23
+ "billing.accounts.detail.delete.confirm.title": "¿Eliminar la cuenta?",
24
+ "billing.accounts.detail.delete.error": "Error al eliminar",
25
+ "billing.accounts.detail.delete.in_progress": "Eliminando…",
26
+ "billing.accounts.detail.delete.success": "Cuenta eliminada",
27
+ "billing.accounts.detail.error.load": "No se pudo cargar la cuenta",
28
+ "billing.accounts.detail.error.not_found": "Cuenta no encontrada",
29
+ "billing.accounts.detail.invoices": "Facturas",
30
+ "billing.accounts.detail.items.empty": "Esta cuenta aún no tiene conceptos.",
31
+ "billing.accounts.detail.items.title": "Conceptos",
32
+ "billing.accounts.detail.loading": "Cargando cuenta…",
33
+ "billing.accounts.detail.payments": "Pagos",
34
+ "billing.accounts.detail.save.error": "Error al guardar",
35
+ "billing.accounts.detail.save.success": "Cuenta actualizada",
36
+ "billing.accounts.detail.title": "Cuenta de facturación",
37
+ "billing.accounts.detail.usage.empty": "Esta cuenta aún no tiene registros de consumo.",
38
+ "billing.accounts.detail.usage.title": "Consumo",
39
+ "billing.accounts.detail.view_items": "Ver conceptos",
40
+ "billing.accounts.filters.active": "Activa",
41
+ "billing.accounts.filters.currency": "Moneda",
42
+ "billing.accounts.filters.customer_kind": "Tipo de cliente",
43
+ "billing.accounts.filters.cycle": "Ciclo de facturación",
44
+ "billing.accounts.filters.has_overdue": "Con importes vencidos",
45
+ "billing.accounts.form.active": "Activa",
46
+ "billing.accounts.form.active.help": "Las cuentas inactivas siguen siendo facturables hasta su eliminación lógica; esta opción solo afecta al filtrado de visibilidad.",
47
+ "billing.accounts.form.address.city": "Ciudad",
48
+ "billing.accounts.form.address.country": "País (ISO 3166)",
49
+ "billing.accounts.form.address.line1": "Línea 1",
50
+ "billing.accounts.form.address.line2": "Línea 2",
51
+ "billing.accounts.form.address.postal_code": "Código postal",
52
+ "billing.accounts.form.address.title": "Dirección de facturación",
53
+ "billing.accounts.form.auto_send": "Enviar facturas por correo automáticamente",
54
+ "billing.accounts.form.auto_send.help": "Cada factura emitida se envía en PDF al correo de facturación.",
55
+ "billing.accounts.form.bill_cycle": "Ciclo de facturación",
56
+ "billing.accounts.form.cancel_hint": "para descartar",
57
+ "billing.accounts.form.create": "Crear cuenta",
58
+ "billing.accounts.form.currency": "Moneda (ISO 4217)",
59
+ "billing.accounts.form.currency.locked": "No modificable: se fija al crear la cuenta.",
60
+ "billing.accounts.form.customer": "Cliente",
61
+ "billing.accounts.form.customer.company": "Empresa",
62
+ "billing.accounts.form.customer.person": "Persona",
63
+ "billing.accounts.form.customer.placeholder": "Buscar clientes por nombre o correo electrónico…",
64
+ "billing.accounts.form.customer.placeholder_person": "Buscar personas por nombre o correo electrónico…",
65
+ "billing.accounts.form.customer.prefill_hint": "El nombre, el correo de facturación y la dirección se rellenan con los datos del cliente si están vacíos.",
66
+ "billing.accounts.form.customer_id": "ID de cliente",
67
+ "billing.accounts.form.customer_id.locked": "No modificable: cree una cuenta nueva para vincular otro cliente.",
68
+ "billing.accounts.form.customer_kind": "Tipo de cliente",
69
+ "billing.accounts.form.cycle_anchor": "Día de referencia del ciclo",
70
+ "billing.accounts.form.cycle_anchor.month_hint": "1 — 28",
71
+ "billing.accounts.form.cycle_anchor.weekly_hint": "mon | tue | … | sun",
72
+ "billing.accounts.form.error.address_required": "La dirección de facturación (línea 1 y ciudad) es obligatoria",
73
+ "billing.accounts.form.error.country_invalid": "El país debe ser un código ISO 3166 de 2 o 3 letras",
74
+ "billing.accounts.form.error.currency_invalid": "La moneda debe ser un código ISO de 3 letras",
75
+ "billing.accounts.form.error.customerId_required": "Seleccione un cliente",
76
+ "billing.accounts.form.error.email_invalid": "El correo de facturación no parece válido",
77
+ "billing.accounts.form.error.name_required": "El nombre es obligatorio",
78
+ "billing.accounts.form.error.next_bill_date_required": "La próxima fecha de facturación es obligatoria",
79
+ "billing.accounts.form.invoice_email": "Correo de facturación",
80
+ "billing.accounts.form.invoice_language": "Idioma de las facturas",
81
+ "billing.accounts.form.mode.locked": "No modificable: se fija al crear la cuenta.",
82
+ "billing.accounts.form.mode.title": "Modalidad de facturación y crédito",
83
+ "billing.accounts.form.name": "Nombre",
84
+ "billing.accounts.form.name.placeholder": "Se rellena con el cliente; puede cambiarlo, p. ej. \"Acme — producción\"",
85
+ "billing.accounts.form.next_bill_date": "Próxima fecha de facturación",
86
+ "billing.accounts.form.payment_terms": "Plazo de pago (días)",
87
+ "billing.accounts.form.payment_terms.default": "Valor predeterminado de la organización",
88
+ "billing.accounts.form.payment_terms.hint": "Vacío = valor predeterminado de la organización",
89
+ "billing.accounts.form.save": "Guardar cambios",
90
+ "billing.accounts.form.saving": "Guardando…",
91
+ "billing.accounts.form.submit_hint": "para guardar,",
92
+ "billing.accounts.form.tax_id": "NIF / NIF-IVA (opcional)",
93
+ "billing.accounts.form.threshold.hint": "Vacío = valor predeterminado del tenant",
94
+ "billing.accounts.items.billed_through": "Facturado hasta",
95
+ "billing.accounts.items.open_ended": "sin fecha de fin",
96
+ "billing.accounts.items.recurring_advance": "Recurrente · por adelantado",
97
+ "billing.accounts.items.recurring_arrears": "Recurrente · a periodo vencido",
98
+ "billing.accounts.items.state": "Facturación",
99
+ "billing.accounts.items.state.awaiting_run": "Aún no facturado",
100
+ "billing.accounts.items.state.billed": "Facturado",
101
+ "billing.accounts.items.state.current": "Facturado hasta",
102
+ "billing.accounts.items.state.due": "Pendiente desde",
103
+ "billing.accounts.items.state.fully_billed": "Facturado por completo",
104
+ "billing.accounts.items.state.metered": "Facturado según consumo",
105
+ "billing.accounts.items.state.scheduled": "Comienza",
106
+ "billing.accounts.items.term": "Vigencia",
107
+ "billing.accounts.items.tiered": "Por tramos",
108
+ "billing.accounts.kind.company": "Empresa",
109
+ "billing.accounts.kind.person": "Persona",
110
+ "billing.accounts.run.action": "Ejecutar facturación",
111
+ "billing.accounts.run.again": "Ejecutar de nuevo",
112
+ "billing.accounts.run.close_hint": "para cerrar",
113
+ "billing.accounts.run.description": "Factura todos los ciclos pendientes de esta cuenta hasta la fecha de corte. Las ejecuciones de prueba y las simulaciones no modifican la cuenta.",
114
+ "billing.accounts.run.done": "Ejecución de facturación completada; fechas de facturación con cargos:",
115
+ "billing.accounts.run.failed": "La ejecución de facturación ha fallado",
116
+ "billing.accounts.run.nothing_due": "No hay nada pendiente hasta esta fecha; la próxima fecha de facturación es posterior.",
117
+ "billing.accounts.run.open_run": "Abrir ejecución",
118
+ "billing.accounts.run.running": "Ejecutando…",
119
+ "billing.accounts.run.submit_hint": "para ejecutar,",
120
+ "billing.accounts.run.title": "Ejecutar la facturación de esta cuenta",
121
+ "billing.accounts.runs.columns.cycles": "Fechas de facturación",
122
+ "billing.accounts.runs.columns.documents": "Documentos",
123
+ "billing.accounts.runs.columns.when": "Ejecutada el",
124
+ "billing.accounts.runs.empty": "Esta cuenta aún no tiene ejecuciones de facturación.",
125
+ "billing.accounts.runs.error": "No se pudieron cargar las ejecuciones de facturación",
126
+ "billing.accounts.statements.empty": "Aún no hay extractos; se generan al cerrar cada periodo.",
127
+ "billing.accounts.statements.error": "No se pudieron cargar los extractos",
128
+ "billing.accounts.summary.balance": "Saldo",
129
+ "billing.accounts.summary.balance_due": "Saldo pendiente",
130
+ "billing.accounts.summary.credit": "Crédito sin aplicar",
131
+ "billing.accounts.summary.last_invoice": "Última factura",
132
+ "billing.accounts.summary.last_statement": "Último extracto",
133
+ "billing.accounts.summary.open": "Cobros pendientes",
134
+ "billing.accounts.summary.overdue": "Vencido",
135
+ "billing.accounts.tabs.balance": "Saldo y recargas",
136
+ "billing.accounts.tabs.invoices": "Facturas",
137
+ "billing.accounts.tabs.items": "Conceptos",
138
+ "billing.accounts.tabs.label": "Secciones de la cuenta",
139
+ "billing.accounts.tabs.overview": "Resumen",
140
+ "billing.accounts.tabs.payments": "Pagos",
141
+ "billing.accounts.tabs.runs": "Ejecuciones de facturación",
142
+ "billing.accounts.tabs.statements": "Extractos",
143
+ "billing.accounts.tabs.usage": "Consumo",
144
+ "billing.accounts.title": "Cuentas de facturación",
145
+ "billing.common.active": "Activo",
146
+ "billing.common.cancel": "Cancelar",
147
+ "billing.common.close": "Cerrar",
148
+ "billing.common.edit": "Editar",
149
+ "billing.common.id": "ID",
150
+ "billing.common.inactive": "Inactivo",
151
+ "billing.common.no": "No",
152
+ "billing.common.refresh": "Actualizar",
153
+ "billing.common.save": "Guardar",
154
+ "billing.common.yes": "Sí",
155
+ "billing.cycle.annually": "Anual",
156
+ "billing.cycle.monthly": "Mensual",
157
+ "billing.cycle.quarterly": "Trimestral",
158
+ "billing.cycle.weekly": "Semanal",
159
+ "billing.email.invoice.body": "Le adjuntamos la factura {number} por un importe de {amount}, con vencimiento el {dueDate}.",
160
+ "billing.email.invoice.closing": "Atentamente,",
161
+ "billing.email.invoice.greeting": "Estimado/a {name}:",
162
+ "billing.email.invoice.payment": "Le rogamos que realice el pago al IBAN {iban} indicando el concepto {number}.",
163
+ "billing.email.invoice.subject": "Factura {number}",
164
+ "billing.invoices.actions.open": "Abrir",
165
+ "billing.invoices.actions.pdf": "Descargar PDF",
166
+ "billing.invoices.actions.pdf_preview": "Vista previa del PDF",
167
+ "billing.invoices.columns.account": "Cuenta",
168
+ "billing.invoices.columns.days_overdue": "Días de retraso",
169
+ "billing.invoices.columns.due": "Vencimiento",
170
+ "billing.invoices.columns.issued": "Emisión",
171
+ "billing.invoices.columns.number": "Número",
172
+ "billing.invoices.columns.outstanding": "Pendiente",
173
+ "billing.invoices.columns.period": "Periodo",
174
+ "billing.invoices.columns.status": "Estado",
175
+ "billing.invoices.columns.total": "Total",
176
+ "billing.invoices.columns.type": "Tipo",
177
+ "billing.invoices.deliveries.columns.at": "Fecha",
178
+ "billing.invoices.deliveries.columns.error": "Error",
179
+ "billing.invoices.deliveries.columns.status": "Estado",
180
+ "billing.invoices.deliveries.columns.to": "Destinatario",
181
+ "billing.invoices.deliveries.columns.trigger": "Origen",
182
+ "billing.invoices.deliveries.empty": "Aún no se ha enviado.",
183
+ "billing.invoices.deliveries.status.failed": "Fallido",
184
+ "billing.invoices.deliveries.status.sent": "Enviado",
185
+ "billing.invoices.deliveries.title": "Envíos por correo electrónico",
186
+ "billing.invoices.deliveries.trigger.auto": "Automático",
187
+ "billing.invoices.deliveries.trigger.manual": "Manual",
188
+ "billing.invoices.detail.error.load": "No se pudo cargar la factura",
189
+ "billing.invoices.detail.field.account": "Cuenta de facturación",
190
+ "billing.invoices.detail.field.bill_run": "Ejecución de facturación",
191
+ "billing.invoices.detail.field.draft_number": "Número de borrador",
192
+ "billing.invoices.detail.field.due": "Vencimiento",
193
+ "billing.invoices.detail.field.issued": "Emisión",
194
+ "billing.invoices.detail.field.period": "Periodo de facturación",
195
+ "billing.invoices.detail.loading": "Cargando factura…",
196
+ "billing.invoices.detail.outstanding": "Pendiente",
197
+ "billing.invoices.detail.paid": "Pagado",
198
+ "billing.invoices.detail.subtotal": "Subtotal neto",
199
+ "billing.invoices.detail.title": "Factura",
200
+ "billing.invoices.detail.total": "Total general",
201
+ "billing.invoices.document_type.credit_memo": "Factura rectificativa",
202
+ "billing.invoices.document_type.debit_memo": "Nota de cargo",
203
+ "billing.invoices.document_type.invoice": "Factura",
204
+ "billing.invoices.document_type.receipt": "Justificante de recarga",
205
+ "billing.invoices.empty": "Aún no hay facturas.",
206
+ "billing.invoices.error.load": "No se pudieron cargar las facturas",
207
+ "billing.invoices.filters.document_type": "Tipo de documento",
208
+ "billing.invoices.filters.overdue": "Vencidas",
209
+ "billing.invoices.filters.overdue.exclude": "No vencidas",
210
+ "billing.invoices.filters.overdue.only": "Solo vencidas",
211
+ "billing.invoices.filters.status": "Estado",
212
+ "billing.invoices.filters.test_run": "Ejecuciones de prueba",
213
+ "billing.invoices.filters.test_run.exclude": "Excluir pruebas",
214
+ "billing.invoices.filters.test_run.only": "Solo pruebas",
215
+ "billing.invoices.lines.actions.edit": "Editar línea",
216
+ "billing.invoices.lines.actions.remove": "Quitar línea",
217
+ "billing.invoices.lines.add.action": "Añadir línea",
218
+ "billing.invoices.lines.add.success": "Línea añadida",
219
+ "billing.invoices.lines.columns.description": "Descripción",
220
+ "billing.invoices.lines.columns.gross": "Bruto",
221
+ "billing.invoices.lines.columns.quantity": "Cant.",
222
+ "billing.invoices.lines.columns.tax_amount": "IVA",
223
+ "billing.invoices.lines.columns.tax_rate": "% IVA",
224
+ "billing.invoices.lines.columns.total": "Total neto",
225
+ "billing.invoices.lines.columns.unit_price": "Precio unitario",
226
+ "billing.invoices.lines.edit.success": "Línea actualizada",
227
+ "billing.invoices.lines.form.cancel_hint": "para cancelar",
228
+ "billing.invoices.lines.form.computed_total": "Total calculado: {computed}",
229
+ "billing.invoices.lines.form.description": "Descripción",
230
+ "billing.invoices.lines.form.error.description_required": "La descripción es obligatoria",
231
+ "billing.invoices.lines.form.error.quantity_invalid": "La cantidad debe ser un número no negativo",
232
+ "billing.invoices.lines.form.error.tax_rate_invalid": "El tipo de IVA debe estar entre 0 y 100",
233
+ "billing.invoices.lines.form.error.total_invalid": "El total manual debe ser un número si se indica",
234
+ "billing.invoices.lines.form.error.unit_price_invalid": "El precio unitario debe ser un número",
235
+ "billing.invoices.lines.form.help": "Los cambios se registran en el registro de auditoría de edición de borradores.",
236
+ "billing.invoices.lines.form.quantity": "Cantidad",
237
+ "billing.invoices.lines.form.saving": "Guardando…",
238
+ "billing.invoices.lines.form.submit_hint": "para guardar,",
239
+ "billing.invoices.lines.form.tax_rate": "Tipo de IVA (%)",
240
+ "billing.invoices.lines.form.tax_rate.default": "Valor predeterminado de la organización",
241
+ "billing.invoices.lines.form.title_add": "Añadir línea de factura",
242
+ "billing.invoices.lines.form.title_edit": "Editar línea de factura",
243
+ "billing.invoices.lines.form.total_override": "Total manual (opcional)",
244
+ "billing.invoices.lines.form.unit_price": "Precio unitario (neto)",
245
+ "billing.invoices.lines.operator_added": "Añadida por el operador",
246
+ "billing.invoices.lines.remove.confirm.button": "Quitar línea",
247
+ "billing.invoices.lines.remove.confirm.text": "La línea se eliminará y quedará registrada en el registro de auditoría de edición de borradores.",
248
+ "billing.invoices.lines.remove.confirm.title": "¿Quitar la línea?",
249
+ "billing.invoices.lines.remove.error": "Error al quitar la línea",
250
+ "billing.invoices.lines.remove.success": "Línea quitada",
251
+ "billing.invoices.lines.save.error": "Error al guardar",
252
+ "billing.invoices.lines.title": "Líneas",
253
+ "billing.invoices.overdue": "Vencida",
254
+ "billing.invoices.overdue_days": "Vencida: {days} d",
255
+ "billing.invoices.payments.credit_memo": "Factura rectificativa",
256
+ "billing.invoices.payments.empty": "Aún no hay pagos.",
257
+ "billing.invoices.payments.payment": "Pago",
258
+ "billing.invoices.payments.source": "Origen",
259
+ "billing.invoices.payments.title": "Pagos",
260
+ "billing.invoices.post.action": "Emitir factura",
261
+ "billing.invoices.post.error": "Error al emitir",
262
+ "billing.invoices.post.in_progress": "Emitiendo…",
263
+ "billing.invoices.post.settings_incomplete": "Complete los datos del emisor en Configuración → Facturación antes de emitir facturas.",
264
+ "billing.invoices.post.success": "Factura emitida",
265
+ "billing.invoices.send.action": "Enviar",
266
+ "billing.invoices.send.confirm.text": "El PDF se enviará por correo a {email}.",
267
+ "billing.invoices.send.confirm.title": "¿Enviar la factura?",
268
+ "billing.invoices.send.confirm.title_resend": "¿Reenviar la factura?",
269
+ "billing.invoices.send.failed": "Error en el envío",
270
+ "billing.invoices.send.in_progress": "Enviando…",
271
+ "billing.invoices.send.resend": "Reenviar",
272
+ "billing.invoices.send.success": "Factura enviada",
273
+ "billing.invoices.status.credited": "Abonada",
274
+ "billing.invoices.status.draft": "Borrador",
275
+ "billing.invoices.status.paid": "Pagada",
276
+ "billing.invoices.status.partially_paid": "Pagada parcialmente",
277
+ "billing.invoices.status.posted": "Emitida",
278
+ "billing.invoices.test_run_tag": "Ejecución de prueba",
279
+ "billing.invoices.title": "Facturas",
280
+ "billing.item.price_change_after_end": "El cambio debe ser en la fecha de fin del concepto o antes.",
281
+ "billing.item.price_change_before_start": "El cambio debe ser posterior a la fecha de inicio del concepto.",
282
+ "billing.item.price_change_inactive": "El concepto está inactivo o eliminado.",
283
+ "billing.item.price_change_recurring_only": "Solo los conceptos recurrentes pueden cambiar de precio de esta forma.",
284
+ "billing.items.actions.open": "Abrir",
285
+ "billing.items.change_price.action": "Cambiar precio",
286
+ "billing.items.change_price.and_before": "y como máximo el",
287
+ "billing.items.change_price.current_ends": "El precio actual finaliza el",
288
+ "billing.items.change_price.current_price": "Precio actual",
289
+ "billing.items.change_price.date_range": "Elija una fecha posterior al inicio del concepto",
290
+ "billing.items.change_price.description": "Este concepto finaliza el día anterior a la fecha de efecto y una copia con el nuevo precio comienza ese día. Los días ya facturados posteriores al cambio se abonan y se vuelven a cargar al nuevo precio, según la configuración de prorrateo del concepto.",
291
+ "billing.items.change_price.effective_date": "Con efecto desde",
292
+ "billing.items.change_price.error": "No se pudo cambiar el precio",
293
+ "billing.items.change_price.new_price": "Nuevo precio unitario por ciclo",
294
+ "billing.items.change_price.success": "Precio cambiado; el nuevo concepto está activo desde la fecha de efecto",
295
+ "billing.items.change_price.title": "Cambiar precio",
296
+ "billing.items.charge_timing.in_advance": "Por adelantado",
297
+ "billing.items.charge_timing.in_arrears": "A periodo vencido",
298
+ "billing.items.columns.account": "Cuenta",
299
+ "billing.items.columns.description": "Descripción",
300
+ "billing.items.columns.end": "Fin",
301
+ "billing.items.columns.start": "Inicio",
302
+ "billing.items.columns.status": "Estado",
303
+ "billing.items.columns.timing": "Momento de cargo",
304
+ "billing.items.columns.type": "Tipo",
305
+ "billing.items.columns.uom": "UdM",
306
+ "billing.items.create.action": "Nuevo concepto",
307
+ "billing.items.create.error": "No se pudo crear el concepto",
308
+ "billing.items.create.loading": "Cargando cuentas…",
309
+ "billing.items.create.success": "Concepto de facturación creado",
310
+ "billing.items.create.title": "Crear concepto de facturación",
311
+ "billing.items.detail.billed_to": "Facturado hasta el {date}",
312
+ "billing.items.detail.currency_mismatch": "La moneda no coincide",
313
+ "billing.items.detail.delete.action": "Eliminación lógica",
314
+ "billing.items.detail.delete.confirm.button": "Eliminación lógica",
315
+ "billing.items.detail.delete.confirm.text": "Elimina el concepto de forma lógica. Su registro se conserva en la base de datos para auditoría; el motor de ejecuciones de facturación dejará de incluirlo de inmediato.",
316
+ "billing.items.detail.delete.confirm.title": "¿Eliminar el concepto?",
317
+ "billing.items.detail.delete.error": "Error al eliminar",
318
+ "billing.items.detail.delete.in_progress": "Eliminando…",
319
+ "billing.items.detail.delete.success": "Concepto eliminado",
320
+ "billing.items.detail.error.load": "No se pudo cargar el concepto",
321
+ "billing.items.detail.error.not_found": "Concepto no encontrado",
322
+ "billing.items.detail.field.account": "Cuenta",
323
+ "billing.items.detail.field.billed_to": "Facturado hasta",
324
+ "billing.items.detail.field.source_ref": "Referencia de origen",
325
+ "billing.items.detail.loading": "Cargando concepto…",
326
+ "billing.items.detail.save.error": "Error al guardar",
327
+ "billing.items.detail.save.success": "Concepto actualizado",
328
+ "billing.items.detail.source_ref": "source_ref: {ref}",
329
+ "billing.items.detail.title": "Concepto de facturación",
330
+ "billing.items.filters.account": "Cuenta de facturación",
331
+ "billing.items.filters.active": "Activo",
332
+ "billing.items.filters.subscription": "ID de suscripción",
333
+ "billing.items.filters.type": "Tipo",
334
+ "billing.items.form.account": "Cuenta de facturación",
335
+ "billing.items.form.account.placeholder": "Seleccione una cuenta",
336
+ "billing.items.form.active": "Activo",
337
+ "billing.items.form.active.help": "El motor de ejecuciones de facturación omite los conceptos inactivos.",
338
+ "billing.items.form.cancel_hint": "para descartar",
339
+ "billing.items.form.charge_timing": "Momento de cargo",
340
+ "billing.items.form.charge_timing.help_advance": "Cada fecha de facturación carga el periodo siguiente.",
341
+ "billing.items.form.charge_timing.help_arrears": "Cada fecha de facturación carga el periodo recién finalizado.",
342
+ "billing.items.form.create": "Crear concepto",
343
+ "billing.items.form.description": "Descripción",
344
+ "billing.items.form.description.help": "Se muestra literalmente en la línea de la factura.",
345
+ "billing.items.form.end_date": "Fecha de fin de facturación (opcional)",
346
+ "billing.items.form.error.account_required": "La cuenta de facturación es obligatoria",
347
+ "billing.items.form.error.amount_invalid": "El importe debe ser un número",
348
+ "billing.items.form.error.description_required": "La descripción es obligatoria",
349
+ "billing.items.form.error.start_date_required": "La fecha de inicio de facturación es obligatoria",
350
+ "billing.items.form.error.tax_rate_invalid": "El tipo de IVA debe estar entre 0 y 100",
351
+ "billing.items.form.error.tiered_json": "El JSON de tarifas por tramos no es un JSON válido",
352
+ "billing.items.form.error.tiered_required": "El JSON de tarifas por tramos es obligatorio para el consumo por tramos",
353
+ "billing.items.form.error.tiered_shape": "El JSON de tramos debe incluir `model` y `tiers`",
354
+ "billing.items.form.error.unit_price_invalid": "El precio unitario debe ser un número no negativo",
355
+ "billing.items.form.error.uom_required": "El código de UdM es obligatorio para los conceptos de consumo",
356
+ "billing.items.form.price.gross_preview": "Bruto",
357
+ "billing.items.form.price.net_preview": "Neto",
358
+ "billing.items.form.price.vat_preview": "IVA",
359
+ "billing.items.form.price_basis": "Precio introducido como",
360
+ "billing.items.form.price_basis.tiered_net": "Las tarifas por tramos siempre se introducen en neto.",
361
+ "billing.items.form.prorate": "Prorratear periodos parciales",
362
+ "billing.items.form.prorate.help": "Cobra por días naturales cuando el concepto empieza o termina a mitad de periodo, y abona los días no utilizados si termina después de haberse facturado por adelantado.",
363
+ "billing.items.form.rate.amount": "Importe",
364
+ "billing.items.form.rate.amount.help": "Se admiten valores negativos para reembolsos, abonos o abonos por prorrateo.",
365
+ "billing.items.form.rate.prices_in": "Precios en",
366
+ "billing.items.form.rate.tiered_json": "JSON de tarifas por tramos",
367
+ "billing.items.form.rate.tiered_json.help": "Modelos: volume / graduated / flat. Exactamente un tramo debe tener `up_to: null` (el tramo superior sin límite). Los validadores del servidor rechazan estructuras incorrectas.",
368
+ "billing.items.form.rate.title": "Tarifa",
369
+ "billing.items.form.rate.unit_price_recurring": "Precio unitario por ciclo",
370
+ "billing.items.form.rate.unit_price_usage": "Precio unitario por unidad consumida",
371
+ "billing.items.form.rate.usage_mode": "Modelo de tarifa",
372
+ "billing.items.form.rate.usage_mode.simple": "Tarifa plana simple",
373
+ "billing.items.form.rate.usage_mode.tiered": "Por tramos (volumen / escalonado / fijo)",
374
+ "billing.items.form.refs.title": "Referencias externas (opcional)",
375
+ "billing.items.form.save": "Guardar cambios",
376
+ "billing.items.form.saving": "Guardando…",
377
+ "billing.items.form.start_date": "Fecha de inicio de facturación",
378
+ "billing.items.form.submit_hint": "para guardar,",
379
+ "billing.items.form.subscription_id": "ID de suscripción",
380
+ "billing.items.form.subscription_item_id": "ID de elemento de suscripción",
381
+ "billing.items.form.tax_rate": "Tipo de IVA (%)",
382
+ "billing.items.form.tax_rate.help": "Por defecto, el tipo de IVA de la organización definido en la configuración de facturación.",
383
+ "billing.items.form.tax_rate.help_edit": "Se aplica a las facturas futuras; las facturas emitidas conservan su tipo.",
384
+ "billing.items.form.tax_rate.prepaid_consumption": "Se carga al saldo con IVA incluido.",
385
+ "billing.items.form.tax_rate.prepaid_topup": "En las cuentas de prepago, el impuesto se asigna en la recarga.",
386
+ "billing.items.form.type": "Tipo",
387
+ "billing.items.form.type.one_time": "Cargo único",
388
+ "billing.items.form.type.recurring": "Recurrente (por ciclo)",
389
+ "billing.items.form.type.usage": "Consumo (medido)",
390
+ "billing.items.form.uom_code": "Código de UdM",
391
+ "billing.items.form.uom_code.help": "Debe coincidir exactamente con el `uom_code` de los registros de consumo. Sin conversión.",
392
+ "billing.items.price_basis.gross": "Bruto",
393
+ "billing.items.price_basis.net": "Neto",
394
+ "billing.items.title": "Conceptos de facturación",
395
+ "billing.items.type.one_time": "Único",
396
+ "billing.items.type.recurring": "Recurrente",
397
+ "billing.items.type.usage": "Consumo",
398
+ "billing.memo.corrections": "Rectificaciones",
399
+ "billing.memo.corrects": "Rectifica",
400
+ "billing.memo.create": "Crear borrador",
401
+ "billing.memo.create_credit.action": "Crear factura rectificativa",
402
+ "billing.memo.create_credit.title": "Crear factura rectificativa",
403
+ "billing.memo.create_debit.action": "Crear nota de cargo",
404
+ "billing.memo.create_debit.title": "Crear nota de cargo",
405
+ "billing.memo.created": "Borrador de rectificación creado",
406
+ "billing.memo.delete.action": "Eliminar borrador",
407
+ "billing.memo.delete.confirm": "¿Eliminar este borrador de rectificación?",
408
+ "billing.memo.delete.failed": "No se pudo eliminar el borrador",
409
+ "billing.memo.delete.text": "Se eliminarán el borrador y sus líneas. Los documentos emitidos nunca se eliminan.",
410
+ "billing.memo.deleted": "Borrador de rectificación eliminado",
411
+ "billing.memo.error.create": "No se pudo crear la rectificación",
412
+ "billing.memo.error.exceeds": "El abono supera el importe pendiente de abonar en esta factura",
413
+ "billing.memo.error.no_lines": "Seleccione al menos una línea para abonar",
414
+ "billing.memo.error.reason_required": "El motivo es obligatorio",
415
+ "billing.memo.full_credit": "Abono total",
416
+ "billing.memo.hint": "Rectifica solo este documento. Actualice el concepto de facturación para cambiar las facturas futuras.",
417
+ "billing.memo.lines": "Líneas que abonar",
418
+ "billing.memo.projected": "Abono",
419
+ "billing.memo.reason": "Motivo (se imprime en el documento)",
420
+ "billing.memo.reason_label": "Motivo",
421
+ "billing.mode.postpaid": "Pospago",
422
+ "billing.mode.prepaid": "Prepago",
423
+ "billing.payments.account_picker.placeholder": "Seleccione una cuenta",
424
+ "billing.payments.account_picker.search": "Buscar cuentas…",
425
+ "billing.payments.action_failed": "La acción ha fallado",
426
+ "billing.payments.actions.allocate": "Aplicar",
427
+ "billing.payments.actions.assign": "Asignar a una cuenta",
428
+ "billing.payments.actions.assign_confirm": "Asignar",
429
+ "billing.payments.actions.assigned": "Pago asignado",
430
+ "billing.payments.actions.convert": "Convertir en recarga",
431
+ "billing.payments.actions.convert_confirm": "Convertir",
432
+ "billing.payments.actions.converted": "Recarga creada",
433
+ "billing.payments.actions.ignore": "Ignorar",
434
+ "billing.payments.actions.ignored": "Pago ignorado",
435
+ "billing.payments.actions.restore": "Restaurar",
436
+ "billing.payments.actions.restored": "Pago restaurado",
437
+ "billing.payments.actions.unassign": "Desasignar",
438
+ "billing.payments.actions.unassigned": "Pago desasignado",
439
+ "billing.payments.allocate.action": "Aplicar",
440
+ "billing.payments.allocate.failed": "Error al aplicar el pago",
441
+ "billing.payments.allocate.help": "Sin aplicar",
442
+ "billing.payments.allocate.none": "Esta cuenta no tiene facturas pendientes.",
443
+ "billing.payments.allocate.success": "Pago aplicado",
444
+ "billing.payments.allocate.title": "Aplicar pago",
445
+ "billing.payments.allocate.too_much": "El total supera el importe sin aplicar",
446
+ "billing.payments.allocate.total": "Total",
447
+ "billing.payments.allocations.at": "Fecha",
448
+ "billing.payments.allocations.by": "Forma",
449
+ "billing.payments.allocations.by.auto": "Conciliado automáticamente",
450
+ "billing.payments.allocations.by.credit": "Crédito aplicado",
451
+ "billing.payments.allocations.by.gateway": "Pago en línea",
452
+ "billing.payments.allocations.by.user": "Manual",
453
+ "billing.payments.allocations.empty": "No aplicado a ninguna factura.",
454
+ "billing.payments.allocations.invoice": "Factura",
455
+ "billing.payments.allocations.remove": "Anular aplicación",
456
+ "billing.payments.allocations.remove_confirm": "¿Eliminar esta aplicación?",
457
+ "billing.payments.allocations.remove_text": "La factura vuelve a quedar pendiente de pago por este importe.",
458
+ "billing.payments.allocations.removed": "Aplicación eliminada",
459
+ "billing.payments.allocations.title": "Aplicaciones",
460
+ "billing.payments.columns.account": "Cuenta",
461
+ "billing.payments.columns.amount": "Importe",
462
+ "billing.payments.columns.payer": "Pagador",
463
+ "billing.payments.columns.received": "Recibido",
464
+ "billing.payments.columns.reference": "Referencia",
465
+ "billing.payments.columns.status": "Estado",
466
+ "billing.payments.columns.unallocated": "Sin aplicar",
467
+ "billing.payments.detail.load_error": "No se pudo cargar el pago",
468
+ "billing.payments.detail.loading": "Cargando pago…",
469
+ "billing.payments.detail.title": "Pago",
470
+ "billing.payments.empty": "Aún no hay pagos.",
471
+ "billing.payments.error.load": "No se pudieron cargar los pagos",
472
+ "billing.payments.fields.account_optional": "Cuenta de facturación (opcional)",
473
+ "billing.payments.fields.currency": "Moneda",
474
+ "billing.payments.fields.match_reason": "Conciliación",
475
+ "billing.payments.fields.source": "Origen",
476
+ "billing.payments.fields.topup": "Recarga",
477
+ "billing.payments.fields.topup_open": "Abrir recarga",
478
+ "billing.payments.filters.status": "Estado",
479
+ "billing.payments.import.action": "Subir",
480
+ "billing.payments.import.counts.allocated": "Aplicados",
481
+ "billing.payments.import.counts.duplicate": "Duplicados",
482
+ "billing.payments.import.counts.matched": "Conciliados (crédito)",
483
+ "billing.payments.import.counts.partially_allocated": "Aplicados parcialmente",
484
+ "billing.payments.import.counts.rejected": "Filas rechazadas",
485
+ "billing.payments.import.counts.unmatched": "Sin conciliar",
486
+ "billing.payments.import.detail_title": "Importación de pagos",
487
+ "billing.payments.import.errors": "Filas rechazadas",
488
+ "billing.payments.import.failed": "Error en la importación",
489
+ "billing.payments.import.help": "CSV con la cabecera date,amount,currency,reference,payer_name,payer_account. Los pagos se concilian por el número de factura indicado en la referencia.",
490
+ "billing.payments.import.line": "Línea",
491
+ "billing.payments.import.load_error": "No se pudo cargar la importación",
492
+ "billing.payments.import.loading": "Cargando importación…",
493
+ "billing.payments.import.not_found": "Importación no encontrada",
494
+ "billing.payments.import.open": "Subir CSV",
495
+ "billing.payments.import.rows": "filas",
496
+ "billing.payments.import.title": "Subir pagos bancarios",
497
+ "billing.payments.import.uploading": "Subiendo…",
498
+ "billing.payments.manual.action": "Registrar pago",
499
+ "billing.payments.manual.amount_invalid": "El importe debe ser mayor que 0",
500
+ "billing.payments.manual.failed": "No se pudo registrar el pago",
501
+ "billing.payments.manual.saved": "Pago registrado",
502
+ "billing.payments.manual.title": "Registrar pago",
503
+ "billing.payments.not_found": "Pago no encontrado",
504
+ "billing.payments.reason.currency_mismatch": "La moneda no coincide con la de la factura",
505
+ "billing.payments.reason.invoice_already_paid": "Factura ya pagada; se conserva como crédito",
506
+ "billing.payments.reason.manual": "Introducido o asignado manualmente",
507
+ "billing.payments.reason.no_reference": "No se encontró ningún número de factura",
508
+ "billing.payments.reason.prepaid_account": "Cuenta de prepago; convertir en recarga",
509
+ "billing.payments.source.csv": "CSV bancario",
510
+ "billing.payments.source.gateway": "Pago en línea",
511
+ "billing.payments.source.manual": "Entrada manual",
512
+ "billing.payments.status.allocated": "Aplicado",
513
+ "billing.payments.status.converted_to_topup": "Convertido en recarga",
514
+ "billing.payments.status.ignored": "Ignorado",
515
+ "billing.payments.status.matched": "Conciliado",
516
+ "billing.payments.status.partially_allocated": "Aplicado parcialmente",
517
+ "billing.payments.status.unmatched": "Sin conciliar",
518
+ "billing.payments.title": "Pagos",
519
+ "billing.pdf.buyer": "Cliente",
520
+ "billing.pdf.columns.description": "Descripción",
521
+ "billing.pdf.columns.gross": "Bruto",
522
+ "billing.pdf.columns.net": "Neto",
523
+ "billing.pdf.columns.quantity": "Cant.",
524
+ "billing.pdf.columns.tax": "IVA",
525
+ "billing.pdf.columns.tax_rate": "% IVA",
526
+ "billing.pdf.columns.unit_net": "Precio unit.",
527
+ "billing.pdf.memo.amount_credited": "Importe abonado",
528
+ "billing.pdf.memo.credited_to_account": "El importe se abona en su cuenta.",
529
+ "billing.pdf.memo.settled_against": "Compensado con la factura {number}; el importe restante se abona en su cuenta.",
530
+ "billing.pdf.memo.settlement": "Liquidación",
531
+ "billing.pdf.meta.corrects": "Rectifica",
532
+ "billing.pdf.meta.due_date": "Fecha de vencimiento",
533
+ "billing.pdf.meta.issue_date": "Fecha de emisión",
534
+ "billing.pdf.meta.number": "Número",
535
+ "billing.pdf.meta.of": "de",
536
+ "billing.pdf.meta.reason": "Motivo",
537
+ "billing.pdf.meta.service_period": "Periodo de servicio",
538
+ "billing.pdf.page": "Página {page} de {pages}",
539
+ "billing.pdf.payment.amount": "Importe",
540
+ "billing.pdf.payment.bank": "Banco",
541
+ "billing.pdf.payment.due": "Pagar antes del",
542
+ "billing.pdf.payment.heading": "Pago",
543
+ "billing.pdf.payment.title": "Concepto",
544
+ "billing.pdf.seller": "Emisor",
545
+ "billing.pdf.tax_id": "NIF",
546
+ "billing.pdf.title.credit_memo": "Factura rectificativa",
547
+ "billing.pdf.title.debit_memo": "Nota de cargo",
548
+ "billing.pdf.title.invoice": "Factura",
549
+ "billing.pdf.title.receipt": "Justificante de pago",
550
+ "billing.pdf.totals.credited": "Total abonado",
551
+ "billing.pdf.totals.gross": "Total a pagar",
552
+ "billing.pdf.totals.net": "Base imponible",
553
+ "billing.pdf.totals.tax": "Total IVA",
554
+ "billing.pdf.vat_summary": "Resumen de IVA",
555
+ "billing.pdf.watermark.draft": "BORRADOR",
556
+ "billing.pdf.watermark.test": "PRUEBA",
557
+ "billing.prepaid.adjust.action": "Ajustar",
558
+ "billing.prepaid.adjust.amount": "Importe (+abono / −cargo)",
559
+ "billing.prepaid.adjust.confirm": "Aplicar ajuste",
560
+ "billing.prepaid.adjust.description": "Motivo",
561
+ "billing.prepaid.adjust.error": "Error en el ajuste",
562
+ "billing.prepaid.adjust.invalid_amount": "Introduzca un importe distinto de cero",
563
+ "billing.prepaid.adjust.invalid_description": "Introduzca un motivo",
564
+ "billing.prepaid.adjust.submitting": "Aplicando…",
565
+ "billing.prepaid.adjust.success": "Saldo ajustado",
566
+ "billing.prepaid.credit.near_limit": "Cerca del límite",
567
+ "billing.prepaid.credit.over_limit": "Límite superado",
568
+ "billing.prepaid.credit.within_limit": "Dentro del límite",
569
+ "billing.prepaid.panel.balance": "Saldo",
570
+ "billing.prepaid.panel.credit": "Crédito",
571
+ "billing.prepaid.panel.last_movement": "Último movimiento",
572
+ "billing.prepaid.panel.no_transactions": "Aún no hay movimientos de saldo.",
573
+ "billing.prepaid.panel.threshold": "Umbral de saldo bajo",
574
+ "billing.prepaid.panel.title": "Saldo de prepago",
575
+ "billing.prepaid.panel.transactions": "Movimientos de saldo",
576
+ "billing.prepaid.status.exhausted": "Agotado",
577
+ "billing.prepaid.status.low": "Bajo",
578
+ "billing.prepaid.status.ok": "OK",
579
+ "billing.prepaid.topup.action": "Recargar",
580
+ "billing.prepaid.topup.amount": "Importe",
581
+ "billing.prepaid.topup.confirm": "Iniciar pago",
582
+ "billing.prepaid.topup.created": "Sesión de recarga creada",
583
+ "billing.prepaid.topup.error": "Error en la recarga",
584
+ "billing.prepaid.topup.invalid": "Introduzca un importe positivo",
585
+ "billing.prepaid.topup.submitting": "Iniciando…",
586
+ "billing.runs.actions.open": "Abrir",
587
+ "billing.runs.columns.accounts": "Cuentas",
588
+ "billing.runs.columns.as_of_date": "Fecha de corte",
589
+ "billing.runs.columns.drafts": "Borradores",
590
+ "billing.runs.columns.failed": "Fallidas",
591
+ "billing.runs.columns.finished_at": "Finalizada",
592
+ "billing.runs.columns.name": "Ejecución de facturación",
593
+ "billing.runs.columns.started_at": "Iniciada",
594
+ "billing.runs.columns.status": "Estado",
595
+ "billing.runs.columns.triggered_by": "Origen",
596
+ "billing.runs.cycles.columns.bill_date": "Fecha de facturación",
597
+ "billing.runs.cycles.columns.document": "Documento",
598
+ "billing.runs.cycles.columns.lines": "Líneas",
599
+ "billing.runs.cycles.columns.service_period": "Periodo de servicio",
600
+ "billing.runs.cycles.columns.total_debit": "Cargado al saldo",
601
+ "billing.runs.cycles.columns.total_net": "Total neto",
602
+ "billing.runs.cycles.help": "Una fila por cuenta y fecha de facturación; cada ejecución factura todos los ciclos pendientes hasta su fecha de corte.",
603
+ "billing.runs.cycles.statement": "Extracto",
604
+ "billing.runs.cycles.status.charged": "Cargado al saldo",
605
+ "billing.runs.cycles.status.empty": "Nada que facturar",
606
+ "billing.runs.cycles.status.invoiced": "Facturado",
607
+ "billing.runs.cycles.status.previewed": "Vista previa",
608
+ "billing.runs.cycles.status.skipped_existing": "Omitido: ya facturado",
609
+ "billing.runs.cycles.title": "Ciclos",
610
+ "billing.runs.delete.action": "Eliminar ejecución",
611
+ "billing.runs.delete.confirm.button": "Eliminar ejecución",
612
+ "billing.runs.delete.confirm.text": "La ejecución y sus resultados se eliminarán de forma permanente.",
613
+ "billing.runs.delete.confirm.text_with_invoices": "La ejecución, sus resultados y sus facturas de prueba se eliminarán de forma permanente. Facturas de prueba:",
614
+ "billing.runs.delete.confirm.title": "¿Eliminar esta ejecución?",
615
+ "billing.runs.delete.error": "Error al eliminar",
616
+ "billing.runs.delete.in_progress": "Eliminando…",
617
+ "billing.runs.delete.success": "Ejecución eliminada",
618
+ "billing.runs.detail.error.load": "No se pudo cargar la ejecución",
619
+ "billing.runs.detail.error.not_found": "Ejecución no encontrada",
620
+ "billing.runs.detail.field.as_of_date": "Fecha de corte",
621
+ "billing.runs.detail.field.finished_at": "Finalizada",
622
+ "billing.runs.detail.field.mode": "Modo",
623
+ "billing.runs.detail.field.parent_run": "Ejecución principal",
624
+ "billing.runs.detail.field.run_id": "ID de ejecución",
625
+ "billing.runs.detail.field.started_at": "Iniciada",
626
+ "billing.runs.detail.field.triggered_by": "Origen",
627
+ "billing.runs.detail.loading": "Cargando ejecución…",
628
+ "billing.runs.detail.title": "Ejecución de facturación",
629
+ "billing.runs.filters.mode": "Modo",
630
+ "billing.runs.filters.status": "Estado",
631
+ "billing.runs.filters.triggered_by": "Origen",
632
+ "billing.runs.mode.dry_run": "Simulación",
633
+ "billing.runs.mode.real": "Real",
634
+ "billing.runs.mode.test": "Prueba",
635
+ "billing.runs.outcomes.columns.account": "Cuenta",
636
+ "billing.runs.outcomes.columns.error": "Error",
637
+ "billing.runs.outcomes.columns.invoice": "Factura",
638
+ "billing.runs.outcomes.columns.status": "Estado",
639
+ "billing.runs.outcomes.columns.warnings": "Advertencias",
640
+ "billing.runs.outcomes.title": "Resultados por cuenta",
641
+ "billing.runs.post.action": "Emitir facturas",
642
+ "billing.runs.post.confirm.button": "Emitir facturas",
643
+ "billing.runs.post.confirm.text": "Cada borrador recibe su número definitivo, su fecha de vencimiento y un PDF inalterable; las facturas configuradas para envío automático se envían por correo. Las facturas emitidas no se pueden editar. Borradores:",
644
+ "billing.runs.post.confirm.title": "¿Emitir las facturas en borrador de esta ejecución?",
645
+ "billing.runs.post.error": "Error al emitir",
646
+ "billing.runs.post.failed": "fallidas",
647
+ "billing.runs.post.in_progress": "Emitiendo…",
648
+ "billing.runs.post.partial": "Emitidas",
649
+ "billing.runs.post.success": "Facturas emitidas",
650
+ "billing.runs.retry.action": "Reintentar cuentas fallidas",
651
+ "billing.runs.retry.error": "Error al reintentar",
652
+ "billing.runs.retry.in_progress": "Reintentando…",
653
+ "billing.runs.retry.success": "Ejecución de reintento creada",
654
+ "billing.runs.skipped.columns.item": "Concepto",
655
+ "billing.runs.skipped.columns.reason": "Motivo",
656
+ "billing.runs.skipped.reason.ended_no_credit": "Finalizado tras la facturación, sin prorrateo: no hay abono",
657
+ "billing.runs.skipped.reason.partial_not_prorated": "Periodo parcial, sin prorrateo",
658
+ "billing.runs.skipped.reason.period_cap": "Demasiados periodos para una sola fecha de facturación",
659
+ "billing.runs.skipped.title": "Conceptos omitidos",
660
+ "billing.runs.status.completed": "Completada",
661
+ "billing.runs.status.failed": "Fallida",
662
+ "billing.runs.status.partial_failure": "Fallo parcial",
663
+ "billing.runs.status.running": "En curso",
664
+ "billing.runs.summary.accounts": "Cuentas",
665
+ "billing.runs.summary.cycles": "Ciclos",
666
+ "billing.runs.summary.drafts": "Borradores",
667
+ "billing.runs.summary.failed": "Fallidas",
668
+ "billing.runs.summary.skipped": "Omitidos",
669
+ "billing.runs.summary.title": "Resumen",
670
+ "billing.runs.summary.usage": "Consumo tarificado",
671
+ "billing.runs.summary.warnings": "Advertencias",
672
+ "billing.runs.title": "Ejecuciones de facturación",
673
+ "billing.runs.trigger.action": "Nueva ejecución",
674
+ "billing.runs.trigger.dialog.as_of_date": "Fecha de corte",
675
+ "billing.runs.trigger.dialog.as_of_date.help": "Factura todos los ciclos pendientes hasta esta fecha, con un borrador por fecha de facturación. Los modos Prueba y Simulación los simulan sin modificar las cuentas.",
676
+ "billing.runs.trigger.dialog.cancel_hint": "para cancelar",
677
+ "billing.runs.trigger.dialog.description": "Ejecuta el ciclo de facturación de todas las cuentas cuya próxima fecha de facturación ya ha pasado. Simulación / Prueba generan borradores sin emitir ninguna factura.",
678
+ "billing.runs.trigger.dialog.mode": "Modo",
679
+ "billing.runs.trigger.dialog.mode.dry": "Simulación: no se escribe ningún registro",
680
+ "billing.runs.trigger.dialog.mode.real": "Real: crea facturas en borrador",
681
+ "billing.runs.trigger.dialog.mode.test": "Prueba: borradores marcados para limpieza",
682
+ "billing.runs.trigger.dialog.running": "Ejecutando…",
683
+ "billing.runs.trigger.dialog.submit": "Ejecutar ahora",
684
+ "billing.runs.trigger.dialog.submit_hint": "para ejecutar,",
685
+ "billing.runs.trigger.dialog.title": "Lanzar ejecución de facturación",
686
+ "billing.runs.trigger.error": "No se pudo lanzar la ejecución",
687
+ "billing.runs.trigger.manual": "Manual",
688
+ "billing.runs.trigger.schedule": "Programada",
689
+ "billing.runs.trigger.success": "Ejecución de facturación lanzada",
690
+ "billing.runs.wipe.action": "Borrar facturas de prueba",
691
+ "billing.runs.wipe.confirm.button": "Eliminar facturas de prueba",
692
+ "billing.runs.wipe.confirm.text": "Todas las facturas de prueba de esta ejecución de facturación se eliminarán de forma permanente. La ejecución se conserva. Esta acción no se puede deshacer.",
693
+ "billing.runs.wipe.confirm.title": "¿Borrar las facturas de prueba?",
694
+ "billing.runs.wipe.error": "Error al borrar",
695
+ "billing.runs.wipe.in_progress": "Borrando…",
696
+ "billing.runs.wipe.success": "Facturas de prueba eliminadas",
697
+ "billing.settings.document.footer": "Pie de factura",
698
+ "billing.settings.document.footer.help": "Datos registrales, capital social y otras menciones legales similares.",
699
+ "billing.settings.document.logo": "Logotipo (PNG o JPEG)",
700
+ "billing.settings.document.logo.fallback": "Sin logotipo: se usa el logotipo de la organización si está definido.",
701
+ "billing.settings.document.logo.remove": "Quitar",
702
+ "billing.settings.error.bic_invalid": "El BIC debe tener 8 u 11 caracteres",
703
+ "billing.settings.error.fields": "Revise estos campos",
704
+ "billing.settings.error.iban_invalid": "El IBAN no es válido (los dígitos de control no coinciden)",
705
+ "billing.settings.error.load": "No se pudo cargar la configuración de facturación",
706
+ "billing.settings.error.save": "Error al guardar",
707
+ "billing.settings.incomplete.help": "Complete los datos del emisor que se imprimen en cada factura:",
708
+ "billing.settings.incomplete.title": "Todavía no se pueden emitir facturas",
709
+ "billing.settings.link": "Configuración de facturación",
710
+ "billing.settings.loading": "Cargando configuración de facturación…",
711
+ "billing.settings.logo.upload_failed": "Error al subir el logotipo",
712
+ "billing.settings.mask.change_warning": "Cambiar la máscara a mitad de periodo inicia un contador nuevo; un número ya emitido se rechazará al emitir.",
713
+ "billing.settings.mask.error.mask_empty": "La máscara está vacía.",
714
+ "billing.settings.mask.error.mask_missing_sequence": "Añada un token de contador.",
715
+ "billing.settings.mask.error.mask_month_scope_needs_year_and_month": "Un contador mensual necesita tokens de año y mes; de lo contrario, los números se repetirían.",
716
+ "billing.settings.mask.error.mask_multiple_sequences": "Use un solo token de contador.",
717
+ "billing.settings.mask.error.mask_too_long": "La máscara supera los 64 caracteres.",
718
+ "billing.settings.mask.error.mask_unknown_token": "La máscara contiene un token desconocido.",
719
+ "billing.settings.mask.error.mask_year_scope_needs_year": "Un contador anual necesita un token de año; de lo contrario, los números se repetirían.",
720
+ "billing.settings.mask.example": "El próximo número tendrá este aspecto",
721
+ "billing.settings.mask.scope.month": "El contador se reinicia cada mes",
722
+ "billing.settings.mask.scope.none": "El contador nunca se reinicia",
723
+ "billing.settings.mask.scope.year": "El contador se reinicia cada año",
724
+ "billing.settings.numbering.help": "Use tokens de fecha y exactamente un token de contador. El token de contador determina cuándo se reinicia la numeración. Añada :N para rellenar el contador con ceros.",
725
+ "billing.settings.numbering.title": "Numeración de documentos",
726
+ "billing.settings.payment.bank_name": "Nombre del banco",
727
+ "billing.settings.payment.bic": "BIC / SWIFT",
728
+ "billing.settings.payment.iban": "IBAN",
729
+ "billing.settings.payment.tax_rate": "Tipo de IVA predeterminado (%)",
730
+ "billing.settings.payment.tax_rate.help": "Solo se aplica a los conceptos de facturación nuevos; los existentes conservan su tipo.",
731
+ "billing.settings.payment.terms": "Plazo de pago predeterminado (días)",
732
+ "billing.settings.payment.title": "Pago y facturación",
733
+ "billing.settings.prepaid.gateway": "Recargas en línea",
734
+ "billing.settings.prepaid.gateway.available": "Disponible",
735
+ "billing.settings.prepaid.gateway.unavailable": "No disponible: el módulo de pasarelas de pago no está instalado",
736
+ "billing.settings.prepaid.low_balance": "Umbral de saldo bajo",
737
+ "billing.settings.prepaid.near_limit": "Margen de proximidad al límite de crédito",
738
+ "billing.settings.prepaid.statements": "Generar extractos de consumo al cerrar el periodo",
739
+ "billing.settings.prepaid.tax_point": "¿Cuándo se repercute el IVA en las cuentas de prepago?",
740
+ "billing.settings.prepaid.tax_point.change_warning": "Solo se aplica a las nuevas recargas y cargos. Los saldos recargados con la otra opción conservan su tratamiento fiscal; al pasar de recarga a facturación, el saldo restante vuelve a tributar cuando se utiliza.",
741
+ "billing.settings.prepaid.tax_point.consumption": "Al facturar",
742
+ "billing.settings.prepaid.tax_point.consumption_help": "Las recargas no llevan IVA. Cada cargo descuenta del saldo su importe bruto (al tipo de IVA del concepto); los extractos muestran el IVA. Consulte con su asesor fiscal.",
743
+ "billing.settings.prepaid.tax_point.topup": "Al recargar",
744
+ "billing.settings.prepaid.tax_point.topup_help": "El justificante de recarga incluye el IVA. Los cargos descuentan del saldo el importe del concepto tal como se introdujo; los tipos de IVA de los conceptos no se aplican.",
745
+ "billing.settings.prepaid.title": "Valores predeterminados de prepago",
746
+ "billing.settings.prepaid.topup_provider": "Proveedor de pago de recargas",
747
+ "billing.settings.prepaid.topup_tax_rate": "IVA en los justificantes de recarga (%)",
748
+ "billing.settings.save_hint": "para guardar",
749
+ "billing.settings.saved": "Configuración de facturación guardada",
750
+ "billing.settings.saving": "Guardando…",
751
+ "billing.settings.seller.address": "Dirección",
752
+ "billing.settings.seller.city": "Ciudad",
753
+ "billing.settings.seller.country": "País (código ISO)",
754
+ "billing.settings.seller.legal_name": "Razón social",
755
+ "billing.settings.seller.line1": "Dirección, línea 1",
756
+ "billing.settings.seller.line2": "Dirección, línea 2",
757
+ "billing.settings.seller.postal_code": "Código postal",
758
+ "billing.settings.seller.tax_id": "NIF",
759
+ "billing.settings.seller.title": "Emisor",
760
+ "billing.settings.series.credit_memo": "Facturas rectificativas",
761
+ "billing.settings.series.invoice": "Facturas y notas de cargo",
762
+ "billing.settings.series.receipt": "Justificantes de recarga",
763
+ "billing.settings.title": "Facturación",
764
+ "billing.settings.token.date": "Partes de la fecha de emisión",
765
+ "billing.settings.token.pad": "Rellenar el contador con ceros hasta N dígitos",
766
+ "billing.statements.breakdown.amount": "Importe",
767
+ "billing.statements.breakdown.charged": "Cargado al saldo",
768
+ "billing.statements.breakdown.item": "Concepto",
769
+ "billing.statements.breakdown.net": "Neto",
770
+ "billing.statements.breakdown.quantity": "Cant.",
771
+ "billing.statements.breakdown.service_period": "Periodo de servicio",
772
+ "billing.statements.breakdown.type": "Tipo",
773
+ "billing.statements.breakdown.vat": "IVA",
774
+ "billing.statements.columns.account": "Cuenta",
775
+ "billing.statements.columns.adjustments": "Ajustes",
776
+ "billing.statements.columns.charges": "Cargos",
777
+ "billing.statements.columns.closing": "Saldo final",
778
+ "billing.statements.columns.opening": "Saldo inicial",
779
+ "billing.statements.columns.period": "Periodo",
780
+ "billing.statements.columns.recurring": "Recurrente",
781
+ "billing.statements.columns.status": "Estado",
782
+ "billing.statements.columns.topups": "Recargas",
783
+ "billing.statements.columns.usage": "Consumo",
784
+ "billing.statements.detail.bill_run": "Ejecución de facturación",
785
+ "billing.statements.detail.breakdown": "Cargos al cierre del periodo",
786
+ "billing.statements.detail.load_error": "No se pudo cargar el extracto",
787
+ "billing.statements.detail.loading": "Cargando extracto…",
788
+ "billing.statements.detail.no_charges": "No hay cargos en esta fecha de facturación.",
789
+ "billing.statements.detail.not_found": "Extracto no encontrado",
790
+ "billing.statements.detail.title": "Extracto",
791
+ "billing.statements.detail.vat_summary": "Resumen de IVA",
792
+ "billing.statements.detail.view_account": "Ver cuenta",
793
+ "billing.statements.filters.status": "Estado",
794
+ "billing.statements.status.generated": "Generado",
795
+ "billing.statements.status.sent": "Enviado",
796
+ "billing.statements.title": "Extractos",
797
+ "billing.statements.vat.gross": "Bruto",
798
+ "billing.statements.vat.rate": "Tipo de IVA",
799
+ "billing.topups.columns.account": "Cuenta",
800
+ "billing.topups.columns.amount": "Importe",
801
+ "billing.topups.columns.created": "Creada",
802
+ "billing.topups.columns.provider": "Proveedor",
803
+ "billing.topups.columns.status": "Estado",
804
+ "billing.topups.detail.balance_txn": "Movimiento de saldo",
805
+ "billing.topups.detail.gateway_txn": "Transacción de la pasarela",
806
+ "billing.topups.detail.load_error": "No se pudo cargar la recarga",
807
+ "billing.topups.detail.loading": "Cargando recarga…",
808
+ "billing.topups.detail.not_found": "Recarga no encontrada",
809
+ "billing.topups.detail.payment_id": "ID de pago",
810
+ "billing.topups.detail.receipt": "Justificante con IVA",
811
+ "billing.topups.detail.title": "Recarga",
812
+ "billing.topups.detail.updated": "Actualizada",
813
+ "billing.topups.detail.view_account": "Ver cuenta",
814
+ "billing.topups.filters.status": "Estado",
815
+ "billing.topups.status.cancelled": "Cancelada",
816
+ "billing.topups.status.captured": "Cobrada",
817
+ "billing.topups.status.expired": "Caducada",
818
+ "billing.topups.status.failed": "Fallida",
819
+ "billing.topups.status.pending": "Pendiente",
820
+ "billing.topups.title": "Recargas",
821
+ "billing.transactions.columns.account": "Cuenta",
822
+ "billing.transactions.columns.amount": "Importe",
823
+ "billing.transactions.columns.balance_after": "Saldo",
824
+ "billing.transactions.columns.description": "Descripción",
825
+ "billing.transactions.columns.type": "Tipo",
826
+ "billing.transactions.columns.when": "Fecha",
827
+ "billing.transactions.detail.item": "Concepto de facturación",
828
+ "billing.transactions.detail.load_error": "No se pudo cargar el movimiento",
829
+ "billing.transactions.detail.loading": "Cargando movimiento…",
830
+ "billing.transactions.detail.not_found": "Movimiento no encontrado",
831
+ "billing.transactions.detail.source_ref": "Referencia de origen",
832
+ "billing.transactions.detail.statement": "Extracto",
833
+ "billing.transactions.detail.title": "Movimiento",
834
+ "billing.transactions.detail.topup": "Recarga",
835
+ "billing.transactions.detail.usage": "Registro de consumo",
836
+ "billing.transactions.detail.user": "Usuario",
837
+ "billing.transactions.detail.view_account": "Ver cuenta",
838
+ "billing.transactions.filters.type": "Tipo",
839
+ "billing.transactions.title": "Movimientos",
840
+ "billing.transactions.type.adjustment": "Ajuste",
841
+ "billing.transactions.type.one_time": "Único",
842
+ "billing.transactions.type.recurring": "Recurrente",
843
+ "billing.transactions.type.reversal": "Retrocesión",
844
+ "billing.transactions.type.topup": "Recarga",
845
+ "billing.transactions.type.usage": "Consumo",
846
+ "billing.usage.columns.description": "Descripción",
847
+ "billing.usage.columns.period": "Periodo",
848
+ "billing.usage.columns.quantity": "Cantidad",
849
+ "billing.usage.columns.rated": "Tarificado",
850
+ "billing.usage.columns.uom": "Unidad",
851
+ "billing.usage.create.deduplicated": "Ya existía un registro de consumo con esa referencia de origen; no se ha duplicado nada.",
852
+ "billing.usage.create.error": "No se pudo registrar el consumo",
853
+ "billing.usage.create.loading": "Cargando cuentas…",
854
+ "billing.usage.create.success": "Registro de consumo creado",
855
+ "billing.usage.create.title": "Registrar consumo",
856
+ "billing.usage.form.account": "Cuenta de facturación",
857
+ "billing.usage.form.account.placeholder": "Seleccione una cuenta",
858
+ "billing.usage.form.cancel_hint": "para descartar",
859
+ "billing.usage.form.create": "Registrar consumo",
860
+ "billing.usage.form.description": "Descripción (opcional)",
861
+ "billing.usage.form.description.help": "Si se indica, se muestra en su propia línea de factura; de lo contrario, los registros coincidentes se agrupan en una sola línea.",
862
+ "billing.usage.form.error.account_required": "La cuenta de facturación es obligatoria",
863
+ "billing.usage.form.error.period_order": "El fin del periodo debe ser igual o posterior al inicio",
864
+ "billing.usage.form.error.period_required": "El inicio y el fin del periodo son obligatorios",
865
+ "billing.usage.form.error.quantity_invalid": "La cantidad debe ser un número no negativo",
866
+ "billing.usage.form.error.uom_required": "El código de UdM es obligatorio",
867
+ "billing.usage.form.period_end": "Fin del periodo",
868
+ "billing.usage.form.period_start": "Inicio del periodo",
869
+ "billing.usage.form.quantity": "Cantidad",
870
+ "billing.usage.form.quantity.help": "Total de unidades consumidas en el periodo (ya agregado).",
871
+ "billing.usage.form.saving": "Guardando…",
872
+ "billing.usage.form.source_ref": "Referencia de origen (opcional)",
873
+ "billing.usage.form.source_ref.help": "Clave de idempotencia: si se vuelve a enviar la misma referencia para esta cuenta, se descarta el duplicado.",
874
+ "billing.usage.form.submit_hint": "para guardar,",
875
+ "billing.usage.form.uom_code": "Código de UdM",
876
+ "billing.usage.form.uom_code.help": "Debe coincidir exactamente con la UdM de un concepto de facturación de consumo de esta cuenta; sin conversión.",
877
+ "billing.usage.form.uom_code.placeholder": "api_request, gb, seat, …",
878
+ "billing.usage.rated.no": "Sin tarificar",
879
+ "billing.usage.rated.yes": "Tarificado"
880
+ }