public ProfitReportsController(IAdditionalCostsManager additionalCostsManager, 
            IEmployeeRateRspManager employeeRateRspManager, IEmployeesManager employeeManager, IOrdersManager orderManager,
            IForeignProductsManager foreignProductsManager, IMaterialDeliveryRspManager materialDeliveryRspManager,
            ISocialTaxesManager socialTaxesManager, IInstrumentsManager instrumentsManager, IOwnProductsManager ownProductsManager,
            ITermPositionsManager termPositionsManager, IPositionsManager positionsManager, ITermCostsManager termCostsManager,
            ITaxesManager taxesManager, IInvoicesManager invoicesManager, IInterestsManager interestsManager, ITermsManager termsManager)
        {
            this.additionalCostsManager = additionalCostsManager;
            this.employeeRateRspManager = employeeRateRspManager;
            this.employeeManager = employeeManager;
            this.orderManager = orderManager;
            this.foreignProductsManager = foreignProductsManager;
            this.ownProductsManager = ownProductsManager;
            this.materialDeliveryRspManager = materialDeliveryRspManager;
            this.socialTaxesManager = socialTaxesManager;
            this.instrumentsManager = instrumentsManager;
            this.interestsManager = interestsManager;

            this.termPositionsManager = termPositionsManager;
            this.positionsManager = positionsManager;
            this.termCostsManager = termCostsManager;
            this.taxesManager = taxesManager;
            this.invoicesManager = invoicesManager;
            this.termsManager = termsManager;
        }
        public ProfitReportsController(IAdditionalCostsManager additionalCostsManager,
                                       IEmployeeRateRspManager employeeRateRspManager, IEmployeesManager employeeManager, IOrdersManager orderManager,
                                       IForeignProductsManager foreignProductsManager, IMaterialDeliveryRspManager materialDeliveryRspManager,
                                       ISocialTaxesManager socialTaxesManager, IInstrumentsManager instrumentsManager, IOwnProductsManager ownProductsManager,
                                       ITermPositionsManager termPositionsManager, IPositionsManager positionsManager, ITermCostsManager termCostsManager,
                                       ITaxesManager taxesManager, IInvoicesManager invoicesManager, IInterestsManager interestsManager, ITermsManager termsManager)
        {
            this.additionalCostsManager     = additionalCostsManager;
            this.employeeRateRspManager     = employeeRateRspManager;
            this.employeeManager            = employeeManager;
            this.orderManager               = orderManager;
            this.foreignProductsManager     = foreignProductsManager;
            this.ownProductsManager         = ownProductsManager;
            this.materialDeliveryRspManager = materialDeliveryRspManager;
            this.socialTaxesManager         = socialTaxesManager;
            this.instrumentsManager         = instrumentsManager;
            this.interestsManager           = interestsManager;

            this.termPositionsManager = termPositionsManager;
            this.positionsManager     = positionsManager;
            this.termCostsManager     = termCostsManager;
            this.taxesManager         = taxesManager;
            this.invoicesManager      = invoicesManager;
            this.termsManager         = termsManager;
        }
 public TermPositionsController(ITermPositionsManager manager, IPositionsManager positionsManager,
                                ITermPositionMaterialRspManager termPositionMaterialRspManager) :
     base(manager)
 {
     this.PositionsManager = positionsManager;
     this.TermPositionMaterialRspManager = termPositionMaterialRspManager;
 }
Beispiel #4
0
 public DashboardController(IPositionsManager positionsManager, IUserRepository userRepository, IUnitOfWork unitOfWork, IDashboardManager dashboardManager)
 {
     this.positionsManager = positionsManager;
     this.userRepository   = userRepository;
     companiesRepository   = unitOfWork.BuildCompaniesRepository();
     this.dashboardManager = dashboardManager;
 }
        public AddNewPositionController(ITermsManager termManager, IProductsManager productManager, 
            IPositionsManager positionsManager, IUserManager userManager)
	    {
	        this.termManager = termManager;
	        this.productManager = productManager;
	        this.positionsManager = positionsManager;
            this.userManager = userManager;
        }
