コード例 #1
0
ファイル: MaterialRepository.cs プロジェクト: MichalTecl/Elsa
 public MaterialRepository(IDatabase database, ISession session, ICache cache, IUnitConversionHelper conversionHelper)
 {
     m_database         = database;
     m_session          = session;
     m_cache            = cache;
     m_conversionHelper = conversionHelper;
 }
コード例 #2
0
 public MaterialBatchFacade(
     ILog log,
     IVirtualProductFacade virtualProductFacade,
     IMaterialBatchRepository batchRepository,
     IPurchaseOrderRepository orderRepository,
     AmountProcessor amountProcessor,
     ICache cache,
     IDatabase database,
     IPackingPreferredBatchRepository batchPreferrenceRepository,
     IKitProductRepository kitProductRepository,
     IUnitConversionHelper conversionHelper,
     IMaterialThresholdRepository materialThresholdRepository,
     IMaterialRepository materialRepository,
     IUnitRepository unitRepository,
     IStockEventRepository stockEventRepository,
     ISession session,
     IFixedCostRepository fixedCostRepository)
 {
     m_log = log;
     m_virtualProductFacade = virtualProductFacade;
     m_batchRepository      = batchRepository;
     m_orderRepository      = orderRepository;
     m_amountProcessor      = amountProcessor;
     m_cache    = cache;
     m_database = database;
     m_batchPreferrenceRepository  = batchPreferrenceRepository;
     m_kitProductRepository        = kitProductRepository;
     m_conversionHelper            = conversionHelper;
     m_materialThresholdRepository = materialThresholdRepository;
     m_materialRepository          = materialRepository;
     m_unitRepository       = unitRepository;
     m_stockEventRepository = stockEventRepository;
     m_session             = session;
     m_fixedCostRepository = fixedCostRepository;
 }
コード例 #3
0
 public VirtualProductFacade(IVirtualProductRepository virtualProductRepository, IMaterialRepository materialRepository, IUnitRepository unitRepository, IUnitConversionHelper unitConversionHelper, IDatabase database)
 {
     m_virtualProductRepository = virtualProductRepository;
     m_materialRepository       = materialRepository;
     m_unitRepository           = unitRepository;
     m_unitConversionHelper     = unitConversionHelper;
     m_database = database;
 }
コード例 #4
0
 public ApplyResultingMaterial(IMaterialRepository materialRepository, IMaterialFacade materialFacade,
                               IUnitRepository unitRepository, IUnitConversionHelper conversionHelper, AmountProcessor amountProcessor)
 {
     m_materialRepository = materialRepository;
     m_materialFacade     = materialFacade;
     m_unitRepository     = unitRepository;
     m_conversionHelper   = conversionHelper;
     m_amountProcessor    = amountProcessor;
 }
コード例 #5
0
 public RecipeRepository(IDatabase database, ICache cache, ISession session, IMaterialRepository materialRepository, IUnitRepository unitRepository, IUnitConversionHelper conversionHelper)
 {
     m_database           = database;
     m_cache              = cache;
     m_session            = session;
     m_materialRepository = materialRepository;
     m_unitRepository     = unitRepository;
     m_conversionHelper   = conversionHelper;
 }
コード例 #6
0
 public MaterialThresholdRepository(IPerProjectDbCache cache,
                                    ISession session,
                                    IMaterialRepository materialRepository,
                                    IDatabase database,
                                    IUnitConversionHelper unitConvertor)
 {
     m_cache              = cache;
     m_session            = session;
     m_materialRepository = materialRepository;
     m_database           = database;
     m_unitConvertor      = unitConvertor;
 }
コード例 #7
0
 public VirtualProductsController(IWebSession webSession, ILog log, IVirtualProductRepository virtualProductRepository, IErpRepository erpRepository, ICache cache, IMaterialRepository materialRepository, IVirtualProductFacade virtualProductFacade, IMaterialFacade materialFacade, IUnitConversionHelper conversionHelper, IDatabase database, IMaterialThresholdRepository materialThresholdRepository)
     : base(webSession, log)
 {
     m_virtualProductRepository = virtualProductRepository;
     m_erpRepository            = erpRepository;
     m_cache = cache;
     m_materialRepository          = materialRepository;
     m_virtualProductFacade        = virtualProductFacade;
     m_materialFacade              = materialFacade;
     m_conversionHelper            = conversionHelper;
     m_database                    = database;
     m_materialThresholdRepository = materialThresholdRepository;
 }
コード例 #8
0
ファイル: MaterialFacade.cs プロジェクト: MichalTecl/Elsa
 public MaterialFacade(IDatabase database,
                       IMaterialRepository materialRepository,
                       IUnitRepository unitRepository,
                       IUnitConversionHelper conversionHelper,
                       IVirtualProductRepository virtualProductRepository,
                       ISession session,
                       IMaterialThresholdRepository materialThresholdRepository)
 {
     m_database                 = database;
     m_materialRepository       = materialRepository;
     m_unitRepository           = unitRepository;
     m_conversionHelper         = conversionHelper;
     m_virtualProductRepository = virtualProductRepository;
     m_session = session;
     m_materialThresholdRepository = materialThresholdRepository;
 }
