Ejemplo n.º 1
0
        public List <MyOrderModel> List()
        {
            var Today = DateTime.Now;
            var model = new List <MyOrderModel>();

            using (var db = new MyAnythingEntities())
            {
                model = (from order in db.OrderMaster
                         join room in db.Room on order.ProductId equals room.ID
                         join pay in db.PayGo on order.MerchantOrderNo equals pay.MerchantOrderNo into paygo
                         from x in paygo.DefaultIfEmpty()
                         where order.UserId == UserId &&
                         (string.IsNullOrEmpty(SearchKey) ||
                          (order.Name.Contains(SearchKey) || order.Tel.Contains(SearchKey) || order.MerchantOrderNo.Contains(SearchKey)))
                         select new MyOrderModel
                {
                    CheckInDate = order.CheckIn,
                    CheckOutDate = order.CheckOut,
                    ID = order.ID,
                    MerchantOrderNo = order.MerchantOrderNo,
                    PaymentType = order.PaymentType,
                    PayStatus = (order.ExpireDate != null && order.Status == OrderType.Unpaid.ToString() && DateTime.Compare(order.ExpireDate.Value, Today) < 0) ? "超過繳款期限" :
                                (order.Status == OrderType.Paid.ToString() ? "付款完成" : (order.Status == OrderType.Expired.ToString() ? "超過繳款期限" : "未付款")),
                    RoomName = order.ProductName,
                    Created = order.Created
                }).ToList();
            }
            return(model);
        }
Ejemplo n.º 2
0
 public void Edit()
 {
     using (var db = new  MyAnythingEntities())
     {
         if (ID > 0)
         {
             var model = db.CodeFile.Where(o => o.ID == ID && o.ItemType == "Beds").FirstOrDefault();
             if (model != null)
             {
                 model.ItemDescription = ItemDescription;
                 model.ItemType        = ItemType;
                 model.Remark          = model.Remark;
                 model.ItemCode        = ItemCode;
                 model.Enabled         = model.Enabled;
                 model.TypeText        = model.TypeText;
                 db.SaveChanges();
             }
         }
         else
         {
             var model = new CodeFile();
             model.ItemDescription = ItemDescription;
             model.ItemType        = "Beds";
             model.Remark          = string.Empty;
             model.ItemCode        = ItemCode;
             model.Enabled         = true;
             model.TypeText        = "床型";
             db.CodeFile.Add(model);
             db.SaveChanges();
         }
     }
 }
Ejemplo n.º 3
0
        public void Edit()
        {
            using (var db = new MyAnythingEntities())
            {
                if (ID <= 0)
                {
                    db.Facility.Add(new Facility
                    {
                        Text        = Text,
                        Show        = Show,
                        Enabled     = Enabled,
                        Description = Description,
                        Created     = DateTime.Now
                    });
                }
                else
                {
                    var model = db.Facility.Find(ID);
                    model.Description = Description;
                    model.Enabled     = Enabled;
                    model.Show        = Show;
                    model.Text        = Text;
                }

                db.SaveChanges();
            }
        }
Ejemplo n.º 4
0
 public HotelCreateViewModel()
 {
     if (db == null)
     {
         db = new MyAnythingEntities();
     }
 }
Ejemplo n.º 5
0
        public void UpdateBonus()
        {
            var Today         = DateTime.Now;
            var CanUserStatus = BonusStatusEnum.CanUse.ToString();
            var db            = new MyAnythingEntities();

            var CanUserModel = db.MyBonus.Where(o => (o.UseMonth.Year == Today.Year && o.UseMonth.Month == Today.Month) && o.BonusStatus != CanUserStatus).ToList();

            if (CanUserModel != null && CanUserModel.Count > 0)
            {
                foreach (var item in CanUserModel)
                {
                    item.BonusStatus = CanUserStatus;
                }
                db.SaveChanges();
            }



            var unPaid       = OrderType.Unpaid.ToString();
            var ExpiredOrder = db.OrderMaster.Where(o => o.Status == unPaid &&
                                                    (o.ExpireDate == null || DateTime.Compare(o.ExpireDate.Value, Today) < 0)).ToList();

            if (ExpiredOrder != null && ExpiredOrder.Count > 0)
            {
                foreach (var item in ExpiredOrder)
                {
                    item.Status = OrderType.Expired.ToString();
                }
                db.SaveChanges();
            }

            db.Dispose();
        }
