Exemplo n.º 1
0
        public override void ActualizarControl()
        {
            Lbl.Articulos.Articulo Art = this.Elemento as Lbl.Articulos.Articulo;

            EntradaCodigo1.Text       = Art.Codigo1;
            EntradaCodigo2.Text       = Art.Codigo2;
            EntradaCodigo3.Text       = Art.Codigo3;
            EntradaCodigo4.Text       = Art.Codigo4;
            EntradaCategoria.Elemento = Art.Categoria;
            EntradaMarca.Elemento     = Art.Marca;
            EntradaCaja.Elemento      = Art.Caja;
            EntradaModelo.Text        = Art.Modelo;
            EntradaSerie.Text         = Art.Serie;
            EntradaNombre.Text        = Art.Nombre;
            EntradaUrl.Text           = Art.Url;
            EntradaProveedor.Elemento = Art.Proveedor;
            EntradaDescripcion.Text   = Art.Descripcion;
            EntradaDescripcion2.Text  = Art.Descripcion2;
            EntradaDestacado.ValueInt = Art.Destacado ? 1 : 0;
            EntradaWeb.ValueInt       = ((int)(Art.Publicacion));

            IgnorarCostoMargenTextChanged++;
            EntradaCosto.ValueDecimal = Art.Costo;
            if (Art.Margen == null)
            {
                EntradaMargen.ValueInt = 0;
            }
            else
            {
                EntradaMargen.ValueInt = Art.Margen.Id;
            }

            EntradaPvp.ValueDecimal = Art.Pvp;

            if (Art.Margen == null)
            {
                EntradaMargen.ValueInt = 0;
            }
            else
            {
                EntradaMargen.ValueInt = Art.Margen.Id;
            }

            IgnorarCostoMargenTextChanged--;

            EntradaTipoDeArticulo.ValueInt  = (int)(Art.TipoDeArticulo);
            EntradaSeguimiento.ValueInt     = (int)(Art.Seguimiento);
            EntradaPeriodicidad.ValueInt    = (int)(Art.Periodicidad);
            EntradaSeguimiento.ReadOnly     = Art.Existe && Art.Existencias != 0;
            EntradaStockActual.ValueDecimal = Art.Existencias;
            EntradaStockActual.ReadOnly     = Art.Existe;
            EntradaUnidad.TextKey           = Art.Unidad;
            Rendimiento       = Art.Rendimiento;
            UnidadRendimiento = Art.UnidadRendimiento;
            EntradaStockMinimo.ValueDecimal = Art.PuntoDeReposicion;
            EntradaGarantia.ValueInt        = Art.Garantia;
            CustomName = Art.Existe;

            base.ActualizarControl();
        }
Exemplo n.º 2
0
        public void AddWithValue(Lbl.Articulos.Articulo articulo, decimal cantidad, decimal unitario, string obs)
        {
            DetalleArticulo Det = new DetalleArticulo(this.ElementoPadre);

            Det.Articulo = articulo;
            Det.Cantidad = cantidad;
            Det.Unitario = unitario;
            Det.Obs      = obs;
        }
Exemplo n.º 3
0
        public override Lfx.Types.OperationResult Ok()
        {
            Lbl.Articulos.Articulo    Art = EntradaArticulo.Elemento as Lbl.Articulos.Articulo;
            Lfx.Types.OperationResult Res = new Lfx.Types.SuccessOperationResult();

            if (Art == null)
            {
                Res.Message += "Por favor seleccione un artículo." + Environment.NewLine;
                Res.Success  = false;
            }

            if (EntradaDesdeSituacion.ValueInt != EntradaDesdeSituacion.ValueInt)
            {
                Res.Message += @"Por favor indique ""Desde"" y ""Hacia""." + Environment.NewLine;
                Res.Success  = false;
            }

            if (EntradaCantidad.ValueDecimal <= 0)
            {
                Res.Message += "Por favor escriba la cantidad." + Environment.NewLine;
                Res.Success  = false;
            }

            if (Res.Success)
            {
                if (Art != null && Art.ObtenerSeguimiento() != Lbl.Articulos.Seguimientos.Ninguno)
                {
                    if (EntradaArticulo.DatosSeguimiento == null || EntradaArticulo.DatosSeguimiento.Count == 0)
                    {
                        return(new Lfx.Types.FailureOperationResult("Debe ingresar los datos de seguimiento (Ctrl-S) del artículo '" + Art.Nombre + "' para poder realizar movimientos de stock."));
                    }
                    else
                    {
                        if (EntradaArticulo.DatosSeguimiento.CantidadTotal < EntradaArticulo.Cantidad)
                        {
                            return(new Lfx.Types.FailureOperationResult("Debe ingresar los datos de seguimiento (Ctrl-S) de todos los artículos '" + Art.Nombre + "' para poder realizar movimientos de stock."));
                        }
                    }
                }
            }


            if (Res.Success)
            {
                IDbTransaction          Trans = this.Connection.BeginTransaction(IsolationLevel.Serializable);
                decimal                 Cantidad = EntradaCantidad.ValueDecimal;
                Lbl.Articulos.Situacion Origen, Destino;
                Origen  = EntradaDesdeSituacion.Elemento as Lbl.Articulos.Situacion;
                Destino = EntradaHaciaSituacion.Elemento as Lbl.Articulos.Situacion;
                Art.MoverExistencias(null, Cantidad, EntradaObs.Text, Origen, Destino, EntradaArticulo.DatosSeguimiento);
                Trans.Commit();
            }

            return(Res);
        }
