İçindekiler

Örnek 9

Senaryo :

Özel okul aylık ücretlerinin tutulduğu excel dosyasından cari ve tutar bilgilerini alıp, borç dekontu 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
import csv

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)

columns = ['carikartkodu', 'borc']
reader = csv.reader(open("OzelOkulAylikUcretleri.csv", "rb"), delimiter=';')
next(reader, None)

cariler = map(lambda row: dict(zip(columns, row)), reader)

postBody = {"sis_numara_getir" :
    {"session_id": sessionID,
     "firma_kodu": firma_kodu,
     "donem_kodu": donem_kodu,
     "table_name": "scf_carihesap_fisi",
     "column_name" : "fisno"
    }
}

wsResult = callWs(wsAdresMain + 'sis/json', postBody)
fisno = wsResult['result']['kod']
print '%s' % fisno

fisTarihi = raw_input('Lüften fiş tarihini giriniz: ')
aciklama = raw_input("Lütfen açıklama giriniz: ")

cariFisKalemleri = []

for cari in cariler:
    cariFisKalemleri.append({
        "_key_scf_carikart": {"carikartkodu": cari['carikartkodu']},
        "_key_sis_doviz": {"adi": "TL"},
        "_key_sis_doviz_raporlama": {"adi": "TL"},
        "alacak": "0.00",
        "borc": float(cari['borc']),
        "dovizkuru": "1.00",
        "raporlamadovizkuru": "1.00",
        "aciklama": aciklama,
        "vade": "2023-05-26"
        })


postBody = {"scf_carihesap_fisi_ekle" :
    {"session_id": sessionID,
     "firma_kodu": firma_kodu,
     "donem_kodu": donem_kodu,
      "kart":
            {
            "_key_sis_sube": {"subekodu": "BE003"},
            "aciklama1": aciklama,
            "fisno": fisno,
            "m_kalemler": cariFisKalemleri,
            "saat": "10:38:29",
            "tarih": fisTarihi,
            "turu": "BD"
            }
      }
}
wsResult = callWs(wsAdresMain + 'scf/json', postBody)
pprint(wsResult)