<?
namespace esmo\pl;
use i_db_object;
class i_pl_log extends i_db_object
{
    static $table_name = 'pl_log';
    static $table_title = 'ПЛ - лог операций';

    static $clss = 786;
    static $class_descr=['name'=>'ПЛ - лог операций',
                         'parent'=>0,
                         'fields'=>['packet_id'=>'int(11)',
                            		'pl_id'=>'int(11)',
                            		'mo_id'=>'int(11)',
                            		'group_id'=>'int(11)',
                            		'doctor_id'=>'int(11)',
                            		'personal_id'=>'int(11)',
                            		'changes'=>'text',
                            		'cnt'=>'int(11)',
                                   ],

        ] ;

    public static function reg($packet_id,$comment,$params=[])
    {
      $data=['packet_id'=>$packet_id,
             'obj_name'=>$comment,
             'cnt'=>1
            ] ;
      if ($params['mo_id']) $data['mo_id']=$params['mo_id'];
      if ($params['group_id']) $data['group_id']=$params['group_id'];
      if ($params['doctor_id']) $data['doctor_id']=$params['doctor_id'];
      if ($params['personal_id']) $data['personal_id']=$params['personal_id'];
      if (is_array($params['changes']) and sizeof($params['changes'])) $data['changes']=json_encode($params['changes'],JSON_UNESCAPED_UNICODE);
      if ($params['check_repeat'])
      {
         $last_rec=execSQL_van('select * from '.static::$table_name.' where packet_id='.$packet_id.' order by pkey desc limit 1');
         if ($last_rec['obj_name']==$comment)
         { $data['cnt']=$last_rec['cnt']+1 ;
           static::save($last_rec['pkey'],$data);
         }
         else static::create($data);
      }
      else static::create($data);
    }

    public static function create($form_data, $options = array())
    {
        $result = [];

        // проверка на валидность переданных параметров
        //$id_exist = execSQL_value('select pkey from ' . static::$table_name . ' where clss='.static::$clss.' and obj_name="' . $form_data['name'] . '"');
        //if ($id_exist) $result=['error' => 'Устройство с данным наименованием уже зарегистрировано'] ;

        if (!$result['error'])
        {
            // формируем запись для базы
            $data = $form_data;
            $data['clss'] = static::$clss;
            $data['indx'] = 1;
            //if (isset($form_data['name'])) $data['obj_name'] = $form_data['name'];
            //if (isset($form_data['full_name'])) $data['full_name'] = $form_data['full_name'];
            //if (isset($form_data['inn'])) $data['inn'] = $form_data['inn'];

            // добавляем в базу
            $id = adding_rec_to_table(static::$table_name, $data);
            $result['id'] = $id;

            if ($id) {
                $result['status'] = 'success';
            } else {
                $result['status'] = 'failed';
            }
        }


        return ($result);
    }

    public static function save($id, $form_data, $options = [])
    {
        $data = $form_data;
        //damp_array($data);
        $cnt = update_rec_in_table(static::$table_name, $data, 'pkey=' . $id);
        return ($cnt);
    }


}

?>
