AnonSec Shell
Server IP : 162.214.74.102  /  Your IP : 216.73.217.111
Web Server : Apache
System : Linux dedi-4363141.lrsys.com.br 3.10.0-1160.119.1.el7.tuxcare.els25.x86_64 #1 SMP Wed Oct 1 17:37:27 UTC 2025 x86_64
User : lrsys ( 1015)
PHP Version : 5.6.40
Disable Function : exec,passthru,shell_exec,system
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/lrsys/public_html/lrsys_apps/dialogo/application/autoload/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/lrsys/public_html/lrsys_apps/dialogo/application/autoload/Contacts.php
<?php
// *************************************************************************
// *                                                                       *
// * iBilling -  Accounting, Billing Software                              *
// * Copyright (c) Sadia Sharmin. All Rights Reserved                      *
// *                                                                       *
// *************************************************************************
// *                                                                       *
// * Email: sadiasharmin3139@gmail.com                                                *
// * Website: http://www.sadiasharmin.com                                  *
// *                                                                       *
// *************************************************************************
// *                                                                       *
// * This software is furnished under a license and may be used and copied *
// * only  in  accordance  with  the  terms  of such  license and with the *
// * inclusion of the above copyright notice.                              *
// * If you Purchased from Codecanyon, Please read the full License from   *
// * here- http://codecanyon.net/licenses/standard                         *
// *                                                                       *
// *************************************************************************

