arca-sdk 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/index.cjs +33 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +33 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,15 @@ Todos los cambios notables de este proyecto se documentan en este archivo.
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [1.1.2] — 2026-03-04
|
|
8
|
+
|
|
9
|
+
### 🐛 Fixes en Nodos para Facturas de Servicios (RG 5616)
|
|
10
|
+
|
|
11
|
+
- **Condición IVA Receptor Nativas**: Se solucionó un bug por el cual `<ar:CondicionIVAReceptorId>` no se renderizaba como nodo de primer nivel en `FECAEDetRequest`, requisito fundamental de la RG 5616 para Factura C de ciertos compradores. Ahora puede enviarse vía `buyer.vatCondition`.
|
|
12
|
+
- **Fechas de Servicio**: Se añadió inyección nativa de `<ar:FchServDesde>`, `<ar:FchServHasta>` y `<ar:FchVtoPago>` para cuando se facturan Conceptos `2` o `3` (Servicios o Productos + Servicios). Se puede especificar enviando el parámetro `serviceDates` en la Request.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
7
16
|
## [1.1.1] — 2026-03-03
|
|
8
17
|
|
|
9
18
|
### ✨ Soporte para Opcionales y Resolución General 5616
|
package/dist/index.cjs
CHANGED
|
@@ -988,7 +988,8 @@ var WsfeService = class _WsfeService {
|
|
|
988
988
|
date: params.date,
|
|
989
989
|
vatData,
|
|
990
990
|
includesVAT,
|
|
991
|
-
optionals: params.optionals
|
|
991
|
+
optionals: params.optionals,
|
|
992
|
+
serviceDates: params.serviceDates
|
|
992
993
|
});
|
|
993
994
|
}
|
|
994
995
|
/**
|
|
@@ -1008,7 +1009,8 @@ var WsfeService = class _WsfeService {
|
|
|
1008
1009
|
},
|
|
1009
1010
|
items: params.items,
|
|
1010
1011
|
associatedInvoices: params.associatedInvoices,
|
|
1011
|
-
optionals: params.optionals
|
|
1012
|
+
optionals: params.optionals,
|
|
1013
|
+
serviceDates: params.serviceDates
|
|
1012
1014
|
});
|
|
1013
1015
|
}
|
|
1014
1016
|
/**
|
|
@@ -1055,6 +1057,7 @@ var WsfeService = class _WsfeService {
|
|
|
1055
1057
|
date: request.date || /* @__PURE__ */ new Date(),
|
|
1056
1058
|
buyer: request.buyer,
|
|
1057
1059
|
associatedInvoices: request.associatedInvoices,
|
|
1060
|
+
serviceDates: request.serviceDates,
|
|
1058
1061
|
net,
|
|
1059
1062
|
vat,
|
|
1060
1063
|
total,
|
|
@@ -1216,6 +1219,31 @@ var WsfeService = class _WsfeService {
|
|
|
1216
1219
|
});
|
|
1217
1220
|
asocXml += "\n </ar:CbtesAsoc>";
|
|
1218
1221
|
}
|
|
1222
|
+
let optXml = "";
|
|
1223
|
+
if (params.optionals && params.optionals.length > 0) {
|
|
1224
|
+
optXml = "<ar:Opcionales>";
|
|
1225
|
+
params.optionals.forEach((opt) => {
|
|
1226
|
+
optXml += `
|
|
1227
|
+
<ar:Opcional>
|
|
1228
|
+
<ar:Id>${opt.id}</ar:Id>
|
|
1229
|
+
<ar:Valor>${opt.value}</ar:Valor>
|
|
1230
|
+
</ar:Opcional>`;
|
|
1231
|
+
});
|
|
1232
|
+
optXml += "\n </ar:Opcionales>";
|
|
1233
|
+
}
|
|
1234
|
+
const condicionIVAReceptorXml = params.buyer?.vatCondition !== void 0 ? `
|
|
1235
|
+
<ar:CondicionIVAReceptorId>${params.buyer.vatCondition}</ar:CondicionIVAReceptorId>` : "";
|
|
1236
|
+
let fechasServicioXml = "";
|
|
1237
|
+
if (params.concept === 2 /* SERVICES */ || params.concept === 3 /* PRODUCTS_AND_SERVICES */) {
|
|
1238
|
+
const defaultDateStr = params.date.toISOString().split("T")[0].replace(/-/g, "");
|
|
1239
|
+
const startDateStr = params.serviceDates?.startDate ? params.serviceDates.startDate.toISOString().split("T")[0].replace(/-/g, "") : defaultDateStr;
|
|
1240
|
+
const endDateStr = params.serviceDates?.endDate ? params.serviceDates.endDate.toISOString().split("T")[0].replace(/-/g, "") : defaultDateStr;
|
|
1241
|
+
const dueDateStr = params.serviceDates?.dueDate ? params.serviceDates.dueDate.toISOString().split("T")[0].replace(/-/g, "") : defaultDateStr;
|
|
1242
|
+
fechasServicioXml = `
|
|
1243
|
+
<ar:FchServDesde>${startDateStr}</ar:FchServDesde>
|
|
1244
|
+
<ar:FchServHasta>${endDateStr}</ar:FchServHasta>
|
|
1245
|
+
<ar:FchVtoPago>${dueDateStr}</ar:FchVtoPago>`;
|
|
1246
|
+
}
|
|
1219
1247
|
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
1220
1248
|
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
|
|
1221
1249
|
xmlns:ar="http://ar.gov.afip.dif.FEV1/">
|
|
@@ -1237,7 +1265,7 @@ var WsfeService = class _WsfeService {
|
|
|
1237
1265
|
<ar:FECAEDetRequest>
|
|
1238
1266
|
<ar:Concepto>${params.concept}</ar:Concepto>
|
|
1239
1267
|
<ar:DocTipo>${params.buyer?.docType || 99}</ar:DocTipo>
|
|
1240
|
-
<ar:DocNro>${params.buyer?.docNumber || 0}</ar:DocNro
|
|
1268
|
+
<ar:DocNro>${params.buyer?.docNumber || 0}</ar:DocNro>${condicionIVAReceptorXml}
|
|
1241
1269
|
<ar:CbteDesde>${params.invoiceNumber}</ar:CbteDesde>
|
|
1242
1270
|
<ar:CbteHasta>${params.invoiceNumber}</ar:CbteHasta>
|
|
1243
1271
|
<ar:CbteFch>${dateStr}</ar:CbteFch>
|
|
@@ -1248,9 +1276,10 @@ var WsfeService = class _WsfeService {
|
|
|
1248
1276
|
<ar:ImpIVA>${params.vat.toFixed(2)}</ar:ImpIVA>
|
|
1249
1277
|
<ar:ImpTrib>0.00</ar:ImpTrib>
|
|
1250
1278
|
<ar:MonId>PES</ar:MonId>
|
|
1251
|
-
<ar:MonCotiz>1</ar:MonCotiz
|
|
1279
|
+
<ar:MonCotiz>1</ar:MonCotiz>${fechasServicioXml}
|
|
1252
1280
|
${asocXml}
|
|
1253
1281
|
${vatXml}
|
|
1282
|
+
${optXml}
|
|
1254
1283
|
</ar:FECAEDetRequest>
|
|
1255
1284
|
</ar:FeDetReq>
|
|
1256
1285
|
</ar:FeCAEReq>
|