Location: PHPKode > projects > SNEP > snep-1.2.0/tarifas/operadoras.php
<?php
/**
 *  This file is part of SNEP.
 *
 *  SNEP is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  SNEP is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with SNEP.  If not, see <http://www.gnu.org/licenses/>.
 */

 require_once("../includes/verifica.php");  
 require_once("../configs/config.php");

 ver_permissao(37) ;

 // Verifica quais Centros de Custos já foram atribuidos a alguma operadora.
    try {
     $sqlcc = "SELECT ccustos FROM oper_ccustos";
     $r = $db->query($sqlcc)->fetchAll();

     if(count($r) > 0) {
         $ind = '';
             foreach($r as $k => $v) {
                $ind .= "'".$v['ccustos']."',";
             }
         $ind = " WHERE codigo NOT IN(".substr($ind, 0, -1).") ";
     }

    } catch(Exception $e) {
        display_error($LANG['error'].$e->getMessage(),true) ;
        exit ;
    }

 // Monta lista de centro de custos com exceção dos que ja foram atribuidos.
 if (!isset($ccustos) || count($ccustos) == 0) {
    try {
       $sql = "SELECT ccustos.* FROM ccustos ". ($ind ? $ind : '') ."ORDER BY ccustos.codigo" ;
       $row = $db->query($sql)->fetchAll();
    } catch (Exception $e) {
       display_error($LANG['error'].$e->getMessage(),true) ;
       exit ;
    }
    unset($val);
    $ccustos = array();
    if (count($row) > 0) {
       foreach ($row as $val)
          $ccustos[$val['codigo']] = $val['tipo']." : ".$val['codigo']." - ".$val['nome'] ;
       asort($ccustos);
    }
 }

 $smarty->assign('CCUSTOS', $ccustos);
 $smarty->assign('ACAO', $acao) ;

 if ($acao == "cadastrar") {
    cadastrar();

 } elseif ($acao ==  "alterar") {
    $titulo = $LANG['menu_tarifas']." » ".$LANG['menu_operadoras']." » ".$LANG['change'];
    alterar();

 } elseif ($acao ==  "grava_alterar") {
    grava_alterar();

 } elseif ($acao ==  "excluir") {
    excluir();

 } else {
   $titulo = $LANG['menu_tarifas']." » ".$LANG['menu_operadoras']." » ".$LANG['include'];
   principal();
   
 }
/*------------------------------------------------------------------------------
 Funcao PRINCIPAL - Monta a tela principal da rotina
------------------------------------------------------------------------------*/
function principal()  {
   global $smarty,$titulo ;   
   $smarty->assign( 'ACAO', "cadastrar" );
   $smarty->assign( 'OPER_CCUSTOS', array() );
   display_template("operadoras.tpl", $smarty, $titulo );
}

/*------------------------------------------------------------------------------
 Funcao CADASTRAR - Inclui um novo registro
------------------------------------------------------------------------------*/
function cadastrar()  {

    global $LANG, $db, $oper_ccustos;

    // Cria objeto Snep_Operadoras e seta valores
    $operadora = new Snep_Operadoras();    
    $operadora->nome = $_POST['nome'];
    $operadora->tpm  = $_POST['tpm'];
    $operadora->tdm  = $_POST['tdm'];
    $operadora->tbf  = $_POST['tbf'];
    $operadora->tbc  = $_POST['tbc'];
    $operadora->vpf  = 0 ; //$_POST['vpf'] ;
    $operadora->vpc  = 0 ; //$_POST['vpc'];

    // Registra objeto, o mesmo retorna id de cadastro no banco
    $id = Snep_Operadoras::register($operadora);

    // Registra Centro de Custos da Operadora
    Snep_Operadoras::setCcustoOperadora($id, $oper_ccustos);

    // Redireciona para cadastro de Operadoras
    echo "<meta http-equiv='refresh' content='0;url=../tarifas/operadoras.php'>\n" ;
 }

/*------------------------------------------------------------------------------
  Funcao ALTERAR - Alterar um registro
------------------------------------------------------------------------------*/
function alterar()  {

    global $LANG, $db, $smarty, $titulo, $acao;

    $id = ( isset($_POST['id'] ) ? $_POST['id'] : $_GET['id'] );

    if (!$id) {
        display_error($LANG['msg_notselect'],true) ;
        exit ;
    }

    // Deprecated - Providenciar Classe que abstraia centros de custo.
    try {
       $sql = "SELECT ccustos.* FROM ccustos ORDER by ccustos.codigo"  ;
       $row = $db->query($sql)->fetchAll();
       $ccustos = array() ;
       if (count($row) > 0) {
          foreach ($row as $val)
              $ccustos[$val['codigo']] = $val['tipo']." : ".$val['codigo']." - ".$val['nome'] ;
          asort($ccustos) ;
       }
    } catch (Exception $e) {
        display_error($LANG['error'].$e->getMessage(),true) ;
        exit ;
    }
    unset($row);

    // Relaciona Centros de Custo desta Operadora
    $row = Snep_Operadoras::getCcustoOperadora($id);

    // Organiza Array de Centro de Custos.
    $oper_ccustos = array() ;
    if (count($row) > 0) {
         foreach ($row as $val) {
             $oper_ccustos[$val['codigo']] = $val['tipo']." : ".$val['codigo']." - ".$val['nome'] ;
         }
     asort($oper_ccustos) ;
    }

    // Dados da Operadora
    $row = Snep_Operadoras::get($id);

    $smarty->assign('OPER_CCUSTOS', $oper_ccustos);
    $smarty->assign('CCUSTOS', $ccustos);
    $smarty->assign('ACAO',"grava_alterar") ;
    $smarty->assign ('dt_operadoras', $row[0]);

    display_template("operadoras.tpl",$smarty,$titulo);
}

/*------------------------------------------------------------------------------
  Funcao GRAVA_ALTERAR - Grava registro Alterado
------------------------------------------------------------------------------*/
function grava_alterar()  {

    global $LANG, $db, $codigo, $oper_ccustos;

    // Cria objeto Snep_Operadoras e seta valores
    $operadora = new Snep_Operadoras();
    $operadora->codigo = $codigo;
    $operadora->nome   = $_POST['nome'];
    $operadora->tpm    = $_POST['tpm'];
    $operadora->tdm    = $_POST['tdm'];
    $operadora->tbf    = $_POST['tbf'];
    $operadora->tbc    = $_POST['tbc'];
    $operadora->vpf    = 0 ; //$_POST['vpf'] ;
    $operadora->vpc    = 0 ; //$_POST['vpc'];

    // Atualiza banco com novas informações
    Snep_Operadoras::update($operadora);

    // Atualiza Centro de Custos desta Operadora
    Snep_Operadoras::setCcustoOperadora($codigo, $oper_ccustos);

    // Redireciona para relação de Operadoras
    echo "<meta http-equiv='refresh' content='0;url=../tarifas/rel_operadoras.php'>\n" ;
 }

/*------------------------------------------------------------------------------
  Funcao EXCLUIR - Excluir registro selecionado
------------------------------------------------------------------------------*/
function excluir()  {
   global $LANG;

   $id = ( isset($_POST['id']) ? $_POST['id'] : $_GET['id'] );

   if (!$id) {
        display_error($LANG['msg_notselect'],true) ;
        exit ;
   }

   Snep_Operadoras::remove($id);
   echo "<meta http-equiv='refresh' content='0;url=../tarifas/rel_operadoras.php'>\n" ;

}?>
Return current item: SNEP