Beispiel #6
0
 public AddNewPositionController(ITermsManager termManager, IProductsManager productManager,
                                 IPositionsManager positionsManager, IUserManager userManager)
 {
     this.termManager      = termManager;
     this.productManager   = productManager;
     this.positionsManager = positionsManager;
     this.userManager      = userManager;
 }
Beispiel #7
0
 public AddNewMaterialController(ITermsManager termManager, IMaterialsManager materialManager,
                                 IPositionsManager positionsManager, IUserManager userManager)
 {
     this.termManager      = termManager;
     this.materialManager  = materialManager;
     this.positionsManager = positionsManager;
     this.userManager      = userManager;
 }
 public GenerateMonthInvoicesController(IInvoicesManager invoicesManager, IOrdersManager ordersManager,
     ITaxesManager taxesManager, IInvoicePositionsManager invoicePositionsManager, IUniqueNumberProvider numberProvider,
     ITermPositionsManager termPositionsManager, IPositionsManager positionsManager, ITermCostsManager termCostsManager,
     IPrinterManager printerManager) : 
     base(invoicesManager, ordersManager, taxesManager, invoicePositionsManager, numberProvider, termPositionsManager, positionsManager, termCostsManager)
 {
     this.printerManager = printerManager;
 }
        public AddNewMaterialController(ITermsManager termManager, IMaterialsManager materialManager, 
            IPositionsManager positionsManager, IUserManager userManager)
	    {
	        this.termManager = termManager;
	        this.materialManager = materialManager;
	        this.positionsManager = positionsManager;
            this.userManager = userManager;
        }
Beispiel #10
0
        public PositionsController(IPositionsService positionsApplicationService, IPositionsManager positionsManager, IUserRepository userRepository, IUnitOfWork unitOfWork)
        {
            this.unitOfWork = unitOfWork;

            this.positionsApplicationService = positionsApplicationService;
            this.positionsManager            = positionsManager;
            this.userRepository      = userRepository;
            this.companiesRepository = unitOfWork.BuildCompaniesRepository();
        }
Beispiel #11
0
        public static Viewer Create <T>(IDatabaseNotifier databaseNotifier, IDatabaseReadOnly readOnlyDatabase,
                                        IInstantiator instantiator, IPositionsManager positioner, IBindComponentToDataDbRead bindComponentToDataDbRead)
            where T : Viewer, new()
        {
            var viewer = new T();

            viewer.Init(databaseNotifier, readOnlyDatabase, instantiator, positioner, bindComponentToDataDbRead);
            viewer.Subscribe();
            return(viewer);
        }
Beispiel #12
0
        public CompanyProfileManager(IUserRepository userRepository, IUnitOfWork unitOfWork, IPositionsManager positionsManager, IProductsManager productsManager)
        {
            this.unitOfWork       = unitOfWork;
            this.userRepository   = userRepository;
            this.positionsManager = positionsManager;
            this.productsManager  = productsManager;

            companiesRepository         = this.unitOfWork.BuildCompaniesRepository();
            candidateInterestRepository = this.unitOfWork.BuildCandidateInterestReadRepository();
        }
Beispiel #13
0
 public ReportOrdersController(IOrdersManager manager,
                               ITermPositionsManager termPositionsManager, IPositionsManager positionsManager, ITermCostsManager termCostsManager,
                               ITaxesManager taxesManager, IInvoicesManager invoicesManager)
     : base(manager)
 {
     this.termPositionsManager = termPositionsManager;
     this.positionsManager     = positionsManager;
     this.termCostsManager     = termCostsManager;
     this.taxesManager         = taxesManager;
     this.invoicesManager      = invoicesManager;
 }
