Esempio n. 1
0
        internal List <MemberStateHistoryModel> GetMemberStateHistories(IEnumerable <Member> members)
        {
            foreach (Member member in members)
            {
                int memberId = member.Id;
                if (member != null)
                {
                    // ATL
                    if (member.BirthDate.HasValue)
                    {
                        MemberMutation memberMutation = MemberMutation.Instance.Single(m => m.Code == MutationCodes.ATL);
                        var            stateHistory   = new MemberStateHistoryModel(memberId, member.MemberNo, memberMutation, member.BirthDate.Value, String.Empty);
                        stateHistories.Add(stateHistory);
                    }

                    // ATD
                    if (member.ChrismationType == "B" && member.ChrismationDate.HasValue && member.BaptizedReasonId.HasValue)
                    {
                        string         baptizedReasonCode = member.BaptizedReason.Code;
                        MemberMutation memberMutation     = MemberMutation.Instance.Single(m => m.Code == baptizedReasonCode);
                        var            stateHistory       = new MemberStateHistoryModel(memberId, member.MemberNo, memberMutation, member.ChrismationDate.Value, String.Empty);
                        stateHistories.Add(stateHistory);
                    }

                    // ATIS
                    if (member.ChrismationFlagAtis && member.ChrismationDate.HasValue)
                    {
                        MemberMutation memberMutation = MemberMutation.Instance.Single(m => m.Code == MutationCodes.ATIS);
                        var            stateHistory   = new MemberStateHistoryModel(memberId, member.MemberNo, memberMutation, member.ChrismationDate.Value, String.Empty);
                        stateHistories.Add(stateHistory);
                    }

                    // ATIOT
                    if (member.ChildhoodBaptizedFlagAtiot && member.ChildhoodBaptizedDate.HasValue)
                    {
                        MemberMutation memberMutation = MemberMutation.Instance.Single(m => m.Code == MutationCodes.ATIOT);
                        var            stateHistory   = new MemberStateHistoryModel(memberId, member.MemberNo, memberMutation, member.ChildhoodBaptizedDate.Value, String.Empty);
                        stateHistories.Add(stateHistory);
                    }

                    // ATPS
                    if (member.JoinFlagAtps && member.JoinDate.HasValue && member.JoinFromShrineId.HasValue)
                    {
                        MemberMutation memberMutation = MemberMutation.Instance.Single(m => m.Code == MutationCodes.ATPS);
                        var            stateHistory   = new MemberStateHistoryModel(memberId, member.MemberNo, memberMutation, member.JoinDate.Value, String.Empty);
                        stateHistories.Add(stateHistory);
                    }

                    // ATP
                    if (member.JoinDate.HasValue && member.JoinFromShrineId.HasValue)
                    {
                        if (member.ChildhoodBaptizedDate.HasValue)
                        {
                            MemberMutation memberMutation = MemberMutation.Instance.Single(m => m.Code == MutationCodes.ATP2);
                            var            stateHistory   = new MemberStateHistoryModel(memberId, member.MemberNo, memberMutation, member.JoinDate.Value, String.Empty);
                            stateHistories.Add(stateHistory);
                        }
                        else if (member.ChrismationDate.HasValue)
                        {
                            MemberMutation memberMutation = MemberMutation.Instance.Single(m => m.Code == MutationCodes.ATP1);
                            var            stateHistory   = new MemberStateHistoryModel(memberId, member.MemberNo, memberMutation, member.JoinDate.Value, String.Empty);
                            stateHistories.Add(stateHistory);
                        }
                    }

                    // AKK
                    if (member.ResignDate.HasValue && member.ResignReasonId.HasValue)
                    {
                        MemberMutation memberMutation = MemberMutation.Instance.Single(m => m.Code == member.ResignReason.Code);
                        var            stateHistory   = new MemberStateHistoryModel(memberId, member.MemberNo, memberMutation, member.ResignDate.Value, String.Empty);
                        stateHistories.Add(stateHistory);
                    }

                    // AKM
                    if (member.DeceasedDate.HasValue && member.ChildhoodBaptizedDate.HasValue && !member.ChrismationDate.HasValue)
                    {
                        MemberMutation memberMutation = MemberMutation.Instance.Single(m => m.Code == MutationCodes.AKM2);
                        var            stateHistory   = new MemberStateHistoryModel(memberId, member.MemberNo, memberMutation, member.DeceasedDate.Value, String.Empty);
                        stateHistories.Add(stateHistory);
                    }
                    else if (member.DeceasedDate.HasValue && member.ChrismationDate.HasValue)
                    {
                        MemberMutation memberMutation = MemberMutation.Instance.Single(m => m.Code == MutationCodes.AKM1);
                        var            stateHistory   = new MemberStateHistoryModel(memberId, member.MemberNo, memberMutation, member.DeceasedDate.Value, String.Empty);
                        stateHistories.Add(stateHistory);
                    }

                    // DKH & ExDKH
                    IList <MemberStateHistoryModel> otherMutations =
                        (from m in context.Members
                         join memberStateHist in context.MemberStateHistories on m.Id equals memberStateHist.MemberId
                         join memberState in context.MemberStates on memberStateHist.MemberStateId equals memberState.Id
                         where m.Id == member.Id
                         select new MemberStateHistoryModel
                    {
                        MemberId = m.Id,
                        MemberNo = m.MemberNo,
                        StateCode = memberState.Code,
                        StateDescription = memberState.Description,
                        EffectiveDate = memberStateHist.EffDate,
                        Notes = memberStateHist.Notes
                    }).ToList();
                    stateHistories.AddRange(otherMutations);
                }
            }

            return(stateHistories.OrderBy(state => state.EffectiveDate).ToList());
        }
