public List <ImpuestoResumen> GetImpuestos() { try { ImpuestoList impuestos = ImpuestoList.GetList(false); List <ImpuestoResumen> list = new List <ImpuestoResumen>(); bool nuevo; foreach (ConceptoTicketInfo item in _concepto_tickets) { if (item.Impuestos == 0) { continue; } nuevo = true; //Agrupamos los conceptos por tipo de impuesto devengado for (int i = 0; i < list.Count; i++) { ImpuestoResumen cr = list[i]; if (cr.OidImpuesto == item.OidImpuesto) { cr.Importe += item.Impuestos; cr.BaseImponible += item.BaseImponible; list[i] = cr; nuevo = false; break; } } if (nuevo) { list.Add(new ImpuestoResumen { Nombre = impuestos.GetItem(item.OidImpuesto).Nombre, OidImpuesto = item.OidImpuesto, Importe = item.Impuestos, BaseImponible = item.BaseImponible }); } } return(list); } catch { throw new iQException(String.Format(Resources.Messages.ERROR_FACTURA_IMPUESTO, NTicket, string.Empty)); } }
public List <CuentaResumen> GetCuentasAndImpuestosA3() { try { List <CuentaResumen> list = new List <CuentaResumen>(); ProductList productos = ProductList.GetList(false, true); FamiliaList familias = FamiliaList.GetList(false, true); ImpuestoList impuestos = ImpuestoList.GetList(false); bool nuevo; ProductInfo producto; FamiliaInfo familia; string cuenta; string nombre; foreach (OutputInvoiceLineInfo item in _conceptos) { ImpuestoResumen impuesto = new ImpuestoResumen(); nuevo = true; producto = productos.GetItem(item.OidProducto); familia = familias.GetItem(producto.OidFamilia); cuenta = (producto.CuentaContableVenta == string.Empty) ? familia.CuentaContableVenta : producto.CuentaContableVenta; nombre = (producto.CuentaContableVenta == string.Empty) ? familia.Codigo + " " + familia.Nombre : producto.Codigo + " " + producto.Nombre; //Agrupamos los conceptos por cuentas contables for (int i = 0; i < list.Count; i++) { CuentaResumen cr = list[i]; //Tiene prioridad la cuenta contable del producto if (producto.CuentaContableVenta != string.Empty) { if ((cr.CuentaContable == producto.CuentaContableVenta) && (cr.Impuesto != null && cr.Impuesto.OidImpuesto == item.OidImpuesto)) { cr.Importe += item.PDescuento > 0 ? item.BaseImponible : item.Subtotal; cr.Impuesto.Importe += item.Impuestos; cr.Impuesto.BaseImponible += item.PDescuento > 0 ? item.BaseImponible : item.Subtotal; list[i] = cr; nuevo = false; break; } } //Luego la de la familia else if ((cr.CuentaContable == familia.CuentaContableVenta) && (cr.Impuesto != null && cr.Impuesto.OidImpuesto == item.OidImpuesto)) { cr.Importe += item.PDescuento > 0 ? item.BaseImponible : item.Subtotal; cr.Impuesto.Importe += item.Impuestos; cr.Impuesto.BaseImponible += item.PDescuento > 0 ? item.BaseImponible : item.Subtotal; list[i] = cr; nuevo = false; break; } } if (nuevo) { CuentaResumen new_cr = new CuentaResumen { OidFamilia = producto.OidFamilia, Importe = item.PDescuento > 0 ? item.BaseImponible : item.Subtotal, CuentaContable = cuenta, Nombre = nombre, }; if (item.Impuestos != 0) { ImpuestoInfo imp = null; if (item.OidImpuesto != 0) { imp = impuestos.GetItem(item.OidImpuesto); } else { imp = impuestos.GetItemByProperty("Porcentaje", item.PImpuestos); } new_cr.Impuesto = new ImpuestoResumen { OidImpuesto = item.OidImpuesto, BaseImponible = item.PDescuento > 0 ? item.BaseImponible : item.Subtotal, Importe = item.Impuestos, SubtipoFacturaEmitida = imp.CodigoImpuestoA3Emitida, Porcentaje = item.PImpuestos, }; } //else //{ // new_cr.Impuesto = new ImpuestoResumen // { // OidImpuesto = item.OidImpuesto, // BaseImponible = 0, // Importe = 0 // }; //} list.Add(new_cr); } } return(list); } catch { throw new iQException(String.Format(Resources.Messages.ERROR_FACTURA_CUENTA, NFactura, Cliente)); } }