Пример #1
0
        public RawMaterials Create(EnsolStockMovement rawMaterials, string orderType, string orderNumber)
        {
            if (rawMaterials == null)
            {
                throw new ArgumentNullException("role");
            }

            RawMaterials db = new RawMaterials();
            db.IdCompany = rawMaterials.IdCompany;
            db.ProcessOrder = rawMaterials.ProcessOrder;
            db.Code = rawMaterials.Code;
            db.Description = rawMaterials.Description;
            db.Batch = rawMaterials.Batch;
            db.Quantity = rawMaterials.Quantity;
            db.ECAStorageCode = rawMaterials.ECAStorageCode;
            db.ICAStorageCode = rawMaterials.ICAStorageCode;
            db.Message = rawMaterials.Message;
            db.ECA = rawMaterials.ECA;
            db.OrderType = orderType;
            db.OrderNumber = orderNumber;
            db.Stamp = DateTime.Now;

            //TODO: buscar forma correcta de vincular errores en la capa de datos hacia la capa de distribución.
            if (Exists(db.ProcessOrder.Value))
            {
                return null;
            }

            context.RawMaterials.Add(db);
            context.SaveChanges();

            return db;
        }
Пример #2
0
        public FinishedProduct Create(EnsolStockMovement finishedProduct, string ica, string orderType, string orderNumber)
        {
            if (finishedProduct == null)
            {
                throw new ArgumentNullException("role");
            }

            FinishedProduct db = new FinishedProduct();

            db.IdCompany      = finishedProduct.IdCompany;
            db.ProcessOrder   = finishedProduct.ProcessOrder;
            db.Code           = finishedProduct.Code;
            db.Description    = finishedProduct.Description;
            db.Batch          = finishedProduct.Batch;
            db.Quantity       = finishedProduct.Quantity;
            db.ECAStorageCode = finishedProduct.ECAStorageCode;
            db.ICAStorageCode = finishedProduct.ICAStorageCode;
            db.Message        = finishedProduct.Message;
            db.ICA            = ica;
            db.OrderType      = orderType;
            db.OrderNumber    = orderNumber;
            db.Stamp          = DateTime.Now;

            //TODO: buscar forma correcta de vincular errores en la capa de datos hacia la capa de distribución.
            if (Exists(db.ProcessOrder.Value))
            {
                return(null);
            }

            context.FinishedProduct.Add(db);
            context.SaveChanges();

            return(db);
        }
Пример #3
0
        public Order ConsumeOrder(int IdCompany, EnsolStockMovement finishedProduct, List <EnsolStockMovement> rawMaterials)
        {
            List <Order> ot = new List <Order>();

            if (finishedProductDal.Exists(finishedProduct.ProcessOrder))
            {
                Order           order = new Order();
                FinishedProduct prod  = finishedProductDal.Get(finishedProduct.ProcessOrder).First();
                order.FinishedProduct = finishedProduct;
                order.Type            = prod.OrderType;
                order.Number          = prod.OrderNumber;
                ot.Add(order);
            }
            else
            {
                ot = orderDal.SPECreaOT((CompanyEnum)IdCompany, finishedProduct.Code, finishedProduct.Quantity, finishedProduct.ICAStorageCode, "usuario", -1, "terminal");
                ot.First().FinishedProduct = orderDal.SPECreaICA((CompanyEnum)IdCompany, ot.First().Type, ot.First().Number, finishedProduct.Batch, finishedProduct.ProcessOrder, finishedProduct.Code, finishedProduct.Description, finishedProduct.Quantity, finishedProduct.ICAStorageCode, "usuario", -1, "terminal").First();

                finishedProductDal.Create(finishedProduct, ot.First().FinishedProduct.ECA, ot.First().Type, ot.First().Number);
            }

            ot.First().RawMaterials = orderDal.SPECreaECA((CompanyEnum)IdCompany, ot.First().Type, ot.First().Number, rawMaterials, "usuario", -1, "terminal");
            foreach (EnsolStockMovement item in ot.First().RawMaterials)
            {
                if (!string.IsNullOrEmpty(item.ECA))
                {
                    rawMaterialsDal.Create(item, ot.First().Type, ot.First().Number);
                }
            }

            if (!ot.First().RawMaterials.Where(w => string.IsNullOrEmpty(w.ECA)).Any())
            {
                orderDal.SPECierreOT((CompanyEnum)IdCompany, ot.First().Type, ot.First().Number, "usuario", -1, "terminal");
            }

            return(ot.First());
        }
Пример #4
0
        public Order SetStockConsumptionForOrder(int IdCompany, EnsolStockMovement FinishedProduct, List <EnsolStockMovement> RawMaterials)
        {
            return(stockService.ConsumeOrder(IdCompany, FinishedProduct, RawMaterials));

            //return true;
        }
Пример #5
0
 public bool StockSetStockConsumptionForOrder(EnsolStockMovement FinishedProduct, List <EnsolStockMovement> RawMaterials)
 {
     SetStockConsumptionForOrder(EnsolFood_IdCompany, FinishedProduct, RawMaterials);
     return(true);
 }