Exemple #1
0
        public async Task <IActionResult> Create([Bind("transferOrderId,transferOrderStatus,transferOrderNumber,transferOrderDate,description,picName,branchIdFrom,warehouseIdFrom,branchIdTo,warehouseIdTo,HasChild,createdAt")] TransferOrder transferOrder)
        {
            if (transferOrder.warehouseIdFrom == transferOrder.warehouseIdTo)
            {
                TempData["StatusMessage"] = "Σφάλμα. Αποθήκη από και προς είναι το ίδιο. Για τη μεταφορά εργάζονται μόνο αν από και προς την αποθήκη είναι διαφορετικά";
                return(RedirectToAction(nameof(Create)));
            }

            if (ModelState.IsValid)
            {
                transferOrder.warehouseFrom = await _context.Warehouse.Include(x => x.branch).SingleOrDefaultAsync(x => x.warehouseId.Equals(transferOrder.warehouseIdFrom));

                transferOrder.branchFrom = transferOrder.warehouseFrom.branch;

                transferOrder.warehouseTo = await _context.Warehouse.SingleOrDefaultAsync(x => x.warehouseId.Equals(transferOrder.warehouseIdTo));

                transferOrder.branchTo = transferOrder.warehouseTo.branch;


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

                TempData["TransMessage"] = "Η Δημιουργία της Μεταφοράς " + transferOrder.transferOrderNumber + " έγινε με Επιτυχία";
                return(RedirectToAction(nameof(Details), new { id = transferOrder.transferOrderId }));
            }
            return(View(transferOrder));
        }
        internal async Task <JArray> AddItem(TransferOrder inboundTransfer)
        {
            SqlConnection cn = null;

            try
            {
                cn = Connection.GetConnection();
                SqlCommand smd = new SqlCommand("sale_order_add_new_item", cn)
                {
                    CommandType = CommandType.StoredProcedure
                };

                smd.Parameters.Add("@jsonOutput", SqlDbType.NVarChar, -1).Direction = ParameterDirection.Output;
                smd.Parameters.AddWithValue("@item_no", inboundTransfer.ItemNo);
                // Execute the command
                await smd.ExecuteNonQueryAsync().ConfigureAwait(false);

                // Get the values
                string json = smd.Parameters["@jsonOutput"].Value.ToString();
                smd.Dispose();

                JArray arr = JArray.Parse(json);

                return(arr);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                Connection.CloseConnection(ref cn);
            }
        }
Exemple #3
0
        public void Create(TransferOrderModel model)
        {
            TransferOrder entity = model.MapTo <TransferOrder>();

            entity.CreatedBy     = model.EditBy;
            entity.CreatedByName = model.EditByName;
            entity.UpdatedBy     = model.EditBy;
            entity.Code          = _sequenceService.GenerateNewCode(BillIdentity.TransferOrder);
            // 明细
            var items = JsonConvert.DeserializeObject <List <TransferOrderItem> >(model.ItemsJson);

            entity.Items = items;
            _db.Insert(entity);

            //跟踪记录
            var reason  = "创建调拨单";
            var history = new ProcessHistory(model.EditBy, model.EditByName, (int)entity.Status, entity.Id, BillIdentity.TransferOrder.ToString(), reason);

            _db.Command.AddExecute(history.CreateSql(entity.GetType().Name, entity.Code), history);

            _db.SaveChange();
            var modelEntity = _db.Table.Find <TransferOrder>(n => n.Code == entity.Code);

            model.Id         = modelEntity.Id;
            model.Code       = entity.Code;
            model.StatusName = entity.Status.Description();
            entity.Id        = modelEntity.Id;
        }
