D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
html
/
crsys_ant
/
adm
/
app
/
gre
/
Models
/
Medicao
/
Filename :
ModCriarOrdemMedicao.php
back
Copy
<?php namespace App\gre\Models\Medicao; if (!defined('URL')) { header("Location: /"); exit(); } /** * Description of GreCriarOrdemMedicao * * @copyright (c) year, Carlos Marques - CM */ class ModCriarOrdemMedicao { private $Resultado; private $Dados; private $DadosId; private $DadosFeriado; private $substituicao = array( ' ' => '', '_' => '', '-' => '', '/' => '', '.' => '', ',' => '', '(' => '', ')' => '' ); function getResultado() { return $this->Resultado; } public function listarOrdemMedicao($DadosId = null) { $this->DadosId = $DadosId; // var_dump($this->DadosId); // die; $listarOrdemMedicao= new \App\adms\Models\helper\AdmsRead(); $listarOrdemMedicao->fullRead("SELECT med.orca_id, med.num_revisao, med.num_contrato, med.obra nome_obra, med.contato_obra nome_contato, v.nome nome_vend, date_format(med.data_agenda_medicao, '%Y-%m-%d') data_agendada, date_format(med.data_agenda_medicao, '%d/%m/%Y')data_agendadam, case when length(med.telefone_obra) < 11 then MAX(MASK(LPAD(med.telefone_obra,10,'0'),'(##) ####-####')) else MAX(MASK(LPAD(med.telefone_obra,11,'0'),'(##) #####-####')) end AS tel_obra, case when length(med.tel_vend) < 11 then MAX(MASK(LPAD(med.tel_vend,10,'0'),'(##) ####-####')) else MAX(MASK(LPAD(med.tel_vend,11,'0'),'(##) #####-####')) end AS tel_vend, med.nome_cliente, sit.nome nome_sit, cr.cor cor_cr FROM gre_cab_orcamento med inner join adms_usuarios v on v.id = med.vend INNER JOIN gre_status sit ON sit.id=med.status_id INNER JOIN adms_cors cr ON cr.id=sit.cor_id where med.status_id in(9,10,11) and med.empr_id = :empr_id", "empr_id=" . $_SESSION['id_user']); $this->Resultado = $listarOrdemMedicao->getResultado(); return $this->Resultado; } public function verOrdemMedicao($DadosId) { $this->DadosId = $DadosId; //var_dump($this->DadosId); $verOrdemMedicao= new \App\adms\Models\helper\AdmsRead(); $verOrdemMedicao->fullRead("SELECT med.orca_id, med.num_revisao, med.num_contrato, med.obra nome_obra, med.contato_obra nome_contato, med.data_medicao, med.medidor_id, f.nome medidor_nome, v.nome nome_vend, date_format(med.data_agenda_medicao, '%Y-%m-%d') data_agendada, date_format(med.data_agenda_medicao, '%d/%m/%Y')data_agendadam, case when length(med.telefone_obra) < 11 then MAX(MASK(LPAD(med.telefone_obra,10,'0'),'(##) ####-####')) else MAX(MASK(LPAD(med.telefone_obra,11,'0'),'(##) #####-####')) end AS tel_obra, case when length(med.tel_vend) < 11 then MAX(MASK(LPAD(med.tel_vend,10,'0'),'(##) ####-####')) else MAX(MASK(LPAD(med.tel_vend,11,'0'),'(##) #####-####')) end AS tel_vend, med.nome_cliente, sit.nome nome_sit, cr.cor cor_cr FROM gre_cab_orcamento med inner join adms_usuarios v on v.id = med.vend inner join gre_funcionario f on f.id = med.medidor_id INNER JOIN gre_status sit ON sit.id=med.status_id INNER JOIN adms_cors cr ON cr.id=sit.cor_id where med.status_id in (9,10,11) and med.orca_id = :orca_id and med.num_revisao = :num_revisao and med.empr_id = :empr_id and medidor_id = :medidor_id", "orca_id=" . $this->DadosId['orca_id']."&num_revisao=" . $this->DadosId['num_revisao']."&empr_id=" . $_SESSION['id_user']."&medidor_id=" . $this->DadosId['medidor_id']); $this->Resultado = $verOrdemMedicao->getResultado(); //var_dump($this->Resultado); //die; return $this->Resultado; } public function listarMedidorAmbiente($Dados){ $this->DadosId = $Dados; //var_dump($this->DadosId); // die; // var_dump($this->DadosId['form'][0]); $listarMedAmbiente= new \App\adms\Models\helper\AdmsRead(); $listarMedAmbiente->fullRead("SELECT ag.funcionario_id, date_format(ag.data_inicio, '%Y-%m-%d') data_agendada, a.nome FROM gre_agenda ag inner join gre_ambientes a on a.id = ag.ambiente_id WHERE ag.empr_id = :empr_id AND ag.orca_id = :orca_id and ag.num_revisao = :num_revisao order by order by ag.data_inicio", "orca_id=" . $this->DadosId['orca_id']."&num_revisao=" . $this->DadosId['num_revisao']."&empr_id=" . $_SESSION['id_user']); $this->Resultado = $listarMedAmbiente->getResultado(); // var_dump($this->Resultado); // die; return $this->Resultado; } public function listarAmbiente($Dados){ $this->DadosId = $Dados; //var_dump($this->DadosId); //die; $listarAmbiente= new \App\adms\Models\helper\AdmsRead(); //var_dump($this->DadosId['form'][0]['opcao']); /*if($this->DadosId['opcao'] == 'I'){ $listarAmbiente->fullRead("SELECT i.ambiente_id, a.nome FROM gre_item_orcamento i INNER JOIN gre_ambientes a ON i.ambiente_id = a.id WHERE i.orca_id = :orca_id AND i.num_revisao = :num_revisao AND i.empr_id = :empr_id AND NOT EXISTS ( SELECT 1 FROM gre_agenda ag WHERE ag.empr_id = i.empr_id AND ag.orca_id = i.orca_id AND ag.num_revisao = i.num_revisao AND ag.ambiente_id = i.ambiente_id AND ag.sit_fase_id <> 1 ) GROUP BY i.ambiente_id, a.nome;", "orca_id=" . $this->DadosId['orca_id']."&num_revisao=" . $this->DadosId['num_revisao']."&empr_id=" . $_SESSION['id_user']); } if($this->DadosId['opcao'] == 'P'){ // var_dump($this->DadosId); // die; $listarAmbiente->fullRead("SELECT i.ambiente_id, a.nome FROM gre_item_orcamento i INNER JOIN gre_ambientes a ON i.ambiente_id = a.id WHERE i.orca_id = :orca_id AND i.num_revisao = :num_revisao AND i.empr_id = :empr_id AND EXISTS ( SELECT 1 FROM gre_agenda ag WHERE ag.empr_id = i.empr_id AND ag.orca_id = i.orca_id AND ag.num_revisao = i.num_revisao AND ag.ambiente_id = i.ambiente_id ) GROUP BY i.ambiente_id, a.nome;", "orca_id=" . $this->DadosId['orca_id']."&num_revisao=" . $this->DadosId['num_revisao']."&empr_id=" . $_SESSION['id_user']); } if($this->DadosId['opcao'] == 'T'){ $listarAmbiente->fullRead("SELECT i.ambiente_id, a.nome FROM gre_item_orcamento i INNER JOIN gre_ambientes a ON i.ambiente_id = a.id WHERE i.orca_id = :orca_id AND i.num_revisao = :num_revisao AND i.empr_id = :empr_id AND EXISTS ( SELECT 1 FROM gre_agenda ag WHERE ag.empr_id = i.empr_id AND ag.orca_id = i.orca_id AND ag.num_revisao = i.num_revisao AND ag.ambiente_id = i.ambiente_id AND ag.medidor_agendado = 'S' ) GROUP BY i.ambiente_id, a.nome;", "orca_id=" . $this->DadosId['orca_id']."&num_revisao=" . $this->DadosId['num_revisao']."&empr_id=" . $_SESSION['id_user']); */ $listarAmbiente->fullRead("SELECT i.ambiente_id, a.nome, (SELECT ag.data_inicio FROM gre_agenda ag WHERE ag.empr_id = i.empr_id AND ag.orca_id = i.orca_id AND ag.num_revisao = i.num_revisao AND ag.ambiente_id = i.ambiente_id AND ag.medidor_agendado = 'S') data_inicio FROM gre_item_orcamento i INNER JOIN gre_ambientes a ON i.ambiente_id = a.id WHERE i.orca_id = :orca_id AND i.num_revisao = :num_revisao AND i.empr_id = :empr_id AND EXISTS ( SELECT 1 FROM gre_agenda ag WHERE ag.empr_id = i.empr_id AND ag.orca_id = i.orca_id AND ag.num_revisao = i.num_revisao AND ag.ambiente_id = i.ambiente_id ) GROUP BY i.ambiente_id, a.nome order by data_inicio;", "orca_id=" . $this->DadosId['orca_id']."&num_revisao=" . $this->DadosId['num_revisao']."&empr_id=" . $_SESSION['id_user']); $this->Resultado = $listarAmbiente->getResultado(); return $this->Resultado; } public function listarAgendaMedidor($DadosId) { $this->DadosId = $DadosId; $this->DadosId['data_agendada'] = date('Y-m-d', strtotime('+1 days')); // $wdata= date('Y-m-d'); $ultimoDiaDoMes = date('Y-m-d', strtotime('+40 days')); // var_dump($wdata); // var_dump($ultimoDiaDoMes); //die; $listarMedicao = new \App\adms\Models\helper\AdmsRead(); $listarMedicao->fullRead("SELECT c.medidor_id id, o.nome nome, MIN(c.num_contrato) AS num_contrato, MIN(DATE(a.data_inicio)) AS data_raw, :ultimodia AS ultimo_dia, :data_agenda AS data_agenda FROM crsys.gre_cab_orcamento c inner join gre_obras o on o.id = c.obra_id LEFT JOIN crsys.gre_agenda a ON c.medidor_id = a.funcionario_id AND a.tarefa IN (7,8) AND a.sit_fase_id IN (1,2) AND a.data_inicio BETWEEN :data_inicio AND :data_fim AND a.empr_id = :empr_id WHERE c.medidor_id = :medidor_id GROUP BY o.id, o.nome, a.data_inicio ORDER BY o.nome, data_raw", "medidor_id=" . $this->DadosId['medidor_id']."&data_inicio=" . $this->DadosId['data_agendada']."&ultimodia=" . $ultimoDiaDoMes."&data_agenda=" . $this->DadosId['data_agendada']."&data_fim=" . $ultimoDiaDoMes."&empr_id=" . $_SESSION['id_user']); $this->Resultado = $listarMedicao->getResultado(); return $this->Resultado; } public function altOrdemMedicao($Dados) { $this->Dados = $Dados; // var_dump($this->Dados); // die; $listarQtde = new \App\adms\Models\helper\AdmsRead(); $listarQtde->fullRead("select count(a.ambiente_id) qtde_amb from gre_agenda a where a.num_contrato = :num_contrato and a.empr_id = :empr_id", "num_contrato=" . $this->Dados['num_contrato']."&empr_id=" . $_SESSION['id_user']); $this->QtdeAgenda = $listarQtde->getResultado(); // var_dump($this->QtdeAgenda ); $qtdSolicitado = isset($this->Dados['ambiente']) && is_array($this->Dados['ambiente']) ? count($this->Dados['ambiente']) : 0; // var_dump('$qtdSolicitado: '.$qtdSolicitado); $this->Dados['sit_fase_id'] = 2; $this->Dados['data_inicio'] = $this->Dados['data_agendou']; $this->Dados['data_fim'] = $this->Dados['data_agendou']; date_default_timezone_set ("America/Sao_Paulo"); $this->Dados['modified'] = date("Y-m-d H:i:s"); $this->Dados['usu_modified'] = $_SESSION['usuario_id']; $this->Dados['empr_id'] = $_SESSION['id_user']; $this->DadosOrca['data_medicao'] = $this->Dados['data_agendou']; $this->DadosOrca['medidor_id'] = $this->Dados['funcionario_id']; unset($this->Dados['data_agendou']); //var_dump($this->Dados); // die; $listarDias = new \App\adms\Models\helper\AdmsRead(); $listarDias->fullRead("select dias_medicao from gre_parametros where id= 1 and empr_id = :empr_id", "empr_id=" . $_SESSION['id_user']); $this->diasLimite = $listarDias->getResultado(); $ambientes = $this->Dados['ambiente']; unset($this->Dados['ambiente']); unset($this->Dados['nome_funcionario']); $dias_medicao = $this->diasLimite[0]['dias_medicao']; $data_inicio = $this->Dados['data_inicio']; //var_dump('$data_inicio: '.$data_inicio); $ano = (new \DateTime())->format('Y'); $this->listarAgendaFeriado($ano); //var_dump($this->DadosFeriado); // die; $feriados = $this->DadosFeriado; $feriadosFormatado = []; foreach ($feriados as $f) { $feriadosFormatado[$f['feriado']] = true; } // var_dump($feriados); // die; $dataObj = new \DateTime($data_inicio); $contador = 0; while ($contador < $dias_medicao) { $dataObj->modify('+1 day'); $dataStr = $dataObj->format('Y-m-d'); $diaSemana = $dataObj->format('N'); if ($diaSemana < 6 && !isset($feriadosFormatado[$dataStr])) { $contador++; } } $data_limite = $dataObj->format('Y-m-d'); $this->Dados['data_limite_medicao'] = $data_limite; // var_dump('$data_limite: '.$data_limite); //var_dump($ambientes); //die; foreach ($ambientes as $ambId) { unset($this->Dados['opcao']); $this->Dados['medidor_agendado'] = 'S'; $this->Dados['data_limite_medicao'] = $data_limite; $upAltOrdemMedicao = new \App\adms\Models\helper\AdmsUpdate(); $upAltOrdemMedicao->exeUpdate( "gre_agenda", $this->Dados, "WHERE empr_id = :empr_id AND num_contrato = :num_contrato AND ambiente_id = :ambiente_id", "empr_id={$this->Dados['empr_id']}&num_contrato={$this->Dados['num_contrato']}&ambiente_id={$ambId}" ); } // var_dump($this->Dados); // die; $listarQtdeSim = new \App\adms\Models\helper\AdmsRead(); $listarQtdeSim->fullRead("select count(a.ambiente_id) qtde_sim from gre_agenda a where a.num_contrato = :num_contrato and a.empr_id = :empr_id and a.data_inicio is not null", "num_contrato=" . $this->Dados['num_contrato']."&empr_id=" . $_SESSION['id_user']); $this->QtdeSim = $listarQtdeSim->getResultado(); // var_dump($this->QtdeAgenda[0]['qtde_amb']); // var_dump($this->QtdeSim[0]['qtde_sim']); // die; if ($this->QtdeAgenda[0]['qtde_amb'] == $this->QtdeSim[0]['qtde_sim']) { $this->DadosOrca['status_id'] = 11; }else{ $this->DadosOrca['status_id'] = 10; } $upStatusCab= new \App\adms\Models\helper\AdmsUpdate(); $upStatusCab->exeUpdate("gre_cab_orcamento", $this->DadosOrca, "WHERE empr_id =:empr_id and num_contrato = :num_contrato", "empr_id=" . $this->Dados['empr_id']."&num_contrato=" . $this->Dados['num_contrato']); if ($upAltOrdemMedicao->getResultado()) { $_SESSION['msg'] = "<div class='alert alert-success alert-dismissible fade show' role='alert'> Ordem Medicao alterada com sucesso! <button type='button' class='btn-close' data-bs-dismiss='alert' aria-label='Close'> </button> </div>"; $this->Resultado = true; } else { $_SESSION['msg'] = "<div class='alert alert-danger alert-dismissible fade show' role='alert'> Erro: Ordem Medicao não foi alterada! <button type='button' class='btn-close' data-bs-dismiss='alert' aria-label='Close'> </button> </div>"; $this->Resultado = false; } return $this->Resultado; } public function listarAgendaFeriado($ano){ $listarAgendaFeriado = new \App\adms\Models\helper\AdmsRead(); $listarAgendaFeriado->fullRead("SELECT data feriado FROM gre_feriado where empr_id = {$_SESSION['id_user']} and date_format(data, '%Y') = {$ano} ORDER BY data ASC"); $this->DadosFeriado = $listarAgendaFeriado->getResultado(); // var_dump($this->DadosFeriado); //die; //return $this->Resultado; // var_dump($this->Resultado); } public function listaFeriado(){ $ano = (new \DateTime())->format('Y'); $listarAgendaFeriado = new \App\adms\Models\helper\AdmsRead(); $listarAgendaFeriado->fullRead("SELECT data feriado FROM gre_feriado where empr_id = {$_SESSION['id_user']} and date_format(data, '%Y') = {$ano} ORDER BY data ASC"); $this->Resultado = $listarAgendaFeriado->getResultado(); return $this->Resultado; } public function listarCadastrar() { $listar = new \App\adms\Models\helper\AdmsRead(); $listar->fullRead("SELECT id id_sit, nome nome_sit FROM adms_sits ORDER BY nome ASC"); $registro['sit'] = $listar->getResultado(); $listar->fullRead("SELECT id id_pessoa, nome nome_pessoa FROM gre_tipo_pessoa"); $registro['pessoa'] = $listar->getResultado(); $listar->fullRead("SELECT v.id id_vend, v.nome nome_vend FROM adms_usuarios v INNER JOIN gre_cargos c ON c.id = v.adms_cargo_id WHERE v.adms_empr_id = {$_SESSION['id_user']} and c.nome like '%Medidor%' AND v.adms_sit_id = 1 ORDER BY v.nome"); $registro['medidor'] = $listar->getResultado(); $this->Resultado = ['sit' => $registro['sit'], 'medidor' => $registro['medidor']]; return $this->Resultado; } private function retiraMasc() { if(isset($this->Dados['cnpj'])) { $this->Dados['cnpj'] = strtr($this->Dados['cnpj'] , $this->substituicao); } if(isset($this->Dados['cpf'])) { $this->Dados['cpf'] = strtr($this->Dados['cpf'] , $this->substituicao); } $this->Dados['cep'] = strtr($this->Dados['cep'] , $this->substituicao); $this->Dados['cep_cobra'] = strtr($this->Dados['cep_cobra'] , $this->substituicao); $this->Dados['fone'] = strtr($this->Dados['fone'] , $this->substituicao); $this->Dados['celular'] = strtr($this->Dados['celular'] , $this->substituicao); } }