示例#1
0
class HizmetBorclanma(Model):
    tckn = field.String(_(u"TC Kimlik No"), index=True)
    kayit_no = field.String(_(u"Kayıt No"), index=True)
    ad = field.String(_(u"Ad"), index=True)
    soyad = field.String(_(u"Soyad"), index=True)
    emekli_sicil = field.String(_(u"Emekli Sicili"), index=True)
    derece = field.Integer(_(u"Derece"), index=True)
    kademe = field.Integer(_(u"Kademe"), index=True)
    ekgosterge = field.Integer(_(u"Ek Gösterge"), index=True)
    baslama_tarihi = field.Date(_(u"Başlama Tarihi"),
                                index=True,
                                format="%d.%m.%Y")
    bitis_tarihi = field.Date(_(u"Bitiş Tarihi"),
                              index=True,
                              format="%d.%m.%Y")
    gun_sayisi = field.Integer(_(u"Gün Sayısı"), index=True)
    kanun_kod = field.Integer(_(u"Kanun Kodu"),
                              index=True,
                              choices="kanun_kod")
    borc_nevi = field.Integer(_(u"Borç Nevi"), index=True, choices="borc_nevi")
    toplam_tutar = field.Float(_(u"Toplam Tutar"), index=True)
    odenen_miktar = field.Float(_(u"Ödenen Miktar"), index=True)
    calistigi_kurum = field.String(_(u"çalıştığı Kurum"), index=True)
    isyeri_il = field.String(_(u"İşyeri İli"), index=True)
    isyeri_ilce = field.String(_(u"İşyeri İlçesi"), index=True)

    borclanma_tarihi = field.Date(_(u"Borçlanma Tarihi"),
                                  index=True,
                                  format="%d.%m.%Y")
    odeme_tarihi = field.Date(_(u"Ödeme Tarihi"),
                              index=True,
                              format="%d.%m.%Y")
    kurum_onay_tarihi = field.Date(_(u"Kurum Onay Tarihi"),
                                   index=True,
                                   format="%d.%m.%Y")
    sync = field.Integer(_(u"Senkronize"), index=True)
    personel = Personel()

    class Meta:
        app = 'Personel'
        verbose_name = _(u"Borçlanma")
        verbose_name_plural = _(u"Borçlanmalar")
        list_fields = [
            'ad', 'soyad', 'toplam_tutar', 'odenen_miktar', 'borclanma_tarihi'
        ]
        search_fields = ['tckn', 'ad', 'soyad']
        hitap_service_prefix = "HitapBorclanma"

    def __unicode__(self):
        return '%s %s %s' % (self.borc_nevi, self.calistigi_kurum,
                             self.gun_sayisi)
示例#2
0
class Borc(Model):
    """Borç modeli

    Öğrencilerin ödemesi gereken ücret (harc, belge, belgeler, kimlik
    ücretleri vb.) bilgilerinin saklandığı modeldir.

    ``tahakkuk_referans_no`` sistem tarafından üretilen ve
    3. taraflara (banka veya ilgili diğer kurumlar) iletilen tekil
    takip koddur.

    """

    miktar = field.Float(_(u"Borç Miktarı"), index=True)
    para_birimi = field.Integer(_(u"Para Birimi"),
                                index=True,
                                choices="para_birimleri")
    sebep = field.Integer(_(u"Borç Sebebi"),
                          index=True,
                          choices="ogrenci_borc_sebepleri")
    son_odeme_tarihi = field.Date(_(u"Son Ödeme Tarihi"), index=True)
    tahakkuk_referans_no = field.String(_(u"Tahakkuk Referans No"), index=True)
    aciklama = field.String(_(u"Borç Açıklaması"), index=True)
    ogrenci = Ogrenci()
    donem = Donem()

    class Meta:
        app = 'Ogrenci'
        verbose_name = _(u"Borç")
        verbose_name_plural = _(u"Borçlar")
        list_fields = ['miktar', 'son_odeme_tarihi']
        search_fields = ['miktar', 'odeme_tarihi']

    def __unicode__(self):
        return '%s %s %s %s' % (self.miktar, self.para_birimi, self.sebep,
                                self.son_odeme_tarihi)
