daily pastebin goal
56%
SHARE
TWEET

Untitled

a guest Jan 21st, 2019 64 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. /**
  3.  * CDU05 - Gerir Inscriçãoo
  4.  */
  5.  
  6. App::uses('AppController', 'Controller','CakeEmail', 'Network/Email');
  7.  
  8. /**
  9.  * GerirInscricoes Controller
  10.  *
  11.  * @property GerirInscricoes $GerirInscricoes
  12.  * @property RequestHandlerComponent $RequestHandler
  13.  * @property Rng11Component $Rng11
  14.  */
  15. class GerirInscricoesController extends AppController {
  16.  
  17. /**
  18.  * Components
  19.  *
  20.  * @var array
  21.  */
  22.     public $components = array('RequestHandler', 'Mensagem' , 'Rng11');
  23.     public $helpers = array('Js');
  24.    
  25.     /**
  26.     * Uses
  27.     *
  28.     * @var array
  29.     */
  30.     public $uses = array('TbInscricao', 'TxSituacaoinscricao','TbDae','TbPagamentoDae');
  31.    
  32. /**
  33.  * Functions
  34.  *
  35.  */
  36.     function index()
  37.     {
  38.         $this->redirect(array('action' => 'pesquisaInscricao'));
  39.     }
  40.    
  41.     function pesquisaInscricao()
  42.     {
  43.         $this->set("title_for_layout", " Pesquisa Inscrição");
  44.         $this->set('situacaoInscricao', $this->TxSituacaoinscricao->find('list', array('recursive' => -1, 'fields' => 'descricao')));
  45.         if($this->request->is('get')){
  46.             $params = $this->request->params;
  47.             $evento_id = $params['pass'][0];
  48.             $this->set('evento_id',$evento_id);
  49.         } elseif($this->request->is('post'))
  50.         {
  51.             $evento_id = 1;
  52.             if ($this->request->data['submit'] == 'Pesquisar')
  53.             {
  54.                 unset($this->request->data['submit']);
  55.                
  56.                 $this->set('evento_id',$evento_id);
  57.                 $condicoes = $this->postConditions($this->data);
  58.                 $joins = array(
  59.                     array(
  60.                         'table' => 'txsituacaoinscricao',
  61.                         'alias' => 'TxSituacaoInscricao',
  62.                         'type' => 'INNER',
  63.                         'conditions' => 'TxSituacaoInscricao.id_situacaoinscricao = TbInscricao.id_situacaoinscricao',
  64.                         'foreignKey' => false,
  65.                     ),
  66.                     array(
  67.                         'table' => 'tbevento',
  68.                         'alias' => 'TbEvento',
  69.                         'type' => 'LEFT',
  70.                         'conditions' => 'TbEvento.id_evento = TbInscricao.id_evento',
  71.                         'foreignKey' => false,
  72.                     ),
  73.                     array(
  74.                         'table' => 'tbdae',
  75.                         'alias' => 'TbDae',
  76.                         'type' => 'LEFT',
  77.                         'conditions' => 'TbInscricao.id_inscricao = TbDae.id_inscricao',
  78.                         'foreignKey' => false,
  79.                     ),
  80.                     array(
  81.                         'table' => 'tbpagamentodae',
  82.                         'alias' => 'TbPagamentoDae',
  83.                         'type' => 'LEFT',
  84.                         'conditions' => 'TbPagamentoDae.id_dae = TbDae.id_dae',
  85.                         'foreignKey' => false,
  86.                     ),
  87.                 );
  88.                 $fields = array(
  89.                     'TbInscricao.id_inscricao',
  90.                     'TbInscricao.numeroinscricao', 
  91.                     'TbInscricao.participante',  
  92.                     'TbInscricao.cpf',         
  93.                     'TbInscricao.datainscricao',   
  94.                     //'TbInscricao.flg_daeenviado',
  95.                     'TbInscricao.flg_confirmacao',
  96.                     'Txsituacaoinscricao.descricao',
  97.                     'TbInscricao.id_situacaoinscricao',
  98.                     'TbPagamentoDae.flg_sucesso',
  99.                 );
  100.                 $this->paginate = array(
  101.                                 'recursive'     => -1,
  102.                                 'joins'         => $joins,
  103.                                 'fields'        => $fields,
  104.                                 'conditions'    => $condicoes,
  105.                                 'limit'         => 10
  106.                 );
  107.                 $listaInscricoes = $this->paginate();
  108.                 $this->set('listaInscricoes', $this->paginate());
  109.                 if(!sizeof($listaInscricoes)){
  110.                     $this->Session->setFlash($this->Mensagem->imprimir('MSGI004'));
  111.                 }              
  112.                 $totalPreInscritos = $this->TbInscricao->consultaSituacao($evento_id,1);
  113.                 $totalInscritos = $this->TbInscricao->consultaSituacao($evento_id,2);
  114.                 $totalDAEEnviados = $this->TbInscricao->totalDAEEnviados($evento_id);
  115.                 $this->set('totalPreInscritos',$totalPreInscritos);
  116.                 $this->set('totalInscritos',$totalInscritos);
  117.                 $this->set('totalDAEEnviados',$totalDAEEnviados);
  118.             }
  119.         }
  120.         $this->set('evento_id',$evento_id);
  121.     }
  122.  
  123.     function salvarInscricoes()
  124.     {
  125.         unset($this->request->data['submit']); // TODO: artificio para postconditions // remover ??
  126.         $evento_id = $this->request->data['TbEvento']['id_evento'];
  127.  
  128.         if (isset($this->request->data['TbInscricao']['id_inscricao'])) {
  129.             $inscricoesACancelar = $this->request->data['TbInscricao']['id_inscricao'];
  130.             $inscricoesACancelarCompleto = $this->TbInscricao->find('all', array('recursive' => -1, 'conditions' => array('tbinscricao.id_inscricao' => $this->request->data['TbInscricao']['id_inscricao'])));
  131.             $this->cancelarInscricao ($evento_id,$inscricoesACancelar,$inscricoesACancelarCompleto);
  132.            
  133.         }
  134.         if (isset($this->request->data['TxSituacaoInscricao']['flg_confirmacao'])) {
  135.             $inscricoesAConfirmar = $this->request->data['TxSituacaoInscricao']['flg_confirmacao'];
  136.             $inscricoesAConfirmarCompleto = $this->TbInscricao->find('all', array('conditions' => array('tbinscricao.id_inscricao' => $this->request->data['TxSituacaoInscricao']['flg_confirmacao'])));
  137.             $this->confirmarInscricao($evento_id,$inscricoesAConfirmar,$inscricoesAConfirmarCompleto);
  138.         }
  139.         $this->set('mensagemCancelar',$this->Mensagem->imprimir('MSGI006'));
  140.         $this->set('mensagemConfirmar',$this->Mensagem->imprimir('MSGI003'));
  141.         $this->set('$mensagemImpressaoBoleto',$this->Mensagem->imprimir('MSGI005'));
  142.         $this->set('$mensagemInscricaoConfirmada',$this->Mensagem->imprimir('MSGI011'));
  143.         $this->set('$mensagemAlteracoesCanceladas',$this->Mensagem->imprimir('MSGA005'));
  144.     }
  145.    
  146.     /*
  147.      * altera o status das inscricoes para "3 - Cancelada"
  148.      * Envia e-mails confirmando o cancelamento de cada inscricao
  149.      */
  150.     function cancelarInscricao($evento_id,$inscricoesACancelar,$inscricoesACancelarCompleto)
  151.     {
  152.         if (!empty($inscricoesACancelar))
  153.         {
  154.             $this->TbInscricao->atualizaStatusInscricao($evento_id,$inscricoesACancelar,3);
  155.  
  156.             $email = new CakeEmail('default');
  157.             foreach ($inscricoesACancelar as $inscricaoACancelar)
  158.             {
  159. /*
  160.                 $this->set('inscricaoACancelar',$inscricaoACancelar);
  161.                 $subject = $inscricaoACancelar['tbevento']['nomevento'] . ' - Cancelamento de inscrição';
  162.                 $email->to('guilherme.costa@prodemge.gov.br') // $inscricaoACancelar['TbInscricao']['participante'];
  163.                       ->subject($subject)
  164.                       ->template('boleto')
  165.                       ->emailFormat('text')
  166.                       ->viewVars(array('inscricaoACancelar' => $inscricaoACancelar))               
  167.                       ->send("$mensagem");
  168. */                   
  169.             }
  170.         }
  171.         return true;
  172.     }
  173.  
  174.     /*
  175.     * Alteracao conforme e-mail Alvimar 28/09/2012
  176.     *
  177.     *  Se sim,
  178.     *   atualiza o cadastro da inscrição(flg_confirmacao = 1)
  179.     *   exibe a mensagem MSGI005 - Acesso para impressão do boleto de pagamento liberado com sucesso
  180.     *   envia email:
  181.     */
  182.     function confirmarInscricao($evento,$inscricoesAConfirmar,$inscricoesAConfirmarCompleto)
  183.     {
  184.         //$this->autoRender = false; // TODO: confirmarInscricao - remover autoRender = false
  185.         if (!empty($inscricoesAConfirmar))
  186.         {
  187.             $emitirDaePeloSistema = $this->TbInscricao->emitirDaePeloSistema();
  188.             $email = new CakeEmail('default');
  189.             foreach ($inscricoesAConfirmar as $inscricaoAConfirmar)
  190.             {
  191.                 if ($emitirDaePeloSistema) // TODO: criar funcao para verificar (flg_confirmacao = 1)
  192.                 {
  193.                     // altera o status da inscricao para "1 - Pré-inscrito"
  194.                     $this->TbInscricao->atualizaStatusInscricao($evento_id,$inscricoesAConfirmar,1);
  195.  
  196. /*                 
  197.                     $subject = $inscricaoACancelar['tbevento']['nomevento'] . ' - Cancelamento de inscrição';
  198.                     $email->to('guilherme.costa@prodemge.gov.br') // $inscricaoACancelar['TbInscricao']['participante'];
  199.                     ->subject($subject)
  200.                     ->template('inscricaoAConfirmar')
  201.                     ->emailFormat('text')
  202.                     ->viewVars(array('inscricaoAConfirmar' => $inscricaoAConfirmar))
  203.                     ->send("$mensagem");
  204. */                 
  205.                 } else
  206.                 {
  207.                     // altera o status da inscricao para 2 - Inscrito
  208.                     $this->TbInscricao->atualizaStatusInscricao($evento_id,$inscricoesAConfirmar,2);
  209.  
  210. /*                 
  211. //                  subject = $inscricaoACancelar['tbevento']['nomevento'] . ' - Confirmação de inscrição';
  212.                     $email->to('guilherme.costa@prodemge.gov.br') // $inscricaoACancelar['TbInscricao']['participante'];
  213.                     ->subject($subject)
  214.                     ->template('inscricaoAConfirmar')
  215.                     ->emailFormat('text')
  216.                     ->viewVars(array('inscricaoAConfirmar' => $inscricaoAConfirmar))
  217.                     ->send("$mensagem");
  218. */                 
  219.                 }
  220.             }          
  221.         }
  222.     }
  223.    
  224.     function devolverPagamento()
  225.     {
  226.         if (isset($this->request->data['TbInscricao']['id_inscricao'])) {      
  227. /*         
  228.             Find:
  229.             Inscricao.idInscricao
  230.             Inscricao.nome
  231.             Inscricao.CPF
  232.             DAE.numeroDAE
  233.             DAE.nsu
  234.             DAE.devolvido
  235. */
  236.             foreach ($array_expression as $value)
  237.             {
  238.             // 3.O SINSC salva as alterações??
  239.             // executa a regra de negócio RNG11 - Devolução de pagamento
  240.                 $this->Session->setFlash($this->Mensagem->imprimir('MSGI007'));
  241.                
  242.             }
  243.         }else{
  244.             $this->set("title_for_layout", "Devolver Pagamento");
  245.             $this->render();  // 1.O SINSC exibe a interface IU003.2 - Tela devolver pagamento
  246.         }
  247.     }
  248.    
  249.     function enviaEmailInscricao($email) {
  250.         //prd($email);
  251.         //$email = new CakeEmail(); // e necessario?
  252.         $email->template($email['template']);
  253.         $email->emailFormat($email['formato']); // html ou both
  254.         $this->Email->send($mensagem); // $this->Email->send($email['mensagem']');
  255.         die("enviou email");
  256.         return true;
  257.     }
  258.  
  259. /*
  260.  * O SINSC exibe a interface aciona o caso de uso CDU04 - Emitir relatórios a partir do item 3.2
  261.  * IU009 - Tela filtro relatório inscrição
  262.  */
  263. function gerarRelatorio() {
  264.         $this->redirect('EmitirRelatorios/filtro_relatorio_de_inscricoes');
  265.     }
  266. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top