Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.8 kB
2
Indexable
Never
 // Obține data și ora curentă
            DateTime dataCurenta = DateTime.Now;

            // Obține luna curentă și luna următoare
            int lunaCurenta = dataCurenta.Month;
            int lunaUrmatoare = dataCurenta.AddMonths(1).Month;


            //STOCHEZ DATE  PE LUNA CURENTA
            var DateCereriLunaCurenta = DateCereri.Where(date => date.Month == lunaCurenta)
                                                            .ToList();

            //STOCHEZ DATE  PE LUNA URMATOARE
            var DateCereriLunaUrmatoare = DateCereri.Where(date => date.Month == lunaUrmatoare)
                                                           .ToList();
            //STOCHEZ DATE REVIZUITE PE LUNA CURENTA
            var dateRevizuiteLunaCurenta = await _context.DateRevizuite.Where(s => s.IdAngajat == angajatID && s.DataRevizuita.Month == lunaCurenta).ToListAsync();

            //STOCHEZ DATE REVIZUITE PE LUNA URMATOARE
            var dateRevizuiteLunaUrmatoare = await _context.DateRevizuite.Where(s => s.IdAngajat == angajatID && s.DataRevizuita.Month == lunaUrmatoare).ToListAsync();

            //INDEXI
            var counterCM = 0;
            var counterNM = 0;

            // Numărul maxim de zile permise
            int maxDaysAllowed = 4;

            // Calculul zilelor rămase pentru luna curentă
            int dateRamaseLunaCurenta = Math.Max(0, maxDaysAllowed - (DateCereriLunaCurenta.Count() - dateRevizuiteLunaCurenta.Count()));

            // Calculul zilelor rămase pentru luna următoare
            int dateRamaseLunaUrmatoare = Math.Max(0, maxDaysAllowed - (DateCereriLunaUrmatoare.Count() - dateRevizuiteLunaUrmatoare.Count()));


            //ACTUALIZEZ INDEXII
            var selectedStartDates = new DateTime[] { selectedStartDate1, selectedStartDate2, selectedStartDate3, selectedStartDate4 };

            foreach (var selectedStartDate in selectedStartDates)
            {
                if (selectedStartDate != DateTime.MinValue)
                {
                    if (selectedStartDate.Month == lunaCurenta)
                        counterCM++;
                    else if (selectedStartDate.Month == lunaUrmatoare)
                        counterNM++;
                }
            }


            //VALIDEZ;
            if ((counterCM + (maxDaysAllowed -  dateRamaseLunaCurenta)) > maxDaysAllowed)
            {
                return BadRequest(new { success = false, message = "Nu puteți alege mai mult de 4 date în luna curentă." });
            }

            if ((counterNM + (maxDaysAllowed - dateRamaseLunaCurenta)) > maxDaysAllowed)
            {
                return BadRequest(new { success = false, message = "Nu puteți alege mai mult de 4 date în luna următoare." });
            }