示例#3
0
class Odeme(Model):
    """Ödeme Modeli

    Öğrencilerin borçlarına karşılık, banka veya diğer yollar ile tahsil
    edilen ödemelerin saklandığı data modelidir.

    """

    miktar = field.Float("Borç Miktarı", index=True)
    para_birimi = field.Integer("Para Birimi",
                                index=True,
                                choices="para_birimleri")
    aciklama = field.String("Borç Açıklaması", index=True)
    odeme_sekli = field.Integer("Ödeme Şekli",
                                index=True,
                                choices="odeme_sekli")
    odeme_tarihi = field.Date("Ödeme Tarihi", index=True)
    borc = Borc()
    ogrenci = Ogrenci()
    banka = Banka()
    banka_sube_kodu = field.String("Banka Sube Kodu", index=True)
    banka_kanal_kodu = field.String("Kanal Kodu", index=True)
    tahsilat_referans_no = field.String("Tahsilat Referans No", index=True)
    donem = Donem()

    class Meta:
        app = 'Ogrenci'
        verbose_name = "Borc"
        verbose_name_plural = "Borclar"
        list_fields = ['miktar', 'son_odeme_tarihi']
        search_fields = ['miktar', 'odeme_tarihi']

    def __unicode__(self):
        return '%s %s %s %s' % (self.miktar, self.para_birimi, self.sebep,
                                format_date(self.son_odeme_tarihi))
示例#4
0
class HizmetUnvan(Model):
    kayit_no = field.String(_(u"Hizmet Kayıt No"), index=True)
    tckn = field.String(_(u"TC Kimlik No"), index=True)
    unvan_kod = field.Integer(_(u"Ünvan Kodu"), index=True)
    unvan_tarihi = field.Date(_(u"Ünvan Tarihi"),
                              index=True,
                              format="%d.%m.%Y")
    unvan_bitis_tarihi = field.Date(_(u"Ünvan Bitiş Tarihi"),
                                    index=True,
                                    format="%d.%m.%Y")
    hizmet_sinifi = field.String(_(u"Hizmet Sınıfı"), index=True)
    asil_vekil = field.String(_(u"Asıl Vekil"), index=True)
    atama_sekli = field.String(_(u"Atama Sekli"), index=True)
    kurum_onay_tarihi = field.Date(_(u"Kurum Onay Tarihi"),
                                   index=True,
                                   format="%d.%m.%Y")
    fhz_orani = field.Float(_(u"FHZ Oranı"), index=True)
    sync = field.Integer(_(u"Senkronize"), index=True)
    personel = Personel()

    class Meta:
        app = 'Personel'
        verbose_name = _(u"Ünvan")
        verbose_name_plural = _(u"Ünvanlar")
        list_fields = ['unvan_kod', 'hizmet_sinifi', 'kurum_onay_tarihi']
        search_fields = ['unvan_kod', 'hizmet_sinifi']
        hitap_service_prefix = "HitapUnvan"

    def __unicode__(self):
        return '%s %s' % (self.unvan_kod, self.hizmet_sinifi)
示例#5
0
class OgrenciProgram(Model):
    """Öğrenci Program Modeli

    Öğrencilerin kayıt yaptırdığı programların saklandığı modeldir.

    Öğrenciler birden fazla programa kayıt yaptırabilirler. Herbir program için ayrı bir öğrenci
    numarası alırlar.

    Aktif dönem öğrencinin ilgili programda geldiği aşamayı ifade eder. Buna göre ilgili program
    derslerinden faydalanabilir.

    Başarı durumu, Genel Ağırlıklı Not Ortalamasını ifade eder:
    http://www.ulakbus.org/wiki/standart_fakulteler_icin_yazilim_ihtiyac_analizi_belgesi.html#basari-hesaplama

    Öğrencinin ilgili programdaki danışman bilgisi de burada saklanır.

    """

    ogrenci_no = field.String(_(u"Öğrenci Numarası"), index=True)
    giris_tarihi = field.Date(_(u"Giriş Tarihi"), index=True, format="%d.%m.%Y")
    mezuniyet_tarihi = field.Date(_(u"Mezuniyet Tarihi"), index=True, format="%d.%m.%Y")
    giris_puan_turu = field.Integer(_(u"Puan Türü"), index=True, choices="giris_puan_turleri")
    giris_puani = field.Float(_(u"Giriş Puani"), index=True)
    aktif_donem = field.String(_(u"Dönem"), index=True)
    ogrencilik_statusu = field.Integer(_(u'Öğrencilik Statüsü'), index=True,
                                       choices="ogrenci_program_durumlar")
    ogrenci_ders_kayit_status = field.Integer(_(u'Öğrencilik Ders Kayıt Statüsü'), index=True,
                                              choices="ogrenci_ders_kayit_durum")
    ayrilma_nedeni = field.Integer(_(u'Ayrılma Nedeni'), index=True, choices='ayrilma_nedeni')
    basari_durumu = field.String(_(u"Başarı Durumu"), index=True)
    diploma_no = field.String(_(u"Diploma No"), index=True)
    ders_programi = DersProgrami()
    danisman = Personel()
    program = Program()
    ogrenci = Ogrenci()
    bagli_oldugu_bolum = Unit(_(u"Bölüm"))

    class Meta:
        app = 'Ogrenci'
        verbose_name = _(u"Öğrenci Programı")
        verbose_name_plural = _(u"Öğrenci Programları")

    class Belgeler(ListNode):
        tip = field.Integer(_(u"Belge Tipi"), choices="belge_tip", index=True)
        aciklama = field.String(_(u"Ek Açıklama"), index=True, default="-", required=False)
        tamam = field.Boolean(_(u"Belge kontrol edildi"), index=True, required=True)

    class OgrenciDonem(ListNode):
        donem = Donem()

    def __unicode__(self):
        return '%s - %s / %s' % (self.ogrenci, self.program.adi, self.program.yil)

    def tarih_sirasiyla_donemler(self):
        r = []
        for ogd in self.OgrenciDonem:
            r.append((ogd.donem.ad, ogd.donem.baslangic_tarihi))
        r.sort(key=lambda tup: tup[1])
        return r
