Esempio n. 1
0
        /// <summary>
        /// create fisical new order
        /// </summary>
        /// <returns></returns>
        private Order NewOrder(string codDocumentProduct)
        {
            var c = new Order();
            c.CodDocument = documentRepository.GetNewCode(c);
            c.OrderNumberSerie = DateTime.Now.Year.ToString();
            c.OrderNumber = documentRepository.GetNewOrderNumber(c);

            var docProd = documentRepository.GetDocumentProductByCodDocumentProduct(codDocumentProduct);

            c.OrderProduct = docProd;
            c.CodCustomer = docProd.Document.CodCustomer;
            c.Customer = docProd.Document.Customer;

            c.DateDocument = DateTime.Now;

            var allStates = documentRepository.GetAllStates().Where(x => (x.UseInOrder ?? false)).OrderBy(x => x.StateNumber);

            foreach (var s in allStates)
            {
                c.DocumentStates.Add(new DocumentState
                {
                    CodDocument = c.CodDocument,
                    StateNumber = s.StateNumber,
                    CodState = s.CodState,
                    //                    StateName = s.StateName, //derivated!!!
                    ResetLinkedStates = s.ResetLinkedStates,
                    Selected = false
                });
            }

            documentRepository.Add(c);
            documentRepository.Save();

            //se ci sono dei TaskCenter inizio a buttare i taskcenter nel primo taskcenter (IndexOf==0)
            var taskCenter = taskCenterRepository.GetAll().Where(y => y.IndexOf == 0).FirstOrDefault();

            var prod = productRepository.GetSingle(docProd.CodProduct);

            if (taskCenter != null)
            {
                DocumentTaskCenter dtc = new DocumentTaskCenter();
                dtc.CodTaskCenter = taskCenter.CodTaskCenter;
                dtc.CodDocument = c.CodDocument;

                if (docProd.Product.ProductRefName == null)
                {
                    dtc.DocumentName = docProd.ProductName;
                }
                else
                {
                    dtc.DocumentName = docProd.Product.ProductRefName;
                }

                try
                {
                    dtc.FieldA = prod.GetColorOfPrinting();
                }
                catch (Exception)
                {

                }

                taskCenterRepository.AddNewDocumentTaskCenter(dtc);
                taskCenterRepository.Save();
            }

            foreach (var item in prod.ProductParts)
            {
                foreach (var p in item.ProductPartPrintableArticles)
                {

                    //devo caricare nel prodotto anche tutte le informazioni per il magazzino
                    var locations = warehouseRepository.GetWarehouseList();
                    ViewBag.Locations = locations;

                    //the new movment display warehouse information
                    //plus new movment in accord to warehouse article specify
                    var cost = docProd.Costs.FirstOrDefault(x => x.CodProductPartPrintableArticle == p.CodProductPartPrintableArticle);

                    // cost.
                    var articles = articleRepository.GetAll();
                    string codArticle;
                    Article art;

                    var extract = articles.GetArticlesByProductPartPrintableArticle(p);

                    var warehouse = warehouseRepository.GetWarehouseList().OrderBy(x => x.CodWarehouse).FirstOrDefault();
                    var codWarehouse = warehouse != null ? warehouse.CodWarehouse : "";

                    var costDetail = cost.CostDetails.FirstOrDefault();

                    try
                    {

                        if (extract.FirstOrDefault() != null)
                        {
                            art = extract.FirstOrDefault();

                            if (costDetail != null && costDetail.TypeOfCostDetail == CostDetail.CostDetailType.PrintedRollArticleCostDetail)
                            {
                                //carico i dati
                                EditCost(cost.CodCost);
                                CostDetail temp = (CostDetail)Session["CostDetail"];


                                var h = temp.PrintingFormat.GetSide1();
                                art = extract.OfType<RollPrintableArticle>().FirstOrDefault(x => x.Width == h);

                                if (art != null)
                                {
                                    codArticle = art.CodArticle;
                                }
                            }

                            if (art != null)
                            {

                                Console.Write(art.CodArticle);

                                var z = warehouseRepository.GetSingleArticle(art.CodArticle, codWarehouse);
                                var newMov = new NewMovViewModel();
                                newMov.ArticleOrProduct = z;
                                newMov.IsProduct = false;

                                newMov.Mov = new WarehouseArticleMov
                                {
                                    WarehouseArticle = z,
                                    CodDocument = c.CodDocument,
                                    CodProductPartPrintableArticle = p.CodProductPartPrintableArticle,
                                    CodWarehouseArticle = z == null ? "" : z.CodWarehouseArticle,
                                    Quantity = cost == null ? 0 : art.TransformQuantity(cost.Quantity ?? 0, (CostDetail.QuantityType)(cost.CostDetails.Count() != 0 ? (cost.CostDetails.FirstOrDefault().TypeOfQuantity ?? 10) : 10)),
                                    TypeOfMov = 3
                                };

                                //ilNewMov.dice del movimento lo prendo dalNewMov.dice dell'articolo
                                newMov.Mov.CodWarehouseArticle = newMov.ArticleOrProduct.CodWarehouseArticle;
                                newMov.Mov.CodWarehouseArticleMov = warehouseRepository.GetNewMovCode(newMov.Mov);
                                warehouseRepository.AddMov(newMov.Mov);
                                warehouseRepository.Save();

                                warehouseRepository.UpdateArticle(warehouseRepository.GetSingle(newMov.Mov.CodWarehouseArticle));
                                warehouseRepository.Save();


                            }
                        }
                    }

                    catch (Exception)
                    {

                    }

                }
            }
            return c;
        }
