protected void GridViewDatosFactura_RowDeleting(object sender, GridViewDeleteEventArgs e) { string idFactura = GridViewDatosFactura.DataKeys[e.RowIndex].Values["id_factura"].ToString(); string numeroFactura = ((Label)GridViewDatosFactura.Rows[e.RowIndex].FindControl("lblNumeroFactura")).Text; long idFactura_ = string.IsNullOrWhiteSpace(idFactura) ? 0 : Convert.ToInt64(idFactura); int.TryParse(Request.QueryString["idflujo"], out IdFlujo); bool operacionExitosa = LiquidacionICRL.BorrarLiquidacion001Factura(IdFlujo, idFactura_); if (operacionExitosa) { ActualizarAjusteMenor("0"); //cada vez que se elimina una factura, se actualiza el dato de ajuste ActualizarDatosOrden(numeroFactura); //cada vez que se elimina una factura, se actualiza la orden asociada RecuperarDatosFacturas(); RecuperarDatosOrdenes(); LlenarMenuFacturas(); RecuperarDatosLiquidacion(); LabelMensaje.Visible = false; } else { LabelMensaje.Visible = true; LabelMensaje.Text = "Error al eliminar la factura!"; } }
private void ValidarFlujoCorrecto() { int.TryParse(Request.QueryString["idflujo"], out IdFlujo); //txbNroFlujo.Text = IdFlujo.ToString(); if (GridViewDatosOrden.Rows.Count == 0) { GridViewDatosFactura.Enabled = false; LabelMensaje.Visible = true; LabelMensaje.Text = "No existen Órdenes asociadas al flujo seleccionado!"; } else { GridViewDatosFactura.Enabled = true; LabelMensaje.Visible = false; #region Llenar campos de datos LiquidacionICRL.TipoFlujo tipoFlujo = LiquidacionICRL.TipoFlujoTraer(IdFlujo); txbNroFlujo.Text = tipoFlujo.flujoOnBase; txbCliente.Text = tipoFlujo.nombreAsegurado; txbTelefono.Text = tipoFlujo.telefonocelAsegurado; txbReclamo.Text = tipoFlujo.numeroReclamo; txbPoliza.Text = tipoFlujo.numeroPoliza; #endregion BloquearControlesLiquidacion(false); } }
protected void RecuperarDatosFacturas() { int.TryParse(Request.QueryString["idflujo"], out IdFlujo); LiquidacionICRL.TipoTraerLiquidacion001Factura facturas = LiquidacionICRL.TraerLiquidacion001Factura(IdFlujo); bool operacionExitosa = facturas.correcto; DataSet facturasDataset = facturas.dsFacturas; if (operacionExitosa) { if (facturasDataset.Tables[0].Rows.Count > 0) { GridViewDatosFactura.DataSource = facturasDataset; GridViewDatosFactura.DataBind(); object tc = null; #region Ocultar la factura 0 (factura de ajuste) for (int i = 0; i < GridViewDatosFactura.Rows.Count; i++) { if (GridViewDatosFactura.Rows[i].FindControl("lblNumeroFactura") == null) { continue; } string numeroFactura = ((Label)GridViewDatosFactura.Rows[i].FindControl("lblNumeroFactura")).Text.Trim(); if (numeroFactura == "0") { GridViewDatosFactura.Rows[i].Visible = false; } else { tc = facturasDataset.Tables[0].Rows[i]["tipo_cambio"]; } } #endregion string valorTC = ""; if (tc != null) { valorTC = tc.ToString(); } txbTipoCambio.Text = valorTC.ToString(); } else { facturasDataset.Tables[0].Rows.Add(facturasDataset.Tables[0].NewRow()); GridViewDatosFactura.DataSource = facturasDataset; GridViewDatosFactura.DataBind(); } LabelMensaje.Visible = false; } else { LabelMensaje.Visible = true; LabelMensaje.Text = "Error en la recuperación de los datos facturas!"; } }
protected void GridViewDatosFactura_RowUpdating(object sender, GridViewUpdateEventArgs e) { string idFactura = GridViewDatosFactura.DataKeys[e.RowIndex].Values["id_factura"].ToString(); string numero = ((TextBox)GridViewDatosFactura.Rows[e.RowIndex].FindControl("txbNumeroFacturaEditar")).Text; string fechaEmision = ((TextBox)GridViewDatosFactura.Rows[e.RowIndex].FindControl("txbEmisionFacturaEditar")).Text; string fechaEntrega = ((TextBox)GridViewDatosFactura.Rows[e.RowIndex].FindControl("txbEntregaFacturaEditar")).Text; string monto = ((TextBox)GridViewDatosFactura.Rows[e.RowIndex].FindControl("txbMontoFacturaEditar")).Text; string moneda = ((DropDownList)GridViewDatosFactura.Rows[e.RowIndex].FindControl("ddlMonedaFacturaEditar")).SelectedItem.Value; long idFactura_ = Convert.ToInt64(idFactura); long numero_ = Convert.ToInt64(numero); DateTime fechaEmision_ = DateTime.ParseExact(fechaEmision, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); DateTime fechaEntrega_ = DateTime.ParseExact(fechaEntrega, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); double monto_ = Convert.ToDouble(monto); Int16 moneda_ = Convert.ToInt16(moneda); double tipo_cambio_ = 1.0; double.TryParse(txbTipoCambio.Text, out tipo_cambio_); LiquidacionICRL.TipoLiquidacion001Factura factura = new LiquidacionICRL.TipoLiquidacion001Factura(); int.TryParse(Request.QueryString["idflujo"], out IdFlujo); factura.id_flujo = IdFlujo; factura.id_factura = idFactura_; factura.numero_factura = numero_; factura.fecha_emision = fechaEmision_; factura.fecha_entrega = fechaEntrega_; factura.monto = monto_; factura.id_moneda = moneda_; factura.tipo_cambio = tipo_cambio_; bool operacionExitosa = LiquidacionICRL.ActualizarLiquidacion001Factura(factura); if (operacionExitosa) { //string numeroViejo = e.OldValues[""] GridViewDatosFactura.EditIndex = -1; ActualizarAjusteMenor("0"); //cada vez que se actualiza una factura se actualiza el dato de ajuste ActualizarDatosOrden(((Label)GridViewDatosFactura.Rows[e.RowIndex].FindControl("lblNumeroFacturaEditar")).Text); //cada vez que se actualiza una factura, se actualiza la orden asociada RecuperarDatosFacturas(); RecuperarDatosOrdenes(); LlenarMenuFacturas(); RecuperarDatosLiquidacion(); LabelMensaje.Visible = false; } else { LabelMensaje.Visible = true; LabelMensaje.Text = "Error al guardar la factura!"; } }
private void RecuperarDatosOrdenesPago() { int estado = 1; int.TryParse(ddlEstado.SelectedItem.Value, out estado); string proveedor = txbProveedor.Text.Trim().Replace('\'', ' '); string sucursal = txbSucursal.Text.Trim().Replace('\'', ' '); string flujoon = txbFlujoOnbase.Text.Trim().Replace('\'', ' '); string placa = txbPlaca.Text.Trim().Replace('\'', ' '); DateTime fechaInicio = DateTime.ParseExact(txbFechaDesde.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); DateTime fechaFin = DateTime.ParseExact(txbFechaHasta.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); LiquidacionICRL.TipoRespuestaGrilla respuestaGrilla = LiquidacionICRL.LiquidacionGrilla( estado, proveedor, sucursal, flujoon, placa, fechaInicio, fechaFin); bool operacionExitosa = respuestaGrilla.correcto; DataSet respuestaGrillaDataset = new DataSet(); respuestaGrillaDataset = respuestaGrilla.dsLiquidacionGrilla; if (operacionExitosa) { if (respuestaGrillaDataset.Tables[0].Rows.Count > 0) { GridViewOrdenesPago.DataSource = respuestaGrillaDataset; GridViewOrdenesPago.DataBind(); GridViewOrdenesPago.Visible = true; lblMensajeOrdenesPago.Text = ""; btnGenerarReporteExcel.Enabled = true; btnGenerarReportePdf.Enabled = true; } else { GridViewOrdenesPago.Visible = false; lblMensajeOrdenesPago.Text = "<p>No existen datos.</p><p>Introduzca otros valores en su consulta.</p>"; btnGenerarReporteExcel.Enabled = false; btnGenerarReportePdf.Enabled = false; } LabelMensaje.Visible = false; } else { btnGenerarReporteExcel.Enabled = false; btnGenerarReportePdf.Enabled = false; LabelMensaje.Visible = true; LabelMensaje.Text = "Error en la recuperacion de los datos de pago!"; } }
private void ActualizarDatosOrden(string numeroFactura) { int.TryParse(Request.QueryString["idflujo"], out IdFlujo); LiquidacionICRL.TipoTraerLiquidacion001 ordenes = LiquidacionICRL.TraerLiquidacion001(IdFlujo); foreach (LiquidacionICRL.TipoLiquidacion001 orden in ordenes.Liquidaciones001) { if (numeroFactura.Trim() == orden.num_factura.Trim()) { LiquidacionICRL.TipoLiquidacion001 ordenModificada = orden; ordenModificada.liquidacion = false; ordenModificada.num_factura = ""; ordenModificada.fecha_liquidacion = new DateTime(2000, 1, 1); LiquidacionICRL.ModificarLiquidacion001(ordenModificada); } } }
protected void GridViewDatosFactura_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName.Equals("AddNew")) { string numero = ((TextBox)GridViewDatosFactura.FooterRow.FindControl("txbNumeroFacturaNuevo")).Text.Trim(); string fechaEmision = ((TextBox)GridViewDatosFactura.FooterRow.FindControl("txbEmisionFacturaNuevo")).Text.Trim(); string fechaEntrega = ((TextBox)GridViewDatosFactura.FooterRow.FindControl("txbEntregaFacturaNuevo")).Text.Trim(); string monto = ((TextBox)GridViewDatosFactura.FooterRow.FindControl("txbMontoFacturaNuevo")).Text.Trim(); string moneda = ((DropDownList)GridViewDatosFactura.FooterRow.FindControl("ddlMonedaFacturaNuevo")).SelectedItem.Value; long numero_ = Convert.ToInt64(numero); DateTime fechaEmision_ = DateTime.ParseExact(fechaEmision, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); DateTime fechaEntrega_ = DateTime.ParseExact(fechaEntrega, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); double monto_ = Convert.ToDouble(monto); Int16 moneda_ = Convert.ToInt16(moneda); LiquidacionICRL.TipoLiquidacion001Factura factura = new LiquidacionICRL.TipoLiquidacion001Factura(); int.TryParse(Request.QueryString["idflujo"], out IdFlujo); factura.id_flujo = IdFlujo; factura.numero_factura = numero_; factura.fecha_emision = fechaEmision_; factura.fecha_entrega = fechaEntrega_; factura.monto = monto_; factura.id_moneda = moneda_; bool operacionExitosa = LiquidacionICRL.RegistrarLiquidacion001Factura(factura); if (operacionExitosa) { RecuperarDatosFacturas(); LlenarMenuFacturas(); RecuperarDatosLiquidacion(); LabelMensaje.Visible = false; //txbTipoCambio.Enabled = true; } else { LabelMensaje.Visible = true; LabelMensaje.Text = "Error al guardar la factura!"; } } }
protected void RecuperarDatosOrdenes() { int.TryParse(Request.QueryString["idflujo"], out IdFlujo); LiquidacionICRL.TipoTraerLiquidacion001 ordenes = LiquidacionICRL.TraerLiquidacion001(IdFlujo); bool operacionExitosa = ordenes.correcto; DataSet ordenesDataset = ordenes.dsLiquidacion001; if (operacionExitosa) { GridViewDatosOrden.DataSource = ordenesDataset; GridViewDatosOrden.DataBind(); LabelMensaje.Visible = false; } else { LabelMensaje.Visible = true; LabelMensaje.Text = "Error en la recuperacion de los datos ordenes!"; } }
private void ActualizarAjusteMenor(string monto) { LiquidacionICRL.TipoTraerLiquidacion001Factura facturas = LiquidacionICRL.TraerLiquidacion001Factura(IdFlujo); LiquidacionICRL.TipoLiquidacion001Factura registroAjusteMenor = facturas.Facturas.Find(x => x.numero_factura == 0); double monto_ = Convert.ToDouble(monto); if (registroAjusteMenor == null) {//Se crea el registro de AJUSTE MENOR registroAjusteMenor = new LiquidacionICRL.TipoLiquidacion001Factura(); registroAjusteMenor.id_flujo = IdFlujo; registroAjusteMenor.monto = monto_; registroAjusteMenor.observaciones = "(ajuste menor)"; registroAjusteMenor.asociada = true; LiquidacionICRL.RegistrarLiquidacion001Factura(registroAjusteMenor); } else {//Se actualiza el registro de AJUSTE MENOR registroAjusteMenor.monto = monto_; LiquidacionICRL.ActualizarLiquidacion001Factura(registroAjusteMenor); } }
private void BloquearControlesLiquidacion(bool verificado) { if (verificado) { GridViewDatosFactura.Enabled = false; GridViewDatosOrden.Enabled = false; GridViewDatosLiquidacion.Enabled = false; btnGenerarLiquidacion.Enabled = false; btnLiquidacionTotal.Enabled = false; btnAjusteMenor.Enabled = false; btnGuardarLiquidacion.Enabled = false; txbTipoCambio.Enabled = false; } else { int.TryParse(Request.QueryString["idflujo"], out IdFlujo); LiquidacionICRL.TipoFlujo flujo = LiquidacionICRL.TipoFlujoTraer(IdFlujo); if (flujo.estado == EstadoFlujo.ToString()) { GridViewDatosFactura.Enabled = false; GridViewDatosOrden.Enabled = false; GridViewDatosLiquidacion.Enabled = false; btnGenerarLiquidacion.Enabled = false; btnLiquidacionTotal.Enabled = false; btnAjusteMenor.Enabled = false; btnGuardarLiquidacion.Enabled = false; txbTipoCambio.Enabled = false; LabelMensaje.Visible = true; LabelMensaje.Text = "Este flujo tiene el estado 'Procesado Liquidación', por lo que no se permiten cambios."; } } }
protected void btnLiquidacionTotal_Click(object sender, EventArgs e) { int.TryParse(Request.QueryString["idflujo"], out IdFlujo); LiquidacionICRL.TipoTraerLiquidacion001 ordenes = LiquidacionICRL.TraerLiquidacion001(IdFlujo); LiquidacionICRL.TipoTraerLiquidacion001Factura facturas = LiquidacionICRL.TraerLiquidacion001Factura(IdFlujo); double totalCotizado = 0.0; double totalFacturado = 0.0; List <LiquidacionICRL.TipoLiquidacion001> ordenesActualizadas = new List <LiquidacionICRL.TipoLiquidacion001>(); foreach (LiquidacionICRL.TipoLiquidacion001 orden in ordenes.Liquidaciones001) { if (orden.liquidacion && !string.IsNullOrWhiteSpace(orden.num_factura)) { totalCotizado += orden.preciobs; orden.id_estado = EstadoFlujo; ordenesActualizadas.Add(orden); } } foreach (LiquidacionICRL.TipoLiquidacion001Factura factura in facturas.Facturas) { if (factura.asociada) { totalFacturado += factura.monto; } } if (totalCotizado != 0 && totalCotizado == totalFacturado) { bool operacionExitosaFlujo = LiquidacionICRL.ActualizarFlujo(IdFlujo, EstadoFlujo); foreach (LiquidacionICRL.TipoLiquidacion001 ordenActualizada in ordenesActualizadas) { bool operacionExitosaOrden = LiquidacionICRL.ModificarLiquidacion001(ordenActualizada); if (!operacionExitosaOrden) { break; } } if (operacionExitosaFlujo) { LabelMensaje.Visible = true; LabelMensaje.Text = "LIQUIDACIÓN TOTAL realiza exitosamente!"; BloquearControlesLiquidacion(true); } else { LabelMensaje.Visible = true; LabelMensaje.Text = "Error en el proceso de liquidación total!"; } } else { LabelMensaje.Visible = true; LabelMensaje.Text = "Para proceder con la LIQUIDACIÓN TOTAL, los montos de TOTAL COTIZADO y TOTAL PAGADO deben ser iguales."; } }
protected void btnGuardarLiquidacion_Click(object sender, EventArgs e) { bool operacionExitosa = true; foreach (GridViewRow row in GridViewDatosLiquidacion.Rows) { if (row.RowType == DataControlRowType.DataRow) { int.TryParse(Request.QueryString["idflujo"], out IdFlujo); string idFactura = ((Label)row.FindControl("lblId")).Text; string numero = ((Label)row.FindControl("lblNumero")).Text; string fechaEmision = ((Label)row.FindControl("lblFechaEmision")).Text; string fechaEntrega = ((Label)row.FindControl("lblFechaRecepcion")).Text; string monto = ((Label)row.FindControl("lblLiquidacionBs")).Text; string moneda = ((Label)row.FindControl("lblMoneda")).Text; string observaciones = ((TextBox)row.FindControl("txbObservaciones")).Text; bool asociada = true; double tipo_cambio_ = 1.0; double.TryParse(txbTipoCambio.Text, out tipo_cambio_); if (!string.IsNullOrWhiteSpace(idFactura)) {//actualizar facturas liquidadas long idFactura_ = Convert.ToInt64(idFactura); long numero_ = Convert.ToInt64(numero); DateTime fechaEmision_ = DateTime.ParseExact(fechaEmision, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); DateTime fechaEntrega_ = DateTime.ParseExact(fechaEntrega, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); double monto_ = Convert.ToDouble(monto); Int16 moneda_ = Convert.ToInt16(moneda); LiquidacionICRL.TipoLiquidacion001Factura factura = new LiquidacionICRL.TipoLiquidacion001Factura(); factura.id_flujo = IdFlujo; factura.id_factura = idFactura_; factura.numero_factura = numero_; factura.fecha_emision = fechaEmision_; factura.fecha_entrega = fechaEntrega_; factura.monto = monto_; factura.id_moneda = moneda_; factura.observaciones = observaciones; factura.asociada = asociada; factura.tipo_cambio = tipo_cambio_; operacionExitosa = LiquidacionICRL.ActualizarLiquidacion001Factura(factura); if (!operacionExitosa) { break; } } else {//actualizar ajuste menor ActualizarAjusteMenor(monto); } } } LabelMensaje.Visible = true; if (operacionExitosa) { btnGuardarLiquidacion.Enabled = false; btnAjusteMenor.Enabled = false; btnLiquidacionTotal.Enabled = true; LabelMensaje.Text = "Liquidación guardada exitosamente!"; } else { btnGuardarLiquidacion.Enabled = true; LabelMensaje.Text = "Error al guardar la liquidación!"; } }
protected void btnGenerarLiquidacion_Click(object sender, EventArgs e) { bool operacionExitosa = true; List <LiquidacionICRL.TipoLiquidacion001> ordenesLiquidadas = new List <LiquidacionICRL.TipoLiquidacion001>(); foreach (GridViewRow row in GridViewDatosOrden.Rows) { LiquidacionICRL.TipoLiquidacion001 liquidacion = new LiquidacionICRL.TipoLiquidacion001(); if (row.RowType == DataControlRowType.DataRow) { string fechaRecepcion = row.Cells[5].Text; //string fechaOrden = row.Cells[5].Text; DateTime fechaLiquidacion = DateTime.Now; Label lblFechaLiquidacion = row.FindControl("lblFechaLiquidacion") as Label; bool esLiquidada = ((CheckBox)row.Cells[7].FindControl("cbxLiquidacion")).Checked; liquidacion.numero_orden = row.Cells[0].Text; liquidacion.proveedor = row.Cells[1].Text; //liquidacion.item_descripcion = row.Cells[2].Text; liquidacion.item_descripcion = ((Label)row.Cells[2].FindControl("lblDescripcion")).Text; liquidacion.preciobs = Convert.ToDouble(((Label)row.Cells[3].FindControl("lblCotizacionBs")).Text); liquidacion.precious = Convert.ToDouble(((Label)row.Cells[4].FindControl("lblCotizacionUs")).Text); if (!string.IsNullOrEmpty(fechaRecepcion) && fechaRecepcion != " ") { liquidacion.fecha_recepcion = DateTime.ParseExact(fechaRecepcion, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); } liquidacion.inspeccion = ((CheckBox)row.Cells[6].FindControl("cbxInspeccion")).Checked; liquidacion.liquidacion = esLiquidada; liquidacion.num_factura = ((DropDownList)row.Cells[8].FindControl("ddlFacturasLiquidadas")).SelectedItem.Value; //liquidacion.fecha_liquidacion = esLiquidada ? Convert.ToDateTime(fechaLiquidacion) : new DateTime(2000, 1, 1); liquidacion.id_estado = Convert.ToInt16(((Label)row.Cells[9].FindControl("id_estado")).Text); int.TryParse(Request.QueryString["idflujo"], out IdFlujo); liquidacion.id_flujo = IdFlujo; liquidacion.id_cotizacion = Convert.ToInt32(((Label)row.Cells[9].FindControl("id_cotizacion")).Text); liquidacion.tipo_origen = Convert.ToInt16(((Label)row.Cells[9].FindControl("tipo_origen")).Text); liquidacion.id_item = Convert.ToInt64(((Label)row.Cells[9].FindControl("id_item")).Text); liquidacion.id_tipo_item = Convert.ToInt16(((Label)row.Cells[9].FindControl("id_tipo_item")).Text); liquidacion.fecha_orden = Convert.ToDateTime(((Label)row.Cells[9].FindControl("fecha_orden")).Text); DateTime fecha; if (DateTime.TryParseExact(lblFechaLiquidacion.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out fecha)) { liquidacion.fecha_liquidacion = esLiquidada ? fecha : new DateTime(2000, 1, 1); } else { liquidacion.fecha_liquidacion = esLiquidada ? fechaLiquidacion : new DateTime(2000, 1, 1); } #region Generacion reporte liquidacion if (liquidacion.liquidacion) { ordenesLiquidadas.Add(liquidacion); } #endregion #region Guardado en BD operacionExitosa = LiquidacionICRL.ModificarLiquidacion001(liquidacion); if (!operacionExitosa) { break; } #endregion } } if (operacionExitosa) { RecuperarDatosOrdenes(); LlenarMenuFacturas(); GenerarDatosLiquidacion(ordenesLiquidadas); } else { btnGuardarLiquidacion.Enabled = false; LabelMensaje.Visible = true; LabelMensaje.Text = "Error al guardar generar la liquidación!"; } }
protected void btnExportarResultados_Click(object sender, EventArgs e) { if (!VerificarPagina(true)) { return; } try { #region Recuperar datos int estado = 1; int.TryParse(ddlEstado.SelectedItem.Value, out estado); string proveedor = txbProveedor.Text.Trim().Replace('\'', ' '); string sucursal = txbSucursal.Text.Trim().Replace('\'', ' '); string flujoon = txbFlujoOnbase.Text.Trim().Replace('\'', ' '); string placa = txbPlaca.Text.Trim().Replace('\'', ' '); DateTime fechaInicio = DateTime.ParseExact(txbFechaDesde.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); DateTime fechaFin = DateTime.ParseExact(txbFechaHasta.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture); LiquidacionICRL.TipoRespuestaGrilla respuestaGrilla = LiquidacionICRL.LiquidacionGrilla( estado, proveedor, sucursal, flujoon, placa, fechaInicio, fechaFin); bool operacionExitosa = respuestaGrilla.correcto; DataSet respuestaGrillaDataset = new DataSet(); respuestaGrillaDataset = respuestaGrilla.dsLiquidacionGrilla; #endregion #region Descripcion estados AccesoDatos adatos = new AccesoDatos(); List <ListaNomenclador> estadosnom = adatos.FlTraeNomenGenerico("Estados", 0); #endregion #region Creacion del archivo CSV Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment;filename=LBCCotizaciones.csv"); Response.Charset = ""; Response.ContentType = "text/csv"; System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("ORDEN;"); sb.Append("FECHA ORDEN;"); sb.Append("PROVEEDOR/BENEFICIARIO;"); sb.Append("ESTADO;"); sb.Append("TOTAL ORDEN;"); sb.Append("PAGADO BS;"); sb.Append("NO PAGADO BS;"); sb.Append("PAGADO US;"); sb.Append("NO PAGADO US;"); sb.Append("FLUJO ONBASE;"); sb.Append("CLIENTE;"); sb.Append("PLACA;"); sb.Append("ID FLUJO"); sb.Append("\r\n"); for (int i = 0; i < respuestaGrillaDataset.Tables[0].Rows.Count; i++) { for (int j = 0; j < respuestaGrillaDataset.Tables[0].Rows[i].ItemArray.Count(); j++) { string valorCelda = respuestaGrillaDataset.Tables[0].Rows[i][j].ToString().Trim(); valorCelda = valorCelda.Replace(";", ","); if (j == 3) { foreach (ListaNomenclador estadonom in estadosnom) { if (estadonom.codigo.Trim() == valorCelda) { valorCelda = estadonom.descripcion; break; } } } if (valorCelda.Contains("span")) { string subs = valorCelda.Substring(valorCelda.IndexOf('>') + 1); valorCelda = subs.Remove(subs.LastIndexOf('<')); } byte[] bytes = System.Text.Encoding.Default.GetBytes(valorCelda); valorCelda = System.Text.Encoding.Default.GetString(bytes); if (j == respuestaGrillaDataset.Tables[0].Rows[i].ItemArray.Count() - 1) { sb.Append(valorCelda); } else { sb.Append(valorCelda + ';'); } } sb.Append("\r\n"); } Response.Output.Write(sb.ToString()); #endregion LabelMensaje.Visible = false; } catch (Exception ex) { LabelMensaje.Visible = true; LabelMensaje.Text = "Error al exportar los resultados!"; } finally { Response.Flush(); Response.Close(); Response.End(); } }