示例#6
0
class OgrenciDersi(Model):
    """Öğrenci Dersi Modeli

    Öğrencilerin ders seçimlerinin saklandığı modeldir.

    Ders alanı Şube modeli ile ilişkilendirilmiştir. Bunun sebebi öğrencilerin ders seçiminin,
    ders ve okutmanın birleştiği şube seçimi olmasıdır. Detaylı bilgiler Şube modelinde bulunabilir.

    Bir öğrencinin devamsızlıktan kalıp kalmadığı devamsizliktan_kalma alanı ile kontrol edilir.
    Bu alan False olduğu zaman öğrenci devamsızlıktan kalır.

    """

    alis_bicimi = field.Integer(_(u"Dersi Alış Biçimi"), index=True)
    sube = Sube(unique=True)
    ogrenci_program = OgrenciProgram()
    ogrenci = Ogrenci(unique=True)
    basari_ortalamasi = field.Float(_(u"Ortalama"), index=True)
    harflendirilmis_not = field.String(_(u"Harf"), index=True)
    katilim_durumu = field.Boolean(_(u"Devamsızlıktan Kalma"), default=False, index=True)

    # arama amaçlı alanlar
    ders = Ders()
    donem = Donem()

    class Meta:
        app = 'Ogrenci'
        verbose_name = _(u"Ögrenci Dersi")
        verbose_name_plural = _(u"Öğrenci Dersleri")
        list_fields = ['ders', 'alis_bicimi']
        search_fields = ['alis_bicimi', ]
        unique_together = [('ogrenci', 'sube')]

    def post_creation(self):
        """
        Yeni bir ``OgrenciDers``'i ilk defa yaratılınca ``donem`` ve ``ders`` alanları,
        bağlı şubeden atanır.

        """

        self.donem = self.sube.donem
        self.ders = self.sube.ders
        self.save()

    def ders_adi(self):
        """
        Şubenin bağlı olduğu ders adı.

        Returns:
            Şubenin bağlı olduğu ders örneğinin adını döndürür.

        """

        return six.text_type(self.ders.ad)

    ders_adi.title = 'Ders'

    def __unicode__(self):
        return '%s %s %s' % (self.ders.kod, self.ders.ad, self.alis_bicimi)
示例#7
0
class DateModel(Model):
    name = field.String(index=True)
    stamp = field.Float(index=True)

    class LNodeWithDate(ListNode):
        date_with_format = field.Date(index=True, format="%d.%m.%Y")
        name = field.String(index=True)
        id = field.Integer(index=True)
示例#8
0
文件: bap.py 项目: zetaops/ulakbus
class BAPGenel(Model):
    class Meta:
        verbose_name = __(u"BAPGenel")

    toplam_kasa = field.Float(__(u"Toplam Kasa"))
    toplam_taahhut = field.Float(__(u"Taahhüt Edilen Tutar"))
    gerceklesen_taahhut_farki = field.Float(__(u"Gerçekleşen Taahhüt Farkı"))

    @classmethod
    def get(cls):
        """
        Bu modelde tek kayit tutulmaktadir. `get` icin bu kaydi donduren
        ozel bir method yazilmistir.

        Returns (BAPGenel): BAPGenel instance

        """
        return cls.objects.get("BAP_GENEL_TEK_KAYIT")
示例#9
0
    class NotDonusumTablosu(ListNode):
        """Not Donusum Tablosu

        Bu tablo, settings seklinde universite geneli icin tanimlanmistir.
        Eger okutman baska bir not donusum tablosu kullanmak isterse,
        harflendirme wf da bu tabloyu duzenlerse, tablo bir list node
        olarak bu modelde saklanir.

        """

        harf = field.String(_(u"Harf"), index=True, choices=HarfNotu.generate_choices())
        dortluk_katsayi = field.Float("", choices=HarfNotu.generate_choices_for_4())
        yuzluk_not_baslangic = field.Float(_(u"Başlangıç"), index=True)
        yuzluk_not_bitis = field.Float(_(u"Bitis"), index=True)

        def __unicode__(self):
            return '%s %s %s %s' % (
                self.harf, self.yuzluk_not_baslangic, self.yuzluk_not_bitis, self.dortluk_katsayi)
