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