示例#1
0
        public object AddMember([FromBody] AddMemberRequest requestParams)
        {
            var dataAdapter = DataAdapterFactory.Factory(MachinesSettings.Mode, requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.DeviceSn);

            if (string.IsNullOrEmpty(requestParams.MemberNo))
            {
                var strStoreId = ("000" + requestParams.StoreId);
                strStoreId = strStoreId.Substring(strStoreId.Length - 2, 2);
                var    gangoutai = new int[] { 33, 34, 35 };
                string old       = dataAdapter.GetLastMemberNo();
                var    num       = "";
                if (!string.IsNullOrEmpty(old))
                {
                    num = old.Substring(old.Length - 6);
                }

                MemberNo mn = new MemberNo(requestParams.CID, requestParams.StoreId, num);

                if (gangoutai.Contains(requestParams.ProvinceID))
                {
                    requestParams.MemberNo = string.Format("2{0}{1}{2}", requestParams.CID.ToString("0000000"), strStoreId, mn.ToString());
                }
                else
                {
                    requestParams.MemberNo = string.Format("1{0}{1}{2}", requestParams.CID.ToString("0000000"), strStoreId, mn.ToString());
                }
            }
            if (string.IsNullOrEmpty(requestParams.CardNo))
            {
                throw new PosException("绑定会员卡号不能为空!");
            }
            if (string.IsNullOrEmpty(requestParams.RealName))
            {
                throw new PosException("姓名不能为空!");
            }
            if (string.IsNullOrEmpty(requestParams.MobilePhone))
            {
                throw new PosException("手机不能为空!");
            }
            dataAdapter.AddMember(new MemberDto()
            {
                Address         = requestParams.Address,
                Birthday        = requestParams.Birthday,
                CurrentCityId   = requestParams.CurrentCityId,
                Email           = requestParams.Email,
                MemberNo        = requestParams.MemberNo,
                Weixin          = requestParams.Weixin,
                Zhifubao        = requestParams.Zhifubao,
                MobilePhone     = requestParams.MobilePhone,
                RealName        = requestParams.RealName,
                Sex             = requestParams.Sex,
                ProvinceID      = requestParams.ProvinceID,
                CurrentCountyId = requestParams.CurrentCountyId,
                CardNo          = requestParams.CardNo,
                YaJin           = requestParams.YaJin
            });
            return(null);
        }
示例#2
0
        public override void Execute(PosStoreClient posStoreClient, PosStorePackageInfo package)
        {
            var      datas    = package.Read <MemberNoDto>();
            MemberNo memberNo = new MemberNo(datas.CompanyId, datas.StoreId);

            if (memberNo.GetNumber() <= datas.Number)
            {
                memberNo.Reset(datas.Number);
            }
            else
            {
                posStoreClient.SendObject(this.CmdCode, new MemberNoDto()
                {
                    CompanyId = memberNo.CompanyId, StoreId = memberNo.StoreId, Name = memberNo.Name, Number = memberNo.GetNumber(), SwiftNumberMode = memberNo.SwiftNumberMode
                });
            }
        }
