#!/usr/bin/env python3

import os
import sys
sys.path.append("/etc/zk-data-libs/")
import libs.send

ip = sys.argv[1]
secure_key = sys.argv[2]
if not "." in ip: ip = libs.send.get_ip_of_server(ip)

try: import pick
except:
    os.system("pip3 install --user pick")
    import pick

# Get Start
text = "Inventar Start Jahr auswählen: "
start_jahre = []
for x in range(2000, 2030):
    dic = libs.send.getInventar(ip, secure_key, 0, 0, x, 0)
    print("dic: " + str(dic))
    if not dic == []:
        start_jahre.append(dic["jahr"])

#date_start_year = int(input("Inventar start Jahr: " + str(start_jahre) + " : "))
date_start_year = pick.pick(start_jahre, text, indicator='-> ')[0]

text = str(date_start_year) + "\n" + "Inventar Start Monat auswählen: "
start_monate = []
for x in range(1, 13):
    dic = libs.send.getInventar(ip, secure_key, 0, x, date_start_year, 0)
    if not dic == []:
        start_monate.append(dic["monat"])

#date_start_month = int(input("Inventar start Monat: " + str(start_monate) + " : "))
date_start_month = pick.pick(start_monate, text, indicator='-> ')[0]

text = str(date_start_year) + "/" + date_start_month + "\n" + "Inventar Start Tag auswählen: "
start_tage = []
for x in range(1, 32):
    dic = libs.send.getInventar(ip, secure_key, x, date_start_month, date_start_year, 0)
    if not dic == []:
        start_tage.append(dic["tag"])

#date_start_day = int(input("Inventar start Tag: " + str(start_tage) + " : "))
date_start_day = pick.pick(start_tage, text, indicator='-> ')[0]

# Get End
text = "Inventar End Jahr auswählen"
end_jahre = []
for x in range(int(date_start_year), 2030):
    dic = libs.send.getInventar(ip, secure_key, 0, 0, x, 0)
    if not dic == []:
        end_jahre.append(dic["jahr"])

#date_end_year = int(input("Inventar end Jahr: " + str(end_jahre) + " : "))
date_end_year = pick.pick(end_jahre, text, indicator='-> ')[0]


text = str(date_end_year) + "/\n" + "Inventar End Monat auswählen"
end_monate = []
for x in range(1, 13):
    dic = libs.send.getInventar(ip, secure_key, 0, x, date_end_year, 0)
    if not dic == []:
        end_monate.append(dic["monat"])

#date_end_month = int(input("Inventar end Monat: " + str(end_monate) + " : "))
date_end_month = pick.pick(end_monate, text, indicator='-> ')[0]

text = str(date_end_year) + "/" + str(date_end_month) + "\n" + "Inventar End Tag auswählen"
end_tage = []
for x in range(1, 32):
    dic = libs.send.getInventar(ip, secure_key, x, date_end_month, date_end_year, 0)
    if not dic == []:
        end_tage.append(dic["tag"])

#date_end_day = int(input("Inventar end Tag: " + str(end_tage) + " : "))
date_end_day = pick.pick(end_tage, text, indicator='-> ')[0]

#inventar = {}
#tag = int(date_start_day)
#monat = int(date_start_month)
#jahr = int(date_start_year)


#index = 0 
#while True:
#    print(str(tag) + "/" + str(monat) + "/" + str(jahr))
#    
#    dic = libs.send.getInventar(ip, secure_key, tag, monat, jahr, index)
#
#    if dic == []:
#        if tag == int(date_end_day) and monat == int(date_end_month) and jahr == int(date_end_year): break
#        else:
#            tag += 1
#            index = 0
#    else:
#
#        index = str(dic["identification"])
#        if not "name_de" in dic:
#            dic["name_de"] = ""
#        if not "preisek" in dic:
#            dic["preisek"] = 0.0
#        
#        if not str(dic["bcode"]) in inventar:
#            inventar[str(dic["bcode"])] = { "anzahl": dic["anzahl"], "name": dic["name_de"]}
#        else:
#            inventar[str(dic["bcode"])] = { "anzahl": dic["anzahl"] + inventar[str(dic["bcode"])]["anzahl"], "name": dic["name_de"]}
#            
#    if tag == 32:
#        tag = 1
#        monat += 1
#    if monat == 13:
#        monat = 1
#        jahr += 1

#print("Liste wird geladen, Enter zum fortfahren\n")
print("Liste wird geladen, Bitte warten\n")

#print(inventar)
#file_data = []
#for bcode in inventar:
#    sep = ";"
#    dic = libs.send.GetArt(ip, secure_key, bcode)
#    if not "name_de" in dic:
#        dic["name_de"] = ""
#    if not "preisek" in dic:
#        dic["preisek"] = 0.0
#    if not "preisvk" in dic:
#        dic["preisvk"] = 0.0
#            
#    name = str(inventar[str(bcode)]["name"]).replace(sep, "")
#    anzahl = str(inventar[str(bcode)]["anzahl"]).replace(".", ",")
#    preis = str(dic["preisek"]).replace(".", ",")
#    preisvk = str(dic["preisvk"]).replace(".", ",")
#    
#    categorie = str(dic["categorie"])
#    #if categorie == "": os.system("./ChangeStock.pyw " + str(bcode))
#    dic = libs.send.GetArt(ip, secure_key, bcode)

    #if preis == "0,0":
    #    neuer_preis = str(dic["preisvk"]/1.8)
    #    if not neuer_preis == "0.0":
    #        write_it = input(name + "\n Kein EK ! " + str(neuer_preis) + " ubernehmen? [JA] ")
    #        if write_it == "JA":
    #            libs.send.SetArt(ip, secure_key, {"identification": str(bcode), "preisek": float(neuer_preis)})
    #            preis = neuer_preis.replace(".", ",")
    #        else: preis == "0,0"
    
    #if not preis == "0,0":    
#    total = str(float(preis.replace(",", "."))*float(anzahl.replace(",", ".")) ).replace(".", ",")
#    totalvk = str(float(preisvk.replace(",", "."))*float(anzahl.replace(",", ".")) ).replace(".", ",")
#    file_data.append(str(bcode) + sep + categorie + sep + name + sep + anzahl + sep + preis + sep + total + sep + totalvk)

#open("DATA/inventar.csv", "w").write("\n".join(file_data))
#os.system("libreoffice DATA/inventar.csv")

#yes = input("Anzahl übernehmen? [JA] ?")
yes = pick.pick(["NEIN", "JA"], "Anzahl übernehmen?", indicator='-> ')[0]

if yes == "JA":
    second_yes = pick.pick(["NEIN", "JA"], "Anzahl wirklich übernehmen?", indicator='-> ')[0]
    if second_yes == "JA":
        answer = libs.send.print_inventar(ip, secure_key, date_start_year, date_start_month, date_start_day, date_end_year, date_end_month, date_end_day, True)
else:
    answer = libs.send.print_inventar(ip, secure_key, date_start_year, date_start_month, date_start_day, date_end_year, date_end_month, date_end_day, False)
    
os.system("libreoffice http://" + ip.split(":")[0] + answer)
