예제 #1
0
        /// <summary>
        /// Monitor Log 查询
        /// </summary>
        /// <param name="loggingSessionInfo">登录model</param>
        /// <param name="order_no">订单号</param>
        /// <param name="unit_code">门店</param>
        /// <param name="item_name">商品</param>
        /// <param name="order_date_begin">开始日期</param>
        /// <param name="order_date_end">结束日期</param>
        /// <param name="maxRowCount">每页数量</param>
        /// <param name="startRowIndex">开始行号</param>
        /// <returns></returns>
        public MonitorLogInfo SearchMonitorLogList(cPos.Model.LoggingSessionInfo loggingSessionInfo
                                                   , string customer_code
                                                   , string unit_code
                                                   , string date_begin
                                                   , string date_end
                                                   , int maxRowCount
                                                   , int startRowIndex
                                                   )
        {
            Hashtable ht = new Hashtable();

            ht["customer_code"] = customer_code;
            ht["unit_code"]     = unit_code;
            ht["date_begin"]    = date_begin;
            ht["date_end"]      = date_end;
            ht["StartRow"]      = startRowIndex;
            ht["EndRow"]        = startRowIndex + maxRowCount;

            MonitorLogInfo         obj  = new MonitorLogInfo();
            IList <MonitorLogInfo> list = new List <MonitorLogInfo>();

            list = MSSqlMapper.Instance(loggingSessionInfo.CurrentLoggingManager).QueryForList <MonitorLogInfo>(
                "Monitor.SearchMonitorLogList", ht);
            if (list != null && list.Count > 0)
            {
                obj.icount = list[0].icount;
            }
            obj.List = list;
            return(obj);
        }
예제 #2
0
        /// <summary>
        /// 连接
        /// </summary>
        /// <param name="loggingSession"></param>
        /// <param name="condition"></param>
        /// <returns></returns>
        protected string GenInsertUnitTemporaryTableSQL(cPos.Model.LoggingSessionInfo loggingSession,
                                                        cPos.Model.Unit.UnitQueryCondition condition)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("declare @tmp_unit table(unit_id varchar(32));");
            sb.AppendLine("insert into @tmp_unit");
            //表
            //sb.AppendLine("select a2.unit_id from t_unit_level a1, t_unit_level a2 ");
            //视图
            sb.AppendLine("select a2.unit_id from vw_unit_level a1, vw_unit_level a2 ");
            if (condition.SuperUnitIDs.Count == 0)
            {
                sb.Append(",(select distinct unit_id from t_user_role where ");
                sb.Append(string.Format(" user_id='{0}' ", loggingSession.CurrentUser.User_Id));
                sb.AppendLine(string.Format(" and role_id='{0}') a3 ", this.GetBasicRoleId(loggingSession.CurrentUserRole.RoleId)));
                sb.AppendLine("where a3.unit_id=a1.unit_id ");
            }
            else
            {
                sb.Append(string.Format("where (a1.unit_id='{0}' ", condition.SuperUnitIDs[0]));
                for (int i = 1; i < condition.SuperUnitIDs.Count; i++)
                {
                    sb.Append(string.Format("or a1.unit_id='{0}' ", condition.SuperUnitIDs[i]));
                }
                sb.AppendLine(")");
            }
            //表
            //sb.AppendLine(" and a2.path_unit_no like a1.path_unit_no + '%' ");
            //视图
            sb.AppendLine(" and a2.path_unit_id like a1.path_unit_id + '%' ");
            sb.AppendLine("group by a2.unit_id; ");

            return(sb.ToString());
        }
