Esempio n. 1
0
        public async Task <IActionResult> PersonelListeleAsync(string filter, [FromBody] IQueryObject queryObject)
        {
            var today        = DateTime.Today;
            var personelList = await personelRepository.GetsByQuery(queryObject, today.Year, today.Month, filter);



            var personelsJson = ConvertToJsonFormat(personelList.Items.ToList());

            personelsJson.uid     = "Employee-List";
            personelsJson.perPage = 15;
            personelsJson.pageNo  = 1;
            personelsJson.tableNo = TableConstants.EmployeeListTableNo;
            return(Ok(personelsJson));
        }
        public async Task <IActionResult> MonthlyTally(int year, int month, [FromBody] IQueryObject queryObject)
        {
            var formuller = await hesaplamaRepository.GetAllAsync();

            var monthlyTallyResource = new MonthlyTallyResource(formuller.ToList());

            monthlyTallyResource.uid     = month + "." + year;
            monthlyTallyResource.tableNo = 1;
            monthlyTallyResource.pageNo  = 1;
            monthlyTallyResource.perPage = 10;

            //seçenekleri yükle
            var options = CreateOptions();

            monthlyTallyResource.optionGroups.Add(options);

            //Header oluştur
            AddDatesToHeaders(monthlyTallyResource.headers, month, year);


            var personelQueryResult = await personelRepository.GetsByQuery(queryObject, year, month);

            var baslangicTarih = new DateTime(year, month, 1);
            var bitisTarih     = this.AySonuTarihHesapla(month, year);

            var aylikPuantaj = await puantajRepository.GetAllMonthlyAsync(baslangicTarih, bitisTarih);


            foreach (var personel in personelQueryResult.Items.OrderBy(p => p.AdSoyad))
            {
                var row = new MonthlyTallyRow();
                row.uid = personel.Id;

                row.columns.Add(new MonthlyTallyColumn
                {
                    uid     = TableConstants.SicilNo.Uid,
                    value   = personel.SicilNo,
                    th      = true,
                    type    = "num",
                    classes = "table-secondary"
                });
                row.columns.Add(new MonthlyTallyColumn
                {
                    uid     = TableConstants.Gorev.Uid,
                    value   = personel.Gorev.UnvanAdi,
                    th      = true,
                    type    = "txt",
                    classes = "table-secondary"
                });
                row.columns.Add(new MonthlyTallyColumn
                {
                    uid     = TableConstants.AdSoyad.Uid,
                    value   = personel.AdSoyad,
                    th      = true,
                    type    = "txt",
                    classes = "table-secondary"
                });
                row.columns.Add(new MonthlyTallyColumn
                {
                    uid     = TableConstants.TCKN.Uid,
                    value   = personel.TcNo,
                    th      = true,
                    type    = "txt",
                    classes = "table-secondary"
                });


                bool isDisabled = false;
                var  today      = DateTime.Today;
                if ((today.Year > year || (today.Month > month && today.Day > 10)) && !(User.IsInRole("ÜstDüzeyYetkili") || User.IsInRole("SistemYöneticisi")))
                {
                    isDisabled = true;
                }
                foreach (var dateTime in AllDatesInMonth(year, month))
                {
                    long secenekId = TableConstants.DefaultOption;
                    var  izin      = aylikPuantaj.Where(p => p.PersonelId == personel.Id && p.Tarih == dateTime).FirstOrDefault();
                    if (izin != null)
                    {
                        secenekId = izin.Secenek.Id;
                    }


                    row.columns.Add(new MonthlyTallyColumn
                    {
                        uid      = dateTime.ToString("dd.MM.yyyy"),
                        type     = "poll",
                        value    = secenekId.ToString(),
                        disabled = isDisabled
                    });
                }


                var hesaplamalar = AylikCalismaVeIzinleriHesapla(personel, aylikPuantaj, formuller);

                foreach (var hesap in hesaplamalar)
                {
                    row.columns.Add(new MonthlyTallyColumn
                    {
                        uid   = hesap.Item1,
                        value = hesap.Item2.ToString(),
                        type  = "num",
                        th    = true
                    });
                }
                monthlyTallyResource.rows.Add(row);
            }

            return(Ok(monthlyTallyResource));
        }