Posted by Thiago Tue 27th Mar 2007 19:25 - Syntax is JavaScript - 119 views
Download | New Post | Modify | Hide line numbers
      Download | New Post | Modify | Hide line numbers
        Description:
Tente achar o erro.
      
Tente achar o erro.
- 
              /**
- 
              * Arquivo com objetos e regras de negócio referentes ao gerenciamento
- 
              * de Classe Mat Med.
- 
              *
- 
              * Usa FacadePCE no lado do servidor para acessar o modelo de
- 
              * dominio server-side.
- 
              *
- 
              * Objetos JSON representando VO´s devem ser criados na primeira metade do arquivo
- 
              * Objetos com regras de negócio devem ser colocados na segunda métade do arquivo
- 
              *
- 
              * @author Thiago Antonius
- 
              */
- 
              var absUtil = AbstratoUtil.View.Validator;
- 
              var funcaoRegistrada;
- 
              var supremoBase = new SupremoBase();
- 
              
- 
              var ContaContabilGridTemplate = {
- 
              cols : [
- 
              ['Código','codigo', {width: "90"} ],
- 
              ['Descrição','descricao', {width: "300"}]
- 
              ]
- 
              }
- 
              
- 
              /**
- 
              * Gerenciador de classes de material e medicamento
- 
              *
- 
              * Contem métodos com regras de negócio.
- 
              */
- 
              var GerenciadorClasseMatMed = Class.create();
- 
              
- 
              GerenciadorClasseMatMed.prototype = {
- 
              
- 
              initialize: function(){
- 
              this.absUtil = AbstratoUtil.View.Validator;
- 
              },
- 
              
- 
              validar: function(){
- 
              var me = new GerenciadorClasseMatMed();
- 
              
- 
              var fields = [
- 
              ["classeDescricao" , "Descrição" , "O campo Descrição é obrigatório" , absUtil.SINGLE, true, "not-null"],
- 
              ["classeGrupo" , "Classe Grupo" , "O campo Classe Grupo deve conter apenas números" , absUtil.SINGLE, true, "number"],
- 
              ["classeSubGrupo" , "Classe Sub-Grupo" , "O campo Classe Sub-Grupo deve conter apenas números" , absUtil.SINGLE, true, "number"],
- 
              ["classeSubSubGrupo" , "Classe Sub-Sub-Grupo", "O campo Classe Sub-Sub-Grupo deve conter apenas números" , absUtil.SINGLE, true, "number"]
- 
              ];
- 
              absUtil.registerForm("classeMatMed"); //registra o formulário
- 
              absUtil.registerFields(fields);
- 
              absUtil.submitionType(absUtil.SUBMITION_AJAX);
- 
              absUtil.ALERT_MODE = "modal";
- 
              
- 
              //funcao que será chamada depois da validação, casa a mesma seja realizada com sucesso.
- 
              funcaoRegistrada = absUtil.callFunctionAfterValidation( eval( $('operacao').value ) );
- 
              
- 
              //Registra campos que serao validados on-the-fly (apenas numero)
- 
              absUtil.validateOnEvent("classeGrupo" , "onkeypress", "only-number");
- 
              absUtil.validateOnEvent("classeSubGrupo" , "onkeypress", "only-number");
- 
              absUtil.validateOnEvent("classeSubSubGrupo" , "onkeypress", "only-number");
- 
              absUtil.validateOnEvent("codigoContaContabil" , "onkeypress", "only-number");
- 
              
- 
              //botao que valida o form
- 
              var evtRouter = new EventRouter($('btnConfirmarClasseMatMed'), 'onclick');
- 
              evtRouter.addListenner(absUtil.validate);
- 
              }//validar()
- 
              }// fim object GerenciadorClasseMatMed
- 
              
- 
              function cadastrar() {
- 
              gPersistir( CONST_CLASSE_MAT_MED, CONST_CLASSE_MAT_MED_MAP, CONST_FACADE_PCE, CONST_CADASTRAR);
- 
              }//cadastrar()
- 
              
- 
              function atualizar(){
- 
              gPersistir( CONST_CLASSE_MAT_MED, CONST_CLASSE_MAT_MED_MAP, CONST_FACADE_PCE, CONST_ATUALIZAR);
- 
              }// fim atualizar()
