PayrollConcept ConceptFor(PayrollTag code) { var emptyValues = new Dictionary <string, object>(); PayrollConcept concept = Concepts.ConceptFor(code.ConceptCode(), code.ConceptName(), emptyValues); return(concept); }
public PayrollTag TagFor(string tagCodeName) { string tagClass = ClassNameFor(tagCodeName); PayrollTag tagInstance = (PayrollTag)Activator.CreateInstance(Type.GetType(tagClass)); return(tagInstance); }
public void test_salary_TAG_SALARY_BASE_code() { PayrollTag tagItem = PayTags.TagFor(SalaryConceptTag.Name); Assert.AreEqual((uint)TagCode.TAG_SALARY_BASE, tagItem.Code); Assert.AreEqual("TAG_SALARY_BASE", tagItem.Name); Assert.AreEqual((uint)ConceptCode.CONCEPT_SALARY_MONTHLY, tagItem.ConceptCode()); }
private PayrollConcept NewTermConcept(CodeNameRefer termRefer, IDictionary <string, object> termValues) { PayrollTag termTag = Tags.TagFromModels(termRefer); PayrollConcept baseConcept = Concepts.ConceptFromModels(termTag); PayrollConcept termConcept = baseConcept.CloneWithValue(termTag.Code, termValues); return(termConcept); }
public PayrollConcept EmptyConceptFor(PayrollTag termTag) { var emptyValues = new Dictionary <string, object>(); PayrollConcept emptyConcept = ConceptFor(termTag.Code, termTag.ConceptName(), emptyValues); PayrollTag[] emptyPending = RecPendingCodes(emptyConcept.PendingCodes()); emptyConcept.SetPendingCodes(emptyPending); return(emptyConcept); }
public PayrollTag[] PendingCodesForTagCode(PayrollTag tagRefer) { PayrollConcept baseConcept = ConceptFromModels(tagRefer); if (baseConcept.TagPendingCodes == null) { return(RecPendingCodes(baseConcept.PendingCodes())); } else { return(baseConcept.TagPendingCodes); } }
public PayrollTag FindTag(uint tagCode) { PayrollTag baseTag = null; if (Models.ContainsKey((TagCode)tagCode)) { baseTag = Models[(TagCode)tagCode]; } else { baseTag = Models[TagCode.TAG_UNKNOWN]; } return(baseTag); }
// concept tree public PayrollConcept ConceptFromModels(PayrollTag termTag) { PayrollConcept baseConcept = null; if (!Models.ContainsKey((ConceptCode)termTag.ConceptCode())) { baseConcept = EmptyConceptFor(termTag); Models[(ConceptCode)termTag.ConceptCode()] = baseConcept; } else { baseConcept = Models[(ConceptCode)termTag.ConceptCode()]; } return(baseConcept); }
// pay tag cache public PayrollTag TagFromModels(CodeNameRefer termTag) { PayrollTag baseTag = null; if (!Models.ContainsKey((TagCode)termTag.Code)) { baseTag = EmptyTagFor(termTag); Models[(TagCode)termTag.Code] = baseTag; } else { baseTag = Models[(TagCode)termTag.Code]; } return(baseTag); }
// add term for a new or ignore for existing term private IDictionary <TagRefer, PayrollConcept> MergeTermToHash(IDictionary <TagRefer, PayrollConcept> termHash, uint periodBase, PayrollTag termRefer, IDictionary <string, object> termValues) { uint mergeCodeOrder = GetTagOrderFrom(termHash, periodBase, termRefer.Code); KeyValuePair <TagRefer, PayrollConcept> termToMerge = NewTermPairWithOrder(periodBase, termRefer, mergeCodeOrder, termValues); if (!termHash.ContainsKey(termToMerge.Key)) { termHash.Add(termToMerge.Key, termToMerge.Value); } ////term_hash.merge!(term_to_merge) do |tag, term_concept, _| //// term_concept ////end //var hashToMerge = new Dictionary<TagRefer, PayrollConcept>() { { termToMerge.Key, termToMerge.Value } }; //var hashMerged = termHash.Union(hashToMerge).ToDictionary(key => key.Key, value => value.Value); //return hashMerged; return(termHash); }
public PayrollTag EmptyTagFor(CodeNameRefer termTag) { PayrollTag emptyTag = TagFor(termTag.Name); return(emptyTag); }