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); }
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); }
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)); }
public IPayrollConcept ArticleConceptFromModels(Assembly configAssembly, IPayrollArticle article) { IPayrollConcept baseConcept = ConceptFromModels(configAssembly, article.ConceptCode()); return(baseConcept); }
public static string LogConceptInfo(IPayrollArticle article) { string lineDefinition = string.Format("{0} - {1} - {2}\n", article.ArticleName(), article.ConceptName(), article.ConceptCode()); return(lineDefinition); }
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); }
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 ---"); } }