Esempio n. 1
0
        public bool StartReport()
        {
            fmAccrStatement fmAccrStat = new fmAccrStatement();

            if (fmAccrStat.ShowDialog() != DialogResult.OK)
            {
                return(false);
            }
            string         error    = string.Empty;
            DateTime       datBeg   = fmAccrStat.GetDateBegParam();
            DateTime       datEnd   = fmAccrStat.GetDateEndParam();
            EnumSalaryList typeForm = fmAccrStat.GetFormParam();
            List <int>     id_dep   = fmAccrStat.GetIdCheckedDep();

            Parameters[0] = new ReportParameter("MonthNameBeg", SalaryHelper.GetMonthNameById(datBeg.Month, EnumCaseWorld.Genetive));
            Parameters[1] = new ReportParameter("MonthNameEnd", SalaryHelper.GetMonthNameById(datEnd.Month, EnumCaseWorld.Nominative));

            LoadDataForPrint(datBeg, datEnd, typeForm, id_dep, out error);
            if (error != string.Empty)
            {
                MessageBox.Show("Помилка.\nТехнічна інформація: " + error, "Помилка");
                return(false);
            }
            ReportDataSource report = new ReportDataSource("dsAccrStatement", _accrStatement);

            DataSources.Add(report);
            return(true);
        }
Esempio n. 2
0
        public bool StartReport()
        {
            fmSalaryList fmList = new fmSalaryList(_checkedId == null ? false : true);

            if (fmList.ShowDialog() != DialogResult.OK)
            {
                return(false);
            }

            string         error    = string.Empty;
            DateTime       dat      = fmList.GetDateParam();
            EnumSalaryList typeForm = fmList.GetFormParam();
            List <int>     id_dep   = fmList.GetIdCheckedDep();

            LoadDataForPrint(dat, typeForm, id_dep, out error);
            if (error != string.Empty)
            {
                MessageBox.Show("Помилка.\nТехнічна інформація: " + error, "Помилка");
                return(false);
            }
            ReportDataSource report = new ReportDataSource("dsSalaryList", _salaryList);

            DataSources.Add(report);
            return(true);
        }
