D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
var
/
www
/
html
/
crsys_ant
/
adm
/
app
/
gre
/
Models
/
Autorizacao
/
Filename :
ModRespAutorizacao.php
back
Copy
<?php namespace App\gre\Models\Autorizacao; if (!defined('URL')) { header("Location: /"); exit(); } class ModRespAutorizacao { private $Resultado; private $DadosId; private $itemAnterior; private $itemOrcaRev; private $VlrDife; private $Autorizacao; private $itemAutorizacao; private $Dados; private $Frete; private $Total; private $DadosUpdate; function getResultado() { return $this->Resultado; } public function respAutorizacao($DadosId) { $this->DadosId = (int) $DadosId; $verForn = new \App\adms\Models\helper\AdmsRead(); $verForn->fullRead("Select aut.*, FORMAT(aut.vlr_total, 2, 'pt_BR') vlr_totalm, concat('R$ ',FORMAT(aut.vlr_solicitado, 2, 'de_DE')) vlr_solicitadom, FORMAT(aut.vlr_desc_atual, 2, 'pt_BR') vlr_atualm, date_format(aut.data_solicitacao, '%d/%m/%Y %H:%i') data_m, case when aut.tipo_autorizacao = 'DESC' then 'DESCONTO' ELSE 'REVISÃO DE ITEM' END nome_tipo, ven.nome nome_vend, c.status_real, c.num_contrato FROM gre_pedido_autorizacao aut left join gre_cab_orcamento c on c.orca_id = aut.orca_id and c.num_revisao = aut.num_revisao left join adms_usuarios ven on c.vend = ven.id WHERE aut.id = :id and aut.empr_id = {$_SESSION['id_user']}", "id=".$this->DadosId); $this->Resultado= $verForn->getResultado(); return $this->Resultado; } public function lerItens($DadosId = null) { $this->DadosId = (int) $DadosId; $verItem = new \App\adms\Models\helper\AdmsRead(); $verItem->fullRead("select it.item_rev_id, (select iv.material from gre_item_trab iv where pe.empr_id = iv.empr_id and pe.orca_id = iv.orca_id and it.item_rev_id = iv.id ) velho_material, it.material novo_material, it.descricao_tabela, it.vlr_dife_item, concat('R$ ',format(it.vlr_dife_item, 2, 'de_DE')) vlr_dife_itemm from gre_item_orcamento it inner join gre_pedido_autorizacao pe on pe.empr_id = it.empr_id and pe.orca_id = it.orca_id and pe.num_revisao = it.num_revisao where pe.id = :id and it.item_rev_id <> 0 and it.status_id = 0", "id=".$this->DadosId); $this->Resultado= $verItem->getResultado(); return $this->Resultado; } public function Autoriza(array $Dados){ $this->Dados = $Dados; // var_dump($this->Dados); // die; $this->verItemAnterior($this->Dados['id']); //var_dump($this->itemAnterior); // die; $totalVlrDifeRevisao = 0; foreach ($this->itemAnterior as $itemAnterior) { $this->itemOrcaRev = $itemAnterior; $repete ='N'; $naocobra = 'N'; unset($itemAnterior['id']); if(isset($this->Dados['repete'])){ foreach ($this->Dados['repete'] as $itemRepete) { if ($itemRepete == $itemAnterior['item'] ){ $repete = 'S'; $this->gravaItemAutorizacao($this->itemOrcaRev, $repete, null); }else{ $repete = 'N'; } } } if(isset($this->Dados['naocobraDevolve'])){ foreach ($this->Dados['naocobraDevolve'] as $naocobraDevolve) { if ($naocobraDevolve == $itemAnterior['item'] ){ $naocobra = 'S'; $this->gravaItemAutorizacao($this->itemOrcaRev, null, $naocobra); }else{ $naocobra = 'N'; } } } if($repete == 'S'){ $this->VlrDife['vlr_dife_item'] = 0; $this->VlrDife['vlr_total'] = $itemAnterior['vlr_total']; } if($naocobra == 'S'){ $this->VlrDife['vlr_dife_item'] = 0; unset( $this->VlrDife['vlr_total']); } if($repete == 'S' or $naocobra == 'S'){ $upAltItem = new \App\adms\Models\helper\AdmsUpdate(); $upAltItem->exeUpdate("gre_item_orcamento", $this->VlrDife, "WHERE id = :id", "id=" . $itemAnterior['item']); } $cadItemAnterior = new \App\adms\Models\helper\AdmsCreate; $cadItemAnterior->exeCreate("gre_item_orcamento", $itemAnterior); if($naocobra == 'N' and $repete == 'N'){ $this->gravaItemAutorizacao($this->itemOrcaRev, $repete, $naocobra); } } $verFrete = new \App\adms\Models\helper\AdmsRead(); $verFrete->fullRead("select vlr_frete, num_contrato from gre_cab_orcamento WHERE orca_id = :orca_id and empr_id = :empr_id and num_revisao = :num_revisao", "orca_id=".$itemAnterior['orca_id']."&empr_id=".$itemAnterior['empr_id']."&num_revisao=".$itemAnterior['num_revisao']); $this->Frete = $verFrete->getResultado(); $verTotal = new \App\adms\Models\helper\AdmsRead(); $verTotal->fullRead("select sum(vlr_total) vlr_total,sum(vlr_dife_item) vlr_dife_item from gre_item_orcamento WHERE orca_id = :orca_id and empr_id = :empr_id and num_revisao = :num_revisao and status_id = 0 ", "orca_id=".$itemAnterior['orca_id']."&empr_id=".$itemAnterior['empr_id']."&num_revisao=".$itemAnterior['num_revisao']); $this->Total = $verTotal->getResultado(); $this->VlrDife = []; $this->VlrDife['vlr_total'] = $this->Total[0]['vlr_total'] + $this->Frete[0]['vlr_frete']; $this->VlrDife['vlr_dife_revisao'] = $this->Total[0]['vlr_dife_item']; $this->VlrDife['status_id'] = 23; // $this->VlrDife['status_real'] = null; $upAltCab = new \App\adms\Models\helper\AdmsUpdate(); $upAltCab->exeUpdate("gre_cab_orcamento", $this->VlrDife, "WHERE empr_id = :empr_id and orca_id =:orca_id and num_revisao = :num_revisao", "empr_id=" . $this->itemAnterior[0]['empr_id']. "&orca_id=" . $this->itemAnterior[0]['orca_id']. "&num_revisao=" . $this->itemAnterior[0]['num_revisao']); $this->Autorizacao['autorizado'] = 'S'; $this->Autorizacao['status_id'] = 1; date_default_timezone_set ("America/Sao_Paulo"); $this->Autorizacao['data_resposta'] = date("Y-m-d H:i:s"); $this->Autorizacao['usu_id_resposta'] = $_SESSION['usuario_id']; $this->Autorizacao['chave'] = null; $this->Autorizacao['num_contrato'] = $this->Frete[0]['num_contrato']; $this->Autorizacao['observacao'] = $this->Dados['observacao']; $upAltAut = new \App\adms\Models\helper\AdmsUpdate(); $upAltAut->exeUpdate("gre_pedido_autorizacao", $this->Autorizacao, "WHERE id = :id", "id=" . $this->Dados['id']); if ($upAltAut->getResultado()) { $_SESSION['msg'] = "<div class='alert alert-success alert-dismissible fade show' role='alert'> Autorização realizada 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: Autorizacao não foi realizada! <button type='button' class='btn-close' data-bs-dismiss='alert' aria-label='Close'> </button> </div>"; $this->Resultado = false; } $apagarItemTrab = new \App\adms\Models\helper\AdmsDelete(); $apagarItemTrab->exeDelete("gre_item_trab", "WHERE empr_id = :empr_id and orca_id =:orca_id and num_revisao = :num_revisao", "empr_id=" . $this->itemAnterior[0]['empr_id']. "&orca_id=" . $this->itemAnterior[0]['orca_id']. "&num_revisao=" . $this->itemAnterior[0]['num_revisao']); $apagarCabTrab = new \App\adms\Models\helper\AdmsDelete(); $apagarCabTrab->exeDelete("gre_cab_trab", "WHERE empr_id = :empr_id and orca_id =:orca_id and num_revisao = :num_revisao", "empr_id=" . $this->itemAnterior[0]['empr_id']. "&orca_id=" . $this->itemAnterior[0]['orca_id']. "&num_revisao=" . $this->itemAnterior[0]['num_revisao']); return $this->Resultado; } public function NaoAutoriza(array $Dados) { $this->verItemAnterior($this->Dados['id']); $resultadoItens = true; foreach ($this->itemAnterior as $itemAnterior) { $read = new \App\adms\Models\helper\AdmsRead(); $read->fullRead( "SELECT * FROM gre_item_trab WHERE empr_id = :empr_id AND orca_id = :orca_id AND num_revisao = :num_revisao AND id = :item", "empr_id=" . $itemAnterior['empr_id'] . "&orca_id=" . $itemAnterior['orca_id'] . "&num_revisao=" . $itemAnterior['num_revisao'] . "&item=" . $itemAnterior['id'] ); $itemTrab = $read->getResultado(); if (!empty($itemTrab)) { $this->dadosUpdate = $itemTrab[0]; unset( $this->dadosUpdate['id'], $this->dadosUpdate['empr_id'], $this->dadosUpdate['orca_id'], $this->dadosUpdate['num_revisao'] ); $upItem = new \App\adms\Models\helper\AdmsUpdate(); $upItem->exeUpdate( "gre_item_orcamento", $this->dadosUpdate, "WHERE id = :id", "id={$itemAnterior['id']}" ); if (!$upItem->getResultado()) { $resultadoItens = false; } } } if (!empty($this->itemAnterior)) { $primeiroItem = $this->itemAnterior[0]; $read = new \App\adms\Models\helper\AdmsRead(); $read->fullRead( "SELECT * FROM gre_cab_trab WHERE empr_id = :empr_id AND orca_id = :orca_id AND num_revisao = :num_revisao", "empr_id={$primeiroItem['empr_id']} &orca_id={$primeiroItem['orca_id']} &num_revisao={$primeiroItem['num_revisao']}" ); $cabTrab = $read->getResultado(); if (!empty($cabTrab)) { $dadosUpdate = $cabTrab[0]; unset( $dadosUpdate['id'], $dadosUpdate['empr_id'], $dadosUpdate['orca_id'], $dadosUpdate['num_revisao'] ); $upCab = new \App\adms\Models\helper\AdmsUpdate(); $upCab->exeUpdate( "gre_cab_orcamento", $dadosUpdate, "WHERE empr_id = :empr_id AND orca_id = :orca_id AND num_revisao = :num_revisao", "empr_id={$primeiroItem['empr_id']} &orca_id={$primeiroItem['orca_id']} &num_revisao={$primeiroItem['num_revisao']}" ); } } $this->Autorizacao['autorizado'] = 'N'; date_default_timezone_set("America/Sao_Paulo"); $this->Autorizacao['data_resposta'] = date("Y-m-d H:i:s"); $this->Autorizacao['usu_id_resposta'] = $_SESSION['usuario_id']; $this->Autorizacao['chave'] = null; $this->Autorizacao['status_id'] = 9; $this->Autorizacao['num_contrato'] = $cabTrab[0]['num_contrato']; $this->Autorizacao['observacao'] = $this->Dados['observacao']; $upAltAut = new \App\adms\Models\helper\AdmsUpdate(); $upAltAut->exeUpdate( "gre_pedido_autorizacao", $this->Autorizacao, "WHERE id = :id", "id=" . $this->Dados['id'] ); if ($upAltAut->getResultado()) { $_SESSION['msg'] = "<div class='alert alert-success alert-dismissible fade show' role='alert'> Não Autorização realizada 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: Não Autorizado foi realizada! <button type='button' class='btn-close' data-bs-dismiss='alert' aria-label='Close'> </button> </div>"; $this->Resultado = false; } if (!empty($this->itemAnterior)) { $primeiroItem = $this->itemAnterior[0]; $apagarItemTrab = new \App\adms\Models\helper\AdmsDelete(); $apagarItemTrab->exeDelete( "gre_item_trab", "WHERE empr_id = :empr_id AND orca_id = :orca_id AND num_revisao = :num_revisao", "empr_id=" . $primeiroItem['empr_id'] . "&orca_id=" . $primeiroItem['orca_id'] . "&num_revisao=" . $primeiroItem['num_revisao'] ); $apagarCabTrab = new \App\adms\Models\helper\AdmsDelete(); $apagarCabTrab->exeDelete( "gre_cab_trab", "WHERE empr_id = :empr_id AND orca_id = :orca_id AND num_revisao = :num_revisao", "empr_id=" . $primeiroItem['empr_id'] . "&orca_id=" . $primeiroItem['orca_id'] . "&num_revisao=" . $primeiroItem['num_revisao'] ); } return $this->Resultado; } private function verItemAnterior($Dados = null) { $verItemAnterior = new \App\adms\Models\helper\AdmsRead(); $verItemAnterior->fullRead("select it.id, it.empr_id, it.item, it.orca_id, it.num_revisao, it.larg, it.prof, it.alt_fron_esq, it.larg_fron_esq, it.alt_fron_dir, it.larg_fron_dir, it.alt_fron_fun, it.larg_fron_fun, it.alt_fron_fren, it.larg_fron_fren, it.alt_saia_esq, it.larg_saia_esq, it.alt_saia_dir, it.larg_saia_dir, it.alt_saia_fun, it.larg_saia_fun, it.alt_saia_fren, it.larg_saia_fren, it.tpo_duplo, it.em_curva, it.polir_duplo, it.acab_id, it.acabDir, it.acabEsq, it.acabFren, it.acabFun, it.fronDir, it.fronEsq, it.fronFren, it.fronFun, it.saiaDir, it.saiaEsq, it.saiaFren, it.saiaFun, it.acab_topo_frontao, it.esqua, it.utiliza_insumo, it.acabamento, it.servico, it.qtde_serv, it.material_id, it.material, it.benef_id, it.vlr_unit_acab, it.vlr_unit_mat, it.vlr_unit_prod, it.vlr_unit_serv, it.ambiente_id, it.descricao, it.id_tabela, it.descricao_tabela, it.qtde_pecas, it.unid_prod, it.base_mo, it.base_mat, it.vlr_total_mo, it.vlr_total_mat, it.vlr_total_col, it.vlr_total_acab_fron, it.vlr_total_serv, it.vlr_total_acab, it.vlr_insumo, it.vlr_total, it.base_total, it.m2, it.ml, it.produto, it.obra_id, it.obra, it.ajuste, it.fornecedor_id, it.data_pedido, it.data_medicao, it.data_desenho, it.data_aprovacao, it.data_os, it.data_entrega, it.data_inicio, it.data_Fim, it.colocadorId, it.num_os, it.observacao, it.created, it.usu_created, it.modified, it.usu_modified, it.num_Pedido, it.percentual, it.larg_aa, it.prof_aa, it.data_ult_rev, it.conj, 1 status_id, it.escolheu_rev, it.material_dife, it.item_rev_id, ion.vlr_dife_item from gre_item_orcamento ion inner join gre_item_trab it on ion.empr_id = it.empr_id and ion.orca_id = it.orca_id and ion.num_revisao= it.num_revisao inner join gre_pedido_autorizacao pa on pa.empr_id = it.empr_id and pa.orca_id = it.orca_id and pa.num_revisao= it.num_revisao where it.id = ion.item_rev_id and pa.id = :id ", "id=".$this->Dados['id']); $this->itemAnterior= $verItemAnterior->getResultado(); } private function gravaItemAutorizacao($itemAnterior = null, $repete = null, $naocobra = null){ $this->itemAutorizacao['aut_id'] = $this->Dados['id']; $this->itemAutorizacao['empr_id'] = $itemAnterior['empr_id']; $this->itemAutorizacao['orca_id'] = $itemAnterior['orca_id']; $this->itemAutorizacao['num_revisao'] = $itemAnterior['num_revisao']; $this->itemAutorizacao['item_id'] = $itemAnterior['item']; if($repete == 'N' and $naocobra == 'N') { if($itemAnterior['vlr_dife_item'] < 0) { $this->itemAutorizacao['nome_opcao'] = 'DEVOLVER'; }else{ $this->itemAutorizacao['nome_opcao'] = 'COBRAR'; } $this->itemAutorizacao['vlr_aprovado'] = $itemAnterior['vlr_dife_item']; $this->itemAutorizacao['vlr_dife_item'] = $itemAnterior['vlr_dife_item']; }else{ if($repete == 'S'){ $this->itemAutorizacao['nome_opcao'] = 'REPETE'; $this->itemAutorizacao['vlr_dife_item'] = $itemAnterior['vlr_dife_item']; $this->itemAutorizacao['vlr_aprovado'] = 0.00; } if($naocobra == 'S'){ if($itemAnterior['vlr_dife_item'] < 0) { $this->itemAutorizacao['nome_opcao'] = 'NÃO DEVOLVER'; }else{ $this->itemAutorizacao['nome_opcao'] = 'NÃO COBRAR'; } $this->itemAutorizacao['vlr_dife_item'] = $itemAnterior['vlr_dife_item']; $this->itemAutorizacao['vlr_aprovado'] = 0.00; } } $cadItemAutorizado = new \App\adms\Models\helper\AdmsCreate; $cadItemAutorizado->exeCreate("gre_item_autorizado", $this->itemAutorizacao); } }