예제 #3
0
        /// <summary>
        /// 根据Customer_Id获取登录Model
        /// </summary>
        /// <param name="Customer_Id"></param>
        /// <returns></returns>
        public cPos.Model.LoggingSessionInfo GetLoggingSessionInfoByCustomerId(string Customer_Id)
        {
            var loggingSessionInfo = new cPos.Model.LoggingSessionInfo();

            //取连接
            var service  = new CustomerService();
            var cConnect = service.GetCustomerConnectByID(Customer_Id);

            if (cConnect == null)
            {
                return(null);
                //this.log(LogLevel.ERROR, FunctionName.WS_GET_LOGIN_USER_INFO, "CustomerConnect", "未找到");
                //this.log(LogLevel.INFO, FunctionName.WS_GET_LOGIN_USER_INFO, MessageType.RESULT, "");
                //return "";
            }

            //生成XML
            //var user = new cPos.Model.LoggingSessionInfo();
            //user.CurrentLoggingManager.Customer_Id = Customer_Id;
            //user.CustomerCode = cConnect.Customer.Code;
            //user.CustomerName = cConnect.Customer.Name;
            //user.ConnectionString = cConnect.DBConnectionString;
            //string s = XMLGenerator.Serialize(user);

            //LoggingManager loggingManagerInfo = new LoggingManager();
            //获取数据库连接字符串
            //cPos.WebServices.AuthManagerWebServices.AuthService AuthWebService = new cPos.WebServices.AuthManagerWebServices.AuthService();
            //AuthWebService.Url = System.Configuration.ConfigurationManager.AppSettings["sso_url"] + "/authservice.asmx";
            //this.Log(LogLevel.DEBUG, "BS", "", "", "url", AuthWebService.Url);
            //this.Log(LogLevel.DEBUG, "BS", "", "", "customer_id", Customer_Id);
            //string str = AuthWebService.GetCustomerDBConnectionString(Customer_Id);//"0b3b4d8b8caa4c71a7c201f53699afcc"

            //loggingManagerInfo = (LoggingManager)cXMLService.Deserialize(s, typeof(cPos.Model.LoggingManager));

            var user = new cPos.Model.LoggingManager();

            user.Customer_Id       = Customer_Id;
            user.Customer_Code     = cConnect.Customer.Code;
            user.Customer_Name     = cConnect.Customer.Name;
            user.Connection_String = cConnect.DBConnectionString;

            loggingSessionInfo.CurrentLoggingManager = user;
            //loggingManagerInfo.Customer_Id = Customer_Id;
            //loggingSessionInfo.CurrentLoggingManager.Connection_String = cConnect.DBConnectionString;
            return(loggingSessionInfo);
        }
예제 #4
0
 /// <summary>
 /// 根据单位的查询条件,将符合条件的单位的ID插入到临时表中
 /// </summary>
 /// <param name="sqlMap">数据库连接</param>
 /// <param name="loggingSession">当前登录的信息</param>
 /// <param name="condition">单位的查询条件</param>
 /// <returns></returns>
 protected void InsertUnitTemporaryTable(ISqlMapper sqlMap, cPos.Model.LoggingSessionInfo loggingSession,
                                         cPos.Model.Unit.UnitQueryCondition condition)
 {
     sqlMap.QueryForObject("Pos.Operate.InsertUnitTemporaryTable", this.GenInsertUnitTemporaryTableSQL(loggingSession, condition));
 }
예제 #5
0
 /// <summary>
 /// 分离当前角色ID(角色Id,单位Id)
 /// </summary>
 /// <param name="loggingSession"></param>
 /// <returns></returns>
 protected string GetBasicRoleId(cPos.Model.LoggingSessionInfo loggingSession)
 {
     string[] arr_role = loggingSession.CurrentUserRole.RoleId.Split(new char[] { ',' });
     return(arr_role[0]);
 }
예제 #6
0
        /// <summary>
        /// 获取单据号
        /// </summary>
        /// <param name="loggingSessionInfo">model</param>
        /// <param name="prefix">前缀</param>
        /// <returns></returns>
        public string GetNo(cPos.Model.LoggingSessionInfo loggingSessionInfo, string prefix)
        {
            Int64 val = MSSqlMapper.Instance().QueryForObject <Int64>("SysParameter.GetNo", null);

            return(prefix + val.ToString().PadLeft(8, '0'));
        }