Class Contacts
{
    public static function options($selected = '')
    {

        $c = ORM::for_table('crm_accounts')->select('id')->select('account')->find_many();
        $options = '';
        if($c){

            foreach($c as $cs){
                $s = '';
                if($cs['id'] == $selected){
                    $s = 'selected';
                }
                $options .= '<option value="'.$cs['id'].'" '.$s.'>'.$cs['account'].'</option>';
            }
        }

        return $options;

    }


    public static function add($data=array()){


        if(isset($data['account'])){

            $account = trim($data['account']);

            if($account == ''){
                return 'Account Name is Required';
            }

            $email = '';
            $phone = '';
//            $address = '';
//            $city = '';
//            $zip = '';
//            $state = '';
            $country = '';
            $tags = '';
            $company = '';
            $password = '';
            $img = '';


            $d = ORM::for_table('crm_accounts')->create();

            $d->account = $data['account'];

            if(isset($data['email']) && trim($data['email']) != ''){

                if(Validator::Email($data['email']) == false){
                    return 'Invalid Email';
                }
                $f = ORM::for_table('crm_accounts')->where('email',$data['email'])->find_one();

                if($f){
                    return 'Email already exist';
                }

                $email = $data['email'];

            }

            if(isset($data['phone'])){
                $phone = $data['phone'];
            }

//            if(isset($data['address'])){
//                $address = $data['address'];
//            }
//
//            if(isset($data['city'])){
//                $city = $data['city'];
//            }
//
//            if(isset($data['zip'])){
//                $zip = $data['zip'];
//            }
//
//            if(isset($data['state'])){
//                $state = $data['state'];
//            }

            if(isset($data['country'])){
                $country = $data['country'];
            }

            if(isset($data['company'])){
                $company = $data['company'];
            }


            if(isset($data['password'])){
                $password = $data['password'];
                $password = Password::_crypt($password);
            }

            if(isset($data['tags'])){
                $tags = $data['tags'];
            }

            if(isset($data['img'])){
                $img = $data['img'];
            }



            $d->email = $email;
            $d->phone = $phone;
//            $d->address = $address;
//            $d->city = $city;
//            $d->zip = $zip;
//            $d->state = $state;
            $d->country = $country;
            $d->tags = $tags;

            //others
            $d->fname = '';
            $d->lname = '';
            $d->company = $company;
            $d->jobtitle = '';
            $d->cid = '0';
            $d->o = '0';
            $d->balance = '0.00';
            $d->status = 'Active';
            $d->notes = '';
            $d->password = $password;
            $d->token = '';
            $d->ts = '';
            $d->img = $img;
            $d->web = '';
            $d->facebook = '';
            $d->google = '';
            $d->linkedin = '';
            
            // 
            // Leonardo Lopes Ramos - 16/05/2017
            // Novos campos
            $d->code = $data['code'];
            $d->cpf_cnpj = $data['cpf_cnpj'];
            $d->im = $data['im'];
            $d->ie = $data['ie'];
            $d->cell_phone = $data['cell_phone'];
            $d->date_of_birth = $data['date_of_birth'];
            $d->status = $data['status'];
            $d->kind_of_person = '';
            if($data['kind_of_person'] == 'PF' || $data['kind_of_person'] == 'PJ')
            {
                $d->kind_of_person = $data['kind_of_person'];
            }

            //
            $d->save();
            $cid = $d->id();
            
            
            // salvo o endereço do contato
            $address = ORM::for_table('crm_accounts_address')->create();
            //recebe os dados do endereço
            if (intval($data['address']['state_id'])) {
                $address->state_id = $data['address']['state_id'];
            }

            if (intval($data['address']['city_id'])) {
                $address->city_id = $data['address']['city_id'];
            }
            $address->zip = isset($data['address']['zip'])?$data['address']['zip']:'';
            $address->address = isset($data['address']['address'])?$data['address']['address']:'';
            $address->neighborhood = isset($data['address']['neighborhood'])?$data['address']['neighborhood']:'';
            $address->number = isset($data['address']['number'])?$data['address']['number']:'';
            $address->complement = isset($data['address']['complement'])?$data['address']['complement']:'';
            $address->type_address = "tax_address";
            $address->crm_account_id = $cid;
            $address->save();
            
            // salvo o endereço de cobrança
            $address = ORM::for_table('crm_accounts_address')->create();
            $address->type_address = "billing_address";
            $address->crm_account_id = $cid;
            $address->save();
            
            // salvo os grupos do contato
            if($data['cliente'] == 1)
            {
                $dataGroup = ORM::for_table('crm_accounts_groups')->create();
                $dataGroup->crm_accounts_id = $cid;
                $dataGroup->crm_group_id = 1;
                $dataGroup->save();
            }
            
            if($data['fornecedor'] == 1)
            {
                $dataGroup = ORM::for_table('crm_accounts_groups')->create();
                $dataGroup->crm_accounts_id = $cid;
                $dataGroup->crm_group_id = 2;
                $dataGroup->save();
            }
            
            
            return $cid;

        }

        else{
            return 'Invalid Data Posted or Data is Null';
        }


    }
    
    
    public static function prodoctorAddPacient($cid = null){
        
        // conecto no postgres do Prodoctor
        @ini_set('memory_limit', '11512M');
        @ini_set('max_execution_time', 0);
        @set_time_limit(0);
                
        // TODO: CEDDI
//        define('PRODOCT_BD',"host=192.168.0.200 port=5432 dbname=prodoctorplussql user=postgres password=masterkey");
        $pg_connect = pg_connect(PRODOCT_BD);
        $query = "SELECT "
                . "tp.cor, "
                . "tp.codigo, "
                . "tp.nome,"
                . "tp.datanascimento,"
                . "tp.r_logradouro,"
                . "tp.r_numero,"
                . "tp.r_complemento,"
                . "tp.r_bairro,"
                . "tp.r_cidade,"
                . "tp.r_uf,"
                . "tp.r_cep,"
                . "tp.telefone_1,"
                . "tp.telefone_2,"
                . "tp.correioeletronico,"
                . "tp.sexo,"
                . "tp.identidade,"
                . "tp.cpf,"
                . "tp.datacadastro,"
                . "tp.conveniopadrao,"
                . "tp.convenio_1,"
                . "tp.plano_1,"
                . "tp.numeromatricula_1,"
                . "tp.validade_1,"
                . "tp.titular_1,"
                . "tp.pai_nome,"
                . "tp.pai_datanascimento,"
                . "tp.mae_nome,"
                . "tp.mae_datanascimento,"
                . "tp.pendencias,"
                . "tp.observacoes,"
                . "tp.foto,"
                . "ic.nome as cidade, "
                . "ie.nome as estado, "
                . "tc.nome as convenio "
                . "FROM t_pacientes as tp "
                . "LEFT JOIN ibge_cidades as ic ON ic.codigo = tp.r_cidade "
                . "LEFT JOIN ibge_estados as ie ON ie.codigo = tp.r_uf "
                . "LEFT JOIN t_convenios as tc ON tc.codigo = tp.convenio_1 "
                . "WHERE tp.codigo = ".$cid 
                . " ORDER BY tp.codigo ";
        $pg_query       = pg_query($query);

//                $count_user = pg_num_rows($pg_query);  

        $arr_user = pg_fetch_all($pg_query);
//        var_dump(json_decode(json_encode($arr_user[0])));exit;
        
        if(count($arr_user) > 0)
        {
            $contact = $arr_user[0];
        }
        else
        {
            return array('msg' => 'PACIENTE NÃO ENCONTRADO NO PRODOCTOR');
        }
        
        $cn = 0;
        $msg_erro = null;
        $msg_controller = null;
        
        // PROCURO O PACIENTE NO HEALTH ERP
        $d = ORM::for_table('crm_accounts')
            ->select('*')
            ->where('imported_code', $contact['codigo'])
            ->find_one();

        $data = array();
        if(isset($d->id) && $d->id > 0)
        {
            if($d->account == $contact['nome'])
            {
                $data['account_id'] = $d->id;
            }
            else
            {
                $msg_erro .= '<br>ERRO NOME: '.$contact['nome'].' | ID: '.$contact['codigo']. ' | NOME_HEALTH_ERP: '.$d->account. ' | ID_HEALTH_ERP: '.$d->id;
                return array('msg' => 'NOME DO PACIENTE NO PRODOCTOR NÃO BATE COM O NOME NO HEALTH ERP | '.$msg_erro);
            }
        }

        // Monta os dados
        $data['account'] = trim($contact['nome']);
        $data['email'] = isset($contact['correioeletronico']) ? $contact['correioeletronico'] : '';
        $data['created_at'] = isset($contact['datacadastro']) ? $contact['datacadastro'] : null;
        $data['rg'] = isset($contact['identidade']) ? $contact['identidade'] : null;

        // Trato os telefones sem DDD
        $phone = isset($contact['telefone_1']) ? preg_replace('/\D/', '', $contact['telefone_1']) : null;
        if($phone && strlen($phone) <= 9)
        {
            $phone = '00'.$phone;
        }
        $data['phone'] = $phone;

        $cell_phone = isset($contact['telefone_2']) ? preg_replace('/\D/', '', $contact['telefone_2']) : null;
        if($cell_phone && strlen($cell_phone) <= 9)
        {
            $cell_phone = '00'.$cell_phone;
        }
        $data['phone'] = $phone;
        $data['cell_phone'] = $cell_phone;

        // Pego o endereço pelo CEP
        $data_address = array();
        $data['zip'] = (isset($contact['r_cep'])) ? $contact['r_cep'] : '';

        $zip = preg_replace('/\D/', '', $data['zip']);

        $state = null;
        $city = null;
        if(isset($contact['r_uf']) && intval($contact['r_uf']) > 0)
        {
            $state = ORM::for_table('state')->select('id')
                    ->where_raw('code_state = "' . $contact['r_uf'] . '"')
                    ->find_one();

            if(isset($contact['r_cidade']) && intval($contact['r_cidade']) > 0)
            {
                $city = ORM::for_table('city')->select('id')->select('city_name')->select('id_state')
                            ->where_raw("city_ibge = '" . $contact['r_cidade'] . "' AND id_state = " . $state->id)->find_one();
            }
        }

        //carrega os dados
        $data_address['city_id'] = ($city) ? $city->id : '';
        $data_address['state_id'] = ($city) ? $city->id_state : '';
        $data_address['complement'] = (isset($contact['r_complemento'])) ? $contact['r_complemento'] : '';
        $data_address['number'] = (isset($contact['r_numero'])) ? $contact['r_numero'] : '';
        $data_address['neighborhood'] = (isset($contact['r_bairro'])) ? $contact['r_bairro'] : '';
        $data_address['address'] = (isset($contact['r_logradouro'])) ? $contact['r_logradouro'] : '';
        $data_address['status'] = 'SUCCESS';


        $data['address'] = $data_address;


        $data['code'] = (isset($contact['codigo'])) ? $contact['codigo'] : '';

        $data['notes'] = $contact['pendencias']. (isset($contact['observacoes']) ? ' ### '.$contact['observacoes'] : '');

        $sexo = null;
        if(isset($contact['sexo']) && $contact['sexo'] != '')
        {
            if($contact['sexo'] == 1)
            {
                $sexo = 'f';
            }
            elseif($contact['sexo'] == 0)
            {
                $sexo = 'm';
            }
        }
        $data['sex'] = $sexo;
        $data['kind_of_person'] = 'PF';
        $data['cpf_cnpj'] = (isset($contact['cpf'])) ? preg_replace('/\D/', '', $contact['cpf']) : '';
        $data['rg'] = (isset($contact['identidade'])) ? $contact['identidade'] : '';
        $data['date_of_birth'] = (isset($contact['datanascimento'])) ? $contact['datanascimento'] : '';
        $data['status'] = 'Active';

        // verifico o grupo
        $data['cliente'] = 1;
        $data['paciente'] = 1;
//            $pacient_id = Contacts::prodoctorAdd($data);


        /// INSIRO OS DADOS DO PACIENTE
        $account = trim($data['account']);

        if($account == ''){
            echo 'Account Name is Required';
        }

        $email = '';
        $phone = '';
//            $address = '';
//            $city = '';
//            $zip = '';
//            $state = '';
        $country = '';
        $tags = '';
        $company = '';
        $password = '';
        $img = '';

        if(isset($data['account_id']) && $data['account_id'] > 0)
        {
            $d = ORM::for_table('crm_accounts')->find_one($data['account_id']);
        }
        else
        {
            $d = ORM::for_table('crm_accounts')->create();
        }

        $d->account = $data['account'];

        if(isset($data['email']) && trim($data['email']) != ''){

            if(Validator::Email($data['email']) == false){
//                    return 'Invalid Email';

            }

            $f = ORM::for_table('crm_accounts')->where('email',$data['email'])->find_one();

            if($f){
//                    return 'Email already exist';

            }
            else
            {
                $email = $data['email'];
            }
        }

        if(isset($data['phone'])){
            $phone = $data['phone'];
        }

//            if(isset($data['address'])){
//                $address = $data['address'];
//            }
//
//            if(isset($data['city'])){
//                $city = $data['city'];
//            }
//
//            if(isset($data['zip'])){
//                $zip = $data['zip'];
//            }
//
//            if(isset($data['state'])){
//                $state = $data['state'];
//            }

        if(isset($data['country'])){
            $country = $data['country'];
        }

        $country = 'Brasil';

        if(isset($data['company'])){
            $company = $data['company'];
        }


        if(isset($data['password'])){
            $password = $data['password'];
            $password = Password::_crypt($password);
        }

        if(isset($data['tags'])){
            $tags = $data['tags'];
        }

        if(isset($data['img'])){
            $img = $data['img'];
        }



        $d->email = $email;
        $d->phone = $phone;
//            $d->address = $address;
//            $d->city = $city;
//            $d->zip = $zip;
//            $d->state = $state;
        $d->country = $country;
        $d->tags = $tags;

        //others
        $d->fname = '';
        $d->lname = '';
        $d->company = $company;
        $d->jobtitle = '';
        $d->cid = '0';
        $d->o = '0';
        $d->balance = '0.00';
        $d->status = 'Active';
        $d->notes = '';
        $d->password = $password;
        $d->token = '';
        $d->ts = '';
        $d->img = $img;
        $d->web = '';
        $d->facebook = '';
        $d->google = '';
        $d->linkedin = '';

        // 
        // Leonardo Lopes Ramos - 16/05/2017
        // Novos campos
        $d->code = null;
        $d->cpf_cnpj = $data['cpf_cnpj'];
        $d->rg = $data['rg'];
        $d->cell_phone = $data['cell_phone'];
        $d->date_of_birth = $data['date_of_birth'];
        $d->dob = $data['date_of_birth'];
        $d->status = $data['status'];
        $d->sex     = $data['sex'];
        $d->notes   = $data['notes'];
        $d->imported_code = $data['code'];
        $d->created_at = $data['created_at'];
        $d->updated_at = date('Y-m-d');

        // crio uma senha com o ID do paciente
//            if(isset($data['password'])){
//                
//            }

        $d->kind_of_person = '';
        if($data['kind_of_person'] == 'PF' || $data['kind_of_person'] == 'PJ')
        {
            $d->kind_of_person = $data['kind_of_person'];
        }

        // Salvo os dados.
        $d->save();
        $cid = $d->id();


        // Apago os endereços atuais do paciente
        ORM::for_table('crm_accounts_address')
                ->where('crm_account_id', $cid)
                ->delete_many();

        // salvo o endereço do contato
        $address = ORM::for_table('crm_accounts_address')->create();
        //recebe os dados do endereço
        if (intval($data['address']['state_id'])) {
            $address->state_id = $data['address']['state_id'];
        }

        if (intval($data['address']['city_id'])) {
            $address->city_id = $data['address']['city_id'];
        }
        $address->zip = isset($data['address']['zip'])?$data['address']['zip']:'';
        $address->address = isset($data['address']['address'])?$data['address']['address']:'';
        $address->neighborhood = isset($data['address']['neighborhood'])?$data['address']['neighborhood']:'';
        $address->number = isset($data['address']['number'])?$data['address']['number']:'';
        $address->complement = isset($data['address']['complement'])?$data['address']['complement']:'';
        $address->type_address = "tax_address";
        $address->crm_account_id = $cid;
        $address->save();

        // salvo o endereço de cobrança
//            $address = ORM::for_table('crm_accounts_address')->create();
//            $address->type_address = "billing_address";
//            $address->crm_account_id = $cid;
//            $address->save();

        // salvo os grupos do contato
        if($data['cliente'] == 1 && !isset($data['account_id']))
        {
            $dataGroup = ORM::for_table('crm_accounts_groups')->create();
            $dataGroup->crm_accounts_id = $cid;
            $dataGroup->crm_group_id = 1;
            $dataGroup->save();
        }

        if($data['paciente'] == 1 && !isset($data['account_id']))
        {
            $dataGroup = ORM::for_table('crm_accounts_groups')->create();
            $dataGroup->crm_accounts_id = $cid;
            $dataGroup->crm_group_id = 6;
            $dataGroup->save();
        }

        $pacient_id = $cid;
        if (is_numeric($pacient_id)) 
        {
            // PEGO O CONVÊNIO
            if($contact['convenio'] != '' && $contact['convenio'] != 'PARTICULAR' && $contact['convenio'] != 'PARTIC UBS' && $contact['numeromatricula_1'] != '' && $contact['validade_1'] != '')
            {
                $d = ORM::for_table('module_med_agreement')
                        ->table_alias('ma')
                        ->select('ma.*')
                        ->where('ma.agreement_company_name', $contact['convenio'])
                        ->find_one();

                if(isset($d->id) && $d->id > 0)
                {
                    // Apago os endereços atuais do paciente
                    ORM::for_table('module_med_agreement_patient')
                            ->where('crm_accounts_id', $pacient_id)
                            ->delete_many();

                    $convenio = ORM::for_table('module_med_agreement_patient')->create();
                    $convenio->module_med_agreement_id = $d->id;
                    $convenio->crm_accounts_id = $pacient_id;
                    $convenio->identification = $contact['numeromatricula_1'];
                    $convenio->expiration = $contact['validade_1'];
                    $convenio->plan = $contact['plano_1'];
                    $convenio->save();
                }
            }
            $cn++;
            return array('pacient_id' => $pacient_id);
        }
        else
        {
            $msg_controller .= '<br><br>ERRO NO '.($data['account_id']?'UPDATE: '.$data['account_id']:'CADASTRO: '.$contact['codigo']);
            return array('msg' => $msg_controller);
        } 
    }
    
    
    public static function prodoctorAdd($data=array()){


        if(isset($data['account'])){

            $account = trim($data['account']);

            if($account == ''){
                return 'Account Name is Required';
            }

            $email = '';
            $phone = '';
//            $address = '';
//            $city = '';
//            $zip = '';
//            $state = '';
            $country = '';
            $tags = '';
            $company = '';
            $password = '';
            $img = '';

            if(isset($data['account_id']) && $data['account_id'] > 0)
            {
                $d = ORM::for_table('crm_accounts')->find_one($data['account_id']);
            }
            else
            {
                $d = ORM::for_table('crm_accounts')->create();
            }

            $d->account = $data['account'];

            if(isset($data['email']) && trim($data['email']) != ''){

                if(Validator::Email($data['email']) == false){
//                    return 'Invalid Email';
                    
                }
                
                $f = ORM::for_table('crm_accounts')->where('email',$data['email'])->find_one();

                if($f){
//                    return 'Email already exist';
                    
                }
                else
                {
                    $email = $data['email'];
                }
            }

            if(isset($data['phone'])){
                $phone = $data['phone'];
            }

//            if(isset($data['address'])){
//                $address = $data['address'];
//            }
//
//            if(isset($data['city'])){
//                $city = $data['city'];
//            }
//
//            if(isset($data['zip'])){
//                $zip = $data['zip'];
//            }
//
//            if(isset($data['state'])){
//                $state = $data['state'];
//            }

            if(isset($data['country'])){
                $country = $data['country'];
            }
            
            $country = 'Brasil';

            if(isset($data['company'])){
                $company = $data['company'];
            }


            if(isset($data['password'])){
                $password = $data['password'];
                $password = Password::_crypt($password);
            }

            if(isset($data['tags'])){
                $tags = $data['tags'];
            }

            if(isset($data['img'])){
                $img = $data['img'];
            }



            $d->email = $email;
            $d->phone = $phone;
//            $d->address = $address;
//            $d->city = $city;
//            $d->zip = $zip;
//            $d->state = $state;
            $d->country = $country;
            $d->tags = $tags;

            //others
            $d->fname = '';
            $d->lname = '';
            $d->company = $company;
            $d->jobtitle = '';
            $d->cid = '0';
            $d->o = '0';
            $d->balance = '0.00';
            $d->status = 'Active';
            $d->notes = '';
            $d->password = $password;
            $d->token = '';
            $d->ts = '';
            $d->img = $img;
            $d->web = '';
            $d->facebook = '';
            $d->google = '';
            $d->linkedin = '';
            
            // 
            // Leonardo Lopes Ramos - 16/05/2017
            // Novos campos
            $d->code = null;
            $d->cpf_cnpj = $data['cpf_cnpj'];
            $d->rg = $data['rg'];
            $d->cell_phone = $data['cell_phone'];
            $d->date_of_birth = $data['date_of_birth'];
            $d->dob = $data['date_of_birth'];
            $d->status = $data['status'];
            $d->sex     = $data['sex'];
            $d->notes   = $data['notes'];
            $d->imported_code = $data['code'];
            $d->created_at = $data['created_at'];
            $d->updated_at = date('Y-m-d');
            
            // crio uma senha com o ID do paciente
//            if(isset($data['password'])){
//                
//            }
            
            $d->kind_of_person = '';
            if($data['kind_of_person'] == 'PF' || $data['kind_of_person'] == 'PJ')
            {
                $d->kind_of_person = $data['kind_of_person'];
            }
            
            // Salvo os dados.
            $d->save();
            $cid = $d->id();
            
            
            // Apago os endereços atuais do paciente
            ORM::for_table('crm_accounts_address')
                    ->where('crm_account_id', $cid)
                    ->delete_many();
            
            // salvo o endereço do contato
            $address = ORM::for_table('crm_accounts_address')->create();
            //recebe os dados do endereço
            if (intval($data['address']['state_id'])) {
                $address->state_id = $data['address']['state_id'];
            }

            if (intval($data['address']['city_id'])) {
                $address->city_id = $data['address']['city_id'];
            }
            $address->zip = isset($data['address']['zip'])?$data['address']['zip']:'';
            $address->address = isset($data['address']['address'])?$data['address']['address']:'';
            $address->neighborhood = isset($data['address']['neighborhood'])?$data['address']['neighborhood']:'';
            $address->number = isset($data['address']['number'])?$data['address']['number']:'';
            $address->complement = isset($data['address']['complement'])?$data['address']['complement']:'';
            $address->type_address = "tax_address";
            $address->crm_account_id = $cid;
            $address->save();
            
            // salvo o endereço de cobrança
//            $address = ORM::for_table('crm_accounts_address')->create();
//            $address->type_address = "billing_address";
//            $address->crm_account_id = $cid;
//            $address->save();
            
            // salvo os grupos do contato
            if($data['cliente'] == 1 && !isset($data['account_id']))
            {
                $dataGroup = ORM::for_table('crm_accounts_groups')->create();
                $dataGroup->crm_accounts_id = $cid;
                $dataGroup->crm_group_id = 1;
                $dataGroup->save();
            }
            
            if($data['paciente'] == 1 && !isset($data['account_id']))
            {
                $dataGroup = ORM::for_table('crm_accounts_groups')->create();
                $dataGroup->crm_accounts_id = $cid;
                $dataGroup->crm_group_id = 6;
                $dataGroup->save();
            }
            
            if($data['fornecedor'] == 1 && !isset($data['account_id']))
            {
                $dataGroup = ORM::for_table('crm_accounts_groups')->create();
                $dataGroup->crm_accounts_id = $cid;
                $dataGroup->crm_group_id = 2;
                $dataGroup->save();
            }
            
            
            return $cid;

        }

        else{
            return null;
        }


    }


    public static function login($email,$password){
        $d = ORM::for_table('crm_accounts')->where('email',$email)->find_one();
        if($d){

            $db_password = $d['password'];

            if(Password::_verify($password,$db_password) == true){

               $auth_key = Ib_Str::random_string(20).md5(time());

                $d->token = $auth_key;

                $d->save();

                return $auth_key;

            }
            else{
                return false;
            }



        }
        else{
            return false;
        }
    }

    public static function logout_using_token($token){



        $d = ORM::for_table('crm_accounts')->where('token',$token)->find_one();
        if($d){

            $d->token = '';

            $d->save();

            return true;



        }
        else{
            return false;
        }
    }


    public static function details(){

        $d = false;

        if(isset($_COOKIE['ib_ct'])) {

            $ib_ct = $_COOKIE['ib_ct'];



        }

        elseif (isset($_SESSION['ib_ct'])){



            $ib_ct = $_SESSION['ib_ct'];

        }

        else{

            exit('You have logged out. <a href="'.U.'client/login/">Click Here to Login.</a>');

        }


        $d = ORM::for_table('crm_accounts')->where('token',$ib_ct)->find_one();

        if(!$d){


            exit('You have logged out. <a href="'.U.'client/login/">Click Here to Login.</a>');

        }
        else{
            return $d;
        }



    }


    public static function isLogged(){


        if(isset($_COOKIE['ib_ct'])) {

            $ib_ct = $_COOKIE['ib_ct'];



        }

        elseif (isset($_SESSION['ib_ct'])){

            $ib_ct = $_SESSION['ib_ct'];

        }

        else{

            return;

        }

        $d = ORM::for_table('crm_accounts')->where('token',$ib_ct)->find_one();

        if($d){

            r2(U.'client/dashboard/');
        }





    }

    public static function all(){
        $d = ORM::for_table('crm_accounts')->order_by_desc('id')->find_array();
        return $d;
    }


}

Anon7 - 2022
AnonSec Team