- 
              
- 
              function deletar(){
- 
              
- 
              if($('classeCodigo').value != "" &&
- 
              $('classeGrupo').value != "" &&
- 
              $('classeSubGrupo').value != "" &&
- 
              $('classeSubSubGrupo').value != "" &&
- 
              $('classeDescricao').value != ""){
- 
              
- 
              supremoBase.deleteConfirm(
- 
              'Tem certeza que deseja deletar a Classe Mat Med: '+$('classeDescricao').value+' ?',
- 
              300,
- 
              90,
- 
              function() {
- 
              var classeMatMedPopulada = AbstratoJ.buildObject("ClasseMatMed");
- 
              /*
- 
              * chama a funcao deletarClasseMatMed do server-side
- 
              * e devolve a resposta para a funcao callback.
- 
              */
- 
              FacadePCE.deletarClasseMatMed( classeMatMedPopulada , function(result) { gPersistirClasseMatMedCB(result, CONST_DELETAR) } );
- 
              
- 
              notification(CONST_NOTIFICATION_WAIT_MSG, CONST_NOTIFICATION_WAIT_CSS);
- 
              return true;
- 
              },
- 
              function() { return false; }
- 
              );
- 
              } else {
- 
              notification('Favor procurar e carregar a Classe Mat Med antes, clicando na lupa ou digitando o grupo, sub-grupo e sub-sub-grupo da classe.', CONST_NOTIFICATION_ERROR_CSS);
- 
              }
- 
              }// fim deletar()
- 
              
- 
              function gPersistirClasseMatMedRN(_obj , _action) {
- 
              
- 
              try{
- 
              if(_obj.codigoClasseSubGrupo == 0 && _obj.codigoClasseSubSubGrupo == 0
- 
              && ( _obj.contaContabil == undefined || _obj.contaContabil == null
- 
              || _obj.contaContabil.codigo == undefined || _obj.contaContabil.codigo == null ) ) {
- 
              notification('É preciso escolher a conta contábil para a classe principal.', CONST_NOTIFICATION_ERROR_CSS);
- 
              $('codigoContaContabil').focus();
- 
              return false;
- 
              } else {
- 
              if ( ( _obj.codigoClasseSubGrupo != 0 || _obj.codigoClasseSubSubGrupo != 0 )
- 
              && _obj.contaContabil != undefined ) {
- 
              
- 
              notification('Os Sub-Grupos e Sub-Sub-Grupos pertecem a mesma conta contábil do Grupo Pai, logo não pode atritubir uma conta contábil especifica para eles.', CONST_NOTIFICATION_ERROR_CSS);
- 
              $('codigoContaContabil').value = "";
- 
              $('descricaoContaContabil').value = "";
- 
              $('codigoContaContabil').focus();
- 
              return false;
- 
              }
- 
              }
- 
              
- 
              return true;
- 
              } catch(e) {
- 
              notification('Ocorreu um erro inexperado durante a '+_action+' de classe mat med, favor tentar novamente mais tarde ou entrar em contato com o administrador do sistema.', CONST_NOTIFICATION_ERROR_CSS);
- 
              alert(e.message)
- 
              return false;
- 
              }
- 
              
- 
              }
- 
              
- 
              /*
- 
              * Função callback para o insert, update e delete.
- 
              */
- 
              function gPersistirClasseMatMedCB(resposta, operacao) {
- 
              if(resposta.erro==true){
- 
              notification(resposta.msg, CONST_NOTIFICATION_ERROR_CSS);
- 
              }else{
- 
              switch (operacao) {
- 
              case CONST_CADASTRAR:
- 
              notification('A classe Mat Med "'+resposta.vo.descricao+'" foi cadastrada com sucesso.', CONST_NOTIFICATION_SUCCESS_CSS);
- 
              break;
- 
              case CONST_ATUALIZAR:
- 
              notification('A classe Mat Med foi atualizada com sucesso.', CONST_NOTIFICATION_SUCCESS_CSS);
- 
              break;
- 
              case CONST_DELETAR:
- 
              notification('A classe Mat Med foi deletada com sucesso.', CONST_NOTIFICATION_SUCCESS_CSS);
- 
              break;
- 
              }
- 
              
- 
              /*
- 
              * chama a função para preparar a tela
- 
              * para pesquisa, da mesma form como ela foi aberta.
- 
              */
- 
              _prepareClasseMatMedScreen(ACTION_SEARCH);
- 
              }
- 
              }//fim gPersistirClasseMatMedCB()
