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);
        }
Example #2
0
        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);
        }
Example #6
0
        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);
        }
Example #12
0
        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);
        }