Beispiel #14
0
 protected virtual void Init([NotNull] IDatabaseNotifier databaseNotifier, IDatabaseReadOnly readOnlyDatabase,
                             [NotNull] IInstantiator instantiator,
                             [NotNull] IPositionsManager positioner,
                             [NotNull] IBindComponentToDataDbRead bindComponentToDataDbRead)
 {
     _notifier                  = databaseNotifier ?? throw new ArgumentNullException(nameof(databaseNotifier));
     _readOnlyDatabase          = readOnlyDatabase;
     _instantiator              = instantiator ?? throw new ArgumentNullException(nameof(instantiator));
     _positioner                = positioner ?? throw new ArgumentNullException(nameof(positioner));
     _bindComponentToDataDbRead = bindComponentToDataDbRead;
 }
 public AddInvoicesController(IInvoicesManager invoicesManager, IOrdersManager ordersManager,
                              ITaxesManager taxesManager, IInvoicePositionsManager invoicePositionsManager, IUniqueNumberProvider numberProvider,
                              ITermPositionsManager termPositionsManager, IPositionsManager positionsManager, ITermCostsManager termCostsManager)
 {
     this.invoicesManager         = invoicesManager;
     this.numberProvider          = numberProvider;
     this.ordersManager           = ordersManager;
     this.taxesManager            = taxesManager;
     this.invoicePositionsManager = invoicePositionsManager;
     this.termPositionsManager    = termPositionsManager;
     this.positionsManager        = positionsManager;
     this.termCostsManager        = termCostsManager;
 }
 public AddInvoicesController(IInvoicesManager invoicesManager, IOrdersManager ordersManager,
     ITaxesManager taxesManager, IInvoicePositionsManager invoicePositionsManager, IUniqueNumberProvider numberProvider,
     ITermPositionsManager termPositionsManager, IPositionsManager positionsManager, ITermCostsManager termCostsManager)
 {
     this.invoicesManager = invoicesManager;
     this.numberProvider = numberProvider;
     this.ordersManager = ordersManager;
     this.taxesManager = taxesManager;
     this.invoicePositionsManager = invoicePositionsManager;
     this.termPositionsManager = termPositionsManager;
     this.positionsManager = positionsManager;
     this.termCostsManager = termCostsManager;
 }
Beispiel #17
0
 public ProfileController(
     IProfileManager profileManager,
     IUserPersonalInfoHandler <ChangeEmail> changeEmailHandler,
     IUserPersonalInfoHandler <ChangeCountry> changeCountryHandler,
     IUserPersonalInfoHandler <ChangeCurrentPosition> changeCurrentPositionHandler,
     ISkillsService skillsService,
     IPositionsManager positionsManager)
 {
     this.profileManager               = profileManager;
     this.changeEmailHandler           = changeEmailHandler;
     this.changeCountryHandler         = changeCountryHandler;
     this.changeCurrentPositionHandler = changeCurrentPositionHandler;
     this.skillsService    = skillsService;
     this.positionsManager = positionsManager;
 }
 public DeleteAllOrderPositionsController(IOrdersManager manager, IPositionsManager positionManager)
 {
     this.manager = manager;
     this.positionManager = positionManager;
 }
 public DeleteAllOrderPositionsController(IOrdersManager manager, IPositionsManager positionManager)
 {
     this.manager         = manager;
     this.positionManager = positionManager;
 }
