Code Monkey home page Code Monkey logo

ulakbus's Introduction

#Ulakbüs - Bütünleşik Üniversite Sistemi

Projemiz başarıyla sonlanmıştır. Projeye ait tüm kodu ilgili depolarında bulabilirsiniz.

Belgeler ve projemiz hakkında detaylı bilgi için Ulakbüs resmi sitesini ziyaret ediniz.

ulakbus's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ulakbus's Issues

Search

search: model icinde arama

Form Grouping

form grouping: uzun formlarin parcali, acilir kapanir veya step step sekilde gosterilmesi

Ayni modele verilen linklerin farkli verbose_name ozelliklerine sahip olabilmesi

Su ornekte oldugu gibi iki farkli field ayni modele baglanabiliyor:
https://github.com/zetaops/ulakbus/blob/master/ulakbus/models/hitap.py#L426

Bu on yuzde ayri fieldlarin ayni isimle gorunmesine yol aciyor.

Bunlara fieldlar gibi verbose_name verebilmeliyiz. Sunun gibi:

    ...
    telefon = field.String("Telefon", index=True)
    personel = Personel() # personelin kendisi
    vekil = Personel("Vekil") # izin durumunda vekili
    ...

ya da baska bir bicimde.

Unitime data analiz ve testler

Unitime ne tip datalar ile calisiyor. Ne istiyor, ne veriyor? Sonuclari kabul edilebilir nitelikte mi?

Bizim data modelimize uyumluluk yol haritasi nasil olur?

tinys3 icin proxy patch

RiakCS'i proxy modda kullanmak diger s3 destekli clientlar ile is yapabilmek icin gerekli. Bunun icin bizim kullanmayi dusundugumuz tinys3'de proxy destegine ihtiyacimiz var.

tinys3 request kutuphanesini kullanmis. request kutuphanesi proxy destekliyor. fakat tinys3 bu ozelligi implementasyonuna almamis... put get operasyonlarina proxy destegi eklenecek.

Model kayderken riak hatasi