Exemplo n.º 4
0
        public override void ActualizarElemento()
        {
            Lbl.Articulos.Articulo Art = this.Elemento as Lbl.Articulos.Articulo;

            Art.Codigo1      = EntradaCodigo1.Text;
            Art.Codigo2      = EntradaCodigo2.Text;
            Art.Codigo3      = EntradaCodigo3.Text;
            Art.Codigo4      = EntradaCodigo4.Text;
            Art.Categoria    = EntradaCategoria.Elemento as Lbl.Articulos.Categoria;
            Art.Marca        = EntradaMarca.Elemento as Lbl.Articulos.Marca;
            Art.Caja         = EntradaCaja.Elemento as Lbl.Cajas.Caja;
            Art.Modelo       = EntradaModelo.Text;
            Art.Serie        = EntradaSerie.Text;
            Art.Nombre       = EntradaNombre.Text;
            Art.Url          = EntradaUrl.Text;
            Art.Proveedor    = EntradaProveedor.Elemento as Lbl.Personas.Persona;
            Art.Descripcion  = EntradaDescripcion.Text;
            Art.Descripcion2 = EntradaDescripcion2.Text;
            Art.Destacado    = EntradaDestacado.ValueInt != 0;
            Art.Costo        = EntradaCosto.ValueDecimal;

            if (EntradaMargen.ValueInt > 0)
            {
                Art.Margen = this.Margenes.GetById(EntradaMargen.ValueInt);
            }
            else
            {
                Art.Margen = null;
            }

            Art.Pvp               = EntradaPvp.ValueDecimal;
            Art.TipoDeArticulo    = (Lbl.Articulos.TiposDeArticulo)(EntradaTipoDeArticulo.ValueInt);
            Art.Seguimiento       = (Lbl.Articulos.Seguimientos)(EntradaSeguimiento.ValueInt);
            Art.Periodicidad      = (Lbl.Articulos.Periodicidad)(EntradaPeriodicidad.ValueInt);
            Art.PuntoDeReposicion = Lfx.Types.Parsing.ParseStock(EntradaStockMinimo.Text);
            Art.Unidad            = EntradaUnidad.TextKey;
            Art.Rendimiento       = Rendimiento;
            Art.UnidadRendimiento = UnidadRendimiento;
            Art.Estado            = 1;
            Art.Garantia          = EntradaGarantia.ValueInt;
            Art.Publicacion       = ((Lbl.Articulos.Publicacion)(EntradaWeb.ValueInt));
            if (Art.Existe == false)
            {
                Art.ExistenciasInicial = EntradaStockActual.ValueDecimal;
            }

            Lbl.Articulos.Seguimientos Seg = Art.ObtenerSeguimiento();
            if (Seg != Lbl.Articulos.Seguimientos.Ninguno)
            {
                // Verificar que los datos de seguimiento actual coincidan con el stock actual
            }

            base.ActualizarElemento();
        }
Exemplo n.º 5
0
        protected override void OnLeave(EventArgs e)
        {
            Lbl.Articulos.Articulo Art = this.Elemento as Lbl.Articulos.Articulo;

            if (this.Cantidad != 0 && Art != null && Art.ObtenerSeguimiento() != Lbl.Articulos.Seguimientos.Ninguno && (this.DatosSeguimiento == null || this.DatosSeguimiento.Count != this.Cantidad))
            {
                this.ObtenerDatosSeguimientoSiEsNecesario();
            }

            base.OnLeave(e);
        }
Exemplo n.º 6
0
 private void BotonReceta_Click(object sender, EventArgs e)
 {
     if (EntradaTipoDeArticulo.TextKey == "2")
     {
         Lbl.Articulos.Articulo Art = this.Elemento as Lbl.Articulos.Articulo;
         Receta FormReceta          = new Receta();
         FormReceta.ReadOnly = this.TemporaryReadOnly;
         FormReceta.Articulo = Art;
         if (FormReceta.ShowDialog() == System.Windows.Forms.DialogResult.OK)
         {
             this.Changed = true;
             this.ActualizarCostoYStockSegunReceta();
         }
     }
 }
Exemplo n.º 7
0
        public virtual void ImportarRegistro(MapaDeTabla mapa, Lfx.Data.Row importedRow)
        {
            object ImportIdValue = importedRow.Fields[mapa.ColumnaIdLazaro].Value;
            string ImportIdSqlValue;

            if (ImportIdValue is string)
            {
                ImportIdSqlValue = "'" + ImportIdValue.ToString() + "'";
            }
            else if (ImportIdValue is decimal || ImportIdValue is double)
            {
                ImportIdSqlValue = Lfx.Types.Formatting.FormatNumberSql(System.Convert.ToDecimal(ImportIdValue));
            }
            else if (ImportIdValue is DateTime)
            {
                ImportIdSqlValue = "'" + Lfx.Types.Formatting.FormatDateTimeSql(System.Convert.ToDateTime(ImportIdValue)) + "'";
            }
            else
            {
                ImportIdSqlValue = ImportIdValue.ToString();
            }

            Lfx.Data.Row         CurrentRow = this.Connection.FirstRowFromSelect("SELECT * FROM " + mapa.TablaLazaro + " WHERE " + mapa.ColumnaIdLazaro + "=" + ImportIdSqlValue);
            Lbl.IElementoDeDatos Elem       = ConvertirRegistroEnElemento(mapa, importedRow, CurrentRow);

            if (Elem != null)
            {
                this.GuardarElemento(mapa, Elem);

                if (this.Opciones.ImportarStock && Elem is Lbl.Articulos.Articulo && importedRow.Fields.Contains("stock_actual"))
                {
                    // Actualizo el stock
                    Lbl.Articulos.Articulo Art = Elem as Lbl.Articulos.Articulo;

                    decimal StockActual = Art.ObtenerExistencias();
                    decimal NuevoStock  = System.Convert.ToDecimal(importedRow["stock_actual"]);
                    decimal Diferencia  = NuevoStock - StockActual;

                    if (Diferencia != 0)
                    {
                        Art.MoverExistencias(null, Diferencia, "Stock importado desde " + this.Nombre, null, new Articulos.Situacion(this.Connection, Lfx.Workspace.Master.CurrentConfig.Productos.DepositoPredeterminado), null);
                    }
                }
            }
        }
Exemplo n.º 8
0
        private void EntradaArticulo_ObtenerDatosSeguimiento(object sender, EventArgs e)
        {
            Lbl.Articulos.Articulo Articulo = EntradaArticulo.Elemento as Lbl.Articulos.Articulo;
            decimal Cant = EntradaArticulo.Cantidad;

            if (Cant != 0)
            {
                Lfc.Articulos.EditarSeguimiento Editar = new Lfc.Articulos.EditarSeguimiento();
                Editar.Articulo         = Articulo;
                Editar.Cantidad         = Math.Abs(System.Convert.ToInt32(Cant));
                Editar.SituacionOrigen  = this.EntradaDesdeSituacion.Elemento as Lbl.Articulos.Situacion;
                Editar.DatosSeguimiento = EntradaArticulo.DatosSeguimiento;
                if (Editar.ShowDialog() == DialogResult.OK)
                {
                    EntradaArticulo.DatosSeguimiento = Editar.DatosSeguimiento;
                }
            }
        }