示例#10
0
文件: bap.py 项目: zetaops/ulakbus
class BapKasaHareketi(Model):
    class Meta:
        verbose_name = __(u"Kasa Hareketi")
        verbose_name_plural = __(u"Kasa Hareketleri")

    miktar = field.Float(__(u"Miktar"))
    tarih = field.Date(_(u"Tarih"), index=True, format="%d.%m.%Y")
    sebep = field.Integer(_(u"Kasa Giriş Sebebi"),
                          index=True,
                          choices="kasa_giris_sebepleri")
示例#11
0
文件: bap.py 项目: zetaops/ulakbus
class BAPTeklifFiyatIsleme(Model):
    class Meta:
        verbose_name = __(u"Teklif Fiyat İşleme")
        verbose_name_plural = __(u"Teklif Fiyat İşlemeleri")

    firma = BAPFirma()
    kalem = BAPButcePlani()
    satin_alma = BAPSatinAlma()
    birim_fiyat = field.Float(__(u"Birim Fiyat"))
    toplam_fiyat = field.Float(__(u"Toplam Fiyat"))

    def __unicode__(self):
        return "%s-%s" % (self.firma.ad, self.kalem.ad)

    @classmethod
    def en_iyi_teklif_veren_ikinci_ve_ucuncu_firmayi_getir(cls, butce):
        firmalar = cls.objects.filter(kalem=butce).exclude(
            firma=butce.kazanan_firma).order_by('-toplam_fiyat')

        return firmalar[0], firmalar[1]
示例#12
0
文件: bap.py 项目: zetaops/ulakbus
    class UniversiteDisiDestek(ListNode):
        class Meta:
            verbose_name = __(u"Üniversite Dışı Destek")
            verbose_name_plural = __(u"Üniversite Dışı Destekler")

        kurulus = field.String(_(u"Destekleyen Kurulus"))
        tur = field.String(_(u"Destek Türü"))
        destek_miktari = field.Float(_(u"Destek Miktarı"))
        verildigi_tarih = field.Date(_(u"Verildiği Tarih"))
        sure = field.Integer(_(u"Süresi(Ay CinsindenBA)"))
        destek_belgesi = field.File(_(u"Destek Belgesi"), random_name=True)
        destek_belgesi_aciklamasi = field.String(_(u"Belge Açıklaması"),
                                                 required=False)
示例#13
0
文件: bap.py 项目: zetaops/ulakbus
    class EtkinlikButce(ListNode):
        class Meta:
            verbose_name = __(
                u"Bilimsel Etkinliklere Katılım Desteği Bütçe Planı")
            verbose_name_plural = __(
                u"Bilimsel Etkinliklere Katılım Desteği Bütçe Planları")

        talep_turu = field.Integer(
            __(u"Talep Türü"),
            required=True,
            choices='bap_bilimsel_etkinlik_butce_talep_turleri')
        muhasebe_kod = field.String(
            __(u"Muhasebe Kod"),
            choices='analitik_butce_dorduncu_duzey_gider_kodlari',
            default="03.2.6.90")
        istenen_tutar = field.Float(__(u"Talep Edilen Tutar"), required=True)
示例#14
0
class OncekiEgitimBilgisi(Model):
    """Öncekı Eğitim Bilgisi Modeli

    Öğrenciye ait önceki eğitim bilgisi modelidir.

    """

    okul_adi = field.String(_(u"Mezun Olduğu Okul"), index=True)
    diploma_notu = field.Float(_(u"Diploma Notu"), index=True)
    mezuniyet_yili = field.String(_(u"Mezuniyet Yılı"), index=True)
    ogrenci = Ogrenci()

    class Meta:
        app = 'Ogrenci'
        verbose_name = _(u"Önceki Eğitim Bilgisi")
        verbose_name_plural = _(u"Önceki Eğitim Bilgileri")
        list_fields = ['okul_adi', 'diploma_notu', 'mezuniyet_yili']
        search_fields = ['okul_adi', 'diploma_notu', 'mezuniyet_yili']

    def __unicode__(self):
        return '%s %s %s' % (self.okul_adi, self.mezuniyet_yili, self.ogrenci.ad)
