Beispiel #1
0
        protected void CambioFilaInventario()
        {
            Int32 idInventario;
            Int32 idVenta;

            idInventario = Convert.ToInt32(GrdInventario.GetRowValues(GrdInventario.FocusedRowIndex, "IdInventario"));
            idVenta      = Convert.ToInt32(GrdInventario.GetRowValues(GrdInventario.FocusedRowIndex, "IdVenta"));


            DateTime dt = Convert.ToDateTime((GrdInventario.GetRowValues(GrdInventario.FocusedRowIndex, "HoraCorte")).ToString());

            ASPxTimeEdit.Value = dt;

            HfFechaInventario.Value = (GrdInventario.GetRowValues(GrdInventario.FocusedRowIndex, "Fecha")).ToString();

            LimpiarDetalle();
            CargarDetalle(idInventario, idVenta);

            if (idInventario == 0)
            {
                EnllavarDetalle(false);
            }
            else
            {
                EnllavarDetalle(true);
            }
        }
Beispiel #2
0
        private void GuardarDetalle() //Aqui guardamos el inventario a la base de datos
        {
            GridViewRow fila;


            //  INE.ServiciosWeb.Inventario.Contrato.Inventario inventario = new INE.ServiciosWeb.Inventario.Contrato.Inventario();
            //  INE.ServiciosWeb.Inventario.Contrato.InventarioDetalle inventarioDetalle;

            InventarioServicio_T.Inventario        inventario        = new InventarioServicio_T.Inventario();
            InventarioServicio_T.InventarioDetalle inventarioDetalle = new InventarioDetalle();

            Venta venta = new Venta();

            // INE.ServiciosWeb.Venta.Contrato.Venta venta = new INE.ServiciosWeb.Venta.Contrato.Venta();
            VentaDetalle ventaDetalle;
            //  INE.ServiciosWeb.Venta.Contrato.VentaDetalle ventaDetalle;
            Int32 c;
            Int32 columnasVisibles;

            FormsIdentity             id     = (FormsIdentity)Context.User.Identity;
            FormsAuthenticationTicket ticket = id.Ticket;
            string data = ticket.UserData;

            Utils.Usuario user = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize <Utils.Usuario>(data);


            columnasVisibles = ObtenerConteoColVisible(GrdDetalle);

            #region Inventario

            inventario.IdInventario = 0;
            inventario.IdAgenteEconomicoAgenteTipo = user.IdAgenteEconomicoAgenteTipo;
            // inventario.Activo = true;
            inventario.Fecha         = Convert.ToDateTime(GrdInventario.GetRowValues(GrdInventario.FocusedRowIndex, "Fecha"));
            inventario.Observaciones = TxtObservacion.Text;
            inventario.HoraCorte     = Convert.ToDateTime(ASPxTimeEdit.Value).TimeOfDay;


            for (c = 2; c < columnasVisibles; c++)
            {
                fila = GrdDetalle.Rows[0];

                inventarioDetalle = new InventarioDetalle();

                //inventarioDetalle.Activo = true;
                inventarioDetalle.IdProductoxPresentacion = Convert.ToInt32((fila.Cells[c].FindControl("HdfIdProductoXPresentacion" + c.ToString()) as HiddenField).Value);
                inventarioDetalle.CapacidadInstalada      = Convert.ToDecimal(GrdInventario.GetRowValues(GrdInventario.FocusedRowIndex, "Cap_" + (fila.Cells[c].FindControl("HdfIdProducto" + c.ToString()) as HiddenField).Value));
                inventarioDetalle.InventarioTotal         = Convert.ToDecimal((fila.Cells[c].FindControl("TxtCampo" + c.ToString()) as TextBox).Text);
                inventario.InventarioDetalle = inventario.InventarioDetalle ?? new List <InventarioDetalle>();
                inventario.InventarioDetalle.Add(inventarioDetalle);
            }

            InventarioServicio_T.InventarioContratoClient invent = new InventarioContratoClient();

            if (invent.VerificarInventario(inventario))
            {
                LblMensaje.Text     = "El día de inventario que está tratando de registrar, ya ha sido guardado en el Sistema";
                Image2.Visible      = true;
                LblMensaje.Visible  = true;
                ASPxGuardar.Enabled = false;

                return;
            }

            invent.Guardar(inventario, user.IdCuenta);

            #region Venta

            venta.IdVenta = 0;
            venta.IdAgenteEconomicoAgenteTipo = user.IdAgenteEconomicoAgenteTipo;
            //venta.IdUsuarioRegistro = (Page.User as Usuario).IdCuenta;
            //venta.FechaRegistro = DateTime.Now;
            //venta.IdUsuarioModificacion = (Page.User as Usuario).IdCuenta;
            //venta.FechaModificacion = DateTime.Now;
            //venta.Activo = true;
            venta.Fecha         = Convert.ToDateTime(GrdInventario.GetRowValues(GrdInventario.FocusedRowIndex, "Fecha")).AddDays(-1);
            venta.Observaciones = TxtObservacion.Text;



            for (c = 2; c < columnasVisibles; c++)
            {
                fila         = GrdDetalle.Rows[1];
                ventaDetalle = new VentaDetalle();
                //ventaDetalle.Activo = true;
                ventaDetalle.IdProductoxPresentacion = Convert.ToInt32((fila.Cells[c].FindControl("HdfIdProductoXPresentacion" + c.ToString()) as HiddenField).Value);
                //ventaDetalle.FechaModificacion = DateTime.Now;
                // ventaDetalle.IdUsuarioModificacion = (Page.User as Usuario).IdCuenta;
                //ventaDetalle.IdUsuarioRegistro = (Page.User as Usuario).IdCuenta;
                //ventaDetalle.FechaRegistro = DateTime.Now;
                ventaDetalle.Volumen = Convert.ToDecimal((fila.Cells[c].FindControl("TxtCampo" + c.ToString()) as TextBox).Text);
                ventaDetalle.Precio  = Convert.ToDecimal((GrdDetalle.Rows[2].Cells[c].FindControl("TxtCampo" + c.ToString()) as TextBox).Text);
                venta.VentaDetalles  = venta.VentaDetalles ?? new List <VentaDetalle>();
                venta.VentaDetalles.Add(ventaDetalle);
            }

            VentaServicio_T.VentaContratoClient vent = new VentaContratoClient();
            vent.Guardar(venta, user.IdCuenta);

            #endregion

            CargarGrid(user.IdAgenteEconomico, ObtenerNumeroMes(DropDownListMes.Text));

            ModalPopupExtender1.Hide();

            System.Web.UI.ScriptManager.RegisterStartupScript(this, GetType(), "Script2", "$.unblockUI()", true);

            EnllavarDetalle(true);

            #endregion
        }
