public async Task <bool> Add(Packing_List_Dto model) { var data = _mapper.Map <WMSB_Packing_List>(model); _repoPackingList.Add(data); return(await _repoPackingList.SaveAll()); }
public async Task<bool> AddListQRCode(List<string> listReceiveNo) { var checkCreate = true; Random ran = new Random(); foreach (var item in listReceiveNo) { // Tạo QrCodeMain để thêm vào database var qrCodeDto = new QRCode_Main_Dto(); var packing = await _repoPacking.GetAll().Where(x => x.Receive_No.Trim() == item.Trim()).FirstOrDefaultAsync(); packing.Generated_QRCode = "Y"; int so = ran.Next(100,999); string qrCodeId = "B" + packing.MO_No.Trim() + so.ToString(); qrCodeDto.QRCode_ID = qrCodeId; qrCodeDto.Receive_No = packing.Receive_No.Trim(); qrCodeDto.QRCode_Version = 1; qrCodeDto.Valid_Status = "Y"; qrCodeDto.Is_Scanned = "N"; qrCodeDto.QRCode_Type = packing.Sheet_Type.Trim(); await _repoPacking.SaveAll(); var qrCodeMain = _mapper.Map<WMSB_QRCode_Main>(qrCodeDto); _repoQrcode.Add(qrCodeMain); // Tạo QrCodeDetail để thêm vào database var listPackingDetail = await _repoPackingDetail.GetAll().Where(x => x.Receive_No.Trim() == item.Trim()).ToListAsync(); foreach (var packingItem in listPackingDetail) { var qrCodeDetailDto = new QRCode_Detail_Dto(); qrCodeDetailDto.QRCode_ID = qrCodeId; qrCodeDetailDto.QRCode_Version = 1; qrCodeDetailDto.Order_Size = packingItem.Order_Size; qrCodeDetailDto.Model_Size = packingItem.Model_Size; qrCodeDetailDto.Tool_Size = packingItem.Tool_Size; qrCodeDetailDto.Spec_Size = packingItem.Spec_Size; qrCodeDetailDto.Qty = packingItem.Received_Qty; qrCodeDetailDto.Updated_By = "Emma"; var qrCodeDetail = _mapper.Map<WMSB_QRCode_Detail>(qrCodeDetailDto); _repoQrCodeDetail.Add(qrCodeDetail); if (!await _repoQrCodeDetail.SaveAll()) { checkCreate = false; break; } } } await _repoQrcode.SaveAll(); return checkCreate; }
public async Task <bool> AddListQRCode(List <string> listReceiveNo, string updateBy) { listReceiveNo = listReceiveNo.Select(x => x.Trim()).ToList(); var packingLists = await _repoPacking.FindAll(x => listReceiveNo.Contains(x.Receive_No.Trim())).ToListAsync(); var checkCreate = true; foreach (var item in listReceiveNo) { // Tạo QrCodeMain để thêm vào database var qrCodeDto = new QRCode_Main_Dto(); var packing = packingLists.Where(x => x.Receive_No.Trim() == item).FirstOrDefault(); // Nếu Generated_QrCode khác Y thì mới Tạo QrCode if (packing.Generated_QRCode != "Y") { packing.Generated_QRCode = "Y"; string qrCodeId = ""; if (packing.Sheet_Type.Trim() == "R" || packing.Sheet_Type.Trim() == "M") { do { var po = packing.MO_No.Trim().Length == 9 ? packing.MO_No.Trim() + "Z" : packing.MO_No.Trim(); string so = CodeUtility.RandomNumber(3); qrCodeId = "A" + po + so + CodeUtility.RandomStringUpper(1); } while (await this.CheckQrCodeID(qrCodeId)); } else if (packing.Sheet_Type.Trim() == "B") { do { var po = packing.MO_No.Trim().Length == 9 ? packing.MO_No.Trim() + "Z" : packing.MO_No.Trim(); string so = CodeUtility.RandomNumber(3); qrCodeId = "B" + po + so + CodeUtility.RandomStringUpper(1); } while (await this.CheckQrCodeID(qrCodeId)); } qrCodeDto.QRCode_ID = qrCodeId; qrCodeDto.Receive_No = packing.Receive_No.Trim(); qrCodeDto.QRCode_Version = 1; qrCodeDto.Valid_Status = "Y"; qrCodeDto.Is_Scanned = "N"; qrCodeDto.QRCode_Type = packing.Sheet_Type.Trim(); qrCodeDto.Updated_By = updateBy; await _repoPacking.SaveAll(); var qrCodeMain = _mapper.Map <WMSB_QRCode_Main>(qrCodeDto); _repoQrcode.Add(qrCodeMain); // Tạo QrCodeDetail để thêm vào database var listPackingDetail = await _repoPackingDetail.FindAll(x => x.Receive_No.Trim() == item).ToListAsync(); foreach (var packingItem in listPackingDetail) { var qrCodeDetailDto = new QRCode_Detail_Dto(); qrCodeDetailDto.QRCode_ID = qrCodeId; qrCodeDetailDto.QRCode_Version = 1; qrCodeDetailDto.Order_Size = packingItem.Order_Size; qrCodeDetailDto.Model_Size = packingItem.Model_Size; qrCodeDetailDto.Tool_Size = packingItem.Tool_Size; qrCodeDetailDto.Spec_Size = packingItem.Spec_Size; qrCodeDetailDto.Qty = packingItem.Received_Qty; qrCodeDetailDto.Updated_By = updateBy; var qrCodeDetail = _mapper.Map <WMSB_QRCode_Detail>(qrCodeDetailDto); _repoQrCodeDetail.Add(qrCodeDetail); if (!await _repoQrCodeDetail.SaveAll()) { checkCreate = false; break; } } } } await _repoQrcode.SaveAll(); return(checkCreate); }
public async Task <bool> EditDetail(List <MaterialEditModel> data) { // Update Receive_Date trong bảng PackingList. var packingListFind = await _repoPackingList.GetAll() .Where(x => x.Receive_No.Trim() == data[0].Receive_No.Trim()).FirstOrDefaultAsync(); packingListFind.Receive_Date = DateTime.Now; await _repoPackingList.SaveAll(); var editResult = false; var receive_No = data[0].Receive_No; var missing_No = data[0].Missing_No; var packinglistDetail = _repoPackingListDetail.GetAll().Where(x => x.Receive_No.Trim() == receive_No.Trim()); foreach (var item in packinglistDetail) { foreach (var item1 in data) { if (item1.Order_Size.Trim() == item.Order_Size.Trim()) { item.Received_Qty = item.Received_Qty + item1.Received_Qty_Edit; } } } var SavePackingListDetail = await _repoPackingListDetail.SaveAll(); var saveMaterial = false; // Áp dụng cho bảng Material_Purchase if (missing_No == "") { var materialPurchaseList = _repoPurchase.GetAll() .Where(x => x.Purchase_No.Trim() == data[0].Purchase_No.Trim() && x.MO_Seq.Trim() == data[0].MO_Seq_Edit.Trim()); foreach (var item2 in data) { foreach (var item4 in materialPurchaseList) { if (item4.Order_Size.Trim() == item2.Order_Size.Trim()) { // Số lượng mới = số lượng hiện tại trừ đi số lượng đã nhận trước và + cho số lượng nhận mới. item4.Accumlated_In_Qty = item4.Accumlated_In_Qty + item2.Received_Qty_Edit; } } } await _repoPurchase.SaveAll(); //------------------------- Update giá trị Status--------------------------------------------// await this.UpdateStatusMaterial(data[0].Purchase_No, data[0].MO_Seq_Edit, missing_No); saveMaterial = await _repoPurchase.SaveAll(); } // Áp dụng cho bảng Material_Missing else { var materialPurchaseList = _repoMissing.GetAll() .Where(x => x.Purchase_No.Trim() == data[0].Purchase_No.Trim() && x.MO_Seq.Trim() == data[0].MO_Seq_Edit.Trim()); foreach (var item2 in data) { foreach (var item4 in materialPurchaseList) { if (item4.Order_Size.Trim() == item2.Order_Size.Trim()) { // Số lượng mới = số lượng hiện tại trừ đi số lượng đã nhận trước và + cho số lượng nhận mới. item4.Accumlated_In_Qty = item4.Accumlated_In_Qty + item2.Received_Qty_Edit; } } } await _repoMissing.SaveAll(); await this.UpdateStatusMaterial(data[0].Purchase_No, data[0].MO_Seq_Edit, missing_No); saveMaterial = await _repoMissing.SaveAll(); } if (SavePackingListDetail == true && saveMaterial == true) { editResult = true; } return(editResult); }
public async Task <List <ReceiveNoMain> > UpdateMaterial(List <OrderSizeByBatch> data, string updateBy) { foreach (var item in data) { item.Purchase_Qty = item.Purchase_Qty.Where(x => x.Tool_Size != null).ToList(); } var Purchase_No = data[0].Purchase_No.Trim(); var MO_No = data[0].MO_No.Trim(); // ------------------------------------------------------------------------------------------------------// if (data[0].Missing_No == "") { // --------Update lại Accumlated_In_Qty theo Purchase_No,Order_Size và Mo_Seq ở bảng Material_Purchase----// var purchaseMaterialAll = await _repoPurchase.FindAll(x => x.Biz_Tflag.Trim() != "D" && (x.MO_Qty != 0 || x.Purchase_Qty != 0) && x.Purchase_No.Trim() == Purchase_No.Trim()).ToListAsync(); foreach (var item in data) { foreach (var item1 in item.Purchase_Qty) { var materialItem = purchaseMaterialAll .Where(x => x.MO_No.Trim() == MO_No && x.Order_Size == item1.Order_Size && x.MO_Seq == item.MO_Seq).FirstOrDefault(); // materialItem.Accumlated_In_Qty = item1.Accumlated_In_Qty; // Số lượng bằng số lượng nhận hiện tại + số lượng vừa mới nhận vào. materialItem.Accumlated_In_Qty = materialItem.Accumlated_In_Qty + item1.Received_Qty; } } //------------------------- Update giá trị Status--------------------------------------------// foreach (var item in data) { await this.UpdateStatusMaterialSubmit(item.Purchase_No, item.MO_No, item.MO_Seq, item.Missing_No); } } else { // Update lại Accumlated_In_Qty theo Purchase_No,Order_Size và Mo_Seq ở bảng Material_Missing var MaterialMissingAll = await _repoMissing.FindAll(x => x.Purchase_No.Trim() == Purchase_No.Trim()).ToListAsync(); foreach (var item in data) { foreach (var item1 in item.Purchase_Qty) { var materialItem = MaterialMissingAll .Where(x => x.MO_No.Trim() == MO_No && x.Order_Size == item1.Order_Size && x.MO_Seq == item.MO_Seq).FirstOrDefault(); materialItem.Accumlated_In_Qty = item1.Accumlated_In_Qty; } } // Update lại Status foreach (var item in data) { await this.UpdateStatusMaterialSubmit(item.Purchase_No, item.MO_No, item.MO_Seq, item.Missing_No); } } //------------------------Thêm vào 2 bảng Packing_List và Packing_List_Detail------------------// var ReceiveNoMain = new List <ReceiveNoMain>(); foreach (var item in data) { // Check xem có tiến hành thêm hay ko var checkAdd = false; foreach (var item1 in item.Purchase_Qty) { // Kiểm tra nếu tồn tại Received_Qty lớn hơn 0 //,có nghĩa là tồn tại 1 Order_Size trong batch đó có nhận hàng if (item1.Received_Qty > 0) { checkAdd = true; break; } } // Tiến hành thêm vào bảng Packing_List và Packing_List_Detail if (checkAdd == true) { var packing_List = new Packing_List_Dto(); if (item.Missing_No == string.Empty) { packing_List.Sheet_Type = "R"; } else { packing_List.Sheet_Type = "M"; } packing_List.Missing_No = item.Missing_No; packing_List.Supplier_ID = item.Supplier_ID; packing_List.Supplier_Name = item.Supplier_Name; packing_List.MO_No = item.MO_No; packing_List.Purchase_No = item.Purchase_No; packing_List.MO_Seq = item.MO_Seq; packing_List.Delivery_No = item.Delivery_No; packing_List.Material_ID = item.Material_ID; packing_List.Material_Name = item.Material_Name; packing_List.Model_No = item.Model_No; packing_List.Model_Name = item.Model_Name; packing_List.Article = item.Article; packing_List.Subcon_ID = item.Subcon_No; packing_List.Subcon_Name = item.Subcon_Name; packing_List.T3_Supplier = item.T3_Supplier; packing_List.T3_Supplier_Name = item.T3_Supplier_Name; packing_List.Generated_QRCode = "N"; packing_List.Receive_Date = DateTime.Now; packing_List.Updated_By = updateBy; packing_List.Receive_No = CodeUtility.RandomReceiveNo("RW", 2); var packing_ListAdd = _mapper.Map <WMSB_Packing_List>(packing_List); _repoPackingList.AddModel(packing_ListAdd); foreach (var item2 in item.Purchase_Qty) { var packing_List_detail = new Packing_List_Detail_Dto(); packing_List_detail.Receive_No = packing_List.Receive_No; packing_List_detail.Order_Size = item2.Order_Size; packing_List_detail.Model_Size = item2.Model_Size; packing_List_detail.Tool_Size = item2.Tool_Size; packing_List_detail.Spec_Size = item2.Spec_Size; packing_List_detail.MO_Qty = item2.MO_Qty; packing_List_detail.Purchase_Qty = item2.Purchase_Qty_Const; packing_List_detail.Received_Qty = item2.Received_Qty; packing_List_detail.Updated_Time = DateTime.Now; packing_List_detail.Updated_By = updateBy; var packingDetailAdd = _mapper.Map <WMSB_PackingList_Detail>(packing_List_detail); _repoPackingListDetail.AddModel(packingDetailAdd); } } } await _repoPackingList.SaveAll(); return(ReceiveNoMain); }