Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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);
            }
        }