- 
              
- 
              /**
- 
              * Implementação da função initial do operationBar
- 
              * Prepara a tela pro formato inicial.
- 
              */
- 
              function initial() {
- 
              var gcmm = new GerenciadorClasseMatMed();
- 
              gcmm.validar();
- 
              _prepareClasseMatMedScreen(ACTION_SEARCH);
- 
              $('classeGrupo').focus();
- 
              }
- 
              
- 
              /**
- 
              * Implementação da função search do operationBar
- 
              * Prepara a tela para pesquisa através da factory e
- 
              * chama a window de pesquisa, limpando o form antes.
- 
              */
- 
              function preSearch(){
- 
              _prepareClasseMatMedScreen(ACTION_SEARCH);
- 
              zoom('classe_mat_med');
- 
              } // fim preSearch()
- 
              
- 
              /**
- 
              * Implementação da função preAdd do operationBar
- 
              * Prepara a tela para adicionar um novo registro
- 
              * através da factory e ajusta o formulário para
- 
              * essa operação.
- 
              */
- 
              function preAdd(){
- 
              _prepareClasseMatMedScreen(ACTION_ADD);
- 
              } // fim preAdd()
- 
              
- 
              /**
- 
              * Prepara (monta os campos) a tela de classe Mat Med
- 
              * de acordo com a acao que vai ser executada.
- 
              *
- 
              * @param action acao que var ser executada.
- 
              */