Exemplo n.º 9
0
        private void ActualizarCostoYStockSegunReceta()
        {
            Lbl.Articulos.Articulo Art = this.Elemento as Lbl.Articulos.Articulo;

            if (EntradaTipoDeArticulo.ValueInt == 2)
            {
                if (Art.Receta == null)
                {
                    EntradaCosto.ValueDecimal = 0;
                }
                else
                {
                    EntradaCosto.ValueDecimal = Art.Receta.Costo;
                }

                EntradaStockActual.ValueDecimal = Art.ObtenerExistencias();
            }
        }
Exemplo n.º 10
0
        /// <summary>
        ///
        /// </summary>
        protected decimal CalcularDescuento()
        {
            decimal outDe = m_descAnt;

            Lbl.Articulos.Articulo Art = this.Elemento as Lbl.Articulos.Articulo;
            if (this.CargarPersona != "" && this.CargarPersona != "0" && Art != null && Art.Id != m_IdArticulo)
            {
                m_IdArticulo = Art.Id;
                DataTable dt  = this.Connection.Select("SELECT * FROM personas_descuentos WHERE estado=1 AND id_persona=" + this.CargarPersona + " Order By descuento Desc");
                DateTime  now = this.Connection.FieldDateTime("SELECT NOW()", DateTime.Now);
                foreach (DataRow dr in dt.Rows)
                {
                    DateTime desde    = (DateTime)dr["desde"];
                    DateTime hasta    = (DateTime)dr["hasta"];
                    string   horario  = dr["horario"].ToString();
                    decimal  des      = (decimal)dr["descuento"];
                    string   id_rubro = dr["id_rubro"].ToString();
                    if (DateTime.Compare(now, desde) >= 0 && DateTime.Compare(now, hasta) <= 0)
                    {
                        if ((horario == "0") || (horario == "1" && TimeSpan.Compare(now.TimeOfDay, desde.TimeOfDay) >= 0 && TimeSpan.Compare(now.TimeOfDay, hasta.TimeOfDay) <= 0))
                        {
                            if (id_rubro != "")
                            {
                                if (Art.Categoria.Rubro.Id == int.Parse(id_rubro))
                                {
                                    Descuento = outDe = m_descAnt = des;
                                }
                            }
                            else if (id_rubro == "")
                            {
                                Descuento = outDe = m_descAnt = des;//descuento general
                            }
                        }
                    }
                    if (outDe != 0)
                    {
                        break;
                    }
                }
                m_descAnt = outDe;
            }
            return(outDe);
        }
Exemplo n.º 11
0
        public void Mostrar(Lbl.Articulos.Articulo articulo)
        {
            this.EtiquetaTitulo.Text = "Conformación de existencias de " + articulo.ToString();

            ListaConformacion.BeginUpdate();
            ListaConformacion.Items.Clear();
            System.Data.DataTable Situaciones = this.Connection.Select("SELECT id_situacion, nombre FROM articulos_situaciones WHERE id_situacion IN (SELECT DISTINCT id_situacion FROM articulos_stock WHERE id_articulo=" + articulo.Id.ToString() + ")");

            foreach (System.Data.DataRow Situacion in Situaciones.Rows)
            {
                ListViewGroup         Grupo     = ListaConformacion.Groups.Add(Situacion["id_situacion"].ToString(), Situacion["nombre"].ToString());
                System.Data.DataTable Articulos = this.Connection.Select("SELECT serie, cantidad FROM articulos_series WHERE cantidad<>0 AND id_articulo=" + articulo.Id.ToString() + " AND id_situacion=" + Situacion["id_situacion"].ToString());
                foreach (System.Data.DataRow Articulo in Articulos.Rows)
                {
                    string       Serie = Articulo["serie"].ToString();
                    ListViewItem Itm   = ListaConformacion.Items.Add(Serie);
                    Itm.SubItems[0].Text = Serie;
                    Itm.SubItems.Add(Lfx.Types.Formatting.FormatStock(System.Convert.ToDecimal(Articulo["cantidad"]), Lbl.Sys.Config.Articulos.Decimales));
                    Itm.Group = Grupo;
                }
            }

            DataTable Stocks = this.Connection.Select("SELECT id_articulo, id_situacion, cantidad FROM articulos_stock WHERE id_articulo=" + articulo.Id.ToString() + " AND cantidad<>0 AND id_situacion<>998 AND id_situacion<>999 ORDER BY id_situacion");

            if (Stocks != null)
            {
                ListViewGroup Grupo = ListaConformacion.Groups.Add("000", "Totales por depósito");

                foreach (System.Data.DataRow Stock in Stocks.Rows)
                {
                    Lfx.Data.Row Situacion = this.Connection.Row("articulos_situaciones", "id_situacion", System.Convert.ToInt32(Stock["id_situacion"]));

                    ListViewItem Itm = ListaConformacion.Items.Add(Situacion["nombre"].ToString());
                    Itm.SubItems.Add(Lfx.Types.Formatting.FormatStock(System.Convert.ToDecimal(Stock["cantidad"]), Lbl.Sys.Config.Articulos.Decimales));

                    Itm.Group = Grupo;
                }
            }

            ListaConformacion.EndUpdate();
        }
