예제 #1
0
        /// <summary>
        /// Agrega el concepto y su respectivo impuesto trasladado y retencion
        /// Solo debe ser llamado cuando el concepto tenga un impuesto y una
        /// retencion.
        /// </summary>
        /// <param name="nConcepto"></param>
        /// <param name="trasladoImpuesto"></param>
        /// <param name="trasladoTasaOCuota"></param>
        /// <param name="trasladoBase"></param>
        /// <param name="trasladoImporte"></param>
        /// <param name="trasladoTipoFactor"></param>
        /// <param name="retencionImpuesto"></param>
        /// <param name="retencionTasaOCuota"></param>
        /// <param name="retencionBase"></param>
        /// <param name="retencionImporte"></param>
        /// <param name="retencionTipoFactor"></param>
        public void AddConcepto(ComprobanteConcepto nConcepto, string trasladoImpuesto, decimal trasladoTasaOCuota, decimal trasladoBase, decimal trasladoImporte, string trasladoTipoFactor, string retencionImpuesto, decimal retencionTasaOCuota, decimal retencionBase, decimal retencionImporte, string retencionTipoFactor)
        {
            nConcepto.Impuestos = new ComprobanteConceptoImpuestos();
            nConcepto.Importe   = Math.Round(nConcepto.Cantidad * nConcepto.ValorUnitario, decimalesItem, MidpointRounding.AwayFromZero);

            //Solo Un traslado
            conceptoTraslado                 = new ComprobanteConceptoImpuestosTraslado();
            conceptoTraslado.Impuesto        = trasladoImpuesto;
            conceptoTraslado.TasaOCuota      = trasladoTasaOCuota;
            conceptoTraslado.Base            = trasladoBase;
            conceptoTraslado.Importe         = trasladoImporte;
            conceptoTraslado.TipoFactor      = trasladoTipoFactor;
            nConcepto.Impuestos.Traslados    = new ComprobanteConceptoImpuestosTraslado[1];
            nConcepto.Impuestos.Traslados[0] = conceptoTraslado;

            //Solo una retencion
            conceptoRetencion                  = new ComprobanteConceptoImpuestosRetencion();
            conceptoRetencion.Impuesto         = retencionImpuesto;
            conceptoRetencion.TasaOCuota       = retencionTasaOCuota;
            conceptoRetencion.Base             = retencionBase;
            conceptoRetencion.Importe          = retencionImporte;
            conceptoRetencion.TipoFactor       = retencionTipoFactor;
            nConcepto.Impuestos.Retenciones    = new ComprobanteConceptoImpuestosRetencion[1];
            nConcepto.Impuestos.Retenciones[0] = conceptoRetencion;

            conceptos.Add(nConcepto);
        }
예제 #2
0
        /// <summary>
        /// Agrega el concepto y su respectivo impuesto trasladado
        /// Este metodo solo debe ser llamado cuendo el concepto tenga
        /// Uno y solo un impuesto por trasladar o retener (No excento)
        /// </summary>
        /// <param name="nConcepto"></param>
        /// <param name="nImpuesto"></param>
        /// <param name="nTasaOCuota"></param>
        /// <param name="nBase"></param>
        /// <param name="nImporte"></param>
        /// <param name="nTipoFactor"></param>
        /// <param name="isTraslado"></param>
        public void AddConcepto(ComprobanteConcepto nConcepto, string nImpuesto, decimal nTasaOCuota, decimal nBase, decimal nImporte, string nTipoFactor, bool isTraslado = true)
        {
            nConcepto.Impuestos = new ComprobanteConceptoImpuestos();

            if (isTraslado)
            {
                //Solo Un traslado
                conceptoTraslado                 = new ComprobanteConceptoImpuestosTraslado();
                conceptoTraslado.Impuesto        = nImpuesto;
                conceptoTraslado.TasaOCuota      = nTasaOCuota;
                conceptoTraslado.Base            = nBase;
                conceptoTraslado.Importe         = nImporte;
                conceptoTraslado.TipoFactor      = nTipoFactor;
                nConcepto.Importe                = Math.Round(nConcepto.Cantidad * nConcepto.ValorUnitario, decimalesItem, MidpointRounding.AwayFromZero);
                nConcepto.Impuestos.Traslados    = new ComprobanteConceptoImpuestosTraslado[1];
                nConcepto.Impuestos.Traslados[0] = conceptoTraslado;
                conceptos.Add(nConcepto);
            }
            else
            {
                //Solo Un traslado
                conceptoRetencion                  = new ComprobanteConceptoImpuestosRetencion();
                conceptoRetencion.Impuesto         = nImpuesto;
                conceptoRetencion.TasaOCuota       = nTasaOCuota;
                conceptoRetencion.Base             = nBase;
                conceptoRetencion.Importe          = nImporte;
                conceptoRetencion.TipoFactor       = nTipoFactor;
                nConcepto.Importe                  = Math.Round(nConcepto.Cantidad * nConcepto.ValorUnitario, decimalesItem, MidpointRounding.AwayFromZero);
                nConcepto.Impuestos.Retenciones    = new ComprobanteConceptoImpuestosRetencion[1];
                nConcepto.Impuestos.Retenciones[0] = conceptoRetencion;
                conceptos.Add(nConcepto);
            }
        }