示例#15
0
文件: bap.py 项目: zetaops/ulakbus
class BAPProjeTurleri(Model):
    kod = field.String(__(u"Proje tür kodu"))
    ad = field.String(__(u"Proje türünün Adı"))
    aciklama = field.Text(__(u"Proje türüne dair açıklama"))
    min_sure = field.Integer(__(u"Projenin minumum süreceği ay sayısı"))
    max_sure = field.Integer(__(u"Projenin maximum süreceği ay sayısı"))
    butce_ust_limit = field.Float(__(u"Projenin üst limiti"))
    gerceklestirme_gorevlisi_yurutucu_ayni_mi = field.Boolean(
        __(u"Projenin gerçekleştirme görevlisi ile yürütücüsü aynı kişi mi?"))

    class Meta:
        verbose_name = __(u"Proje Türü")
        verbose_name_plural = __(u"Proje Türleri")
        list_fields = ['kod', 'ad', 'min_sure', 'max_sure', 'butce_ust_limit']
        list_filters = [
            'kod',
        ]
        search_fields = [
            'kod', 'ad', 'min_sure', 'max_sure', 'butce_ust_limit'
        ]

    class Belgeler(ListNode):
        class Meta:
            title = __(u"Projede Kullanılacak Belgeler")

        ad = field.String(__(u"Belgenin İsmi"))
        gereklilik = field.Boolean(__(u"Belgenin Zorunluluğu"), required=False)

    class Formlar(ListNode):
        class Meta:
            title = __(u"Projede Kullanılacak Formlar")

        proje_formu = Form()
        gereklilik = field.Boolean(__(u"Formun Gerekliliği"), default=False)
        secili = field.Boolean(__(u"Projeye Dahil Et"), default=False)

    def __unicode__(self):
        return "%s: %s" % (self.kod, self.ad)
