private void GenerarMovimientostock(IStockPieza entrada, TipoOperacionService tipooperacion) { var model = entrada as MovimientosstockModel; var item = Db.Movimientosstock.Create(); item.empresa = model.Empresa; item.fecha = DateTime.Now; item.fkalmacenes = model.Fkalmacenes; item.fkarticulos = model.Fkarticulos; item.referenciaproveedor = model.Referenciaproveedor; item.fkcontadorlote = model.Fkcontadorlote; item.lote = model.Lote; item.loteid = model.Loteid; item.tag = model.Tag; item.fkunidadesmedida = model.Fkunidadesmedida; item.cantidad = model.Cantidad; item.largo = model.Largo; item.ancho = model.Ancho; item.grueso = model.Grueso; item.fkalmaceneszona = model.Fkalmaceneszona; item.fkcalificacioncomercial = model.Fkcalificacioncomercial; item.fktipograno = model.Fktipograno; item.fktonomaterial = model.Fktonomaterial; item.fkincidenciasmaterial = model.Fkincidenciasmaterial; item.documentomovimiento = model.Documentomovimiento; item.tipooperacion = (int?)tipooperacion; item.integridadreferencialflag = Guid.NewGuid(); item.fkusuarios = model.Fkusuarios; item.fkvariedades = model.Fkvariedades; item.categoriamovimiento = (int)FStockService.Instance.GetCategoriaMovimientos(tipooperacion); Db.Movimientosstock.Add(item); }
public void GenerarMovimiento(IStockPieza model, TipoOperacionService tipooperacion, string ubicacionDestino = null) { using (var tran = Marfil.Inf.Genericos.Helper.TransactionScopeBuilder.CreateTransactionObject()) { //METEMOS EN LA TABLA MOVIMIENTOS DE STOCK DE LA BD EL MOVIMIENTO GENERADO GenerarMovimientostock(model, tipooperacion); //if (tipooperacion != TipoOperacionService.EntradaReclamacion && tipooperacion != TipoOperacionService.SalidaReclamacion) //{ //jmm var entrada = model as MovimientosstockModel; if (tipooperacion == TipoOperacionService.MovimientoAlmacen) { entrada.Tipomovimiento = TipoOperacionService.MovimientoAlmacen; entrada.Ubicaciondestino = Convert.ToInt32(ubicacionDestino); } else if (model is IKitStockPieza) { entrada.Tipomovimiento = TipoOperacionService.MovimientoKit; } else if (model is IBundleStockPieza) { entrada.Tipomovimiento = TipoOperacionService.MovimientoBundle; } var service = new StockService(_context, _db); service.GestionPieza(entrada); //} tran.Complete(); } _db.SaveChanges(); }
public void GenerarOperacion(IStockPieza entrada) { var ms = entrada as MovimientosstockModel; var serializer = new Serializer <TransformacioneslotesDiarioStockSerializable>(); var diario = serializer.SetXml(ms.Documentomovimiento); var historicoStock = Db.Stockhistorico.SingleOrDefault( f => f.empresa == ms.Empresa && f.lote == ms.Lote && f.loteid == ms.Loteid && f.fkarticulos == ms.Fkarticulos); var unidadesService = FService.Instance.GetService(typeof(UnidadesModel), _context, Db) as UnidadesService; var unidadesModel = unidadesService.get(ms.Fkunidadesmedida) as UnidadesModel; if (historicoStock != null) { var nuevapiezaStock = Db.Stockactual.Create(); var properties = nuevapiezaStock.GetType().GetProperties(); foreach (var item in properties) { item.SetValue(nuevapiezaStock, historicoStock.GetType().GetProperty(item.Name).GetValue(historicoStock)); } nuevapiezaStock.largo = ms.Largo; nuevapiezaStock.ancho = ms.Ancho; nuevapiezaStock.grueso = ms.Grueso; nuevapiezaStock.metros = ms.Metros; nuevapiezaStock.costeacicionalvariable = (nuevapiezaStock.costeacicionalvariable ?? 0) + (ms.Costeadicionalvariable ?? 0); nuevapiezaStock.costeadicionalmaterial = (nuevapiezaStock.costeadicionalmaterial ?? 0) + (ms.Costeadicionalmaterial ?? 0); nuevapiezaStock.costeadicionalotro = (nuevapiezaStock.costeadicionalotro ?? 0) + (ms.Costeadicionalotro ?? 0); nuevapiezaStock.costeadicionalportes = (nuevapiezaStock.costeadicionalportes ?? 0) + (ms.Costeadicionalportes ?? 0); nuevapiezaStock.cantidaddisponible = ms.Cantidad; nuevapiezaStock.cantidadtotal = ms.Cantidad; nuevapiezaStock.metros = UnidadesService.CalculaResultado(unidadesModel, Math.Abs(ms.Cantidad), nuevapiezaStock.largo, nuevapiezaStock.ancho, nuevapiezaStock.grueso, nuevapiezaStock.metros ?? 0); nuevapiezaStock.fkarticulos = diario.Fkarticulosnuevo; Db.Stockactual.Add(nuevapiezaStock); } if (historicoStock != null) { var nuevapiezaStock = Db.Stockhistorico.Create(); var properties = historicoStock.GetType().GetProperties(); foreach (var item in properties) { item.SetValue(nuevapiezaStock, historicoStock.GetType().GetProperty(item.Name).GetValue(historicoStock)); } nuevapiezaStock.largo = ms.Largo; nuevapiezaStock.ancho = ms.Ancho; nuevapiezaStock.grueso = ms.Grueso; nuevapiezaStock.metros = ms.Metros; nuevapiezaStock.fkarticulos = diario.Fkarticulosnuevo; nuevapiezaStock.costeacicionalvariable = (nuevapiezaStock.costeacicionalvariable ?? 0) + (ms.Costeadicionalvariable ?? 0); nuevapiezaStock.costeadicionalmaterial = (nuevapiezaStock.costeadicionalmaterial ?? 0) + (ms.Costeadicionalmaterial ?? 0); nuevapiezaStock.costeadicionalotro = (nuevapiezaStock.costeadicionalotro ?? 0) + (ms.Costeadicionalotro ?? 0); nuevapiezaStock.costeadicionalportes = (nuevapiezaStock.costeadicionalportes ?? 0) + (ms.Costeadicionalportes ?? 0); nuevapiezaStock.cantidaddisponible = ms.Cantidad; nuevapiezaStock.cantidadtotal = ms.Cantidad; nuevapiezaStock.metros = UnidadesService.CalculaResultado(unidadesModel, Math.Abs(ms.Cantidad), nuevapiezaStock.largo, nuevapiezaStock.ancho, nuevapiezaStock.grueso, nuevapiezaStock.metros ?? 0); Db.Stockhistorico.Remove(historicoStock); Db.Stockhistorico.Add(nuevapiezaStock); } }
public void GenerarOperacion(IStockPieza entrada) { var model = entrada as MovimientosstockModel; var bundleService = FService.Instance.GetService(typeof(BundleModel), _context, Db); var bundleobj = bundleService.get(model.Fkarticulos) as BundleModel; bundleobj.Fkzonaalmacen = model.Fkalmaceneszona; bundleService.edit(bundleobj); }
public void GenerarOperacion(IStockPieza entrada) { var model = entrada as MovimientosstockModel; var kitService = FService.Instance.GetService(typeof(KitModel), _context, Db); var kitobj = kitService.get(model.Fkarticulos) as KitModel; kitobj.Fkzonalamacen = model.Fkalmaceneszona; kitService.edit(kitobj); }
public void GenerarOperacion(IStockPieza entrada) { var model = entrada as MovimientosstockModel; var stockCrud = new StockCrudService(_context); stockCrud.Db = Db; stockCrud.Tipooperacion = Tipooperacion; stockCrud.GenerarOperacion(model); }
public void GenerarOperacion(IStockPieza entrada) { var model = entrada as MovimientosstockModel; if (!string.IsNullOrEmpty(model.Lote)) { GestionPiezaConLote(model, Tipooperacion); } else { GestionPiezaSinLote(model); } Db.SaveChanges(); }
public void GenerarOperacion(IStockPieza entrada) { var model = entrada as MovimientosstockModel; var pieza = Db.Stockactual.Any(f => f.empresa == model.Empresa && f.lote == model.Lote && f.loteid == model.Loteid && f.fkarticulos == model.Fkarticulos && f.fkalmacenes == model.Fkalmacenes) ? EditarPieza(entrada) : null; if (pieza != null) { Db.Stockactual.AddOrUpdate(pieza); Db.SaveChanges(); } else { throw new ValidationException(string.Format("No se ha encontrado la pieza {0}{1} en el stock", string.IsNullOrEmpty(model.Lote) ? model.Fkarticulos : model.Lote, model.Loteid)); } }
public void GenerarOperacion(IStockPieza entrada) { var serializer = new Serializer <TransformacioneslotesDiarioStockSerializable>(); var model = entrada as MovimientosstockModel; var trazabilidad = serializer.SetXml(model.Documentomovimiento); var stockCrud = new StockCrudService(_context); stockCrud.Db = Db; stockCrud.Tipooperacion = Tipooperacion; if (!string.IsNullOrEmpty(model.Lote)) { GestionPiezaConLote(model, Tipooperacion); } else { GestionPiezaSinLote(model); } Db.SaveChanges(); }
public void GenerarOperacion(IStockPieza entrada) { var serializer = new Serializer <TraspasosalmacenDiarioStockSerializable>(); var model = entrada as MovimientosstockModel; var trazabilidad = serializer.SetXml(model.Documentomovimiento); var stockCrud = new StockCrudService(_context); stockCrud.Db = Db; stockCrud.Tipooperacion = Tipooperacion; var almacenorigen = trazabilidad.Fkalmacenorigen; var almacendestino = trazabilidad.Fkalmacendestino; model.Fkalmacenes = almacenorigen; model.Cantidad *= -1; stockCrud.GenerarOperacion(model); EliminarDeHistorico(model); GenerarMovimientostock(model, TipoOperacionService.ActualizarTraspasosalmacen); model.Fkalmacenes = almacendestino; model.Cantidad *= -1; stockCrud.GenerarOperacion(model); }
private Stockactual EditarPieza(IStockPieza entrada) { var model = entrada as MovimientosstockModel; var item = Db.Stockactual.Single(f => f.empresa == model.Empresa && f.fkalmacenes == model.Fkalmacenes && f.fkarticulos == model.Fkarticulos && f.lote == model.Lote && f.loteid == model.Loteid); var articulosService = FService.Instance.GetService(typeof(ArticulosModel), _context, Db) as ArticulosService; var unidadesService = FService.Instance.GetService(typeof(UnidadesModel), _context, Db) as UnidadesService; var articuloObj = articulosService.GetArticulo(model.Fkarticulos); var unidadesObj = unidadesService.get(model.Fkunidadesmedida) as UnidadesModel; if (articuloObj.Permitemodificarlargo) { item.largo = model.Largo; } if (articuloObj.Permitemodificarancho) { item.ancho = model.Ancho; } if (articuloObj.Permitemodificargrueso) { item.grueso = model.Grueso; } var metros = UnidadesService.CalculaResultado(unidadesObj, model.Cantidad, model.Largo, model.Ancho, model.Grueso, item.metros ?? 0); item.metros = metros; if (model.Pesoneto.HasValue) { item.pesonetolote = (model.Pesoneto ?? 0) * (item.metros ?? 0); } item.referenciaproveedor = model.Referenciaproveedor; item.fkalmaceneszona = model.Fkalmaceneszona; item.fkincidenciasmaterial = model.Fkincidenciasmaterial; item.fkcalificacioncomercial = model.Fkcalificacioncomercial; item.fktipograno = model.Fktipograno; item.fktonomaterial = model.Fktonomaterial; item.fkvariedades = model.Fkvariedades; var historicoitem = Db.Stockhistorico.Single(f => f.empresa == model.Empresa && f.fkalmacenes == model.Fkalmacenes && f.fkarticulos == model.Fkarticulos && f.lote == model.Lote && f.loteid == model.Loteid); if (model.Pesoneto.HasValue) { historicoitem.pesonetolote = item.pesonetolote; } historicoitem.largo = item.largo; historicoitem.ancho = item.ancho; historicoitem.grueso = item.grueso; historicoitem.metros = item.metros; historicoitem.referenciaproveedor = item.referenciaproveedor; historicoitem.fkalmaceneszona = item.fkalmaceneszona; historicoitem.fkincidenciasmaterial = item.fkincidenciasmaterial; historicoitem.fkcalificacioncomercial = item.fkcalificacioncomercial; historicoitem.fktipograno = item.fktipograno; historicoitem.fktonomaterial = item.fktonomaterial; historicoitem.fkvariedades = item.fkvariedades; //Db.Stockhistorico.AddOrUpdate(historicoitem); return(item); }
private void GenerarMovimientostock(IStockPieza entrada, TipoOperacionService tipooperacion) { var model = entrada as MovimientosstockModel; if (string.IsNullOrEmpty(model.Lote)) { model.Lote = string.Empty; } if (model.Tipomovimiento == TipoOperacionService.InsertarTransformacionloteStock || model.Tipomovimiento == TipoOperacionService.ActualizarTransformacionloteStock) { model.Fkarticulos = _db.Stockhistorico.SingleOrDefault( f => f.empresa == _context.Empresa && f.lote == model.Lote && f.loteid == model.Loteid).fkarticulos; } if (model.Tipodealmacenlote == null && (model.Tipomovimiento == TipoOperacionService.InsertarTransformacionloteStock || model.Tipomovimiento == TipoOperacionService.FinalizarTransformacionloteStock)) { var stockObj = _db.Stockhistorico.SingleOrDefault( f => f.empresa == _context.Empresa && f.lote == model.Lote && f.loteid == model.Loteid); model.Tipodealmacenlote = (TipoAlmacenlote?)stockObj.tipoalmacenlote; } else if (model.Tipodealmacenlote == null) { var stockObj = _db.Stockhistorico.SingleOrDefault( f => f.empresa == _context.Empresa && f.lote == model.Lote && f.loteid == model.Loteid && f.fkarticulos == model.Fkarticulos); // f.fkalmacenes == _context.Fkalmacen model.Tipodealmacenlote = (TipoAlmacenlote?)stockObj.tipoalmacenlote; //?? null; } //NOS CREAMOS UN ITEM DE MOVIMIENTOS DE STOCK Y LO GUARDAMOS var item = _db.Movimientosstock.Create(); item.empresa = model.Empresa; item.fecha = DateTime.Now; item.fkalmacenes = model.Fkalmacenes; item.fkarticulos = model.Fkarticulos; item.referenciaproveedor = model.Referenciaproveedor; item.fkcontadorlote = model.Fkcontadorlote; item.lote = model.Lote; item.loteid = model.Loteid; item.tag = model.Tag; item.fkunidadesmedida = model.Fkunidadesmedida; item.cantidad = model.Cantidad; item.largo = model.Largo; item.ancho = model.Ancho; item.grueso = model.Grueso; item.fkalmaceneszona = model.Fkalmaceneszona; item.fkcalificacioncomercial = model.Fkcalificacioncomercial; item.fktipograno = model.Fktipograno; item.fktonomaterial = model.Fktonomaterial; item.fkincidenciasmaterial = model.Fkincidenciasmaterial; item.documentomovimiento = model.Documentomovimiento; item.tipooperacion = (int?)tipooperacion; item.integridadreferencialflag = Guid.NewGuid(); item.fkusuarios = model.Fkusuarios; item.fkvariedades = model.Fkvariedades; item.costeacicionalvariable = model.Costeadicionalvariable; item.costeadicionalmaterial = model.Costeadicionalmaterial; item.costeadicionalotro = model.Costeadicionalotro; item.costeadicionalportes = model.Costeadicionalportes; //item.categoriamovimiento = (int)FStockService.Instance.GetCategoriaMovimientos(tipooperacion); item.Tipomovimiento = (int)model.Tipomovimiento; item.tipoalmacenlote = (int?)model.Tipodealmacenlote; _db.Movimientosstock.Add(item); }