Exemplo n.º 12
0
        private void EntradaProductos_ObtenerDatosSeguimiento(object sender, EventArgs e)
        {
            Lcc.Entrada.Articulos.DetalleComprobante Prod = ((Lcc.Entrada.Articulos.DetalleComprobante)(sender));
            Lbl.Articulos.Articulo Articulo = Prod.Elemento as Lbl.Articulos.Articulo;
            decimal Cant = Prod.Cantidad;

            if (Cant != 0)
            {
                Lbl.Comprobantes.ComprobanteDeCompra Comprob = this.Elemento as Lbl.Comprobantes.ComprobanteDeCompra;

                Lfc.Articulos.EditarSeguimiento Editar = new Lfc.Articulos.EditarSeguimiento();
                Editar.Articulo         = Articulo;
                Editar.Cantidad         = Math.Abs(System.Convert.ToInt32(Cant));
                Editar.SituacionOrigen  = Comprob.SituacionOrigen;
                Editar.DatosSeguimiento = Prod.DatosSeguimiento;
                if (Editar.ShowDialog() == DialogResult.OK)
                {
                    Prod.DatosSeguimiento = Editar.DatosSeguimiento;
                }
            }
        }
Exemplo n.º 13
0
        private void MostrarStock()
        {
            Lbl.Articulos.Articulo Articulo = EntradaArticulo.Elemento as Lbl.Articulos.Articulo;

            if (Articulo != null && (EntradaDesdeSituacion.ValueInt != EntradaHaciaSituacion.ValueInt))
            {
                decimal Cantidad      = EntradaCantidad.ValueDecimal;
                decimal DesdeCantidad = this.Connection.FieldDecimal("SELECT cantidad FROM articulos_stock WHERE id_articulo=" + Articulo.Id.ToString() + " AND id_situacion=" + EntradaDesdeSituacion.ValueInt.ToString());
                decimal HaciaCantidad = this.Connection.FieldDecimal("SELECT cantidad FROM articulos_stock WHERE id_articulo=" + Articulo.Id.ToString() + " AND id_situacion=" + EntradaHaciaSituacion.ValueInt.ToString());

                if (EntradaDesdeSituacion.ValueInt < 998 || EntradaDesdeSituacion.ValueInt > 999)
                {
                    EntradaDesdeAntes.Text   = Lfx.Types.Formatting.FormatNumber(DesdeCantidad, Lbl.Sys.Config.Articulos.Decimales);
                    EntradaDesdeDespues.Text = Lfx.Types.Formatting.FormatNumber(DesdeCantidad - Cantidad, Lbl.Sys.Config.Articulos.Decimales);
                }
                else
                {
                    EntradaDesdeAntes.Text   = "N/A";
                    EntradaDesdeDespues.Text = "N/A";
                }

                if (EntradaHaciaSituacion.ValueInt < 998 || EntradaHaciaSituacion.ValueInt > 999)
                {
                    EntradaHaciaAntes.Text   = Lfx.Types.Formatting.FormatNumber(HaciaCantidad, Lbl.Sys.Config.Articulos.Decimales);
                    EntradaHaciaDespues.Text = Lfx.Types.Formatting.FormatNumber(HaciaCantidad + Cantidad, Lbl.Sys.Config.Articulos.Decimales);
                }
                else
                {
                    EntradaHaciaAntes.Text   = "N/A";
                    EntradaHaciaDespues.Text = "N/A";
                }
            }
            else
            {
                EntradaDesdeAntes.Text   = "";
                EntradaDesdeDespues.Text = "";
                EntradaHaciaAntes.Text   = "";
                EntradaHaciaDespues.Text = "";
            }
        }
Exemplo n.º 14
0
        public void EnviarNP(object sender, System.EventArgs e)
        {
            Lbl.Comprobantes.ComprobanteDeCompra Comprob = new Lbl.Comprobantes.ComprobanteDeCompra(this.Connection);

            Comprob.Tipo        = Lbl.Comprobantes.Tipo.TodosPorLetra["NP"];
            Comprob.FormaDePago = new Lbl.Pagos.FormaDePago(this.Connection, 3);

            Lbl.Comprobantes.ColeccionDetalleArticulos newCole = new Lbl.Comprobantes.ColeccionDetalleArticulos(this.Connection);
            foreach (ListViewItem Itm in this.Listado.Items)
            {
                Lbl.Articulos.Articulo           art    = new Lbl.Articulos.Articulo(this.Connection, int.Parse(Itm.SubItems[0].Text));
                Lbl.Comprobantes.DetalleArticulo detArt = new Lbl.Comprobantes.DetalleArticulo(this.Connection);
                detArt.Crear();
                detArt.Articulo = art;
                decimal costoFinal = decimal.Parse(Itm.SubItems["articulos.costo"].Text);
                detArt.ImporteUnitario = costoFinal;
                decimal stockAct = decimal.Parse(Itm.SubItems["articulos.stock_actual"].Text);
                decimal stockMin = decimal.Parse(Itm.SubItems["articulos.stock_minimo"].Text);
                if (stockMin == 0)
                {
                    detArt.Cantidad = 1;
                }
                else
                {
                    detArt.Cantidad = stockMin > stockAct ? stockMin - stockAct : stockMin;
                }
                newCole.Add(detArt);
            }
            Comprob.Articulos.AddRange(newCole);
            Comprob.Estado = 50;

            Lfc.FormularioEdicion FormularioEdicion = Lfc.Instanciador.InstanciarFormularioEdicion(Comprob);
            FormularioEdicion.MdiParent = this.MdiParent; //this.ParentForm.MdiParent;
            FormularioEdicion.Show();

            //Lbl.IElementoDeDatos El = Lbl.Instanciador.Instanciar(this.Definicion.ElementoTipo, Lfx.Workspace.Master.GetNewConnection("Crear " + this.Definicion.ElementoTipo.ToString()) as Lfx.Data.Connection);
            //El.Crear();
        }
