//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 BalanceDomainService(IOrderRepository orderRepository, IGoodUnitConvertorDomainService goodUnitConvertorDomainService, IRepository<OrderItemBalance> balanceRepository, IRepository<FuelReportDetail> fuelReportDetailRepository) { this.orderRepository = orderRepository; this.goodUnitConvertorDomainService = goodUnitConvertorDomainService; this.balanceRepository = balanceRepository; this.fuelReportDetailRepository = fuelReportDetailRepository; }
public InvoiceItemDomainService(IInvoiceRepository invoiceRepository, IRepository<InvoiceItem> invoiceItemRepository, IOrderRepository orderRepository, IGoodDomainService goodDomainService, IGoodUnitConvertorDomainService goodUnitConvertorDomainService) { this.invoiceRepository = invoiceRepository; this.orderRepository = orderRepository; this.goodDomainService = goodDomainService; this.goodUnitConvertorDomainService = goodUnitConvertorDomainService; this.invoiceItemRepository = invoiceItemRepository; }
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 OrderFacadeService(IOrderApplicationService orderAppService, ICompanyDomainService companyDomainService, IOrderToDtoMapper orderDtoMapper, IOrderItemToDtoMapper itemToDtoMapper, IOrderRepository orderRepository, IGoodUnitConvertorDomainService goodUnitConvertorDomainService, IMainUnitVlaueTomainUnitVlaueDtoMapper mainUnitVlaueTomainUnitVlaueDtoMapper , IUnitOfWorkScope unitOfWorkScope ) { _orderRepository = orderRepository; _goodUnitConvertorDomainService = goodUnitConvertorDomainService; _mainUnitVlaueTomainUnitVlaueDtoMapper = mainUnitVlaueTomainUnitVlaueDtoMapper; _unitOfWorkScope = unitOfWorkScope; _orderAppService = orderAppService; _companyDomainService = companyDomainService; _orderDtoMapper = orderDtoMapper; _itemToDtoMapper = itemToDtoMapper; }
public void TestInitialize() { _scope = new UnitOfWorkScope(new EFUnitOfWorkFactory(() => new DataContainer())); basicInfoDomainServiceObjects = new BasicInfoDomainServiceObjectsContainer(_scope); _target = new GoodUnitConvertorDomainService( new GoodDomainService( new GoodAntiCorruptionAdapter( new GoodAntiCorruptionServiceWrapper(new WebClientHelper(new HttpClient()), new ExternalHostAddressHelper()), new GoodAntiCorruptionMapper()), new EFRepository<Good>(_scope), basicInfoDomainServiceObjects.CompanyDomainService, new EFRepository<GoodUnit>(_scope)), new GoodUnitDomainService(new BaseAntiCorruptionAdapter<GoodUnit, GoodUnitDto>(new BaseAntiCorruptionServiceWrapper<GoodUnitDto> (new WebClientHelper(new HttpClient())), new BaseAntiCorruptionMapper<GoodUnit, GoodUnitDto>()), new EFRepository<GoodUnit>(_scope) )); }
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 override void CheckInvoiceItemValidateQuantityAndRefrence(Invoice invoice, IInvoiceItemDomainService invoiceItemDomainService, IGoodUnitConvertorDomainService goodUnitConvertorDomainService) { CheckInvoiceItemValidateQuantityAndRefrenceWithOrder(invoice, invoiceItemDomainService,goodUnitConvertorDomainService); }
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>(); }
protected void CheckInvoiceItemValidateQuantityAndRefrenceWithOrder(Invoice invoice, IInvoiceItemDomainService invoiceItemDomainService, IGoodUnitConvertorDomainService goodUnitConvertorDomainService) { var refrencedOrder = invoiceItemDomainService.GetRefrencedOrders(invoice.OrderRefrences.Select(c => c.Id).ToList()).ToList(); // foreach (var invoiceItem in invoice.InvoiceItems) // { // if (invoiceItem.Fee == 0) // throw new BusinessRuleException("Br_In13", "Fee can Not be Zero"); // // InvoiceItem item = invoiceItem; // var allOrderItemsWithThisGoodId = refrencedOrder.SelectMany(c => c.OrderItems).Where(c => c.GoodId == item.GoodId).ToList(); // if (!allOrderItemsWithThisGoodId.Any()) // throw new BusinessRuleException("Br_In10", "Invalid Invoice Item"); // // decimal totalOrder; // decimal totalRecipt; // decimal totalinvoice; // // if (allOrderItemsWithThisGoodId.GroupBy(c => c.MeasuringUnitId).Count() > 1) // { // totalOrder = allOrderItemsWithThisGoodId.Sum // (c => goodUnitConvertorDomainService.GetUnitValueInMainUnit(c.GoodId, c.MeasuringUnitId, c.Quantity).Value); // totalRecipt = allOrderItemsWithThisGoodId.SelectMany(c => c.OrderItemBalances).Sum // ( // c => // goodUnitConvertorDomainService.GetUnitValueInMainUnit // (c.OrderItem.GoodId, c.FuelReportDetail.MeasuringUnitId, c.FuelReportCount).Value); // // totalinvoice = allOrderItemsWithThisGoodId.SelectMany(c => c.OrderItemBalances).Sum // ( // c => // goodUnitConvertorDomainService.GetUnitValueInMainUnit // (c.OrderItem.GoodId, c.InvoiceItem.MeasuringUnitId, c.InvoiceItemCount).Value); // // } // else // { // totalOrder = allOrderItemsWithThisGoodId.Sum(c => c.Quantity); // totalRecipt = allOrderItemsWithThisGoodId.SelectMany(c => c.OrderItemBalances).Sum(c => c.FuelReportCount); // totalinvoice = allOrderItemsWithThisGoodId.SelectMany(c => c.OrderItemBalances).Sum(c => c.InvoiceItemCount); // } // // QuantityIsValidBalanceForInvoice(invoiceItem.Quantity, totalOrder, totalRecipt, totalinvoice); // } }
public virtual void CheckInvoiceItemValidateQuantityAndRefrence(Invoice invoice, IInvoiceItemDomainService invoiceItemDomainService, IGoodUnitConvertorDomainService goodUnitConvertorDomainService) { throw new NotImplementedException(); }
public void UpdateReceived(decimal receivedQuantityInMainUnit, IGoodUnitConvertorDomainService goodUnitConvertorDomainService) { var orderItemQuantityInMainUnit = goodUnitConvertorDomainService.ConvertUnitValueToMainUnitValue(this.MeasuringUnit, this.Quantity); if (ReceivedInMainUnit + receivedQuantityInMainUnit > orderItemQuantityInMainUnit) throw new BusinessRuleException("", "Received quantity could not become greater then available ordered quantity."); ReceivedInMainUnit += receivedQuantityInMainUnit; }