<?php


    class lin
    {

        public static $sql_table = 'lin';

        public static $own_listing = false;
        public static $own_listing_parse = false;
        public static $own_options = true;
        
        public function __construct()
        {
        }

        
        public static function get( $id )
        {
           $data = db::$i->row("
           SELECT * 
           FROM `".( self::$sql_table )."` 
           WHERE `id`='".( $id )."'
           ");
           
           if( !$data ) return;
           
            return core::object( $data );
        }
            
        public static function add( $request )
        {
            
            // Nazwa
            if( empty( $request['nazwa'] ) )
            {
                statement::$i->set( l('Podaj nazwę grupy') , 'danger' );
                return;
            }

            // Wartość
            if( empty( $request['wartosc'] ) )
            {
                statement::$i->set( l('Podaj wartość liczbową') , 'danger' );
                return;
            }
            
            // Wartość lingwistyczna
            if( empty( $request['wartosc_lin'] ) )
            {
                statement::$i->set( l('Podaj wartość lingwistyczną') , 'danger' );
                return;
            }
                        
            $sql = array(
               'nazwa' => esc( $request['nazwa'] ),
               'wartosc' =>  esc( $request['wartosc'] ),
               'wartosc_lin' =>  esc( $request['wartosc_lin'] )
            );
            
            if( db::$i->insert( self::$sql_table , $sql ) )
            {
                statement::$i->set( 'save' );
                    return true;
            } 
            else 
            {
                statement::$i->set( 'mysql' );
            }
        }
                
        public static function edit( $request , $id )
        {
            
            $Obj = self::get( $id );
            
            if( !$Obj->id )
            {
                statement::$i->set( 'Element o takim identyfikatorze nie istnieje w bazie danych' , 'danger' );
                return;
            }
            // Nazwa
            if( !empty( $request['nazwa'] ) AND $request['nazwa'] != $Obj->nazwa )
            {
                $sql['nazwa'] = esc( $request['nazwa'] );
            }
                        
            // 
            if( !empty( $request['wartosc'] ) AND $request['wartosc'] != $Obj->wartosc )
            {
                $sql['wartosc'] = esc( $request['wartosc'] );
            }
            
            // Wartosc
            
            if( !empty( $request['wartosc_lin'] ) AND $request['wartosc_lin'] != $Obj->wartosc_lin )
            {
                $sql['wartosc_lin'] = esc( $request['wartosc_lin'] );
            }
            
            
            if( count( $sql ) )
            {
                if( db::$i->update( self::$sql_table , $sql , $id ) )
                {
                    statement::$i->set( 'update' );
                } 
                else 
                {
                    statement::$i->set( 'mysql' );
                }
            } 
            else 
            {
                statement::$i->set( 'Nie dokonano żadnych zmian' );
            }
            
        }        
        /**
         * Pobierz listę wartości lingwistycznych
         * @param string $nazwa
         * @return object $Zmienne
         */
        public static function getList( $nazwa )
        {
            $query = db::$i->q("SELECT * FROM `lin` WHERE `nazwa`='".( esc( $nazwa ) )."' ORDER BY `id` ASC" , true);
            if( db::$i->rows )
            {
                $Zmienne = new stdClass;
                $Zmienne->Count = db::$i->rows;
                
                while( $Zmienna = db::$i->f( $query ) )
                {
                    $Zmienne->Items[] = self::parse( $Zmienna );
                }
                
                    return $Zmienne;
            }
            
                return;
        }

        /**
         * Pobierz listę grup wartości lingwistycznych
         * @return object $Grupy
         */
        public static function getGroupList()
        {
            $query = db::$i->q("SELECT * FROM `lin` GROUP BY `nazwa` ORDER BY `id` ASC" , true);
            if( db::$i->rows )
            {
                $Grupy = new stdClass;
                $Grupy->Count = db::$i->rows;
                
                while( $Grupa = db::$i->f( $query ) )
                {
                    $Grupy->Items[] = core::object( $Grupa );
                }
                
                    return $Grupy;
            }
            
                return;
        }
                
        public static function parse( $item )
        {
            return core::object( $item );
        }
        
        public static function options( $item )
        {
            /*
            $options[l('Szczegóły')] = array(
                    'mode' => 'lin',
                    'data-id' => $item['id'],
                    'id' => $item['id'],
                    'class' => 'row_details'
            );
            */
            
            $options[l('Edytuj')] = array(
                    'mode' => 'lin',
                    'id' => $item['id']
            );

                                            
            $options[l('Usuń')] = array(
                    'mode' => 'lin',
                    'id' => $item['id']
            );
            
            return $options; 
        }   
        
        public static function details_parse()
        {
            
        }
        
    }
    
?>