Пример #1
0
        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!";
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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!";
            }
        }
Пример #4
0
        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!";
            }
        }
Пример #5
0
        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!";
            }
        }
Пример #6
0
        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);
                }
            }
        }
Пример #7
0
        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!";
                }
            }
        }
Пример #8
0
        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!";
            }
        }
Пример #9
0
        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);
            }
        }
Пример #10
0
        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.";
                }
            }
        }
Пример #11
0
        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.";
            }
        }
Пример #12
0
        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!";
            }
        }
Пример #13
0
        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 != "&nbsp;")
                    {
                        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!";
            }
        }
Пример #14
0
        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();
            }
        }