from app.forms import SearchCCForm, SearchNOForm, SearchMACForm, SearchSNForm, LoginForm, insPIN, genLic, SearchLicenze
from app.models import User, PIN, lic_cli, lic_oem, licenze, PBX

def SearchFromCodCli(codcliente):
    lista_ordini = lic_cli.search_codcli(lic_cli, codcliente)
    if lista_ordini != []:
        cliente = [lista_ordini[0].cod_cli, lista_ordini[0].ragsoc, lista_ordini[0].nome, lista_ordini[0].cognome]
        result = {}
        now = []
        for ordine in lista_ordini:
            licenza = licenze.search_codF(licenze, ordine.codLic)[0]
            try:
                now = result[ordine.macPBX]
                now.append((ordine.data, ordine.ordine, ordine.codPBX, ordine.serialPBX, ordine.macPBX, licenza.codFitre, licenza.desFitre))
                result.update({ordine.macPBX : now})
            except:
                result[ordine.macPBX] = [(ordine.data, ordine.ordine, ordine.codPBX, ordine.serialPBX, ordine.macPBX, licenza.codFitre, licenza.desFitre)]
        return (cliente, result)
    return None
    
    
def SearchFromMac(macadd):
    lista_ordini = lic_cli.search_mac(lic_cli, macadd)
    if lista_ordini != []:
        cliente = [lista_ordini[0].cod_cli, lista_ordini[0].ragsoc, lista_ordini[0].nome, lista_ordini[0].cognome]
        result = {}
        now = []
        for ordine in lista_ordini:
            licenza = licenze.search_codF(licenze, ordine.codLic)[0]
            try:
                now = result[ordine.macPBX]
                now.append((ordine.data, ordine.ordine, ordine.codPBX, ordine.serialPBX, ordine.macPBX, licenza.codFitre, licenza.desFitre))
                result.update({ordine.macPBX : now})
            except:
                result[ordine.macPBX] = [(ordine.data, ordine.ordine, ordine.codPBX, ordine.serialPBX, ordine.macPBX, licenza.codFitre, licenza.desFitre)]
        return (cliente, result)
    return None


def SearchFromNO(numord):
    lista_ordini = lic_cli.search_ordine(lic_cli, numord)
    if lista_ordini != []:
        cliente = [lista_ordini[0].cod_cli, lista_ordini[0].ragsoc, lista_ordini[0].nome, lista_ordini[0].cognome]
        result = {}
        now = []
        for ordine in lista_ordini:
            licenza = licenze.search_codF(licenze, ordine.codLic)[0]
            try:
                now = result[ordine.macPBX]
                now.append((ordine.data, ordine.ordine, ordine.codPBX, ordine.serialPBX, ordine.macPBX, licenza.codFitre, licenza.desFitre))
                result.update({ordine.macPBX : now})
            except:
                result[ordine.macPBX] = [(ordine.data, ordine.ordine, ordine.codPBX, ordine.serialPBX, ordine.macPBX, licenza.codFitre, licenza.desFitre)]
        return (cliente, result)
    return None

def SearchFromSN(sernum,modello):
    lista_ordini = lic_cli.search_snm(lic_cli, sernum, modello)
    if lista_ordini != []:
        cliente = [lista_ordini[0].cod_cli, lista_ordini[0].ragsoc, lista_ordini[0].nome, lista_ordini[0].cognome]
        result = {}
        now = []
        for ordine in lista_ordini:
            licenza = licenze.search_codF(licenze, ordine.codLic)[0]
            try:
                now = result[ordine.macPBX]
                now.append((ordine.data, ordine.ordine, ordine.codPBX, ordine.serialPBX, ordine.macPBX, licenza.codFitre, licenza.desFitre))
                result.update({ordine.macPBX : now})
            except:
                result[ordine.macPBX] = [(ordine.data, ordine.ordine, ordine.codPBX, ordine.serialPBX, ordine.macPBX, licenza.codFitre, licenza.desFitre)]
        return (cliente, result)
    return None
