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)