예제 #1
0
    def izin_basvuru_sonuc_kaydet(self):

        """
        İzin işlemleriyle ilgilenen personel, izin başvurusu yapan personelin
        iznini kaydeder.
        TODO : Personele vekalet edecek kişinin seçimi yapılmalı

        """
        from datetime import date
        personel = Personel.objects.get(self.current.task_data['izin_personel_key'])
        form = self.input['form']
        izin = Izin()
        izin.tip = form['izin_turu']
        izin.baslangic = form['izin_baslangic']
        izin.bitis = form['izin_bitis']
        izin.onay = date.today()
        izin.adres = form['izin_adres']
        izin.personel = personel
        izin.save()
        self.current.output['msgbox'] = {
            'type': 'info', "title": _(u'İzin Başvurusu Onaylandı'),
            "msg": _(u'İzin talebi başarıyla onaylanmıştır.')
        }
예제 #2
0
    def izin_basvuru_sonuc_kaydet(self):

        """
        İzin işlemleriyle ilgilenen personel, izin başvurusu yapan personelin
        iznini kaydeder.
        TODO : Personele vekalet edecek kişinin seçimi yapılmalı

        """
        from datetime import date
        personel = Personel.objects.get(self.current.task_data['izin_personel_key'])
        form = self.input['form']
        izin = Izin()
        izin.tip = form['izin_turu']
        izin.baslangic = form['izin_baslangic']
        izin.bitis = form['izin_bitis']
        izin.onay = date.today()
        izin.adres = form['izin_adres']
        izin.personel = personel
        izin.save()
        self.current.output['msgbox'] = {
            'type': 'info', "title": _(u'İzin Başvurusu Onaylandı'),
            "msg": _(u'İzin talebi başarıyla onaylanmıştır.')
        }
    def ucret_hesapla(self):
        """
        Seçilen ay ve yıla göre, seçilen her bir öğretim elemanının
        resmi tatil ve izinleri dikkate alarak aylık ders saati planlamasını
        yapar
        """
        okutman_personel = Personel.objects.get(user=self.current.user)
        okutman = Okutman.objects.get(personel=okutman_personel)
        okutman_adi = okutman.ad + ' ' + okutman.soyad

        yil = self.current.task_data["yil"]  # girilen yil
        ay = self.current.task_data["ay"]  # girilen ayin orderi
        ay_isim = self.current.task_data["ay_isim"]  # ayin adi

        takvim = calendar.monthrange(yil, ay)
        # verilen yıl ve aya göre tuple şeklinde ayın ilk gününü
        # ve ayın kaç gün sürdüğü bilgisini döndürür.
        # Ayın ilk günü = 0-6 Pazt-Pazar
        # 2016 yılı Temmuz ayı için = (4,31)

        birim_no = self.current.role.unit.yoksis_no  # rolden gelecek
        birim_unit = Unit.objects.get(yoksis_no=birim_no)

        # Secilen ay hangi donemleri kapsiyor, kac donemi kapsıyorsa
        # o donemleri dondürür.
        donem_list = Donem.takvim_ayina_rastlayan_donemler(yil, ay, takvim)

        # Resmi tatilerin gununu (23, 12, 8) gibi ve doneme gore akademik takvim donduruyor
        resmi_tatil_list, akademik_takvim_list = Takvim.resmi_tatil_gunleri_getir(donem_list, birim_unit, yil, ay)

        # Kapsadığı dönemlere göre ders baslangıc ve bitis tarihlerini
        # baz alarak kapsadığı her bir dönemin seçilen ayda hangi gün
        # aralıklarını kapsadığı bilgisini tuple olarak dondurur. Bir
        # dönemi kapsıyorsa bir tuple, iki dönemi kapsıyorsa iki tuple
        # döner. (4,12) (19,31) gibi
        tarih_araligi = DU.donem_aralik_dondur(donem_list, yil, ay, takvim, akademik_takvim_list)

        object_list = ['Öğretim Elemanı']
        tarih_list = list(range(1, takvim[1] + 1))
        for tarih in tarih_list:
            object_list.append(' ' + str(tarih))

        # object_list = ['Ogretim Elemani', 'bir', 'iki', 'uc']
        _form = JsonForm(current=self.current)

        kontrol = self.current.task_data["control"]
        if kontrol:
            _form.title = _(u"%(ad)s - %(birim)s %(yil)s-%(ay)s AYI DERS PUANTAJ TABLOSU") % {
                'ad': okutman_adi.upper(),
                'birim': birim_unit.name,
                'yil': yil,
                'ay': ay_isim.upper()}
            ders_saati_turu = _(u'Ders Saati')

        else:
            _form.title = _(u"%s - %s %s-%s AYI EK DERS PUANTAJ TABLOSU") % (
            okutman_adi.upper(), birim_unit.name, yil, ay_isim.upper())
            ders_saati_turu = _(u'Ek Ders Saati')

        object_list.append(ders_saati_turu)
        self.output['objects'] = [object_list]

        data_list = OrderedDict({})

        # Seçilen okutmanın İzin ve Ücretsiz İzinlerini dikkate alarak, verilen ayda
        # hangi günler izinli olduğunu liste halinde döndürmeye yarayan method
        # [17,18,19] gibi
        personel_izin_list = Izin.personel_izin_gunlerini_getir(okutman, yil, ay)

        # Verilen döneme ve okutmana göre, haftada hangi gün kaç saat dersi
        # (seçilen seçeneğe göre ders veya ek ders) olduğunu gösteren
        # dictionarylerden oluşan liste, seçilen yıl ve ay bir dönemi kapsıyorsa
        # bir dict, iki dönemi kapsıyorsa iki dict döner.
        ders_etkinlik_list = DU.okutman_etkinlikleri_hesaplama(donem_list, okutman, kontrol)

        # Bulunan tarih araliklarina, okutmanın aylık ders etkinliklerine göre
        # ayın hangi gününde dersi varsa kaç saat dersi olduğu bilgisi,
        # izinliyse İ, resmi tatilse R bilgisini bir dictionary e doldurur.
        okutman_aylik_plan, ders_saati = DU.ders_saati_doldur(donem_list, ders_etkinlik_list,
                                                              resmi_tatil_list, personel_izin_list,
                                                              tarih_araligi, yil, ay)

        data_list['Öğretim Elemanı'] = okutman_adi

        for gun in range(1, takvim[1] + 1):
            if gun in okutman_aylik_plan:
                data_list[' ' + str(gun)] = str(okutman_aylik_plan[gun])
            else:
                data_list[' ' + str(gun)] = ' '

        data_list[ders_saati_turu] = str(ders_saati)

        item = {
            "type": "table-multiRow",
            "fields": data_list,
            "actions": False,
            'key': okutman.key
        }

        self.output['objects'].append(item)

        _form.pdf_sec = fields.Button(_(u"Pdf Çıkar"))
        _form.help_text = _(u"""
                         R: Resmi Tatil
                         İ: İzinli""")
        self.form_out(_form)
    def ucret_hesapla(self):
        """
        Seçilen ay ve yıla göre, seçilen her bir öğretim elemanının
        resmi tatil ve izinleri dikkate alarak aylık ders saati planlamasını
        yapar
        """
        okutman_personel = Personel.objects.get(user=self.current.user)
        okutman = Okutman.objects.get(personel=okutman_personel)
        okutman_adi = okutman.ad + ' ' + okutman.soyad

        yil = self.current.task_data["yil"]  # girilen yil
        ay = self.current.task_data["ay"]  # girilen ayin orderi
        ay_isim = self.current.task_data["ay_isim"]  # ayin adi

        takvim = calendar.monthrange(yil, ay)
        # verilen yıl ve aya göre tuple şeklinde ayın ilk gününü
        # ve ayın kaç gün sürdüğü bilgisini döndürür.
        # Ayın ilk günü = 0-6 Pazt-Pazar
        # 2016 yılı Temmuz ayı için = (4,31)

        birim_no = self.current.role.unit.yoksis_no  # rolden gelecek
        birim_unit = Unit.objects.get(yoksis_no=birim_no)

        # Secilen ay hangi donemleri kapsiyor, kac donemi kapsıyorsa
        # o donemleri dondürür.
        donem_list = Donem.takvim_ayina_rastlayan_donemler(yil, ay, takvim)

        # Resmi tatilerin gununu (23, 12, 8) gibi ve doneme gore akademik takvim donduruyor
        resmi_tatil_list, akademik_takvim_list = Takvim.resmi_tatil_gunleri_getir(
            donem_list, birim_unit, yil, ay)

        # Kapsadığı dönemlere göre ders baslangıc ve bitis tarihlerini
        # baz alarak kapsadığı her bir dönemin seçilen ayda hangi gün
        # aralıklarını kapsadığı bilgisini tuple olarak dondurur. Bir
        # dönemi kapsıyorsa bir tuple, iki dönemi kapsıyorsa iki tuple
        # döner. (4,12) (19,31) gibi
        tarih_araligi = DU.donem_aralik_dondur(donem_list, yil, ay, takvim,
                                               akademik_takvim_list)

        object_list = ['Öğretim Elemanı']
        tarih_list = list(range(1, takvim[1] + 1))
        for tarih in tarih_list:
            object_list.append(' ' + str(tarih))

        # object_list = ['Ogretim Elemani', 'bir', 'iki', 'uc']
        _form = JsonForm(current=self.current)

        kontrol = self.current.task_data["control"]
        if kontrol:
            _form.title = _(
                u"%(ad)s - %(birim)s %(yil)s-%(ay)s AYI DERS PUANTAJ TABLOSU"
            ) % {
                'ad': okutman_adi.upper(),
                'birim': birim_unit.name,
                'yil': yil,
                'ay': ay_isim.upper()
            }
            ders_saati_turu = _(u'Ders Saati')

        else:
            _form.title = _(u"%s - %s %s-%s AYI EK DERS PUANTAJ TABLOSU") % (
                okutman_adi.upper(), birim_unit.name, yil, ay_isim.upper())
            ders_saati_turu = _(u'Ek Ders Saati')

        object_list.append(ders_saati_turu)
        self.output['objects'] = [object_list]

        data_list = OrderedDict({})

        # Seçilen okutmanın İzin ve Ücretsiz İzinlerini dikkate alarak, verilen ayda
        # hangi günler izinli olduğunu liste halinde döndürmeye yarayan method
        # [17,18,19] gibi
        personel_izin_list = Izin.personel_izin_gunlerini_getir(
            okutman, yil, ay)

        # Verilen döneme ve okutmana göre, haftada hangi gün kaç saat dersi
        # (seçilen seçeneğe göre ders veya ek ders) olduğunu gösteren
        # dictionarylerden oluşan liste, seçilen yıl ve ay bir dönemi kapsıyorsa
        # bir dict, iki dönemi kapsıyorsa iki dict döner.
        ders_etkinlik_list = DU.okutman_etkinlikleri_hesaplama(
            donem_list, okutman, kontrol)

        # Bulunan tarih araliklarina, okutmanın aylık ders etkinliklerine göre
        # ayın hangi gününde dersi varsa kaç saat dersi olduğu bilgisi,
        # izinliyse İ, resmi tatilse R bilgisini bir dictionary e doldurur.
        okutman_aylik_plan, ders_saati = DU.ders_saati_doldur(
            donem_list, ders_etkinlik_list, resmi_tatil_list,
            personel_izin_list, tarih_araligi, yil, ay)

        data_list['Öğretim Elemanı'] = okutman_adi

        for gun in range(1, takvim[1] + 1):
            if gun in okutman_aylik_plan:
                data_list[' ' + str(gun)] = str(okutman_aylik_plan[gun])
            else:
                data_list[' ' + str(gun)] = ' '

        data_list[ders_saati_turu] = str(ders_saati)

        item = {
            "type": "table-multiRow",
            "fields": data_list,
            "actions": False,
            'key': okutman.key
        }

        self.output['objects'].append(item)

        _form.pdf_sec = fields.Button(_(u"Pdf Çıkar"))
        _form.help_text = _(u"""
                         R: Resmi Tatil
                         İ: İzinli""")
        self.form_out(_form)