Ö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)