- 
              function _prepareClasseMatMedScreen(action) {
- 
              
- 
              if(action == null || action.length == 0) return;
- 
              
- 
              var _action = action.toLowerCase();
- 
              
- 
              switch (_action) {
- 
              case ACTION_ADD:
- 
              /*
- 
              * Muda o label do botão confirmar e
- 
              * muda a operação para depois da validação
- 
              * ser possível chamar a função correta
- 
              * através da função absUtil.callFunctionAfterValidation(...).
- 
              */
- 
              $('btnConfirmarClasseMatMed').value = "Confirmar";
- 
              $('operacao').value = "cadastrar";
- 
              
- 
              absUtil.unregisterFunction(funcaoRegistrada);
- 
              funcaoRegistrada = absUtil.callFunctionAfterValidation( eval( 'cadastrar' ) );
- 
              
- 
              //Limpa os campos do form
- 
              clearForm();
- 
              
- 
              /*
- 
              * Se o usuário poder cadastrar, habilita os fields
- 
              * caso contrário desabilita os campos porém coloca uma
- 
              * cor de fundo mais clara para o usuário poder visualizar
- 
              * os dados.
- 
              */
- 
              if(ADD) {
- 
              AbstratoJ.enableFields('ClasseMatMed', true, CONST_TEXT_FIELD_CSS);
- 
              display('btnConfirmarClasseMatMed', true);
- 
              display('btnDeletarClasseMatMed', false);
- 
              
- 
              /*
- 
              * Mostra o segundo fieldset pois o mesmo estava desabilitado.
- 
              * Para o primeiro fieldset não precisa usar o display,
- 
              * pois a todo momento ele está visivel.
- 
              */
- 
              display('blocoField2', true);
- 
              
- 
              /*
- 
              * Desabilita o campo descricaoContaContabil
- 
              * pois o mesmo só é para visualizacao. E só
- 
              * vai mudar a classe para textFieldViewDisabled
- 
              * quando uma conta Contabil for carregada.
- 
              * Mostra a imagem do ZoomContaContabil.
- 
              */
- 
              $('descricaoContaContabil').disabled = true;
- 
              $('descricaoContaContabil').className = CONST_TEXT_FIELD_DISABLED_CSS;
- 
              display('imgZoomContaContabil', true);
- 
              
- 
              /*
- 
              * Retira a função associada ao evento
- 
              * onkeydown do elemento classe Sub-Sub-Grupo
- 
              */
- 
              $('classeSubSubGrupo')['onkeydown'] = function(){};
- 
              }
- 
              /*
- 
              * Esconde a mensagem de notificação pois a mesma pode está
- 
              * lá devido a alguma ação realizada anteriormente. E esconde também
- 
              * o botão delete.
- 
              */
- 
              display('notificationBox', false);
- 
              $('classeGrupo').focus();
- 
              break;
- 
              case ACTION_UP:
- 
              /*
- 
              * Muda o label do botão confirmar par Atualizar e
- 
              * muda a operação para depois da validação
- 
              * ser possível chamar a função correta
- 
              * através da função absUtil.callFunctionAfterValidation(...).
- 
              */
- 
              $('btnConfirmarClasseMatMed').value = "Atualizar";
- 
              $('operacao').value = "atualizar";
- 
              
- 
              absUtil.unregisterFunction(funcaoRegistrada);
- 
              funcaoRegistrada = absUtil.callFunctionAfterValidation( eval( 'atualizar' ) );
- 
              
- 
              /*
- 
              * Se o usuário poder atualizar, habilita os fields e aproveita
- 
              * e mostra o botão Atualizar para não precisar realizar outro if
- 
              * abaixo como no delete.
- 
              * Se ele só poder deletar e/ou visualizar, os campos
- 
              * ficam desabilitados porém com uma cor melhor para poder
- 
              * visualizar os dados.
- 
              * Porém o field descricaoContaContabil fica desabilitado de
- 
              * qualquer forma, pois o mesmo é só para visualização.
- 
              * Mostra a imagem do zoomContaContabil.
- 
              */
- 
              if(UP) {
- 
              AbstratoJ.enableFields('ClasseMatMed', true, CONST_TEXT_FIELD_CSS);
- 
              display('btnConfirmarClasseMatMed', true);
- 
              
- 
              $('descricaoContaContabil').disabled = true;
- 
              $('descricaoContaContabil').className = CONST_TEXT_FIELD_VIEW_DISABLED_CSS;
- 
              display('imgZoomContaContabil', true);
- 
              }else{
- 
              AbstratoJ.enableFields('ClasseMatMed', false, CONST_TEXT_FIELD_VIEW_DISABLED_CSS);
- 
              }
- 
              
- 
              /*
- 
              * Mostra o botão deletar só se o usuário tiver permissão
- 
              */
- 
              if(DEL)
- 
              display('btnDeletarClasseMatMed', true);
- 
              
- 
              /*
- 
              * Mostra o segundo fieldset pois o mesmo estava desabilitado.
- 
              * Para o primeiro fieldset não precisa usar o display,
- 
              * pois a todo momento ele está visivel.
- 
              */
- 
              display('blocoField2', true);
- 
              break;
- 
              case ACTION_DEL:
- 
              break;
- 
              case ACTION_SEARCH:
- 
              clearForm();
- 
              
- 
              /*
- 
              * Atribui a função ao onkeydown elemento
- 
              * para poder ser possível pesquisar via TAB.
- 
              */
- 
              $('classeSubSubGrupo')['onkeydown'] =
- 
              function(event) {
- 
              supremoBase.onTab(event,"searchObject('classe_mat_med','classeMatMed', 'ClasseMatMed')");
- 
              }
- 
              /*
- 
              * Desabilita os campos do formulário e esconde os botões.
- 
              * A pesquisa é feita atraves do clique na lupa que abre o "pop-up" de busca.
- 
              * ou a através dos campos Classe Grupo, Classe Sub-Grupo e Classe Sub-Sub-Grupo.
- 
              * Não é necessário testar se o usuário tem permissão para
- 
              * buscar, pois se o mesmo tem permissão de acesso a tela, ele poderá
- 
              * realizar buscas.
- 
              */
- 
              AbstratoJ.enableFields('ClasseMatMed', false, CONST_TEXT_FIELD_DISABLED_CSS);
- 
              display('notificationBox', false);
- 
              display('btnConfirmarClasseMatMed', false);
- 
              display('btnDeletarClasseMatMed', false);
- 
              display('blocoField2', false);
- 
              display('imgZoomContaContabil', false);
- 
              
- 
              
- 
              /*
- 
              * Habilita esses 3 campos para o usuário poder buscar através
- 
              * dos grupos da classe digitando e depois apertando a tecla TAB
- 
              * no ultimo grupo.
- 
              */
- 
              $('classeGrupo').disabled = false;
- 
              $('classeGrupo').className = CONST_TEXT_FIELD_CSS;
- 
              $('classeSubGrupo').disabled = false;
- 
              $('classeSubGrupo').className = CONST_TEXT_FIELD_CSS;
- 
              $('classeSubSubGrupo').disabled = false;
- 
              $('classeSubSubGrupo').className = CONST_TEXT_FIELD_CSS;
- 
              break;
- 
              default:
- 
              break;
- 
              }
- 
              } // fim _prepareClasseMatMedScreen()
