Lançado Adianti Framework 7.6!
Clique aqui para saber mais
TValidation não deixa editar galera fiz uma validação para um form mas sempre que coloco para editar ele ativa a validação é essa a class ...
AS
TValidation não deixa editar  
Fechado
galera fiz uma validação para um form mas sempre que coloco para editar ele ativa a validação

é essa a class

  1. <?php
  2. class VendasCompleto extends TPage{
  3.     
  4.     protected $form;
  5.   
  6.   protected $multfild;
  7.     protected   $note;
  8.             function __construct() {
  9.         parent::__construct();
  10.         
  11.  
  12.         
  13.           User::checaLogin('convidado');
  14.           
  15.     
  16.         $this->form = new TForm('VendasCompleta');
  17.        
  18.       
  19.                
  20.           $this->note = new TNotebook(800,300);
  21.           
  22.           
  23.         $pg1 = new TTable();
  24.   694 = new THidden('id');
  25.   $dataVencimento = new TDate('dataVencimento');
  26.   $vendedorId = new TSeekButton('vendedor_id');
  27.   $vendedor_nome = new TEntry('vendedor');
  28.   $cliente_id = new TSeekButton('cliente_id');
  29.   $cliente_nome = new TEntry('cliente_nome');
  30.   $vparcelas = new TEntry('vparcelas');
  31.   $vtotal = new TEntry('vtotal');
  32.   $pagamento_id = new TDBCombo('pagamento_id''mysql''Parcelas','id','tipo');
  33.   $parcelas = new TEntry('parcelas');
  34.        $calcular = new TButton('btnCalc');
  35.   
  36.    $this->multfild = new TMultiField('produtos');
  37.    
  38.   
  39.   // editaveis
  40.   
  41.   $vparcelas->setEditable(FALSE);
  42.   $vtotal->setEditable(FALSE);
  43.    $cliente_nome->setEditable(FALSE);
  44.    $vendedor_nome->setEditable(FALSE);
  45.    
  46.    
  47.    // validação
  48.   
  49.  
  50.    
  51.    $seek = new TStandardSeek();
  52.         
  53.         $action = new TAction(array($seek,'onSetup'));
  54.         $action->setParameter('database''mysql');
  55.         $action->setParameter('parent','VendasCompleta');
  56.         $action->setParameter('model','Cliente');
  57.         $action->setParameter('display_field','razaoSocial');
  58.         $action->setParameter('receive_key','cliente_id');
  59.         $action->setParameter('receive_field','cliente_nome');
  60.         
  61.           $cliente_id->setAction($action);
  62.           
  63.           
  64.       $seek2 = new TStandardSeek();
  65.         
  66.         $action2 = new TAction(array($seek2,'onSetup'));
  67.         $action2->setParameter('database''mysql');
  68.         $action2->setParameter('parent','VendasCompleta');
  69.         $action2->setParameter('model','Funcionarios');
  70.         $action2->setParameter('display_field','funcionario');
  71.         $action2->setParameter('receive_key','vendedor_id');
  72.         $action2->setParameter('receive_field','vendedor');
  73.         
  74.           $vendedorId->setAction($action2);
  75.           
  76.           
  77.           
  78.           $row $pg1->addRow();
  79.            $row->addCell(new TLabel('Data Vencimento: '));
  80.           $row->addCell($dataVencimento);
  81.           
  82.             
  83.           $row $pg1->addRow();
  84.           $row->addCell(new TLabel('cod Vendedor'));
  85.           $row->addCell($vendedorId);
  86.           $row->addCell($vendedor_nome);
  87.           
  88.                       
  89.           $row $pg1->addRow();
  90.           $row->addCell(new TLabel('cod Cliente'));
  91.           $row->addCell($cliente_id);
  92.           $row->addCell($cliente_nome);
  93.           
  94.        
  95.           
  96.            $row $pg1->addRow();
  97.            $row->addCell(new TLabel('Parcelas: '));
  98.           $row->addCell($parcelas);
  99.             $row->addCell(new TLabel('Valor Parcelas'));
  100.           $row->addCell($vparcelas);
  101.           
  102.              $row $pg1->addRow();
  103.               $row->addCell(new TLabel('Forma PGTO'));
  104.           $row->addCell($pagamento_id);
  105.           $row->addCell(new TLabel('Total'));
  106.           $row->addCell($vtotal);
  107.           
  108.           
  109.      
  110.           $btnSalvar = new TButton('salvar');
  111.           $btnSalvar->setAction(new TAction(array($this,'onSave')),'Fechar Venda');
  112.             $btnSalvar->setImage('ico_save.png');
  113.           $calcular->setAction(new TAction(array($this,'calcular')),'Calcular');
  114.           
  115.                 $row $pg1->addRow();
  116.           
  117.           $row->addCell($calcular);
  118.           
  119.           $row->addCell($btnSalvar);
  120.             
  121.          
  122.           $produto = new TEntry('nomeProduto');
  123.           $produto->setEditable(FALSE);
  124.           $cod_produto = new TSeekButton('idProduto');
  125.           $qtd = new TEntry('qtd');
  126.           
  127.            $seek3 = new TStandardSeek();
  128.         
  129.         $action3 = new TAction(array($seek2,'onSetup'));
  130.         $action3->setParameter('database''mysql');
  131.         $action3->setParameter('parent','VendasCompleta');
  132.         $action3->setParameter('model','Servicos');
  133.         $action3->setParameter('display_field','nome');
  134.         $action3->setParameter('receive_key','produtos_idProduto');
  135.         $action3->setParameter('receive_field','produtos_nomeProduto');
  136.         
  137.           $cod_produto->setAction($action3);
  138.           $this->multfild->setClass('ItensVenda');
  139.           $this->multfild->addField('idProduto''Codigo'$cod_produto,200);
  140.           $this->multfild->addField('nomeProduto''Produto'$produto300);
  141.           $this->multfild->addField('qtd''Quantidade'$qtd50);
  142.           
  143.           $this->note->appendPage('Dados Basicos'$pg1);
  144.           $this->note->appendPage('Dados Produtos'$this->multfild);
  145.           
  146.            $this->form->setFields(array(694,$dataVencimento,$vendedorId,$vendedor_nome
  147.            ,$cliente_id,$cliente_nome,$vparcelas,$vtotal,
  148.        $pagamento_id,$parcelas,$calcular,$this->multfild,$btnSalvar));
  149.            
  150.            
  151.           $this->form->add($this->note);
  152.           
  153.             $vtotal->addValidation('vtotal', new TNumericValidator());
  154.    $vparcelas->addValidation('vparcelas', new TNumericValidator());
  155.    $cliente_id->addValidation('cliente_id', new TRequiredValidator());
  156.    $vendedorId->addValidation('vendedor_id_id', new TRequiredValidator());
  157.    $dataVencimento->addValidation('dataVencimento', new TDateValidator());
  158.    $pagamento_id->addValidation('pagamento_id', new TRequiredValidator());
  159.    $parcelas->addValidation('parcelas', new TRequiredValidator());
  160.    $this->multfild->addValidation('produtos', new TRequiredValidator());
  161.           
  162.           parent::add($this->form);
  163.           
  164.           
  165.   }
  166.   function calcular($param){
  167.       
  168.       try{
  169.       $obj $this->form->getData();
  170.       $valorTotal 0;
  171.       
  172.       TTransaction::open('mysql');
  173.       
  174.       foreach ($obj->produtos as $p){
  175.           
  176.       $produto = new Servicos($p->idProduto);
  177.       
  178.       $valorTotal $produto->preco $p->qtd;
  179.       
  180.       }
  181.       
  182.       $pagamento = new Parcelas($obj->pagamento_id);
  183.       
  184.       $obj->vtotal round$this->calcParcelaJuros($valorTotal$obj->parcelas$pagamento->juros),2);
  185.       $obj->vparcelas round(($this->calcParcelaJuros($valorTotal$obj->parcelas$pagamento->juros)/$obj->parcelas),2);
  186.       
  187.       $this->form->setData($obj);
  188.       
  189.      // TForm::sendData('VendasCompleta', $obj);
  190.       
  191.       TTransaction::close();
  192.       }  catch (Exception $e){
  193.           
  194.           new TMessage('info'$e->getMessage());
  195.           TTransaction::rollback();
  196.       }
  197.   }
  198.   function calcParcelaJuros($valor,$parcelas,$taxa){
  199.       
  200.    
  201. $taxa $taxa 100;
  202. $valParcela $valor pow(($taxa), $parcelas);
  203. return $valParcela;
  204.  }
  205.    function onSave()
  206.     {
  207.         try
  208.         {
  209.             // open a transaction with database 'samples'
  210.             TTransaction::open('mysql');
  211.             
  212.             $this->form->validate();
  213.             // read the form data and instantiates an Active Record
  214.             $customer $this->form->getData();
  215.             $venda = new Receber();
  216.             
  217.          
  218.                     // add the contact to the customer
  219.                     
  220.          
  221.             $venda->vendedor_id $customer->vendedor_id;
  222.             $venda->cliente_id $customer->cliente_id;
  223.             $venda->dataVencimento $customer->dataVencimento;
  224.             $venda->dataVenda date('Y-m-d');
  225.             $venda->vparcela $customer->vparcelas;
  226.             $venda->vtotal $customer->vtotal;
  227.             $venda->pagamento_id $customer->pagamento_id;
  228.             $venda->parcelas $customer->parcelas;
  229.             $venda->produtos $customer->produtos;
  230.             $venda->dataVenda date('Y-d-m');
  231.             
  232.             // stores the object in the database
  233.             694 =  $venda->store();
  234.             $this->form->setData($customer);
  235.             $this->gerarPDF(694);
  236.             // shows the success message
  237.             new TMessage('info''Venda Efetuada com susseso');
  238.             
  239.             TTransaction::close(); // close the transaction
  240.             
  241.             TApplication::executeMethod('VendasView');
  242.         }
  243.         catch (Exception $e// in case of exception
  244.         {
  245.             // shows the exception error message
  246.             new TMessage('error''<b>Error</b>' $e->getMessage());
  247.             // undo all pending operations
  248.             TTransaction::rollback();
  249.         }
  250.     }
  251.     
  252.   function onEdit($param){
  253.      
  254.     
  255.      try
  256.         {
  257.           if(isset($param['key'])){
  258.             // open a transaction with database 'samples'
  259.             TTransaction::open('mysql');
  260.             
  261.             $this->form->validate($param['key']);
  262.             // read the form data and instantiates an Active Record
  263.          
  264.             $venda = new Receber($param['key']);
  265.             
  266.        $obj = new stdClass();
  267.        
  268.      
  269.       
  270.          $produto_list = array();
  271.          
  272.          
  273.          
  274.             if (!empty($venda->produtos))
  275.             {
  276.                 
  277.                 $itens $venda->produtos;
  278.                 
  279.               
  280.               
  281.                 
  282.                 foreach ($itens as $produto)
  283.                 {
  284.                     // add the contact to the customer
  285.                     
  286.                     $produto_list[] = $produto;
  287.                     
  288.                    
  289.                 }
  290.                 
  291.                    $obj->produtos $produto_list;
  292.             }
  293.             
  294.             $obj->vendedor_id $venda->vendedor_id;
  295.             $obj->vendedor $venda->vendedor;
  296.             $obj->cliente_id $venda->cliente_id;
  297.             $obj->cliente_nome $venda->cliente;
  298.             $obj->dataVencimento $venda->dataVencimento;
  299.            
  300.             $obj->vparcelas $venda->vparcela;
  301.             $obj->vtotal $venda->vtotal;
  302.             $obj->pagamento_id $venda->pagamento_id;
  303.             $obj->parcelas $venda->parcelas;
  304.            
  305.          
  306.             
  307.             // stores the object in the database
  308.           
  309.             $this->form->setData($obj);
  310.             
  311.         
  312.             
  313.             TTransaction::close(); // close the transaction
  314.             
  315.         }else{
  316.                $this->form->clear();
  317.         }
  318.         }
  319.         catch (Exception $e// in case of exception
  320.         {
  321.             // shows the exception error message
  322.             new TMessage('error''<b>Error</b>' $e->getMessage());
  323.             // undo all pending operations
  324.             TTransaction::rollback();
  325.         }
  326.      
  327.      
  328.  }
  329.  
  330.  
  331.  public function gerarPDF(694){
  332.      
  333.      $receber = new Receber(694);
  334.      
  335.     $widths = array(401508012080);
  336.     
  337.        $tr = new TTableWriterPDF($widths);
  338.        
  339.          // create the document styles
  340.    
  341.                 $tr->addStyle('header''Times''16''BI''#ff0000''#FFF1B2');
  342.                 $tr->addStyle('footer''Times''12''BI''#2B2B2B''#B5FFB4');
  343.                 $tr->addStyle('title''Arial''10''BI',  '#ffffff''#407B49');
  344.                 // add a header row
  345.                 $tr->addRow();
  346.                 $tr->addCell('Comprovante de Venda''center''header'5);
  347.                 
  348.                 foreach ($receber as $key){
  349.                     
  350.              $tr->addRow();
  351.              $tr->addCell('Cliente''center','title',2);
  352.              $tr->addCell($key->cliente'center','',3);
  353.              
  354.              $tr->addCell('CNPJ''center','title',2);
  355.              $tr->addCell($key->clienteAll->cnpj'center','',3);
  356.              
  357.              
  358.               $tr->addRow();
  359.                 $tr->addCell(date('Y-m-d h:i:s'), 'center''footer'5);
  360.                 // stores the file
  361.              $format = new TMaskFormate();
  362.                     $tr->save("app/output/".$key->cliente.".pdf");
  363.                     
  364.                     parent::openFile("app/output/".$key->cliente.".pdf");
  365.                 
  366.              
  367.                 
  368.              
  369.     
  370.              
  371.                         
  372.                 }      
  373.  }
  374. }
  375. porque ele ativa sempre que tento editar
  376. alguem ja teve esse problema?

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (1)


PD

Oi Alexandre,

A Validação do form é executada pelo método TForm::validate() no onSave(), isso significa que tanto faz se é uma inserção ou alteração, a validação sempre será executada, o que geralmente é o que esperamos. Caso você deseja eventualmente realizar ou não a validação, sugiro acrescentá-la nos métodos de ação, como o onSave(), e não no método construtor. No método de ação, você pode fazer um IF e acrescentar ou não a validação. Além disso, aqui tem um ótimo artigo sobre isso:
www.adianti.com.br/forum/pt/view_661?adicionando-validacoes-em-formu

abs!
Pablo