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