- 
              
- 
              /**
- 
              * Limpa o form principal.
- 
              */
- 
              function clearForm(){
- 
              AbstratoJ.clearFields(CONST_CLASSE_MAT_MED_MAP);
- 
              } //fim clearForm()
- 
              
- 
              /*************************************************/
- 
              /** Funções que tratam o resultado da busca de **/
- 
              /** algum objeto. **/
- 
              /*************************************************/
- 
              
- 
              /**
- 
              * Tratamento do resultado da busca de Classe Mat Med
- 
              * idenpendente se ela foi realizada via tab ou via window.
- 
              */
- 
              function classeMatMedBuscarCB(resposta){
- 
              if(resposta.erro || resposta.vo == null) {
- 
              notification(resposta.msg, CONST_NOTIFICATION_ERROR_CSS);
- 
              _prepareClasseMatMedScreen(ACTION_SEARCH);
- 
              }else{
- 
              
- 
              AbstratoJ.fillFormWithObject(resposta.vo[0], 'ClasseMatMed');
- 
              /*
- 
              * Depois de buscado e setado os atributos da
- 
              * Classe Mat Met nos seus respectivos campos
- 
              * chama a função responsavel por montar a tela para
- 
              * atualizar e a função _prepareClasseMatMedScreen para
- 
              * montar a tela de acordo com a ação.
- 
              */
- 
              _prepareClasseMatMedScreen(ACTION_UP);
- 
              notification('A Classe Mat Med '+resposta.vo[0].descricao+' foi carregada com sucesso.', CONST_NOTIFICATION_SUCCESS_CSS);
- 
              }
- 
              }
- 
              
- 
              /**
- 
              * Tratamento do resultado da busca de Conta Contabil
- 
              * idenpendente se ela foi realizada via tab ou via window.
- 
              */
- 
              function contaContabilBuscarCB(resposta) {
- 
              if(resposta.erro || resposta.vo == null) {
- 
              notification(resposta.msg, CONST_NOTIFICATION_ERROR_CSS);
- 
              }else{
- 
              AbstratoJ.fillFormWithObject(resposta.vo[0], 'ContaContabil' , 'classeMatMed');
- 
              /*
- 
              * Depois de buscado e setado nos respectivos campos
- 
              * chama a função responsavel por montar a tela para
- 
              * atualizar e a função _prepareClasseMatMedScreen para
- 
              * montar a tela de acordo com a ação.
- 
              */
- 
              notification('A Conta Contábil '+resposta.vo[0].descricao+' foi carregada com sucesso.', CONST_NOTIFICATION_SUCCESS_CSS);
- 
              
- 
              /*
- 
              * Muda a classe da descricaoContaContabil
- 
              * para ser possível visualizar o valor.
- 
              */
- 
              $('descricaoContaContabil').className = 'textFieldViewDisabled';
- 
              }
- 
              }
- 
              
PermaLink to this entry https://pastebin.co.uk/12294
        Posted by Thiago Tue 27th Mar 2007 19:25 - Syntax is JavaScript - 119 views
Download | New Post | Modify | Hide line numbers
      Download | New Post | Modify | Hide line numbers
 
    
Comments: 0