Esempio n. 2
0
 public ActionResult NewMovProductUnLoad(NewMovViewModel c)
 {
     c.Mov.TypeOfMov = 0; //scarico!!!!
     return NewMovProduct(c);
 }
Esempio n. 3
0
 public ActionResult NewMovProductReserve(NewMovViewModel c)
 {
     c.Mov.TypeOfMov = 3; //impegno!!!!
     return NewMovProduct(c);
 }
Esempio n. 4
0
 public ActionResult NewMovProductOrder(NewMovViewModel c)
 {
     c.Mov.TypeOfMov = 2; //ordine!!!!
     return NewMovProduct(c);
 }
Esempio n. 5
0
        public ActionResult NewMovProductMov(NewMovViewModel c)
        {

            var oldWare = c.Mov.WarehouseArticle.CodWarehouse;
            var newWare = c.CodWarehouseTo;

            //devo caricare nel prodotto anche tutte le informazioni per il magazzino
            var locations = warehouseRepository.GetWarehouseList();
            ViewBag.Locations = locations;

            if (ModelState.IsValid)
            {
                try
                {
                    PapiroMVC.Models.WarehouseItem prod;
                    //  prod = warehouseRepository.GetSingleProduct(c.ArticleOrProduct.CodProduct, c.ArticleOrProduct.CodWarehouse);

                    c.Mov.TypeOfMov = 0; //scarico!!!!
                    c.Mov.CodWarehouseArticle = c.ArticleOrProduct.CodWarehouseArticle;
                    c.Mov.CodWarehouseArticleMov = warehouseRepository.GetNewMovCode(c.Mov);
                    warehouseRepository.AddMov(c.Mov);
                    warehouseRepository.Save();

                    warehouseRepository.UpdateArticle(warehouseRepository.GetSingle(c.ArticleOrProduct.CodWarehouseArticle));
                    warehouseRepository.Save();

                    prod = warehouseRepository.GetSingle(c.ArticleOrProduct.CodWarehouseArticle);

                    warehouseRepository.SetDbName(CurrentDatabase);

                    c.Mov.TypeOfMov = 1; //scarico!!!!
                    c.Mov.CodWarehouseArticle = newWare + "P" + prod.CodProduct;
                    c.ArticleOrProduct.CodWarehouseArticle = c.Mov.CodWarehouseArticle;
                    c.Mov.CodWarehouseArticleMov = warehouseRepository.GetNewMovCode(c.Mov);
                    warehouseRepository.AddMov(c.Mov);
                    warehouseRepository.Save();

                    warehouseRepository.UpdateArticle(warehouseRepository.GetSingle(c.ArticleOrProduct.CodWarehouseArticle));
                    warehouseRepository.Save();

                    return Json(new { redirectUrl = Url.Action("NewMovProduct", new { CodProduct = prod.CodProduct, CodWarehouse = prod.CodWarehouse }) });

                }
                catch (Exception ex)
                {
                    ModelState.AddModelError(string.Empty, "Something went wrong. Message: " + ex.Message);
                }
            }

            return PartialView("_NewMovProduct", c);
        }
