Пример #1
0
        /// <summary>
        /// item
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="operationType"></param>
        public void AddShadow(ItemInfoEntity entity, EnumOperationType operationType, int operationCount)
        {
            if (CacheFactory.AppsettingCache.NotShadowItem)
            {
                return;
            }
            var shadow = ItemShadows.Find(d => d.Shadow.ItemId == entity.ItemId);

            if (shadow != null)
            {
                if (shadow.Shadow.OperationType != (int)operationType)
                {
                    shadow.Shadow.OperationCount = operationCount;
                    shadow.Shadow.OperationType  = (int)operationType;
                }
                else
                {
                    shadow.Shadow.OperationCount += operationCount;
                }
            }
            else
            {
                ItemShadows.Add(new ItemShadow(entity, operationType, TransactionId, operationCount));
            }
        }
Пример #2
0
 public TeammemberShadow(Guid teammemberId, int playerId, EnumOperationType operationType, Guid transactionId)
 {
     Shadow = new ShadowTeammemberEntity();
     Shadow.TransactionId = transactionId;
     Shadow.OperationType = (int)operationType;
     Shadow.TeammemberId  = teammemberId;
     Shadow.PlayerId      = playerId;
 }
Пример #3
0
        public void OperationButtonClick(object sender, EventArgs e)
        {
            if (!(sender is Button btn))
            {
                return;
            }
            _dockContent.Text = btn.Text;
            var opValue = btn.Name.Split(new[] { "-type-" }, StringSplitOptions.None);

            //_mType = (EnumOperationType)int.Parse(opValue[1]);
            _mType     = (EnumOperationType)Enum.Parse(typeof(EnumOperationType), opValue[1]);
            _operation = opValue[0];
            RenderModule();
        }
Пример #4
0
 public ItemShadow(ItemInfoEntity entity, EnumOperationType operationType, Guid transactionId, int operationCount)
 {
     Shadow = new ShadowItemEntity();
     Shadow.TransactionId  = transactionId;
     Shadow.OperationType  = (int)operationType;
     Shadow.ItemId         = entity.ItemId;
     Shadow.ItemCode       = entity.ItemCode;
     Shadow.ItemType       = entity.ItemType;
     Shadow.ItemCount      = entity.ItemCount;
     Shadow.IsBinding      = entity.IsBinding;
     Shadow.ItemProperty   = SerializationHelper.ToByte(entity.ItemProperty);
     Shadow.GridIndex      = entity.GridIndex;
     Shadow.Status         = entity.Status;
     Shadow.OperationCount = operationCount;
 }
Пример #5
0
 /// <summary>
 /// itemlist
 /// </summary>
 /// <param name="itemList"></param>
 /// <param name="operationType"></param>
 public void AddShadow(List <ItemInfoEntity> itemList, EnumOperationType operationType, int operationCount)
 {
     if (CacheFactory.AppsettingCache.NotShadowItem)
     {
         return;
     }
     if (itemList == null || itemList.Count <= 0)
     {
         return;
     }
     foreach (var itemInfoEntity in itemList)
     {
         AddShadow(itemInfoEntity, operationType, operationCount);
     }
 }
Пример #6
0
 /// <summary>
 /// Teammember
 /// </summary>
 /// <param name="teammemberId"></param>
 /// <param name="playerId"></param>
 /// <param name="operationType"></param>
 public void AddShadow(Guid teammemberId, int playerId, EnumOperationType operationType)
 {
     Shadows.Add(new TeammemberShadow(teammemberId, playerId, operationType, TransactionId));
 }
Пример #7
0
 /// <summary>
 /// Teammember
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="operationType"></param>
 public void AddShadow(TeammemberEntity entity, EnumOperationType operationType)
 {
     Shadows.Add(new TeammemberShadow(entity, operationType, TransactionId));
 }
