//public InvoiceFacadeService()
        //{
        //    try
        //    {
        //        ServiceLocator.Current.GetInstance<IInvoiceDomainService>();
        //        ServiceLocator.Current.GetInstance<IInvoiceApplicationService>();
        //        ServiceLocator.Current.GetInstance<IInvoiceToDtoMapper>();
        //        ServiceLocator.Current.GetInstance<IInvoiceItemToDtoMapper>();
        //        ServiceLocator.Current.GetInstance<IInvoiceRepository>();
        //        ServiceLocator.Current.GetInstance<IGoodUnitConvertorDomainService>();
        //        ServiceLocator.Current.GetInstance<IMainUnitVlaueTomainUnitVlaueDtoMapper>();
        //        ServiceLocator.Current.GetInstance<IUnitOfWorkScope>();
        //        ServiceLocator.Current.GetInstance<IInvoiceItemDomainService>();
        //        ServiceLocator.Current.GetInstance<IEffectiveFactorMapper>();
        //        ServiceLocator.Current.GetInstance<IInvoiceAdditionalPriceDomainService>();
        //    }
        //    catch (Exception ex)
        //    {
        //        throw;
        //    }
        //}
        public InvoiceFacadeService(IInvoiceDomainService invoiceDomainService,
            IInvoiceApplicationService invoiceAppService,
            IInvoiceToDtoMapper invoiceDtoMapper,
            IInvoiceItemToDtoMapper itemToDtoMapper,
            IInvoiceRepository invoiceRepository,
            IGoodUnitConvertorDomainService goodUnitConvertorDomainService,
            IMainUnitVlaueTomainUnitVlaueDtoMapper mainUnitVlaueTomainUnitVlaueDtoMapper,
            IInvoiceItemDomainService invoiceItemDomainService,
            IEffectiveFactorMapper effectiveFactorMapper,
            IInvoiceAdditionalPriceDomainService invoiceAdditionalPriceDomainService,
            IBalanceDomainService balanceDomainService
            )
        {
            this.invoiceDomainService = invoiceDomainService;
            this.invoiceRepository = invoiceRepository;
            this.goodUnitConvertorDomainService = goodUnitConvertorDomainService;
            this.mainUnitVlaueTomainUnitVlaueDtoMapper = mainUnitVlaueTomainUnitVlaueDtoMapper;
            this.invoiceItemDomainService = invoiceItemDomainService;

            this.effectiveFactorMapper = effectiveFactorMapper;
            this.invoiceAdditionalPriceDomainService = invoiceAdditionalPriceDomainService;
            this.balanceDomainService = balanceDomainService;
            this.invoiceAppService = invoiceAppService;
            this.invoiceDtoMapper = invoiceDtoMapper;
            this.itemToDtoMapper = itemToDtoMapper;
        }
Exemple #2
0
        public Invoice(InvoiceTypes invoiceType,
                       string invoiceNumber,
                       Company owner,
                       DateTime invoiceDate,
                       DivisionMethods divisionMethod,
                       AccountingTypes accountType,
                       Invoice invoiceRefrence,
                       List<Order> orderRefrences,
                       Currency currency,
                       bool isCreditor,
                       Company transporter,
                       Company supplier,
                       string description,
                       List<InvoiceItem> list,
                       List<InvoiceAdditionalPrice> invoiceAdditionalPriceList,
                       IEntityConfigurator<Invoice> invoiceConfigurator,
                       IInvoiceDomainService invoiceDomainService,
                       IInvoiceItemDomainService invoiceItemDomainService,
                       IGoodUnitConvertorDomainService goodUnitConvertorDomainService,
                       IInvoiceAdditionalPriceDomainService invoiceAdditionalPriceDomainService,
                       IBalanceDomainService balanceDomainService)
            : this()
        {
            // TODO: Complete member initialization
            InvoiceType = invoiceType;
            InvoiceNumber = invoiceNumber;
            Owner = owner;
            InvoiceDate = invoiceDate;
            DivisionMethod = divisionMethod;
            AccountingType = accountType;
            InvoiceRefrence = invoiceRefrence;
            OrderRefrences = orderRefrences;
            Currency = currency;
            IsCreditor = isCreditor;
            Transporter = transporter;
            Supplier = supplier;

            TransporterId = Transporter == null ? (long?)null : Transporter.Id;
            SupplierId = Supplier == null ? (long?)null : Supplier.Id;
            InvoiceRefrenceId = InvoiceRefrence == null ? (long?)null : InvoiceRefrence.Id;
            Description = description;

            UpdateInvoiceItems(list, null, balanceDomainService);
            UpdateInvoiceAdditionalPrice(invoiceAdditionalPriceList, null);

            this.invoiceConfigurator = invoiceConfigurator;
            this.invoiceAdditionalPriceDomainService = invoiceAdditionalPriceDomainService;
            invoiceConfigurator.Configure(this);
            invoiceBaseType.ValidateType(this);

            checkInvoiceNumberToBeUnique(invoiceDomainService);
            CheckInvoiceHaveInvoiceItem();
            invoiceBaseType.CheckInvoiceItemValidateQuantityAndRefrence(this, invoiceItemDomainService, goodUnitConvertorDomainService);
            invoiceAdditionalPriceDomainService.CalculateAdditionalPrice(this);
        }
 public InvoiceFactory(
                     IEntityConfigurator<Invoice> invoiceConfigurator,
     IWorkflowRepository workflowRepository,
     IInvoiceDomainService invoiceDomainService,
     IInvoiceItemDomainService invoiceItemDomainService, IGoodUnitConvertorDomainService goodUnitConvertorDomainService,
     IInvoiceAdditionalPriceDomainService invoiceAdditionalPriceDomainService, IBalanceDomainService balanceDomainService)
 {
     this.invoiceConfigurator = invoiceConfigurator;
     this.workflowRepository = workflowRepository;
     this.invoiceDomainService = invoiceDomainService;
     this.invoiceItemDomainService = invoiceItemDomainService;
     this.goodUnitConvertorDomainService = goodUnitConvertorDomainService;
     this.invoiceAdditionalPriceDomainService = invoiceAdditionalPriceDomainService;
     this.balanceDomainService = balanceDomainService;
 }
        public InvoiceApplicationService(IInvoiceRepository invoiceRepository,
                                         IUnitOfWorkScope unitOfWorkScope,
            //  IGoodPartyAssignmentDomainService goodPartyAssignmentDomainService,
                                         //IUserRepository userRepository,
                                         IVesselInCompanyDomainService vesselDomainService,
                                         IGoodDomainService goodDomainService,
                                         IInvoiceFactory invoiceFactory,
                                         ICompanyDomainService companyDomainService,
                                         IInvoiceDomainService invoiceDomainService,
                                         IInvoiceItemDomainService invoiceItemDomainService,
                                         IEffectiveFactorDomainService effectiveFactorDomainService,
                                         ICompanyRepository companyRepository
            //,IApprovableDomainService approvableDomainService
                                         ,
                                         IOrderRepository orderRepository,
                                         IGoodRepository goodRepository,
                                         ICurrencyDomainService currencyDomainService,
                                         IInvoiceAdditionalPriceDomainService invoiceAdditionalPriceDomainService,
                                         IGoodUnitConvertorDomainService goodUnitConvertorDomainService, IBalanceDomainService balanceDomainService, IEntityConfigurator<Invoice> invoiceConfigurator)
        {
            this.invoiceRepository = invoiceRepository;
            this.vesselDomainService = vesselDomainService;
            this.goodDomainService = goodDomainService;
            this.invoiceFactory = invoiceFactory;
            this.unitOfWorkScope = unitOfWorkScope;
            this.companyDomainService = companyDomainService;
            this.invoiceDomainService = invoiceDomainService;

            this.invoiceItemDomainService = invoiceItemDomainService;
            this.effectiveFactorDomainService = effectiveFactorDomainService;
            this.companyRepository = companyRepository;
            this.orderRepository = orderRepository;
            this.goodRepository = goodRepository;
            this.currencyDomainService = currencyDomainService;
            this.invoiceAdditionalPriceDomainService = invoiceAdditionalPriceDomainService;
            this.goodUnitConvertorDomainService = goodUnitConvertorDomainService;
            this.balanceDomainService = balanceDomainService;
            this.invoiceConfigurator = invoiceConfigurator;

            // _approvableDomainService = approvableDomainService;
            //  _goodPartyAssignmentDomainService = goodPartyAssignmentDomainService;
        }
