Example #1
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);
                    }
                }
            }
        }
Example #2
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();
            }
        }