Closed jlopezjuy closed 9 months ago
Actualizamos a la version 1.0.1 y ahora tenemos este otro error:
async getDatosFacturaB(venta: FacturaBDTO): Promise<any> { const factura: FacturaBDTO = venta; const afip = new Afip({ CUIT: 33222111, key: '../../../../../cetificados/key', cert: '../../../../../cetificados/cert', production: true, access_token: 'sssss'});
A partir de la v1 la forma de setear el certificado es diferente: https://docs.afipsdk.com/paso-a-paso/instalacion
Aplique esa nueva forma, y sigo en el mismo error... 400
` const cert = fs.readFileSync('./cert', {encoding: 'utf8'}); // Key (Puede estar guardado en archivos, DB, etc) const key = fs.readFileSync('./key', {encoding: 'utf8'}); const factura: FacturaADto = venta; const afip = new Afip({ CUIT: 444, key: key, cert: cert, production: true, access_token: 'ssss' });
`
Si haces un log de error o error.data no te sale nada mas?
lo unico que sale en cada prueba es lo siguiente:
una mas nueva
Estas haciendo el catch? Probaste hacer console log de error.data?
async getDatosFacturaA(venta: FacturaADto): Promise<any> {
try {
const cert = fs.readFileSync('./cert', {encoding: 'utf8'});
// Key (Puede estar guardado en archivos, DB, etc)
const key = fs.readFileSync('./key', {encoding: 'utf8'});
const factura: FacturaADto = venta;
const afip = new Afip({
CUIT: 4444,
key: key,
cert: cert,
production: true,
access_token: '444455rfff'
});
if (factura.tipoDeFactura !== 1) {
throw new HttpException('Servicio dedicado unicamente a tipo de Facturas B = 6', HttpStatus.FORBIDDEN);
}
/**
* Número de la ultima Factura B
**/
const last_voucher = await afip.ElectronicBilling.getLastVoucher(factura.puntoVenta, factura.tipoDeFactura);
/**
* Numero de factura
**/
const numero_de_factura = last_voucher + 1;
/**
* Fecha de la factura en formato aaaa-mm-dd (hasta 10 dias antes y 10 dias despues)
**/
const fecha = new Date(Date.now() - new Date().getTimezoneOffset() * 60000).toISOString().split('T')[0];
console.log('importe total 35: ' + factura.importeTotal);
const importe_gravado: number = factura.importeTotal;
/**
* Importe exento al IVA
**/
const importe_exento_iva: number = 0;
/**
* Importe de IVA
**/
const importe_iva: number = +((factura.importeTotal * 21) / 100).toFixed(2);
console.log('importe iva: ' + importe_iva);
/**
* Los siguientes campos solo son obligatorios para los conceptos 2 y 3
**/
let fecha_servicio_desde = null,
fecha_servicio_hasta = null,
fecha_vencimiento_pago = null;
if (factura.concepto === 2 || factura.concepto === 3) {
/**
* Fecha de inicio de servicio en formato aaaammdd
**/
fecha_servicio_desde = 20191213;
/**
* Fecha de fin de servicio en formato aaaammdd
**/
fecha_servicio_hasta = 20191213;
/**
* Fecha de vencimiento del pago en formato aaaammdd
**/
fecha_vencimiento_pago = 20191213;
}
const data = {
CantReg: 1, // Cantidad de facturas a registrar
PtoVta: factura.puntoVenta,
CbteTipo: factura.tipoDeFactura,
Concepto: factura.concepto,
DocTipo: factura.tipoDeDocumento,
DocNro: factura.numeroDeDocumento,
CbteDesde: numero_de_factura,
CbteHasta: numero_de_factura,
CbteFch: parseInt(fecha.replace(/-/g, '')),
FchServDesde: fecha_servicio_desde,
FchServHasta: fecha_servicio_hasta,
FchVtoPago: fecha_vencimiento_pago,
ImpTotal: (importe_gravado + importe_iva + importe_exento_iva).toFixed(2),
ImpTotConc: 0, // Importe neto no gravado
ImpNeto: factura.importeTotal,
ImpOpEx: importe_exento_iva,
ImpIVA: importe_iva,
ImpTrib: 0, //Importe total de tributos
MonId: 'PES', //Tipo de moneda usada en la factura (PES = pesos argentinos)
MonCotiz: 1, // Cotización de la moneda usada (1 para pesos argentinos)
Iva: [
// Alícuotas asociadas a la factura
{
Id: 5, // Id del tipo de IVA (5 = 21%)
BaseImp: factura.importeTotal,
Importe: importe_iva,
},
],
};
/**
* Creamos la Factura
**/
try {
console.log(data);
const res = await afip.ElectronicBilling.createVoucher(data);
return {
cae: res.CAE,
vencimiento: res.CAEFchVto,
numFactura: numero_de_factura,
importeTota: (importe_gravado + importe_iva + importe_exento_iva).toFixed(2),
};
} catch (e) {
console.log('**************');
console.log(e.toString());
throw new HttpException(e.toString(), HttpStatus.FORBIDDEN);
}
}catch (e) {
console.log('**************');
console.log(e.toString());
throw new HttpException(e.toString(), HttpStatus.FORBIDDEN);
}
}
Lo que se ve en el log:
console.log(e); console.log(e.data);
Como necesitaba facturar si o si, por que llegaron muchos clientes, hice revert a la version 0.7.11, y me dejo facturar, el fin de semana que no se trabaja voy a hacer pruebas con el branch que tengo y paso los logs para que revisen. gracias.
Por el primer error podia ser un tema del certificado, vienen generándose con algún error desde el lado de AFIP, suele evitarse cuando al generar la key en openssl se agrega el parámetro -traditional
openssl genrsa -traditional -out [nombre de archivo] 2048
Hola buenas tardes, estamos teniendo problemas para facturar.
Espero puedan ayudarnos tenemos la version "@afipsdk/afip.js": "^0.7.9",