public override bool DeleteData(int id, out Notification notification) { notification = new Library.DTO.Notification { Type = Library.DTO.NotificationType.Success }; try { using (PurchaseOrderMngEntities context = CreateContext()) { var dbItem = context.PurchaseOrder.Where(o => o.PurchaseOrderID == id).FirstOrDefault(); context.PurchaseOrder.Remove(dbItem); context.SaveChanges(); } return(true); } catch (Exception ex) { notification.Type = Library.DTO.NotificationType.Error; notification.Message = ex.Message; notification.DetailMessage.Add(ex.Message); if (ex.GetBaseException() != null) { notification.DetailMessage.Add(ex.GetBaseException().Message); } return(false); } }
public override EditData GetData(int id, out Notification notification) { DTO.EditData editFormData = new DTO.EditData(); notification = new Notification(); try { using (PurchaseOrderMngEntities context = CreateContext()) { PurchaseOrderMng_PurchaseOrder_View dbItem; dbItem = context.PurchaseOrderMng_PurchaseOrder_View.FirstOrDefault(o => o.PurchaseOrderID == id); editFormData.Data = converter.DB2DTO_PurchaseOrder(dbItem); } } catch (Exception ex) { notification.Type = Library.DTO.NotificationType.Error; notification.Message = ex.Message; notification.DetailMessage.Add(ex.Message); if (ex.GetBaseException() != null) { notification.DetailMessage.Add(ex.GetBaseException().Message); } } return(editFormData); }
public override bool UpdateData(int userId, int id, ref object dtoItem, out Notification notification) { notification = new Library.DTO.Notification() { Type = Library.DTO.NotificationType.Success }; DTO.PurchaseOrderDto dtoPurchaseOrder = ((Newtonsoft.Json.Linq.JObject)dtoItem).ToObject <DTO.PurchaseOrderDto>(); try { //get companyID Module.Framework.DAL.DataFactory fw_factory = new Framework.DAL.DataFactory(); int?companyID = fw_factory.GetCompanyID(userId); using (PurchaseOrderMngEntities context = CreateContext()) { PurchaseOrder dbItem = null; if (id == 0) { dbItem = new PurchaseOrder(); context.PurchaseOrder.Add(dbItem); } else { dbItem = context.PurchaseOrder.Where(o => o.PurchaseOrderID == id).FirstOrDefault(); } if (dbItem == null) { notification.Message = "data not found!"; return(false); } else { //upload file Module.Framework.DAL.DataFactory fwFactory = new Module.Framework.DAL.DataFactory(); string tempFolder = FrameworkSetting.Setting.AbsoluteUserTempFolder + userId.ToString() + @"\"; if (dtoPurchaseOrder.File_HasChange.HasValue && dtoPurchaseOrder.File_HasChange.Value) { dtoPurchaseOrder.AttachedFile = fwFactory.CreateFilePointer(tempFolder, dtoPurchaseOrder.File_NewFile, dtoPurchaseOrder.AttachedFile, dtoPurchaseOrder.FriendlyName); } // //convert dto to db converter.DTO2DB_PurchaseOrder(dtoPurchaseOrder, ref dbItem); dbItem.CompanyID = companyID; dbItem.UpdatedBy = userId; dbItem.UpdatedDate = DateTime.Now; if (id == 0) { //dbItem.PurchaseOrderUD = context.PurchaseOrderMng_function_GeneratePurchaseOrderUD(dtoPurchaseOrder.FactoryRawMaterialUD, dtoPurchaseOrder.PurchaseOrderDate, dtoPurchaseOrder.FactoryRawMaterialID).FirstOrDefault(); dbItem.CreatedBy = userId; dbItem.CreatedDate = DateTime.Now; if (dtoPurchaseOrder.PurchaseOrderStatusID != 4) { dbItem.PurchaseOrderStatusID = 1; } } // loop dto item detail foreach (var item in dtoPurchaseOrder.PurchaseOrderDetailDTOs) { if (item.IsChangePrice == true) { PurchaseOrderDetailPriceHistory dbItemPriceHistory = new PurchaseOrderDetailPriceHistory(); context.PurchaseOrderDetailPriceHistory.Add(dbItemPriceHistory); dbItemPriceHistory.PurchaseOrderDetailID = (int)item.PurchaseOrderDetailID; dbItemPriceHistory.UnitPrice = (decimal)item.UnitPrice; dbItemPriceHistory.ApprovedBy = userId; dbItemPriceHistory.ApprovedDate = DateTime.Now; } } //remove orphan context.PurchaseOrderDetail.Local.Where(o => o.PurchaseOrder == null).ToList().ForEach(o => context.PurchaseOrderDetail.Remove(o)); context.PurchaseOrderWorkOrderDetail.Local.Where(o => o.PurchaseOrderDetail == null).ToList().ForEach(o => context.PurchaseOrderWorkOrderDetail.Remove(o)); context.PurchaseOrderDetailReceivingPlan.Local.Where(o => o.PurchaseOrderDetail == null).ToList().ForEach(o => context.PurchaseOrderDetailReceivingPlan.Remove(o)); context.PurchaseOrderDetailPriceHistory.Local.Where(o => o.PurchaseOrderDetail == null).ToList().ForEach(o => context.PurchaseOrderDetailPriceHistory.Remove(o)); //save data context.SaveChanges(); // Generate PurchaseOrderUD. if (id == 0) { context.PurchaseOrderMng_function_GeneratePurchaseOrderUD(dbItem.Season, dbItem.FactoryRawMaterialID, dbItem.PurchaseOrderID); } else { // Auto update unit price in receiving note UpdateUnitPriceReceivingNoteDetail(dbItem.PurchaseOrderID, out notification); } //get return data dtoItem = GetData(userId, dbItem.PurchaseOrderID, out notification).Data; if (id == 0) { string emailSubject = string.Format("[Tilsoft] - Purchasing Order - {0} - {1}", dbItem.PurchaseOrderUD, dtoPurchaseOrder.FactoryRawMaterialShortNM); string emailBody = string.Format("Please approve PO: {0} - {1} - {2}", dbItem.PurchaseOrderUD, dtoPurchaseOrder.FactoryRawMaterialShortNM, "http://app.tilsoft.bg/PurchaseOrderMng/Edit/" + dbItem.PurchaseOrderID); SendNotification(emailSubject, emailBody); } return(true); } } } catch (Exception ex) { notification.Type = Library.DTO.NotificationType.Error; notification.Message = ex.Message; notification.DetailMessage.Add(ex.Message); if (ex.GetBaseException() != null) { notification.DetailMessage.Add(ex.GetBaseException().Message); } return(false); } }
public DTO.SearchData GetDataWithFilter(int userId, Hashtable filters, int pageSize, int pageIndex, string orderBy, string orderDirection, out int totalRows, out Library.DTO.Notification notification) { DTO.SearchData searchFormData = new DTO.SearchData(); notification = new Library.DTO.Notification() { Type = Library.DTO.NotificationType.Success }; totalRows = 0; try { //int? companyID = null; string season = null; string purchaseOrderUD = null; string purchaseOrderDate = null; string factoryRawMaterialShortNM = null; string purchaseRequestUD = null; string eTA = null; string currency = null; string remark = null; int? poStatus = null; string purchaseOrderIDs = null; Module.Framework.DAL.DataFactory fw_factory = new Framework.DAL.DataFactory(); //companyID = fw_factory.GetCompanyID(userId); if (filters.ContainsKey("season") && !string.IsNullOrEmpty(filters["season"].ToString())) { season = filters["season"].ToString().Replace("'", "''"); } if (filters.ContainsKey("purchaseOrderUD") && !string.IsNullOrEmpty(filters["purchaseOrderUD"].ToString())) { purchaseOrderUD = filters["purchaseOrderUD"].ToString().Replace("'", "''"); } if (filters.ContainsKey("purchaseOrderDate") && !string.IsNullOrEmpty(filters["purchaseOrderDate"].ToString())) { purchaseOrderDate = filters["purchaseOrderDate"].ToString().Replace("'", "''"); } if (filters.ContainsKey("factoryRawMaterialShortNM") && !string.IsNullOrEmpty(filters["factoryRawMaterialShortNM"].ToString())) { factoryRawMaterialShortNM = filters["factoryRawMaterialShortNM"].ToString().Replace("'", "''"); } if (filters.ContainsKey("purchaseRequestUD") && !string.IsNullOrEmpty(filters["purchaseRequestUD"].ToString())) { purchaseRequestUD = filters["purchaseRequestUD"].ToString().Replace("'", "''"); } if (filters.ContainsKey("currency") && !string.IsNullOrEmpty(filters["currency"].ToString())) { currency = filters["currency"].ToString().Replace("'", "''"); } if (filters.ContainsKey("eTA") && !string.IsNullOrEmpty(filters["eTA"].ToString())) { eTA = filters["eTA"].ToString().Replace("'", "''"); } if (filters.ContainsKey("remark") && !string.IsNullOrEmpty(filters["remark"].ToString())) { remark = filters["remark"].ToString().Replace("'", "''"); } if (filters.ContainsKey("status") && filters["status"] != null && !string.IsNullOrEmpty(filters["status"].ToString())) { poStatus = Convert.ToInt32(filters["status"].ToString()); } if (filters.ContainsKey("purchaseOrderIDs") && !string.IsNullOrEmpty(filters["purchaseOrderIDs"].ToString())) { purchaseOrderIDs = filters["purchaseOrderIDs"].ToString().Replace("'", "''"); } DateTime?valpurchaseOrderDate = purchaseOrderDate.ConvertStringToDateTime(); DateTime?valETA = eTA.ConvertStringToDateTime(); using (PurchaseOrderMngEntities context = CreateContext()) { Module.Support.DAL.DataFactory supportFactory = new Support.DAL.DataFactory(); totalRows = context.PurchaseOrderMng_function_SearchPurchaseOrder(season, purchaseOrderUD, valpurchaseOrderDate, factoryRawMaterialShortNM, purchaseRequestUD, valETA, currency, orderBy, orderDirection, remark, poStatus, purchaseOrderIDs).Count(); searchFormData.Data = converter.DB2DTO_PurchaseOrderSearch(context.PurchaseOrderMng_function_SearchPurchaseOrder(season, purchaseOrderUD, valpurchaseOrderDate, factoryRawMaterialShortNM, purchaseRequestUD, valETA, currency, orderBy, orderDirection, remark, poStatus, purchaseOrderIDs).Skip(pageSize * (pageIndex - 1)).Take(pageSize).ToList()); searchFormData.PurchaseOrderStatus = supportFactory.GetConstantEntries(EntryGroupType.PurchaseOrderStatus); searchFormData.Seasons = supportFactory.GetSeason(); } return(searchFormData); } catch (Exception ex) { notification.Type = Library.DTO.NotificationType.Error; notification.Message = ex.Message; notification.DetailMessage.Add(ex.Message); if (ex.GetBaseException() != null) { notification.DetailMessage.Add(ex.GetBaseException().Message); } return(searchFormData); } }