Esempio n. 1
0
        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());
        }
Esempio n. 4
0
        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);
        }
Esempio n. 10
0
        // 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);
        }