Bi modele kayit eklerken iliskili diger model bos ise submit edilen form tmp ile baslayan bir deger ile gonderiliyor.Bu key riak olmadigi icin Exception: Returned empty data from Riak hatasini aliyoruz.

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 2015-09-30 11:43:26,166 - zengine.log - INFO - REQUEST DATA: {"form":{"akts_uygulama":2,"verilis_bicimi":44,"ad":"asdadfas","ders_dili":"tr","akts_teori":4,"kod":"234","program_id":"TMP_Program_4a80dd00cd","zorunlu":true,"kredi":"23","donem_id":"TMP_Program_681081f558"},"cmd":"add","subcmd":"do_list","model":"Ders","token":"81e138361f6c4fb4bea81f4a4efb47e7"}

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: INFO:zengine.log:REQUEST DATA: {"form":{"akts_uygulama":2,"verilis_bicimi":44,"ad":"asdadfas","ders_dili":"tr","akts_teori":4,"kod":"234","program_id":"TMP_Program_4a80dd00cd","zorunlu":true,"kredi":"23","donem_id":"TMP_Program_681081f558"},"cmd":"add","subcmd":"do_list","model":"Ders","token":"81e138361f6c4fb4bea81f4a4efb47e7"}

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 2015-09-30 11:43:26,169 - zengine.log - INFO - TOKEN iNCOMiNG: 81e138361f6c4fb4bea81f4a4efb47e7 

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: INFO:zengine.log:TOKEN iNCOMiNG: 81e138361f6c4fb4bea81f4a4efb47e7 

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 2015-09-30 11:43:26,175 - zengine.log - INFO - 

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: WFCACHE: [u'"SequenceFlow_13", 1', {u'do': None, u'show': None, u'edit': None, u'cmd': u'add', u'list': None, u'update': None, u'object_id': None, u'add': True, u'IS_srlzd': {}, u'delete': None}]

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: INFO:zengine.log:

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: WFCACHE: [u'"SequenceFlow_13", 1', {u'do': None, u'show': None, u'edit': None, u'cmd': u'add', u'list': None, u'update': None, u'object_id': None, u'add': True, u'IS_srlzd': {}, u'delete': None}]

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 2015-09-30 11:43:26,182 - zengine.log - INFO - CHECK PERM: crud

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: INFO:zengine.log:CHECK PERM: crud

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 2015-09-30 11:43:26,183 - zengine.log - INFO - REQUIRE PERM: crud

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: INFO:zengine.log:REQUIRE PERM: crud

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 2015-09-30 11:43:26,184 - zengine.log - INFO - CHECK CRUD PERM: Ders.add

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: INFO:zengine.log:CHECK CRUD PERM: Ders.add

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 2015-09-30 11:43:26,186 - zengine.log - INFO - ::::::::::: ENGINE STARTED :::::::::::

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   CMD:add

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   SUBCMD:do_list

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: INFO:zengine.log:::::::::::: ENGINE STARTED :::::::::::

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   CMD:add

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   SUBCMD:do_list

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 2015-09-30 11:43:26,191 - zengine.log - INFO - CHECK PERM: crud.save_object

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: INFO:zengine.log:CHECK PERM: crud.save_object

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 2015-09-30 11:43:26,192 - zengine.log - INFO - REQUIRE PERM: crud.save_object

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: INFO:zengine.log:REQUIRE PERM: crud.save_object

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 2015-09-30 11:43:26,193 - zengine.log - INFO - CHECK CRUD PERM: Ders.add

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: INFO:zengine.log:CHECK CRUD PERM: Ders.add

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 2015-09-30 11:43:26,194 - zengine.log - INFO - 

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: - - - - - -

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: WORKFLOW: CRUD

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: TASK: save_object ( ServiceTask )

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: DATA:

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   IS: {}

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   cmd: add

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   add: True

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: CURRENT:

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   ACTIVITY: crud_view

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   TOKEN: 81e138361f6c4fb4bea81f4a4efb47e7

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: = = = = = =

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: INFO:zengine.log:

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: - - - - - -

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: WORKFLOW: CRUD

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: TASK: save_object ( ServiceTask )

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: DATA:

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   IS: {}

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   cmd: add

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   add: True

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: CURRENT:

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   ACTIVITY: crud_view

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   TOKEN: 81e138361f6c4fb4bea81f4a4efb47e7

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: = = = = = =

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 2015-09-30 11:43:26,195 - zengine.log - INFO - CRUD CALL

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: INFO:zengine.log:CRUD CALL

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 2015-09-30 11:43:26,196 - zengine.log - INFO - Calling add_view of Ders

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: INFO:zengine.log:Calling add_view of Ders

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: 2015-09-30 11:43:26,277 - zengine.log - INFO - RESPONSE: {"is_login": true}

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: INFO:zengine.log:RESPONSE: {"is_login": true}

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: [2015-09-30 11:43:26 +0000] [70] [ERROR] Error handling request

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: Traceback (most recent call last):

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/gunicorn/workers/async.py", line 52, in handle

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     self.handle_request(listener_name, req, client, addr)

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/gunicorn/workers/ggevent.py", line 159, in handle_request

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     super(GeventWorker, self).handle_request(*args)

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/gunicorn/workers/async.py", line 105, in handle_request

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     respiter = self.wsgi(environ, resp.start_response)

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/Beaker-1.7.0-py2.7.egg/beaker/middleware.py", line 155, in __call__

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     return self.wrap_app(environ, session_start_response)

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/falcon-0.3.0-py2.7.egg/falcon/api.py", line 182, in __call__

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     responder(req, resp, **params)

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/zengine-0.0.9-py2.7.egg/zengine/server.py", line 46, in on_post

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     self.engine.run()

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/zengine-0.0.9-py2.7.egg/zengine/engine.py", line 307, in run

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     self.run_activity()

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/zengine-0.0.9-py2.7.egg/zengine/engine.py", line 329, in run_activity

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     self.workflow_methods[self.current.activity](self.current)

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/zengine-0.0.9-py2.7.egg/zengine/views/crud.py", line 51, in __call__

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     self.__class__.__dict__['%s_view' % (self.cmd or 'list')](self)

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/zengine-0.0.9-py2.7.egg/zengine/views/crud.py", line 129, in add_view

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     self._save_object()

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/zengine-0.0.9-py2.7.egg/zengine/views/crud.py", line 138, in _save_object

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     self.object = self.form.deserialize(data or self.current.input['form'])

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/Pyoko-0.1-py2.7.egg/pyoko/form.py", line 57, in deserialize

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     val)

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/Pyoko-0.1-py2.7.egg/pyoko/db/base.py", line 331, in get

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     return clone._get()

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/Pyoko-0.1-py2.7.egg/pyoko/db/base.py", line 242, in _get

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     self._riak_cache[0])

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:   File "/usr/local/lib/python2.7/site-packages/Pyoko-0.1-py2.7.egg/pyoko/db/base.py", line 257, in _make_model

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]:     "GET Key: %s" % self.key

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: Exception: Returned empty data from Riak

