Gravar o Status de lançado Boa tarde... Poderiam me ajudar, eu tenho um formulário onde quero gravar no campo Status o valor de "Lançado". Esse campo não pode ser editável, ou seja, esse Status só pode ser gravado quando clicado no botão salvar. Abaixo segue o código completo: ...
RF
Gravar o Status de lançado  
Boa tarde...

Poderiam me ajudar, eu tenho um formulário onde quero gravar no campo Status o valor de "Lançado".
Esse campo não pode ser editável, ou seja, esse Status só pode ser gravado quando clicado no botão salvar.
Abaixo segue o código completo:

 
  1. <?php
  2. /**
  3. * ordem_de_coleta Master/Detail
  4. * @author <your name here>
  5. */
  6. class ordem_de_coleta 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_ordem_coleta');
  18. $this->form->setFormTitle('Ordem de coleta');
  19. $this->form->setFieldSizes('100%');
  20. // master fields
  21. $id = new TEntry('id');
  22. $status = new TEntry('status');//TDBCombo('status', 'banco', 'status', 'descricao', 'descricao');
  23. $data_coleta = new TDate('data_coleta');
  24. //$cliente = new TDBCombo ('cliente', 'banco', 'cliente', 'id', 'razao_social');
  25. $cliente = new TDBUniqueSearch('cliente', 'banco', 'cliente', 'id', 'razao_social');
  26. $loja_id = new TDBCombo ('loja_id', 'banco', 'loja','id','nome_fantasia');//TEntry('loja_id');
  27. //$loja_id = new TDBUniqueSearch('loja_id', 'banco', 'loja', 'id', 'nome_fantasia');
  28. $cnpj_loja = new TEntry('cnpj_loja');
  29. $rsocial_loja = new TEntry('rsocial_loja');
  30. $cep_loja = new TEntry('cep_loja');
  31. $endereco_loja = new TEntry('endereco_loja');
  32. $numero_loja = new TEntry('numero_loja');
  33. $bairro_loja = new TEntry('bairro_loja');
  34. $uf_loja = new TEntry('uf_loja');//TDBCombo('uf_loja', 'banco', 'uf', 'id', 'descricao');
  35. $cidade_loja = new TEntry('cidade_loja');//TDBCombo('cidade_loja', 'banco', 'cidade', 'id', 'descricao');
  36. $contato_loja = new TEntry('contato_loja');
  37. $telefone_loja = new TEntry('telefone_loja');
  38. $intervalo_inicial = new TEntry('intervalo_inicial');
  39. $intervalo_final = new TEntry('intervalo_final');
  40. $hora_com_inicial = new TEntry('hora_com_inicial');
  41. $hora_com_fim = new TEntry('hora_com_fim');
  42. $sexta_inicial = new TEntry('sexta_inicial');
  43. $sexta_fim = new TEntry('sexta_fim');
  44. $tipo_veic = new TDBCombo('tipo_veic', 'banco', 'veiculos', 'tipo_rodado', 'tipo_rodado');//TEntry('tipo_veic');
  45. $obs_geral = new TText('obs_geral');
  46. //$destinatario_id = new TDBCombo('destinatario_id', 'banco', 'destinatario', 'id', 'nome_rzsocizl');//new TEntry('destinatario_id');
  47. $destinatario_id = new TDBUniqueSearch('destinatario_id', 'banco', 'destinatario', 'id', 'nome_rzsocizl');
  48. $uf_destino = new TEntry('uf_destino');
  49. $destinatario_nome = new TEntry('destinatario_nome');
  50. $contato_destinatario = new TEntry('contato_destinatario');
  51. $cnpj_destinatario = new TEntry('cnpj_destinatario');
  52. $cep_destinatario = new TEntry('cep_destinatario');
  53. $endereco_destinatario = new TEntry('endereco_destinatario');
  54. $numero_destinatario = new TEntry('numero_destinatario');
  55. $complemento_destinatario = new TEntry('complemento_destinatario');
  56. $bairro_destinatario = new TEntry('bairro_destinatario');
  57. $municipio_destinatario = new TEntry('municipio_destinatario');
  58. $telefone_destinatario = new TEntry('telefone_destinatario');
  59. // detail fields
  60. $detail_id = new THidden('detail_id');
  61. $detail_numero = new TEntry('detail_numero');
  62. $detail_serie = new TEntry('detail_serie');
  63. $detail_total_volumes = new TEntry('detail_total_volumes');
  64. $detail_total_peso = new TEntry('detail_total_peso');
  65. $detail_vlr_nota_fiscal = new TEntry('detail_vlr_nota_fiscal');
  66. $detail_especie_embalagem = new TDBCombo('detail_especie_embalagem', 'banco', 'especie_embalagem', 'id', 'descricao');
  67. $detail_grupo_natureza = new TDBCombo('detail_grupo_natureza', 'banco', 'grupo_natureza', 'id', 'descricao');
  68. if (!empty($id))
  69. {
  70. $id->setEditable(FALSE);
  71. }
  72. // definição de mascara
  73. $data_coleta->setMask('dd/mm/yyyy');
  74. $detail_vlr_nota_fiscal->setNumericMask(2,',', '.', true);
  75. // Mscara para os campos de hora
  76. $intervalo_inicial ->setMask('99:99');
  77. $intervalo_final ->setMask('99:99');
  78. $hora_com_inicial ->setMask('99:99');
  79. $hora_com_fim ->setMask('99:99');
  80. $sexta_inicial ->setMask('99:99');
  81. $sexta_fim ->setMask('99:99');
  82. // Busca as informações e preenche os campos da loja
  83. $loja_id ->setChangeAction(new TAction([$this,'buscaDadosLoja']));
  84. // Busca as informações e preenche os campos do destinatário
  85. $destinatario_id ->setChangeAction(new TAction([$this,'buscaDadosDestinatario']));
  86. // master fields
  87. $row = $this->form->addFields( [ new TLabel('Número da coleta'), $id ],
  88. [ new TLabel('Status'), $status ],
  89. [ new TLabel('Data da coleta'), $data_coleta ] );
  90. $row->layout = ['col-sm-4', 'col-sm-4','col-sm-4' ];
  91. // Campos do solicitante
  92. $this->form->addContent( ['<h4>Dados do solicitante</h4><hr>'] );
  93. $row = $this->form->addFields( [ new TLabel('Cliente'), $cliente ],
  94. [ new TLabel('Loja'), $loja_id ] );
  95. $row->layout = ['col-sm-6', 'col-sm-6' ];
  96. $row = $this->form->addFields( [ new TLabel('CNPJ da loja'), $cnpj_loja ],
  97. [ new TLabel('Razão Social'), $rsocial_loja ] );
  98. $row->layout = ['col-sm-6', 'col-sm-6' ];
  99. $row = $this->form->addFields( [ new TLabel('CEP'), $cep_loja ],
  100. [ new TLabel('UF'), $uf_loja ],
  101. [ new TLabel('Cidade'), $cidade_loja ] );
  102. $row->layout = ['col-sm-3', 'col-sm-3','col-sm-6' ];
  103. $row = $this->form->addFields( [ new TLabel('Endereço'), $endereco_loja ],
  104. [ new TLabel('Número'), $numero_loja ],
  105. [ new TLabel('Bairro'), $bairro_loja ] );
  106. $row->layout = ['col-sm-6', 'col-sm-2','col-sm-4' ];
  107. $row = $this->form->addFields( [ new TLabel('Contato'), $contato_loja ],
  108. [ new TLabel('Telefone'), $telefone_loja ] );
  109. $row->layout = ['col-sm-6', 'col-sm-6' ];
  110. // Campos dos destintário
  111. $this->form->addContent( ['<h4>Dados do destinatário</h4><hr>'] );
  112. $row = $this->form->addFields( [ new TLabel('Razão Social'), $destinatario_id ],
  113. [ new TLabel('CNPJ'), $cnpj_destinatario ],
  114. [ new TLabel('Nome Fantasia'), $destinatario_nome ] );
  115. $row->layout = ['col-sm-6', 'col-sm-2','col-sm-4' ];
  116. $row = $this->form->addFields( [ new TLabel('CEP'), $cep_destinatario ],
  117. [ new TLabel('UF'), $uf_destino ],
  118. [ new TLabel('Cidade'), $municipio_destinatario ] );
  119. $row->layout = ['col-sm-3', 'col-sm-3','col-sm-6' ];
  120. $row = $this->form->addFields( [ new TLabel('Endereço'), $endereco_destinatario ],
  121. [ new TLabel('Número'), $numero_destinatario ],
  122. [ new TLabel('Bairro'), $bairro_destinatario ] );
  123. $row->layout = ['col-sm-6', 'col-sm-2','col-sm-4' ];
  124. $row = $this->form->addFields( [ new TLabel('Complemento'), $complemento_destinatario ],
  125. [ new TLabel('Contato'), $contato_destinatario ],
  126. [ new TLabel('Telefone'), $telefone_destinatario ] );
  127. $row->layout = ['col-sm-4', 'col-sm-4','col-sm-4'];
  128. // Horários de Coleta
  129. $this->form->addContent( ['<h4>Hora para coleta</h4><hr>'] );
  130. $row = $this->form->addFields( [ new TLabel('Hora inicial'), $intervalo_inicial ],
  131. [ new TLabel('Hora final'), $intervalo_final ] );
  132. $row->layout = ['col-sm-6', 'col-sm-6' ];
  133. $this->form->addContent( ['<h4>Intervalo de almoço</h4><hr>'] );
  134. $row = $this->form->addFields( [ new TLabel('Hora inicial'), $hora_com_inicial ],
  135. [ new TLabel('Hora final'), $hora_com_fim ] );
  136. $row->layout = ['col-sm-6', 'col-sm-6' ];
  137. $this->form->addContent( ['<h4>Intervalo de Sexta-Feira</h4><hr>'] );
  138. $row = $this->form->addFields( [ new TLabel('Hora inicial'), $sexta_inicial],
  139. [ new TLabel('Hora final'), $sexta_fim ] );
  140. $row->layout = ['col-sm-6', 'col-sm-6' ];
  141. $this->form->addContent( ['<h4>Veículo e observações gerais</h4><hr>'] );
  142. $row = $this->form->addFields( [ new TLabel('Tipo de veículo'), $tipo_veic ],
  143. [ new TLabel('Obs Geral'), $obs_geral ] );
  144. $row->layout = ['col-sm-6', 'col-sm-6' ];
  145. // Validações
  146. $loja_id ->addValidation('Loja', new TRequiredValidator);
  147. $destinatario_id ->addValidation('Destinatário', new TRequiredValidator);
  148. // detail fields
  149. $this->form->addContent( ['<h4>Dados da nota fiscal</h4><hr>'] );
  150. $this->form->addFields( [$detail_id] );
  151. $row = $this->form->addFields( [ new TLabel('NF-e'), $detail_numero ],
  152. [ new TLabel('Série'), $detail_serie ] );
  153. $row->layout = ['col-sm-8', 'col-sm-4' ];
  154. $row = $this->form->addFields( [ new TLabel('Total de volumes'), $detail_total_volumes ],
  155. [ new TLabel('Peso total'), $detail_total_peso ],
  156. [ new TLabel('Valor da nota'), $detail_vlr_nota_fiscal ] );
  157. $row->layout = ['col-sm-4', 'col-sm-4','col-sm-4' ];
  158. $row = $this->form->addFields( [ new TLabel('Especie embalagem'), $detail_especie_embalagem ],
  159. [ new TLabel('Grupo natureza'), $detail_grupo_natureza ] );
  160. $row->layout = ['col-sm-6', 'col-sm-6' ];
  161. $add = TButton::create('add', [$this, 'onSaveDetail'], 'Register', 'fa:save');
  162. $this->form->addFields( [], [$add] )->style = 'background: whitesmoke; padding: 5px; margin: 1px;';
  163. $this->detail_list = new BootstrapDatagridWrapper(new TQuickGrid);
  164. $this->detail_list->style = "min-width: 700px; width:100%;margin-bottom: 10px";
  165. $this->detail_list->setId('ordem_coleta_list');
  166. // items
  167. $this->detail_list->addQuickColumn('NF-e', 'numero', 'left', 100);
  168. $this->detail_list->addQuickColumn('Série', 'serie', 'left', 100);
  169. $this->detail_list->addQuickColumn('Volumes', 'total_volumes', 'left', 100);
  170. $this->detail_list->addQuickColumn('Peso', 'total_peso', 'left', 100);
  171. $this->detail_list->addQuickColumn('Valor', 'vlr_nota_fiscal', 'left', 100);
  172. $this->detail_list->addQuickColumn('Embalagem', 'especie_embalagem', 'left', 100);
  173. $this->detail_list->addQuickColumn('Natureza', 'grupo_natureza', 'left', 100);
  174. // detail actions
  175. $this->detail_list->addQuickAction( 'Edit', new TDataGridAction([$this, 'onEditDetail']), 'id', 'fa:edit blue');
  176. $this->detail_list->addQuickAction( 'Delete', new TDataGridAction([$this, 'onDeleteDetail']), 'id', 'fa:trash red');
  177. $this->detail_list->createModel();
  178. $panel = new TPanelGroup;
  179. $panel->add($this->detail_list);
  180. $panel->getBody()->style = 'overflow-x:auto';
  181. $this->form->addContent( [$panel] );
  182. $btn = $this->form->addAction( _t('Save'), new TAction([$this, 'onSave']), 'fa:save');
  183. $btn->class = 'btn btn-sm btn-primary';
  184. $this->form->addAction(('Nova') , new TAction([$this, 'onClear']), 'fa:eraser red');
  185. $this->form->addAction( _t('Back') , new TAction(array('lista_de_odem_coleta','onReload')), 'fa:arrow-circle-o-left blue' );
  186. $this->form->addAction(('Imprimir'), new TAction([$this, 'onGenerate']), 'fa:eraser red');
  187. // create the page container
  188. $container = new TVBox;
  189. $container->style = 'width: 90%';
  190. $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  191. $container->add($this->form);
  192. parent::add($container);
  193. }
  194. /**
  195. * Clear form
  196. * @param $param URL parameters
  197. */
  198. public function onClear($param)
  199. {
  200. $this->form->clear(TRUE);
  201. TSession::setValue(__CLASS__.'_items', array());
  202. $this->onReload( $param );
  203. }
  204. /**
  205. * Busca os dados da loja
  206. */
  207. static function buscaDadosLoja( $params )
  208. {
  209. if( !empty($params['loja_id']) )
  210. {
  211. try
  212. {
  213. TTransaction::open('banco');
  214. // MODEL
  215. $loja = new loja($params['loja_id']);
  216. $campos_model = new StdClass;
  217. $campos_model->cnpj_loja = $loja->cnpj; // campo do form = model->campo na model
  218. $campos_model->rsocial_loja = $loja->razao_social;
  219. $campos_model->uf_loja = $loja->uf;
  220. $campos_model->cidade_loja = $loja->cidade;
  221. $campos_model->cep_loja = $loja->cep;
  222. $campos_model->endereco_loja= $loja->endereco;
  223. $campos_model->numero_loja = $loja->numero;
  224. $campos_model->bairro_loja = $loja->bairro;
  225. $campos_model->contato_loja = $loja->contato;
  226. $campos_model->telefone_loja= $loja->telefone;
  227. TForm::sendData('form_ordem_coleta', $campos_model);
  228. TTransaction::close();
  229. }
  230. catch (Exception $e) // in case of exception
  231. {
  232. new TMessage('error', $e->getMessage());
  233. TTransaction::rollback();
  234. }
  235. }
  236. }
  237. /**
  238. * Busca os dados do destinatário
  239. */
  240. static function buscaDadosDestinatario( $params )
  241. {
  242. if( !empty($params['loja_id']) )
  243. {
  244. try
  245. {
  246. TTransaction::open('banco');
  247. // MODEL
  248. $loja = new destinatario($params['destinatario_id']);
  249. $campos_model = new StdClass;
  250. $campos_model->cnpj_destinatario = $loja->cnpj_cpf; // campo do form = model->campo na model
  251. $campos_model->destinatario_nome = $loja->nome_rzsocizl;
  252. $campos_model->uf_destino = $loja->uf;
  253. $campos_model->municipio_destinatario = $loja->cidade;
  254. $campos_model->cep_destinatario = $loja->cep;
  255. $campos_model->endereco_destinatario = $loja->endereco;
  256. $campos_model->numero_destinatario = $loja->numero;
  257. $campos_model->bairro_destinatario = $loja->bairro;
  258. $campos_model->contato_destinatario = $loja->contato;
  259. $campos_model->telefone_destinatario = $loja->telefone;
  260. TForm::sendData('form_ordem_coleta', $campos_model);
  261. TTransaction::close();
  262. }
  263. catch (Exception $e) // in case of exception
  264. {
  265. new TMessage('error', $e->getMessage());
  266. TTransaction::rollback();
  267. }
  268. }
  269. }
  270. //Impressão de Ordem de coleta
  271. public function onGenerate($param)
  272. {
  273. //Pega os dados do formulário
  274. $data = $this->form->getData();
  275. $this->form->setData($data);
  276. //Vai no modelo de relatório - se tive que mudar coloca o nome aqui
  277. $designer = new TPDFDesigner;
  278. $designer->fromXml('app/reports/ordem_de_coleta.pdf.xml');
  279. $designer->generate();
  280. //Fonte das letras
  281. $designer->SetFont('Arial','B',12);
  282. //passa para o formulário todos os campos
  283. $designer->writeAtAnchor('id' ,$data->id);
  284. $designer->writeAtAnchor('id2',$data->id); //Repete para a segunda parte
  285. $designer->writeAtAnchor('rsocial_loja',utf8_decode($data->rsocial_loja));
  286. $designer->save('app/output/ordem_de_coleta.pdf');
  287. parent::openFile('app/output/ordem_de_coleta.pdf');
  288. }
  289. /**
  290. * Save an item from form to session list
  291. * @param $param URL parameters
  292. */
  293. public function onSaveDetail( $param )
  294. {
  295. try
  296. {
  297. TTransaction::open('banco');
  298. $data = $this->form->getData();
  299. /** validation sample
  300. if (empty($data->fieldX))
  301. {
  302. throw new Exception('The field fieldX is required');
  303. }
  304. **/
  305. $items = TSession::getValue(__CLASS__.'_items');
  306. $key = empty($data->detail_id) ? 'X'.mt_rand(1000000000, 1999999999) : $data->detail_id;
  307. $items[ $key ] = array();
  308. $items[ $key ]['id'] = $key;
  309. $items[ $key ]['numero'] = $data->detail_numero;
  310. $items[ $key ]['serie'] = $data->detail_serie;
  311. $items[ $key ]['total_volumes'] = $data->detail_total_volumes;
  312. $items[ $key ]['total_peso'] = $data->detail_total_peso;
  313. $items[ $key ]['vlr_nota_fiscal'] = $data->detail_vlr_nota_fiscal;
  314. $items[ $key ]['especie_embalagem'] = $data->detail_especie_embalagem;
  315. $items[ $key ]['grupo_natureza'] = $data->detail_grupo_natureza;
  316. TSession::setValue(__CLASS__.'_items', $items);
  317. // clear detail form fields
  318. $data->detail_id = '';
  319. $data->detail_numero = '';
  320. $data->detail_serie = '';
  321. $data->detail_total_volumes = '';
  322. $data->detail_total_peso = '';
  323. $data->detail_vlr_nota_fiscal = '';
  324. $data->detail_especie_embalagem = '';
  325. $data->detail_grupo_natureza = '';
  326. TTransaction::close();
  327. $this->form->setData($data);
  328. $this->onReload( $param ); // reload the items
  329. }
  330. catch (Exception $e)
  331. {
  332. $this->form->setData( $this->form->getData());
  333. new TMessage('error', $e->getMessage());
  334. }
  335. }
  336. /**
  337. * Load an item from session list to detail form
  338. * @param $param URL parameters
  339. */
  340. public static function onEditDetail( $param )
  341. {
  342. // read session items
  343. $items = TSession::getValue(__CLASS__.'_items');
  344. // get the session item
  345. $item = $items[ $param['key'] ];
  346. $data = new stdClass;
  347. $data->detail_id = $item['id'];
  348. $data->detail_numero = $item['numero'];
  349. $data->detail_serie = $item['serie'];
  350. $data->detail_total_volumes = $item['total_volumes'];
  351. $data->detail_total_peso = $item['total_peso'];
  352. $data->detail_vlr_nota_fiscal = $item['vlr_nota_fiscal'];
  353. $data->detail_especie_embalagem = $item['especie_embalagem'];
  354. $data->detail_grupo_natureza = $item['grupo_natureza'];
  355. // fill detail fields
  356. TForm::sendData( 'form_ordem_coleta', $data );
  357. }
  358. /**
  359. * Delete an item from session list
  360. * @param $param URL parameters
  361. */
  362. public static function onDeleteDetail( $param )
  363. {
  364. // reset items
  365. $data = new stdClass;
  366. $data->detail_numero = '';
  367. $data->detail_serie = '';
  368. $data->detail_total_volumes = '';
  369. $data->detail_total_peso = '';
  370. $data->detail_vlr_nota_fiscal = '';
  371. $data->detail_especie_embalagem = '';
  372. $data->detail_grupo_natureza = '';
  373. // clear form data
  374. TForm::sendData('form_ordem_coleta', $data );
  375. // read session items
  376. $items = TSession::getValue(__CLASS__.'_items');
  377. // get detail id
  378. $detail_id = $param['key'];
  379. // delete the item from session
  380. unset($items[ $detail_id ] );
  381. // rewrite session items
  382. TSession::setValue(__CLASS__.'_items', $items);
  383. // delete item from screen
  384. TScript::create("ttable_remove_row_by_id('ordem_coleta_list', '{$detail_id}')");
  385. }
  386. /**
  387. * Load the items list from session
  388. * @param $param URL parameters
  389. */
  390. public function onReload($param)
  391. {
  392. // read session items
  393. $items = TSession::getValue(__CLASS__.'_items');
  394. $this->detail_list->clear(); // clear detail list
  395. if ($items)
  396. {
  397. foreach ($items as $list_item)
  398. {
  399. $item = (object) $list_item;
  400. $row = $this->detail_list->addItem( $item );
  401. $row->id = $list_item['id'];
  402. }
  403. }
  404. $this->loaded = TRUE;
  405. }
  406. /**
  407. * Load Master/Detail data from database to form/session
  408. */
  409. public function onEdit($param)
  410. {
  411. try
  412. {
  413. TTransaction::open('banco');
  414. if (isset($param['key']))
  415. {
  416. $key = $param['key'];
  417. $object = new ordem_coleta($key);
  418. $items = nota_fiscal_coleta::where('ordem_coleta_id', '=', $key)->load();
  419. $session_items = array();
  420. foreach( $items as $item )
  421. {
  422. $item_key = $item->id;
  423. $session_items[$item_key] = $item->toArray();
  424. $session_items[$item_key]['id'] = $item->id;
  425. $session_items[$item_key]['numero'] = $item->numero;
  426. $session_items[$item_key]['serie'] = $item->serie;
  427. $session_items[$item_key]['total_volumes'] = $item->total_volumes;
  428. $session_items[$item_key]['total_peso'] = $item->total_peso;
  429. $session_items[$item_key]['vlr_nota_fiscal'] = $item->vlr_nota_fiscal;
  430. $session_items[$item_key]['especie_embalagem'] = $item->especie_embalagem;
  431. $session_items[$item_key]['grupo_natureza'] = $item->grupo_natureza;
  432. }
  433. TSession::setValue(__CLASS__.'_items', $session_items);
  434. $this->form->setData($object); // fill the form with the active record data
  435. $this->onReload( $param ); // reload items list
  436. TTransaction::close(); // close transaction
  437. }
  438. else
  439. {
  440. $this->form->clear(TRUE);
  441. TSession::setValue(__CLASS__.'_items', null);
  442. $this->onReload( $param );
  443. }
  444. }
  445. catch (Exception $e) // in case of exception
  446. {
  447. new TMessage('error', $e->getMessage());
  448. TTransaction::rollback();
  449. }
  450. }
  451. /**
  452. * Save the Master/Detail data from form/session to database
  453. */
  454. public function onSave()
  455. {
  456. try
  457. {
  458. // open a transaction with database
  459. TTransaction::open('banco');
  460. $data = $this->form->getData();
  461. $master = new ordem_coleta;
  462. $master->fromArray( (array) $data);
  463. $this->form->validate(); // form validation
  464. $master->store(); // save master object
  465. // delete details
  466. $old_items = nota_fiscal_coleta::where('ordem_coleta_id', '=', $master->id)->load();
  467. $keep_items = array();
  468. // get session items
  469. $items = TSession::getValue(__CLASS__.'_items');
  470. if( $items )
  471. {
  472. foreach( $items as $item )
  473. {
  474. if (substr($item['id'],0,1) == 'X' ) // new record
  475. {
  476. $detail = new nota_fiscal_coleta;
  477. }
  478. else
  479. {
  480. //$detail = nota_fiscal_coleta::find($item['id']);
  481. $detail = new nota_fiscal_coleta;
  482. $detail->id = $item['id'];
  483. }
  484. $detail->numero = $item['numero'];
  485. $detail->serie = $item['serie'];
  486. $detail->total_volumes = $item['total_volumes'];
  487. $detail->total_peso = $item['total_peso'];
  488. $detail->vlr_nota_fiscal = $item['vlr_nota_fiscal'];
  489. $detail->especie_embalagem = $item['especie_embalagem'];
  490. $detail->grupo_natureza = $item['grupo_natureza'];
  491. $detail->ordem_coleta_id = $master->id;
  492. $detail->store();
  493. $keep_items[] = $detail->id;
  494. }
  495. }
  496. if ($old_items)
  497. {
  498. foreach ($old_items as $old_item)
  499. {
  500. if (!in_array( $old_item->id, $keep_items))
  501. {
  502. $old_item->delete();
  503. }
  504. }
  505. }
  506. TTransaction::close(); // close the transaction
  507. // reload form and session items
  508. $this->onEdit(array('key'=>$master->id));
  509. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
  510. }
  511. catch (Exception $e) // in case of exception
  512. {
  513. new TMessage('error', $e->getMessage());
  514. $this->form->setData( $this->form->getData() ); // keep form data
  515. TTransaction::rollback();
  516. }
  517. }
  518. /**
  519. * Show the page
  520. */
  521. public function show()
  522. {
  523. // check if the datagrid is already loaded
  524. if (!$this->loaded AND (!isset($_GET['method']) OR $_GET['method'] !== 'onReload') )
  525. {
  526. $this->onReload( func_get_arg(0) );
  527. }
  528. parent::show();
  529. }
  530. }

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

Na função onSave, antes de chamar a store(), faça:
 
  1. <?php
  2. $master->status = 'Lançado';
  3. ?>
RF

Boa noite....

Muito obrigado, funcionou perfeitamente.