Exemple #4
0
        public void Create(TransferOrderViewModel[] TransferOrderViewModel, string storeid, string strUserName)
        {
            var sid = Convert.ToInt32(storeid);

            foreach (var items in TransferOrderViewModel)
            {
                var TransferOrder = new TransferOrder
                {
                    ToStoreId                 = items.ToStoreId,
                    FromStoreId               = sid,
                    ItemId                    = items.ItemId,
                    TransactionQuantity       = items.TransactionQuantity,
                    UnitId                    = items.UnitId,
                    TransferTypeId            = items.TransferTypeId,
                    ConditionOfItemId         = items.ConditionOfItemId,
                    TransferOrderdate         = DateTime.Now.Date,
                    TransferOrderDeliverydate = items.TransferOrderDeliverydate,
                    OrderRecieve              = "Pending",
                    TransferOrderSent         = "No",
                    CreateBy                  = strUserName,
                    CreateDate                = DateTime.Now.Date,
                };

                unitOfWork.TransferOrderRepository.Insert(TransferOrder);
                unitOfWork.Save();
            }
        }
        public async Task <IActionResult> Create([Bind("transferOrderId,transferOrderStatus,transferOrderNumber,transferOrderDate,description,picName,branchIdFrom,warehouseIdFrom,branchIdTo,warehouseIdTo,HasChild,createdAt")] TransferOrder transferOrder)
        {
            if (transferOrder.warehouseIdFrom == transferOrder.warehouseIdTo)
            {
                TempData["StatusMessage"] = "Lỗi. Chuyển từ Kho và đến kho giống nhau. Lệnh chuyển chỉ hoạt động nếu từ và đến kho khác nhau.";
                return(RedirectToAction(nameof(Create)));
            }

            if (ModelState.IsValid)
            {
                transferOrder.warehouseFrom = await _context.Warehouse.Include(x => x.branch).SingleOrDefaultAsync(x => x.warehouseId.Equals(transferOrder.warehouseIdFrom));

                transferOrder.branchFrom = transferOrder.warehouseFrom.branch;

                transferOrder.warehouseTo = await _context.Warehouse.SingleOrDefaultAsync(x => x.warehouseId.Equals(transferOrder.warehouseIdTo));

                transferOrder.branchTo = transferOrder.warehouseTo.branch;


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

                return(RedirectToAction(nameof(Details), new { id = transferOrder.transferOrderId }));
            }
            return(View(transferOrder));
        }
        public async Task <IActionResult> Create([Bind("transferInId,transferOrderId,transferInNumber,transferInDate,description,branchIdFrom,warehouseIdFrom,branchIdTo,warehouseIdTo,HasChild,createdAt")] TransferIn transferIn)
        {
            if (ModelState.IsValid)
            {
                //check transfer order
                TransferIn check = await _context.TransferIn.SingleOrDefaultAsync(x => x.transferOrderId.Equals(transferIn.transferOrderId));

                if (check != null)
                {
                    ViewData["StatusMessage"] = "Error. Transfer order already received. " + check.transferInNumber;

                    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(transferIn));
                }

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

                transferIn.warehouseIdFrom = to.warehouseIdFrom;
                transferIn.warehouseIdTo   = to.warehouseIdTo;

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

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

                transferIn.branchTo = transferIn.warehouseTo.branch;


                to.isReceived          = true;
                to.transferOrderStatus = TransferOrderStatus.Completed;

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

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

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

                return(RedirectToAction(nameof(Details), new { id = transferIn.transferInId }));
            }
            ViewData["transferOrderId"] = new SelectList(_context.TransferOrder, "transferOrderId", "transferOrderNumber", transferIn.transferOrderId);
            return(View(transferIn));
        }
        public async Task <IActionResult> Create([Bind("transferOrderId,transferOrderStatus,transferOrderNumber,transferOrderDate,description,picName,branchIdFrom,warehouseIdFrom,branchIdTo,warehouseIdTo,HasChild,createdAt")] TransferOrder transferOrder)
        {
            if (transferOrder.warehouseIdFrom == transferOrder.warehouseIdTo)
            {
                TempData["StatusMessage"] = "Error. Warehouse from and to are the same. Transfer order only working if from and to warehouse are different";
                return(RedirectToAction(nameof(Create)));
            }

            if (ModelState.IsValid)
            {
                transferOrder.warehouseFrom = await _context.Warehouse.Include(x => x.branch).SingleOrDefaultAsync(x => x.warehouseId.Equals(transferOrder.warehouseIdFrom));

                transferOrder.branchFrom = transferOrder.warehouseFrom.branch;

                transferOrder.warehouseTo = await _context.Warehouse.SingleOrDefaultAsync(x => x.warehouseId.Equals(transferOrder.warehouseIdTo));

                transferOrder.branchTo = transferOrder.warehouseTo.branch;


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

                return(RedirectToAction(nameof(Details), new { id = transferOrder.transferOrderId }));
            }
            return(View(transferOrder));
        }