<14>2015-09-30T11:43:26+03:00 69dd6302dbad ulakbus-11[1]: Query: -deleted:TrueGET Key: None

Health Check

Framework veya uygulama seviyesinde basit bir health check'e ihtiyacimiz var.
HTTP 200 donmeli ve response sadece OK stringi icermeli.

Bunu framework seviyesinde saglamak daha mantikli olabilir.

Uygulamada ise belki isleri kolaylastiacak bir tur rapor verilebilir. Sunun gibi:

Riak OK
Redis OK
Zato OK
...

DocStringleri ulakbus.org icin dokumantasyona dahil etmek.

Uygulama ici doc stringlerden dokuman uretip ulakbus.org altinda yayinlanmasinin saglanmasi hem dokumantasyonu zenginlestirip gelistiricilere yardimci olur, hem de bizim kodumuzun genel gorunusu hakkinda detayli bilgi verir. Dokumantasyon eksikliklerimizi de ortaya cikarir.

Sphinx ile bu baglantiyi kurabiliriz.

Personel Askerlik WF

  • Is akisinin cizilmesi
  • View, task ve servislerin yazilmasi
  • Modelin duzenlenmesi

Sort

sort: sonuclarin fieldlara gore azalan artan sekilde siralanabilmesi

Bir workflow üzerinde birden fazla sistem kullanıcısının rol alması

Uygulamada gelinen aşamada akış (workflow) bir kullanıcı tarafından etkinleştiriliyor ve akışın durumu (workflow state) o kullanıcının oturumu altında saklanıyor.

Birden fazla şerit (lane) içeren dolayısıyla birden çok kullanıcının rol alması gereken ekteki gibi akışların desteklenebilmesi için aşağıdaki işlevleri desteklemeliyiz.:

  • Akış durumu kullanıcı oturumu yerine arka ucu yine Redis'e bağlı olan ortak bir havuzda tutulur.
  • Akış şeritleri farklı kullanıcı "rol"lerine karşılık gelir.
  • Akışı başlatan kullanıcı otomatik olarak kendi kullanıcı rolüyle ilişkili şeritin sahibi olur. Örneğimiz de bu kişi ders seçimi yapan öğrencidir.
  • Etkin (Ready) görev adım (TaskStep) ya da adımlarıdan biri farklı bir kanala geçtiğinde, ilgili kullanıcı ya da kullanıcılar sistem tarafından akışa katılabilecekleri bağı da içeren bir ileti ile bilgilendirilirler.
  • Kendi şeritinde etkin durumda bir görevi olmayan kullanıcıların akış üzerinde yapabilecekleri herhangi bir işlem yoktur.
  • Ekteki örnek diagramında "Fakülte Öğrenci İşleri" öğrencinin bağlı olduğu fakültenin öğrenci işleri personellerinden herhangi biri olabilecekken, "Danışman" şeritini sadece öğrencinin danışmanı olan öğretim üyesi kullanabilecektir.
  • Bazı durumlarda şeritlere atanacak kullanıcıların daha esnek bir şekilde tanımlanabilmelidir. Mesela "Fakülte YA DA Merkezi Öğrenci İşleri Personeli" şeklinde bir rol tanımı kendi öğrenci işleri personeli olmayan fakülteler için farklı bir iş akışı hazırlanmasına gerek bırakmayacaktır. Modeler'ın Extensions sekmesinden yapılabilecek ek kısıtların işletilmesi ile o anki kullanıcı ve ortam değişkenlerine göre kimin o şeriti kullanabileceği net bir şekilde tanımlanabilir.

