Duplicando Registro ao Salvar e erro não encontrado. Boa noite galera. Tenho um form que ao Salvar o registro ele simplesmente duplica e cria um novo. Também ocorre um erro após alvar nesta linha: Notice: Undefined index: ComprasSub_list_quant in C:xampphtdocsadiantiourorioappcontrolourorioComprasForm.php on line 399 Segue o código, obrigado. ...
CM
Duplicando Registro ao Salvar e erro não encontrado.  
Boa noite galera.

Tenho um form que ao Salvar o registro ele simplesmente duplica e cria um novo.

Também ocorre um erro após alvar nesta linha: Notice: Undefined index: ComprasSub_list_quant in C:xampphtdocsadiantiourorioappcontrolourorioComprasForm.php on line 399


Segue o código, obrigado.

 
  1. <?php
 
  1. <?php
  2. /**
  3. * ComprasForm Master/Detail
  4. * @author <your name here>
  5. */
  6. class ComprasFormNew extends TPage
  7. {
  8. protected $form; // form
  9. protected $detail_list;
  10. /**
  11. * Page constructor
  12. */
  13. public function __construct()
  14. {
  15. parent::__construct();
  16. // creates the form
  17. $this->form = new BootstrapFormBuilder('form_Compras');
  18. $this->form->setFormTitle('Compras');
  19. // master fields
  20. $id_compra = new THidden('id_compra');
  21. $data_compra = new TDate('data_compra');
  22. $tipo_compra_id = new TDBCombo('tipo_compra_id', 'ourorio', 'ComprasTipo', 'id_tipo_compra', 'descricao','descricao');
  23. $tipo_compra_txt = new TEntry('tipo_compra_txt');
  24. $kilate_id = new TDBCombo('kilate_id', 'ourorio', 'ComprasKilate', 'id_kilate', 'descricao_kilate','descricao_kilate');
  25. $kilate_txt = new TEntry('kilate_txt');
  26. $criteria = new TCriteria;
  27. $criteria->setProperty('order', 'nome_cliente');
  28. $cliente_id = new ">TDBSeekButton('cliente_id', 'ourorio', 'form_Compras', 'Clientes', 'nome_cliente', 'cliente_id', 'cliente_txt', $criteria);
  29. $cliente_txt = new TEntry('cliente_txt');
  30. $cliente_txt->setEditable(FALSE);
  31. $cliente_cep = new THidden('cliente_cep');
  32. $cliente_endereco_tipo = new THidden('cliente_endereco_tipo');
  33. $cliente_endereco = new THidden('cliente_endereco');
  34. $cliente_endereco_numero = new THidden('cliente_endereco_numero');
  35. $cliente_bairro = new THidden('cliente_bairro');
  36. $cliente_cidade = new THidden('cliente_cidade');
  37. $cliente_estado = new THidden('cliente_estado');
  38. $cliente_telefone = new THidden('cliente_telefone');
  39. $cliente_nascimento = new THidden('cliente_nascimento');
  40. $cliente_identidade = new THidden('cliente_identidade');
  41. $cliente_email = new THidden('cliente_email');
  42. $cliente_cpf = new THidden('cliente_cpf');
  43. $anexo_nf_joia_cliente = new TFile('anexo_nf_joia_cliente');
  44. $vendedor_txt = new THidden('vendedor_txt');
  45. $loja_id = new TEntry('loja_id');
  46. $loja_id = new THidden('loja_id');
  47. $loja_txt = new TEntry('loja_txt');
  48. $loja_txt = new THidden('loja_txt');
  49. $finalizada = new TEntry('finalizada');
  50. $movimento_fechado = new TEntry('movimento_fechado');
  51. $movimento_fechado_em = new TDate('movimento_fechado_em');
  52. //Campos Obrigatórios
  53. $cliente_id->addValidation('Cliente', new TRequiredValidator);
  54. $tipo_compra_id->addValidation('Tipo de Compra', new TRequiredValidator);
  55. $kilate_id->addValidation('Kilate', new TRequiredValidator);
  56. // define ação de saída do campo
  57. $cliente_id->setExitAction(new TAction(array($this, 'onExitCliente')));
  58. // máscara Master
  59. $data_compra ->setDatabaseMask('yyyy-mm-dd');
  60. $data_compra ->setMask('dd/mm/yyyy');
  61. $data_compra->setValue(date("Y-m-d"));
  62. $loja_id->setValue(TSession::getValue('userunitid')) ; //id da unidade
  63. $loja_id->setEditable(FALSE);
  64. $loja_txt->setValue(TSession::getValue('userunitname')); //nome da unidade
  65. $loja_txt->setEditable(FALSE);
  66. $vendedor_txt->setEditable(FALSE);
  67. $vendedor_txt->setValue(TSession::getValue('username')); //nome do usuário
  68. // detail fields
  69. $detail_uniqid = new THidden('detail_uniqid');
  70. $detail_id_automatico = new THidden('detail_id_automatico');
  71. $detail_quantidade = new TEntry('detail_quantidade');
  72. $detail_unidade = new TEntry('detail_unidade');
  73. $detail_descricao = new TEntry('detail_descricao');
  74. $detail_valor_unit = new TEntry('detail_valor_unit');
  75. $detail_subtotal = new TEntry('detail_subtotal');
  76. $detail_tipo_compra_id = new TDBCombo('detail_tipo_compra_id', 'ourorio', 'ComprasTipo', 'id_tipo_compra', 'descricao','descricao');
  77. $detail_kilate_id = new TDBCombo('detail_kilate_id', 'ourorio', 'ComprasKilate', 'id_kilate', 'descricao_kilate','descricao_kilate');
  78. // mascara detalhes
  79. $detail_descricao->forceUpperCase();
  80. $detail_unidade->setValue('GR');
  81. $detail_valor_unit->setNumericMask(2, ',', '.', true);
  82. $detail_subtotal->setNumericMask(2, ',', '.', true);
  83. if (!empty($id_compra))
  84. {
  85. $id_compra->setEditable(FALSE);
  86. }
  87. // master fields
  88. $row = $this->form->addFields( [new TLabel('Data')], [$data_compra] ,
  89. [new TLabel('ID')], [$cliente_id],
  90. [new TLabel('Cliente')], [$cliente_txt]);
  91. $row->layout = ['col-1','col-2','col-sm-1','col-2','col-sm-1','col-sm-5'];
  92. $row = $this->form->addFields( [new TLabel('Anexo N.F. Joia')], [$anexo_nf_joia_cliente],
  93. [new TLabel('Tipo')], [$tipo_compra_id],
  94. [new TLabel('Kilate')], [$kilate_id]);
  95. $row->layout = ['col-sm-1', 'col-sm-3','col-sm-1', 'col-sm-3','col-sm-1', 'col-sm-3'];
  96. $row = $this->form->addFields([new THidden('CEP')], [$cliente_cep],
  97. [new THidden('Tipo')], [$cliente_endereco_tipo],
  98. [new THidden('Endereço')], [$cliente_endereco],
  99. [new THidden('Numero')], [$cliente_endereco_numero],
  100. [new THidden('Bairro')], [$cliente_bairro],
  101. [new THidden('Cidade')], [$cliente_cidade],
  102. [new THidden('Estado')], [$cliente_estado],
  103. [new THidden('Telefone')], [$cliente_telefone],
  104. [new THidden('Nasc')], [$cliente_nascimento],
  105. [new THidden('Identidade')], [$cliente_identidade],
  106. [new THidden('Email')], [$cliente_email],
  107. [new THidden('CPF')], [$cliente_cpf],
  108. );
  109. $row->layout = ['col-sm-1','col-sm-2','col-sm-1','col-sm-2','col-sm-1','col-sm-2','col-sm-1','col-sm-4','col-sm-1','col-sm-2','col-sm-1', 'col-sm-2', 'col-sm-1','col-sm-2', 'col-sm-1','col-sm-2', 'col-sm-1','col-sm-2', 'col-sm-1','col-sm-2', 'col-sm-1','col-sm-2', 'col-sm-1','col-sm-2'];
  110. $row = $this->form->addFields([new THidden('Vendedor')], [$vendedor_txt] ,
  111. [new THidden('ID')], [$loja_id] ,
  112. [new THidden('Loja')], [$loja_txt]);
  113. $row->layout = ['col-sm-1', 'col-sm-3','col-sm-1', 'col-sm-3','col-sm-1','col-sm-3'];
  114. // detail fields
  115. $this->form->addContent( ['<h4>Item(s) da Compra</h4><hr>'] );
  116. $this->form->addFields( [$detail_uniqid] );
  117. $this->form->addFields( [$detail_id_automatico] );
  118. $row = $this->form->addFields( [new TLabel('quantidade')], [$detail_quantidade],
  119. [new TLabel('Produto')], [$detail_descricao],
  120. [new TLabel('Valor')], [$detail_valor_unit] );
  121. $row->layout = ['col-sm-1', 'col-sm-2','col-sm-1','col-sm-5','col-sm-1','col-sm-2'];
  122. $row = $this->form->addFields( [new TLabel('Unidade')], [$detail_unidade],
  123. [new TLabel('Tipo')], [$detail_tipo_compra_id],
  124. [new TLabel('Kilate')], [$detail_kilate_id],
  125. [new TLabel('Subtotal')], [$detail_subtotal] ,
  126. );
  127. $row->layout = ['col-sm-1', 'col-sm-2','col-sm-1','col-sm-2','col-sm-1','col-sm-2','col-sm-1','col-sm-2'];
  128. $add = TButton::create('add', [$this, 'onDetailAdd'], 'Register', 'fa:plus-circle green');
  129. $add->getAction()->setParameter('static','1');
  130. $this->form->addFields( [], [$add] );
  131. $this->detail_list = new BootstrapDatagridWrapper(new TDataGrid);
  132. $this->detail_list->setId('ComprasSub_list');
  133. $this->detail_list->generateHiddenFields();
  134. $this->detail_list->style = "min-width: 700px; width:100%;margin-bottom: 10px";
  135. // items
  136. $this->detail_list->addColumn( new TDataGridColumn('uniqid', 'Uniqid', 'center') )->setVisibility(false);
  137. $this->detail_list->addColumn( new TDataGridColumn('id_automatico', 'Id', 'center') )->setVisibility(false);
  138. $this->detail_list->addColumn( new TDataGridColumn('quant', 'Quant', 'left', 100) );
  139. $this->detail_list->addColumn( new TDataGridColumn('descricao', 'Descricao', 'left', 100) );
  140. $this->detail_list->addColumn( new TDataGridColumn('unidade', 'Unidade', 'left', 100) );
  141. $this->detail_list->addColumn( new TDataGridColumn('valor_unit', 'Valor Unit', 'left', 100) );
  142. $this->detail_list->addColumn( new TDataGridColumn('subtotal', 'Subtotal', 'left', 100) );
  143. $this->detail_list->addColumn( new TDataGridColumn('tipo_compra_id', 'Tipo Compra Id', 'left', 100) );
  144. $this->detail_list->addColumn( new TDataGridColumn('tipo_compra_txt', 'Tipo Compra Txt', 'left', 100) );
  145. $this->detail_list->addColumn( new TDataGridColumn('kilate_id', 'Kilate Id', 'left', 100) );
  146. $this->detail_list->addColumn( new TDataGridColumn('kilate_txt', 'Kilate Txt', 'left', 100) );
  147. // detail actions
  148. $action1 = new TDataGridAction([$this, 'onDetailEdit'] );
  149. $action1->setFields( ['uniqid', '*'] );
  150. $action2 = new TDataGridAction([$this, 'onDetailDelete']);
  151. $action2->setField('uniqid');
  152. // add the actions to the datagrid
  153. $this->detail_list->addAction($action1, _t('Edit'), 'fa:edit blue');
  154. $this->detail_list->addAction($action2, _t('Delete'), 'far:trash-alt red');
  155. $this->detail_list->createModel();
  156. $panel = new TPanelGroup;
  157. $panel->add($this->detail_list);
  158. $panel->getBody()->style = 'overflow-x:auto';
  159. $this->form->addContent( [$panel] );
  160. $btn_gravar = $this->form->addAction( 'SALVAR', new TAction([$this, 'onSave'], ['static'=>'1']), 'fa:save white');
  161. $btn_gravar->class = 'btn btn-sm btn-primary';
  162. $btn_limpar = $this->form->addAction( 'LIMPAR', new TAction([$this, 'onClear']), 'fa:eraser white');
  163. $btn_limpar->class = 'btn btn-sm btn-danger';
  164. $btn_voltar = $this->form->addAction('VOLTAR',new TAction(array('ComprasList','onReload')),'far:arrow-alt-circle-left white');
  165. $btn_voltar->class = 'btn btn-sm btn-warning';
  166. //BOTÃO PARA GERAR PDF
  167. $btn_print = $this->form->addAction('RECIBO COMPRA', new TAction(array($this, 'OnPDF')),'far:arrow-alt-circle-left white');
  168. $btn_print->class = 'btn btn-sm btn-secondary';
  169. // create the page container
  170. $container = new TVBox;
  171. $container->style = 'width: 100%';
  172. // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  173. $container->add($this->form);
  174. parent::add($container);
  175. }
  176. /**
  177. * Clear form
  178. * @param $param URL parameters
  179. */
  180. public function onClear($param)
  181. {
  182. $this->form->clear(TRUE);
  183. }
  184. /**
  185. * Add detail item
  186. * @param $param URL parameters
  187. */
  188. public function onDetailAdd( $param )
  189. {
  190. try
  191. {
  192. $this->form->validate();
  193. $data = $this->form->getData();
  194. /** validation sample
  195. if (empty($data->fieldX))
  196. {
  197. throw new Exception('The field fieldX is required');
  198. }
  199. **/
  200. $uniqid = !empty($data->detail_uniqid) ? $data->detail_uniqid : uniqid();
  201. $grid_data = [];
  202. $grid_data['uniqid'] = $uniqid;
  203. $grid_data['id_automatico'] = $data->detail_id_automatico;
  204. $grid_data['quant'] = $data->detail_quant;
  205. $grid_data['descricao'] = $data->detail_descricao;
  206. $grid_data['unidade'] = $data->detail_unidade;
  207. $grid_data['valor_unit'] = $data->detail_valor_unit;
  208. $grid_data['subtotal'] = $data->detail_subtotal;
  209. $grid_data['tipo_compra_id'] = $data->detail_tipo_compra_id;
  210. $grid_data['tipo_compra_txt'] = $data->detail_tipo_compra_txt;
  211. $grid_data['kilate_id'] = $data->detail_kilate_id;
  212. $grid_data['kilate_txt'] = $data->detail_kilate_txt;
  213. // insert row dynamically
  214. $row = $this->detail_list->addItem( (object) $grid_data );
  215. $row->id = $uniqid;
  216. TDataGrid::replaceRowById('ComprasSub_list', $uniqid, $row);
  217. // clear detail form fields
  218. $data->detail_uniqid = '';
  219. $data->detail_id_automatico = '';
  220. $data->detail_quant = '';
  221. $data->detail_descricao = '';
  222. $data->detail_unidade = '';
  223. $data->detail_valor_unit = '';
  224. $data->detail_subtotal = '';
  225. $data->detail_tipo_compra_id = '';
  226. $data->detail_tipo_compra_txt = '';
  227. $data->detail_kilate_id = '';
  228. $data->detail_kilate_txt = '';
  229. // send data, do not fire change/exit events
  230. TForm::sendData( 'form_Compras', $data, false, false );
  231. }
  232. catch (Exception $e)
  233. {
  234. $this->form->setData( $this->form->getData());
  235. new TMessage('error', $e->getMessage());
  236. }
  237. }
  238. /**
  239. * Edit detail item
  240. * @param $param URL parameters
  241. */
  242. public static function onDetailEdit( $param )
  243. {
  244. $data = new stdClass;
  245. $data->detail_uniqid = $param['uniqid'];
  246. $data->detail_id_automatico = $param['id_automatico'];
  247. $data->detail_quant = $param['quant'];
  248. $data->detail_descricao = $param['descricao'];
  249. $data->detail_unidade = $param['unidade'];
  250. $data->detail_valor_unit = $param['valor_unit'];
  251. $data->detail_subtotal = $param['subtotal'];
  252. $data->detail_tipo_compra_id = $param['tipo_compra_id'];
  253. $data->detail_tipo_compra_txt = $param['tipo_compra_txt'];
  254. $data->detail_kilate_id = $param['kilate_id'];
  255. $data->detail_kilate_txt = $param['kilate_txt'];
  256. // send data, do not fire change/exit events
  257. TForm::sendData( 'form_Compras', $data, false, false );
  258. }
  259. /**
  260. * Delete detail item
  261. * @param $param URL parameters
  262. */
  263. public static function onDetailDelete( $param )
  264. {
  265. // clear detail form fields
  266. $data = new stdClass;
  267. $data->detail_uniqid = '';
  268. $data->detail_id_automatico = '';
  269. $data->detail_quant = '';
  270. $data->detail_descricao = '';
  271. $data->detail_unidade = '';
  272. $data->detail_valor_unit = '';
  273. $data->detail_subtotal = '';
  274. $data->detail_tipo_compra_id = '';
  275. $data->detail_tipo_compra_txt = '';
  276. $data->detail_kilate_id = '';
  277. $data->detail_kilate_txt = '';
  278. // send data, do not fire change/exit events
  279. TForm::sendData( 'form_Compras', $data, false, false );
  280. // remove row
  281. TDataGrid::removeRowById('ComprasSub_list', $param['uniqid']);
  282. }
  283. /**
  284. * Load Master/Detail data from database to form
  285. */
  286. public function onEdit($param)
  287. {
  288. try
  289. {
  290. TTransaction::open('ourorio');
  291. if (isset($param['key']))
  292. {
  293. $key = $param['key'];
  294. $object = new Compras($key);
  295. $items = ComprasSub::where('compra_id', '=', $key)->load();
  296. foreach( $items as $item )
  297. {
  298. $item->uniqid = uniqid();
  299. $row = $this->detail_list->addItem( $item );
  300. $row->id = $item->uniqid;
  301. }
  302. $this->form->setData($object);
  303. TTransaction::close();
  304. }
  305. else
  306. {
  307. $this->form->clear(TRUE);
  308. }
  309. }
  310. catch (Exception $e) // in case of exception
  311. {
  312. new TMessage('error', $e->getMessage());
  313. TTransaction::rollback();
  314. }
  315. }
  316. /**
  317. * Save the Master/Detail data from form to database
  318. */
  319. public function onSave($param)
  320. {
  321. try
  322. {
  323. // open a transaction with database
  324. TTransaction::open('ourorio');
  325. $data = $this->form->getData();
  326. $this->form->validate();
  327. $master = new Compras;
  328. $master->fromArray( (array) $data);
  329. $master->store();
  330. ComprasSub::where('compra_id', '=', $master->id_compra)->delete();
  331. if( $param['ComprasSub_list_quant'] )
  332. {
  333. foreach( $param['ComprasSub_list_quant'] as $key => $item_id )
  334. {
  335. $detail = new ComprasSub;
  336. $detail->quant = $param['ComprasSub_list_quant'][$key];
  337. $detail->descricao = $param['ComprasSub_list_descricao'][$key];
  338. $detail->unidade = $param['ComprasSub_list_unidade'][$key];
  339. $detail->valor_unit = $param['ComprasSub_list_valor_unit'][$key];
  340. $detail->subtotal = $param['ComprasSub_list_subtotal'][$key];
  341. $detail->tipo_compra_id = $param['ComprasSub_list_tipo_compra_id'][$key];
  342. $detail->tipo_compra_txt = $param['ComprasSub_list_tipo_compra_txt'][$key];
  343. $detail->kilate_id = $param['ComprasSub_list_kilate_id'][$key];
  344. $detail->kilate_txt = $param['ComprasSub_list_kilate_txt'][$key];
  345. $detail->compra_id = $master->id_compra;
  346. $detail->store();
  347. }
  348. }
  349. TTransaction::close(); // close the transaction
  350. TForm::sendData('form_Compras', (object) ['id' => $master->id_compra]);
  351. TToast::show('success', 'Compra Registrada com Sucesso!', 'top left', 'far:check-circle' );
  352. //AdiantiCoreApplication::loadPage( 'ComprasList' );
  353. //exit;
  354. }
  355. catch (Exception $e) // in case of exception
  356. {
  357. new TMessage('error', $e->getMessage());
  358. $this->form->setData( $this->form->getData() ); // keep form data
  359. TTransaction::rollback();
  360. }
  361. }
  362. public function OnPDF($param)
  363. {
  364. $data = $this->form->getData();
  365. $data_compra2 = TDate::date2br($data->data_compra);
  366. $pdf = new TPDFDesigner;
  367. $pdf->fromXml('app/reports/recibo_compra_cliente.pdf.xml');
  368. $pdf->replace('{id_compra}',$data->id_compra);
  369. $pdf->replace('{data_compra}',$data->data_compra);
  370. $pdf->replace('{cliente_txt}',utf8_decode($data->cliente_txt));
  371. $pdf->replace('{endereco_tipo}',utf8_decode($data->cliente_endereco_tipo), 0, 0, 'L');
  372. $pdf->replace('{endereco_numero}',utf8_decode($data->cliente_endereco_numero), 0, 0, 'L');
  373. $pdf->replace('{endereco}',utf8_decode($data->cliente_endereco), 0, 0, 'L');
  374. $pdf->replace('{bairro}',utf8_decode($data->cliente_bairro), 0, 0, 'L');
  375. $pdf->replace('{cpf}',utf8_decode($data->cliente_cpf), 0, 0, 'L');
  376. $pdf->replace('{identidade}',utf8_decode($data->cliente_identidade), 0, 0, 'L');
  377. $pdf->replace('{telefone}',utf8_decode($data->cliente_telefone), 0, 0, 'L');
  378. $pdf->replace('{nascimento}',utf8_decode($data->cliente_nascimento), 0, 0, 'L');
  379. $pdf->replace('{cidade}',utf8_decode($data->cliente_cidade), 0, 0, 'L');
  380. $pdf->replace('{estado}',utf8_decode($data->cliente_estado), 0, 0, 'L');
  381. $pdf->replace('{email}',utf8_decode($data->cliente_email), 0, 0, 'L');
  382. $pdf->replace('{vendedor_txt}',utf8_decode($data->vendedor_txt));
  383. $pdf->replace('{loja_txt}',utf8_decode($data->loja_txt));
  384. $pdf->generate();
  385. //CABEÇALHO DETALHES
  386. $pdf->SetFont('Arial','B',10);
  387. $pdf->SetX(18);
  388. $pdf->SetFillColor(200, 200, 200);
  389. //$pdf->Cell(48, 22,'ITEM', 1, 0,'C', TRUE);
  390. $pdf->Cell(50, 22, utf8_decode('QUANT'), 1, 0,'C', TRUE);
  391. $pdf->Cell(300, 22, utf8_decode('PRODUTO'), 1, 0,'L', TRUE);
  392. $pdf->Cell(30, 22, utf8_decode('UND'), 1, 0,'C', TRUE);
  393. $pdf->Cell(70, 22, utf8_decode('VALOR UNT'), 1, 1,'R', TRUE);
  394. $pdf->Cell(70, 22, utf8_decode('SUBTOTAL'), 1, 1,'R', TRUE);
  395. // Itens do Pedido
  396. // inicio do rodapé
  397. $pdf->SetY(-12);
  398. $pdf->SetFont('Arial', '', 8);
  399. $pdf->setFontColorRGB( '#000000' );
  400. $pdf->Cell(590, 10, utf8_decode('Pág. ').$pdf->PageNo().' de {nb}',0,0,'R');
  401. $pdf->SetY(-12);
  402. $pdf->Cell(130, 10, utf8_decode('Sistema Gestor OuroRio © 2021 '),0,0,'R');
  403. $pdf->SetY(-12);
  404. $pdf->Cell(340,10,utf8_decode("Impresso em ".date("d/m/Y H:i:s"."")),0,1,'R');
  405. $pdf->SetY(-12);
  406. $pdf->Cell(420,10,utf8_decode(" Por ".TSession::getValue('username')),0,1,'R'); //nome do usuário
  407. // fim do rodapé
  408. $file = 'app/output/' .time(). '-Recibo.pdf';
  409. if (!file_exists($file) OR is_writable($file))
  410. {
  411. $pdf->save($file);
  412. //parent::openFile($file);
  413. $window = TWindow::create('Ouro Rio', 0.8, 0.8);
  414. $object = new TElement('object');
  415. $object->data = $file;
  416. $object->type = 'application/pdf';
  417. $object->style = "width: 100%; height:calc(100% - 10px)";
  418. $window->add($object);
  419. $window->show();
  420. }
  421. else
  422. {
  423. throw new Exception(_t('Permission denied') . ': ' . $file);
  424. }
  425. TToast::show('success','RECIBO GERADO COM SUCESSO!', 'top left', 'fas fa-check');
  426. TTransaction::close();
  427. AdiantiCoreApplication::loadPage( 'ComprasList' );
  428. exit;
  429. }
  430. // CÓDIGO PARA PASSAR VALORES DO CLIENTE AOS CAMPOS
  431. public static function onExitCliente($param)
  432. {
  433. $cliente_id = $param['cliente_id']; // get the product code
  434. try
  435. {
  436. TTransaction::open('ourorio');
  437. $cliente = new Clientes($cliente_id); // reads the product
  438. $obj = new StdClass;
  439. //$obj->detail_valor_unit = number_format($produto->valor_unit, 2, ',', '.');
  440. //$obj->detail_quantidade = 1;
  441. //$obj->detail_valor_total = number_format($produto->valor_unit, 2, ',', '.');
  442. $obj->cliente_cep = ($cliente->cep);
  443. $obj->cliente_endereco_tipo = ($cliente->endereco_tipo);
  444. $obj->cliente_endereco = ($cliente->endereco);
  445. $obj->cliente_endereco_numero = ($cliente->endereco_numero);
  446. $obj->cliente_bairro = ($cliente->bairro);
  447. $obj->cliente_cidade = ($cliente->cidade);
  448. $obj->cliente_estado = ($cliente->estado);
  449. $obj->cliente_telefone = ($cliente->telefone);
  450. $obj->cliente_nascimento = ($cliente->data_nascimento);
  451. $obj->cliente_identidade = ($cliente->identidade);
  452. $obj->cliente_email = ($cliente->email);
  453. $obj->cliente_cpf = ($cliente->cpf);
  454. TScript::create('setTimeout(function() { $("input[name=\'detail_quantidade\']").focus() }, 500);');
  455. TTransaction::close();
  456. TForm::sendData('form_Compras', $obj);
  457. }
  458. catch (Exception $e)
  459. {
  460. new TMessage('error', $e->getMessage());
  461. $this->form->setData( $this->form->getData() ); // keep form data
  462. TTransaction::rollback();
  463. }
  464. }
  465. }
  466. ?>

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 (2)


NR

Você está criando o campo "id_compra", mas não está adicionando ao formulário. Dessa forma, ao salvar, esse valor vai como null e acaba sendo gravado como um novo registro.
 
  1. <?php
  2. $id_compra = new THidden('id_compra');
  3. // $id_compra precisa ser passado em addFields...
  4. ?>
CM

Bom dia Nataniel.
Obrigado por sua dica. Resolveu.
Mas no meu tópico ficou a outra dúvida de erro nesta linha:

Notice: Undefined index: ComprasSub_list_quant in C:xampphtdocsadiantiourorioappcontrolourorioComprasForm.php on line 399

Que aqui neste post está na linha 391