Esempio n. 6
0
        public ActionResult NewMovProduct(string codProduct, string codWarehouse)
        {

            //devo caricare nel prodotto anche tutte le informazioni per il magazzino
            var locations = warehouseRepository.GetWarehouseList();
            ViewBag.Locations = locations;

            //the new movment display warehouse information
            //plus new movment in accord to warehouse article specify

            var c = warehouseRepository.GetSingleProduct(codProduct, codWarehouse);
            var newMov = new NewMovViewModel();
            newMov.ArticleOrProduct = c;
            newMov.IsProduct = true;

            newMov.Mov = new WarehouseArticleMov { WarehouseArticle = c, CodWarehouseArticle = c == null ? "" : c.CodWarehouseArticle };

            return View("NewMovProduct", newMov);

        }
Esempio n. 7
0
        public ActionResult NewMovProduct(NewMovViewModel c)
        {

            //devo caricare nel prodotto anche tutte le informazioni per il magazzino
            var locations = warehouseRepository.GetWarehouseList();
            ViewBag.Locations = locations;

            if (ModelState.IsValid)
            {
                try
                {
                    //il codice del movimento lo prendo dal codice dell'articolo
                    c.Mov.CodWarehouseArticle = c.ArticleOrProduct.CodWarehouseArticle;
                    c.Mov.CodWarehouseArticleMov = warehouseRepository.GetNewMovCode(c.Mov);
                    warehouseRepository.AddMov(c.Mov);
                    warehouseRepository.Save();

                    warehouseRepository.UpdateArticle(warehouseRepository.GetSingle(c.Mov.CodWarehouseArticle));
                    warehouseRepository.Save();

                    var temp = warehouseRepository.GetSingle(c.Mov.CodWarehouseArticle);
                    var newMov = new NewMovViewModel();
                    newMov.ArticleOrProduct = temp;
                    newMov.Mov = new WarehouseArticleMov { WarehouseArticle = temp, CodWarehouseArticle = temp.CodWarehouseArticle };


                    return Json(new { redirectUrl = Url.Action("NewMovProduct", new { CodProduct = temp.CodProduct, CodWarehouse = temp.CodWarehouse }) });
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError(string.Empty, "Something went wrong. Message: " + ex.Message);
                }
            }

            return PartialView("_NewMovProduct", c);
        }
Esempio n. 8
0
 public ActionResult NewMovArticleReserve(NewMovViewModel c)
 {
     c.Mov.TypeOfMov = 3; //impegno!!!!
     return NewMovArticle(c);
 }
Esempio n. 9
0
 public ActionResult NewMovArticleUnLoad(NewMovViewModel c)
 {
     c.Mov.TypeOfMov = 0; //scarico!!!!
     return NewMovArticle(c);
 }
Esempio n. 10
0
 public ActionResult NewMovArticleOrder(NewMovViewModel c)
 {
     c.Mov.TypeOfMov = 2; //ordine!!!!
     return NewMovArticle(c);
 }