Ejemplo n.º 6
0
    public decimal CurrentAmt(int RoomId)
    {
        var      _db       = new MyAnythingEntities();
        decimal  amt       = 0;
        DateTime BeginDate = DateTime.MinValue;
        DateTime EndDate   = DateTime.MinValue;
        var      Now       = DateTime.Now;
        var      Current   = HttpContext.Current;

        HttpContext.Current.Session["CheckInDate"]  = Now.AddDays(1);
        HttpContext.Current.Session["CheckOutDate"] = Now.AddDays(2);
        if (Current.Session["CheckInDate"] == null || Current.Session["CheckOutDate"] == null)
        {
            BeginDate = Now.AddDays(1);
            EndDate   = Now.AddDays(2);
        }
        else
        {
            BeginDate = DateTime.Parse(Current.Session["CheckInDate"].ToString());
            EndDate   = DateTime.Parse(Current.Session["CheckOutDate"].ToString());
        }

        var day = ((int)BeginDate.DayOfWeek).ToString();

        if (day == "5" || day == "6")
        {
            var Room    = _db.Room.Find(RoomId);
            var RoomAmt = _db.RoomPrice.Where(o => (o.Date.Year == BeginDate.Year && o.Date.Month == BeginDate.Month && o.Date.Day == BeginDate.Day) &&
                                              o.ROOMID == Room.ID).FirstOrDefault();
            if (RoomAmt == null)
            {
                return(Room.HolidayPrice);
            }
            else
            {
                var PriceType = 99;
                int.TryParse(RoomAmt.DayType, out PriceType);
                amt = AmtFromRoomPrice(PriceType, Room);
            }
        }
        else
        {
            var Room    = _db.Room.Find(RoomId);
            var RoomAmt = _db.RoomPrice.Where(o => (o.Date.Year == BeginDate.Year && o.Date.Month == BeginDate.Month && o.Date.Day == BeginDate.Day) &&
                                              o.ROOMID == Room.ID).FirstOrDefault();
            if (RoomAmt == null)
            {
                return(Room.DayPrice);
            }
            else
            {
                var PriceType = 99;
                int.TryParse(RoomAmt.DayType, out PriceType);
                amt = AmtFromRoomPrice(PriceType, Room);
            }
        }
        return(amt);
    }
Ejemplo n.º 7
0
        public ScenicModel()
        {
            if (_db == null)
            {
                _db = new MyAnythingEntities();
            }

            Scenic();
        }
Ejemplo n.º 8
0
        public FacilityModel()
        {
            if (_db == null)
            {
                _db = new MyAnythingEntities();
            }

            Facility();
        }
Ejemplo n.º 9
0
        public HttpResponseMessage RoomPriceSave(List <CalendarPost> data)
        {
            var db = new MyAnythingEntities();
            HttpResponseMessage response = new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(JsonConvert.SerializeObject(new { message = "ok" }))
            };

            if (data.Count <= 0)
            {
                return(response);
            }

            var CreateModel = new List <RoomPrice>();

            try
            {
                foreach (var item in data)
                {
                    if (db.RoomPrice.Any(o => o.Date == item.date && o.ROOMID == item.RoomID))
                    {
                        var obj = db.RoomPrice.Where(o => o.Date == item.date && o.ROOMID == item.RoomID).FirstOrDefault();
                        obj.ROOMID  = item.RoomID;
                        obj.Date    = item.date;
                        obj.DayType = item.daytype;
                        obj.DayText = item.daytext;
                    }
                    else
                    {
                        db.RoomPrice.Add(new RoomPrice
                        {
                            DayText = item.daytext,
                            DayType = item.daytype,
                            Date    = item.date,
                            ROOMID  = item.RoomID
                        });
                    }
                }

                db.SaveChanges();
            }
            catch (Exception ex)
            {
                response = new HttpResponseMessage()
                {
                    StatusCode = HttpStatusCode.NotFound,
                    Content    = new StringContent(JsonConvert.SerializeObject(new { message = ex.Message.ToString() }))
                };

                return(response);
            }


            return(response);
        }
Ejemplo n.º 10
0
 public List <BedTypeModel> Query()
 {
     using (var db = new MyAnythingEntities())
     {
         var model = db.CodeFile.Where(o => o.ItemType == "Beds").Select(o => new BedTypeModel {
             ID              = o.ID,
             ItemCode        = o.ItemCode,
             ItemDescription = o.ItemDescription
         }).ToList();
         return(model);
     }
 }
Ejemplo n.º 11
0
        public BonusNoticeViewModel Query()
        {
            var ItemType = "BonusNoticeFor25date";

            using (var db = new MyAnythingEntities()){
                var model = db.SystemField.Where(o => o.ItemType == ItemType).Select(o => new BonusNoticeViewModel {
                    ItemDescription = o.ItemDescription,
                    ItemValue       = o.ItemValue
                }).FirstOrDefault();
                return(model);
            }

            //return string.Empty;
        }
Ejemplo n.º 12
0
        public void Edit25date()
        {
            var ItemType = "BonusNoticeFor25date";

            using (var db = new MyAnythingEntities())
            {
                var model = db.SystemField.Where(o => o.ItemType == ItemType).FirstOrDefault();
                model.ItemValue       = ItemValue;
                model.ItemDescription = ItemDescription;
                model.Modified        = DateTime.Now;
                model.Modify          = Modify;
                db.SaveChanges();
            }
        }