Exemple #5
0
        private void UpdateInvoiceAdditionalPrice(List<InvoiceAdditionalPrice> additionalPrice,
                                                  IInvoiceAdditionalPriceDomainService invoiceAdditionalPriceDomainService)
        {
            if (AdditionalPrices != null)
            {
                var list = this.AdditionalPrices.ToList();
                foreach (var item in list)
                {
                    invoiceAdditionalPriceDomainService.DeleteInvoiceAdditionalPriceItem(item);
                }

            }

            if (additionalPrice.GroupBy(c => c.EffectiveFactorId).Count() != additionalPrice.Count)
                throw new BusinessRuleException("", "duplicate Additional Price Item Exception");
            AdditionalPrices = additionalPrice;
        }
Exemple #6
0
        public void Update(string invoiceNumber,
                           DateTime invoiceDate,
                           DivisionMethods divisionMethod,
                           Invoice invoiceRefrence,
                           List<Order> orderRefrences,
                           Currency currency,
                           bool isCreditor,
                           Company transporter,
                           Company supplier,
                           string description,
                           List<InvoiceItem> invoiceItems,
                           List<InvoiceAdditionalPrice> invoiceAdditionalPriceList,
                           IInvoiceDomainService invoiceDomainService,
                           IInvoiceItemDomainService invoiceItemDomainService,
                           IGoodUnitConvertorDomainService goodUnitConvertorDomainService,
                           IInvoiceAdditionalPriceDomainService invoiceAdditionalPriceDomainService,
                           IBalanceDomainService balanceDomainService)
        {
            InvoiceNumber = invoiceNumber;
            InvoiceDate = invoiceDate;
            DivisionMethod = divisionMethod;
            InvoiceRefrence = invoiceRefrence;
            OrderRefrences = orderRefrences;
            Currency = currency;
            Transporter = transporter;
            Supplier = supplier;
            Description = description;
            IsCreditor = isCreditor;
            UpdateInvoiceItems(invoiceItems, invoiceItemDomainService, balanceDomainService);
            UpdateInvoiceAdditionalPrice(invoiceAdditionalPriceList, invoiceAdditionalPriceDomainService);

            TransporterId = Transporter == null ? (long?)null : Transporter.Id;
            SupplierId = Supplier == null ? (long?)null : Supplier.Id;
            InvoiceRefrenceId = InvoiceRefrence == null ? (long?)null : InvoiceRefrence.Id;

            // this.invoiceConfigurator = invoiceConfigurator;
            //                        invoiceConfigurator.Configure(this);

            checkInvoiceNumberToBeUnique(invoiceDomainService);
            CheckInvoiceHaveInvoiceItem();
            invoiceBaseType.CheckInvoiceItemValidateQuantityAndRefrence(this, invoiceItemDomainService, goodUnitConvertorDomainService);
            invoiceBaseType.ValidateType(this);
            invoiceAdditionalPriceDomainService.CalculateAdditionalPrice(this);
            ApproveWorkFlows = new List<InvoiceWorkflowLog>();
        }