Comments (29)
Hola Guille!, Probé también con intval('20180627') y sigo con el mismo error. El dump me arroja int(20180627). La versión que estoy utilizando de PHP es la 7.0.0. Probé tambien con la 5.1.6, 5.2.7, 5.6.10. Además intenté cambiar la configuración del timezone del php.ini, pero nada. Me esta matando el error :(
from afip.php.
from afip.php.
Hola @tecnoher, si estaria bueno que te pases a la libreria!, la verdad me sorprendio la simpleza.
no no hay nada como una funcion asi, ya tenes que tener el CUIT/CUIL de antemano.
from afip.php.
Hola! https://es.wikipedia.org/wiki/Clave_Única_de_Identificación_Tributaria acá explica cómo obtener el CUIT desde un DNI.
from afip.php.
from afip.php.
Hola Ivan! Si, probe con la función date y tambien "hardcodeando" la fecha. Ademas probe pasarle NULL, y tambien no pasar el campo CbteFch. Ahi paso el código:
`<?php
include '../src/Afip.php';
$data = array(
'CantReg' => 1, // Cantidad de comprobantes a registrar
'PtoVta' => 3, // Punto de venta
'CbteTipo' => 11, // Tipo de comprobante (ver tipos disponibles)
'Concepto' => 1, // Concepto del Comprobante: (1)Productos, (2)Servicios, (3)Productos y Servicios
'DocTipo' => 80, // Tipo de documento del comprador (ver tipos disponibles)
'DocNro' => 20306370708, // Numero de documento del comprador
'CbteDesde' => 1, // Numero de comprobante o numero del primer comprobante en caso de ser mas de uno
'CbteHasta' => 1, // 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' => 1, // Importe total del comprobante
'ImpTotConc' => 0, // Importe neto no gravado
'ImpNeto' => 1, // Importe neto gravado
'ImpOpEx' => 0, // Importe exento de IVA
'ImpIVA' => 0, //Importe total de IVA
'ImpTrib' => 0, //Importe total de tributos
'FchServDesde' => NULL, // (Opcional) Fecha de inicio del servicio (yyyymmdd), obligatorio para Concepto 2 y 3
'FchServHasta' => NULL, // (Opcional) Fecha de fin del servicio (yyyymmdd), obligatorio para Concepto 2 y 3
'FchVtoPago' => NULL, // (Opcional) Fecha de vencimiento 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)
);
$afip = new Afip(array('CUIT' => 27328056807, 'production' => true, 'cert' => 'CN27328056807_6254f0c7b9d1978b.crt', 'key' => '27328056807.key'));
$res = $afip->ElectronicBilling->CreateVoucher($data);
echo $res['CAE']; //CAE asignado el comprobante
echo $res['CAEFchVto']; //Fecha de vencimiento del CAE (yyyy-mm-dd)
?>
`
from afip.php.
from afip.php.
Probe con string y con int, y tambien me tira error
from afip.php.
Ahora voy a hacer unas pruebas en un server con linux a ver como se comporta!
from afip.php.
Buenas chicos, probe la libreria y esta funcionando full. Tambien estoy con ganas de hacer el paso a Laravel jeje esa seria una actualizacion... Mi proyecto esta en laravel y me hice maña para hacerlo funcionar. Con respecto al error con la fecha del Comprobante. Dime que version de PHP estas utilizando... y si haces un var_dump() de intval(date('Ymd')), prueba tambien hardcodeando lo siguiente con fecha actual intval('20180627')
from afip.php.
Muy extraño hermano. Lo que si, ese error ya lo da afip por lo que entiendo. Puede que se tenga que depurar el archivo ElectronicBilliing.php para ver como confecciona el archivo xml con el que hace soap.
from afip.php.
Si la verdad muy raro, acabo de hacer una prueba en un servidor con linux y va de 10! Debe ser algun problema de configuración de mi XAMPP, versión php, etc. ya que como vos decis el error lo devuelve el webservice de Afip.
from afip.php.
Yo uso xamp la ultima version. Pero si tube problema con una version anterior. En mi caso fue con la ejecucion de soap.
from afip.php.
Pudiste solucionar el problema Agustin?
from afip.php.
Hola gente, comparto lo que me soluciono este problema:
quitar la referencia (&) en el parametro $data dentro del metodo CreateVoucher.
Ivan, excelente trabajo, saludos
from afip.php.
@agustinbus disculpa que vuelva con este tema, estoy teniendo un inconveniente similar al que te paso con lo de la fecha "Campo CbteFch No corresponde a una fecha valida con formato YYYYMMDD" también veo que en un servidor cuando cargo el wsdl con FECAESolicitar, me carga bien la CABECERA pero no el DETALLE, queda vacio, tal vez por esto de la fecha, como lo solucionaste?
from afip.php.
Hola @tecnoher
Probaron asi?
'CbteFch' => intval(date('Ymd', strtotime($cbteFch))), // (Opcional) Fecha del comprobante (yyyymmdd) o fecha actual si es nulo
donde $cbteFch = $cuota->fecha_creacion;
osea un campo fecha
Saludos
from afip.php.
Hola @NicoMachado gracias por tu respuesta.
En el wsdl el campo CbteFch está declarado como string
<s:element minOccurs="0" maxOccurs="1" name="CbteFch" type="s:string"/>
y en el documento de AFIP dice que es un STRING de 8, es muy raro lo que pasa por que no se me llena ni un campo del
<s:complexType name="FEDetRequest">
from afip.php.
hola @tecnoher , te pego aca como armo mi request...
//Ver Ejemplo de afipSDK
$data = array(
'CantReg' => 1, // Cantidad de comprobantes a registrar
'PtoVta' => $ptoVta, // Punto de venta
'CbteTipo' => $CbteTipo, // Tipo de comprobante (ver tipos disponibles)
'Concepto' => 2, // Concepto del Comprobante: (1)Productos, (2)Servicios, (3)Productos y Servicios
'DocTipo' => $docTipo, // Tipo de documento del comprador (ver tipos disponibles)
'DocNro' => $docNro, // Numero de documento del comprador
'CbteDesde' => $UltNro, // Numero de comprobante o numero del primer comprobante en caso de ser mas de uno
'CbteHasta' => $UltNro, // 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
'CbteFch' => intval(date('Ymd', strtotime($cbteFch))), // (Opcional) Fecha del comprobante (yyyymmdd) o fecha actual si es nulo
'ImpTotal' => $imp_total, // Importe total del comprobante
'ImpTotConc' => $imp_total_conceptos, // Importe neto no gravado
'ImpNeto' => $imp_neto, // Importe neto gravado
'ImpOpEx' => 0, // Importe exento de IVA
'ImpIVA' => 0, //Importe total de IVA
'ImpTrib' => 0, //Importe total de tributos
'FchServDesde' => intval(date('Ymd', strtotime($recibo->fecha))), // (Opcional) Fecha de inicio del servicio (yyyymmdd), obligatorio para Concepto 2 y 3
'FchServHasta' => intval(date('Ymd', strtotime($recibo->fecha))), // (Opcional) Fecha de fin del servicio (yyyymmdd), obligatorio para Concepto 2 y 3
'FchVtoPago' => intval(date('Ymd', strtotime($recibo->fecha))), // (Opcional) Fecha de vencimiento 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)
'Opcionales' => array( // (Opcional) Campos auxiliares
array(
'Id' => 10, // Codigo de tipo de opcion (ver tipos disponibles)
'Valor' => 1 // Valor
),
array(
'Id' => 1011,
'Valor' => $docTipo
),
array(
'Id' => 1012,
'Valor' => (float) $docNro
),
),
);
luego solo invoco al metodo...
try {
$result = $afip->ElectronicBilling->CreateVoucher($data);
var_dump($result);
} catch (Exception $ex) {
$error = utf8_decode($ex->getMessage());
}
Fijate si te da alguna punta.
Postea como armas el request, si queres.
from afip.php.
Te muestro lo que cargo en el WSDL en la etiqueta FECAESolicitar -> FeCAEReq
de ahí me carga bien el FeCabReq pero el FeDetReq lo deja vacio, osea que el error no es tanto por el campo CbteFch en sí, sino por que no hay datos a ese nivel
subo una imagen acá por que se pegó horrible el array
https://i.imgur.com/Di0iKLr.png
https://i.imgur.com/VgwyX1g.png
"FeCAEReq" => array:2 [▼ "FeCabReq" => array:3 [▼ "CantReg" => 1 "PtoVta" => 17 "CbteTipo" => 6 ] "FeDetReq" => array:1 [▼ "FECAEDetRequest" => array:1 [▼ 0 => & array:18 [▼ "Concepto" => 1 "DocTipo" => 80 "DocNro" => 2030749807.0 "CbteDesde" => 1 "CbteHasta" => 1 "CbteFch" => "20190227" "ImpTotal" => 7018.0 "ImpTotConc" => 0.0 "ImpNeto" => 5800.0 "ImpOpEx" => 0.0 "ImpTrib" => 0 "ImpIVA" => 1218.0 "FchServDesde" => "" "FchServHasta" => "" "FchVtoPago" => "" "MonId" => "PES" "MonCotiz" => 1 "Iva" => array:1 [▼ "AlicIva" => array:1 [▼ 0 => array:3 [▼ "Id" => 5 "BaseImp" => 5800.0 "Importe" => 1218.0 ] ] ] ] ] ] ]
este es el response con los errores
+"FeDetResp": {#417 ▼ +"FECAEDetResponse": {#385 ▼ +"Concepto": 0 +"DocTipo": 0 +"DocNro": 0 +"CbteDesde": 0 +"CbteHasta": 0 +"Resultado": "R" +"CAE": "" +"CAEFchVto": "" } } +"Errors": {#391 ▼ +"Err": array:2 [▼ 0 => {#388 ▼ +"Code": 10016 +"Msg": "Campo CbteFch No corresponde a una fecha valida con formato YYYYMMDD" } 1 => {#421 ▼ +"Code": 10008 +"Msg": "Campo CbteDesde se encuentre entre entre 1 y 99999999." } ] } }
from afip.php.
Me llama la atencion eso que remarco, justamente el elemento FECAEDetRequest parece ser un array con un formato cod =>valor ...
Y deberia ser solo un array...
podes pegar el codigo fuente de como armas el $data ?
from afip.php.
si es raro, pero bueno estbaa usando otra libreria, ahora me estoy pasando a esta libreria, te re agradezco igual haberte tomado el tiempo de ayudarme.
Te hago una consulta sencilla ya que estamos, hay un metodo de consulta de dni? algo donde por dni me traiga el cuit de la persona?
from afip.php.
Y probaste poniendo la fecha como numero?
…
On Wed, 27 Feb 2019 at 19:32 Hernan T @.***> wrote: si es raro, pero bueno estbaa usando otra libreria, ahora me estoy pasando a esta libreria, te re agradezco igual haberte tomado el tiempo de ayudarme. Te hago una consulta sencilla ya que estamos, hay un metodo de consulta de dni? algo donde por dni me traiga el cuit de la persona? — You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub <#6 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/Aaa8Th16OXkQk8yCviW5Mvpg_3gJPsafks5vRweagaJpZM4U5pE5 .
Sisi, pero el tema es que usaba otra libreria, que acaba de pasar a mejor vida jaja, ahora está funcionando todo de 10
ya que te tengo acá Ivan, te felicito por la SDK,
sabes que en la otra librería que usaba se hacía una consulta de constancia de inscripcion, que si no encontraba a la persona inscripta, de todas maneras te daba el nombre completo, dni (igual es el parámetro que se le pasa a la funcion) y dirección a veces..
https://www.afip.gob.ar/ws/WSCI/manualwssrwsconstanciainscripcionv2.0.pdf
estoy tratando de hacerlo funcionar pero si pongo el servicio en el TA me da un error
$ta = $this->afip->GetServiceTA('ws_sr_constancia_inscripcion');
from afip.php.
Hola @tecnoher, si estaria bueno que te pases a la libreria!, la verdad me sorprendio la simpleza.
no no hay nada como una funcion asi, ya tenes que tener el CUIT/CUIL de antemano.
Gracias Nicolas es simple y clara (no tan simple igual ehh tiene su buen trabajito). Ya la estoy utilizando :)
from afip.php.
casi me da un infarto... usanto en producción esta librería me salió el mismo mensaje del campo CbteFch incorrecto..
lo que hice fué sacar la referencia de la variable $data (&$data) en el método CreateVoucher y funcionó!
'FECAEDetRequest' => $data
tal cual lo dijo "estebanbordon" en este thread
gracias gente!
from afip.php.
Hola @tecnoher @estebanbordon , solo para sacarme la curiosidad
en mi caso funciona la linea:
...
'FeDetReq' => array(
'FECAEDetRequest' => &$data
)
...
Con el operador por referencia.
Que version de PHP estan corriendo ?
en mi caso estoy corriendo un XAMPP, con PHP Version 5.3.1.
Gracias
from afip.php.
Si lo ejecuto local (docker, apache y php7.1) funciona esa linea pero en el servidor que tengo no funciona.
El servidor esun VPS con Centos7 y PHP 7.0.33 (cli)
Estoy casi seguro que es por la versión de PHP
from afip.php.
Aca vengo de nuevo con un UPGRADE, finalmente encontré que actualizando el WSDL de la consulta A13 se puede obtener un CUIT por DNI
Se llama al "getIdPersonaListByDocumento" y el WS te devuelve el cuit de la persona
Tenés que actualizar el archivo "ws_sr_padron_a13-production.wsdl" por el que está en este link:
wsdl -> https://aws.afip.gov.ar/sr-padron/webservices/personaServiceA13?WSDL
from afip.php.
Hola!
Confirmo que la solución que dieron @tecnoher y @NicoMachado funciona (pasar la variable $data
por valor). El problema surge concretamente con PHP 7.0.
En mi caso, lo que hice fue cambié el orden de las asignaciones para respetar el funcionamiento anterior:
file: src/Afip_res/Class/ElectronicBilling.php
public function CreateVoucher($data, $return_response = FALSE)
{
$req = array(
'FeCAEReq' => array(
'FeCabReq' => array(
'CantReg' => $data['CbteHasta']-$data['CbteDesde']+1,
'PtoVta' => $data['PtoVta'],
'CbteTipo' => $data['CbteTipo']
),
'FeDetReq' => array(
'FECAEDetRequest' => null // CAMBIÉ ESTO!
)
)
);
unset($data['CantReg']);
unset($data['PtoVta']);
unset($data['CbteTipo']);
if (isset($data['Tributos']))
$data['Tributos'] = array('Tributo' => $data['Tributos']);
if (isset($data['Iva']))
$data['Iva'] = array('AlicIva' => $data['Iva']);
if (isset($data['Opcionales']))
$data['Opcionales'] = array('Opcional' => $data['Opcionales']);
$req['FeCAEReq']['FeDetReq']['FECAEDetRequest'] = $data; // Y AGREGUÉ ESTO!
Gracias!
from afip.php.
Related Issues (20)
- Error SOAP v 0.7.4 HOT 2
- Facturas no se generan en AFIP HOT 1
- (10197) Si el comprobante es Debito o Credito, enviar estructura CbteAsoc o PeriodoAsoc HOT 2
- Error interno de base de datos - FECAEcSolicitar HOT 4
- Error 10158 solo en Producción, en test me funciona bien HOT 7
- Cómo puedo obtener la condicion frente al IVA? HOT 4
- openssl_pkcs7_sign(): error creating PKCS7 structure! HOT 2
- ImpNeto, ImpOpEx, ImpIVA error en los valores HOT 3
- Necesita un token para usar el SDK en producction. Ingrese en >> https://app.afipsdk.com << para obtener uno. HOT 4
- Consultar en Padron A5 HOT 2
- Se puede consultar comprobantes "Recibidos"? HOT 1
- Fatal error: Uncaught Exception: (600) ValidacionDeToken: Parametro nulo o vacio HOT 3
- Undefined constant SOAP_1_2 in c:\........................... HOT 3
- Vuelvo a consultar "Los importes informados en AlicIVA no se corresponden con los porcentajes"
- Warning: openssl_pkcs7_sign(): error getting private key in C:\xampp\htdocs\Sistema\afip\src\Afip.php HOT 1
- Sigue vigente esta libreria? HOT 2
- Factura a monotributistas. Error: "(10018) Si ImpIva es igual a 0 el objeto Iva y AlicIva son obligatorios. Id iva = 3 (iva 0)" HOT 6
- Exception: (10051) Los importes informados en AlicIVA no se corresponden con los porcentajes HOT 5
- Error: Undefined Undefined HOT 5
- Error al usar un certificado manualmente creado HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from afip.php.