예제 #7
0
        /// <summary>
        /// Mobile CCOrder保存
        /// </summary>
        /// <param name="orders">models</param>
        /// <param name="IsTrans">是否批处理</param>
        /// <returns>Hashtable:
        ///  status(成功:true, 失败:false)
        ///  error(错误描述)
        /// </returns>
        public Hashtable SaveMobileCCOrderList(bool IsTrans, IList <CCInfo> orders, string userId)
        {
            Hashtable ht = new Hashtable();

            ht["status"] = false;
            try
            {
                string                        error              = string.Empty;
                SkuService                    skuService         = new SkuService();
                ItemService                   itemService        = new ItemService();
                InoutService                  inoutService       = new InoutService();
                StockBalanceOrderService      stockService       = new StockBalanceOrderService();
                UnitService                   unitService        = new UnitService();
                cPos.Model.LoggingSessionInfo loggingSessionInfo = new cPos.Model.LoggingSessionInfo();
                loggingSessionInfo.CurrentUser         = new cPos.Model.User.UserInfo();
                loggingSessionInfo.CurrentUser.User_Id = userId;

                if (IsTrans)
                {
                    MSSqlMapper.Instance().BeginTransaction();
                }

                // 处理SKU
                bool exsitBarcode          = false;
                cPos.Model.SkuInfo skuInfo = null;
                foreach (var order in orders)
                {
                    order.order_type_id = "5F11A199E3CD42DE9CAE70442FC3D991"; // AJ
                    var unitInfo = unitService.GetUnitById(loggingSessionInfo, order.unit_id);
                    order.customer_id = unitInfo.customer_id;

                    if (order.CCDetailInfoList == null)
                    {
                        continue;
                    }
                    foreach (var orderDetail in order.CCDetailInfoList)
                    {
                        exsitBarcode = skuService.CheckBarcode(orderDetail.barcode, null);
                        if (!exsitBarcode)
                        {
                            cPos.Model.ItemInfo itemInfo = new cPos.Model.ItemInfo();
                            itemInfo.SkuList = new List <cPos.Model.SkuInfo>();
                            cPos.Model.SkuInfo newSkuInfo = new cPos.Model.SkuInfo();
                            newSkuInfo.sku_id           = orderDetail.sku_id;
                            newSkuInfo.barcode          = orderDetail.barcode;
                            newSkuInfo.status           = "1";
                            newSkuInfo.create_user_id   = orderDetail.create_user_id;
                            newSkuInfo.create_time      = orderDetail.create_time;
                            newSkuInfo.modify_user_id   = orderDetail.modify_user_id;
                            newSkuInfo.modify_time      = orderDetail.modify_time;
                            newSkuInfo.prop_1_detail_id = orderDetail.sku_prop_1_name;
                            newSkuInfo.prop_2_detail_id = orderDetail.sku_prop_2_name;
                            newSkuInfo.prop_3_detail_id = orderDetail.sku_prop_3_name;
                            newSkuInfo.prop_4_detail_id = orderDetail.sku_prop_4_name;
                            newSkuInfo.prop_5_detail_id = orderDetail.sku_prop_5_name;

                            // 商品
                            var itemListObj             = itemService.GetItemByCode(orderDetail.item_code);
                            cPos.Model.ItemInfo itemObj = new cPos.Model.ItemInfo();
                            if (itemListObj != null && itemListObj.Count > 0)
                            {
                                itemObj            = itemListObj[0];
                                newSkuInfo.item_id = itemObj.Item_Id;

                                if (itemObj.SkuList == null)
                                {
                                    itemObj.SkuList = new List <cPos.Model.SkuInfo>();
                                }
                                itemObj.SkuList.Add(newSkuInfo);
                                skuService.SetSkuInfo(itemObj, out error);
                            }
                            else
                            {
                                itemObj = new cPos.Model.ItemInfo();
                                itemObj.Item_Category_Id = "10e1e76ced9b45e1ac722d3e8b193419";
                                itemObj.Item_Id          = NewGUID();
                                itemObj.Item_Code        = orderDetail.item_code;
                                itemObj.Item_Name        = orderDetail.item_name;
                                itemObj.ifgifts          = 0;
                                itemObj.ifoften          = 0;
                                itemObj.ifservice        = 0;
                                itemObj.isGB             = 1;
                                itemObj.data_from        = "1";

                                // 价格
                                var skuPriceService  = new SkuPriceService();
                                var skuUnitPriceInfo = new cPos.Model.SkuUnitPriceInfo();
                                skuUnitPriceInfo.SkuUnitPriceInfoList = new List <cPos.Model.SkuUnitPriceInfo>();
                                if (orderDetail.enter_price != null &&
                                    orderDetail.enter_price.Trim().Length > 0)
                                {
                                    cPos.Model.SkuUnitPriceInfo unitPriceInfo = new cPos.Model.SkuUnitPriceInfo();
                                    unitPriceInfo.item_price_type_id = "12EDF2F0C5BE4FB2B4FE3ECE870FF723";
                                    unitPriceInfo.price             = Decimal.Parse(orderDetail.enter_price.Trim());
                                    unitPriceInfo.sku_unit_price_id = NewGuid();
                                    unitPriceInfo.sku_id            = orderDetail.sku_id;
                                    unitPriceInfo.unit_id           = order.unit_id;
                                    unitPriceInfo.status            = "1";
                                    unitPriceInfo.start_date        = "1900-01-01";
                                    unitPriceInfo.end_date          = "9999-12-31";
                                    unitPriceInfo.create_user_id    = userId;
                                    unitPriceInfo.create_time       = GetNow();
                                    skuUnitPriceInfo.SkuUnitPriceInfoList.Add(unitPriceInfo);
                                }
                                if (orderDetail.sales_price != null &&
                                    orderDetail.sales_price.Trim().Length > 0)
                                {
                                    cPos.Model.SkuUnitPriceInfo unitPriceInfo = new cPos.Model.SkuUnitPriceInfo();
                                    unitPriceInfo.item_price_type_id = "75412168A16C4D2296B92CA0E596A188";
                                    unitPriceInfo.price             = Decimal.Parse(orderDetail.sales_price.Trim());
                                    unitPriceInfo.sku_unit_price_id = NewGuid();
                                    unitPriceInfo.sku_id            = orderDetail.sku_id;
                                    unitPriceInfo.unit_id           = order.unit_id;
                                    unitPriceInfo.status            = "1";
                                    unitPriceInfo.start_date        = "1900-01-01";
                                    unitPriceInfo.end_date          = "9999-12-31";
                                    unitPriceInfo.create_user_id    = userId;
                                    unitPriceInfo.create_time       = GetNow();
                                    skuUnitPriceInfo.SkuUnitPriceInfoList.Add(unitPriceInfo);
                                }
                                skuPriceService.InsertOrUpdateSkuUnitPrice(false, skuUnitPriceInfo);

                                itemObj.SkuList    = new List <cPos.Model.SkuInfo>();
                                newSkuInfo.item_id = itemObj.Item_Id;
                                itemObj.SkuList.Add(newSkuInfo);

                                itemService.SetItemInfo(false, loggingSessionInfo, itemObj, out error);
                                orderDetail.sku_id = newSkuInfo.sku_id;
                            }
                        }
                        else
                        {
                            skuInfo            = skuService.GetSkuByBarcode(orderDetail.barcode);
                            orderDetail.sku_id = skuInfo.sku_id;
                        }
                    }
                }

                // 处理Order
                foreach (var order in orders)
                {
                    if (!CheckIsEndMobileCCOrder(order))
                    {
                        MSSqlMapper.Instance().Insert("CC.InsertAndUpdateMobileCCOrder", order);
                    }

                    // 获取仓库
                    var       warehouseObj = (new UnitService()).GetDefaultWarehouse(order.unit_id);
                    string    warehouseId  = warehouseObj == null ? "" : warehouseObj.warehouse_id;
                    Hashtable htStockId    = new Hashtable();
                    string    tmpStockId;

                    // 保存库存
                    foreach (var orderDetail in order.CCDetailInfoList)
                    {
                        cPos.Model.StockBalanceInfo stockInfo = new cPos.Model.StockBalanceInfo();

                        htStockId["unit_id"]      = order.unit_id;
                        htStockId["warehouse_id"] = warehouseId;
                        htStockId["sku_id"]       = orderDetail.sku_id;
                        tmpStockId = stockService.GetStockBalanceIdBySkuId(htStockId);
                        if (tmpStockId == null || tmpStockId.Trim().Length == 0)
                        {
                            tmpStockId = NewGUID();
                        }

                        stockInfo.stock_balance_id   = tmpStockId;
                        stockInfo.unit_id            = order.unit_id;
                        stockInfo.warehouse_id       = warehouseId;
                        stockInfo.sku_id             = orderDetail.sku_id;
                        stockInfo.begin_qty          = orderDetail.end_qty;
                        stockInfo.end_qty            = orderDetail.end_qty;
                        stockInfo.price              = orderDetail.enter_price == null ? 0 : Convert.ToDecimal(orderDetail.enter_price);
                        stockInfo.item_label_type_id = "522B623A30C243F2853AA34CD01B510B";
                        stockInfo.status             = "1";
                        stockInfo.create_time        = GetNow();
                        stockInfo.create_user_id     = order.create_user_id;

                        stockService.SaveStockBalance(stockInfo);
                    }
                }

                if (IsTrans)
                {
                    MSSqlMapper.Instance().CommitTransaction();
                }
                ht["status"] = true;
            }
            catch (Exception ex)
            {
                if (IsTrans)
                {
                    MSSqlMapper.Instance().RollBackTransaction();
                }
                throw (ex);
            }
            return(ht);
        }