Beispiel #20
0
        public static double CalculateTotalPrice(Orders order,
                                                 ITermPositionsManager termPositionsManager,
                                                 IPositionsManager positionsManager,
                                                 ITermCostsManager termCostsManager,
                                                 ITaxesManager taxesManager,
                                                 DateTime?fromDate,
                                                 DateTime?toDate,
                                                 ref double profit)
        {
            double result = 0;

            //TODO discuss with customer - take positions where proccessed amount not null (but take with 0)
            var termPositions = termPositionsManager.GetEntities(o => !o.DeleteDate.HasValue && o.Terms.OrderId == order.Id && o.ProccessedAmount.HasValue);

            if (fromDate.HasValue && toDate.HasValue)
            {
                termPositions = termPositions.Where(o => o.Terms.Date >= fromDate.Value && o.Terms.Date <= toDate.Value);
            }

            foreach (var termPosition in termPositions.ToList())
            {
                //positions
                if (termPosition.ProccessedAmount.Value > 0)
                {
                    var positionProfit = CalculatePositionPrice(termPosition.Positions.Price, termPosition.ProccessedAmount.Value,
                                                                termPosition.Positions.Payment);

                    result += positionProfit;

                    //todo calculate profit
                    profit += positionProfit;
                }

                //materials
                foreach (var material in termPosition.TermPositionMaterialRsps.Where(o => !o.DeleteDate.HasValue && o.Amount.HasValue))
                {
                    var amount = material.Amount.Value;
                    if (material.Materials.MaterialAmountTypes == MaterialAmountTypes.Meter)
                    {
                        if (material.Materials.Length != 0)
                        {
                            amount = amount / (double)material.Materials.Length.Value;
                        }
                        else
                        {
                            //todo
                        }
                    }

                    result += CalculatePositionPrice(material.Materials.Price, amount, PaymentTypes.Standard);

                    var materialProfit = material.Materials.Price * amount - material.Materials.BoughtPrice * amount;
                    profit += materialProfit;
                }
            }

            //material positions without terms
            var materialPositionsWithoutTerms = positionsManager.GetEntities(o => o.OrderId == order.Id && !o.DeleteDate.HasValue &&
                                                                             !o.TermId.HasValue && o.MaterialId.HasValue && o.IsMaterialPosition);

            if (fromDate.HasValue && toDate.HasValue)
            {
                materialPositionsWithoutTerms = materialPositionsWithoutTerms.Where(o => o.ChangeDate >= fromDate.Value && o.ChangeDate <= toDate.Value);
            }

            foreach (var position in materialPositionsWithoutTerms.ToList())
            {
                var price = CalculatePositionPrice(position.Price, position.Amount, position.Payment);

                result += price;

                profit += price - position.Materials.BoughtPrice * position.Amount;
            }

            //extra costs
            var termCosts = termCostsManager.GetEntities(o => !o.DeleteDate.HasValue && o.Terms.OrderId == order.Id);

            if (fromDate.HasValue && toDate.HasValue)
            {
                termCosts = termCosts.Where(o => o.Terms.Date >= fromDate.Value && o.Terms.Date <= toDate.Value);
            }

            foreach (var termCost in termCosts.ToList())
            {
                var price = CalculatePositionPrice(termCost.Price, 1, PaymentTypes.Standard);

                result += price;

                profit += price - termCost.Costs;
            }


            //TODO get taxes from invoices and calculate taxes only for open positions
            var taxes = CalculateTaxes(taxesManager);

            var taxValue = (result / (double)100) * taxes;

            if (order.Customers.WithTaxes)
            {
                //with taxes
                result += taxValue;
            }

            return(result);
        }
 public ReportPositionsController(ITermPositionsManager termPositionsManager, IPositionsManager positionsManager, ITermCostsManager termCostsManager) 
 {
     this.termPositionsManager = termPositionsManager;
     this.positionsManager = positionsManager;
     this.termCostsManager = termCostsManager;
 }
 public CopyOrderController(IOrdersManager manager, IPositionsManager positionManager, IUniqueNumberProvider numberProvider)
 {
     this.manager = manager;
     this.positionManager = positionManager;
     this.numberProvider = numberProvider;
 }
Beispiel #23
0
 public CopyOrderController(IOrdersManager manager, IPositionsManager positionManager, IUniqueNumberProvider numberProvider)
 {
     this.manager         = manager;
     this.positionManager = positionManager;
     this.numberProvider  = numberProvider;
 }
 public GenerateMonthInvoicesController(IInvoicesManager invoicesManager, IOrdersManager ordersManager,
                                        ITaxesManager taxesManager, IInvoicePositionsManager invoicePositionsManager, IUniqueNumberProvider numberProvider,
                                        ITermPositionsManager termPositionsManager, IPositionsManager positionsManager, ITermCostsManager termCostsManager,
                                        IPrinterManager printerManager) :
     base(invoicesManager, ordersManager, taxesManager, invoicePositionsManager, numberProvider, termPositionsManager, positionsManager, termCostsManager)
 {
     this.printerManager = printerManager;
 }