示例#3
0
        public static void Sub()
        {
            new EventAggregator().Subscribe <SyncMemberNoEvent>("SyncMemberNoEventForServer", (o) =>
            {
                MemberNo memberNo = new MemberNo(o.CompanyId, o.StoreId);
                if (memberNo.GetNumber() < o.Number)
                {
                    memberNo.Reset(o.Number);
                }
            });

            new EventAggregator().Subscribe <SyncOnlineEvent>("SyncOnlineEventForServer", (o) =>
            {
                var cache = new OnlineCache();
                var key   = KeyFactory.MachineKeyFactory(o.CompanyToken, o.StoreId, o.MachineSn, o.DeviceSn);
                cache.Set(key, new MachineInformation()
                {
                    CashierName        = o.CashierName,
                    CashierOperateAuth = o.CashierOperateAuth,
                    CashierUid         = o.CashierUid,
                    CashierUserCode    = o.CashierUserCode,
                    CompanyToken       = o.CompanyToken,
                    DeviceSn           = o.DeviceSn,
                    InTestMode         = o.InTestMode,
                    MachineSn          = o.MachineSn,
                    StoreId            = o.StoreId,
                    StoreName          = o.StoreName
                });
            });

            new EventAggregator().Subscribe <SyncSerialNumberEvent>("SyncSerialNumberEventForServer", (o) =>
            {
                PaySn customOrderSn = new PaySn(o.CompanyToken, o.StoreId, o.MachineSn);
                if (customOrderSn.GetNumber() < o.Number)
                {
                    customOrderSn.ResetSerialNumber(o.Number);
                }
            });
        }
 public override void Excute(PosStoreServer server, PosStoreSession session, PosStoreRequestInfo requestInfo)
 {
     try
     {
         var      datas    = requestInfo.Read <MemberNoDto>();
         MemberNo memberNo = new MemberNo(datas.CompanyId, datas.StoreId);
         if (memberNo.GetNumber() <= datas.Number)
         {
             memberNo.Reset(datas.Number);
         }
         else
         {
             session.SendObject(this.CmdCode, new MemberNoDto()
             {
                 CompanyId = memberNo.CompanyId, StoreId = memberNo.StoreId, Name = memberNo.Name, Number = memberNo.GetNumber(), SwiftNumberMode = memberNo.SwiftNumberMode
             });
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
 }
示例#5
0
    public string Search(int report, int dateGroup, string staffId, int status, string keyword, string listPlayerIdIncidents)
    {
        Keyword = keyword;

        string reportStatus = "";

        switch (status) // set status for writing the select query
        {
        case 2:
            reportStatus = "%Completion%";
            break;

        case 3:
            reportStatus = "%Manager%";
            break;

        case 4:
            reportStatus = "%Further%";
            break;

        case 5:
            reportStatus = "%Completed%";
            break;
        }

        DateTime date1 = DateTime.Now.Date, date2 = DateTime.Now.Date; // used to hold Date Group values

        switch (dateGroup)                                             // set the date being filtered
        {
        case 2:
            date2 = DateTime.Now.Date.AddDays(-1);      // reports from yesterday
            break;

        case 3:
            date2 = DateTime.Now.Date.AddDays(-7);      // reports from last seven days
            break;

        case 4:
            date2 = DateTime.Now.Date.AddDays(-14);      // reports from last 14 days
            break;

        case 5:
            date2 = DateTime.Now.Date.AddDays(-30);      // reports from last month
            break;

        case 6:
            date2 = DateTime.Now.Date.AddDays(-365);      // reports from last year
            break;

        case 7:
            date2 = DateTime.Parse(StartDate);
            date1 = DateTime.Parse(EndDate);
            break;
        }

        string reportType = "";

        switch (report) // set the report type being filtered (take note that any changes from the group will create an error - MRReportsDutyManager)
        {
        case 2:
            reportType = "MR Incident Report";
            break;

        case 3:
            reportType = "MR Duty Managers";
            break;

        case 4:
            reportType = "MR Supervisors";
            break;

        case 5:
            reportType = "MR Function Supervisor";
            break;

        case 6:
            reportType = "MR Reception Supervisor";
            break;

        case 7:
            reportType = "MR Reception";
            break;

        case 8:
            reportType = "CU Duty Managers";
            break;

        case 9:
            reportType = "CU Reception";
            break;

        case 10:
            reportType = "CU Incident Report";
            break;
        }

        // check if user has entered a keyword to be filtered
        bool hasKeyword = true;

        if (keyword.Equals("0") || keyword.Equals("")) // check whether the keyword filter is empty
        {
            hasKeyword = false;                        // keyword filter is empty
        }

        // check if staff has filter
        bool hasStaffFilter = true;

        if (ArchivedStaff)
        {
            if (string.IsNullOrEmpty(staffId))
            {
                staffId = "SELECT StaffId FROM Staff WHERE Active=0";
            }
        }
        else if (string.IsNullOrEmpty(staffId)) // if there is no staff filter selected, populate staff list
        {
            staffId        = "SELECT StaffId FROM Staff";
            hasStaffFilter = false;
        }

        // check if selected staff filter is the user logged in
        bool isAuthor = true;

        if (!staffId.Equals(UserCredentials.StaffId))
        {
            isAuthor = false;
        }

        string selectQuery = "",
               startQuery  = "SELECT [ReportId], [ReportName], [StaffId], [StaffName], [ShiftName], [ShiftDate], [ShiftDOW], [Report_Table], [Report_Version], [ReportStat], [AuditVersion], [RowNum]" +
                             " FROM [View_Reports] WHERE [ReportName] ",
               startQuery1 = "SELECT [ReportId], [ReportName], [StaffId], [StaffName], [ShiftName], [ShiftDate], [ShiftDOW], [Report_Table], [Report_Version], [ReportStat], [AuditVersion], ROW_NUMBER() OVER(ORDER BY ShiftDate DESC, ShiftId DESC) RowNum" +
                             " FROM [View_Reports] WHERE ReportName ",
               reportIdQuery = "", dateQuery = "", statusQuery = "", unreadQuery = "", reportQuery = "", authorQuery = "", cuQuery = "", mrQuery = "",
               endQuery = "ORDER BY ShiftDate DESC, ShiftId DESC, RowNum";

        if (report == 1) // no report type filter
        {
            reportQuery = "IN ('" + UserCredentials.GroupsQuery + "') AND ";
        }
        else // has report type filter
        {
            reportQuery = "= '" + reportType + "' AND ";
        }

        if (string.IsNullOrWhiteSpace(ReportId))
        {
            reportIdQuery = " ";
        }
        else
        {
            reportIdQuery = "ReportId =" + ReportId + " AND ";
        }

        if (dateGroup != 1) // has date filter
        {
            dateQuery = "ShiftDate BETWEEN '" + date2.ToString("yyyy-MM-dd") + "' AND '" + date1.ToString("yyyy-MM-dd") + "' AND ";
        }
        else // no date filter
        {
            dateQuery = " ";
        }

        if (MROnly)
        {
            mrQuery = "[ReportName] LIKE '%MR%' AND ";
        }
        else
        {
            mrQuery = "";
        }

        if (CUOnly)
        {
            cuQuery = "[ReportName] LIKE '%CU%' AND ";
        }
        else
        {
            cuQuery = "";
        }

        if (status != 1) // has status filter
        {
            statusQuery = "[ReportStat] LIKE '" + reportStatus + "' AND ";
        }
        else // no status filter
        {
            statusQuery = " ";
        }

        if (!hasStaffFilter) // if staff filter is empty
        {
            authorQuery = "([ReportStat] = 'Report Completed' OR [ReportStat] = 'Further Action Required' OR [ReportStat] = 'Awaiting Manager Sign-off' OR ([ReportStat] = 'Awaiting Completion' AND [StaffId] = '" + UserCredentials.StaffId + "')) ";
        }
        else // has a staff filter
        {
            if (isAuthor)  // The user selected his ownself
            {
                authorQuery = "([ReportStat] = 'Report Completed' OR [ReportStat] = 'Further Action Required' OR [ReportStat] = 'Awaiting Manager Sign-off' OR ([ReportStat] = 'Awaiting Completion' AND [StaffId] = '" + UserCredentials.StaffId + "')) AND StaffId IN (" + staffId + ") ";
            }
            else //  // staff other than the user
            {
                authorQuery = "([ReportStat] = 'Report Completed' OR [ReportStat] = 'Further Action Required' OR [ReportStat] = 'Awaiting Manager Sign-off') AND StaffId IN (" + staffId + ") ";
            }
        }

        if (UnreadList && string.IsNullOrEmpty(ListPlayerIdIncidents)) // unread tickbox has been checked
        {
            unreadQuery = "AND ([ReadByList] NOT LIKE '%," + UserCredentials.StaffId + ",%' OR [ReadByList] IS NULL) AND ([ManagerSignId] NOT LIKE '%" + UserCredentials.StaffId + ",%' OR [ManagerSignId] IS NULL) ";
        }
        else // no unread list filter
        {
            unreadQuery = " ";
        }


        if (!hasKeyword && (WhatHappened.Equals("0") || string.IsNullOrEmpty(WhatHappened)) && (Location.Equals("0") || string.IsNullOrEmpty(Location)) &&
            (ActionTaken.Equals("0") || string.IsNullOrEmpty(ActionTaken)) && (MemberNo.Equals("0") || string.IsNullOrEmpty(MemberNo)) &&
            (FirstName.Equals("0") || string.IsNullOrEmpty(FirstName)) && (LastName.Equals("0") || string.IsNullOrEmpty(LastName)) &&
            (Alias.Equals("0") || string.IsNullOrEmpty(Alias)))    // if Keyword and advanced filters are empty
        {
            selectQuery = startQuery + reportQuery + reportIdQuery + dateQuery + mrQuery + cuQuery + statusQuery + authorQuery + unreadQuery + endQuery;
        }
        else // keyword filter and advanced filter has been entered
        {
            // run stored procedures
            SqlQuery sqlQuery = new SqlQuery();
            //if (!string.IsNullOrEmpty(listPlayerIdIncidents)) // run all the list of incidents for the selected player id
            //{
            //    sqlQuery.RetrieveData("Proc_ListPriorIncidents", "SearchKeyword");
            //}
            //else // no player id is selected, filter via keyword and report filters
            //{
            //    // set appropriate stored procedure (either Proc_KeywordSearchAllReports - any report other than Incidents ; Proc_KeywordSearchIncidentReports - Incidents ONLY)
            //    if (reportType.Contains("Incident"))
            //    {
            //        sqlQuery.RetrieveData("Proc_KeywordSearchIncidentReports", "SearchKeyword");
            //    }
            //    else
            //    {
            //        sqlQuery.RetrieveData("Proc_KeywordSearchAllReports", "SearchKeyword");
            //    }
            //}

            if (GlobalSearchId.Equals("")) // if no data retrieved, display an error message
            {
                return(selectQuery);
            }

            // take off the extra ', ' in Global Search Ids Variable
            int strLength = GlobalSearchId.Length;
            GlobalSearchId = GlobalSearchId.Remove(strLength - 2, 2);

            string keywordQuery = "AND [ReportId] IN (" + GlobalSearchId + ") ";
            GlobalSearchId        = ""; // to avoid this variable from getting appended
            ListPlayerIdIncidents = ""; // reset this variable to be reused again in searching incident reports related to player id selected

            selectQuery = startQuery1 + reportQuery + reportIdQuery + dateQuery + mrQuery + cuQuery + statusQuery + authorQuery + keywordQuery + unreadQuery + endQuery;
        }
        return(selectQuery);
    }