Esempio n. 1
0
        public int GetBottlesAtCounterparty(IUnitOfWork UoW, Counterparty counterparty, DateTime?before = null)
        {
            BottlesMovementOperation  operationAlias = null;
            BottlesBalanceQueryResult result         = null;
            var queryResult = UoW.Session.QueryOver <BottlesMovementOperation>(() => operationAlias)
                              .Where(() => operationAlias.Counterparty.Id == counterparty.Id);

            if (before.HasValue)
            {
                queryResult.Where(() => operationAlias.OperationTime < before);
            }

            var bottles = queryResult.SelectList(list => list
                                                 .SelectSum(() => operationAlias.Delivered).WithAlias(() => result.Delivered)
                                                 .SelectSum(() => operationAlias.Returned).WithAlias(() => result.Returned)
                                                 ).TransformUsing(Transformers.AliasToBean <BottlesBalanceQueryResult>()).List <BottlesBalanceQueryResult>()
                          .FirstOrDefault()?.BottlesDebt ?? 0;

            return(bottles);
        }
Esempio n. 2
0
        public int GetBottleDebtBySelfDelivery(IUnitOfWork UoW, Counterparty counterparty)
        {
            BottlesMovementOperation  operationAlias = null;
            BottlesBalanceQueryResult result         = null;
            Order orderAlias = null;

            var queryResult = UoW.Session.QueryOver(() => operationAlias)
                              .JoinAlias(() => operationAlias.Order, () => orderAlias, NHibernate.SqlCommand.JoinType.RightOuterJoin)
                              .Where(() => operationAlias.Counterparty == counterparty)
                              .And(() => orderAlias.SelfDelivery);

            var bottles = queryResult.SelectList(list => list
                                                 .SelectSum(() => operationAlias.Delivered).WithAlias(() => result.Delivered)
                                                 .SelectSum(() => operationAlias.Returned).WithAlias(() => result.Returned)
                                                 )
                          .TransformUsing(Transformers.AliasToBean <BottlesBalanceQueryResult>()).List <BottlesBalanceQueryResult>()
                          .FirstOrDefault()?
                          .BottlesDebt ?? 0;

            return(bottles);
        }