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); // } //} }