Beispiel #1
0
 /// <summary>
 /// 获取省
 /// </summary>
 /// <param name="loggingSessionInfo"></param>
 /// <returns></returns>
 public IList <CityInfo> GetProvinceList(cPos.Model.LoggingSessionInfo loggingSessionInfo)
 {
     return(MSSqlMapper.Instance(loggingSessionInfo.CurrentLoggingManager).QueryForList <CityInfo>("City.SelectProvince", ""));
 }
 /// <summary>
 /// 获取未打包的商品类别数量
 /// </summary>
 /// <param name="loggingSessionInfo">登录model</param>
 /// <returns></returns>
 public int GetItemCategoryNotPackagedCount(LoggingSessionInfo loggingSessionInfo)
 {
     return(MSSqlMapper.Instance(loggingSessionInfo.CurrentLoggingManager).QueryForObject <int>("ItemCategory.SelectUnDownloadCount", ""));
 }
Beispiel #3
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);
        }
Beispiel #4
0
        /// <summary>
        /// 获取城市信息
        /// </summary>
        /// <param name="loggingSessionInfo"></param>
        /// <returns></returns>
        public IList <CityInfo> GetCityInfoList(cPos.Model.LoggingSessionInfo loggingSessionInfo)
        {
            Hashtable _ht = new Hashtable();

            return(MSSqlMapper.Instance(loggingSessionInfo.CurrentLoggingManager).QueryForList <CityInfo>("City.Select", _ht));
        }
Beispiel #5
0
        /// <summary>
        /// 检查Mobile CCOrderDetail是否已存在
        /// </summary>
        public bool CheckExistMobileCCOrderDetail(CCDetailInfo model)
        {
            int count = MSSqlMapper.Instance().QueryForObject <int>("CC.CheckExistMobileCCOrderDetail", model);

            return(count > 0 ? true : false);
        }
Beispiel #6
0
        /// <summary>
        /// 检查CCOrder是否已存在
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool CheckExistCCOrder(CCInfo model)
        {
            int count = MSSqlMapper.Instance().QueryForObject <int>("CCOrder.CheckExistCCOrder", model);

            return(count > 0 ? true : false);
        }
Beispiel #7
0
 public IList <MenuInfo> GetFirstLevelMenuListByAppID(string appID)
 {
     return(MSSqlMapper.Instance().QueryForList <MenuInfo>("Right.Menu.GetFirstLevelMenuListByAppID", appID));
 }
Beispiel #8
0
 public IList <MenuInfo> GetSubMenuListByMenuID(string menuID)
 {
     return(MSSqlMapper.Instance().QueryForList <MenuInfo>("Right.Menu.GetSubMenuListByMenuID", menuID));
 }
Beispiel #9
0
 /// <summary>
 /// 根据ID获取行业版本对应的菜单信息
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public MenuInfo GetVocationVersionMenuMappingByID(Guid id)
 {
     return(MSSqlMapper.Instance().QueryForObject <MenuInfo>("Right.Menu.GetVocationVersionMenuMappingByID", id));
 }
Beispiel #10
0
 public IList <MenuInfo> GetAllMenuListByAppCode(string appID)
 {
     return(MSSqlMapper.Instance().QueryForList <MenuInfo>("Right.Menu.GetAllMenuListByAppCode", appID));
 }
Beispiel #11
0
        //public IList<AppInfo> GetCustomerVisibleAppList()
        //{
        //    return MSSqlMapper.Instance().QueryForList<AppInfo>("Right.App.GetCustomerVisibleAppList", null);
        //}
        #endregion

        #region 菜单

        public IList <MenuInfo> GetAllMenuListByCustomer(string customerID)
        {
            return(MSSqlMapper.Instance().QueryForList <MenuInfo>("Right.Menu.GetAllMenuListByCustomer", customerID));
        }
Beispiel #12
0
 public IList <VersionInfo> GetAllVersionList()
 {
     return(MSSqlMapper.Instance().QueryForList <VersionInfo>("Right.App.GetAllVersionList", null));
 }
Beispiel #13
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);
        }
Beispiel #14
0
 public MenuInfo GetMenuByID(string menuID)
 {
     return(MSSqlMapper.Instance().QueryForObject <MenuInfo>("Right.Menu.GetMenuByID", menuID));
 }
Beispiel #15
0
 public IList <AppInfo> GetCustomerVisibleAppList()
 {
     return(MSSqlMapper.Instance().QueryForList <AppInfo>("Right.App.GetCustomerVisibleAppList", null));
 }