示例#16
0
文件: bap.py 项目: zetaops/ulakbus
class BAPProje(Model):
    durum = field.Integer(_(u"Durum"), choices='bap_proje_durum')
    basvuru_rolu = Role()

    # Komisyon kararıyla doldurulacak alanlar
    proje_no = field.Integer(_(u"Proje No"))
    kabul_edilen_baslama_tarihi = field.Date(_(u"Kabul Edilen Başlama Tarihi"))
    kabul_edilen_butce = field.Float(_(u"Kabul Edilen Bütçe"))

    # Başvuruda doldurulacak alanlar
    yurutucu = Okutman()
    gerceklestirme_gorevlisi = Personel()
    harcama_yetkilisi = Personel()
    muhasebe_yetkilisi = Personel()

    tur = BAPProjeTurleri()

    ad = field.String(_(u"Proje Adı"))
    sure = field.Integer(_(u"Süre(Ay Cinsinden Olmalıdır)"))
    anahtar_kelimeler = field.String(
        _(u"Anahtar Kelimeler(Virgülle Ayrılmış Şekilde Olmalıdır)"))
    teklif_edilen_baslama_tarihi = field.Date(
        _(u"Teklif Edilen Başlama Tarihi"))
    teklif_edilen_butce = field.Float(_(u"Teklif Edilen Bütçe"))
    butce_fazlaligi = field.Float(_(u"Bütçe Fazlalığı"), default=0.0)

    konu_ve_kapsam = field.Text(_(u"Konu ve Kapsam"),
                                min_length=650,
                                max_length=1000)
    literatur_ozeti = field.Text(_(u"Literatür Özeti"),
                                 min_length=650,
                                 max_length=1000)
    ozgun_deger = field.Text(_(u"Özgün Değer"),
                             min_length=650,
                             max_length=1000)
    hedef_ve_amac = field.Text(_(u"Hedef ve Amaç"),
                               min_length=650,
                               max_length=1000)
    yontem = field.Text(_(u"Yöntem"), min_length=650, max_length=1000)
    basari_olcutleri = field.Text(_(u"Başarı Ölçütleri"),
                                  min_length=650,
                                  max_length=1000)
    b_plani = field.Text(_(u"B Planı"), min_length=650, max_length=1000)

    bitis_tarihi = field.Date(_(u"Tamamlanma Tarihi"))

    yurutucu_talep = field.String(__(u"Yürütücü Değişikliği Talebi"),
                                  hidden=True,
                                  required=False)
    komisyon_uyesi = Role(__(u"Komisyon Üyesi"), hidden=True)
    talep_uygunlugu = field.Boolean(__(u"Talep Uygunluğu"),
                                    hidden=True,
                                    default=True)

    class ProjeBelgeleri(ListNode):
        class Meta:
            verbose_name = __(u"Proje Belgesi")
            verbose_name_plural = __(u"Proje Belgeleri")

        belge = field.File(_(u"Belge"), random_name=True)
        belge_aciklamasi = field.String(_(u"Belge Açıklaması"), required=False)

    class ArastirmaOlanaklari(ListNode):
        class Meta:
            verbose_name = __(u"Araştırma Olanağı")
            verbose_name_plural = __(u"Araştırma Olanakları")

        lab = Room()
        demirbas = Demirbas()
        personel = Personel()

    class ProjeCalisanlari(ListNode):
        class Meta:
            verbose_name = __(u"Proje Çalışanı")
            verbose_name_plural = __(u"Proje Çalışanları")

        ad = field.String(_(u"Ad"))
        soyad = field.String(_(u"Soyad"))
        nitelik = field.String(_(u"Nitelik"))
        calismaya_katkisi = field.String(_(u"Çalışmaya Katkısı"))
        kurum = field.String(_(u"Kurum"))

    class UniversiteDisiUzmanlar(ListNode):
        class Meta:
            verbose_name = __(u"Üniversite Dışı Uzman")
            verbose_name_plural = __(u"Üniversite Dışı Uzmanlar")

        ad = field.String(_(u"Ad"))
        soyad = field.String(_(u"Soyad"))
        unvan = field.String(_(u"Unvan"))
        kurum = field.String(_(u"Kurum"))
        tel = field.String(_(u"Telefon"))
        faks = field.String(_(u"Faks"))
        eposta = field.String(_(u"E-posta"))

    class UniversiteDisiDestek(ListNode):
        class Meta:
            verbose_name = __(u"Üniversite Dışı Destek")
            verbose_name_plural = __(u"Üniversite Dışı Destekler")

        kurulus = field.String(_(u"Destekleyen Kurulus"))
        tur = field.String(_(u"Destek Türü"))
        destek_miktari = field.Float(_(u"Destek Miktarı"))
        verildigi_tarih = field.Date(_(u"Verildiği Tarih"))
        sure = field.Integer(_(u"Süresi(Ay CinsindenBA)"))
        destek_belgesi = field.File(_(u"Destek Belgesi"), random_name=True)
        destek_belgesi_aciklamasi = field.String(_(u"Belge Açıklaması"),
                                                 required=False)

    # Koordinatörlük tarafından atanacak
    class BAPHakem(ListNode):
        class Meta:
            verbose_name = __(u"Hakem")
            verbose_name_plural = __(u"Hakemler")

        ad = field.String(_(u"Ad"))
        soyad = field.String(_(u"Soyad"))
        # todo hakemler sorulacak
        birim = field.String(_(u"Birim"))

    class ProjeIslemGecmisi(ListNode):
        class Meta:
            verbose_name = __(u"İşlem Geçmişi")
            verbose_name_plural = __(u"İşlem Geçmişi")

        eylem = field.String(_(u"Eylem"))
        aciklama = field.String(_(u"Açıklama"))
        tarih = field.DateTime(_(u"Tarih"))

    class ProjeDegerlendirmeleri(ListNode):
        class Meta:
            verbose_name = __(u"Proje Değerlendirmesi")
            verbose_name_plural = __(u"Proje Değerlendirmeleri")

        hakem = Okutman()
        form_data = field.Text(_(u"Form Data"))
        hakem_degerlendirme_durumu = field.Integer(
            _(u"Hakem/Değerlendirme Durumu"),
            choices='bap_proje_hakem_degerlendirme_durum')
        degerlendirme_sonucu = field.Integer(
            _(u"Değerlendirme Sonucu"),
            choices="bap_proje_degerlendirme_sonuc")

    @lazy_property
    def yurutucu_diger_projeler(self):
        return self.objects.filter(yurutucu=self.yurutucu)

    @lazy_property
    def proje_kodu(self):
        return "%s%s" % (self.tur.kod, self.proje_no)

    class Meta:
        app = 'BAP'
        verbose_name = _(u"BAP Proje")
        verbose_name_plural = _(u"BAP Projeler")
        list_fields = ['ad', 'yurutucu']
        search_fields = ['ad']
        list_filters = ['durum']
        unique_together = [('tur', 'proje_no')]

    def __unicode__(self):
        return "%s: %s" % (self.ad, self.yurutucu.__unicode__())

    def post_save(self):
        if self.durum == 5 and self.is_changed('durum'):
            genel = BAPGenel.get()
            genel.toplam_taahhut += self.kabul_edilen_butce
            genel.save()