Esempio n. 2
0
        private void ProcessSheet3(HSSFWorkbook workbook, int fromYear, int toYear)
        {
            fromYear = 2016;
            DateTime startDatePeriod = GetStartDatePeriod(fromYear);
            DateTime endDatePeriod   = GetEndDatePeriod(toYear);

            ISheet sheet = workbook.GetSheetAt(3);

            int rowIndex = 0;

            sheet.GetRow(1).GetCell(17).SetCellValue(DateTime.Today);

            foreach (Member member in members)
            {
                IRow currentRow = sheet.GetRow(5 + rowIndex);

                // MemberNo
                currentRow.GetCell(1).SetCellValue(member.MemberNo);

                // Nama
                currentRow.GetCell(2).SetCellValue(member.Name);

                // Alamat
                currentRow.GetCell(3).SetCellValue(member.Address);

                // No. Telp
                currentRow.GetCell(6).SetCellValue(member.HomePhone);

                // No. HP
                currentRow.GetCell(7).SetCellValue(member.CellPhone1);

                // Wilayah
                if (member.RegionId.HasValue)
                {
                    string regionCode = member.Region.Code;
                    string wilayah    = regionCode.Any(chr => chr == '-') ? member.Region.Code.Split('-')[0] : regionCode;
                    int    wilayahInt;
                    if (Int32.TryParse(wilayah, out wilayahInt))
                    {
                        currentRow.GetCell(8).SetCellValue(wilayahInt.ToRoman());
                    }
                }

                // Gender
                currentRow.GetCell(9).SetCellValue(member.Gender == "L" ? "P" : "W");

                // Gol Darah
                if (!String.IsNullOrEmpty(member.BloodType?.Trim()))
                {
                    string rhesus = String.IsNullOrEmpty(member.Rhesus) ? "+" : member.Rhesus;
                    currentRow.GetCell(10).SetCellValue(String.Format("{0}{1}", member.BloodType, rhesus));
                }

                // Status Anggota
                currentRow.GetCell(11).SetCellValue(member.ChrismationDate.HasValue ? "S" : "B");

                // Umur tidak perlu dihitung karena sudah ada formulanya di Excel
                //if(!member.DeceasedDate.HasValue)
                //    currentRow.GetCell(12).SetCellValue(member.BirthDate.HasValue ? (DateTime.Today.Year - member.BirthDate.Value.Year).ToString() : "");

                // Pendidikan
                string pendidikan = member.EducationGrade?.Name;
                if (!String.IsNullOrEmpty(pendidikan))
                {
                    currentRow.GetCell(13).SetCellValue(pendidikan);
                }

                // Pekerjaan
                int?   jobId     = member.JobId;
                string pekerjaan = String.Empty;
                if (jobId.HasValue)
                {
                    Job job = context.Jobs.SingleOrDefault(j => j.Id == jobId.Value);
                    if (job != null)
                    {
                        pekerjaan = job.Name ?? String.Empty;
                    }
                    currentRow.GetCell(14).SetCellValue(pekerjaan);
                }

                // Kelompok Etnis
                string etnis = GetKlasisMappingValue(member.EthnicId.GetValueOrDefault(), DBAJMappingEnum.Ethnic);
                if (!String.IsNullOrEmpty(etnis))
                {
                    currentRow.GetCell(15).SetCellValue(etnis);
                }

                // Lahir
                if (member.BirthDate.HasValue)
                {
                    currentRow.GetCell(16).SetCellValue(member.BirthDate.Value);
                }

                // Baptis Dewasa / Anak
                if (!String.IsNullOrEmpty(member.ChrismationType))
                {
                    if (member.ChrismationType == "B" && member.ChrismationDate.HasValue)
                    {
                        currentRow.GetCell(17).SetCellValue(member.ChrismationDate.Value);
                    }
                }
                else
                {
                    if (member.ChildhoodBaptizedDate.HasValue)
                    {
                        currentRow.GetCell(17).SetCellValue(member.ChildhoodBaptizedDate.Value);
                    }
                }

                // Sidi
                if (!String.IsNullOrEmpty(member.ChrismationType) && member.ChrismationType == "S" && member.ChrismationDate.HasValue)
                {
                    currentRow.GetCell(18).SetCellValue(member.ChrismationDate.Value);
                }

                // Atestasi Masuk
                if (member.JoinDate.HasValue)
                {
                    currentRow.GetCell(19).SetCellValue(member.JoinDate.Value);
                }

                // Atestasi Keluar
                if (member.ResignDate.HasValue)
                {
                    currentRow.GetCell(20).SetCellValue(member.ResignDate.Value);
                }

                // Meninggal dunia
                if (member.DeceasedDate.HasValue)
                {
                    currentRow.GetCell(21).SetCellValue(member.DeceasedDate.Value);
                }

                IEnumerable <MemberStateHistoryModel> validStateHistories =
                    (from state in stateHistories
                     where state.MemberId == member.Id && state.EffectiveDate >= startDatePeriod && state.EffectiveDate <= endDatePeriod
                     select state).ToList();

                if (validStateHistories != null)
                {
                    // Tanggal DKH
                    MemberStateHistoryModel dkhState = validStateHistories.FirstOrDefault(m => m.StateCode.Contains("DKH"));
                    if (dkhState != null)
                    {
                        currentRow.GetCell(22).SetCellValue(dkhState.EffectiveDate);
                    }

                    // Ex DKH
                    MemberStateHistoryModel exDkhState = validStateHistories.FirstOrDefault(m => m.StateCode.Contains("Ex.DKH"));
                    if (exDkhState != null)
                    {
                        currentRow.GetCell(23).SetCellValue(exDkhState.EffectiveDate);
                    }

                    // Ex DKH4
                    MemberStateHistoryModel exDkh4State = validStateHistories.FirstOrDefault(m => m.StateCode.Contains("Ex.DKH-4"));
                    if (exDkh4State != null)
                    {
                        currentRow.GetCell(24).SetCellValue(exDkh4State.EffectiveDate);
                    }

                    // Status DKH dan lainnya
                    int cellIndex = 25;
                    foreach (MemberStateHistoryModel stateHistory in validStateHistories)
                    {
                        currentRow.GetCell(cellIndex).SetCellValue(stateHistory.StateCode);
                        cellIndex++;

                        // insufficient column in the Excel template
                        if (cellIndex > 27)
                        {
                            break;
                        }
                    }
                }

                rowIndex++;
            }

            sheet.ForceFormulaRecalculation = true;
        }