//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; }
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 OpenState( IInvoiceItemDomainService invoiceItemDomainService, IBalanceDomainService balanceDomainService, IInventoryOperationNotifier inventoryOperationNotifier, IInvoiceStateFactory invoiceStateFactory) { this.invoiceItemDomainService = invoiceItemDomainService; this.balanceDomainService = balanceDomainService; this.inventoryOperationNotifier = inventoryOperationNotifier; this.invoiceStateFactory = invoiceStateFactory; }
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; }
public ApprovableFuelReportDomainService( IVoyageDomainService voyageDomainService, IFuelReportDomainService fuelReportDomainService, IInventoryOperationDomainService inventoryOperationDomainService, IGoodDomainService goodDomainService, IOrderDomainService orderDomainService, ICurrencyDomainService currencyDomainService, IBalanceDomainService balanceDomainService, IInventoryManagementDomainService inventoryManagementDomainService, IInventoryOperationNotifier inventoryOperationNotifier) { this.voyageDomainService = voyageDomainService; this.fuelReportDomainService = fuelReportDomainService; this.inventoryOperationDomainService = inventoryOperationDomainService; this.goodDomainService = goodDomainService; this.orderDomainService = orderDomainService; this.inventoryOperationNotifier = inventoryOperationNotifier; this.currencyDomainService = currencyDomainService; this.balanceDomainService = balanceDomainService; this.inventoryManagementDomainService = inventoryManagementDomainService; }
public CalculateChangeInOrderBlance(IInvoiceItemDomainService invoiceItemDomainService, IBalanceDomainService balanceDomainService) { this.invoiceItemDomainService = invoiceItemDomainService; this.balanceDomainService = balanceDomainService; }
private void UpdateInvoiceItems(List<InvoiceItem> invoiceItems, IInvoiceItemDomainService invoiceItemDomainService, IBalanceDomainService balanceDomainService) { if (InvoiceType == InvoiceTypes.Attach) { if (InvoiceRefrence == null) throw new BusinessRuleException("", "Reference not Set"); //<A.H> Moved to the outside of if block. //foreach (var invoiceItem in InvoiceItems.ToList()) //{ // invoiceItemDomainService.DeleteInvoiceItem(invoiceItem); //} //<A.H> Moved to the outside of if block. //InvoiceItems = invoiceItems; } for (int index = 0; index < InvoiceItems.Count; index++) { invoiceItemDomainService.DeleteInvoiceItem(InvoiceItems[index]); } InvoiceItems = invoiceItems; //<A.H> : The implementation has been moved to Submit method. //else //{ // if (OrderRefrences == null) // throw new BusinessRuleException("", "Reference not Set"); // var c = new CalculateChangeInOrderBlance(invoiceItemDomainService, balanceDomainService); // InvoiceItems = c.Process(this, invoiceItems, OrderRefrences); //} }
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>(); }
public void SubmitInvoice( IInvoiceItemDomainService invoiceItemDomainService, IBalanceDomainService balanceDomainService, IInventoryOperationNotifier inventoryOperationNotifier) { // CheckInvoiceAnyInvoiceItem(); if (OrderRefrences == null) throw new BusinessRuleException("", "Reference not Set"); var c = new CalculateChangeInOrderBlance(invoiceItemDomainService, balanceDomainService); var orderItemsBalances = c.Process(this, this.InvoiceItems, this.OrderRefrences); foreach (var orderItemsBalance in orderItemsBalances) { var inventoryResult = inventoryOperationNotifier.NotifySubmittingOrderItemBalance(orderItemsBalance); if (inventoryResult == null) throw new InvalidOperation("SubmitInvoiceOrderItemBalance", "Submit the OrderItemBalance of Invoice to Inventory resulted to an error."); orderItemsBalance.InventoryOperation = inventoryResult; } State = States.Submitted; }
// public void DeleteAllItems(IInvoiceItemDomainService invoiceItemDomainService) // { // for (int index = 0; index < InvoiceItems.Count; index++) // { // // } // } public void CheckDeleteRules(IBalanceDomainService balanceDomainService, IInvoiceItemDomainService invoiceItemDomainService) { if (!(State == States.Open || State == States.SubmitRejected)) throw new BusinessRuleException("BR_IN7", "Invoice Is Open"); foreach (var invoiceItem in InvoiceItems.ToList()) { balanceDomainService.DeleteInvoiceItemRefrencesFromBalance(invoiceItem.Id); invoiceItemDomainService.DeleteInvoiceItem(invoiceItem); } }
//=================================================================================== private void sendDataToBalancingDomainService(IBalanceDomainService balanceDomainService) { foreach (var fuelReportDetail in FuelReportDetails) { if (fuelReportDetail.Receive.HasValue && fuelReportDetail.ReceiveReference != null && fuelReportDetail.ReceiveReference.ReferenceId.HasValue) balanceDomainService.SetReceivedData(fuelReportDetail.ReceiveReference.ReferenceId.Value, fuelReportDetail.Id, fuelReportDetail.GoodId, fuelReportDetail.MeasuringUnitId, (decimal)fuelReportDetail.Receive.Value); } }
//=================================================================================== public void Submit( FuelReportState entityNewState, IVoyageDomainService voyageDomainService, IFuelReportDomainService fuelReportDomainService, IInventoryOperationDomainService inventoryOperationDomainService, IGoodDomainService goodDomainService, IOrderDomainService orderDomainService, ICurrencyDomainService currencyDomainService, IBalanceDomainService balanceDomainService, IInventoryManagementDomainService inventoryManagementDomainService, IInventoryOperationNotifier inventoryOperationNotifier) { this.CheckToBeOperational(); validateSubmittingState( voyageDomainService, fuelReportDomainService, inventoryOperationDomainService, goodDomainService, orderDomainService, currencyDomainService, inventoryManagementDomainService); sendDataToBalancingDomainService(balanceDomainService); if (this.FuelReportType == FuelReportTypes.EndOfVoyage || this.FuelReportType == FuelReportTypes.EndOfYear || this.FuelReportType == FuelReportTypes.EndOfMonth) { var inventoryResult = inventoryOperationNotifier.NotifySubmittingFuelReportConsumption(this); this.ConsumptionInventoryOperations.Add(inventoryResult); } else { foreach (var fuelReportDetail in this.FuelReportDetails) { var inventoryResult = inventoryOperationNotifier.NotifySubmittingFuelReportDetail(fuelReportDetail, fuelReportDomainService); if (inventoryResult != null) fuelReportDetail.InventoryOperations.AddRange(inventoryResult); } } setEntityState(entityNewState); }