/// <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); }
/// <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()); }
/// <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); }
/// <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)); }
/// <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]); }
/// <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')); }
/// <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); }
/// <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); }