Exemplo n.º 15
0
        protected void Recalcular()
        {
            foreach (ListViewItem Itm in this.Listado.Items)
            {
                Itm.UseItemStyleForSubItems = false;
                decimal Costo = Lfx.Types.Parsing.ParseCurrency(Itm.SubItems[1].Text);
                decimal Pvp   = Lfx.Types.Parsing.ParseCurrency(Itm.SubItems[3].Text);

                decimal NuevoCosto = 0m;
                decimal NuevoPvp   = 0m;
                decimal Aumento    = EntradaCantidad.ValueDecimal;

                switch (EntradaUnidad.TextKey)
                {
                case "pct":
                    if (EntradaMovimiento.TextKey == "+")
                    {
                        NuevoCosto = Costo * (1m + Aumento / 100m);
                        NuevoPvp   = Pvp * (1m + Aumento / 100m);
                    }
                    else
                    {
                        NuevoCosto = Costo * (1m - Aumento / 100m);
                        NuevoPvp   = Pvp * (1m - Aumento / 100m);
                    }
                    break;

                case "pesos":
                    if (EntradaMovimiento.TextKey == "+")
                    {
                        NuevoCosto = Costo + Aumento;
                        NuevoPvp   = Pvp + Aumento;
                    }
                    else
                    {
                        NuevoCosto = Costo - Aumento;
                        NuevoPvp   = Pvp - Aumento;
                    }
                    break;

                case "psmg":
                    int ArtId = Lfx.Types.Parsing.ParseInt(Itm.Tag.ToString());
                    Lbl.Articulos.Articulo GetArt = new Lbl.Articulos.Articulo(this.Connection, ArtId);

                    decimal Margen = 0;
                    if (GetArt != null && GetArt.Margen != null)
                    {
                        Margen = Math.Round(GetArt.Margen.Porcentaje, Lbl.Sys.Config.Moneda.DecimalesFinal);
                        if (Margen != 0)
                        {
                            Margen = 1 + Margen / 100;
                        }
                    }

                    if (EntradaMovimiento.TextKey == "+")
                    {
                        NuevoCosto = Costo + Aumento;
                        if (Margen == 0)
                        {
                            Margen = 1 + ((Pvp - Costo) / (Costo == 0 ? 1 : Costo));
                        }
                        NuevoPvp = NuevoCosto * Margen;
                    }
                    else
                    {
                        NuevoCosto = Costo - Aumento;
                        if (Margen == 0)
                        {
                            Margen = 1 + ((Pvp - Costo) / (Costo == 0 ? 1 : Costo));
                        }
                        NuevoPvp = NuevoCosto * (Margen == 0 ? 1 : Margen);
                    }
                    Itm.SubItems[6].Text = Margen.ToString();
                    break;
                }

                if (EntradaPrecio.TextKey == "costo")
                {
                    Itm.SubItems[4].Text      = Itm.SubItems[3].Text;
                    Itm.SubItems[2].Text      = Lfx.Types.Formatting.FormatCurrency(NuevoCosto);
                    Itm.SubItems[2].BackColor = System.Drawing.Color.LightGoldenrodYellow;
                    Itm.SubItems[4].BackColor = System.Drawing.SystemColors.Window;
                }
                else if (EntradaPrecio.TextKey == "pvp")
                {
                    Itm.SubItems[2].Text      = Itm.SubItems[1].Text;
                    Itm.SubItems[4].Text      = Lfx.Types.Formatting.FormatCurrency(NuevoPvp);
                    Itm.SubItems[2].BackColor = System.Drawing.SystemColors.Window;
                    Itm.SubItems[4].BackColor = System.Drawing.Color.LightGoldenrodYellow;
                }
                else
                {
                    Itm.SubItems[2].Text      = Lfx.Types.Formatting.FormatCurrency(NuevoCosto);
                    Itm.SubItems[4].Text      = Lfx.Types.Formatting.FormatCurrency(NuevoPvp);
                    Itm.SubItems[2].BackColor = System.Drawing.Color.LightGoldenrodYellow;
                    Itm.SubItems[4].BackColor = System.Drawing.Color.LightGoldenrodYellow;
                }
            }
        }
Exemplo n.º 16
0
        public void Mostrar(Lbl.Articulos.Articulo articulo)
        {
            Listado.BeginUpdate();
            Listado.Items.Clear();

            this.EtiquetaTitulo.Text = "Historial de entrada y salida de " + articulo.ToString();

            System.Data.DataTable Detalles = this.Connection.Select("SELECT id_movim, id_articulo, desdesituacion, haciasituacion, cantidad, series, fecha, saldo, obs FROM articulos_movim WHERE id_articulo=" + articulo.Id.ToString() + " ORDER BY fecha");

            ListViewItem itm = null;

            foreach (System.Data.DataRow Detalle in Detalles.Rows)
            {
                string DesdeSituacion = "Público";
                string HaciaSituacion = "Público";

                Detalle["desdesituacion"] = Lfx.Data.Connection.ConvertDBNullToZero(Detalle["desdesituacion"]);
                Detalle["haciasituacion"] = Lfx.Data.Connection.ConvertDBNullToZero(Detalle["haciasituacion"]);

                if (System.Convert.ToInt32(Detalle["desdesituacion"]) != 0)
                {
                    if (SituacionCache.ContainsKey(System.Convert.ToInt32(Detalle["desdesituacion"])) == false)
                    {
                        SituacionCache[System.Convert.ToInt32(Detalle["desdesituacion"])] = this.Connection.FieldString("SELECT nombre FROM articulos_situaciones WHERE id_situacion=" + Detalle["desdesituacion"].ToString());
                    }
                    DesdeSituacion = SituacionCache[(int)Detalle["desdesituacion"]];
                }

                if (System.Convert.ToInt32(Detalle["haciasituacion"]) != 0)
                {
                    if (SituacionCache.ContainsKey((int)Detalle["haciasituacion"]) == false)
                    {
                        SituacionCache[(int)Detalle["haciasituacion"]] = this.Connection.FieldString("SELECT nombre FROM articulos_situaciones WHERE id_situacion=" + Detalle["haciasituacion"].ToString());
                    }
                    HaciaSituacion = SituacionCache[(int)Detalle["haciasituacion"]];
                }

                itm = Listado.Items.Add(System.Convert.ToString(Detalle["id_movim"]));
                itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatDateAndTime(System.Convert.ToDateTime(Detalle["fecha"]))));
                itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatNumber(System.Convert.ToDecimal(Detalle["cantidad"]), Lbl.Sys.Config.Articulos.Decimales)));
                itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Detalle["series"].ToString()));
                itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, DesdeSituacion));
                itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, HaciaSituacion));
                itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatNumber(System.Convert.ToDecimal(Detalle["saldo"]), Lbl.Sys.Config.Articulos.Decimales)));
                itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, System.Convert.ToString(Detalle["obs"])));
            }
            Listado.EndUpdate();
            if (itm != null)
            {
                itm.Selected = true;
                itm.Focused  = true;
                itm.EnsureVisible();
            }

            ListadoPedidos.BeginUpdate();
            ListadoPedidos.Items.Clear();
            System.Data.DataTable Pedidos = this.Connection.Select(@"SELECT comprob.id_comprob, comprob.fecha, comprob.id_cliente, comprob.tipo_fac, comprob.numero, comprob_detalle.cantidad, comprob_detalle.precio, comprob.estado
				FROM comprob, comprob_detalle
				WHERE comprob.id_comprob=comprob_detalle.id_comprob
					AND comprob.compra=1
					AND comprob.tipo_fac='PD'
				    AND comprob.estado=50
					AND comprob_detalle.id_articulo="                     + articulo.Id.ToString() + @"
				ORDER BY comprob.fecha"                );

            itm = null;
            foreach (System.Data.DataRow Pedido in Pedidos.Rows)
            {
                itm = ListadoPedidos.Items.Add(System.Convert.ToString(Pedido["id_comprob"]));
                itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, this.Connection.FieldString("SELECT nombre_visible FROM personas WHERE id_persona=" + Lfx.Data.Connection.ConvertDBNullToZero(Pedido["id_cliente"]).ToString())));
                itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, System.Convert.ToString(Pedido["numero"])));
                itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatDateAndTime(System.Convert.ToDateTime(Pedido["fecha"]))));
                itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatNumber(System.Convert.ToDecimal(Pedido["cantidad"]), Lbl.Sys.Config.Articulos.Decimales)));
                itm.SubItems.Add(new ListViewItem.ListViewSubItem(itm, Lfx.Types.Formatting.FormatNumber(System.Convert.ToDecimal(Pedido["precio"]), Lfx.Workspace.Master.CurrentConfig.Moneda.DecimalesCosto)));
                switch (System.Convert.ToInt32(Pedido["estado"]))
                {
                case 50:
                    itm.ForeColor = System.Drawing.Color.DarkOrange;
                    break;

                case 100:
                    itm.ForeColor = System.Drawing.Color.DarkGreen;
                    break;

                case 200:
                    itm.ForeColor = System.Drawing.Color.DarkRed;
                    itm.Font      = new Font(itm.Font, System.Drawing.FontStyle.Strikeout);
                    break;
                }
            }
            ListadoPedidos.EndUpdate();
            if (itm != null)
            {
                itm.Selected = true;
                itm.Focused  = true;
                itm.EnsureVisible();
            }
        }
