Exemplo n.º 1
0
        protected void CargarDetalle(Int32 idInventario, Int32 idVenta)
        {
            //  List<INE.ServiciosWeb.Producto.Contrato.Producto> productos;
            DataTable detalle;
            Int32     i;

            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);

            ProductoServicio_T.ProductoContratoClient pro = new ProductoContratoClient();
            var productos = pro.ObtenerListadoPorAgenteEconomicoActivo(user.IdAgenteEconomico);


            detalle = new DataTable();
            detalle.Columns.Add("Id");
            detalle.Columns.Add("Concepto");


            i = 2;
            foreach (var p in productos)
            {
                var productoPresentacionTipo = p.ProductoPresentacionTipos.Where(pp => pp.IdPresentacionTipo == 4 && pp.Activo == true).FirstOrDefault();
                detalle.Columns.Add(productoPresentacionTipo.IdProductoxPresentacion.ToString());
                GrdDetalle.Columns[i].HeaderText     = p.NombreComercial;
                GrdComprobante.Columns[i].HeaderText = p.NombreComercial; //ESTO LO PUSE VEAMOS
                i++;
            }


            detalle.Rows.Add(detalle.NewRow());
            detalle.Rows[detalle.Rows.Count - 1]["Concepto"] = "Inventario Actual(Gls): ";
            detalle.Rows[detalle.Rows.Count - 1]["Id"]       = idInventario;
            detalle.Rows.Add(detalle.NewRow());
            detalle.Rows[detalle.Rows.Count - 1]["Id"]       = 2;
            detalle.Rows[detalle.Rows.Count - 1]["Concepto"] = "Ventas del día anterior(Lts):";
            detalle.Rows.Add(detalle.NewRow());
            detalle.Rows[detalle.Rows.Count - 1]["Id"]       = 3;
            detalle.Rows[detalle.Rows.Count - 1]["Concepto"] = "Precio x Lts(C$):";


            GrdDetalle.DataSource = detalle;
            GrdDetalle.DataBind();

            GrdComprobante.DataSource = detalle;
            GrdComprobante.DataBind();

            // GrdComprobante.Rows[0].Cells[1].BackColor = Color.FromArgb(109,108,110); //Con esto coloreamos la celdas de la parte izquierda del comprobante



            // ((TextBox)GrdDetalle.Rows[1].FindControl("Txt8") ).Text = "15" ;



            for (i = 0; i < productos.Count(); i++)
            {
                var productoPresentacion = productos[i].ProductoPresentacionTipos.Where(pp => pp.IdPresentacionTipo == 4 && pp.Activo == true).SingleOrDefault();

                if (productoPresentacion != null)
                {
                    if (idInventario != 0)
                    {
                        InventarioServicio_T.InventarioContratoClient invent = new InventarioContratoClient();

                        var inventario = invent.Obtener(idInventario);
                        (GrdDetalle.Rows[0].Cells[i + 2].FindControl("TxtCampo" + (i + 2).ToString()) as TextBox).Text = inventario.InventarioDetalle.Where(det => det.IdProductoxPresentacion == productoPresentacion.IdProductoxPresentacion).SingleOrDefault().InventarioTotal.ToString("#,##0.00");

                        TxtObservacion.Text = inventario.Observaciones;

                        //ASPxTimeEdit.Value = inventario.HoraCorte;
                    }

                    if (idVenta != 0)
                    {
                        VentaServicio_T.VentaContratoClient vent = new VentaContratoClient();


                        var venta = vent.Obtener(idVenta);
                        (GrdDetalle.Rows[1].Cells[i + 2].FindControl("TxtCampo" + (i + 2).ToString()) as TextBox).Text = venta.VentaDetalles.Where(det => det.IdProductoxPresentacion == productoPresentacion.IdProductoxPresentacion).SingleOrDefault().Volumen.ToString("#,##0.00");
                        (GrdDetalle.Rows[2].Cells[i + 2].FindControl("TxtCampo" + (i + 2).ToString()) as TextBox).Text = venta.VentaDetalles.Where(det => det.IdProductoxPresentacion == productoPresentacion.IdProductoxPresentacion).SingleOrDefault().Precio.ToString("#,##0.00");
                    }

                    (GrdDetalle.Rows[0].Cells[i + 2].FindControl("HdfIdProductoXPresentacion" + (i + 2).ToString()) as HiddenField).Value = productoPresentacion.IdProductoxPresentacion.ToString();
                    (GrdDetalle.Rows[1].Cells[i + 2].FindControl("HdfIdProductoXPresentacion" + (i + 2).ToString()) as HiddenField).Value = productoPresentacion.IdProductoxPresentacion.ToString();
                    (GrdDetalle.Rows[2].Cells[i + 2].FindControl("HdfIdProductoXPresentacion" + (i + 2).ToString()) as HiddenField).Value = productoPresentacion.IdProductoxPresentacion.ToString();
                }
                else
                {
                    (GrdDetalle.Rows[0].Cells[i + 2].FindControl("TxtCampo" + (i + 2).ToString()) as TextBox).Text = "0.00";

                    (GrdDetalle.Rows[1].Cells[i + 2].FindControl("TxtCampo" + (i + 2).ToString()) as TextBox).Text = "0.00";
                    (GrdDetalle.Rows[2].Cells[i + 2].FindControl("TxtCampo" + (i + 2).ToString()) as TextBox).Text = "0.00";
                }

                (GrdDetalle.Rows[0].Cells[i + 2].FindControl("HdfIdProducto" + (i + 2).ToString()) as HiddenField).Value = productos[i].IdProducto.ToString();
                (GrdDetalle.Rows[1].Cells[i + 2].FindControl("HdfIdProducto" + (i + 2).ToString()) as HiddenField).Value = productos[i].IdProducto.ToString();
                (GrdDetalle.Rows[2].Cells[i + 2].FindControl("HdfIdProducto" + (i + 2).ToString()) as HiddenField).Value = productos[i].IdProducto.ToString();
            }

            for (i = productos.Count() + 2; i < GrdDetalle.Columns.Count; i++)
            {
                GrdDetalle.Columns[i].Visible     = false;
                GrdComprobante.Columns[i].Visible = false;
            }

            if (idVenta > 0)
            {
                VentaServicio_T.VentaContratoClient vent = new VentaContratoClient();
                var venta = vent.Obtener(idVenta);
            }
        }
Exemplo n.º 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
        }
Exemplo n.º 3
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;
        }