# -*- coding: utf-8 -*-
"""
reads input parameters from excel file: Simulation_setup_GUI.xlsx

4 slices model

"""

from openpyxl import Workbook
from openpyxl import load_workbook
import os
import numpy as np
import pandas as pd


def readsSimulationSetup(filepath,sourceFileName):
    # FILE SORGENTE ------------------------------
    wb = load_workbook(filepath+'\\'+sourceFileName, data_only=True)
    sheetNames=wb.sheetnames
    
    # seleziona il foglio
    sheet_1 = wb[sheetNames[1]]
    
    # simulation name
    simName = sheet_1.cell(2,1).value

    # listS
    sliceCount = 4
    listS=[]
    colIndex=4
    for i in range(6,6+sliceCount):
        listS.append(sheet_1.cell(i, colIndex).value)
    
    # conteggioPYR
    conteggioPYR=[]
    colIndex=6
    for i in range(6,6+sliceCount):
        conteggioPYR.append(sheet_1.cell(i, colIndex).value)
    
    percActive=[]
    colIndex=27
    for i in range(6,6+sliceCount):
        percActive.append(sheet_1.cell(i, colIndex).value)

            
    W_PYR_PYR=[]
    rowIndex=6
    colIndex=15
    for i in range(rowIndex,rowIndex+sliceCount):
        row=[]
        for j in range(colIndex,colIndex+sliceCount+1):
            row.append(sheet_1.cell(i, j).value)
        W_PYR_PYR.append(row)
    
    W_PYR_INT=[]
    rowIndex=14
    colIndex=15
    for i in range(rowIndex,rowIndex+sliceCount):
        row=[]
        for j in range(colIndex,colIndex+sliceCount+1):
            row.append(sheet_1.cell(i, j).value)
        W_PYR_INT.append(row)
    
    print(W_PYR_INT)
    
    W_INT_PYR=[]
    rowIndex=22
    colIndex=15
    for i in range(rowIndex,rowIndex+sliceCount):
        row=[]
        for j in range(colIndex,colIndex+sliceCount+1):
            row.append(sheet_1.cell(i, j).value)
        W_INT_PYR.append(row)
    
    W_INT_INT=[]
    rowIndex=30
    colIndex=15
    for i in range(rowIndex,rowIndex+sliceCount):
        row=[]
        for j in range(colIndex,colIndex+sliceCount+1):
            row.append(sheet_1.cell(i, j).value)
        W_INT_INT.append(row)
    

    #matrici probabilità between
    dictProbab = {}
    tipologia=['p1','p2','q1','q2']
    
    for i,t in enumerate(tipologia):
        probabBetween=[]
        rowIndex=6 + 8*i
        colIndex=21
        for i in range(rowIndex,rowIndex+sliceCount):
            row=[]
            for j in range(colIndex,colIndex+sliceCount):
                row.append(sheet_1.cell(i, j).value)
            probabBetween.append(row)    
        dictProbab[t] = probabBetween       
        
    #initialConditions
    initialConditions=[]
    rowIndex=6
    colIndex=33
    for i in range(rowIndex,rowIndex+sliceCount):
        row=[]
        for j in range(colIndex,colIndex+sliceCount):
            row.append(sheet_1.cell(i, j).value)
        initialConditions.append(row) 
        
    return(simName,listS,conteggioPYR,pd.DataFrame(W_INT_INT),pd.DataFrame(W_INT_PYR),pd.DataFrame(W_PYR_INT),pd.DataFrame(W_PYR_PYR),dictProbab,pd.DataFrame(initialConditions))