kayit_yenileme_ve_ders_kaydi

Filtreleme

filtreleme: model metadata belirtilen attributelarina gore filtreleme secenekleri

Pagination

pagination: uzun listelerin sayfalandirilmasi

zato servis tanimlamalari

hitap servisleri tanimlamalarinin ulakstack uzerindeki zatolara tasinmasi. dev ortamindan json export edip tasiyabiliyoruz.

export edilen dosyayi basitce:

zato enmasse ../server1 --input zato-export-2015-06-30T08_56_22_628706.json --import --replace-odb-objects

import edebiliyoruz.

dikkat edilmesi gereken servis tanimlamalarinda yeralan tum servis paketlerinin zaten yuklenmis olmasidir.

Katalog Datalarin Yonetimi

Modellerde kullanmamiz gereken cok sayida katalog bilgi mevcut. Bunlar genellike basit stringlerden olusuyor. Biz modelde bunlari int field ile temsil edecegiz. Karsilik gelen stringler ui formlarinda ve model ici metod ve subclasslarda kullanilacak.

Bir kismi oldukca zor degistirilecek datalar. Bir kismi is epey sik degisebilir. Sebep kodlari, kanun maddeleri, okul, birim, mekan isimleri vb..

Uygun bir yol bulmamiz gerek. Ayrica translation sorununu da dusunmemiz gerek.

Onerim bir catalog bucketi icinde translationlari ile birlikte saklamak seklinde:

{
     ....
    "izin_tuleri": {
        "1": {
            "en": "yearly",
            "tr": "yillik" 
        },
        "2": {
            "en": "unpaid",
            "tr": "ucretsiz" 
        }
    },
     ....
}

Sadece bu modellerde yetkili kisiler duzenleme yapabilir olurlar.

Servislerin parcalanmasi

Sync yapan zato servislerini parcalayacagiz. Get ayri bir servis olarak calisacak. Sync ise get tuketen ayri bir servis olacak.

VakifBank Harc Odeme Zato Servisinin Yazilmasi #5023

Banka sisteme baglanip borc sorgulamali, yapilan odeme islemlerini sisteme isleyebilmeli.

Borc Servisi

Request Params:

BankaKodu - int(2)
SubeKodu - string(5)
KanalKodu - string(1)
MesajNo - string(32)
KullaniciKodu - string(32)
KullaniciSifresi - string(32)
OgrenciNo - string(12)

Response Params:

BankaKodu - int(2)
SubeKodu - int(5)
KanalKodu - string(1)
MesajNo - string(32)
KullaniciKodu - string(32)
KullaniciSifresi - string(32)
OgrenciNo - string(12)
AdSoyad - string(50)
UcretTuru - string(3)
TahakkukReferansNo - string(16)
SonOdemeTarihi - string(8)
Borc - float(8,2)
BorcAck - string(100)

Odeme Servisi

Request Params:

BankaKodu - int(2)
SubeKodu - int(5)
KanalKodu - string(1)
MesajNo - string(32)
KullaniciKodu - string(32)
KullaniciSifresi - string(32)
OgrenciNo - string(12)
UcretTuru - string(3)
TahakkukReferansNo - string(16)
TahsilatReferansNo - string(16)
OdemeTimeStamp - string(14)
OdemeTutari - float(8,2)

Response Params:

BankaKodu - int(2)
SubeKodu - int(5)
KanalKodu - string(1)
MesajNo - string(32)
KullaniciKodu - string(32)
KullaniciSifresi - string(32)
MesajStatusu - string(1)
OgrenciNo - string(12)
UcretTuru - string(3)
TahakkukReferansNo - string(16)
TahsilatReferansNo - string(16)
OdemeTimeStamp - string(14)
OdemeTutari - float(8,2)
HataMesaj - string(50)

Date Format default

Modellerde date fieldlar icin format attr belirtilmeyince hata aliyoruz.

Default bir value vererek cozum getirebiliriz. En cok kullandigimiz format "%d.%m%Y" Bunu ulakbus icin default deger yapabiliriz.

Tarih Araligi

tarih araligi: model armasina tarih araligi belirtebilme

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.