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); } }
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; }
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)); }
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; })); }
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)); }
public void CreateTransferOrder(TransferOrder transferOrder, string language) { TransactionResult transactionResult; transactionResult = orderServices.CreateTransferOrder(GetCustomerId(), transferOrder, language); if (transactionResult.HasError) { ReturnErrorResponse(transactionResult.Message); } }
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)); }
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()); }
// 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); }
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); }
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)); } }
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." })); } }
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 = "Η Επεξεργασία του στοιχείου μεταφοράς, έγινε με επιτυχία." })); } }
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(); }
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)); }