Ejemplo n.º 13
0
        public BedTypeModel Single(int id)
        {
            var model = new BedTypeModel();

            using (var db = new MyAnythingEntities())
            {
                model = db.CodeFile.Where(o => o.ItemType == "Beds" && o.ID == id).Select(o => new BedTypeModel
                {
                    ID              = o.ID,
                    ItemCode        = o.ItemCode,
                    ItemDescription = o.ItemDescription
                }).FirstOrDefault();
            }
            return(model);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 更新繳費期限過期的訂單
        /// </summary>
        public void UpdateExpired()
        {
            var unPaid = OrderType.Unpaid.ToString();

            using (var db = new MyAnythingEntities())
            {
                var Today        = DateTime.Now;
                var ExpiredOrder = db.OrderMaster.Where(o => o.Status == unPaid && (o.ExpireDate.Value.Year >= Today.Year && o.ExpireDate.Value.Month >= Today.Month && o.ExpireDate.Value.Date >= Today.Date)).ToList();
                if (ExpiredOrder != null && ExpiredOrder.Count > 0)
                {
                    foreach (var item in ExpiredOrder)
                    {
                        item.Status = OrderType.Expired.ToString();
                    }
                    db.SaveChanges();
                }
            }
        }
Ejemplo n.º 15
0
        public List <FacilityViewModel> Query()
        {
            var model = new List <FacilityViewModel>();

            using (var db = new MyAnythingEntities())
            {
                model = db.Facility.Select(o => new FacilityViewModel
                {
                    Created     = o.Created.Value,
                    Description = o.Description,
                    Enabled     = o.Enabled,
                    ID          = o.ID,
                    Show        = o.Show.Value,
                    Text        = o.Text
                }).ToList();
            }
            return(model);
        }
Ejemplo n.º 16
0
        public void ExpireDate()
        {
            var Today        = DateTime.Now;
            var db           = new MyAnythingEntities();
            var unPaid       = OrderType.Unpaid.ToString();
            var ExpiredOrder = db.OrderMaster.Where(o => o.Status == unPaid &&
                                                    (o.ExpireDate == null || DateTime.Compare(o.ExpireDate.Value, Today) < 0)).ToList();

            if (ExpiredOrder != null && ExpiredOrder.Count > 0)
            {
                foreach (var item in ExpiredOrder)
                {
                    item.Status = OrderType.Expired.ToString();
                }
                db.SaveChanges();
            }

            db.Dispose();
        }
Ejemplo n.º 17
0
        public void Edit()
        {
            using (var db = new MyAnythingEntities())
            {
                var model         = db.SystemField.Where(o => o.ItemCode == "BS").ToList();
                var TotalFeeModel = model.Where(o => o.ItemType == "TotalFee").FirstOrDefault();
                TotalFeeModel.ItemValue = TotalFee;
                var BuyFeeModel = model.Where(o => o.ItemType == "BuyFee").FirstOrDefault();
                BuyFeeModel.ItemValue = BuyFee;
                var UpperFeeModel = model.Where(o => o.ItemType == "UpperFee").FirstOrDefault();
                UpperFeeModel.ItemValue = UpperFee;
                var MinLimitAmtModel = model.Where(o => o.ItemType == "MinLimitAmt").FirstOrDefault();
                MinLimitAmtModel.ItemValue = MinLimitAmt;
                var HotelPromoFeeModel = model.Where(o => o.ItemType == "HotelPromoFee").FirstOrDefault();
                HotelPromoFeeModel.ItemValue = HotelPromoFee;

                db.SaveChanges();
            }
        }
Ejemplo n.º 18
0
        public BonusForSysModel Query()
        {
            var Result = new BonusForSysModel();

            using (var db = new MyAnythingEntities())
            {
                var model         = db.SystemField.Where(o => o.ItemCode == "BS").ToList();
                var TotalFeeModel = model.Where(o => o.ItemType == "TotalFee").FirstOrDefault().ItemValue;
                Result.TotalFee = TotalFeeModel;
                var BuyFeeModel = model.Where(o => o.ItemType == "BuyFee").FirstOrDefault().ItemValue;
                Result.BuyFee = BuyFeeModel;
                var UpperFeeModel = model.Where(o => o.ItemType == "UpperFee").FirstOrDefault().ItemValue;
                Result.UpperFee = UpperFeeModel;
                var HotelPromoFeeModel = model.Where(o => o.ItemType == "HotelPromoFee").FirstOrDefault().ItemValue;
                Result.HotelPromoFee = HotelPromoFeeModel;
                var MinLimitAmtModel = model.Where(o => o.ItemType == "MinLimitAmt").FirstOrDefault().ItemValue;
                Result.MinLimitAmt = MinLimitAmtModel;
            }
            return(Result);
        }
Ejemplo n.º 19
0
        public void Edit()
        {
            var PersonBed = new List <int>();

            RoomBed = string.Join(",", PersonBed);
            using (var db = new MyAnythingEntities())
            {
                var result = db.Room.Find(ID);
                result.HotelId      = HotelId;
                result.Notice       = Notice;
                result.Modified     = DateTime.Now;
                result.Modify       = Creator;
                result.Name         = Name;
                result.FixedPrice   = FixedPrice;
                result.HolidayPrice = HolidayPrice;
                result.DayPrice     = DayPrice;
                result.Quantity     = Quantity;
                result.MaxPerson    = MaxPerson;
                result.Enabled      = Enabled;
                result.RoomType     = RoomType;
                result.BedAmount    = BedAmount;
                result.BedType      = BedType;
                result.Feature      = string.IsNullOrEmpty(Feature) ? string.Empty :Feature;
                result.HasBreakfast = HasBreakfast;


                result.ID = ID;

                //db.SaveChanges();

                var RoomImage = RoomImages();
                foreach (var img in RoomImage)
                {
                    img.RoomId = result.ID;
                }
                db.RoomImage.AddRange(RoomImage);
                db.SaveChanges();
            }
        }
Ejemplo n.º 20
0
        public void Create()
        {
            using (var db = new MyAnythingEntities())
            {
                var UsedBonus = db.Bonus.Where(o => o.MerchantOrderNo == MerchantOrderNo).FirstOrDefault();
                if (UsedBonus != null)
                {
                    UsedBonus.Status = "active";
                    db.SaveChanges();
                }

                var    Bonus    = db.SystemField.Where(o => o.ItemCode == "BS").ToList();
                var    TotalFee = Bonus.Where(o => o.ItemType == "TotalFee").FirstOrDefault();
                double Total    = 0;
                if (TotalFee != null)
                {
                    Total = double.Parse(TotalFee.ItemValue);
                }

                var    BuyFee = Bonus.Where(o => o.ItemType == "BuyFee").FirstOrDefault();
                double Buy    = 0;
                if (BuyFee != null)
                {
                    Buy = double.Parse(BuyFee.ItemValue);
                }



                var    HotelPromo = Bonus.Where(o => o.ItemType == "HotelPromoFee").FirstOrDefault();
                double Hotel      = 0;
                if (HotelPromo != null)
                {
                    Hotel = double.Parse(HotelPromo.ItemValue);
                }

                var    UpperUser = Bonus.Where(o => o.ItemType == "UpperFee").FirstOrDefault();
                double Upper     = 0;
                if (UpperUser != null)
                {
                    Upper = double.Parse(UpperUser.ItemValue);
                }

                var    AmtMinLimit = Bonus.Where(o => o.ItemType == "MinLimitAmt").FirstOrDefault();
                double MinAmt      = 0;
                if (AmtMinLimit != null)
                {
                    MinAmt = double.Parse(AmtMinLimit.ItemValue);
                }

                //平台總比例裡的5%為發送的部分
                var TotalPercent = 0.5;
                //發送金額 = 訂單金額 * 總比例(13.5)*0.01
                var TotalAmt = ((double)OrderAmt * (Total * 0.01)) * TotalPercent;
                //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("TotalAmt1:{0}", Total*0.01) });
                //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("TotalAmt:{0}",TotalAmt) });
                //消費帳號紅利 = 發送金額 * 0.3
                var BuyAmt = Math.Floor(TotalAmt * (Buy * 0.01));
                //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("BuyAmt1:{0}", Buy * 0.01) });
                //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("BuyAmt:{0}", BuyAmt) });
                //民宿推薦帳號紅利 = 發送金額 * 0.05
                var HotelAmt = Math.Floor(TotalAmt * (Hotel * 0.01));
                //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("HotelAmt1:{0}", Hotel * 0.01) });
                //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("HotelAmt:{0}", HotelAmt) });
                //上線平均紅利 = (發送金額 * 0.3)/6
                var UpperAmt = Math.Floor((TotalAmt * (Upper * 0.01)) / 6);
                //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("HotelAmt1:{0}", Upper * 0.01) });
                //db.TEST.Add(new TEST { Created = DateTime.Now, Message = string.Format("UpperAmt:{0}", UpperAmt) });

                var LimitAmt = MinAmt;


                var Today = DateTime.Now;

                var NextMonth = Today.AddMonths(1);
                db.TEST.Add(new TEST {
                    Created = Today, Message = NextMonth.ToString()
                });
                db.SaveChanges();

                var HotelRecommandID = 0;
                //更新付款狀態為已付款
                var Order = db.OrderMaster.Where(o => o.MerchantOrderNo == MerchantOrderNo).FirstOrDefault();
                if (Order != null)
                {
                    Order.Status = OrderType.Paid.ToString();
                    var Room = db.Room.Find(Order.ProductId);
                    using (var _db = new ApplicationDbContext())
                    {
                        var user = _db.Users.Where(o => o.Id == Room.Hotel.UserId).FirstOrDefault();
                        if (user != null && !string.IsNullOrEmpty(user.Recommend))
                        {
                            var Recommand = _db.Users.Where(o => o.UserCode == user.Recommend).FirstOrDefault();
                            if (Recommand != null)
                            {
                                HotelRecommandID = Recommand.Id;
                            }
                        }
                    }
                }

                db.MyBonus.Add(new MyBonus
                {
                    AmtMinLimit     = (int)MinAmt,
                    Bonus           = (decimal)BuyAmt,
                    Created         = Today,
                    OrderAmt        = OrderAmt.Value,
                    OrderID         = OrderID.Value,
                    PayTime         = PayTime.Value,
                    PayStatus       = Status,
                    UseMonth        = NextMonth,
                    UserID          = UserID.Value,
                    MerchantOrderNo = MerchantOrderNo,
                    ParentID        = 0,
                    BonusType       = BonusTypeEnum.Purchasing.ToString(),
                    BonusStatus     = BonusStatusEnum.CanUse.ToString(),
                    Notified        = false
                });

                if (HotelRecommandID > 0)
                {
                    db.MyBonus.Add(new MyBonus
                    {
                        AmtMinLimit     = (int)MinAmt,
                        Bonus           = (decimal)HotelAmt,
                        Created         = Today,
                        OrderAmt        = OrderAmt.Value,
                        OrderID         = OrderID.Value,
                        PayTime         = PayTime.Value,
                        PayStatus       = Status,
                        UseMonth        = NextMonth,
                        UserID          = HotelRecommandID,
                        MerchantOrderNo = MerchantOrderNo,
                        ParentID        = 0,
                        BonusType       = BonusTypeEnum.HotelRecomend.ToString(),
                        BonusStatus     = BonusStatusEnum.CurrentBonus.ToString(),
                        Notified        = false
                    });
                }


                var UpperUsers = new UpperUserModel().GETUpperUserList(Order.UserId.Value);
                var avgAmt     = UpperAmt;
                foreach (var item in UpperUsers)
                {
                    db.MyBonus.Add(new MyBonus
                    {
                        AmtMinLimit     = (int)MinAmt,
                        Bonus           = (decimal)avgAmt,
                        Created         = Today,
                        OrderAmt        = OrderAmt.Value,
                        OrderID         = OrderID.Value,
                        PayTime         = PayTime.Value,
                        PayStatus       = Status,
                        UseMonth        = NextMonth,
                        UserID          = item.ID,
                        MerchantOrderNo = MerchantOrderNo,
                        ParentID        = 0,
                        BonusType       = BonusTypeEnum.Recommend.ToString(),
                        BonusStatus     = BonusStatusEnum.CurrentBonus.ToString(),
                        Notified        = false
                    });
                }

                db.SaveChanges();
            }
            //UpdateExpired();
        }
Ejemplo n.º 21
0
 public Caches() : base()
 {
     _db   = new MyAnythingEntities();
     Cache = MemoryCache.Default;
 }
Ejemplo n.º 22
0
        public List <CalendarEvent> HotelImageUpload(int id)
        {
            var db    = new MyAnythingEntities();
            var Now   = DateTime.Now;
            var Begin = Now.AddDays(1);
            var End   = Now.AddMonths(1);

            List <CalendarEvent> Events = new List <CalendarEvent>();


            Events = (from room in db.RoomPrice
                      where room.ROOMID == id
                      select new CalendarEvent
            {
                Start = room.Date,
                End = room.Date,
                DayText = room.DayText,
                DayType = room.DayType
            }).ToList();

            DateTime             epoc   = new DateTime(1970, 1, 1);
            List <CalendarEvent> events = new List <CalendarEvent>();

            if (Events == null || Events.Count <= 0)
            {
                for (var date = Begin; date < End; date = date.AddDays(1.0))
                {
                    var beginDay = DateTime.Parse(date.ToShortDateString());
                    var endDay   = DateTime.Parse(date.ToShortDateString());
                    events.Add(new CalendarEvent
                    {
                        Title   = "Event" + id.ToString(),
                        Start   = beginDay,
                        End     = endDay,
                        DayType = "0"
                    });
                }
            }
            else
            {
                for (var date = Begin; date < End; date = date.AddDays(1.0))
                {
                    var beginDay = DateTime.Parse(date.ToShortDateString());
                    var endDay   = DateTime.Parse(date.ToShortDateString());


                    var DayType = "0";
                    var Current = Events.Where(o => o.Start == beginDay).FirstOrDefault();
                    if (Current != null)
                    {
                        DayType = Current.DayType;
                    }
                    else
                    {
                        DayType = "0";
                    }
                    events.Add(new CalendarEvent
                    {
                        Title   = "Event" + id.ToString(),
                        Start   = beginDay,
                        End     = endDay,
                        DayType = DayType
                    });
                }
            }
            return(events);
        }
Ejemplo n.º 23
0
 public ImageHandle()
     : base()
 {
     _db = new MyAnythingEntities();
 }
Ejemplo n.º 24
0
 public ImageUploadController()
     : base()
 {
     db         = new MyAnythingEntities();
     UserFolder = System.Configuration.ConfigurationManager.AppSettings["UserFolder"];
 }
Ejemplo n.º 25
0
 public CodeFiles()
 {
     _db = new MyAnythingEntities();
 }
Ejemplo n.º 26
0
 public BaseController()
     : base()
 {
     _db = new MyAnythingEntities();
 }
Ejemplo n.º 27
0
        public AccountingMasterViewModel Query(AccountingSearchModel search = null)
        {
            var MasterModel = new AccountingMasterViewModel();
            var Today       = DateTime.Now;
            var BeginDate   = (search == null || string.IsNullOrEmpty(search.BeginDate) || DateTime.Parse(search.BeginDate) <= DateTime.MinValue) ? Today.ToString("yyyy-MM-01") : search.BeginDate;
            var EndDate     = (search == null || string.IsNullOrEmpty(search.EndDate) || DateTime.Parse(search.EndDate) <= DateTime.MinValue) ? (DateTime.Parse(Today.ToString("yyyy-MM") + "-" + DateTime.DaysInMonth(Today.Year, Today.Month).ToString()).AddSeconds(-1)).ToString() : search.EndDate;

            var BeginDateOfSearch = DateTime.Parse(BeginDate);
            var EndDateOfSearch   = DateTime.Parse(EndDate);

            using (var db = new MyAnythingEntities())
            {
                var model = (from hotel in db.Hotel
                             join
                             room in db.Room
                             on hotel.ID equals room.HotelId
                             join order in db.OrderMaster
                             on room.ID equals order.ProductId
                             join pay in db.PayGo on order.MerchantOrderNo equals pay.MerchantOrderNo
                             where (order.Created >= BeginDateOfSearch && order.Created <= EndDateOfSearch) &&
                             (UserId <= 0 || hotel.UserId == UserId) &&
                             ((string.IsNullOrEmpty(search.Status) || search.Status.ToLower().Trim().Equals("none")) || order.Status == search.Status) &&
                             (string.IsNullOrEmpty(search.Keyword) || hotel.Name.Contains(search.Keyword) || room.Name.Contains(search.Keyword)) &&
                             (search.HotelId == 0 || search.HotelId == hotel.ID)
                             select new AccountingViewModel
                {
                    ID = order.ID,
                    Paid = order.PayAmt,
                    Bonus = order.BonusAmt,
                    HotelName = hotel.Name,
                    Income = order.PayAmt - order.BonusAmt,
                    OrderDate = order.Created,
                    OrderId = order.MerchantOrderNo,
                    Quantity = order.Quantity,
                    RoomName = room.Name,
                    Status = order.Status,
                    Amount = order.Amount,
                }).ToList();

                MasterModel.Accounting = model;

                MasterModel.IncomeTotal = model.Sum(o => o.Income).ToString("#,##0");
                MasterModel.AmoutTotal  = model.Sum(o => o.Amount).ToString("#,##0");
                var AccountingExcel = (from hotel in db.Hotel
                                       join
                                       room in db.Room
                                       on hotel.ID equals room.HotelId
                                       join order in db.OrderMaster
                                       on room.ID equals order.ProductId
                                       join pay in db.PayGo on order.MerchantOrderNo equals pay.MerchantOrderNo
                                       where (order.Created >= BeginDateOfSearch && order.Created <= EndDateOfSearch) &&
                                       (UserId <= 0 || hotel.UserId == UserId) &&
                                       ((string.IsNullOrEmpty(search.Status) || search.Status.ToLower().Trim().Equals("none")) || order.Status == search.Status) &&
                                       (string.IsNullOrEmpty(search.Keyword) || hotel.Name.Contains(search.Keyword) || room.Name.Contains(search.Keyword)) &&
                                       (search.HotelId == 0 || search.HotelId == hotel.ID)
                                       select new AccountingExcelModel
                {
                    訂單編號 = order.MerchantOrderNo,
                    訂單日期 = order.Created.ToString(),
                    旅館 = hotel.Name,
                    房型 = room.Name,
                    住址 = hotel.Address,
                    付款方式 = order.PaymentType,
                    付款日期 = pay.PayTime.ToString(),
                    付款狀態 = order.Status,
                    消費使用紅利抵扣金額 = order.BonusAmt,
                    消費金額 = order.Amount,
                    業者實收金額 = pay.Amt,
                    電話 = hotel.Tel,
                    實付金額 = (order.Amount - order.BonusAmt),
                    付款訊息 = pay.Message
                }).ToList();
                HttpContext.Current.Session["AccountingExcel"] = AccountingExcel;
                return(MasterModel);
            }
        }
Ejemplo n.º 28
0
        public List <HotelsViewModel> GetHotels(HotelSearchViewModel model)
        {
            if (model.Facility == null)
            {
                model.Facility = new List <string>();
            }



            if (model.Scenic == null)
            {
                model.Scenic = new List <string>();
            }


            var _db    = new MyAnythingEntities();
            var result = new List <HotelsViewModel>();
            var take   = (string.IsNullOrEmpty(model.Price) && model.Facility.Count <= 0) ? 30 : 300;

            if (model == null || model.BeginDate == DateTime.MinValue)
            {
                model.BeginDate = DateTime.Now;
            }

            var MinPrice = 0;
            var MaxPrice = 0;

            #region ## 價格區間
            switch (model.Price)
            {
            case "1":
                MinPrice = 0;
                MaxPrice = 999;
                break;

            case "2":
                MinPrice = 1000;
                MaxPrice = 1999;
                break;

            case "3":
                MinPrice = 2000;
                MaxPrice = 2999;
                break;

            case "4":
                MinPrice = 3000;
                MaxPrice = 3999;
                break;

            case "5":
                MinPrice = 4000;
                MaxPrice = 4999;
                break;

            case "6":
                MinPrice = 5000;
                MaxPrice = 9999999;
                break;
            }
            #endregion



            result = (from h in _db.Hotel
                      join city in _db.City
                      on h.City equals city.ID
                      join area in _db.Area
                      on h.Area equals area.ID
                      where h.Room.ToList().Count > 0 &&
                      (
                          (string.IsNullOrEmpty(model.Word) ||
                           (h.Name.Contains(model.Word))) &&
                          (model.City <= 0 || h.City == model.City) &&
                          (model.Facility.Count <= 0 || model.Facility.All(w => h.Facility.Contains(w))) &&
                          (model.Scenic.Count <= 0 || model.Scenic.All(w => h.Scenics.Contains(w)))

                      )
                      select new HotelsViewModel
            {
                ID = h.ID,
                Address = h.Address,
                Location = city.Name + area.Name,
                Name = h.Name,
                Feature = h.Feature,
                Images = h.HotelImage.ToList(),
                Facility = h.Facility,
                Scenic = h.Scenics
            }).OrderBy(o => Guid.NewGuid()).Take(take).ToList();
            var RoomAmt  = new RoomAmt();
            var r_result = new List <HotelsViewModel>();
            foreach (var m in result)
            {
                var Amts  = new List <decimal>();
                var Rooms = _db.Room.Where(o => o.HotelId == m.ID).ToList();
                foreach (var item in Rooms)
                {
                    Amts.Add(RoomAmt.CurrentAmt(item.ID));
                }

                m.FixedPrice = Amts.Min();
            }


            _db.Dispose();

            if (!string.IsNullOrEmpty(model.Price))
            {
                result = result.Where(o => o.FixedPrice >= MinPrice && o.FixedPrice <= MaxPrice).Take(30).ToList();
            }
            return(result);
        }
Ejemplo n.º 29
0
        public void BonusNotice()
        {
            var Today = DateTime.Now;

            var CurrentDate = Today.ToString("dd");
            var Date        = "25";
            var NextDate    = "26";

            if (!CurrentDate.Equals(Date) && !CurrentDate.Equals(NextDate))
            {
                return;
            }
            var db            = new MyAnythingEntities();
            var unPaid        = OrderType.Unpaid.ToString();
            var Notice        = new BonusNoticeViewModel().QueryFor25Date();
            var NoticeContent = Notice.ItemDescription;
            var Notices       = db.MyBonus.Where(o => o.Notified == false &&
                                                 o.Created.Year == Today.Year &&
                                                 o.Created.Month == Today.Month).ToList();
            var result = db.MyBonus.GroupBy(o => o.UserID)
                         .Select(g => new { UserID = g.Key, total = g.Sum(i => i.Bonus) });

            var Noticed = new List <int>();

            foreach (var notice in Notices)
            {
                try {
                    if (Noticed == null || !Noticed.Any(o => o == notice.UserID))
                    {
                        var User = new ApplicationDbContext2().Users.Where(o => o.Id == notice.UserID).FirstOrDefault();

                        var UserOfSum = result.Where(o => o.UserID == notice.UserID).FirstOrDefault();
                        var Sum       = 0M;
                        if (UserOfSum != null)
                        {
                            Sum = UserOfSum.total;
                        }
                        if (User != null)
                        {
                            NoticeContent = NoticeContent.Replace("{{姓名}}", User.UserName);
                            NoticeContent = NoticeContent.Replace("{{當月份}}", notice.Created.Month.ToString());
                            NoticeContent = NoticeContent.Replace("{{使用月份}}", notice.UseMonth.Month.ToString());
                            NoticeContent = NoticeContent.Replace("{{總紅利}}", Sum.ToString("#.##0"));
                            NoticeContent = NoticeContent.Replace("{{紅利入帳需消費金額}}", notice.AmtMinLimit.ToString());
                        }

                        var From         = ConfigurationManager.AppSettings["From"];
                        var Password     = ConfigurationManager.AppSettings["SmtpPassword"];
                        var SmtpUserName = ConfigurationManager.AppSettings["SmtpUserName"];
                        var Port         = int.Parse(ConfigurationManager.AppSettings["SmtpPort"]);
                        var SmtpServer   = ConfigurationManager.AppSettings["SmtpServer"];

                        SmtpClient smtpClient = new SmtpClient(SmtpServer, Port);


                        smtpClient.Credentials = new System.Net.NetworkCredential(From, Password);
                        //smtpClient.UseDefaultCredentials = true;
                        smtpClient.EnableSsl = true;

                        MailMessage mail = new MailMessage();
                        mail.Body            = NoticeContent;
                        mail.Subject         = Notice.ItemValue;
                        mail.IsBodyHtml      = true;
                        mail.SubjectEncoding = System.Text.Encoding.UTF8;
                        mail.Priority        = MailPriority.Normal;
                        mail.From            = new MailAddress(From, SmtpUserName);
                        mail.To.Add(new MailAddress(User.Email));

                        smtpClient.Send(mail);
                        smtpClient = null;
                        mail.Dispose();

                        Noticed.Add(UserOfSum.UserID);
                    }
                }catch (Exception ex)
                {
                    db.SystemLog.Add(new SystemLog {
                        Created = DateTime.Now, Creator = "Sys", LogDescription = "紅利通知發送錯誤", LogValue = ex.Message.ToString(), LogCode = "Error", LogType = "Error", IP = string.Empty
                    });
                    db.SaveChanges();
                }
                finally
                {
                    foreach (var item in Notices)
                    {
                        item.Notified = true;
                        db.SaveChanges();
                    }
                }
            }
            db.Dispose();
        }
Ejemplo n.º 30
0
        public void PayOfFeedBack(string MerchantTradeNo)
        {
            List <string> enErrors   = new List <string>();
            Hashtable     htFeedback = null;



            try
            {
                using (AllInOne oPayment = new AllInOne())
                {
                    /* 服務參數 */
                    oPayment.ServiceMethod = HttpMethod.ServerPOST; // 或使用 HttpMethod.HttpSOAP;
                    oPayment.ServiceURL    = "https://payment.allpay.com.tw/Cashier/QueryTradeInfo/V2";
                    oPayment.HashKey       = HashKey;
                    oPayment.HashIV        = HashIV;
                    oPayment.MerchantID    = MerchantID;
                    /* 基本參數 */
                    oPayment.Query.MerchantTradeNo = MerchantTradeNo;
                    /* 查詢訂單 */
                    enErrors.AddRange(oPayment.QueryTradeInfo(ref htFeedback));
                }
                // 取回所有資料
                if (enErrors.Count() == 0)
                {
                    /* 查詢後的回傳的基本參數 */
                    string szMerchantID           = String.Empty;
                    string szMerchantTradeNo      = String.Empty;
                    string szTradeNo              = String.Empty;
                    string szTradeAmt             = String.Empty;
                    string szPaymentDate          = String.Empty;
                    string szPaymentType          = String.Empty;
                    string szHandlingCharge       = String.Empty;
                    string szPaymentTypeChargeFee = String.Empty;
                    string szTradeDate            = String.Empty;
                    string szTradeStatus          = String.Empty;

                    string szItemName = String.Empty;
                    /* 使用 WebATM 交易時,回傳的額外參數 */
                    string szWebATMAccBank = String.Empty;
                    string szWebATMAccNo   = String.Empty;
                    /* 使用 ATM 交易時,回傳的額外參數 */
                    string szATMAccBank = String.Empty;
                    string szATMAccNo   = String.Empty;
                    /* 使用 CVS 交易時,回傳的額外參數 */
                    string szPaymentNo = String.Empty;
                    string szPayFrom   = String.Empty;
                    /* 使用 Tenpay 交易時,回傳的額外參數 */
                    string szTenpayTradeNo = String.Empty;
                    /* 使用 Credit 交易時,回傳的額外參數 */
                    string szGwsr               = String.Empty;
                    string szProcessDate        = String.Empty;
                    string szAuthCode           = String.Empty;
                    string szAmount             = String.Empty;
                    string szStage              = String.Empty;
                    string szStast              = String.Empty;
                    string szStaed              = String.Empty;
                    string szECI                = String.Empty;
                    string szCard4No            = String.Empty;
                    string szCard6No            = String.Empty;
                    string szRedDan             = String.Empty;
                    string szRedDeAmt           = String.Empty;
                    string szRedOkAmt           = String.Empty;
                    string szRedYet             = String.Empty;
                    string szPeriodType         = String.Empty;
                    string szFrequency          = String.Empty;
                    string szExecTimes          = String.Empty;
                    string szPeriodAmount       = String.Empty;
                    string szTotalSuccessTimes  = String.Empty;
                    string szTotalSuccessAmount = String.Empty;
                    // 取得資料於畫面
                    foreach (string szKey in htFeedback.Keys)
                    {
                        switch (szKey)
                        {
                        /* 查詢後的回傳的基本參數 */
                        case "MerchantID": szMerchantID = htFeedback[szKey].ToString(); break;

                        case "MerchantTradeNo": szMerchantTradeNo = htFeedback[szKey].ToString(); break;

                        case "TradeNo": szTradeNo = htFeedback[szKey].ToString(); break;

                        case "TradeAmt": szTradeAmt = htFeedback[szKey].ToString(); break;

                        case "PaymentDate": szPaymentDate = htFeedback[szKey].ToString(); break;

                        case "PaymentType": szPaymentType = htFeedback[szKey].ToString(); break;

                        case "HandlingCharge": szHandlingCharge = htFeedback[szKey].ToString(); break;

                        case "PaymentTypeChargeFee": szPaymentTypeChargeFee = htFeedback[szKey].ToString(); break;

                        case "TradeDate": szTradeDate = htFeedback[szKey].ToString(); break;

                        case "TradeStatus": szTradeStatus = htFeedback[szKey].ToString(); break;

                        case "ItemName": szItemName = htFeedback[szKey].ToString(); break;

                        /* 使用 WebATM 交易時回傳的參數 */
                        case "WebATMAccBank": szWebATMAccBank = htFeedback[szKey].ToString(); break;

                        case "WebATMAccNo": szWebATMAccNo = htFeedback[szKey].ToString(); break;

                        /* 使用 ATM 交易時回傳的參數 */
                        case "ATMAccBank": szATMAccBank = htFeedback[szKey].ToString(); break;

                        case "ATMAccNo": szATMAccNo = htFeedback[szKey].ToString(); break;

                        /* 使用 CVS 交易時回傳的參數 */
                        case "PaymentNo": szPaymentNo = htFeedback[szKey].ToString(); break;

                        case "PayFrom": szPayFrom = htFeedback[szKey].ToString(); break;

                        /* 使用 Tenpay 交易時回傳的參數 */
                        case "TenpayTradeNo": szTenpayTradeNo = htFeedback[szKey].ToString(); break;

                        /* 使用 Credit 交易時回傳的參數 */
                        case "gwsr": szGwsr = htFeedback[szKey].ToString(); break;

                        case "process_date": szProcessDate = htFeedback[szKey].ToString(); break;

                        case "auth_code": szAuthCode = htFeedback[szKey].ToString(); break;

                        case "amount": szAmount = htFeedback[szKey].ToString(); break;

                        case "stage": szStage = htFeedback[szKey].ToString(); break;

                        case "stast": szStast = htFeedback[szKey].ToString(); break;

                        case "staed": szStaed = htFeedback[szKey].ToString(); break;

                        case "eci": szECI = htFeedback[szKey].ToString(); break;

                        case "card4no": szCard4No = htFeedback[szKey].ToString(); break;

                        case "card6no": szCard6No = htFeedback[szKey].ToString(); break;

                        case "red_dan": szRedDan = htFeedback[szKey].ToString(); break;

                        case "red_de_amt": szRedDeAmt = htFeedback[szKey].ToString(); break;

                        case "red_ok_amt": szRedOkAmt = htFeedback[szKey].ToString(); break;

                        case "red_yet": szRedYet = htFeedback[szKey].ToString(); break;

                        case "PeriodType": szPeriodType = htFeedback[szKey].ToString(); break;

                        case "Frequency": szFrequency = htFeedback[szKey].ToString(); break;

                        case "ExecTimes": szExecTimes = htFeedback[szKey].ToString(); break;

                        case "PeriodAmount": szPeriodAmount = htFeedback[szKey].ToString(); break;

                        case "TotalSuccessTimes": szTotalSuccessTimes = htFeedback[szKey].ToString(); break;

                        case "TotalSuccessAmount": szTotalSuccessAmount = htFeedback[szKey].ToString(); break;

                        default: break;
                        }
                    }

                    using (var db = new MyAnythingEntities())
                    {
                        var order = db.OrderMaster.Where(o => o.MerchantOrderNo == MerchantTradeNo).FirstOrDefault();
                        if (order != null)
                        {
                            order.TradeNo     = szTradeNo;
                            order.TradeStatus = szTradeStatus;
                            order.PaymentType = szPaymentType;
                            db.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                // 例外錯誤處理。
                enErrors.Add(ex.Message);
            }
            finally
            {
                // 顯示錯誤訊息。
                if (enErrors.Count() > 0)
                {
                    string szErrorMessage = String.Join("\\r\\n", enErrors);
                }
            }
        }