<?php

    global $tpl;
    
    $SomeErrors = false;
    
    $Wagi = $_REQUEST['waga'];
    
    $KryteriaGroup = array();
    $Proces = procesy::get( $_REQUEST['proces_id'] );
    
    // Pobieranie aktualnych wartości
    $Wartosci = array();
    $query = db::$i->q("SELECT * FROM `wartosci` WHERE `proces_id`='".esc( $_REQUEST['proces_id'] )."'",true);
    if( db::$i->rows )
    {
        while( $item = db::$i->f( $query ) )
        {
            $Wartosci[$item['alternatywa_id']][$item['kryterium_id']] = $item['id'];
        }
    }

    // Wagi z gry
    if( $_REQUEST['btndata'] == 'game' )
    {
        // Pobieranie wag
        $query = db::$i->q("SELECT * FROM `wagi` WHERE `proces_id`='".( $Proces->id )."'", true );
        if( db::$i->rows )
        {
            while( $item = db::$i->f( $query ) )
            {
                $WagiName[$item['nazwa']] = $item['waga'];
            }
            
        } else $WagiName = false;
            
        // Nazwy kryteriów dla tego procesu    
        $query = db::$i->q("SELECT * FROM `kryteria` WHERE `proces_id`='".( $Proces->id )."'" , true );
        if( db::$i->rows )
        {
            while( $item = db::$i->f( $query ) )
            {
                $Wagi[$item['id']] = ( isset( $WagiName[$item['nazwa']] ) ? $WagiName[$item['nazwa']] : 1 );
            }
        } 
    }    
    
                
    // Zapisanie wartosci
    foreach( $_REQUEST['alternatywa'] as $AlternativeId => $Kryteria )
    {
        foreach( $Kryteria as $KryteriumId => $wartosc )
        {

            if( $Wagi[$KryteriumId] > 0 AND $Wagi[$KryteriumId] <= 10 )
            {
                $waga = $Wagi[$KryteriumId];
            } 
            else 
            {
                $waga = 1;
            }
            
            if( stristr( $wartosc , ',') ){
                $wartosc = str_replace(",",".",$wartosc);
            }
            
            if( isset( $Wartosci[$AlternativeId][$KryteriumId] ) )
            {
                if( !db::$i->update('wartosci',array(
                    'wartosc' => esc( $wartosc ),
                    'zdjecie' => null,
                    'lin_id' => null,
                    'waga' => $waga
                ),$Wartosci[$AlternativeId][$KryteriumId]) )
                {
                    $SomeErrors = true;
                }
            } 
            else 
            {
                if( !db::$i->insert('wartosci',array(
                    'proces_id' => esc( $_REQUEST['proces_id'] ),
                    'alternatywa_id' => $AlternativeId,
                    'kryterium_id' => $KryteriumId,
                    'wartosc' => esc( $wartosc ),
                    'zdjecie' => null,
                    'lin_id' => null,
                    'waga' => $waga
                )) )
                {
                    $SomeErrors = true;
                }
            }

        }
    }
    
    if( count($Wagi ) )
    {
        foreach( $Wagi as $WagaKryt => $WagaWart )
        {
            /*
            db::$i->insert('wagi',array(
                'proces_id' => intval( $_REQUEST['proces_id'] ),
                'kryterium_id' => $WagaKryt,
                'user' => user::$i->id,
                'waga' => $WagaWart
            ));
            */
        }
    }
    
    $Summary = alternatywy::CreateRanking( $_REQUEST['alternatywa'] , $Wagi );
    
    if( !$SomeErrors )
    {
        
        // Zakonczenie procesu
        procesy::close( $_REQUEST['proces_id'] );
        
        $tpl->assign(array(
            'Summary' => $Summary,
            'ProcesId' => $_REQUEST['proces_id'],
            'StartGame' => ( ( $_REQUEST['btndata'] == 'game' ) ? true : false )
        ));
    
        js::$i->setJSON(array(   
            'status' => true,
            'html' => $tpl->fetch('ajax/' . core::$i->mode . '/' . core::$i->function . '.tpl' ),
            'proces_id' => $_REQUEST['proces_id'],
            'get_proces_id' => $_GET['proces_id']
        ));
    } 
    else 
    {
        js::$i->setJSON(array(
            'error' => l('Podczas zapisywania wystąpił błąd, wynik może nie być miarodajny')
        ));
    }



?>