コード例 #9
0
 public ProductionFacade(
     IDatabase database,
     IMaterialBatchRepository batchRepository,
     IMaterialRepository materialRepository,
     IUnitConversionHelper unitConversion,
     AmountProcessor amountProcessor,
     ILog log,
     IMaterialBatchFacade batchFacade, IUnitRepository unitRepository, ISession session)
 {
     m_database           = database;
     m_batchRepository    = batchRepository;
     m_materialRepository = materialRepository;
     m_unitConversion     = unitConversion;
     m_amountProcessor    = amountProcessor;
     m_log            = log;
     m_batchFacade    = batchFacade;
     m_unitRepository = unitRepository;
     m_session        = session;
 }
コード例 #10
0
 public StockEventRepository(IPerProjectDbCache cache,
                             Lazy <IMaterialBatchFacade> batchFacade,
                             IMaterialBatchRepository batchRepository,
                             AmountProcessor amountProcessor,
                             IMaterialRepository materialRepository,
                             ISession session,
                             IDatabase database, IUnitRepository unitRepository, IUnitConversionHelper conversionHelper,
                             IPurchaseOrderRepository orderRepository, IServiceLocator serviceLocator)
 {
     m_cache              = cache;
     m_batchFacade        = batchFacade;
     m_batchRepository    = batchRepository;
     m_amountProcessor    = amountProcessor;
     m_materialRepository = materialRepository;
     m_session            = session;
     m_database           = database;
     m_unitRepository     = unitRepository;
     m_conversionHelper   = conversionHelper;
     m_orderRepository    = orderRepository;
     m_serviceLocator     = serviceLocator;
 }
コード例 #11
0
 public MaterialBatchRepository(IDatabase database,
                                ISession session,
                                IUnitConversionHelper conversionHelper,
                                IMaterialRepository materialRepository,
                                IVirtualProductRepository virtualProductRepository,
                                ICache cache,
                                Lazy <IMaterialBatchFacade> materialBatchFacade,
                                ISupplierRepository supplierRepository,
                                ICurrencyConversionHelper currencyConversionHelper, IServiceLocator serviceLocator, Lazy <IRecipeRepository> recipeRepository)
 {
     m_database                 = database;
     m_session                  = session;
     m_conversionHelper         = conversionHelper;
     m_materialRepository       = materialRepository;
     m_virtualProductRepository = virtualProductRepository;
     m_cache = cache;
     m_materialBatchFacade      = materialBatchFacade;
     m_supplierRepository       = supplierRepository;
     m_currencyConversionHelper = currencyConversionHelper;
     m_serviceLocator           = serviceLocator;
     m_recipeRepository         = recipeRepository;
 }
コード例 #12
0
ファイル: MaterialRepository.cs プロジェクト: MichalTecl/Elsa
 public MaterialRepositoryWithPostponedCache(IDatabase database, ISession session, CacheWithPostponedRemoval cache, IUnitConversionHelper conversionHelper)
     : base(database, session, cache, conversionHelper)
 {
     m_ppCache = cache;
 }
コード例 #13
0
        public IExtendedMaterialModel CreateBatch(decimal batchAmount, IMaterialUnit preferredBatchUnit, IUnitConversionHelper conversions)
        {
            // Nominal = 1kg
            // Batch = 500g
            var batchUnit = conversions.GetPrefferedUnit(preferredBatchUnit, NominalUnit);                            //g
            var convertedNominalAmount = conversions.ConvertAmount(NominalUnit.Id, batchUnit.Id, NominalAmount);      // 1000g
            var convertedBatchAmount   = conversions.ConvertAmount(preferredBatchUnit.Id, batchUnit.Id, batchAmount); //500g

            var conversionFactor = convertedBatchAmount / convertedNominalAmount;                                     // 0.5

            var batch = new ExtendedMaterial(Adaptee)
            {
                BatchUnit = batchUnit, BatchAmount = convertedBatchAmount
            };

            var batchComponents = new List <MaterialComponent>(m_components.Count);

            foreach (var sourceComponent in m_components)
            {
                var componentBatchAmount = sourceComponent.Amount * conversionFactor;

                var batchedComponentMaterial = sourceComponent.Material.CreateBatch(
                    componentBatchAmount,
                    sourceComponent.Unit,
                    conversions);

                var batchComponent = new MaterialComponent(sourceComponent.Unit, batchedComponentMaterial, componentBatchAmount, null);
                batchComponents.Add(batchComponent);
            }

            return(batch);
        }
コード例 #14
0
ファイル: AmountProcessor.cs プロジェクト: MichalTecl/Elsa
 public AmountProcessor(IUnitConversionHelper conversionHelper, IUnitRepository unitRepository)
 {
     m_conversionHelper = conversionHelper;
     m_unitRepository = unitRepository;
 }