Exemplo n.º 17
0
        protected void CambiarArticulo(Lbl.Articulos.Articulo articulo)
        {
            if (this.Articulo != null)
            {
                EntradaUnitario.Enabled            = true;
                EntradaUnitario.Enabled            = true;
                EntradaDescuento.Enabled           = true;
                EntradaCantidad.Enabled            = true;
                EntradaImporte.Enabled             = true;
                EntradaCantidad.TemporaryReadOnly  = this.Articulo.ObtenerSeguimiento() != Lbl.Articulos.Seguimientos.Ninguno || this.TemporaryReadOnly;
                EntradaUnitario.TemporaryReadOnly  = this.TemporaryReadOnly || this.BloquearPrecio;
                EntradaDescuento.TemporaryReadOnly = this.TemporaryReadOnly || this.BloquearPrecio;
                if (this.AutoUpdate)
                {
                    if (this.Articulo == null)
                    {
                        return;
                    }

                    if (this.Articulo.Unidad != "u")
                    {
                        EntradaCantidad.Sufijo = Articulo.Unidad;
                    }
                    else
                    {
                        EntradaCantidad.Sufijo = "";
                    }

                    decimal UnitarioMostrar;
                    if (m_Precio == Precios.Costo)
                    {
                        UnitarioMostrar = Articulo.CostoLocal;
                    }
                    else
                    {
                        UnitarioMostrar = Articulo.PvpLocal;
                    }

                    if (this.Cantidad == 0)
                    {
                        this.Cantidad = 1;
                    }

                    this.EstablecerImporteUnitarioOriginal(UnitarioMostrar);
                    this.RecalcularImporteFinal();
                }
            }
            else if (EntradaArticulo.IsFreeText)
            {
                EntradaUnitario.Enabled            = true;
                EntradaDescuento.Enabled           = true;
                EntradaCantidad.Enabled            = true;
                EntradaCantidad.TemporaryReadOnly  = this.TemporaryReadOnly;
                EntradaUnitario.TemporaryReadOnly  = this.TemporaryReadOnly || this.BloquearPrecio;
                EntradaDescuento.TemporaryReadOnly = this.TemporaryReadOnly || this.BloquearPrecio;
                EntradaImporte.Enabled             = true;
                if (this.AutoUpdate)
                {
                    if (this.Cantidad == 0)
                    {
                        this.Cantidad = 1;
                    }
                }
            }
            else if (EntradaArticulo.Text.Length == 0 || (EntradaArticulo.Text.IsNumericInt() && EntradaArticulo.ValueInt == 0))
            {
                EntradaUnitario.Enabled            = false;
                EntradaDescuento.Enabled           = false;
                EntradaCantidad.Enabled            = false;
                EntradaCantidad.TemporaryReadOnly  = this.TemporaryReadOnly;
                EntradaUnitario.TemporaryReadOnly  = this.TemporaryReadOnly || this.BloquearPrecio;
                EntradaDescuento.TemporaryReadOnly = this.TemporaryReadOnly || this.BloquearPrecio;
                EntradaImporte.Enabled             = false;
                if (this.AutoUpdate)
                {
                    EntradaCantidad.ValueDecimal = 0m;
                    EntradaImporte.ValueDecimal  = 0m;
                    this.EstablecerImporteUnitarioOriginal(0m);
                    EntradaDescuento.ValueDecimal = 0m;
                }
            }
        }
Exemplo n.º 18
0
 public ItemReceta(Lbl.Articulos.Articulo articulo, decimal cantidad)
 {
     this.Articulo = articulo;
     this.Cantidad = cantidad;
 }
