bambucode / tfacturaelectronica

Librería hecha en Delphi que implementa la factura electrónica de México (CFDI).
http://bambucode.com/
Other
63 stars 44 forks source link

Agregar el NODO Cuenta Predial CFDI Ver 3.3 #112

Closed thinkerbadal closed 6 years ago

thinkerbadal commented 6 years ago

Saludos, Amigos Permitanme Felicitarlos a TODOS por la creación de la Liberia TFacturaElectronica para DELPHI Paso a los siguiente son usuario de la Librería ahora con la ver 3.3 necesito pedirles si pueden agregar el NODO Cuenta Predial Anexo Imagen nodo_cuenta_predial

Se preguntaran porque. .. porque en el Anexo 20 Publicado en el SAT para las Ayuntamientos es requerido: GuiaAnexo20DPA facturacion electronica_Ayunta.zip

Anexo 20 Guía de llenado de los CFDI emitidos por la Federación, Entidades, Entidades Federativas y los Municipios por Contribuciones, Derechos, Productos, Aprovechamientos, Apoyos y Estímulos que otorguen

Espero que sea agregado para mayor Funcionalidad de la Liberia. ..GRACIAS

lcarrasco commented 6 years ago

Hola @thinkerbadal gracias por tus comentarios y sugerencia. Debido a que en nuestra empresa no tenemos necesidad de usar ese nodo y dado el trabajo que tenemos actualmente sería algo que tendrías que implementar por tu cuenta o esperar a que alguien más lo hiciera.

De entrada te comento que no debe ser complicado pues en esta versión de la librería se hace uso directo de la interfase del XSD lo cual expone todas las propiedades de CFDI 3.3 por ejemplo aquí ya puedes ver que puedes acceder a la propiedad CuentaPredial:

https://github.com/bambucode/tfacturaelectronica/blob/5e4831f204be01d422a9c8944bf7deda8dfc9564/Versiones/Facturacion.ComprobanteV33.pas#L245

Sugiero intentes implementarlo por tu cuenta y/o experimentes y cuando te topes con algún problema lo expongas para poder guiarte.

fduenas commented 6 years ago

HOla @lcarrasco. cuando te referies a implmentarlo por tu cuenta, si ya se expone en el XSD y en la interfaz y objecto, ¿que más sería necesario implementar?

lcarrasco commented 6 years ago

@fduenas En realidad creo que solo sería hacer pruebas, creo que al ya estar expuesto en el XSD y en la interface/objeto solo es cuestión de usar el nodo y llenarlo.

thinkerbadal commented 6 years ago

Saludos, @Fduenas @lcarrasco , como sería implementarlo dentro del EjemploFacturaElectronica, para que este mas completo el ejemplo de la Libreria

Como comentan, ya esta expuesto en el XSD y en la interface/objeto

Gracias por sus respuestas

fduenas commented 6 years ago

@thinkerbadal : pues pienso que con solo llamar a la propiedad cuentaPredial.numero del comprovante v33

No se hacer lo que hace @lcarrasco para poner la referencia al archivo y línea del código fuente, pero espero me de entender 😄

/tfacturaelectronica/Ejemplo/EjemploFacturaElectronica.dpr Línea 212

concepto33 := Conceptos.Add; ... ... concepto33.CuentaPredial.Numero := 'xxxxxxxxxxx';

thinkerbadal commented 6 years ago

@fduenas como comentas agregue la linea en este orden:

concepto33 := Conceptos.Add; concepto33.ClaveProdServ := '52161529'; // De catálogo concepto33.NoIdentificacion := '1'; concepto33.Cantidad := '1'; concepto33.ClaveUnidad := 'EA'; // De catálogo concepto33.Unidad := 'PZA'; // De catálogo concepto33.Descripcion := 'Concepto No 1'; concepto33.ValorUnitario := '100.00'; concepto33.Importe := '100.00'; concepto33.Descuento := '0.00'; concepto33.CuentaPredial.Numero:= '235989';

y al copilar el ejemplo de la libreria marca esto: error_lib_tfact

lcarrasco commented 6 years ago

@thinkerbadal Se te fijas en el mensaje, aparece algo como : Concepto with Anonymous type found <cfdi:Impuestos>. En este caso a diferencia de la versión anterior el orden en que llenas la instancia importa pues es el orden en que se genera el XML.

De acuerdo a la Guía de Llenado de CFDI 3.3 del SAT, el dato de cuenta predial debe de ir justo después de los nodos de impuestos del concepto, por lo que creo que puede funcionar así:

...
concepto33.Importe := '100.00';
// Primero indicamos los impuestos del nodo
iva33 := concepto33.Impuestos.Traslados.Add;
iva33.Base        := '100.00';
iva33.Impuesto    := '002';
iva33.TipoFactor  := 'Tasa';
iva33.TasaOCuota  := '0.160000';
iva33.Importe     := '16.00';
// Al final agregamos los datos de la cuenta predial
concepto33.CuentaPredial.Numero := '234989';

De igual manera si te sigue fallando te recomiendo subas el XML que te genera la librería para que otros podamos analizarla en alguna oportunidad o bien uses otras herramientas de validación que te ayuden a detectar el error.

Pero vás bien, creo que ya estás cerca de lograrlo.

thinkerbadal commented 6 years ago

Excelente @lcarrasco, @fduenas ¡¡GRACIAS!!, ahora si esta completo el ejemplo de la Libreria aqui anexo el code

// Nodo de: Impuestos -> En este nodo se pueden expresar los impuestos aplicables a cada concepto. iva33 := concepto33.Impuestos.Traslados.Add; iva33.Base := '100.00'; iva33.Impuesto := '002'; iva33.TipoFactor := 'Tasa'; iva33.TasaOCuota := '0.160000'; iva33.Importe := '16.00';

          // Nodo de: Cuenta Predial
          concepto33.CuentaPredial.Numero := '234989';

          // Nodo: Traslados ->En este nodo se pueden expresar los impuestos trasladados aplicables a cada concepto.
          Impuestos.TotalImpuestosTrasladados  := '16.00';

          // Nodo: Traslado ->En este nodo se debe expresar la información detallada de un traslado de impuestos aplicable a cada concepto.
          totalIVA33 := Impuestos.Traslados.Add;
          totalIVA33.Impuesto := '002';
          totalIVA33.TipoFactor := 'Tasa';
          totalIVA33.TasaOCuota := '0.160000';
          totalIVA33.Importe    := '16.00';

:+1:

thinkerbadal commented 6 years ago

<?xml version="1.0"?>

-

<cfdi:Receptor Nombre="Juan & José & 'Niño' & "Niña"" Rfc="MTI0806042N7" UsoCFDI="G01"/>

-

-

-

-

</cfdi:Traslados>

</cfdi:Impuestos>

</cfdi:Concepto>

</cfdi:Conceptos>

-

-

</cfdi:Traslados>

</cfdi:Impuestos>

-

-

</implocal:ImpuestosLocales>

</cfdi:Complemento>

</cfdi:Comprobante>