Ejemplo n.º 1
0
        public void DistributeCash(IUnitOfWork uow, FuelDocument fuelDoc)
        {
            var org = cashDistributionCommonOrganisationProvider.GetCommonOrganisation(uow);

            var operation = new OrganisationCashMovementOperation
            {
                Organisation  = org,
                OperationTime = DateTime.Now,
                Amount        = -fuelDoc.PayedForFuel.Value
            };

            var fuelCashDistributionDoc = new FuelExpenseCashDistributionDocument
            {
                Author         = fuelDoc.Author,
                CreationDate   = DateTime.Now,
                Organisation   = org,
                FuelDocument   = fuelDoc,
                Employee       = fuelDoc.Driver,
                LastEditor     = fuelDoc.LastEditor,
                LastEditedTime = DateTime.Now,
                Expense        = fuelDoc.FuelCashExpense,
                OrganisationCashMovementOperation = operation,
                Amount = operation.Amount
            };

            Save(operation, fuelCashDistributionDoc, uow);
        }
Ejemplo n.º 2
0
        private void DistributeIncomeCashRemainingAmount(IUnitOfWork uow, RouteList routeList, Income income, decimal amount)
        {
            var operation = new OrganisationCashMovementOperation
            {
                OperationTime = DateTime.Now,
                Organisation  = cashDistributionCommonOrganisationProvider.GetCommonOrganisation(uow),
                Amount        = amount
            };

            var address  = routeList.Addresses.First(x => x.TotalCash > 0);
            var document = CreateRouteListItemCashDistributionDocument(operation, address, income);

            Save(uow, operation, document);
        }
Ejemplo n.º 3
0
 private IncomeCashDistributionDocument CreateIncomeCashDistributionDocument(Income income,
                                                                             OrganisationCashMovementOperation operation)
 {
     return(new IncomeCashDistributionDocument
     {
         Author = income.Casher,
         Income = income,
         Organisation = operation.Organisation,
         CreationDate = DateTime.Now,
         LastEditor = income.Casher,
         Employee = income.Employee,
         LastEditedTime = DateTime.Now,
         OrganisationCashMovementOperation = operation,
         Amount = operation.Amount
     });
 }
Ejemplo n.º 4
0
 private RouteListItemCashDistributionDocument CreateRouteListItemCashDistributionDocument(
     OrganisationCashMovementOperation operation, RouteListItem address, Expense expense)
 {
     return(new RouteListItemCashDistributionDocument
     {
         Organisation = operation.Organisation,
         CreationDate = DateTime.Now,
         LastEditedTime = DateTime.Now,
         Author = expense.Casher,
         LastEditor = expense.Casher,
         RouteListItem = address,
         Employee = expense.Employee,
         Expense = expense,
         OrganisationCashMovementOperation = operation,
         Amount = operation.Amount
     });
 }
Ejemplo n.º 5
0
 private SelfDeliveryCashDistributionDocument CreateSelfDeliveryCashDistributionDocument(
     OrganisationCashMovementOperation operation, Order selfDeliveryOrder, Income income)
 {
     return(new SelfDeliveryCashDistributionDocument
     {
         Organisation = operation.Organisation,
         CreationDate = DateTime.Now,
         Author = income.Casher,
         LastEditedTime = DateTime.Now,
         LastEditor = income.Casher,
         Employee = income.Employee,
         Order = selfDeliveryOrder,
         Income = income,
         OrganisationCashMovementOperation = operation,
         Amount = operation.Amount
     });
 }
Ejemplo n.º 6
0
        public IList <OperationNode> GetCashBalanceForOrganizations(IUnitOfWork uow)
        {
            Organization organizationAlias = null;
            OrganisationCashMovementOperation operationAlias = null;
            OperationNode resultAlias = null;

            var query = uow.Session.QueryOver(() => organizationAlias)
                        .JoinEntityAlias(() => operationAlias,
                                         () => organizationAlias.Id == operationAlias.Organisation.Id,
                                         JoinType.LeftOuterJoin
                                         )
                        .SelectList(list => list
                                    .SelectGroup(() => organizationAlias.Id)
                                    .Select(Projections.Sum(() => operationAlias.Amount)).WithAlias(() => resultAlias.Balance)
                                    .Select(() => organizationAlias.Name).WithAlias(() => resultAlias.Name))
                        .TransformUsing(Transformers.AliasToBean <OperationNode>())
                        .List <OperationNode>();

            return(query);
        }
 private void UpdateOrganisationCashMovementOperation(OrganisationCashMovementOperation operation, Expense expense)
 {
     operation.Amount        = -expense.Money;
     operation.OperationTime = DateTime.Now;
 }
 private ExpenseCashDistributionDocument CreateExpenseCashDistributionDocument(Expense expense,
                                                                               OrganisationCashMovementOperation operation)
 {
     return(new ExpenseCashDistributionDocument
     {
         Author = expense.Casher,
         Expense = expense,
         CreationDate = DateTime.Now,
         LastEditor = expense.Casher,
         Employee = expense.Employee,
         Organisation = operation.Organisation,
         LastEditedTime = DateTime.Now,
         OrganisationCashMovementOperation = operation,
         Amount = operation.Amount
     });
 }
 private void Save(OrganisationCashMovementOperation operation, ExpenseCashDistributionDocument document, IUnitOfWork uow)
 {
     uow.Save(operation);
     uow.Save(document);
 }
Ejemplo n.º 10
0
 private void Save(IUnitOfWork uow, OrganisationCashMovementOperation operation,
                   RouteListItemCashDistributionDocument routeListItemCashdistributionDoc)
 {
     uow.Save(operation);
     uow.Save(routeListItemCashdistributionDoc);
 }
Ejemplo n.º 11
0
 private void Save(IUnitOfWork uow, OrganisationCashMovementOperation operation,
                   SelfDeliveryCashDistributionDocument selfDeliveryCashDistributionDoc)
 {
     uow.Save(operation);
     uow.Save(selfDeliveryCashDistributionDoc);
 }
 private void SaveExpense(IUnitOfWork uow, OrganisationCashMovementOperation operation,
                          AdvanceExpenseCashDistributionDocument advanceExpenseCashDistributionDoc)
 {
     uow.Save(operation);
     uow.Save(advanceExpenseCashDistributionDoc);
 }
 private AdvanceExpenseCashDistributionDocument CreateAdvanceExpenseCashDistributionDocument(AdvanceReport advanceReport,
                                                                                             Expense expense, OrganisationCashMovementOperation operation)
 {
     return(new AdvanceExpenseCashDistributionDocument
     {
         AdvanceReport = advanceReport,
         Expense = expense,
         Author = advanceReport.Casher,
         CreationDate = DateTime.Now,
         Organisation = advanceReport.Organisation,
         LastEditor = advanceReport.Casher,
         LastEditedTime = DateTime.Now,
         OrganisationCashMovementOperation = operation,
         Amount = operation.Amount
     });
 }
Ejemplo n.º 14
0
 private void UpdateOrganisationCashMovementOperation(OrganisationCashMovementOperation operation, Income income)
 {
     operation.Amount        = income.Money;
     operation.OperationTime = DateTime.Now;
 }