Esempio n. 3
0
        private bool LoadDataForPrint(DateTime datBeg, DateTime datEnd, EnumSalaryList typeForm, List <int> id_dep, out string error)
        {
            error = string.Empty;
            List <PersCard> cards = _repoCard.GetAllCards(out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <Salary> salaries = _repoSalary.GetSalariesByParams(0, 0, datBeg, datEnd, out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <Vocation> vocs = _repoVocation.GetVocationsByParams(0, 0, datBeg, datEnd, out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <SickList> lists = _repoSickList.GetSickListsByParams(0, 0, datBeg, datEnd, out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <RefDep> deps = _repoDep.GetAllDeps(out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <AddAccr> addAccrs = _repoAddAccr.GetAddAccrByParams(0, 0, datBeg, datEnd, out error);

            if (error != string.Empty)
            {
                return(false);
            }

            List <RefTypeAddAccr> typeAddAccrs = _repoTypeAddAccr.GetAllTypeAddAccr(out error);

            if (error != string.Empty)
            {
                return(false);
            }

            for (DateTime dat = datBeg; dat <= datEnd; dat = dat.AddMonths(1))
            {
                if (typeForm == EnumSalaryList.ByFirma)
                {
                    _accrStatement.AddRange(
                        (from card in cards
                         join sal in salaries on card.PersCard_Id equals sal.Salary_PersCard_Id
                         join dep in deps on sal.Salary_RefDep_Id equals dep.RefDep_Id
                         where sal.Salary_Date == dat
                         orderby card.PersCard_LName, card.PersCard_FName, card.PersCard_MName
                         select new RPR_AccrStatement
                    {
                        PersCard_Name = SalaryHelper.GetLastNameWithInit(card.PersCard_LName, card.PersCard_MName, card.PersCard_FName),
                        Month = dat.Month,
                        RefDep_Id = dep == null ? 0 : dep.RefDep_Id,
                        NameDep = dep == null ? string.Empty : dep.RefDep_Nm,
                        Salary_Days = sal.Salary_Days,
                        Salary_Hours = sal.Salary_Hours,
                        Salary_BaseSm = sal.Salary_BaseSm,
                        Salary_PensSm = sal.Salary_PensSm,
                        Salary_GradeSm = sal.Salary_GradeSm,
                        Salary_ExpSm = sal.Salary_ExpSm,
                        Salary_OthSm = sal.Salary_OthSm,
                        Salary_KTU = sal.Salary_KTU,
                        Salary_KTUSm = sal.Salary_KTUSm,
                        Salary_ResSm = sal.Salary_ResSm,
                        Vocation_Days = 0,
                        Vocation_Sm = 0,
                        SickList_DaysTmpDis = 0,
                        SickList_ResSm = 0,
                        AddAccr_SmClc = 0,
                        AddAccr_SmNoClc = 0,
                        Accr_TotalSm = sal.Salary_ResSm
                    }).ToList()
                        );

                    _accrStatement.AddRange(
                        (from card in cards
                         join voc in vocs on card.PersCard_Id equals voc.Vocation_PersCard_Id
                         join dep in deps on voc.Vocation_RefDep_Id equals dep.RefDep_Id
                         where voc.Vocation_Date == dat
                         orderby card.PersCard_LName, card.PersCard_FName, card.PersCard_MName
                         select new RPR_AccrStatement
                    {
                        PersCard_Name = SalaryHelper.GetLastNameWithInit(card.PersCard_LName, card.PersCard_MName, card.PersCard_FName),
                        Month = dat.Month,
                        RefDep_Id = dep == null ? 0 : dep.RefDep_Id,
                        NameDep = dep == null ? string.Empty : dep.RefDep_Nm,
                        Salary_Days = 0,
                        Salary_Hours = 0,
                        Salary_BaseSm = 0,
                        Salary_PensSm = 0,
                        Salary_GradeSm = 0,
                        Salary_ExpSm = 0,
                        Salary_OthSm = 0,
                        Salary_KTU = 0,
                        Salary_KTUSm = 0,
                        Salary_ResSm = 0,
                        Vocation_Days = voc.Vocation_Days,
                        Vocation_Sm = voc.Vocation_Sm,
                        SickList_DaysTmpDis = 0,
                        SickList_ResSm = 0,
                        AddAccr_SmClc = 0,
                        AddAccr_SmNoClc = 0,
                        Accr_TotalSm = voc.Vocation_Sm
                    }).ToList()
                        );

                    _accrStatement.AddRange(
                        (from card in cards
                         join sick in lists on card.PersCard_Id equals sick.SickList_PersCard_Id
                         join dep in deps on sick.SickList_RefDep_Id equals dep.RefDep_Id
                         where sick.SickList_Date == dat
                         orderby card.PersCard_LName, card.PersCard_FName, card.PersCard_MName
                         select new RPR_AccrStatement
                    {
                        PersCard_Name = SalaryHelper.GetLastNameWithInit(card.PersCard_LName, card.PersCard_MName, card.PersCard_FName),
                        Month = dat.Month,
                        RefDep_Id = dep == null ? 0 : dep.RefDep_Id,
                        NameDep = dep == null ? string.Empty : dep.RefDep_Nm,
                        Salary_Days = 0,
                        Salary_Hours = 0,
                        Salary_BaseSm = 0,
                        Salary_PensSm = 0,
                        Salary_GradeSm = 0,
                        Salary_ExpSm = 0,
                        Salary_OthSm = 0,
                        Salary_KTU = 0,
                        Salary_KTUSm = 0,
                        Salary_ResSm = 0,
                        Vocation_Days = 0,
                        Vocation_Sm = 0,
                        SickList_DaysTmpDis = sick.SickList_DaysTmpDis,
                        SickList_ResSm = sick.SickList_ResSm,
                        AddAccr_SmClc = 0,
                        AddAccr_SmNoClc = 0,
                        Accr_TotalSm = sick.SickList_ResSm
                    }).ToList()
                        );

                    _accrStatement.AddRange(
                        (from card in cards
                         join addAccr in addAccrs on card.PersCard_Id equals addAccr.AddAccr_PersCard_Id
                         join typeAddAccr in typeAddAccrs on addAccr.AddAccr_RefTypeAddAccr_Id equals typeAddAccr.RefTypeAddAccr_Id
                         join dep in deps on addAccr.AddAccr_RefDep_Id equals dep.RefDep_Id
                         where addAccr.AddAccr_Date == dat
                         orderby card.PersCard_LName, card.PersCard_FName, card.PersCard_MName
                         select new RPR_AccrStatement
                    {
                        PersCard_Name = SalaryHelper.GetLastNameWithInit(card.PersCard_LName, card.PersCard_MName, card.PersCard_FName),
                        Month = dat.Month,
                        RefDep_Id = dep == null ? 0 : dep.RefDep_Id,
                        NameDep = dep == null ? string.Empty : dep.RefDep_Nm,
                        Salary_Days = 0,
                        Salary_Hours = 0,
                        Salary_BaseSm = 0,
                        Salary_PensSm = 0,
                        Salary_GradeSm = 0,
                        Salary_ExpSm = 0,
                        Salary_OthSm = 0,
                        Salary_KTU = 0,
                        Salary_KTUSm = 0,
                        Salary_ResSm = 0,
                        Vocation_Days = 0,
                        Vocation_Sm = 0,
                        SickList_DaysTmpDis = 0,
                        SickList_ResSm = 0,
                        AddAccr_SmClc = ((typeAddAccr.RefTypeAddAccr_Flg & (int)EnumTypeAddAccr_Flg.TypeAddAccr_Clc) > 0) ? addAccr.AddAccr_Sm : 0,
                        AddAccr_SmNoClc = ((typeAddAccr.RefTypeAddAccr_Flg & (int)EnumTypeAddAccr_Flg.TypeAddAccr_Clc) > 0) ? 0 : addAccr.AddAccr_Sm,
                        Accr_TotalSm = ((typeAddAccr.RefTypeAddAccr_Flg & (int)EnumTypeAddAccr_Flg.TypeAddAccr_Clc) > 0) ? addAccr.AddAccr_Sm : 0,
                    }).ToList()
                        );
                }
                else if (typeForm == EnumSalaryList.ByDep)
                {
                    _accrStatement.AddRange(
                        (from card in cards
                         join sal in salaries on card.PersCard_Id equals sal.Salary_PersCard_Id
                         join dep in deps on sal.Salary_RefDep_Id equals dep.RefDep_Id
                         where sal.Salary_Date == dat &&
                         id_dep.Contains(sal.Salary_RefDep_Id)
                         orderby card.PersCard_LName, card.PersCard_FName, card.PersCard_MName
                         select new RPR_AccrStatement
                    {
                        PersCard_Name = SalaryHelper.GetLastNameWithInit(card.PersCard_LName, card.PersCard_MName, card.PersCard_FName),
                        Month = dat.Month,
                        RefDep_Id = dep == null ? 0 : dep.RefDep_Id,
                        NameDep = dep == null ? string.Empty : dep.RefDep_Nm,
                        Salary_Days = sal.Salary_Days,
                        Salary_Hours = sal.Salary_Hours,
                        Salary_BaseSm = sal.Salary_BaseSm,
                        Salary_PensSm = sal.Salary_PensSm,
                        Salary_GradeSm = sal.Salary_GradeSm,
                        Salary_ExpSm = sal.Salary_ExpSm,
                        Salary_OthSm = sal.Salary_OthSm,
                        Salary_KTU = sal.Salary_KTU,
                        Salary_KTUSm = sal.Salary_KTUSm,
                        Salary_ResSm = sal.Salary_ResSm,
                        Vocation_Days = 0,
                        Vocation_Sm = 0,
                        SickList_DaysTmpDis = 0,
                        SickList_ResSm = 0,
                        AddAccr_SmClc = 0,
                        AddAccr_SmNoClc = 0,
                        Accr_TotalSm = sal.Salary_ResSm
                    }).ToList()
                        );
                    _accrStatement.AddRange(
                        (from card in cards
                         join vocation in vocs on card.PersCard_Id equals vocation.Vocation_PersCard_Id
                         join dep in deps on vocation.Vocation_RefDep_Id equals dep.RefDep_Id
                         where vocation.Vocation_Date == dat &&
                         id_dep.Contains(vocation.Vocation_RefDep_Id)
                         orderby card.PersCard_LName, card.PersCard_FName, card.PersCard_MName
                         select new RPR_AccrStatement
                    {
                        PersCard_Name = SalaryHelper.GetLastNameWithInit(card.PersCard_LName, card.PersCard_MName, card.PersCard_FName),
                        Month = dat.Month,
                        RefDep_Id = dep == null ? 0 : dep.RefDep_Id,
                        NameDep = dep == null ? string.Empty : dep.RefDep_Nm,
                        Salary_Days = 0,
                        Salary_Hours = 0,
                        Salary_BaseSm = 0,
                        Salary_PensSm = 0,
                        Salary_GradeSm = 0,
                        Salary_ExpSm = 0,
                        Salary_OthSm = 0,
                        Salary_KTU = 0,
                        Salary_KTUSm = 0,
                        Salary_ResSm = 0,
                        Vocation_Days = vocation.Vocation_Days,
                        Vocation_Sm = vocation.Vocation_Sm,
                        SickList_DaysTmpDis = 0,
                        SickList_ResSm = 0,
                        AddAccr_SmClc = 0,
                        AddAccr_SmNoClc = 0,
                        Accr_TotalSm = vocation.Vocation_Sm
                    }).ToList()
                        );

                    _accrStatement.AddRange(
                        (from card in cards
                         join sick in lists on card.PersCard_Id equals sick.SickList_PersCard_Id
                         join dep in deps on sick.SickList_RefDep_Id equals dep.RefDep_Id
                         where sick.SickList_Date == dat &&
                         id_dep.Contains(sick.SickList_RefDep_Id)
                         orderby card.PersCard_LName, card.PersCard_FName, card.PersCard_MName
                         select new RPR_AccrStatement
                    {
                        PersCard_Name = SalaryHelper.GetLastNameWithInit(card.PersCard_LName, card.PersCard_MName, card.PersCard_FName),
                        Month = dat.Month,
                        RefDep_Id = dep == null ? 0 : dep.RefDep_Id,
                        NameDep = dep == null ? string.Empty : dep.RefDep_Nm,
                        Salary_Days = 0,
                        Salary_Hours = 0,
                        Salary_BaseSm = 0,
                        Salary_PensSm = 0,
                        Salary_GradeSm = 0,
                        Salary_ExpSm = 0,
                        Salary_OthSm = 0,
                        Salary_KTU = 0,
                        Salary_KTUSm = 0,
                        Salary_ResSm = 0,
                        Vocation_Days = 0,
                        Vocation_Sm = 0,
                        SickList_DaysTmpDis = sick.SickList_DaysTmpDis,
                        SickList_ResSm = sick.SickList_ResSm,
                        AddAccr_SmClc = 0,
                        AddAccr_SmNoClc = 0,
                        Accr_TotalSm = sick.SickList_ResSm
                    }).ToList()
                        );

                    _accrStatement.AddRange(
                        (from card in cards
                         join addAccr in addAccrs on card.PersCard_Id equals addAccr.AddAccr_PersCard_Id
                         join typeAddAccr in typeAddAccrs on addAccr.AddAccr_RefTypeAddAccr_Id equals typeAddAccr.RefTypeAddAccr_Id
                         join dep in deps on addAccr.AddAccr_RefDep_Id equals dep.RefDep_Id
                         where addAccr.AddAccr_Date == dat &&
                         id_dep.Contains(addAccr.AddAccr_RefDep_Id)
                         orderby card.PersCard_LName, card.PersCard_FName, card.PersCard_MName
                         select new RPR_AccrStatement
                    {
                        PersCard_Name = SalaryHelper.GetLastNameWithInit(card.PersCard_LName, card.PersCard_MName, card.PersCard_FName),
                        Month = dat.Month,
                        RefDep_Id = dep == null ? 0 : dep.RefDep_Id,
                        NameDep = dep == null ? string.Empty : dep.RefDep_Nm,
                        Salary_Days = 0,
                        Salary_Hours = 0,
                        Salary_BaseSm = 0,
                        Salary_PensSm = 0,
                        Salary_GradeSm = 0,
                        Salary_ExpSm = 0,
                        Salary_OthSm = 0,
                        Salary_KTU = 0,
                        Salary_KTUSm = 0,
                        Salary_ResSm = 0,
                        Vocation_Days = 0,
                        Vocation_Sm = 0,
                        SickList_DaysTmpDis = 0,
                        SickList_ResSm = 0,
                        AddAccr_SmClc = ((typeAddAccr.RefTypeAddAccr_Flg & (int)EnumTypeAddAccr_Flg.TypeAddAccr_Clc) > 0) ? addAccr.AddAccr_Sm : 0,
                        AddAccr_SmNoClc = ((typeAddAccr.RefTypeAddAccr_Flg & (int)EnumTypeAddAccr_Flg.TypeAddAccr_Clc) > 0) ? 0 : addAccr.AddAccr_Sm,
                        Accr_TotalSm = ((typeAddAccr.RefTypeAddAccr_Flg & (int)EnumTypeAddAccr_Flg.TypeAddAccr_Clc) > 0) ? addAccr.AddAccr_Sm : 0,
                    }).ToList()
                        );
                }
            }
            _accrStatement =
                (from accrStat in _accrStatement
                 group accrStat by new { accrStat.Month, accrStat.PersCard_Name, accrStat.RefDep_Id, accrStat.NameDep } into gr
                 select new RPR_AccrStatement
            {
                PersCard_Name = gr.Key.PersCard_Name,
                Month = gr.Key.Month,
                RefDep_Id = gr.Key.RefDep_Id,
                NameDep = gr.Key.NameDep,
                Salary_Days = gr.Sum(rec => rec.Salary_Days),
                Salary_Hours = gr.Sum(rec => rec.Salary_Hours),
                Salary_BaseSm = gr.Sum(rec => rec.Salary_BaseSm),
                Salary_PensSm = gr.Sum(rec => rec.Salary_PensSm),
                Salary_GradeSm = gr.Sum(rec => rec.Salary_GradeSm),
                Salary_ExpSm = gr.Sum(rec => rec.Salary_ExpSm),
                Salary_OthSm = gr.Sum(rec => rec.Salary_OthSm),
                Salary_KTU = gr.Sum(rec => rec.Salary_KTU),
                Salary_KTUSm = gr.Sum(rec => rec.Salary_KTUSm),
                Salary_ResSm = gr.Sum(rec => rec.Salary_ResSm),
                Vocation_Days = gr.Sum(rec => rec.Vocation_Days),
                Vocation_Sm = gr.Sum(rec => rec.Vocation_Sm),
                SickList_DaysTmpDis = gr.Sum(rec => rec.SickList_DaysTmpDis),
                SickList_ResSm = gr.Sum(rec => rec.SickList_ResSm),
                AddAccr_SmClc = gr.Sum(rec => rec.AddAccr_SmClc),
                AddAccr_SmNoClc = gr.Sum(rec => rec.AddAccr_SmNoClc),
                Accr_TotalSm = gr.Sum(rec => rec.Accr_TotalSm)
            }).ToList();
            return(true);
        }
Esempio n. 4
0
        private bool LoadDataForPrint(DateTime dat, EnumSalaryList typeForm, List <int> id_dep, out string error)
        {
            error = string.Empty;
            List <PersCard> cards = _repoCard.GetAllCards(out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <Salary> salaries = _repoSalary.GetSalariesByParams(0, 0, dat, dat, out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <RefDep> deps = _repoDep.GetAllDeps(out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <Vocation> vocations = _repoVocation.GetVocationsByParams(0, 0, dat, dat, out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <SickList> sickLists = _repoSickList.GetSickListsByParams(0, 0, dat, dat, out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <LawContract> lawContracts = _repoLaw.GetLawContractsByParams(0, 0, dat, dat, out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <Payment> payments = _repoPayment.GetPaymentByParams(0, 0, dat, dat, out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <v_TypePayment> typePayment = TypePaymentHelper.GetTypePayment();
            List <AddAccr>       addAccrs    = _repoAddAccr.GetAddAccrByParams(0, 0, dat, dat, out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <RefTypeAddAccr> typeAddAccrs = _repoTypeAddAccr.GetAllTypeAddAccr(out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <AddPayment> addPayment = _repoAddPayment.GetAddPaymentsByParams(0, 0, dat, dat, out error);

            if (error != string.Empty)
            {
                return(false);
            }
            List <RefTypeAddPayment> typeAddPayment = _repoTypeAddPayment.GetAllTypeAddPayments(out error);

            if (error != string.Empty)
            {
                return(false);
            }
            _acses = _repoAcs.GetAllACSByParam(dat, out error);
            if (error != string.Empty)
            {
                return(false);
            }
            if (typeForm == EnumSalaryList.ByFirma)
            {
                _paymentAccr =
                    (from pay in payments
                     join type in typePayment on pay.Payment_Type equals type.Id into typ
                     from type in typ.DefaultIfEmpty()
                     select new RPR_PaymentAccr
                {
                    PersCard_Id = pay.Payment_PersCard_Id,
                    TypeName = "Виплати",
                    Name = type.Name,
                    Sm = pay.Payment_Sm
                }
                    ).ToList();
                _paymentAccr.AddRange(
                    (from accr in addAccrs
                     join type in typeAddAccrs on accr.AddAccr_RefTypeAddAccr_Id equals type.RefTypeAddAccr_Id into typ
                     from type in typ.DefaultIfEmpty()
                     select new RPR_PaymentAccr
                {
                    PersCard_Id = accr.AddAccr_PersCard_Id,
                    TypeName = "Додаткові нарахування",
                    Name = type.RefTypeAddAccr_Nm + " (" + (
                        ((type.RefTypeAddAccr_Flg & (int)EnumTypeAddAccr_Flg.TypeAddAccr_Clc) > 0) ?
                        "Розрах." : "Не розрах.") + ")",
                    Sm = accr.AddAccr_Sm
                }
                    )
                    );
                _paymentAccr.AddRange(
                    (from addPay in addPayment
                     join type in typeAddPayment on addPay.AddPayment_TypeAddPayment_Id equals type.RefTypeAddPayment_Id into typ
                     from type in typ.DefaultIfEmpty()
                     select new RPR_PaymentAccr
                {
                    PersCard_Id = addPay.AddPayment_PersCard_Id,
                    TypeName = "Додаткові виплати",
                    Name = type.RefTypeAddPayment_Nm,
                    Sm = addPay.AddPayment_Sm
                }
                    )
                    );
                _vocSickLaw =
                    (from voc in vocations
                     join dep in deps on voc.Vocation_RefDep_Id equals dep.RefDep_Id into dep
                     from department in dep.DefaultIfEmpty()
                     select new RPR_VocSickLaw
                {
                    PersCard_Id = voc.Vocation_PersCard_Id,
                    TypeName = "Відпускні",
                    RefDep_Name = department.RefDep_Nm,
                    Days = voc.Vocation_Days,
                    Sm = voc.Vocation_Sm
                }
                    ).ToList();
                _vocSickLaw.AddRange(
                    (from list in sickLists
                     join dep in deps on list.SickList_RefDep_Id equals dep.RefDep_Id into dep
                     from department in dep.DefaultIfEmpty()
                     select new RPR_VocSickLaw
                {
                    PersCard_Id = list.SickList_PersCard_Id,
                    TypeName = "Лікарняні",
                    RefDep_Name = department.RefDep_Nm,
                    Days = list.SickList_DaysTmpDis,
                    Sm = list.SickList_ResSm
                }
                    ).ToList()
                    );
                _vocSickLaw.AddRange(
                    (from contract in lawContracts
                     join dep in deps on contract.LawContract_RefDep_Id equals dep.RefDep_Id into dep
                     from department in dep.DefaultIfEmpty()
                     select new RPR_VocSickLaw
                {
                    PersCard_Id = contract.LawContract_PersCard_Id,
                    TypeName = "Договора ЦПХ",
                    RefDep_Name = department.RefDep_Nm,
                    Days = contract.LawContract_Days,
                    Sm = contract.LawContract_Sm
                }
                    ).ToList()
                    );
                _salaryList =
                    (from card in cards
                     join salary in salaries on card.PersCard_Id equals salary.Salary_PersCard_Id into sal
                     from salary in sal.DefaultIfEmpty()
                     join acs in _acses on card.PersCard_Id equals acs.PersCard_Id into rec
                     from acs in rec.DefaultIfEmpty()
                     join dep in deps on(salary == null ? 0 : salary.Salary_RefDep_Id) equals dep.RefDep_Id into dep
                     from department in dep.DefaultIfEmpty()
                     select new RPR_SalaryList
                {
                    PersCard_Id = card.PersCard_Id,
                    PersCard_LName = card.PersCard_LName,
                    PersCard_FName = card.PersCard_FName,
                    PersCard_MName = card.PersCard_MName,
                    PersCard_TIN = card.PersCard_TIN,
                    Salary_DepName = department == null ? string.Empty : department.RefDep_Nm,
                    SalBalance_BegMonthSm = acs == null ? 0 : acs.SalBalance_BegMonthSm,
                    SalBalance_EndMonthSm = acs == null ? 0 : acs.SalBalance_EndMonthSm,
                    Salary_Days = salary == null ? 0 : salary.Salary_Days,
                    Salary_Hours = salary == null ? 0 : salary.Salary_Hours,
                    Salary_BaseSm = salary == null ? 0 : salary.Salary_BaseSm,
                    Salary_PensSm = salary == null ? 0 : salary.Salary_PensSm,
                    Salary_GradeSm = salary == null ? 0 : salary.Salary_GradeSm,
                    Salary_ExpSm = salary == null ? 0 : salary.Salary_ExpSm,
                    Salary_OthSm = salary == null ? 0 : salary.Salary_OthSm,
                    Salary_KTU = salary == null ? 0 : salary.Salary_KTU,
                    Salary_KTUSm = salary == null ? 0 : salary.Salary_KTUSm,
                    Salary_ResSm = salary == null ? 0 : salary.Salary_ResSm,
                    Tax_Sm = acs == null ? 0 : acs.Tax_Sm,
                    Prof_Sm = acs == null ? 0 : acs.Prof_Sm,
                    Military_Sm = acs == null ? 0 : acs.Military_Sm,
                    TotalDeduct_Sm = acs == null ? 0 : (acs.Tax_Sm + acs.Prof_Sm + acs.Military_Sm),
                    NameMonth = SalaryHelper.GetMonthNameById(dat.Month, EnumCaseWorld.Nominative)
                }).ToList();
            }
            else if (typeForm == EnumSalaryList.ByDep)
            {
                //Выплаты
                _paymentAccr =
                    (from pay in payments
                     join salary in salaries on pay.Payment_PersCard_Id equals salary.Salary_PersCard_Id
                     join department in deps on salary.Salary_RefDep_Id equals department.RefDep_Id
                     join type in typePayment on pay.Payment_Type equals type.Id into typ
                     from type in typ.DefaultIfEmpty()
                     where id_dep.Contains(department.RefDep_Id)
                     select new RPR_PaymentAccr
                {
                    PersCard_Id = pay.Payment_PersCard_Id,
                    TypeName = "Виплати",
                    Name = type.Name,
                    Sm = pay.Payment_Sm
                }
                    ).ToList();
                _paymentAccr.AddRange(
                    (from accr in addAccrs
                     join salary in salaries on accr.AddAccr_PersCard_Id equals salary.Salary_PersCard_Id
                     join department in deps on salary.Salary_RefDep_Id equals department.RefDep_Id
                     join type in typeAddAccrs on(accr == null ? 0 : accr.AddAccr_RefTypeAddAccr_Id) equals type.RefTypeAddAccr_Id into typ
                     from type in typ.DefaultIfEmpty()
                     where id_dep.Contains(department.RefDep_Id)
                     select new RPR_PaymentAccr
                {
                    PersCard_Id = accr.AddAccr_PersCard_Id,
                    TypeName = "Додаткові нарахування",
                    Name = type.RefTypeAddAccr_Nm + " (" + (
                        ((type.RefTypeAddAccr_Flg & (int)EnumTypeAddAccr_Flg.TypeAddAccr_Clc) > 0) ?
                        "Розрах." : "Не розрах.") + ")",
                    Sm = accr.AddAccr_Sm
                }
                    )
                    );
                _paymentAccr.AddRange(
                    (from addPay in addPayment
                     join salary in salaries on addPay.AddPayment_PersCard_Id equals salary.Salary_PersCard_Id
                     join department in deps on salary.Salary_RefDep_Id equals department.RefDep_Id
                     join type in typeAddPayment on(addPay == null ? 0 : addPay.AddPayment_TypeAddPayment_Id) equals type.RefTypeAddPayment_Id into typ
                     from type in typ.DefaultIfEmpty()
                     where id_dep.Contains(department.RefDep_Id)
                     select new RPR_PaymentAccr
                {
                    PersCard_Id = addPay.AddPayment_PersCard_Id,
                    TypeName = "Додаткові виплати",
                    Name = type.RefTypeAddPayment_Nm,
                    Sm = addPay.AddPayment_Sm
                }
                    )
                    );
                _vocSickLaw =
                    (from voc in vocations
                     join salary in salaries on voc.Vocation_PersCard_Id equals salary.Salary_PersCard_Id
                     join department in deps on salary.Salary_RefDep_Id equals department.RefDep_Id
                     where id_dep.Contains(department.RefDep_Id)
                     select new RPR_VocSickLaw
                {
                    PersCard_Id = voc.Vocation_PersCard_Id,
                    TypeName = "Відпускні",
                    RefDep_Name = department.RefDep_Nm,
                    Days = voc.Vocation_Days,
                    Sm = voc.Vocation_Sm
                }
                    ).ToList();
                _vocSickLaw.AddRange(
                    (from list in sickLists
                     join salary in salaries on list.SickList_PersCard_Id equals salary.Salary_PersCard_Id
                     join department in deps on salary.Salary_RefDep_Id equals department.RefDep_Id
                     where id_dep.Contains(department.RefDep_Id)
                     select new RPR_VocSickLaw
                {
                    PersCard_Id = list.SickList_PersCard_Id,
                    TypeName = "Лікарняні",
                    RefDep_Name = department.RefDep_Nm,
                    Days = list.SickList_DaysTmpDis,
                    Sm = list.SickList_ResSm
                }
                    ).ToList()
                    );
                _vocSickLaw.AddRange(
                    (from contract in lawContracts
                     join salary in salaries on contract.LawContract_PersCard_Id equals salary.Salary_PersCard_Id
                     join department in deps on salary.Salary_RefDep_Id equals department.RefDep_Id
                     where id_dep.Contains(department.RefDep_Id)
                     select new RPR_VocSickLaw
                {
                    PersCard_Id = contract.LawContract_PersCard_Id,
                    TypeName = "Договора ЦПХ",
                    RefDep_Name = department.RefDep_Nm,
                    Days = contract.LawContract_Days,
                    Sm = contract.LawContract_Sm
                }
                    ).ToList()
                    );

                _salaryList =
                    (from card in cards
                     join salary in salaries on card.PersCard_Id equals salary.Salary_PersCard_Id
                     join department in deps on salary.Salary_RefDep_Id equals department.RefDep_Id
                     join acs in _acses on card.PersCard_Id equals acs.PersCard_Id into rec
                     from acs in rec.DefaultIfEmpty()
                     where id_dep.Contains(salary.Salary_RefDep_Id)
                     select new RPR_SalaryList
                {
                    PersCard_Id = card.PersCard_Id,
                    PersCard_LName = card.PersCard_LName,
                    PersCard_FName = card.PersCard_FName,
                    PersCard_MName = card.PersCard_MName,
                    PersCard_TIN = card.PersCard_TIN,
                    Salary_DepName = department == null ? string.Empty : department.RefDep_Nm,
                    SalBalance_BegMonthSm = acs == null ? 0 : acs.SalBalance_BegMonthSm,
                    SalBalance_EndMonthSm = acs == null ? 0 : acs.SalBalance_EndMonthSm,
                    Salary_Days = salary == null ? 0 : salary.Salary_Days,
                    Salary_Hours = salary == null ? 0 : salary.Salary_Hours,
                    Salary_BaseSm = salary == null ? 0 : salary.Salary_BaseSm,
                    Salary_PensSm = salary == null ? 0 : salary.Salary_PensSm,
                    Salary_GradeSm = salary == null ? 0 : salary.Salary_GradeSm,
                    Salary_ExpSm = salary == null ? 0 : salary.Salary_ExpSm,
                    Salary_OthSm = salary == null ? 0 : salary.Salary_OthSm,
                    Salary_KTU = salary == null ? 0 : salary.Salary_KTU,
                    Salary_KTUSm = salary == null ? 0 : salary.Salary_KTUSm,
                    Salary_ResSm = salary == null ? 0 : salary.Salary_ResSm,
                    Tax_Sm = acs == null ? 0 : acs.Tax_Sm,
                    Prof_Sm = acs == null ? 0 : acs.Prof_Sm,
                    Military_Sm = acs == null ? 0 : acs.Military_Sm,
                    TotalDeduct_Sm = acs == null ? 0 : (acs.Tax_Sm + acs.Prof_Sm + acs.Military_Sm),
                    NameMonth = SalaryHelper.GetMonthNameById(dat.Month, EnumCaseWorld.Nominative)
                }).ToList();
            }
            else if (typeForm == EnumSalaryList.ByPersCard)
            {
                _paymentAccr =
                    (from pay in payments
                     join type in typePayment on pay.Payment_Type equals type.Id into typ
                     from type in typ.DefaultIfEmpty()
                     where _checkedId.Contains(pay.Payment_PersCard_Id)
                     select new RPR_PaymentAccr
                {
                    PersCard_Id = pay.Payment_PersCard_Id,
                    TypeName = "Виплати",
                    Name = type.Name,
                    Sm = pay.Payment_Sm
                }
                    ).ToList();
                _paymentAccr.AddRange(
                    (from accr in addAccrs
                     join type in typeAddAccrs on accr.AddAccr_RefTypeAddAccr_Id equals type.RefTypeAddAccr_Id into typ
                     from type in typ.DefaultIfEmpty()
                     where _checkedId.Contains(accr.AddAccr_PersCard_Id)
                     select new RPR_PaymentAccr
                {
                    PersCard_Id = accr.AddAccr_PersCard_Id,
                    TypeName = "Додаткові нарахування",
                    Name = type.RefTypeAddAccr_Nm + " (" + (
                        ((type.RefTypeAddAccr_Flg & (int)EnumTypeAddAccr_Flg.TypeAddAccr_Clc) > 0) ?
                        "Розрах." : "Не розрах.") + ")",
                    Sm = accr.AddAccr_Sm
                }
                    )
                    );
                _paymentAccr.AddRange(
                    (from addPay in addPayment
                     join type in typeAddPayment on addPay.AddPayment_TypeAddPayment_Id equals type.RefTypeAddPayment_Id into typ
                     from type in typ.DefaultIfEmpty()
                     where _checkedId.Contains(addPay.AddPayment_PersCard_Id)
                     select new RPR_PaymentAccr
                {
                    PersCard_Id = addPay.AddPayment_PersCard_Id,
                    TypeName = "Додаткові виплати",
                    Name = type.RefTypeAddPayment_Nm,
                    Sm = addPay.AddPayment_Sm
                }
                    )
                    );
                _vocSickLaw =
                    (from voc in vocations
                     join dep in deps on voc.Vocation_RefDep_Id equals dep.RefDep_Id into dep
                     from department in dep.DefaultIfEmpty()
                     where _checkedId.Contains(voc.Vocation_PersCard_Id)
                     select new RPR_VocSickLaw
                {
                    PersCard_Id = voc.Vocation_PersCard_Id,
                    TypeName = "Відпускні",
                    RefDep_Name = department.RefDep_Nm,
                    Days = voc.Vocation_Days,
                    Sm = voc.Vocation_Sm
                }
                    ).ToList();
                _vocSickLaw.AddRange(
                    (from list in sickLists
                     join dep in deps on list.SickList_RefDep_Id equals dep.RefDep_Id into dep
                     from department in dep.DefaultIfEmpty()
                     where _checkedId.Contains(list.SickList_PersCard_Id)
                     select new RPR_VocSickLaw
                {
                    PersCard_Id = list.SickList_PersCard_Id,
                    TypeName = "Лікарняні",
                    RefDep_Name = department.RefDep_Nm,
                    Days = list.SickList_DaysTmpDis,
                    Sm = list.SickList_ResSm
                }
                    ).ToList()
                    );
                _vocSickLaw.AddRange(
                    (from contract in lawContracts
                     join dep in deps on contract.LawContract_RefDep_Id equals dep.RefDep_Id into dep
                     from department in dep.DefaultIfEmpty()
                     where _checkedId.Contains(contract.LawContract_PersCard_Id)
                     select new RPR_VocSickLaw
                {
                    PersCard_Id = contract.LawContract_PersCard_Id,
                    TypeName = "Договора ЦПХ",
                    RefDep_Name = department.RefDep_Nm,
                    Days = contract.LawContract_Days,
                    Sm = contract.LawContract_Sm
                }
                    ).ToList()
                    );

                _salaryList =
                    (from card in cards
                     join salary in salaries on card.PersCard_Id equals salary.Salary_PersCard_Id into sal
                     from salary in sal.DefaultIfEmpty()
                     join acs in _acses on card.PersCard_Id equals acs.PersCard_Id into rec
                     from acs in rec.DefaultIfEmpty()
                     join dep in deps on(salary == null ? 0 : salary.Salary_RefDep_Id) equals dep.RefDep_Id into dep
                     from department in dep.DefaultIfEmpty()
                     where _checkedId.Contains(card.PersCard_Id)
                     select new RPR_SalaryList
                {
                    PersCard_Id = card.PersCard_Id,
                    PersCard_LName = card.PersCard_LName,
                    PersCard_FName = card.PersCard_FName,
                    PersCard_MName = card.PersCard_MName,
                    PersCard_TIN = card.PersCard_TIN,
                    Salary_DepName = department == null ? string.Empty : department.RefDep_Nm,
                    SalBalance_BegMonthSm = acs == null ? 0 : acs.SalBalance_BegMonthSm,
                    SalBalance_EndMonthSm = acs == null ? 0 : acs.SalBalance_EndMonthSm,
                    Salary_Days = salary == null ? 0 : salary.Salary_Days,
                    Salary_Hours = salary == null ? 0 : salary.Salary_Hours,
                    Salary_BaseSm = salary == null ? 0 : salary.Salary_BaseSm,
                    Salary_PensSm = salary == null ? 0 : salary.Salary_PensSm,
                    Salary_GradeSm = salary == null ? 0 : salary.Salary_GradeSm,
                    Salary_ExpSm = salary == null ? 0 : salary.Salary_ExpSm,
                    Salary_OthSm = salary == null ? 0 : salary.Salary_OthSm,
                    Salary_KTU = salary == null ? 0 : salary.Salary_KTU,
                    Salary_KTUSm = salary == null ? 0 : salary.Salary_KTUSm,
                    Salary_ResSm = salary == null ? 0 : salary.Salary_ResSm,
                    Tax_Sm = acs == null ? 0 : acs.Tax_Sm,
                    Prof_Sm = acs == null ? 0 : acs.Prof_Sm,
                    Military_Sm = acs == null ? 0 : acs.Military_Sm,
                    TotalDeduct_Sm = acs == null ? 0 : (acs.Tax_Sm + acs.Prof_Sm + acs.Military_Sm),
                    NameMonth = SalaryHelper.GetMonthNameById(dat.Month, EnumCaseWorld.Nominative)
                }).ToList();
            }
            return(true);
        }