TNoteBook problema com abas galera to querendo montar uma maneira do usuario adcionar itens a compra, ate que de +/- certo porem quando eu adciono um item o DATAGRID não atualiza, e tambem não grava o id da venda, alguem tem uma ideia onde errei na logica ...
AS
TNoteBook problema com abas  
Fechado
galera to querendo montar uma maneira do usuario adcionar itens a compra, ate que de +/- certo porem quando eu adciono um item o DATAGRID não atualiza, e tambem não grava o id da venda, alguem tem uma ideia onde errei na logica

 
  1. <?php
  2. class VendasCompleto extends TPage{
  3. protected $form;
  4. protected $value;
  5. protected $itens;
  6. public static 667 = 0;
  7. protected $lista;
  8. protected $note;
  9. function __construct() {
  10. parent::__construct();
  11. $this->form = new TForm('VendasCompleta');
  12. $this->itens = new TQuickGrid();
  13. $this->itens->setHeight(400);
  14. // lista de itens
  15. $this->itens->addQuickColumn('Produto', 'produto', 'left', 40);
  16. $this->itens->addQuickColumn('Quantidade', 'qtd', 'right', 40);
  17. $this->itens->addQuickColumn('Preco', 'preco', 'right', 40);
  18. $this->itens->addQuickColumn('Total', 'tota', 'right', 40);
  19. $this->itens->addQuickAction('Delete', new TDataGridAction(array($this, 'onDelete')), 'id', 'ico_delete.png');
  20. $this->itens->createModel();
  21. $this->note = new TNotebook(800,300);
  22. $tableP1 = new TTable();
  23. 667 = new THidden('id');
  24. $dataf = new TDate('dataVencimento');
  25. $qtd = new TEntry('qtd');
  26. $qtd->setMask('999');
  27. // $qtd->setExitAction($action3);
  28. $valor = new TEntry('valor');
  29. $valor->setNumericMask(2, '.', '');
  30. $valor->setMaxLength(9);
  31. $valor->setEditable(FALSE);
  32. $filter = array(new TFilter('cargos_id','=',10));
  33. $funcionario = new TDBFCombo('funcionarios_id', 'mysql', 'Funcionarios','id', 'nome','nome',$filter);
  34. // cliente
  35. $cliente_id = new TSeekButton('cliente_id');
  36. $cliente = new TEntry('cliente');
  37. $cliente->setEditable(FALSE);
  38. $seek = new TStandardSeek();
  39. $action = new TAction(array($seek,'onSetup'));
  40. $action->setParameter('database', 'mysql');
  41. $action->setParameter('parent','VendasCompleta');
  42. $action->setParameter('model','Cliente');
  43. $action->setParameter('display_field','razaoSocial');
  44. $action->setParameter('receive_key','cliente_id');
  45. $action->setParameter('receive_field','cliente');
  46. $cliente_id->setAction($action);
  47. //produto
  48. $produto = new TEntry('produto');
  49. $produto->setEditable(FALSE);
  50. $produto_id = new TSeekButton('produto_id');
  51. $action = new TAction(array($seek,'onSetup'));
  52. $action->setParameter('database', 'mysql');
  53. $action->setParameter('parent','VendasCompleta');
  54. $action->setParameter('model','Produto');
  55. $action->setParameter('display_field','nome');
  56. $action->setParameter('receive_key','produto_id');
  57. $action->setParameter('receive_field','produto');
  58. $produto_id->setAction($action);
  59. $addcart = new TButton('addcart');
  60. $addcart->setAction(new TAction(array($this,'addProdutos')), 'Add Item');
  61. $pagamento = new TDBCombo('pagamento_id','mysql','Parcelas','id','tipo');
  62. // $pagamento->setChangeAction(new TAction(array($this,'parcelar')));
  63. $nparcelas = new TEntry('maximo');
  64. $juros = new TEntry('juros');
  65. $nparcelas->setEditable(FALSE);
  66. $juros->setEditable(FALSE);
  67. $parcelas = new TEntry('parcelas');
  68. $parcelas->setMask('99');
  69. // $parcelas->setExitAction(new TAction(array($this,'calcular')));
  70. $vparcela = new TEntry('vparcela');
  71. $vparcela->setNumericMask(2, '.', ',');
  72. $vparcela->setMaxLength(6);
  73. $vparcela->setEditable(FALSE);
  74. $vtotal = new TEntry('vtotal');
  75. $vtotal->setNumericMask(2, '.', ',');
  76. $vtotal->setMaxLength(6);
  77. $vtotal->setEditable(FALSE);
  78. $label = new TLabel('Data Pagamento');
  79. $row = $tableP1->addRow();
  80. $row->addCell($label);
  81. $cell = $row->addCell($dataf);
  82. $cell->colspan = 2;
  83. $row = $tableP1->addRow();
  84. $label = new TLabel('Cod Cliente');
  85. $row->addCell($label);
  86. $row->addCell($cliente_id);
  87. $label = new TLabel('Cliente');
  88. $row->addCell($label);
  89. $row->addCell($cliente);
  90. $row = $tableP1->addRow();
  91. $label = new TLabel('Cod Produto');
  92. $row->addCell($label);
  93. $row->addCell($produto_id);
  94. $label = new TLabel('Produto');
  95. $row->addCell($label);
  96. $row->addCell($produto);
  97. $row->addCell($addcart);
  98. $row = $tableP1->addRow();
  99. $label = new TLabel('Quantidade');
  100. $row->addCell($label);
  101. $row->addCell($qtd);
  102. $row = $tableP1->addRow();
  103. $label = new TLabel('Forma de Pagamento');
  104. $row->addCell($label);
  105. $row->addCell($pagamento);
  106. $row = $tableP1->addRow();
  107. $label = new TLabel('Parcelas');
  108. $row->addCell($label);
  109. $row->addCell($parcelas);
  110. $row = $tableP1->addRow();
  111. $label = new TLabel('Juros');
  112. $row->addCell($label);
  113. $row->addCell($juros);
  114. $label = new TLabel('Valor Parcela');
  115. $row->addCell($label);
  116. $row->addCell($vparcela);
  117. $row=$tableP1->addRow();
  118. $label = new TLabel('Valor Total');
  119. $row->addCell($label);
  120. $row->addCell($valor);
  121. $label = new TLabel('Valor Final');
  122. $row->addCell($label);
  123. $row->addCell($vtotal);
  124. $row = $tableP1->addRow();
  125. $calcular = new TButton('gerar');
  126. $calcular->setAction(new TAction(array($this,'calcular')),'Calcular');
  127. $save = new TButton('salvar');
  128. $save->setAction(new TAction(array($this,'onSave')),'gravar');
  129. $save->setImage('ico_save.png');
  130. $row->addCell($calcular);
  131. $row->addCell($save);
  132. $this->form->add($tableP1);
  133. $this->form->setFields(array($addcart,$produto_id,
  134. $cliente_id,$vparcela,
  135. $vtotal,$parcelas,$pagamento,$qtd,$dataf,$cliente,
  136. $produto,$calcular,$juros,$valor,$save));
  137. $this->note->appendPage('Dados Cliente', $this->form);
  138. $this->note->appendPage('Lista de produtos', $this->itens );
  139. parent::add($this->note);
  140. }
  141. function onEdit($param = NULL){
  142. $dados = $this->form->getData();
  143. if(empty($this->id)){
  144. $this->lastId();
  145. }
  146. try {
  147. TTransaction::open('mysql');
  148. if(isset($param['key'])){
  149. $venda = new Receber($param['key']);
  150. $dados->dataVencimento = $venda->dataVencimento ;
  151. $dados->produto_id = $venda->produto_id ;
  152. $dados->vendedor_id = $venda->vendedor_id ;
  153. $dados->cliente_id = $venda->cliente_id ;
  154. $dados->vparcela = $venda->vparcela ;
  155. $dados->vtotal = $venda->vtotal ;
  156. $dados->pagamento_id = $venda->pagamento_id ;
  157. }else{
  158. $venda = new Receber(self::667);
  159. $dados->dataVencimento = $venda->dataVencimento ;
  160. $dados->produto_id = $venda->produto_id ;
  161. $dados->vendedor_id = $venda->vendedor_id ;
  162. $dados->cliente_id = $venda->cliente_id ;
  163. $dados->vparcela = $venda->vparcela ;
  164. $dados->vtotal = $venda->vtotal ;
  165. $dados->pagamento_id = $venda->pagamento_id ;
  166. }
  167. TForm::sendData('VendasCompleta', $dados);
  168. TTransaction::close();
  169. } catch (Exception $ex) {
  170. new TMessage('error', $ex->getMessage());
  171. TTransaction::rollback();
  172. }
  173. }
  174. public function calcular()
  175. {
  176. TTransaction::open('mysql');
  177. $dados = $this->form->getData();
  178. $juros = 1 + $dados->juros /100;
  179. $vjuros = pow($juros, $dados->parcelas);
  180. $dados->vtotal =round(( $dados->valor * $vjuros),2);
  181. $dados->vparcela = round(( $dados->vtotal / $dados->parcelas),2);
  182. $par = new Parcelas($dados->pagamento_id);
  183. $dados->maximo = $par->maximo;
  184. $dados->juros = $par->juros;
  185. TForm::sendData('VendasCompleta', $dados);
  186. TTransaction::close();
  187. }
  188. function addProdutos(){
  189. TTransaction::open('mysql');
  190. $dados = $this->form->getData();
  191. $produto = new Produto($dados->produto_id);
  192. $venda = new ItensVenda();
  193. $venda->venda_id = self::667 ;
  194. $venda->produto_id = $produto->id;
  195. $venda->qtd = $dados->qtd;
  196. $venda->preco = $produto->preco;
  197. $venda->total = ( $dados->qtd * $produto->preco);
  198. $venda->store();
  199. $dados->valor += ($produto->preco * $dados->qtd);
  200. TForm::sendData('VendasCompleta', $dados);
  201. TTransaction::close();
  202. }
  203. function onDelete($param){
  204. }
  205. function onReload($param = NULL){
  206. $venda = new Receber(self::667);
  207. foreach ($venda as $key ) {
  208. $item = new StdClass();
  209. $item->id = $key->venda->venda_id;
  210. $item->produto = $key->venda->produto->nome;
  211. $item->qtd = $key->venda->qtd;
  212. $item->preco = $key->venda->preco;
  213. $item->total = $key->venda->total ;
  214. $this->itens->addItem($item);
  215. }
  216. }
  217. function onSave(){
  218. $dados = $this->form->getData();
  219. try {
  220. TTransaction::open('mysql');
  221. $venda = new Receber();
  222. $venda->id = $this->id;
  223. $venda->dataVencimento = $dados->dataVencimento ;
  224. $venda->vendedor_id = $dados->vendedor_id;
  225. $venda->cliente_id = $dados->cliente_id ;
  226. $venda->vparcela = $dados->vparcela;
  227. $venda->vtotal = $dados->vtotal;
  228. $venda->pagamento_id = $dados->pagamento_id;
  229. $venda->store();
  230. new TMessage('seccess', 'Venda Realizada com Exito');
  231. TForm::sendData('VendasCompleta', $dados);
  232. TTransaction::close();
  233. } catch (Exception $ex) {
  234. new TMessage('error', $ex->getMessage());
  235. TTransaction::rollback();
  236. }
  237. }
  238. function lastId(){
  239. TTransaction::open('mysql');
  240. $novo = new Receber();
  241. $novo->store();
  242. $repo = new TRepository('Receber');
  243. $criteria = new TCriteria();
  244. $criteria->setProperty('order', 'id');
  245. $criteria->setProperty('direction','DESC');
  246. $criteria->setProperty('limit', '1');
  247. $produtos = $repo->load($criteria);
  248. foreach ($produtos as $p){
  249. self::667 = $p->id;
  250. }
  251. TTransaction::close();
  252. }
  253. }

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,

O onReload() não é executado em nenhum ponto... Nem ao menos no show().

abs,
Pablo