Beispiel #3
0
        private Boolean EsDetalleValido()
        {
            Boolean esValido = true;
            TextBox control;
            Int32   c;
            Int32   r;
            Int32   columnasVisibles;
            Double  temp;

            columnasVisibles = ObtenerConteoColVisible(GrdDetalle);

            for (r = 0; r < GrdDetalle.Rows.Count; r++)
            {
                for (c = 2; c < columnasVisibles; c++)
                {
                    if (GrdDetalle.Rows[r].Cells[c].Controls.Count > 0)
                    {
                        control = (GrdDetalle.Rows[r].Cells[c].Controls[1] as TextBox);
                        if (control.Text.Trim() == "")
                        {
                            control.CssClass = "TxtEstandar CampoMinimo";
                            esValido         = false;
                        }
                        else if (!Double.TryParse(control.Text.Trim(), out temp))
                        {
                            control.CssClass = "TxtEstandar CampoMinimo";
                            esValido         = false;
                        }
                        //else if (Convert.ToDouble(control.Text) == 0) //Aqui no permitimos valores en 0
                        //{
                        //    control.CssClass = "TxtEstandar CampoMinimo";
                        //    esValido = false;
                        //}
                        else
                        {
                            control.CssClass = "TxtEstandar";
                        }
                    }
                }
            }

            Int32  capacidadAlmacenada = 0;
            double inventarioActual    = 0;
            Int32  idProducto          = 0;
            double ventaActual         = 0;

            string capacidad;

            for (c = 2; c < columnasVisibles; c++)
            {
                idProducto = Convert.ToInt32((GrdDetalle.Rows[0].Cells[c].FindControl("HdfIdProducto" + c.ToString()) as HiddenField).Value);

                capacidadAlmacenada = Convert.ToInt32((GrdInventario.GetRowValues(GrdInventario.FocusedRowIndex, "Cap_" + idProducto)).ToString().Replace(",", ""));

                string inventarioActualTemporal = (GrdDetalle.Rows[0].Cells[c].FindControl("TxtCampo" + c.ToString()) as TextBox).Text;

                if (inventarioActualTemporal == "")
                {
                    inventarioActualTemporal = "0";
                }

                string ventaActualTemporal = (GrdDetalle.Rows[1].Cells[c].FindControl("TxtCampo" + c.ToString()) as TextBox).Text;

                if (ventaActualTemporal == "")
                {
                    ventaActualTemporal = "0";
                }

                inventarioActual = Convert.ToDouble(inventarioActualTemporal.Replace(",", ""));

                ventaActual = Convert.ToDouble(ventaActualTemporal.Replace(",", ""));


                if (inventarioActual > capacidadAlmacenada)
                {
                    LblMensaje.Text    = "El Inventario digitado no puede ser mayor que la capacidad de almacenamiento del tanque.";
                    LblMensaje.Visible = true;
                    Image2.Visible     = true;
                    return(false);
                }

                if ((ventaActual * 0.26417205) > capacidadAlmacenada) //Aqui hay que invocar al servicio de medida
                {
                    LblMensaje.Text    = "La Venta en litros no puede superar la capacidad de almacenamiento del tanque.";
                    LblMensaje.Visible = true;
                    Image2.Visible     = true;
                    return(false);
                }
            }

            if (esValido == false)
            {
                LblMensaje.Text    = "Por favor, verifique la información en los campos señalados.";
                LblMensaje.Visible = true;
                Image2.Visible     = true;
                return(false);
            }
            else if (ASPxTimeEdit.DateTime.Hour == 0 && ASPxTimeEdit.DateTime.Minute == 0 && ASPxTimeEdit.DateTime.Second == 0)
            {
                LblMensaje.Text    = "Por favor, ingrese la hora de corte de la inspección.";
                LblMensaje.Visible = true;
                Image2.Visible     = true;
                return(false);
            }



            else
            {
                LblMensaje.Visible = false;
                Image2.Visible     = false;
                return(true);
            }
        }