示例#17
0
文件: bap.py 项目: zetaops/ulakbus
class BAPButcePlani(Model):
    class Meta:
        verbose_name = __(u"Bap Bütçe Planı")
        verbose_name_plural = __(u"Bap Bütçe Planları")
        list_fields = [
            '_muhasebe_kod', 'kod_adi', 'ad', 'birim_fiyat', 'adet',
            'toplam_fiyat', 'teknik_sartname'
        ]

    # Öğretim üyesinin seçeceği muhasebe kodları
    muhasebe_kod_genel = field.Integer(
        __(u"Muhasebe Kod"),
        choices='bap_ogretim_uyesi_gider_kodlari',
        default=1)

    muhasebe_kod = field.String(
        __(u"Muhasebe Kod"),
        choices='analitik_butce_dorduncu_duzey_gider_kodlari',
        default="03.2.6.90")
    kod_adi = field.String(__(u"Kod Adı"))
    ad = field.String(__(u"Alınacak Malzemenin Adı"))
    birim_fiyat = field.Float(
        __(u"Birim Fiyat"),
        help_text=__(u"Birim fiyatlar KDV dahil fiyatlar olmalıdır!"))
    adet = field.Integer(__(u"Adet"))
    toplam_fiyat = field.Float(__(u"Toplam Fiyat"))
    gerekce = field.Text(__(u"Gerekçe"))
    ilgili_proje = BAPProje()
    onay_tarihi = field.Date(__(u"Onay Tarihi"))
    ozellik = field.Text(__(u"Özellik(Şartname Özeti)"), required=False)
    proje_durum = field.Integer(__(u"Proje Durum"),
                                choices='bap_butce_kalemi_durum',
                                default=1)
    satin_alma_durum = field.Integer(
        __(u"Satın Alma Durumu"),
        choices='bap_butce_plani_satin_alma_durumu',
        default=5)
    kazanan_firma = BAPFirma()
    teknik_sartname = BAPTeknikSartname()
    tasinir_kodu = field.String(__(u"Taşınır Kodu"), choices="tasinir_kodlari")

    gerceklesen_satin_alma_fiyati = field.Float(
        _(u"Gerçekleşen Satın Alma Fiyatı"))

    def post_save(self):
        try:
            kazanan_teklif = BAPTeklifFiyatIsleme.objects.get(
                kalem=self, firma=self.kazanan_firma)
            if self.satin_alma_durum == 4 and self.is_changed(
                    'satin_alma_durum'):

                self.gerceklesen_satin_alma_fiyati = kazanan_teklif.toplam_fiyat
                genel = BAPGenel.get()
                genel.toplam_kasa -= self.gerceklesen_satin_alma_fiyati
                genel.toplam_taahhut -= self.toplam_fiyat
                genel.gerceklesen_taahhut_farki += (
                    self.toplam_fiyat - self.gerceklesen_satin_alma_fiyati)
                genel.save()
                hareket = BapKasaHareketi(
                    miktar=-self.gerceklesen_satin_alma_fiyati,
                    tarih=self.sonuclanma_tarihi,
                    sebep=3)
                hareket.save()
                self.save(internal=True)
        except ObjectDoesNotExist:
            pass

    def __unicode__(self):
        return "%s / %s / %s" % (self.muhasebe_kod or self.muhasebe_kod_genel,
                                 self.kod_adi, self.ad)

    def _muhasebe_kod(self):
        return self.muhasebe_kod or self.muhasebe_kod_genel

    _muhasebe_kod.title = __(u"Muhasebe Kodu")

    @classmethod
    def mevcut_butce(cls, proje):
        return sum([
            x.toplam_fiyat for x in BAPButcePlani.objects.filter(
                ilgili_proje=proje, proje_durum=2, satin_alma_durum=5)
        ])
示例#18
0
文件: bap.py 项目: zetaops/ulakbus
class BAPEtkinlikProje(Model):
    class Meta:
        verbose_name = __(u"Bilimsel Etkinliklere Katılım Desteği")
        verbose_name_plural = __(u"Bilimsel Etkinliklere Katılım Destekleri")
        list_filters = ['durum']

    ulke = field.String(__(u"Ülke"), required=True)
    sehir = field.String(__(u"Şehir"), required=True)
    bildiri_basligi = field.String(__(u"Etkinlik Başlığı"), required=True)
    baslangic = field.Date(__(u"Başlangıç Tarihi"), required=True)
    bitis = field.Date(__(u"Bitiş Tarihi"), required=True)
    katilim_turu = field.Integer(__(u"Katılım Türü"),
                                 required=True,
                                 choices='bap_bilimsel_etkinlik_katilim_turu')
    etkinlik_lokasyon = field.Integer(__(u"Etkinlik Türü"),
                                      required=True,
                                      choices="arastirma_hedef_lokasyon")
    basvuru_yapan = Okutman()
    durum = field.Integer(__(u"Durum"),
                          choices='bap_bilimsel_etkinlik_butce_talep_durum')
    onay_tarihi = field.Date(__(u"Onay Tarihi"))
    toplam_butce = field.Float(_(u"Taahhüt Edilen Bütçe"))

    class EtkinlikButce(ListNode):
        class Meta:
            verbose_name = __(
                u"Bilimsel Etkinliklere Katılım Desteği Bütçe Planı")
            verbose_name_plural = __(
                u"Bilimsel Etkinliklere Katılım Desteği Bütçe Planları")

        talep_turu = field.Integer(
            __(u"Talep Türü"),
            required=True,
            choices='bap_bilimsel_etkinlik_butce_talep_turleri')
        muhasebe_kod = field.String(
            __(u"Muhasebe Kod"),
            choices='analitik_butce_dorduncu_duzey_gider_kodlari',
            default="03.2.6.90")
        istenen_tutar = field.Float(__(u"Talep Edilen Tutar"), required=True)

    class Degerlendirmeler(ListNode):
        class Meta:
            verbose_name = __(
                u"Bilimsel Etkinliklere Katılım Desteği Değerlendirmesi")
            verbose_name_plural = __(
                u"Bilimsel Etkinliklere Katılım Desteği Değerlendirmeleri")

        aciklama = field.Text(_(u"Açıklama"), required=False)
        degerlendirme_sonuc = field.Integer(
            _(u"Değerlendirme Sonucu"),
            choices='bap_proje_degerlendirme_sonuc')

    def __unicode__(self):
        return "%s | %s" % (self.bildiri_basligi,
                            self.basvuru_yapan.__unicode__())

    def _teknik_sartname(self):
        return "Var" if self.teknik_sartname.aciklama else "Yok"

    def post_save(self):
        if self.durum == 2 and self.is_changed('durum'):
            for islem in self.EtkinlikButce:
                self.toplam_butce += islem.istenen_tutar
            self.save(internal=True)

            # BAP genel butce guncelle
            genel = BAPGenel.get()
            genel.toplam_taahhut += self.toplam_butce
            genel.save()

    _teknik_sartname.title = __(u"Teknik Şartname")
