/// <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); }
/// <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); } }