Beispiel #25
0
        public static double CalculateTotalPrice(Orders order,
            ITermPositionsManager termPositionsManager,
            IPositionsManager positionsManager,
            ITermCostsManager termCostsManager,
            ITaxesManager taxesManager,
            DateTime? fromDate,
            DateTime? toDate,
            ref double profit)
        {
            double result = 0;

            //TODO discuss with customer - take positions where proccessed amount not null (but take with 0)
            var termPositions = termPositionsManager.GetEntities(o => !o.DeleteDate.HasValue && o.Terms.OrderId == order.Id && o.ProccessedAmount.HasValue);

            if(fromDate.HasValue && toDate.HasValue)
            {
                termPositions = termPositions.Where(o => o.Terms.Date >= fromDate.Value && o.Terms.Date <= toDate.Value);
            }

            foreach (var termPosition in termPositions.ToList())
            {
                //positions
                if (termPosition.ProccessedAmount.Value > 0)
                {
                    var positionProfit = CalculatePositionPrice(termPosition.Positions.Price, termPosition.ProccessedAmount.Value,
                        termPosition.Positions.Payment);

                    result += positionProfit;

                    //todo calculate profit
                    profit += positionProfit;
                }

                //materials
                foreach (var material in termPosition.TermPositionMaterialRsps.Where(o => !o.DeleteDate.HasValue && o.Amount.HasValue))
                {
                    var amount = material.Amount.Value;
                    if (material.Materials.MaterialAmountTypes == MaterialAmountTypes.Meter)
                    {
                        if (material.Materials.Length != 0)
                        {
                            amount = amount / (double)material.Materials.Length.Value;
                        }
                        else
                        {
                            //todo
                        }
                    }

                    result += CalculatePositionPrice(material.Materials.Price, amount, PaymentTypes.Standard);

                    var materialProfit = material.Materials.Price * amount - material.Materials.BoughtPrice * amount;
                    profit += materialProfit;
                }
            }

            //material positions without terms
            var materialPositionsWithoutTerms = positionsManager.GetEntities(o => o.OrderId == order.Id && !o.DeleteDate.HasValue &&
                !o.TermId.HasValue && o.MaterialId.HasValue && o.IsMaterialPosition);

            if (fromDate.HasValue && toDate.HasValue)
            {
                materialPositionsWithoutTerms = materialPositionsWithoutTerms.Where(o => o.ChangeDate >= fromDate.Value && o.ChangeDate <= toDate.Value);
            }

            foreach (var position in materialPositionsWithoutTerms.ToList())
            {
                var price = CalculatePositionPrice(position.Price, position.Amount, position.Payment);

                result += price;

                profit += price - position.Materials.BoughtPrice * position.Amount;
            }

            //extra costs
            var termCosts = termCostsManager.GetEntities(o => !o.DeleteDate.HasValue && o.Terms.OrderId == order.Id);

            if (fromDate.HasValue && toDate.HasValue)
            {
                termCosts = termCosts.Where(o => o.Terms.Date >= fromDate.Value && o.Terms.Date <= toDate.Value);
            }

            foreach (var termCost in termCosts.ToList())
            {
                var price = CalculatePositionPrice(termCost.Price, 1, PaymentTypes.Standard);

                result += price;

                profit += price - termCost.Costs;
            }


            //TODO get taxes from invoices and calculate taxes only for open positions
            var taxes = CalculateTaxes(taxesManager);

            var taxValue = (result / (double)100) * taxes;
            if (order.Customers.WithTaxes)
            {
                //with taxes
                result += taxValue;
            }

            return result;
        }
 public ReportPositionsController(ITermPositionsManager termPositionsManager, IPositionsManager positionsManager, ITermCostsManager termCostsManager)
 {
     this.termPositionsManager = termPositionsManager;
     this.positionsManager     = positionsManager;
     this.termCostsManager     = termCostsManager;
 }