Example #1
0
            static public IBookTarget BuildTargetFromElement(IBookIndex element, ITargetValues values, IProcessConfig config)
            {
                uint articleCode = element.Code();

                IPayrollArticle targetArticle = config.FindArticle(articleCode);

                IPayrollConcept targetConcept = config.FindConcept(targetArticle.ConceptCode());

                IBookTarget target = TargetFactory.BuildTargetWithValues(element, targetArticle, targetConcept, values);

                return(target);
            }
Example #2
0
            public static IDictionary <IBookIndex, IBookTarget> BuildEvaluationStream(IDictionary <IBookIndex, IBookTarget> initialStream,
                                                                                      IBookParty[] contracts, IBookParty[] positions, IPayrollArticle article, IProcessConfig configModule)
            {
                ITargetValues emptyValues = null;

                IPayrollConcept concept = configModule.FindConcept(article.ConceptCode());

                IBookParty[] parties = concept.GetTargetParties(BookParty.GetEmpty(), contracts, positions);

                var targets = parties.Aggregate(initialStream,
                                                (agr, party) => BuildArticleTarget(initialStream, party, article, emptyValues, configModule));

                return(targets);
            }
Example #3
0
        public ITargetStream AddTargetIntoSubLevel(SymbolName article, ITargetValues values, IProcessConfig config)
        {
            uint articleCode = article.Code;

            IPayrollArticle targetArticle = config.FindArticle(articleCode);

            uint conceptCode = targetArticle.ConceptCode();

            IPayrollConcept targetConcept = config.FindConcept(conceptCode);

            IBookParty addParty = targetConcept.GetTargetParty(LastParty());

            var retTuple = TargetsTupleComposer.AddTargetBySymbol(Targets(),
                                                                  addParty, article, values, config);

            var nextFacts = retTuple.Item2;

            var nextIndex = retTuple.Item1;

            var nextParty = targetConcept.GetNextTargetParty(nextIndex);

            return(new TargetStream(nextFacts, nextParty, nextIndex));
        }
Example #4
0
        public IPayrollConcept ArticleConceptFromModels(Assembly configAssembly, IPayrollArticle article)
        {
            IPayrollConcept baseConcept = ConceptFromModels(configAssembly, article.ConceptCode());

            return(baseConcept);
        }
Example #5
0
            public static string LogConceptInfo(IPayrollArticle article)
            {
                string lineDefinition = string.Format("{0} - {1} - {2}\n", article.ArticleName(), article.ConceptName(), article.ConceptCode());

                return(lineDefinition);
            }
Example #6
0
            public static string LogHeaderInfo(IPayrollArticle article, IPayrollArticle[] articles)
            {
                string lineCountInfo = "";

                if (articles == null)
                {
                    lineCountInfo = "empty";
                }
                else
                {
                    lineCountInfo = string.Format("{0}", articles.Length);
                }
                string lineDefinition = string.Format("count - {0} - {1} - {2} - {3}", lineCountInfo, article.ArticleName(), article.ConceptName(), article.ConceptCode());

                return(lineDefinition);
            }
Example #7
0
        public void LogConceptsInModels(IDictionary <uint, IPayrollArticle> articles, IDictionary <uint, IPayrollConcept> concepts, string testName)
        {
            Stream logStream = OpenCustomStream(testName);

            using (StreamWriter logWriter = new StreamWriter(logStream))
            {
                logWriter.WriteLine("\n--- begin ---");

                foreach (var articlePair in articles)
                {
                    IPayrollArticle article = articlePair.Value;

                    IPayrollConcept concept = ModelConceptsLogger.FindConceptForCode(concepts, article.ConceptCode());

                    string lineDefinition = ModelConceptsLogger.LogConceptNames(concept, article);

                    logWriter.WriteLine(lineDefinition);
                }

                logWriter.WriteLine("--- end ---");
            }
        }