Beispiel #4
0
        protected void CargarGrid(Int32 idAgenteEconomico, int mes)
        {
            DateTime fechaInicio;
            DateTime fechaFin;


            List <InventarioServicio_T.Inventario> inventarios;
            List <Venta> ventas;


            DataTable datos;
            DataRow   fila;


            FormsIdentity             id     = (FormsIdentity)Context.User.Identity;
            FormsAuthenticationTicket ticket = id.Ticket;
            string data = ticket.UserData;

            Utils.Usuario user = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize <Utils.Usuario>(data);


            // fechaFin = new DateTime(2012, 06, 30);// DateTime.Now;

            //   fechaFin = new DateTime(ano, mes, DateTime.DaysInMonth(ano,mes));

            ano = Convert.ToInt32(DropDownListAno.Text);


            if (mes != DateTime.Now.Month)
            {
                fechaFin = new DateTime(ano, mes, DateTime.DaysInMonth(ano, mes));
            }
            else
            {
                fechaFin = new DateTime(ano, mes, DateTime.Now.Day);
            }



            fechaInicio = new DateTime(fechaFin.Year, fechaFin.Month, 1);

            VentaServicio_T.VentaContratoClient           vent   = new VentaContratoClient();
            InventarioServicio_T.InventarioContratoClient invent = new InventarioContratoClient();

            inventarios = invent.ObtenerListadoPorFechaActivo(user.IdAgenteEconomicoAgenteTipo, fechaInicio, fechaFin, true);
            ventas      = vent.ObtenerListadoPorFechaActivo(user.IdAgenteEconomicoAgenteTipo, fechaInicio.AddDays(-1), fechaFin.AddDays(-1)); //Le restamos uno a cada fecha de inventario porque asi la guardamos en ventas
            //test

            CapacidadAlmacenamientoServicio_T.CapacidadAlmacenamientoContratoClient capa = new CapacidadAlmacenamientoContratoClient();
            ProductoServicio_T.ProductoContratoClient pro = new ProductoContratoClient();

            var capacidades = capa.ObtenerListadoPorAgenteEconomico(idAgenteEconomico);
            var productos   = pro.ObtenerListadoPorAgenteEconomicoActivo(idAgenteEconomico);


            datos = new DataTable();
            datos.Columns.Add("IdInventario", typeof(Int32));
            datos.Columns.Add("IdVenta", typeof(Int32));
            datos.Columns.Add("Fecha", typeof(DateTime));
            datos.Columns.Add("HoraCorte");

            foreach (var p in productos)
            {
                var productoPresentacionTipo = p.ProductoPresentacionTipos.Where(pp => pp.IdPresentacionTipo == 4).FirstOrDefault();
                if (productoPresentacionTipo != null)
                {
                    datos.Columns.Add("Inv_" + productoPresentacionTipo.IdProductoxPresentacion.ToString()); //Galón Chekar como guarda el id de productopresentacion (si es galon o litro)
                    datos.Columns.Add("Ven_" + productoPresentacionTipo.IdProductoxPresentacion.ToString()); //Galón Chekar como guarda el id de productopresentacion (si es galon o litro)
                    datos.Columns.Add("Cap_" + productoPresentacionTipo.IdProducto.ToString());              //Galón
                }
            }

            foreach (var inv in inventarios)
            {
                fila = datos.NewRow();
                fila["IdInventario"] = inv.IdInventario;
                fila["IdVenta"]      = 0;
                fila["Fecha"]        = inv.Fecha;
                //  fila["HoraCorte"] = inv.HoraCorte;

                TimeSpan span = TimeSpan.Parse(inv.HoraCorte.ToString());


                fila["HoraCorte"] = DateTime.Today.Add(span).ToString("hh:mm:ss tt");


                foreach (var det in inv.InventarioDetalle)
                {
                    if (datos.Columns.Contains("Inv_" + det.IdProductoxPresentacion.ToString()))//GB
                    {
                        fila["Inv_" + det.IdProductoxPresentacion.ToString()] = det.InventarioTotal.ToString("#,##0.00");
                    }
                }
                //Buscando en tabla ventas
                var agenteVenta = (from t in ventas
                                   where t.IdAgenteEconomicoAgenteTipo == inv.IdAgenteEconomicoAgenteTipo && t.Fecha == inv.Fecha.AddDays(-1)
                                   select t).FirstOrDefault();
                if (agenteVenta != null)
                {
                    fila["IdVenta"] = agenteVenta.IdVenta;
                    foreach (var det in agenteVenta.VentaDetalles)
                    {
                        if (datos.Columns.Contains("Ven_" + det.IdProductoxPresentacion.ToString()))//GB
                        {
                            fila["Ven_" + det.IdProductoxPresentacion.ToString()] = det.Volumen.ToString("#,##0.00");
                        }
                    }
                }
                else
                {
                    fila["IdVenta"] = 0;
                }


                //Capacidades Almacenamiento


                foreach (var p in productos)
                {
                    var productoPresentacionTipo = p.ProductoPresentacionTipos.Where(pp => pp.IdPresentacionTipo == 4).FirstOrDefault();
                    if (productoPresentacionTipo != null)
                    {
                        if (inv.IdInventario != 0 || inv.IdInventario == 0)
                        {
                            var agenteCapacidades = (from t in capacidades
                                                     where t.IdProducto == productoPresentacionTipo.IdProducto &&
                                                     t.Activo == true
                                                     select t).ToList();
                            if (agenteCapacidades != null)
                            {
                                var total = 0;
                                foreach (var cap in agenteCapacidades)
                                {
                                    total = total + cap.CapacidadAlmacenamientoTanque;
                                }
                                if (datos.Columns.Contains("Cap_" + productoPresentacionTipo.IdProducto.ToString()))//GB
                                {
                                    fila["Cap_" + productoPresentacionTipo.IdProducto.ToString()] = total.ToString("#,##0");
                                }
                            }
                        }
                        else
                        {
                            foreach (var det in inv.InventarioDetalle)
                            {
                                if (det.IdProductoxPresentacion == productoPresentacionTipo.IdProductoxPresentacion)
                                {
                                    if (datos.Columns.Contains("Cap_" + productoPresentacionTipo.IdProducto.ToString()))//GB
                                    {
                                        fila["Cap_" + productoPresentacionTipo.IdProducto.ToString()] = det.CapacidadInstalada.ToString("#,##0");
                                    }
                                }
                            }
                        }
                    }
                }

                datos.Rows.Add(fila);
            }


            while (GrdInventario.Columns.Count >= 5)
            {
                GrdInventario.Columns.Remove(GrdInventario.Columns[GrdInventario.Columns.Count - 1]);
            }

            GridViewColumn column;

            foreach (var p in productos)
            {
                var productoPresentacionTipo = p.ProductoPresentacionTipos.Where(pp => pp.IdPresentacionTipo == 4).FirstOrDefault();
                if (productoPresentacionTipo != null)
                {
                    column = new GridViewBandColumn();
                    (column as GridViewBandColumn).Columns.Add(new GridViewDataTextColumn {
                        FieldName = "Cap_" + productoPresentacionTipo.IdProducto.ToString(), Caption = "Capacidad (Gls)"
                    });
                    (column as GridViewBandColumn).Columns[(column as GridViewBandColumn).Columns.Count - 1].HeaderStyle.Wrap          = DevExpress.Utils.DefaultBoolean.True;
                    (column as GridViewBandColumn).Columns[(column as GridViewBandColumn).Columns.Count - 1].CellStyle.HorizontalAlign = HorizontalAlign.Right;


                    (column as GridViewBandColumn).Columns.Add(new GridViewDataTextColumn {
                        FieldName = "Inv_" + productoPresentacionTipo.IdProductoxPresentacion.ToString(), Caption = "Inventario Actual (Gls)"
                    });
                    (column as GridViewBandColumn).Columns[(column as GridViewBandColumn).Columns.Count - 1].HeaderStyle.Wrap          = DevExpress.Utils.DefaultBoolean.True;
                    (column as GridViewBandColumn).Columns[(column as GridViewBandColumn).Columns.Count - 1].CellStyle.HorizontalAlign = HorizontalAlign.Right;

                    (column as GridViewBandColumn).Columns.Add(new GridViewDataTextColumn {
                        FieldName = "Ven_" + productoPresentacionTipo.IdProductoxPresentacion.ToString(), Caption = "Ventas del Días Anterior (Lts)"
                    });
                    (column as GridViewBandColumn).Columns[(column as GridViewBandColumn).Columns.Count - 1].HeaderStyle.Wrap          = DevExpress.Utils.DefaultBoolean.True;
                    (column as GridViewBandColumn).Columns[(column as GridViewBandColumn).Columns.Count - 1].CellStyle.HorizontalAlign = HorizontalAlign.Right;

                    column.Caption = p.NombreComercial;


                    column.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
                    GrdInventario.Columns.Add(column);
                }
            }


            GrdInventario.DataSource = datos;
            GrdInventario.DataBind();

            GrdInventario.Columns["Fecha"].Width     = 80;
            GrdInventario.Columns["HoraCorte"].Width = 90;

            if (inventarios.Where(inv => inv.IdInventario == 0).Count() != 0)
            {
                LblAlerta.Text = String.Format("Tiene {0} día(s) de inventario sin reportar. Por favor, actualice su información.", inventarios.Where(inv => inv.IdInventario == 0).Count());
                Image1.Visible = true;
            }
            else
            {
                LblAlerta.Text = "";
                Image1.Visible = false;
            }

            LblAlerta.Visible = true;
            //     Image1.Visible = true;
        }