示例#1
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!";
            }
        }
示例#2
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);
            }
        }
示例#3
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.";
            }
        }