| 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 : |
<?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;
}
}