예제 #8
0
        /// <summary>
        /// 同步行业版本菜单
        /// </summary>
        /// <param name="loggingSessionInfo">登录model</param>
        /// <param name="status">修改值</param>
        /// <returns></returns>
        public string SyncCustomerVersionMenu(cPos.Model.LoggingSessionInfo loggingSessionInfo, string vocaVerMappingID, string appID)
        {
            string strResult = string.Empty;
            var    sync_customermenu_startdate = System.Configuration.ConfigurationManager.AppSettings["sync_customermenu_startdate"];

            try
            {
                //
                var tmpLoggingSessionInfo = loggingSessionInfo;


                //tmpLoggingSessionInfo.CurrentLoggingManager.Connection_String
                var service      = new CustomerService();
                var customerList = service.SelectCustomerByVersionID(vocaVerMappingID);
                var versionMenus = GetMenuListByAppIDAndVersion(appID, vocaVerMappingID).OrderBy(obj => obj.DisplayIndex).ToArray();

                foreach (var customerinfo in customerList)
                {
                    if (!string.IsNullOrEmpty(sync_customermenu_startdate) && Convert.ToDateTime(sync_customermenu_startdate) > customerinfo.CreateTime)
                    {
                        continue;
                    }
                    //if (customerinfo.ID != "eb17cc2569c74ab7888b1f403972d37d")//测试
                    //{
                    //    continue;
                    //}
                    var tmpSession = this.GetLoggingSessionInfoByCustomerId(customerinfo.ID);
                    if (tmpSession == null)
                    {
                        strResult += "商户:" + customerinfo.ID + "数据源无效;\n";
                        continue;
                    }

                    var ht_select = new Hashtable();
                    ht_select.Add("CustomerID", customerinfo.ID);
                    ht_select.Add("AppID", appID);

                    var tran = MSSqlMapper.Instance(tmpSession.CurrentLoggingManager);                                             //访问商户库
                    var customer_menulist = tran.QueryForList <MenuInfo>("Right.Menu.GetMenuListByAppIDAndCustomerID", ht_select); //

                    try
                    {
                        tran.BeginTransaction();
                        foreach (var menuitem in versionMenus)
                        {
                            var tempmenu = customer_menulist.Where(t => t.ApplicationID == menuitem.ApplicationID && t.Code == menuitem.Code && t.CustomerID == customerinfo.ID && t.Status == 1).ToArray();

                            //test
                            //var test = customer_menulist.Where(t => t.ID == "7d021667cb7544c2b059c1c86c47cb65e9f21f7e022d4c72baf64c668b709f0e" && t.CustomerID == "e9f21f7e022d4c72baf64c668b709f0e").ToArray();
                            //if (test.Length >0)
                            //{
                            //    //continue;
                            //}

                            var _menu_id        = menuitem.ID + customerinfo.ID;
                            var _parent_menu_id = menuitem.ParentMenuID != "--" ? menuitem.ParentMenuID + customerinfo.ID : menuitem.ParentMenuID;

                            Hashtable ht_menu = new Hashtable();
                            ht_menu.Add("menu_id", _menu_id);
                            ht_menu.Add("reg_app_id", menuitem.ApplicationID);
                            ht_menu.Add("menu_code", menuitem.Code);
                            ht_menu.Add("parent_menu_id", _parent_menu_id);
                            ht_menu.Add("menu_level", menuitem.Level);
                            ht_menu.Add("url_path", menuitem.URLPath);
                            ht_menu.Add("icon_path", menuitem.IconPath);
                            ht_menu.Add("display_index", menuitem.DisplayIndex);
                            ht_menu.Add("menu_name", menuitem.Name);
                            ht_menu.Add("user_flag", menuitem.CustomerVisible);
                            ht_menu.Add("menu_eng_name", menuitem.EnglishName);
                            ht_menu.Add("IsCanAccess", menuitem.IsCanAccess);//菜单是否可操作
                            ht_menu.Add("status", menuitem.Status);
                            ht_menu.Add("create_user_id", loggingSessionInfo.CurrentLoggingManager.User_Id);
                            ht_menu.Add("create_time", GetDateTime(DateTime.Now));
                            ht_menu.Add("modify_user_id", loggingSessionInfo.CurrentLoggingManager.User_Id);
                            ht_menu.Add("modify_time", GetDateTime(DateTime.Now));
                            ht_menu.Add("customer_id", customerinfo.ID);

                            //插入
                            if (tempmenu.Length == 0)
                            {
                                var tempmenuinfo = customer_menulist.Where(t => t.ID == menuitem.ID + customerinfo.ID).ToArray().FirstOrDefault();
                                //根据菜单ID更新数据
                                if (tempmenuinfo != null)
                                {
                                    if (menuitem.Code != tempmenuinfo.Code || _parent_menu_id != tempmenuinfo.ParentMenuID || menuitem.ApplicationID != tempmenuinfo.ApplicationID ||
                                        menuitem.Name != tempmenuinfo.Name || menuitem.URLPath != tempmenuinfo.URLPath || menuitem.Status != tempmenuinfo.Status || menuitem.IsCanAccess != tempmenuinfo.IsCanAccess)
                                    {
                                        tran.Update("Right.Menu.UpdateCustomerMenuByMenuID", ht_menu);
                                    }
                                }
                                else
                                {
                                    tran.Insert("Right.Menu.InsertCustomerMenu", ht_menu);
                                }
                            }
                            else
                            {
                                //更新
                                if (tempmenu.Length > 1)
                                {
                                    MSSqlMapper.Instance(new cPos.Model.LoggingManager());
                                    return(customerinfo.Name + "(" + customerinfo.ID + "),找到" + tempmenu.Length + "条编码为(" + menuitem.Code + ")的菜单记录,请联系管理员修正后再进行同步。\n");
                                }

                                //相同数据不用更新
                                var tempmenuinfo = tempmenu.ToArray().FirstOrDefault();
                                if (menuitem.Code != tempmenuinfo.Code || _parent_menu_id != tempmenuinfo.ParentMenuID || menuitem.ApplicationID != tempmenuinfo.ApplicationID ||
                                    menuitem.Name != tempmenuinfo.Name || menuitem.URLPath != tempmenuinfo.URLPath || menuitem.Status != tempmenuinfo.Status || menuitem.IsCanAccess != tempmenuinfo.IsCanAccess)
                                {
                                    tran.Update("Right.Menu.UpdateCustomerMenu", ht_menu);
                                }
                            }

                            //禁用其他菜单
                        }

                        tran.CommitTransaction();
                    }
                    catch (Exception ex)
                    {
                        tran.RollBackTransaction();
                        MSSqlMapper.Instance(new cPos.Model.LoggingManager());
                        throw ex;
                    }

                    MSSqlMapper.Instance(new cPos.Model.LoggingManager());
                }

                //MSSqlMapper.Instance(new cPos.Model.LoggingManager());//重新初始化为 AP 库

                strResult += "菜单更新成功.";
            }
            catch (Exception ex)
            {
                MSSqlMapper.Instance(new cPos.Model.LoggingManager());
                return(ex.InnerException.Message);

                throw (ex);
            }
            return(strResult);
        }