public object ConfirmDelivering(int userID, int id, out Library.DTO.Notification notification) { notification = new Library.DTO.Notification(); notification.Type = Library.DTO.NotificationType.Success; try { Framework.DAL.DataFactory frameworkFactory = new Framework.DAL.DataFactory(); int?companyID = frameworkFactory.GetCompanyID(userID); // Update confirm receiving in WarehouseTransfer using (WarehouseTransferMngEntities context = CreateContext()) { WarehouseTransfer dbWarehouseTransfer = context.WarehouseTransfer.FirstOrDefault(o => o.WarehouseTransferID == id); if (dbWarehouseTransfer == null) { notification.Type = Library.DTO.NotificationType.Error; notification.Message = "Can not find WarehouseTransfer!"; return(null); } dbWarehouseTransfer.IsConfirmDelivering = true; dbWarehouseTransfer.UpdatedBy = userID; dbWarehouseTransfer.UpdatedDate = DateTime.Now; // Create receiving note new with WarehouseTransferID. DeliveryNote dbDeliveryNote = new DeliveryNote(); context.DeliveryNote.Add(dbDeliveryNote); dbDeliveryNote.DeliveryNoteDate = DateTime.Now; dbDeliveryNote.CompanyID = companyID; dbDeliveryNote.WarehouseTransferID = dbWarehouseTransfer.WarehouseTransferID; dbDeliveryNote.ViewName = "SaleOrderWithoutWorkOrder"; dbDeliveryNote.CreatedBy = userID; dbDeliveryNote.CreatedDate = DateTime.Now; dbDeliveryNote.UpdatedBy = userID; dbDeliveryNote.UpdatedDate = DateTime.Now; dbDeliveryNote.IsApproved = true; dbDeliveryNote.ApprovedBy = userID; dbDeliveryNote.ApprovedDate = DateTime.Now; dbDeliveryNote.Description = dbWarehouseTransfer.ReceiptNo; dbDeliveryNote.StatusTypeID = 7; //From Transfer Warehouse // Update receiving note detail with warehouse transfer detail foreach (WarehouseTransferDetail dbWarehouseTransferDetail in dbWarehouseTransfer.WarehouseTransferDetail.ToList()) { DeliveryNoteDetail dbDeliveryNoteDetail = new DeliveryNoteDetail(); dbDeliveryNote.DeliveryNoteDetail.Add(dbDeliveryNoteDetail); // Update value important dbDeliveryNoteDetail.ProductionItemID = dbWarehouseTransferDetail.ProductionItemID; dbDeliveryNoteDetail.Qty = dbWarehouseTransferDetail.ReceivedQnt; dbDeliveryNoteDetail.QtyByUnit = dbWarehouseTransferDetail.ReceivedQnt; dbDeliveryNoteDetail.FromFactoryWarehouseID = dbWarehouseTransferDetail.FromFactoryWarehouseID; dbDeliveryNoteDetail.UnitID = dbWarehouseTransferDetail.UnitID; } context.SaveChanges(); // Create delivery note code context.DeliveryNoteMng_function_GenerateDeliveryNoteUD(dbDeliveryNote.DeliveryNoteID, companyID, dbDeliveryNote.DeliveryNoteDate.Value.Year, dbDeliveryNote.DeliveryNoteDate.Value.Month); } // Get warehouse transfer after confirm receiving note return(GetData(id, out notification)); } catch (Exception ex) { notification.Type = Library.DTO.NotificationType.Error; notification.Message = Library.Helper.GetInnerException(ex).Message; return(null); } }
public override bool UpdateData(int userId, int id, ref object dtoItem, out Library.DTO.Notification notification) { notification = new Library.DTO.Notification(); notification.Type = Library.DTO.NotificationType.Success; DTO.WarehouseTransferDTO dtoWarehouseTransfer = ((Newtonsoft.Json.Linq.JObject)dtoItem).ToObject <DTO.WarehouseTransferDTO>(); try { // Get company Framework.DAL.DataFactory frameworkFactory = new Framework.DAL.DataFactory(); int?companyID = frameworkFactory.GetCompanyID(userId); using (WarehouseTransferMngEntities context = CreateContext()) { WarehouseTransfer dbWarehouseTransfer; if (id == 0) { dbWarehouseTransfer = new WarehouseTransfer(); context.WarehouseTransfer.Add(dbWarehouseTransfer); } else { dbWarehouseTransfer = context.WarehouseTransfer.FirstOrDefault(o => o.WarehouseTransferID == id); } if (dbWarehouseTransfer == null) { notification.Type = Library.DTO.NotificationType.Error; notification.Message = "Can not find WarehouseTransfer!"; return(false); } converter.DTO2DB_WarehouseTransfer(userId, companyID, dtoWarehouseTransfer, ref dbWarehouseTransfer); // Remove local WarehouseTransferDetail context.WarehouseTransferDetail.Local.Where(o => o.WarehouseTransfer == null).ToList().ForEach(o => context.WarehouseTransferDetail.Remove(o)); context.SaveChanges(); // Generate code WarehouseTransfer if (id == 0) { context.WarehouseTransferMng_function_GenerateReceiptCode(dbWarehouseTransfer.WarehouseTransferID, dbWarehouseTransfer.CompanyID, dbWarehouseTransfer.ReceiptDate.Value.Year, dbWarehouseTransfer.ReceiptDate.Value.Month); } // Get data WarehouseTransfer to reload dtoItem = GetData(userId, dbWarehouseTransfer.WarehouseTransferID, out notification).Data; } return(true); } catch (Exception ex) { notification.Type = Library.DTO.NotificationType.Error; notification.Message = Library.Helper.GetInnerException(ex).Message; return(false); } }
public void DTO2DB_WarehouseTransfer(int userID, int?companyID, DTO.WarehouseTransferDTO dtoWarehouseTransfer, ref WarehouseTransfer dbWarehouseTransfer) { AutoMapper.Mapper.Map <DTO.WarehouseTransferDTO, WarehouseTransfer>(dtoWarehouseTransfer, dbWarehouseTransfer); dbWarehouseTransfer.CompanyID = companyID; dbWarehouseTransfer.UpdatedBy = userID; dbWarehouseTransfer.UpdatedDate = DateTime.Now; dbWarehouseTransfer.ReceiptDate = dtoWarehouseTransfer.ReceiptDate.ConvertStringToDateTime(); if (dtoWarehouseTransfer.WarehouseTransferID == 0) { dbWarehouseTransfer.CreatedBy = userID; dbWarehouseTransfer.CreatedDate = DateTime.Now; } if (dtoWarehouseTransfer.WarehouseTransferDetails != null) { foreach (WarehouseTransferDetail dbWarehouseTransferDetail in dbWarehouseTransfer.WarehouseTransferDetail.ToList()) { if (!dtoWarehouseTransfer.WarehouseTransferDetails.Select(s => s.WarehouseTransferDetailID).Contains(dbWarehouseTransferDetail.WarehouseTransferDetailID)) { dbWarehouseTransfer.WarehouseTransferDetail.Remove(dbWarehouseTransferDetail); } } foreach (DTO.WarehouseTransferDetailDTO dtoWarehouseTransferDetail in dtoWarehouseTransfer.WarehouseTransferDetails.ToList()) { WarehouseTransferDetail dbWarehouseTransferDetail; if (dtoWarehouseTransferDetail.WarehouseTransferDetailID <= 0) { dbWarehouseTransferDetail = new WarehouseTransferDetail(); dbWarehouseTransfer.WarehouseTransferDetail.Add(dbWarehouseTransferDetail); } else { dbWarehouseTransferDetail = dbWarehouseTransfer.WarehouseTransferDetail.FirstOrDefault(o => o.WarehouseTransferDetailID == dtoWarehouseTransferDetail.WarehouseTransferDetailID); } if (dbWarehouseTransferDetail != null) { AutoMapper.Mapper.Map <DTO.WarehouseTransferDetailDTO, WarehouseTransferDetail>(dtoWarehouseTransferDetail, dbWarehouseTransferDetail); } } } ////set base info //dbItem.CompanyID = companyID; //dbItem.ReceiptDate = dtoItem.ReceiptDate.ConvertStringToDateTime(); //if (dtoItem.WarehouseTransferID>0) //{ // dbItem.UpdatedDate = DateTime.Now; // dbItem.UpdatedBy = userId; //} //else { // dbItem.CreatedDate = DateTime.Now; // dbItem.CreatedBy = userId; //} ////create product //if (dbItem.WarehouseTransferID > 0) //{ // //delete delivery note item // var deliveryNote = dbItem.DeliveryNote.FirstOrDefault(); // foreach (var item in deliveryNote.DeliveryNoteDetail.ToArray()) // { // deliveryNote.DeliveryNoteDetail.Remove(item); // } // //delete receiving note item // var receivingNote = dbItem.ReceivingNote.FirstOrDefault(); // foreach (var item in receivingNote.ReceivingNoteDetail.ToArray()) // { // receivingNote.ReceivingNoteDetail.Remove(item); // } // //create transfer item // DeliveryNoteDetail dbDeliveryNoteDetail; // ReceivingNoteDetail dbReceivingNoteDetail; // foreach (var item in dtoItem.WarehouseTransferProductDTOs) // { // //add deliverynote detail // dbDeliveryNoteDetail = new DeliveryNoteDetail(); // dbDeliveryNoteDetail.ProductionItemID = item.ProductionItemID; // dbDeliveryNoteDetail.Qty = item.Quantity; // dbDeliveryNoteDetail.QNTBarCode = item.QNTBarCode; // dbDeliveryNoteDetail.FromFactoryWarehouseID = dtoItem.FromFactoryWarehouseID; // deliveryNote.DeliveryNoteDetail.Add(dbDeliveryNoteDetail); // //add receivingNote detail // dbReceivingNoteDetail = new ReceivingNoteDetail(); // dbReceivingNoteDetail.ProductionItemID = item.ProductionItemID; // dbReceivingNoteDetail.Quantity = item.Quantity; // dbReceivingNoteDetail.QNTBarCode = item.QNTBarCode; // dbReceivingNoteDetail.ToFactoryWarehouseID = dtoItem.ToFactoryWarehouseID; // receivingNote.ReceivingNoteDetail.Add(dbReceivingNoteDetail); // } //} //else { // //create delivery note // DeliveryNote deliveryNote = new DeliveryNote(); // deliveryNote.DeliveryNoteTypeID = 3; // deliveryNote.DeliveryNoteDate = DateTime.Now; // deliveryNote.CompanyID = companyID; // deliveryNote.UpdatedBy = userId; // deliveryNote.UpdatedDate = DateTime.Now; // dbItem.DeliveryNote.Add(deliveryNote); // //create receiving note // ReceivingNote receivingNote = new ReceivingNote(); // receivingNote.ReceivingNoteTypeID = 3; // receivingNote.ReceivingNoteDate = DateTime.Now; // receivingNote.CompanyID = companyID; // receivingNote.UpdatedBy = userId; // receivingNote.UpdatedDate = DateTime.Now; // dbItem.ReceivingNote.Add(receivingNote); // //create transfer item // DeliveryNoteDetail dbDeliveryNoteDetail; // ReceivingNoteDetail dbReceivingNoteDetail; // foreach (var item in dtoItem.WarehouseTransferProductDTOs) // { // //add deliverynote detail // dbDeliveryNoteDetail = new DeliveryNoteDetail(); // dbDeliveryNoteDetail.ProductionItemID = item.ProductionItemID; // dbDeliveryNoteDetail.Qty = item.Quantity; // dbDeliveryNoteDetail.QNTBarCode = item.QNTBarCode; // dbDeliveryNoteDetail.FromFactoryWarehouseID = dtoItem.FromFactoryWarehouseID; // deliveryNote.DeliveryNoteDetail.Add(dbDeliveryNoteDetail); // //add receivingNote detail // dbReceivingNoteDetail = new ReceivingNoteDetail(); // dbReceivingNoteDetail.ProductionItemID = item.ProductionItemID; // dbReceivingNoteDetail.Quantity = item.Quantity; // dbReceivingNoteDetail.QNTBarCode = item.QNTBarCode; // dbReceivingNoteDetail.ToFactoryWarehouseID = dtoItem.ToFactoryWarehouseID; // receivingNote.ReceivingNoteDetail.Add(dbReceivingNoteDetail); // } //} }