Exemplo n.º 19
0
                private void ActualizarBarra()
                {
                        this.SuspendLayout();

                        switch (TablaSolicitada) {
                                case "articulo":
                                case "articulos":
                                        PanelProgreso.Visible = false;
                                        PanelAyuda.Visible = false;
                                        PanelPersona.Visible = false;
                                        PanelArticulo.Visible = true;
                                        Lbl.Articulos.Articulo Art;
                                        try {
                                                Art = new Lbl.Articulos.Articulo(this.DataBase, ItemSolicitado);
                                        } catch {
                                                Art = null;
                                        }
                                        if (Art != null && Art.Existe) {
                                                ElementoActual = Art;
                                                ItemActual = ItemSolicitado;
                                                TablaActual = TablaSolicitada;

                                                string Codigos = Art.Id.ToString();
                                                if (Art.Codigo1 != null && Art.Codigo1.Length > 0)
                                                        Codigos += System.Environment.NewLine + Art.Codigo1;
                                                if (Art.Codigo2 != null && Art.Codigo2.Length > 0)
                                                        Codigos += System.Environment.NewLine + Art.Codigo2;
                                                if (Art.Codigo3 != null && Art.Codigo3.Length > 0)
                                                        Codigos += System.Environment.NewLine + Art.Codigo3;
                                                if (Art.Codigo4 != null && Art.Codigo4.Length > 0)
                                                        Codigos += System.Environment.NewLine + Art.Codigo4;
                                                ArticuloCodigos.Text = Codigos;
                                                ArticuloNombre.Text = Art.ToString();
                                                ArticuloDescripcion.Text = Art.Descripcion;
                                                ArticuloPvp.Text = Lfx.Types.Formatting.FormatCurrency(Art.Pvp, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales);
                                                ArticuloStock.Text = Lfx.Types.Formatting.FormatCurrency(Art.Existencias, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales);
                                                PanelArticulo.Visible = true;
                                        }
                                        break;
                                case "persona":
                                case "personas":
                                        PanelProgreso.Visible = false;
                                        PanelAyuda.Visible = false;
                                        PanelPersona.Visible = true;
                                        PanelArticulo.Visible = false;
                                        Lbl.Personas.Persona Per;
                                        try {
                                                Per = new Lbl.Personas.Persona(this.DataBase, ItemSolicitado);
                                        } catch {
                                                Per = null;
                                        }
                                        if (Per != null && Per.Existe) {
                                                ElementoActual = Per;
                                                ItemActual = ItemSolicitado;
                                                TablaActual = TablaSolicitada;

                                                PersonaNombre.Text = Per.ToString();
                                                PersonaDomicilio.Text = Per.Domicilio;
                                                PersonaTelefono.Text = Per.Telefono;
                                                PersonaEmail.Text = Per.Email;
                                                if (Per.Grupo != null)
                                                        PersonaGrupo.Text = Per.Grupo.ToString();
                                                else
                                                        PersonaGrupo.Text = "-";
                                                decimal Saldo;
                                                try {
                                                        Saldo = Per.CuentaCorriente.ObtenerSaldo(false);
                                                } catch {
                                                        Saldo = 0;
                                                }
                                                if (Saldo > 0) {
                                                        PersonaComentario.Text = "Registra saldo impago en cuenta corriente por " + Lfx.Types.Formatting.FormatCurrency(Saldo, Lfx.Workspace.Master.CurrentConfig.Moneda.DecimalesFinal);
                                                        PersonaComentario.TextStyle = Lazaro.Pres.DisplayStyles.TextStyles.SmallWarning;
                                                        PersonaComentario.Visible = true;
                                                } else if (Saldo < 0) {
                                                        PersonaComentario.Text = "Registra saldo a favor en cuenta corriente por " + Lfx.Types.Formatting.FormatCurrency(-Saldo, Lfx.Workspace.Master.CurrentConfig.Moneda.DecimalesFinal);
                                                        PersonaComentario.TextStyle = Lazaro.Pres.DisplayStyles.TextStyles.Small;
                                                        PersonaComentario.Visible = true;
                                                } else {
                                                        PersonaComentario.Visible = false;
                                                }
                                                PersonaImagen.Image = Per.Imagen;
                                                PanelPersona.Visible = true;
                                        }
                                        break;
                        }
                        this.ResumeLayout();
                }