Пример #8
0
 public TeammemberShadow(TeammemberEntity entity, EnumOperationType operationType, Guid transactionId)
     : this(entity.Idx, entity.PlayerId, operationType, transactionId)
 {
 }
Пример #9
0
        /// <summary>
        /// Формирования объекта отображения информации об отправках (по накладной за отчётный месяц)
        /// </summary>
        /// <param name="operationCategory">filter on category</param>
        /// <param name="chooseDate">Work period</param>
        /// <param name="page">Current page</param>
        /// <param name="pageSize">Count item on page</param>
        /// <param name="recordCount"></param>
        /// <returns></returns>
        public IEnumerable <ShippingDTO> ShippingsViews(EnumOperationType operationCategory, DateTime chooseDate, int page, int pageSize, out short recordCount)
        {
            //exit when empty result (decrease count server query)
            if (this._engage.GetCountRows <krt_Guild18>(x => x.reportPeriod == chooseDate) == 0)
            {
                recordCount = 0;
                return(new List <ShippingDTO>());
            }
            //linq to object(etsng) copy in memory (because EF don't support two dbcontext work together, resolve through expression tree maybe)
            var wrkData = this._engage.GetTable <krt_Guild18, int>(x => x.reportPeriod == chooseDate).ToList();

            //dispatch
            var kg18Src = wrkData.GroupBy(x => new { x.reportPeriod, x.idDeliviryNote, x.warehouse })
                          .OrderBy(x => x.Key.idDeliviryNote).ToList();

            /*linqkit*/
            //v_otpr
            var votprPredicate = PredicateBuilder.New <v_otpr>(false).DefaultExpression.And(x => ((x.oper == (short)operationCategory) || operationCategory == EnumOperationType.All) && x.state == 32 && (new[] { "3494", "349402" }.Contains(x.cod_kl_otpr) || new[] { "3494", "349402" }.Contains(x.cod_klient_pol)));

            votprPredicate = kg18Src.Select(x => x.Key.idDeliviryNote).Aggregate(votprPredicate, (current, value) => current.Or(e => e.id == value && ((e.oper == (short)operationCategory) || operationCategory == EnumOperationType.All))).Expand();
            var voSrc = this._engage.GetTable <v_otpr, int>(votprPredicate).ToList();

            recordCount = (short)voSrc.Count();
            //v_o_v
            //var vovPredicate = PredicateBuilder.New<v_o_v>(false).DefaultExpression;
            var vovPredicate = voSrc.Select(x => x.id).Aggregate(PredicateBuilder.New <v_o_v>(false).DefaultExpression, (current, value) => current.Or(v => v.id_otpr == value)).Expand();
            var vovSrc       = this._engage.GetTable <v_o_v, int>(vovPredicate).ToList();
            //etsng
            //var etsngPredicate = PredicateBuilder.New<etsng>(false);
            var etsngPredicate = voSrc.Select(x => x.cod_tvk_etsng).Aggregate(PredicateBuilder.New <Etsng>(false).DefaultExpression, (current, value) => current.Or(v => v.Etsng1 == value)).Expand();
            var etsngSrc       = this._engage.GetTable <Etsng, int>(etsngPredicate).ToList();

            var result = (from kg in kg18Src join vo in voSrc on kg.Key.idDeliviryNote equals vo.id into g1
                          from item in g1.DefaultIfEmpty() where (item != null && item.oper == (short)operationCategory) || operationCategory == EnumOperationType.All
                          join e in etsngSrc on item == null ? "" : item.cod_tvk_etsng equals e.Etsng1 into g2
                          from item2 in g2.DefaultIfEmpty()
                          select new ShippingDTO()
            {
                VOtpr = item,
                Vovs = vovSrc.Where(x => (x != null) && x.id_otpr == (item == null ? 0 : item.id)),
                VPams = this._engage.GetTable <v_pam, int>(PredicateBuilder.New <v_pam>().DefaultExpression.And(x => x.state == 32 && new[] { "3494", "349402" }.Contains(x.kodkl))
                                                           .And(PredicateExtensions.InnerContainsPredicate <v_pam, int>("id_ved",
                                                                                                                        wrkData.Where(x => x.reportPeriod == chooseDate && x.idDeliviryNote == (item != null ? item.id : 0) && x.type_doc == 2).Select(y => y.idSrcDocument != null ? (int)y.idSrcDocument : 0))).Expand())
                        .ToList(),
                VAkts = this._engage.GetTable <v_akt, int>(PredicateBuilder.New <v_akt>().DefaultExpression.And(x => new[] { "3494", "349402" }.Contains(x.kodkl) && x.state == 32)
                                                           .And(PredicateExtensions.InnerContainsPredicate <v_akt, int>("Id",
                                                                                                                        wrkData.Where(x => x.reportPeriod == chooseDate && x.idDeliviryNote == (item != null ? item.id : 0) && x.type_doc == 3).Select(y => y.idSrcDocument != null ? (int)y.idSrcDocument : 0))).Expand())
                        .ToList(),
                VKarts = this._engage.GetTable <v_kart, int>(PredicateBuilder.New <v_kart>().DefaultExpression.And(x => new[] { "3494", "349402" }.Contains(x.cod_pl))
                                                             .And(PredicateExtensions.InnerContainsPredicate <v_kart, int>("Id",
                                                                                                                           wrkData.Where(z => z.reportPeriod == chooseDate && z.idDeliviryNote == (item != null ? item.id : (int?)null)).Select(y => y.idCard != null ? (int)y.idCard : 0))).Expand())
                         .ToList(),
                KNaftan = this._engage.GetTable <krt_Naftan, int>(PredicateExtensions.InnerContainsPredicate <krt_Naftan, long>("keykrt",
                                                                                                                                wrkData.Where(z => z.reportPeriod == chooseDate && z.idDeliviryNote == (item != null ? item.id : (int?)null)).Select(y => y.idScroll != null ? (long)y.idScroll : 0)))
                          .ToList(),
                Etsng = item2,
                Guild18 = new krt_Guild18 {
                    reportPeriod = kg.Key.reportPeriod,
                    idDeliviryNote = kg.Key.idDeliviryNote,
                    warehouse = kg.Key.warehouse
                }
            }).Skip(pageSize * (page - 1)).Take(pageSize).OrderByDescending(x => x.VOtpr != null ? x.VOtpr.n_otpr : x.Guild18.idDeliviryNote.ToString()).ToList();

            return(result);
        }
