AfipSDK / afip.php

Libreria para usar los Web Services de AFIP
https://afipsdk.com/
MIT License
269 stars 119 forks source link

error al generar Nota Credito 213 mipymes #64

Closed fedeve closed 4 years ago

fedeve commented 4 years ago

Hola Buen Dia,

Estoy retomando el problema a la hora de generar un nota de crédito electrónica de miPymes de afip.

Me otorga el siguiente error: (10158) El campo CbteAsoc.CbteFch es obligatorio informar si es una Factura de Credito.

Ejemplo:

$data = array( 'CantReg' => 1, // Cantidad de comprobantes a registrar 'PtoVta' => 3, // Punto de venta 'CbteTipo' => 213, // Tipo de comprobante (ver tipos disponibles) 'Concepto' => 2, // Concepto del Comprobante: (1)Productos, (2)Servicios, (3)Productos y Servicios 'DocTipo' => 80, // Tipo de documento del comprador (ver tipos disponibles) 'DocNro' => $doc, //30643997734 ,//$convenio->cuit, // Numero de documento del comprador 'CbteDesde' =>$ll, // Numero de comprobante o numero del primer comprobante en caso de ser mas de uno 'CbteHasta' => $ll, // Numero de comprobante o numero del ultimo comprobante en caso de ser mas de uno 'CbteFch' => intval(date('Ymd')), // (Opcional) Fecha del comprobante (yyyymmdd) o fecha actual si es nulo 'ImpTotal' => $comprobante->total, // Importe total del comprobante 'ImpTotConc' => 0, // Importe neto no gravado 'ImpNeto' => $comprobante->total, // Importe neto gravado 'ImpOpEx' => 0, // Importe exento de IVA 'ImpIVA' => 0, //Importe total de IVA 'ImpTrib' => 0, //Importe total de tributos 'FchServDesde' => '20080725', // (Opcional) Fecha de inicio del servicio (yyyymmdd), obligatorio para Concepto 2 y 3 'FchServHasta' => '30080725', // (Opcional) Fecha de fin del servicio (yyyymmdd), obligatorio para Concepto 2 y 3 'MonId' => 'PES', //Tipo de moneda usada en el comprobante (ver tipos disponibles)('PES' para pesos argentinos) 'MonCotiz' => 1, // Cotización de la moneda usada (1 para pesos argentinos) 'CbtesAsoc' => array( 'CbteAsoc' => array( 'Tipo' => 211, 'PtoVta' => 3, // Id del opcion 'Nro' => intval($compro_asociado->observaciones), 'Cuit' => 31116811264,//, 'CbteFch' => intval($compro_asociado->fecha->format('Ymd'))

                )
)

);

Saludos.

ivanalemunioz commented 4 years ago

Probaste actualizar la libreria? Los wsdl viejos no tienne le campo CbteAsoc.CbteFch

fedeve commented 4 years ago

buenas , correcto el problema era que estaba desacutualizado el archivo,

ahora me pide que le ingrese el opcional:

Exception in ElectronicBilling.php line 364: (10162) Si el comprobante es MiPyMEs (FCE) es obligatorio informar opcionales. Ver metodo FEParamGetTiposOpcional()

entiendo que tengo que informar esto: WSFEv1.AgregarOpcional(22, "S") ' Anulación

pero no encuentro el formato correcto para hacerlo

ivanalemunioz commented 4 years ago

Tenes que agregarlo al $data

'Opcionales' => array( // (Opcional) Campos auxiliares array( 'Id' => 17, // Codigo de tipo de opcion (ver tipos disponibles) 'Valor' => 2 // Valor ) ),

fedeve commented 4 years ago

Muchas gracias ahi logre que ande con sus ayudas

dejo el ejemplo final con el cual anduvo:

$data = array( 'CantReg' => 1, // Cantidad de comprobantes a registrar 'PtoVta' => 3, // Punto de venta 'CbteTipo' => 213, // Tipo de comprobante (ver tipos disponibles) 'Concepto' => 2, // Concepto del Comprobante: (1)Productos, (2)Servicios, (3)Productos y Servicios 'DocTipo' => 80, // Tipo de documento del comprador (ver tipos disponibles) 'DocNro' => $doc, //30643997734 ,//$convenio->cuit, // Numero de documento del comprador 'CbteDesde' =>$ll, // Numero de comprobante o numero del primer comprobante en caso de ser mas de uno 'CbteHasta' => $ll, // Numero de comprobante o numero del ultimo comprobante en caso de ser mas de uno 'CbteFch' => intval(date('Ymd')), // (Opcional) Fecha del comprobante (yyyymmdd) o fecha actual si es nulo 'ImpTotal' => $comprobante->total, // Importe total del comprobante 'ImpTotConc' => 0, // Importe neto no gravado 'ImpNeto' => $comprobante->total, // Importe neto gravado 'ImpOpEx' => 0, // Importe exento de IVA 'ImpIVA' => 0, //Importe total de IVA 'ImpTrib' => 0, //Importe total de tributos 'FchServDesde' => '20080725', // (Opcional) Fecha de inicio del servicio (yyyymmdd), obligatorio para Concepto 2 y 3 'FchServHasta' => '30080725', // (Opcional) Fecha de fin del servicio (yyyymmdd), obligatorio para Concepto 2 y 3 'MonId' => 'PES', //Tipo de moneda usada en el comprobante (ver tipos disponibles)('PES' para pesos argentinos) 'MonCotiz' => 1, // Cotización de la moneda usada (1 para pesos argentinos) 'CbtesAsoc' => array( 'CbteAsoc' => array( 'Tipo' => 211, 'PtoVta' => 3, // Id del opcion 'Nro' => intval($compro_asociado->observaciones), 'Cuit' => 31116811264,//, 'CbteFch' => intval($compro_asociado->fecha->format('Ymd'))

            )

), 'Opcionales' => array( // (Opcional) Campos auxiliares array( 'Id' => 22, // Codigo de tipo de opcion (ver tipos disponibles) 'Valor' => 'N' // Valor no es anulacion ) )

        );

saludos!