示例#19
0
class Demirbas(Model):
    ad = field.String(_(u"Adı"))
    tur = field.String(_(u"Türü"), required=False)
    url = field.String(_(u"Url"), required=False)
    olculer = field.String(_(u"Ölçüler"), required=False)
    yeri = field.String(_(u"Yeri"), required=False)
    muhasebe_kodu = field.String(_(u"Muhasebe Kodu"), required=False)
    kurum_kodu = field.String(_(u"Kurum Kodu"), required=False)

    demirbas_no = field.String(_(u"Demirbas Numarası"))
    satin_alindigi_proje = field.String(_(u"Satın Alındığı Proje"),
                                        required=False)
    satin_alinma_tarihi = field.Date(_(u"Satın Alınma Tarihi"))
    teslim_alinma_tarihi = field.Date(_(u"Teslim Alınma Tarihi"))
    satin_alinma_fiyati = field.Float(_(u"Maliyet"))
    teknik_ozellikler = field.Text(_(u"Teknik Özellikler"), required=False)

    # virgülle ayrılacak
    etiketler = field.String(_(u"Etiketler"), required=False)
    marka = field.String(_(u"Marka"), required=False)
    model = field.String(_(u"Model"), required=False)
    durum = field.Integer(_(u"Durum"), choices='demirbas_durum')
    birim = Unit(_(u"Birim"), required=False)
    sorumlu = Personel()
    notlar = field.Text(_(u"Notlar"), required=False)

    class Meta:
        app = 'Genel'
        verbose_name = _(u"Demirbaş")
        verbose_name_plural = _(u"Demirbaşlar")
        list_fields = [
            'ad', 'tur', 'demirbas_no', 'satin_alinma_tarihi',
            'teslim_alinma_tarihi', 'rezervasyonlar'
        ]
        search_fields = [
            'ad', 'tur', 'etiketler', 'marka', 'model', 'demirbas_no'
        ]

    def __unicode__(self):
        return _(u"%(ad)s") % {'ad': self.ad}

    def rezervasyonlar(self):
        rezervasyonlar = DemirbasRezervasyon.objects.filter(
            rezerve_edilen_demirbas_id=self.key)

        onceki_rezervasyonlar = []

        simdi = datetime.now().date()

        if not rezervasyonlar:
            onceki_rezervasyonlar.append(
                _(u"Bu demirbaşa ait rezervasyon bulunmamaktadır."))
        else:
            for rez in rezervasyonlar:
                onceki_rezervasyonlar.append(
                    "(%s - %s) - %s" %
                    (datetime.strftime(rez.rezervasyon_baslama_tarihi,
                                       DATE_DEFAULT_FORMAT),
                     datetime.strftime(rez.rezervasyon_bitis_tarihi,
                                       DATE_DEFAULT_FORMAT), rez.rezerve_eden))
                if rez.rezervasyon_baslama_tarihi < simdi < rez.rezervasyon_bitis_tarihi:
                    self.durum = 2
                    self.blocking_save()
        return "\n".join(onceki_rezervasyonlar) if len(onceki_rezervasyonlar) > 1 else \
            onceki_rezervasyonlar[0]

    rezervasyonlar.title = _(u"Rezervasyonlar")