Autor Tópico: onChange so como Administrador ???? (SC7)  (Lida 790 vezes)

Herberto Silva

  • Avançado
  • ****
  • Mensagens: 335
  • Programador Freelancer
    • Desenvolvimento de Software
    • Email
onChange so como Administrador ???? (SC7)
« Online: Novembro 30, 2014, 09:05:35 am »
Boas
tenho uma situação de Ajax events onde tenho de ir buscar dados para atruir dentro da ficha que estou a alterar ou inserir, utilizando para isso o evento onChange de um campo tipo integer.
Nesta aplicação tenho vários grupos definidos (Administrador, Diretores, Vendedores.) Até há bem pouco tempo só o Administrador é que poderia utilizar essa opção de ir buscar os dados a outra tabela (ver código no final). Mas recentemente foi-me pedido pelo gestor do projeto para atribuir essa opção aos grupos dos Diretores e Vendedores.
Mas acontece que nestes grupos (Diretores e Vendedores) a rotina onChange de forma nenhuma atribuia os dados lidos da tabela a ficha que estava a trabalhar aos respetivos campos.
Andei nisto uma semana, consultei o Forum e deparei-me com situaçãoes de anomalias no onChange divulgadas, enfim mas nada que eu adaptasse a minha rotina funcionava como Vendedor ou Diretor.
Então numa tentativa desesperada resolvi no inicio do evento onChange atribuir a variavel global [xgrupo] que identifica o grupo do utilizador atual, mudar o seu valor para [xgrupo]="Administrador" e no final da rotina onChange voltar a colocar o valor anterior [xgrupo]="Vendedores" ou [xgrupo]="Diretores".
EUREKA!.... FUNCIONOU...
AGORA PORQUÊ ESTA SITUAÇÃO?
O código é o seguinte já com a alteração referida:


// tem de ser com o grup admnistrador, caso contrario não le os dados para dentro da ficha
$grupoatual=[xgrupo];
   
   [xgrupo]= "Administrador";

   
sc_lookup(xc,"SELECT numero,tipoimovel,proprietario,refbanco,tipologia2,distrito,concelho,freguesia,preco,tiponegocio,vendedor,director  FROM imoveis WHERE numero = '{crmimovel}'");

if(!empty({xc}))
{
  {tipoimovel} ={xc[0][1]};
  {tipologia} ={xc[0][4]};
  {banco} ={xc[0][2]};
  {distrito} ={xc[0][5]};
  {concelho} ={xc[0][6]};
  {freguesia} ={xc[0][7]};
  {pmaximo} ={xc[0][8]};
  $xobjectivo ={xc[0][9]};
  {objectivo} ={xc[0][9]};
    
   
       if([xgrupo]=='Administrador')
         {
      {vendedor} ={xc[0][10]};
         $wvendedor={xc[0][10]};
      {director} ={xc[0][11]};
            }
    
 if($xobjectivo=="VENDA")
 {
     {objectivo}="COMPRA";
 }
    
}
else
   {
      echo ' Imóvel, Não encontrado';
   }


sc_lookup(yc,"SELECT numero,nome,estado FROM vendedores WHERE nome = '$wvendedor'");

if(!empty({yc})){
  $ywestado ={yc[0][2]};
   
     if ($ywestado!="ACTIVO"){
        sc_alert("ATENÇÃO: O Vendedor deste IMÓVEL JÁ NÃO está ATIVO");
         
     }
    
}
// Volta a atribuir o grupo atual   
[xgrupo]= $grupoatual;

« Última modificação: Novembro 30, 2014, 09:07:57 am por herberto »
Cumprimentos,
Herberto Silva
herberto.silva@sapo.pt
skype: herbertobfsilva
www.software-global.info