Exemplo n.º 20
0
        private void ActualizarBarra()
        {
            this.SuspendLayout();

            switch (TablaSolicitada)
            {
            case "articulo":
            case "articulos":
                PanelProgreso.Visible = false;
                PanelAyuda.Visible    = false;
                PanelPersona.Visible  = false;
                PanelArticulo.Visible = true;
                Lbl.Articulos.Articulo Art;
                try {
                    Art = new Lbl.Articulos.Articulo(this.Connection, ItemSolicitado);
                } catch {
                    Art = null;
                }
                if (Art != null && Art.Existe)
                {
                    ElementoActual = Art;
                    ItemActual     = ItemSolicitado;
                    TablaActual    = TablaSolicitada;

                    string Codigos = Art.Id.ToString();
                    if (Art.Codigo1 != null && Art.Codigo1.Length > 0)
                    {
                        Codigos += System.Environment.NewLine + Art.Codigo1;
                    }
                    if (Art.Codigo2 != null && Art.Codigo2.Length > 0)
                    {
                        Codigos += System.Environment.NewLine + Art.Codigo2;
                    }
                    if (Art.Codigo3 != null && Art.Codigo3.Length > 0)
                    {
                        Codigos += System.Environment.NewLine + Art.Codigo3;
                    }
                    if (Art.Codigo4 != null && Art.Codigo4.Length > 0)
                    {
                        Codigos += System.Environment.NewLine + Art.Codigo4;
                    }
                    ArticuloCodigos.Text     = Codigos;
                    ArticuloNombre.Text      = Art.ToString();
                    ArticuloDescripcion.Text = Art.Descripcion;
                    ArticuloPvp.Text         = Lfx.Types.Formatting.FormatCurrency(Art.Pvp, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales);
                    ArticuloStock.Text       = Lfx.Types.Formatting.FormatCurrency(Art.Existencias, Lfx.Workspace.Master.CurrentConfig.Moneda.Decimales);
                    PanelArticulo.Visible    = true;
                }
                break;

            case "persona":
            case "personas":
                PanelProgreso.Visible = false;
                PanelAyuda.Visible    = false;
                PanelPersona.Visible  = true;
                PanelArticulo.Visible = false;
                Lbl.Personas.Persona Per;
                try {
                    Per = new Lbl.Personas.Persona(this.Connection, ItemSolicitado);
                } catch {
                    Per = null;
                }
                if (Per != null && Per.Existe)
                {
                    ElementoActual = Per;
                    ItemActual     = ItemSolicitado;
                    TablaActual    = TablaSolicitada;

                    PersonaNombre.Text    = Per.ToString();
                    PersonaDomicilio.Text = Per.Domicilio;
                    PersonaTelefono.Text  = Per.Telefono;
                    PersonaEmail.Text     = Per.Email;
                    if (Per.Grupo != null)
                    {
                        PersonaGrupo.Text = Per.Grupo.ToString();
                    }
                    else
                    {
                        PersonaGrupo.Text = "-";
                    }

                    decimal Saldo;

                    try {
                        Saldo = Per.CuentaCorriente.ObtenerSaldo(false);
                    } catch (Exception ex) {
                        System.Console.WriteLine(ex.ToString());
                        Saldo = 0;
                    }

                    if (Saldo > 0)
                    {
                        PersonaComentario.Text      = "Registra saldo impago en cuenta corriente por " + Lfx.Types.Formatting.FormatCurrency(Saldo, Lfx.Workspace.Master.CurrentConfig.Moneda.DecimalesFinal);
                        PersonaComentario.TextStyle = Lazaro.Pres.DisplayStyles.TextStyles.SmallWarning;
                        PersonaComentario.Visible   = true;
                    }
                    else if (Saldo < 0)
                    {
                        PersonaComentario.Text      = "Registra saldo a favor en cuenta corriente por " + Lfx.Types.Formatting.FormatCurrency(-Saldo, Lfx.Workspace.Master.CurrentConfig.Moneda.DecimalesFinal);
                        PersonaComentario.TextStyle = Lazaro.Pres.DisplayStyles.TextStyles.Small;
                        PersonaComentario.Visible   = true;
                    }
                    else
                    {
                        PersonaComentario.Visible = false;
                    }
                    PersonaImagen.Image  = Per.Imagen;
                    PanelPersona.Visible = true;
                }
                break;
            }
            this.ResumeLayout();
        }
Exemplo n.º 21
0
 public ItemReceta(Lbl.Articulos.Articulo articulo, decimal cantidad)
 {
         this.Articulo = articulo;
         this.Cantidad = cantidad;
 }
Exemplo n.º 22
0
        public override void ActualizarControl()
        {
            Lbl.Articulos.Articulo Art = this.Elemento as Lbl.Articulos.Articulo;

            EntradaCodigo1.Text       = Art.Codigo1;
            EntradaCodigo2.Text       = Art.Codigo2;
            EntradaCodigo3.Text       = Art.Codigo3;
            EntradaCodigo4.Text       = Art.Codigo4;
            EntradaCategoria.Elemento = Art.Categoria;
            EntradaMarca.Elemento     = Art.Marca;
            EntradaCaja.Elemento      = Art.Caja;
            EntradaModelo.Text        = Art.Modelo;
            EntradaSerie.Text         = Art.Serie;
            EntradaNombre.Text        = Art.Nombre;
            EntradaUrl.Text           = Art.Url;
            EntradaProveedor.Elemento = Art.Proveedor;
            EntradaDescripcion.Text   = Art.Descripcion;
            EntradaDescripcion2.Text  = Art.Descripcion2;
            EntradaDestacado.ValueInt = Art.Destacado ? 1 : 0;
            EntradaWeb.ValueInt       = ((int)(Art.Publicacion));
            if (IgnorarCostoMargenPvpPvpIvaTextChanged == 0)
            {
                IgnorarCostoMargenPvpPvpIvaTextChanged++;
            }
            EntradaCosto.ValueDecimal = Art.Costo;
            CompletarMargenes();//Carga los margenes antes de asignar.(//LEO)
            if (Art.Margen == null)
            {
                EntradaMargen.ValueInt = 0;
            }
            else
            {
                EntradaMargen.ValueInt = Art.Margen.Id;
            }

            EntradaPvp.ValueDecimal = Art.Pvp;

            IgnorarCostoMargenPvpPvpIvaTextChanged--;

            EntradaTipoDeArticulo.ValueInt  = (int)(Art.TipoDeArticulo);
            EntradaSeguimiento.ValueInt     = (int)(Art.Seguimiento);
            EntradaPeriodicidad.ValueInt    = (int)(Art.Periodicidad);
            EntradaSeguimiento.ReadOnly     = Art.Existe && Art.Existencias != 0;
            EntradaStockActual.ValueDecimal = Art.Existencias;
            EntradaStockActual.ReadOnly     = Art.Existe;
            EntradaUnidad.TextKey           = Art.Unidad;
            Rendimiento       = Art.Rendimiento;
            UnidadRendimiento = Art.UnidadRendimiento;
            EntradaStockMinimo.ValueDecimal = Art.PuntoDeReposicion;
            EntradaGarantia.ValueInt        = Art.Garantia;
            CustomName = Art.Existe;

            EntradaTipoDeArticulo_TextChanged(this, null);
            EntradaCategoriaMarcaModeloSerie_TextChanged(EntradaCategoria, null);

            EntradaCotizaPor.TextKey   = Art.ConOtraMoneda.ToString();
            groupBox1.Enabled          = EntradaCotizaPor.TextKey == "0" ? false : true;
            EntradaCotiza.ValueDecimal = Art.Cotiza;
            EntradaMoneda.ValueInt     = Art.Moneda;
            EntradaEstante.Text        = Art.Estante;
            EntradaEstanteria.Text     = Art.Estanteria;

            EntradaConceptoVenta.Elemento  = Art.ConceptoVenta;
            EntradaConceptoCompra.Elemento = Art.ConceptoCompra;

            btnImprimir.Enabled = Art.Existe;

            base.ActualizarControl();

            EntradaCodigo1.Focus();
            IgnorarMargenChanged = 0;
        }