Пример #10
0
        public ActionResult Index(SessionStorage storage, InputMenuViewModel menuView, EnumOperationType operationCategory = EnumOperationType.All, short page = 1, short pageSize = 9, bool asService = false)
        {
            if (this.Request.IsAjaxRequest() && this.ModelState.IsValid)
            {
                short recordCount;
                menuView.ReportPeriod = this._bussinesEngage.SyncActualDate(storage, menuView.ReportPeriod);

                //temp resolve (In some reason default binding not parse json to enum from queryString collection)
                var typeOfOperation = this.Request.QueryString["operationCategory"] == String.Empty ? (int)EnumOperationType.All : Int32.Parse(this.Request.QueryString["operationCategory"]);

                var model = new DispatchListViewModel()
                {
                    Dispatchs  = this._bussinesEngage.ShippingsViews((EnumOperationType)typeOfOperation, menuView.ReportPeriod, page, pageSize, out recordCount),
                    PagingInfo = new PagingInfo()
                    {
                        CurrentPage = page, ItemsPerPage = pageSize, TotalItems = recordCount, RoutingDictionary = this.Request.RequestContext.RouteData.Values
                    },
                };

                //tips: consider use web api mechanism instead of mvc implementation
                if (asService)
                {
                    return(this.Json(model, JsonRequestBehavior.AllowGet));
                }

                return(this.PartialView("ShippingSummary", model));
            }

            return(this.View());
        }