private static void GenerarDetalleMonedaLocal(string TipoCbte, FeaEntidades.Turismo.detalle det, System.Collections.Generic.List <FeaEntidades.Turismo.linea> listadelineas, int i, string TipoPtoVta)
 {
     det.linea[i].precio_unitarioSpecified = listadelineas[i].precio_unitarioSpecified;
     det.linea[i].precio_unitario          = listadelineas[i].precio_unitario;
     det.linea[i].importe_total_articulo   = listadelineas[i].importe_total_articulo;
     det.linea[i].importe_ivaSpecified     = listadelineas[i].importe_ivaSpecified;
     det.linea[i].importe_iva = listadelineas[i].importe_iva;
 }
        public FeaEntidades.Turismo.detalle GenerarDetalles(string MonedaComprobante, string TipoDeCambio, string TipoPtoVta, string TipoCbte, bool EsParaImprimirPDF)
        {
            FeaEntidades.Turismo.detalle det = new FeaEntidades.Turismo.detalle();
            System.Collections.Generic.List <FeaEntidades.Turismo.linea> listadelineas = (System.Collections.Generic.List <FeaEntidades.Turismo.linea>)ViewState["lineas"];
            for (int i = 0; i < listadelineas.Count; i++)
            {
                det.linea[i]             = new FeaEntidades.Turismo.linea();
                det.linea[i].numeroLinea = i + 1;
                if (listadelineas[i].descripcion == null)
                {
                    throw new Exception("Debe informar al menos un artículo");
                }
                string textoSinSaltoDeLinea = listadelineas[i].descripcion.Replace("\n", "<br>").Replace("\r", string.Empty);
                det.linea[i].descripcion = textoSinSaltoDeLinea;

                GenerarDetallesAlicuotaIVA(TipoPtoVta, TipoCbte, det, listadelineas, i);

                if (!listadelineas[i].unidad.Equals(Convert.ToString(new FeaEntidades.CodigosUnidad.SinInformar().Codigo)))
                {
                    det.linea[i].unidad = listadelineas[i].unidad;
                }
                det.linea[i].codigo_Turismo    = listadelineas[i].codigo_Turismo;
                det.linea[i].cantidad          = listadelineas[i].cantidad;
                det.linea[i].cantidadSpecified = listadelineas[i].cantidadSpecified;
                det.linea[i].GTIN                      = listadelineas[i].GTIN;
                det.linea[i].GTINSpecified             = listadelineas[i].GTINSpecified;
                det.linea[i].codigo_producto_comprador = listadelineas[i].codigo_producto_comprador;
                det.linea[i].codigo_producto_vendedor  = listadelineas[i].codigo_producto_vendedor;

                GenerarDetallesIndExGravado(TipoPtoVta, TipoCbte, det, listadelineas, i);

                if (MonedaComprobante.Equals(FeaEntidades.CodigosMoneda.CodigoMoneda.Local))
                {
                    GenerarDetalleMonedaLocal(TipoCbte, det, listadelineas, i, TipoPtoVta);
                }
                else
                {
                    GenerarDetalleMonedaExtranjera(TipoDeCambio, TipoCbte, det, listadelineas, i, TipoPtoVta);
                }
            }
            return(det);
        }
 private static void GenerarDetallesAlicuotaIVA(string TipoPtoVta, string TipoCbte, FeaEntidades.Turismo.detalle det, System.Collections.Generic.List <FeaEntidades.Turismo.linea> listadelineas, int i)
 {
     if (listadelineas[i].alicuota_iva.Equals(new FeaEntidades.IVA.SinInformar().Codigo))
     {
         //throw new Exception("La alícuota de IVA es obligatoria");
         det.linea[i].alicuota_ivaSpecified = listadelineas[i].alicuota_ivaSpecified;
         det.linea[i].alicuota_iva          = listadelineas[i].alicuota_iva;
     }
     else
     {
         det.linea[i].alicuota_ivaSpecified = listadelineas[i].alicuota_ivaSpecified;
         det.linea[i].alicuota_iva          = listadelineas[i].alicuota_iva;
     }
 }
 private static void GenerarDetallesIndExGravado(string TipoPtoVta, string TipoCbte, FeaEntidades.Turismo.detalle det, System.Collections.Generic.List <FeaEntidades.Turismo.linea> listadelineas, int i)
 {
     if (listadelineas[i].indicacion_exento_gravado != null)
     {
         if (!listadelineas[i].indicacion_exento_gravado.Equals(string.Empty))
         {
             det.linea[i].indicacion_exento_gravado = listadelineas[i].indicacion_exento_gravado;
         }
     }
 }
        private static void GenerarDetalleMonedaExtranjera(string TipoDeCambio, string TipoCbte, FeaEntidades.Turismo.detalle det, System.Collections.Generic.List <FeaEntidades.Turismo.linea> listadelineas, int i, string TipoPtoVta)
        {
            det.linea[i].precio_unitarioSpecified = listadelineas[i].precio_unitarioSpecified;
            det.linea[i].importe_iva            = Math.Round(listadelineas[i].importe_iva * Convert.ToDouble(TipoDeCambio), 2);
            det.linea[i].importe_ivaSpecified   = listadelineas[i].alicuota_ivaSpecified;
            det.linea[i].precio_unitario        = Math.Round(listadelineas[i].precio_unitario * Convert.ToDouble(TipoDeCambio), 3);
            det.linea[i].importe_total_articulo = Math.Round(listadelineas[i].importe_total_articulo * Convert.ToDouble(TipoDeCambio), 2);

            FeaEntidades.InterFacturas.lineaImportes_moneda_origen limo = new FeaEntidades.InterFacturas.lineaImportes_moneda_origen();
            limo.importe_total_articuloSpecified = true;

            limo.precio_unitarioSpecified = listadelineas[i].precio_unitarioSpecified;
            limo.importe_ivaSpecified     = listadelineas[i].importe_ivaSpecified;
            limo.importe_iva            = listadelineas[i].importe_iva;
            limo.precio_unitario        = listadelineas[i].precio_unitario;
            limo.importe_total_articulo = listadelineas[i].importe_total_articulo;

            det.linea[i].importes_moneda_origen = limo;
        }