コード例 #1
0
        public async Task <IActionResult> Edit(string id, [Bind("transferOutLineId,transferOutId,productId,qty,qtyInventory,createdAt")] TransferOutLine transferOutLine)
        {
            if (id != transferOutLine.transferOutLineId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(transferOutLine);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TransferOutLineExists(transferOutLine.transferOutLineId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["productId"]     = new SelectList(_context.Product, "productId", "productId", transferOutLine.productId);
            ViewData["transferOutId"] = new SelectList(_context.TransferOut, "transferOutId", "transferOutId", transferOutLine.transferOutId);
            return(View(transferOutLine));
        }
コード例 #2
0
        public async Task <IActionResult> Create([Bind("transferOutLineId,transferOutId,productId,qty,qtyInventory,createdAt")] TransferOutLine transferOutLine)
        {
            if (ModelState.IsValid)
            {
                _context.Add(transferOutLine);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["productId"]     = new SelectList(_context.Product, "productId", "productId", transferOutLine.productId);
            ViewData["transferOutId"] = new SelectList(_context.TransferOut, "transferOutId", "transferOutId", transferOutLine.transferOutId);
            return(View(transferOutLine));
        }
コード例 #3
0
        // GET: TransferOutLine/Create
        public IActionResult Create(string masterid, string id)
        {
            var check    = _context.TransferOutLine.SingleOrDefault(m => m.transferOutLineId == id);
            var selected = _context.TransferOut.SingleOrDefault(m => m.transferOutId == masterid);

            ViewData["productId"]     = new SelectList(_context.Product, "productId", "productId");
            ViewData["transferOutId"] = new SelectList(_context.TransferOut, "transferOutId", "transferOutId");
            if (check == null)
            {
                TransferOutLine objline = new TransferOutLine();
                objline.transferOut   = selected;
                objline.transferOutId = masterid;
                return(View(objline));
            }
            else
            {
                return(View(check));
            }
        }
コード例 #4
0
        public async Task <IActionResult> PostTransferOutLine([FromBody] TransferOutLine transferOutLine)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (transferOutLine.transferOutLineId == string.Empty)
            {
                transferOutLine.transferOutLineId = Guid.NewGuid().ToString();
                _context.TransferOutLine.Add(transferOutLine);
                await _context.SaveChangesAsync();

                return(Json(new { success = true, message = "Add new data success." }));
            }
            else
            {
                _context.Update(transferOutLine);
                await _context.SaveChangesAsync();

                return(Json(new { success = true, message = "Edit data success." }));
            }
        }
コード例 #5
0
        public async Task <IActionResult> PostTransferOutLine([FromBody] TransferOutLine transferOutLine)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (transferOutLine.transferOutLineId == string.Empty)
            {
                transferOutLine.transferOutLineId = Guid.NewGuid().ToString();
                _context.TransferOutLine.Add(transferOutLine);
                await _context.SaveChangesAsync();

                return(Json(new { success = true, message = "Η Προσθήκη στοιχείου μεταφοράς, έγινε με επιτυχία." }));
            }
            else
            {
                _context.Update(transferOutLine);
                await _context.SaveChangesAsync();

                return(Json(new { success = true, message = "Η Επεξεργασία του στοιχείου μεταφοράς, έγινε με επιτυχία." }));
            }
        }
コード例 #6
0
        public async Task <IActionResult> Create([Bind("transferOutId,transferOrderId,transferOutNumber,transferOutDate,description,branchIdFrom,warehouseIdFrom,branchIdTo,warehouseIdTo,HasChild,createdAt")] TransferOut transferOut)
        {
            if (ModelState.IsValid)
            {
                //check transfer order
                TransferOut check = await _context.TransferOut
                                    .Include(x => x.transferOrder)
                                    .SingleOrDefaultAsync(x => x.transferOrderId.Equals(transferOut.transferOrderId));

                if (check != null)
                {
                    ViewData["StatusMessage"] = "Σφάλμα. Η εντολή μεταφοράς έχει ήδη εκδοθεί. " + check.transferOutNumber;

                    ViewData["transferOrderId"] = new SelectList(_context.TransferOrder, "transferOrderId", "transferOrderNumber");
                    ViewData["branchIdFrom"]    = new SelectList(_context.Branch, "branchId", "branchName");
                    ViewData["warehouseIdFrom"] = new SelectList(_context.Warehouse, "warehouseId", "warehouseName");
                    ViewData["branchIdTo"]      = new SelectList(_context.Branch, "branchId", "branchName");
                    ViewData["warehouseIdTo"]   = new SelectList(_context.Warehouse, "warehouseId", "warehouseName");
                    return(View(transferOut));
                }

                //check stock
                bool   isStockOK   = true;
                string productList = "";
                List <TransferOrderLine> stocklines = new List <TransferOrderLine>();
                stocklines = _context.TransferOrderLine
                             .Include(x => x.transferOrder)
                             .Include(x => x.product)
                             .Where(x => x.transferOrderId.Equals(transferOut.transferOrderId)).ToList();
                foreach (var item in stocklines)
                {
                    VMStock stock = _netcoreService.GetStockByProductAndWarehouse(item.productId, item.transferOrder.warehouseIdFrom);
                    if (stock != null)
                    {
                        if (stock.QtyOnhand < item.qty)
                        {
                            isStockOK   = false;
                            productList = productList + " [" + item.product.productCode + "] ";
                        }
                    }
                    else
                    {
                        isStockOK = false;
                    }
                }

                if (!isStockOK)
                {
                    TempData["StatusMessage"] = "Σφάλμα. Υπάρχει πρόβλημα στην ποσότητα αποθεμάτων, ελέγξτε το απόθεμά σας. " + productList;
                    return(RedirectToAction(nameof(Create)));
                }

                TransferOrder to = await _context.TransferOrder.Where(x => x.transferOrderId.Equals(transferOut.transferOrderId)).FirstOrDefaultAsync();

                transferOut.warehouseIdFrom = to.warehouseIdFrom;
                transferOut.warehouseIdTo   = to.warehouseIdTo;


                transferOut.warehouseFrom = await _context.Warehouse.Include(x => x.branch).SingleOrDefaultAsync(x => x.warehouseId.Equals(transferOut.warehouseIdFrom));

                transferOut.branchFrom  = transferOut.warehouseFrom.branch;
                transferOut.warehouseTo = await _context.Warehouse.Include(x => x.branch).SingleOrDefaultAsync(x => x.warehouseId.Equals(transferOut.warehouseIdTo));

                transferOut.branchTo = transferOut.warehouseTo.branch;

                to.isIssued = true;

                _context.Add(transferOut);
                await _context.SaveChangesAsync();


                //auto create transfer out line, full shipment
                List <TransferOrderLine> lines = new List <TransferOrderLine>();
                lines = _context.TransferOrderLine.Include(x => x.product).Where(x => x.transferOrderId.Equals(transferOut.transferOrderId)).ToList();
                foreach (var item in lines)
                {
                    TransferOutLine line = new TransferOutLine();
                    line.transferOut  = transferOut;
                    line.product      = item.product;
                    line.qty          = item.qty;
                    line.qtyInventory = line.qty * -1;


                    _context.TransferOutLine.Add(line);
                    await _context.SaveChangesAsync();
                }

                TempData["TransMessage"] = "Η Δημιουργία Μεταφοράς " + transferOut.transferOutNumber + " έγινε με Επιτυχία!";
                return(RedirectToAction(nameof(Details), new { id = transferOut.transferOutId }));
            }
            ViewData["transferOrderId"] = new SelectList(_context.TransferOrder, "transferOrderId", "transferOrderNumber", transferOut.transferOrderId);
            return(View(transferOut));
        }