Obtener resumen de impuestos Librería CFDI 3.3

Para obtener el resumen de impuestos de los conceptos de un CFDi se puede utilizar la clase TMDResumenlImpuestos de la siguiente manera:

Primeramente generamos un CFDi utilizando la clase TMDCfdi33; los conceptos agregados son 2 con los siguientes impuestos:

Concepto 1
Traslado IVA Tasa 0.16 Importe 400
Retencion ISR Tasa 0.29 Importe 696

Concepto 2
Traslado IVA Tasa 0.16 Importe 400
Retencion ISR Tasa 0.29 Importe 696
Retencion IEPS Tasa 0.53 Importe 1272


Resumen quedaría
Traslado IVA Tasa 0.16 Importe 800
Retencion ISR Tasa 0.29 Importe 1392
Retencion IEPS Tasa 0.53 Importe 1272

En código sería: (Nota: necesitas los archivos de la entrada "Librería CFDi 3.3")

/* CFDI - Impuestos -> Nodo condicional para expresar el resumen de los impuestos aplicables. */

            /* Generamos un cfdi básico */
            TMDCfdi33 _cfdi = MDCfdiTestSourceCodes.LoadBasicCfdi();

            /* El Cfdi generado contiene un concepto con los siguientes impuestos Impuesto = "002"; 
             * TipoFactor = "Tasa"; TasaOCuota = 0.16m; .Importe = 400;
             * 
             * Agregamos otro impuesto al concepto existente
             */
            TMDCfdi33ConceptoItem _concepto = _cfdi.Conceptos.Concepto[0];
            //ISR
            TMDCfdi33RetencionItem _retencion = _concepto.Impuestos.Retenciones.Retencion.Add();
            _retencion.Base = 2400;
            _retencion.Impuesto = "001";
            _retencion.TipoFactor = "Tasa";
            _retencion.TasaOCuota = 0.29m;
            _retencion.Importe = 696;

            /* Agregamos otro concepto con 2 impuestos */
            _concepto = _cfdi.Conceptos.Concepto.Add();
            _concepto.NoIdentificacion = "01";
            _concepto.ClaveProdServ = "72103300";
            _concepto.Cantidad = 1;
            _concepto.ClaveUnidad = "E48";
            _concepto.Unidad = "SERVICIO";
            _concepto.Descripcion = "MANO DE OBRA POR REPARACIÓN DE FALLA ELÉCTRICA";
            _concepto.ValorUnitario = 2500;
            _concepto.Importe = 2500;

            //IVA
            TMDCfdi33TrasladoItem _traslado = _concepto.Impuestos.Traslados.Traslado.Add();
            _traslado.Base = 2500;
            _traslado.Impuesto = "002";
            _traslado.TipoFactor = "Tasa";
            _traslado.TasaOCuota = 0.16m;
            _traslado.Importe = 400;

            //ISR
            _retencion = _concepto.Impuestos.Retenciones.Retencion.Add();
            _retencion.Base = 2400;
            _retencion.Impuesto = "001";
            _retencion.TipoFactor = "Tasa";
            _retencion.TasaOCuota = 0.29m;
            _retencion.Importe = 696;

            //IEPS
            _retencion = _concepto.Impuestos.Retenciones.Retencion.Add();
            _retencion.Base = 2400;
            _retencion.Impuesto = "003";
            _retencion.TipoFactor = "Tasa";
            _retencion.TasaOCuota = 0.53000m;
            _retencion.Importe = 1272;

            /* Obtenemos el resumen de impuestos de los conceptos */
            /* ************************************************** */
            TMDResumenlImpuestos _resumeImpuestos = new TMDResumenlImpuestos(_cfdi);
            _resumeImpuestos.Generate();

            /* Sustituimos el resumen de impuestos calculados */
            _cfdi.Impuestos = _resumeImpuestos.Impuestos;


En la depuración podemos observar que los resultados concuerdan con lo esperado:





/* ****************************************************************** */
EL SOFTWARE SE PROPORCIONA "TAL CUAL" Y EL AUTOR RECHAZA TODAS LAS 
GARANTÍAS CON RESPECTO A ESTE SOFTWARE, INCLUIDAS TODAS LAS GARANTÍAS 
IMPLÍCITAS DE COMERCIABILIDAD Y ADECUACIÓN. EN NINGÚN CASO EL AUTOR SERÁ 
RESPONSABLE POR CUALQUIER DAÑO ESPECIAL, DIRECTO, INDIRECTO O CONSECUENTE, 
O CUALQUIER DAÑO QUE RESULTE DE LA PÉRDIDA DE USO, DATOS O BENEFICIOS, YA 
SEA EN UNA ACCIÓN DE CONTRATO, NEGLIGENCIA U OTRA ACCIÓN EXTRACONTRACTUAL
QUE SURJA DE O EN CONEXIÓN CON EL USO O RENDIMIENTO DE ESTE SOFTWARE.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Comentarios

Entradas populares de este blog

Tipo de cambio FIX con WebService de Banxico

Complemento - Leyendas Fiscales

MyD Verifica - Verifica Sello CFDI, TFD, Estado del CFDI y Genera docx, Verifica contra listas de EFOS y EDOS