Örnek 17
Senaryo :
Verilen teklifi onaylayarak ilgili depo sorumlusu için görev oluşturalım.
Örnekler diadevdays sunucusu üzerinde çalışmaktadır.
Örnek Kod (python):
# coding=utf-8 import simplejson import base64 import urllib2 from datetime import datetime from pprint import pprint wsAdresMain = 'https://diadevdays.ws.dia.com.tr/api/v3/' firma_kodu = 4 donem_kodu = 1 apikey = "773f9085-9dc8-4f50-b34d-f7b56da33b5f" def callWs(wsAdres, postBody): try: postBody = simplejson.dumps(postBody, cls=simplejson.JSONEncoder) req = urllib2.Request(wsAdres, data=postBody, headers={"Content-Type": "application/json"}) content = urllib2.urlopen(req).read() except Exception, e: print("Exception: {}".format(repr(e))) wsResult = simplejson.loads(content) return wsResult loginBody = {"login" : {"username": "ws", "password": "ws", "disconnect_same_user": True, "lang": "tr", "params": {"apikey": apikey} } } loginResult = callWs(wsAdresMain + 'sis/json', loginBody) sessionID = loginResult['msg'] if not sessionID: print("Login yapilamadi") exit(0) teklifNo = raw_input("Teklif fis numarasini giriniz: ") if not teklifNo: print("Teklif fis numarasi girilmelidir!") exit(0) teklifListeleBody = {"scf_teklif_listele" : {"session_id": sessionID, "firma_kodu": firma_kodu, "donem_kodu": donem_kodu, "filters":[{"field": "fisno", "operator": "=", "value": teklifNo}], "sorts": "", "params": "", "limit": 1, "offset": 0 } } teklifListeResult = callWs(wsAdresMain + 'scf/json', teklifListeleBody) teklifBilgi = teklifListeResult['result'][0] teklifOnayBody = {"scf_teklif_onayla" : {"session_id": sessionID, "firma_kodu": firma_kodu, "donem_kodu": donem_kodu, "key": [teklifBilgi['_key']], "params": {"durum": "KABUL"} } } teklifOnayResult = callWs(wsAdresMain + 'scf/json', teklifOnayBody) if teklifOnayResult['code'] == "200": pprint(teklifOnayResult) gorevNoGetirBody = {"sis_numara_getir" : {"session_id": sessionID, "firma_kodu": firma_kodu, "donem_kodu": donem_kodu, "table_name": "gts_gorev", "column_name" : "gorevno", "template_type": "GTS_GOREVNO", "tarih": datetime.now().strftime('%Y-%m-%d'), "statu": 1 } } gorevNoGetirResponse = callWs(wsAdresMain + 'sis/json', gorevNoGetirBody) gorevNo = gorevNoGetirResponse['result']['kod'] print(gorevNo) kullaniciAdi = raw_input("Depo sorumlusu adini giriniz: ") kullaniciListeBody = {"sis_kullanici_listele" : {"session_id": sessionID, "firma_kodu": firma_kodu, "donem_kodu": donem_kodu, "filters":[{"field": "kullaniciadi", "operator": "=", "value": kullaniciAdi}], "sorts": "", "params": {"selectedcolumns": ["_key", "kullaniciadi"]}, "limit": 1, "offset": 0 } } kullaniciListeResponse = callWs(wsAdresMain + 'sis/json', kullaniciListeBody) pprint(kullaniciListeResponse) kullaniciKey = kullaniciListeResponse['result'][0]['_key'] gorevEkleBody = {"gts_gorev_ekle" : {"session_id": sessionID, "firma_kodu": firma_kodu, "donem_kodu": donem_kodu, "kart": { "_key_gts_gorev_surec": {"aciklama": "Teklif Kabul"}, "_key_gts_gorev_tipi": {"kodu": "002"}, "_key_scf_carikart": teklifBilgi['_key_scf_carikart'], "_key_scf_satiselemani": teklifBilgi['_key_scf_satiselemani'], "aciklama": "%s fiş nolu teklife bağlı görev" % teklifNo, "durum": "A", "gorevno": gorevNo, "ilgilikullanicikeys": [kullaniciKey], "iliskiligorevkeys": [], "note": "%s fiş nolu teklif onaylanmıştır." % teklifNo, "oncelik": 1, "planlamadurumu": "H", "tahminisuresaat": "0.00", "takipcikullanicikeys": [kullaniciKey], "m_notlar": [], "m_belgeler": [{"_key_belge": teklifBilgi['_key'], "belgeturu": 1, "aciklama": "Satış teklifi"}] } } } gorevEkleResponse = callWs(wsAdresMain + 'gts/json', gorevEkleBody) pprint(gorevEkleResponse)