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. protected $form;
  4. protected $multfild;
  5. protected $note;
  6. function __construct() {
  7. parent::__construct();
  8. User::checaLogin('convidado');
  9. $this->form = new TForm('VendasCompleta');
  10. $this->note = new TNotebook(800,300);
  11. $pg1 = new TTable();
  12. 694 = new THidden('id');
  13. $dataVencimento = new TDate('dataVencimento');
  14. $vendedorId = new TSeekButton('vendedor_id');
  15. $vendedor_nome = new TEntry('vendedor');
  16. $cliente_id = new TSeekButton('cliente_id');
  17. $cliente_nome = new TEntry('cliente_nome');
  18. $vparcelas = new TEntry('vparcelas');
  19. $vtotal = new TEntry('vtotal');
  20. $pagamento_id = new TDBCombo('pagamento_id', 'mysql', 'Parcelas','id','tipo');
  21. $parcelas = new TEntry('parcelas');
  22. $calcular = new TButton('btnCalc');
  23. $this->multfild = new TMultiField('produtos');
  24. // editaveis
  25. $vparcelas->setEditable(FALSE);
  26. $vtotal->setEditable(FALSE);
  27. $cliente_nome->setEditable(FALSE);
  28. $vendedor_nome->setEditable(FALSE);
  29. // validação
  30. $seek = new TStandardSeek();
  31. $action = new TAction(array($seek,'onSetup'));
  32. $action->setParameter('database', 'mysql');
  33. $action->setParameter('parent','VendasCompleta');
  34. $action->setParameter('model','Cliente');
  35. $action->setParameter('display_field','razaoSocial');
  36. $action->setParameter('receive_key','cliente_id');
  37. $action->setParameter('receive_field','cliente_nome');
  38. $cliente_id->setAction($action);
  39. $seek2 = new TStandardSeek();
  40. $action2 = new TAction(array($seek2,'onSetup'));
  41. $action2->setParameter('database', 'mysql');
  42. $action2->setParameter('parent','VendasCompleta');
  43. $action2->setParameter('model','Funcionarios');
  44. $action2->setParameter('display_field','funcionario');
  45. $action2->setParameter('receive_key','vendedor_id');
  46. $action2->setParameter('receive_field','vendedor');
  47. $vendedorId->setAction($action2);
  48. $row = $pg1->addRow();
  49. $row->addCell(new TLabel('Data Vencimento: '));
  50. $row->addCell($dataVencimento);
  51. $row = $pg1->addRow();
  52. $row->addCell(new TLabel('cod Vendedor'));
  53. $row->addCell($vendedorId);
  54. $row->addCell($vendedor_nome);
  55. $row = $pg1->addRow();
  56. $row->addCell(new TLabel('cod Cliente'));
  57. $row->addCell($cliente_id);
  58. $row->addCell($cliente_nome);
  59. $row = $pg1->addRow();
  60. $row->addCell(new TLabel('Parcelas: '));
  61. $row->addCell($parcelas);
  62. $row->addCell(new TLabel('Valor Parcelas'));
  63. $row->addCell($vparcelas);
  64. $row = $pg1->addRow();
  65. $row->addCell(new TLabel('Forma PGTO'));
  66. $row->addCell($pagamento_id);
  67. $row->addCell(new TLabel('Total'));
  68. $row->addCell($vtotal);
  69. $btnSalvar = new TButton('salvar');
  70. $btnSalvar->setAction(new TAction(array($this,'onSave')),'Fechar Venda');
  71. $btnSalvar->setImage('ico_save.png');
  72. $calcular->setAction(new TAction(array($this,'calcular')),'Calcular');
  73. $row = $pg1->addRow();
  74. $row->addCell($calcular);
  75. $row->addCell($btnSalvar);
  76. $produto = new TEntry('nomeProduto');
  77. $produto->setEditable(FALSE);
  78. $cod_produto = new TSeekButton('idProduto');
  79. $qtd = new TEntry('qtd');
  80. $seek3 = new TStandardSeek();
  81. $action3 = new TAction(array($seek2,'onSetup'));
  82. $action3->setParameter('database', 'mysql');
  83. $action3->setParameter('parent','VendasCompleta');
  84. $action3->setParameter('model','Servicos');
  85. $action3->setParameter('display_field','nome');
  86. $action3->setParameter('receive_key','produtos_idProduto');
  87. $action3->setParameter('receive_field','produtos_nomeProduto');
  88. $cod_produto->setAction($action3);
  89. $this->multfild->setClass('ItensVenda');
  90. $this->multfild->addField('idProduto', 'Codigo', $cod_produto,200);
  91. $this->multfild->addField('nomeProduto', 'Produto', $produto, 300);
  92. $this->multfild->addField('qtd', 'Quantidade', $qtd, 50);
  93. $this->note->appendPage('Dados Basicos', $pg1);
  94. $this->note->appendPage('Dados Produtos', $this->multfild);
  95. $this->form->setFields(array(694,$dataVencimento,$vendedorId,$vendedor_nome
  96. ,$cliente_id,$cliente_nome,$vparcelas,$vtotal,
  97. $pagamento_id,$parcelas,$calcular,$this->multfild,$btnSalvar));
  98. $this->form->add($this->note);
  99. $vtotal->addValidation('vtotal', new TNumericValidator());
  100. $vparcelas->addValidation('vparcelas', new TNumericValidator());
  101. $cliente_id->addValidation('cliente_id', new TRequiredValidator());
  102. $vendedorId->addValidation('vendedor_id_id', new TRequiredValidator());
  103. $dataVencimento->addValidation('dataVencimento', new TDateValidator());
  104. $pagamento_id->addValidation('pagamento_id', new TRequiredValidator());
  105. $parcelas->addValidation('parcelas', new TRequiredValidator());
  106. $this->multfild->addValidation('produtos', new TRequiredValidator());
  107. parent::add($this->form);
  108. }
  109. function calcular($param){
  110. try{
  111. $obj = $this->form->getData();
  112. $valorTotal = 0;
  113. TTransaction::open('mysql');
  114. foreach ($obj->produtos as $p){
  115. $produto = new Servicos($p->idProduto);
  116. $valorTotal = $produto->preco * $p->qtd;
  117. }
  118. $pagamento = new Parcelas($obj->pagamento_id);
  119. $obj->vtotal = round( $this->calcParcelaJuros($valorTotal, $obj->parcelas, $pagamento->juros),2);
  120. $obj->vparcelas = round(($this->calcParcelaJuros($valorTotal, $obj->parcelas, $pagamento->juros)/$obj->parcelas),2);
  121. $this->form->setData($obj);
  122. // TForm::sendData('VendasCompleta', $obj);
  123. TTransaction::close();
  124. } catch (Exception $e){
  125. new TMessage('info', $e->getMessage());
  126. TTransaction::rollback();
  127. }
  128. }
  129. function calcParcelaJuros($valor,$parcelas,$taxa){
  130. $taxa = $taxa / 100;
  131. $valParcela = $valor * pow((1 + $taxa), $parcelas);
  132. return $valParcela;
  133. }
  134. function onSave()
  135. {
  136. try
  137. {
  138. // open a transaction with database 'samples'
  139. TTransaction::open('mysql');
  140. $this->form->validate();
  141. // read the form data and instantiates an Active Record
  142. $customer = $this->form->getData();
  143. $venda = new Receber();
  144. // add the contact to the customer
  145. $venda->vendedor_id = $customer->vendedor_id;
  146. $venda->cliente_id = $customer->cliente_id;
  147. $venda->dataVencimento = $customer->dataVencimento;
  148. $venda->dataVenda = date('Y-m-d');
  149. $venda->vparcela = $customer->vparcelas;
  150. $venda->vtotal = $customer->vtotal;
  151. $venda->pagamento_id = $customer->pagamento_id;
  152. $venda->parcelas = $customer->parcelas;
  153. $venda->produtos = $customer->produtos;
  154. $venda->dataVenda = date('Y-d-m');
  155. // stores the object in the database
  156. 694 = $venda->store();
  157. $this->form->setData($customer);
  158. $this->gerarPDF(694);
  159. // shows the success message
  160. new TMessage('info', 'Venda Efetuada com susseso');
  161. TTransaction::close(); // close the transaction
  162. TApplication::executeMethod('VendasView');
  163. }
  164. catch (Exception $e) // in case of exception
  165. {
  166. // shows the exception error message
  167. new TMessage('error', '<b>Error</b>' . $e->getMessage());
  168. // undo all pending operations
  169. TTransaction::rollback();
  170. }
  171. }
  172. function onEdit($param){
  173. try
  174. {
  175. if(isset($param['key'])){
  176. // open a transaction with database 'samples'
  177. TTransaction::open('mysql');
  178. $this->form->validate($param['key']);
  179. // read the form data and instantiates an Active Record
  180. $venda = new Receber($param['key']);
  181. $obj = new stdClass();
  182. $produto_list = array();
  183. if (!empty($venda->produtos))
  184. {
  185. $itens = $venda->produtos;
  186. foreach ($itens as $produto)
  187. {
  188. // add the contact to the customer
  189. $produto_list[] = $produto;
  190. }
  191. $obj->produtos = $produto_list;
  192. }
  193. $obj->vendedor_id = $venda->vendedor_id;
  194. $obj->vendedor = $venda->vendedor;
  195. $obj->cliente_id = $venda->cliente_id;
  196. $obj->cliente_nome = $venda->cliente;
  197. $obj->dataVencimento = $venda->dataVencimento;
  198. $obj->vparcelas = $venda->vparcela;
  199. $obj->vtotal = $venda->vtotal;
  200. $obj->pagamento_id = $venda->pagamento_id;
  201. $obj->parcelas = $venda->parcelas;
  202. // stores the object in the database
  203. $this->form->setData($obj);
  204. TTransaction::close(); // close the transaction
  205. }else{
  206. $this->form->clear();
  207. }
  208. }
  209. catch (Exception $e) // in case of exception
  210. {
  211. // shows the exception error message
  212. new TMessage('error', '<b>Error</b>' . $e->getMessage());
  213. // undo all pending operations
  214. TTransaction::rollback();
  215. }
  216. }
  217. public function gerarPDF(694){
  218. $receber = new Receber(694);
  219. $widths = array(40, 150, 80, 120, 80);
  220. $tr = new TTableWriterPDF($widths);
  221. // create the document styles
  222. $tr->addStyle('header', 'Times', '16', 'BI', '#ff0000', '#FFF1B2');
  223. $tr->addStyle('footer', 'Times', '12', 'BI', '#2B2B2B', '#B5FFB4');
  224. $tr->addStyle('title', 'Arial', '10', 'BI', '#ffffff', '#407B49');
  225. // add a header row
  226. $tr->addRow();
  227. $tr->addCell('Comprovante de Venda', 'center', 'header', 5);
  228. foreach ($receber as $key){
  229. $tr->addRow();
  230. $tr->addCell('Cliente', 'center','title',2);
  231. $tr->addCell($key->cliente, 'center','',3);
  232. $tr->addCell('CNPJ', 'center','title',2);
  233. $tr->addCell($key->clienteAll->cnpj, 'center','',3);
  234. $tr->addRow();
  235. $tr->addCell(date('Y-m-d h:i:s'), 'center', 'footer', 5);
  236. // stores the file
  237. $format = new TMaskFormate();
  238. $tr->save("app/output/".$key->cliente.".pdf");
  239. parent::openFile("app/output/".$key->cliente.".pdf");
  240. }
  241. }
  242. }
  243. porque ele ativa sempre que tento editar
  244. alguem ja teve esse problema?

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework 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