Exemple #8
0
 public void InsertTransferOrder(TransferOrder transferOrder)
 {
     using (var bankContext = new BankingContext())
     {
         bankContext.TransferOrder.Add(transferOrder);
         bankContext.SaveChanges();
     }
 }
 public Task <TransferOrder> Update(TransferOrder entity)
 {
     return(Task.Run(() =>
     {
         InventoryManager.Create(CommerceRuntimeManager.Runtime).SavePickReceiveCount(false, null, entity);
         return entity;
     }));
 }
Exemple #10
0
        public async Task <IActionResult> Edit(string id, [Bind("transferOrderId,isIssued,isReceived,transferOrderStatus,transferOrderNumber,transferOrderDate,description,picName,branchIdFrom,warehouseIdFrom,branchIdTo,warehouseIdTo,HasChild,createdAt")] TransferOrder transferOrder)
        {
            if (id != transferOrder.transferOrderId)
            {
                return(NotFound());
            }
            if ((TransferOrderStatus)TempData["TransferOrderStatus"] == TransferOrderStatus.Completed)
            {
                TempData["StatusMessage"] = "Σφάλμα. Δεν είναι δυνατή η επεξεργασία [Ολοκληρωμένης] παραγγελίας.";
                return(RedirectToAction(nameof(Edit), new { id = transferOrder.transferOrderId }));
            }

            if (transferOrder.transferOrderStatus == TransferOrderStatus.Completed)
            {
                TempData["StatusMessage"] = "Σφάλμα. Δεν είναι δυνατή η επεξεργασία της κατάστασης όταν είναι [Ολοκληρωμένη] η Παραγγελία.";
                return(RedirectToAction(nameof(Edit), new { id = transferOrder.transferOrderId }));
            }

            if (transferOrder.isIssued == true ||
                transferOrder.isReceived == true)
            {
                TempData["StatusMessage"] = "Σφάλμα. Δεν είναι δυνατή η επεξεργασία της παραγγελίας με κατάσταση [Ανοιχτή] που ήδη επεξεργάζεται την Αποστολή ή την Παραλαβή Προϊόντων.";
                return(RedirectToAction(nameof(Edit), new { id = transferOrder.transferOrderId }));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    transferOrder.warehouseFrom = await _context.Warehouse.Include(x => x.branch).SingleOrDefaultAsync(x => x.warehouseId.Equals(transferOrder.warehouseIdFrom));

                    transferOrder.branchFrom = transferOrder.warehouseFrom.branch;

                    transferOrder.warehouseTo = await _context.Warehouse.SingleOrDefaultAsync(x => x.warehouseId.Equals(transferOrder.warehouseIdTo));

                    transferOrder.branchTo = transferOrder.warehouseTo.branch;

                    _context.Update(transferOrder);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TransferOrderExists(transferOrder.transferOrderId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                TempData["TransMessage"] = "Η Επεξεργασία της Μεταφοράς " + transferOrder.transferOrderNumber + " έγινε με Επιτυχία!";
                return(RedirectToAction(nameof(Index)));
            }
            return(View(transferOrder));
        }
        public async Task <IActionResult> Edit(string id, [Bind("transferOrderId,isIssued,isReceived,transferOrderStatus,transferOrderNumber,transferOrderDate,description,picName,branchIdFrom,warehouseIdFrom,branchIdTo,warehouseIdTo,HasChild,createdAt")] TransferOrder transferOrder)
        {
            if (id != transferOrder.transferOrderId)
            {
                return(NotFound());
            }

            if ((TransferOrderStatus)TempData["TransferOrderStatus"] == TransferOrderStatus.Completed)
            {
                TempData["StatusMessage"] = "Error. Can not edit [Completed] order.";
                return(RedirectToAction(nameof(Edit), new { id = transferOrder.transferOrderId }));
            }

            if (transferOrder.transferOrderStatus == TransferOrderStatus.Completed)
            {
                TempData["StatusMessage"] = "Error. Can not edit status to [Completed].";
                return(RedirectToAction(nameof(Edit), new { id = transferOrder.transferOrderId }));
            }

            if (transferOrder.isIssued == true ||
                transferOrder.isReceived == true)
            {
                TempData["StatusMessage"] = "Error. Can not edit [Open] order that already process the goods issue or goods receive.";
                return(RedirectToAction(nameof(Edit), new { id = transferOrder.transferOrderId }));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    transferOrder.warehouseFrom = await _context.Warehouse.Include(x => x.branch).SingleOrDefaultAsync(x => x.warehouseId.Equals(transferOrder.warehouseIdFrom));

                    transferOrder.branchFrom = transferOrder.warehouseFrom.branch;

                    transferOrder.warehouseTo = await _context.Warehouse.SingleOrDefaultAsync(x => x.warehouseId.Equals(transferOrder.warehouseIdTo));

                    transferOrder.branchTo = transferOrder.warehouseTo.branch;

                    _context.Update(transferOrder);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TransferOrderExists(transferOrder.transferOrderId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(transferOrder));
        }
        public async Task <IActionResult> Edit(string id, [Bind("transferOrderId,isIssued,isReceived,transferOrderStatus,transferOrderNumber,transferOrderDate,description,picName,branchIdFrom,warehouseIdFrom,branchIdTo,warehouseIdTo,HasChild,createdAt")] TransferOrder transferOrder)
        {
            if (id != transferOrder.transferOrderId)
            {
                return(NotFound());
            }

            if ((TransferOrderStatus)TempData["TransferOrderStatus"] == TransferOrderStatus.Completed)
            {
                TempData["StatusMessage"] = "Lỗi. Không thể sửa [Completed].";
                return(RedirectToAction(nameof(Edit), new { id = transferOrder.transferOrderId }));
            }

            if (transferOrder.transferOrderStatus == TransferOrderStatus.Completed)
            {
                TempData["StatusMessage"] = "Lỗi. Không thể sửa trạng thái [Completed].";
                return(RedirectToAction(nameof(Edit), new { id = transferOrder.transferOrderId }));
            }

            if (transferOrder.isIssued == true ||
                transferOrder.isReceived == true)
            {
                TempData["StatusMessage"] = "Lỗi. Không thể chỉnh sửa đơn hàng [Mở] đã xử lý vấn đề hàng hóa hoặc hàng hóa nhận được.";
                return(RedirectToAction(nameof(Edit), new { id = transferOrder.transferOrderId }));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    transferOrder.warehouseFrom = await _context.Warehouse.Include(x => x.branch).SingleOrDefaultAsync(x => x.warehouseId.Equals(transferOrder.warehouseIdFrom));

                    transferOrder.branchFrom = transferOrder.warehouseFrom.branch;

                    transferOrder.warehouseTo = await _context.Warehouse.SingleOrDefaultAsync(x => x.warehouseId.Equals(transferOrder.warehouseIdTo));

                    transferOrder.branchTo = transferOrder.warehouseTo.branch;

                    _context.Update(transferOrder);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TransferOrderExists(transferOrder.transferOrderId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(transferOrder));
        }
Exemple #13
0
        public void CreateTransferOrder(TransferOrder transferOrder, string language)
        {
            TransactionResult transactionResult;

            transactionResult = orderServices.CreateTransferOrder(GetCustomerId(), transferOrder, language);
            if (transactionResult.HasError)
            {
                ReturnErrorResponse(transactionResult.Message);
            }
        }
Exemple #14
0
        public async Task <IActionResult> PrintTransferOrder(string id)
        {
            TransferOrder obj = await _context.TransferOrder
                                .Include(x => x.warehouseFrom)
                                .Include(x => x.warehouseTo)
                                .Include(x => x.transferOrderLine).ThenInclude(x => x.product)
                                .SingleOrDefaultAsync(x => x.transferOrderId.Equals(id));

            return(View(obj));
        }
Exemple #15
0
        public void EditItem(TransferOrder entity)
        {
            //明细
            if (_db.Table.Exists <TransferOrderItem>(n => n.TransferOrderId == entity.Id))
            {
                _db.Delete <TransferOrderItem>(n => n.TransferOrderId == entity.Id);
            }

            _db.Insert(entity.Items.ToArray());
        }
Exemple #16
0
        // GET: TransferOrder/Create
        public IActionResult Create()
        {
            ViewData["StatusMessage"]   = TempData["StatusMessage"];
            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");
            TransferOrder obj = new TransferOrder();

            return(View(obj));
        }
 public async Task <JsonResult> NewTransferNo([FromBody] TransferOrder inboundTransfer)
 {
     try
     {
         return(await _transferLogic.NewTransferNo(inboundTransfer).ConfigureAwait(false));
     }
     catch (Exception ee)
     {
         return(await _transferLogic.SendRespose("False", ee.Message).ConfigureAwait(false));
     }
 }
        public void ShouldGetExistingOrder()
        {
            OrderRequest orderRequest = createOrderRequest();

            orderRequest.token = CreateToken();
            string orderCode = _orderService.Create(orderRequest).orderCode;

            TransferOrder order = _orderService.FindOrder(orderCode);

            Assert.AreEqual(orderCode, order.orderCode);
        }
Exemple #19
0
 public void DeleteTransferOrder(TransferOrder transferOrder)
 {
     using (var bankContext = new BankingContext())
     {
         try
         {
             bankContext.TransferOrder.Remove(transferOrder);
             bankContext.SaveChanges();
         }
         catch (Exception)
         {
             throw;
         }
     }
 }
        public TransactionResult CreateTransferOrder(string customerId, TransferOrder transferOrder, string language)
        {
            var transactionResult = new TransactionResult(false, "");

            transferOrder.CustomerId = customerId;
            try
            {
                orderManager.InsertTransferOrder(transferOrder);
            }
            catch (Exception)
            {
                transactionResult.HasError = true;
                transactionResult.Message  = language == "greek" ? "Σφάλμα κατά την δημιουργία της πάγιας εντολής μεταφοράς" :
                                             "There was an error while creating the order";
            }
            return(transactionResult);
        }
Exemple #21
0
        public IEnumerable <StoreInventory> CheckNotExistsProduct(TransferOrder entity)
        {
            if (entity == null)
            {
                throw new FriendlyException("单据不存在");
            }
            if (entity.Items.Count() == 0)
            {
                throw new FriendlyException("单据明细为空");
            }
            //查询门店库存中不存在商品
            string sql   = @"select i.ProductId ,o.toStoreId as StoreId from transferorderitem i inner join transferorder o on i.transferorderId = o.Id 
left join (select * from storeinventory si where si.StoreId = @StoreId ) s on i.ProductId = s.ProductId 
where s.Id is null  and i.`TransferOrderId`=@TransferOrderId";
            var    items = _db.Table.FindAll <StoreInventory>(sql, new { StoreId = entity.ToStoreId, TransferOrderId = entity.Id });

            return(items);
        }
        internal async Task <JsonResult> NewTransferNo(TransferOrder inboundTransfer)
        {
            SqlConnection cn = null;

            try
            {
                cn = Connection.GetConnection();
                SqlCommand smd = new SqlCommand("SELECT CONCAT( dp.prefix , NEXT VALUE FOR dbo.seq_transfer_no) FROM dbo.document_perfix dp WHERE dp.type = 'Transfer'", cn);
                string     num = (string)await smd.ExecuteScalarAsync().ConfigureAwait(false);

                return(await SendRespose("True", num).ConfigureAwait(true));
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                Connection.CloseConnection(ref cn);
            }
        }
        public async Task <JsonResult> AddItem([FromBody] TransferOrder inboundTransfer)
        {
            try
            {
                try
                {
                    if (string.IsNullOrEmpty(inboundTransfer.ItemNo))
                    {
                        return(await _transferLogic.SendRespose("False", "Blank Item No").ConfigureAwait(false));
                    }
                    JArray item_info = await _transferLogic.AddItem(inboundTransfer).ConfigureAwait(false);

                    JObject jo = item_info.Children <JObject>().FirstOrDefault(o => o["condition"] != null);
                    if (jo.Value <string>("condition") == "True")
                    {
                        decimal cost_per_unit, gst_percentage;
                        cost_per_unit  = jo.Value <decimal>("cost_per_unit");
                        gst_percentage = jo.Value <decimal>("gst_percentage");
                        jo.Add(new JProperty("quantity", inboundTransfer.Quantity));
                        jo.Add(new JProperty("amount_without_tax", decimal.Round((cost_per_unit * inboundTransfer.Quantity), 2)));
                        jo.Add(new JProperty("gst_amount", decimal.Round((jo.Value <decimal>("amount_without_tax") * gst_percentage) / 100, 2)));
                        jo.Add(new JProperty("amount_with_tax", decimal.Round(jo.Value <decimal>("amount_without_tax") + jo.Value <decimal>("gst_amount"), 2)));
                        JArray response = new JArray(jo);
                        return(new JsonResult(response));
                    }
                    else
                    {
                        return(new JsonResult(item_info));
                    }
                }
                catch (Exception ee)
                {
                    return(await _transferLogic.SendRespose("False", ee.Message).ConfigureAwait(false));
                }
            }
            catch (Exception ee)
            {
                return(await _transferLogic.SendRespose("False", ee.Message).ConfigureAwait(false));
            }
        }
Exemple #24
0
        public async Task <IActionResult> PostTransferOrderLine([FromBody] TransferOrderLine transferOrderLine)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            TransferOrder transferOrder = await _context.TransferOrder.Where(x => x.transferOrderId.Equals(transferOrderLine.transferOrderId)).FirstOrDefaultAsync();

            if (transferOrder.transferOrderStatus == TransferOrderStatus.Completed)
            {
                return(Json(new { success = false, message = "Error. Can not edit [Completed] order" }));
            }

            if (transferOrder.isIssued == true)
            {
                return(Json(new { success = false, message = "Error. Can not edit [Open] order that already process the goods issue" }));
            }

            if (transferOrder.isReceived == true)
            {
                return(Json(new { success = false, message = "Error. Can not edit [Open] order that already process the goods receive" }));
            }

            if (transferOrderLine.transferOrderLineId == string.Empty)
            {
                transferOrderLine.transferOrderLineId = Guid.NewGuid().ToString();
                _context.TransferOrderLine.Add(transferOrderLine);
                await _context.SaveChangesAsync();

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

                return(Json(new { success = true, message = "Edit data success." }));
            }
        }
Exemple #25
0
        public async Task <IActionResult> PostTransferOrderLine([FromBody] TransferOrderLine transferOrderLine)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            TransferOrder transferOrder = await _context.TransferOrder.Where(x => x.transferOrderId.Equals(transferOrderLine.transferOrderId)).FirstOrDefaultAsync();

            if (transferOrder.transferOrderStatus == TransferOrderStatus.Completed)
            {
                return(Json(new { success = false, message = "Σφάλμα. Δεν μπορεί να γίνει Επεξεργασία, Παραγγελίας που είναι [Ολοκληρωμένη]." }));
            }

            if (transferOrder.isIssued == true)
            {
                return(Json(new { success = false, message = "Σφάλμα. Can not edit [Open] order that already process the goods issue" }));
            }

            if (transferOrder.isReceived == true)
            {
                return(Json(new { success = false, message = "Σφάλμα. Δεν είναι δυνατή η επεξεργασία παραγγελίας που είναι [Ανοιχτή], και ήδη επεξεργάζεται την παραλαβή των προϊόντων" }));
            }

            if (transferOrderLine.transferOrderLineId == string.Empty)
            {
                transferOrderLine.transferOrderLineId = Guid.NewGuid().ToString();
                _context.TransferOrderLine.Add(transferOrderLine);
                await _context.SaveChangesAsync();

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

                return(Json(new { success = true, message = "Η Επεξεργασία του στοιχείου μεταφοράς, έγινε με επιτυχία." }));
            }
        }
Exemple #26
0
        public async Task <IActionResult> PostTransferOrderLine([FromBody] TransferOrderLine transferOrderLine)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            TransferOrder transferOrder = await _context.TransferOrder.Where(x => x.transferOrderId.Equals(transferOrderLine.transferOrderId)).FirstOrDefaultAsync();

            if (transferOrder.transferOrderStatus == TransferOrderStatus.Completed)
            {
                return(Json(new { success = false, message = "Lỗi. Không thẻ sửa [Completed]." }));
            }

            if (transferOrder.isIssued == true)
            {
                return(Json(new { success = false, message = "Lỗi. Không thể chỉnh sửa đơn hàng [Mở] đã xử lý sự cố hàng hóa" }));
            }

            if (transferOrder.isReceived == true)
            {
                return(Json(new { success = false, message = "Lỗi. Không thể chỉnh sửa đơn hàng [Mở] đã xử lý hàng hóa nhận được" }));
            }

            if (transferOrderLine.transferOrderLineId == string.Empty)
            {
                transferOrderLine.transferOrderLineId = Guid.NewGuid().ToString();
                _context.TransferOrderLine.Add(transferOrderLine);
                await _context.SaveChangesAsync();

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

                return(Json(new { success = true, message = "Edit data success." }));
            }
        }
        internal async Task <JsonResult> InboundList(TransferOrder inboundTransfer)
        {
            SqlConnection cn = null;

            try
            {
                cn = Connection.GetConnection();
                SqlCommand smd = new SqlCommand("SET @jsonOutput = (SELECT 'True' as [condition], gph.document_no, (SELECT lm.name FROM dbo.location_mst lm WHERE lm.id = gph.from_location_id) from_location," +
                                                "(SELECT lm.name FROM dbo.location_mst lm WHERE lm.id = gph.to_location_id) to_location, sm.name AS order_status, " +
                                                "gph.created_date, gph.created_by FROM dbo.gate_pass_header gph INNER JOIN dbo.status_mst sm ON gph.order_status = sm.id " +
                                                "WHERE gph.document_type = 'Transfer Order' AND gph.from_location_id = @location_id for json path)", cn);
                smd.Parameters.AddWithValue("@location_id", inboundTransfer.LocationId);
                smd.Parameters.Add("@jsonOutput", SqlDbType.NVarChar, -1).Direction = ParameterDirection.Output;
                await smd.ExecuteNonQueryAsync().ConfigureAwait(false);

                string json = smd.Parameters["@jsonOutput"].Value.ToString();
                smd.Dispose();
                if (json.Length > 2)
                {
                    JArray arr = JArray.Parse(json);
                    return(new JsonResult(arr));
                }
                else
                {
                    return(await SendRespose("False", "No Record Found").ConfigureAwait(true));
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                Connection.CloseConnection(ref cn);
            }
        }
 public Task Delete(TransferOrder entity)
 {
     throw new NotSupportedException();
 }
 public Task <TransferOrder> Create(TransferOrder entity)
 {
     throw new NotSupportedException();
 }
Exemple #30
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));
        }