Erro: Classe Item não encontrada em Adianti\Widget\Form\TForm:: Criei um relatório de digitação de coletas, tenho uma aba onde uma grid lista as diversas NF-es que serão coletadas. Porém não consigo gravar os dados, segue a tela com o erro (Classe Item não encontrada em Adianti\Widget\Form\TForm::getData) e o código do formulário. ...
WF
Erro: Classe Item não encontrada em Adianti\Widget\Form\TForm::  
Fechado
Criei um relatório de digitação de coletas, tenho uma aba onde uma grid lista as diversas NF-es que serão coletadas. Porém não consigo gravar os dados, segue a tela com o erro (Classe Item não encontrada em Adianti\Widget\Form\TForm::getData) e o código do formulário.

 
  1. <?php
  2. class ColetaForm extends TPage
  3. {
  4. private $form; // form
  5. private $frete_total;
  6. private $detail_list;
  7. function __construct()
  8. {
  9. parent::__construct();
  10. // creates the form
  11. $this->form = new TForm('form_coleta');
  12. $this->form->class = 'tform';
  13. // cria as tabelas
  14. $table_data = new TTable;
  15. $table_destino = new TTable;
  16. $table_carga = new TTable;
  17. $table_frete = new TTable;
  18. $table_diversos = new TTable;
  19. $table_nfe = new TTable;
  20. //Tamanho do notebook
  21. $notebook = new TNotebook(500, 250);
  22. // adiciona as abas do notebook
  23. $this->form->add($notebook);
  24. // Adiciona o nome das abas do notebook
  25. $notebook->appendPage('Solicitante', $table_data);
  26. $notebook->appendPage('Destino', $table_destino);
  27. $notebook->appendPage('Carga',$table_carga);
  28. $notebook->appendPage('NF-es',$table_nfe);
  29. $notebook->appendPage('Frete', $table_frete);
  30. $notebook->appendPage('Diversos',$table_diversos);
  31. // campos do formulário
  32. 2425 = new TEntry('id');
  33. $customer_cnpj = new TSeekButton('customer_cnpj');
  34. $status = new TEntry('status');
  35. $observacoes = new TText('observacoes');
  36. $solicitante = new TEntry('solicitante');
  37. $address = new TEntry('address');
  38. $numero = new TEntry('numero');
  39. $complemento = new TEntry('complemento');
  40. $bairro = new TEntry('bairro');
  41. $cep = new TEntry('cep');
  42. $uf = new TCombo('uf');
  43. $municipio = new TEntry('municipio');
  44. $contato = new TEntry('contato');
  45. $telefone = new TEntry('telefone');
  46. $email = new TEntry('email');
  47. $empresa_col = new TEntry('empresa_col');
  48. $customercol_cnpj = new TSeekButton('customercol_cnpj');
  49. $address_col = new TEntry('address_col');
  50. $numero_col = new TEntry('numero_col');
  51. $complemento_col = new TEntry('complemento_col');
  52. $bairro_col = new TEntry('bairro_col');
  53. $cep_col = new TEntry('cep_col');
  54. $uf_col = new TCombo('uf_col');
  55. $municipio_col = new TEntry('municipio_col');
  56. $produto_id = new TDBCombo('produto_id' , 'samples', 'produto' , 'id', 'name');//busca o produto
  57. $grnatureza_id = new TDBCombo('grnatureza_id', 'samples', 'Grunatureza', 'id', 'name');//busca a natureza
  58. $embalagem_id = new TDBCombo('embalagem_id' , 'samples', 'Embalagem' , 'id', 'name');//busca a embalagem
  59. $distancia = new TEntry('distancia');
  60. $prod_quimico = new TCombo('prod_quimico');
  61. $onu = new TEntry('onu');
  62. //dados da nfe
  63. $nfe = new TEntry('nfe');
  64. $serie = new TEntry('serie');
  65. $data_nfe = new TDate('data_nfe');
  66. $volume = new TEntry('volume');
  67. $peso = new TEntry('peso');
  68. $comprimento = new TEntry('comprimento');
  69. $largura = new TEntry('largura');
  70. $altura = new TEntry('altura');
  71. $peso_cubico = new TEntry('peso_cubico');
  72. $peso_cubado = new TEntry('peso_cubado');
  73. $valor_nf = new TEntry('valor_nf');
  74. //frete a cobrar
  75. $comentarios = new TText('comentarios');
  76. $fretepeso = new TEntry('fretepeso');
  77. $fretevalor = new TEntry('fretevalor');
  78. $coleta = new TEntry('coleta');
  79. $entrega = new TEntry('entrega');
  80. $data_coleta = new TDate('data_coleta');
  81. $outros = new TEntry('outros');
  82. $cat = new TEntry('cat');
  83. $sec_cat = new TEntry('sec_cat');
  84. $gris = new TEntry('gris');
  85. $txdespacho = new TEntry('txdespacho');
  86. $pedagio = new TEntry('pedagio');
  87. $perc_icms = new TEntry('perc_icms');
  88. $base_icms = new TEntry('base_icms');
  89. $valor_icms = new TEntry('valor_icms');
  90. //OBS: Diferente para validar
  91. $this->frete_total= new TEntry('frete_total');
  92. $alteracao = new TEntry('alteracao');
  93. // Tamanho dos campos e desabilitação para editar
  94. 2425 ->setSize(150);
  95. 2425 ->setEditable(false);
  96. $status ->setSize(150);
  97. $data_coleta ->setSize(133);
  98. //Dados do Solicitante
  99. $solicitante ->setSize(220);
  100. $solicitante ->style = "text-transform: uppercase";
  101. $customer_cnpj ->setSize(130);
  102. $address ->setSize(220);
  103. $address ->style = "text-transform: uppercase";
  104. $municipio ->setSize(220);
  105. $municipio ->style = "text-transform: uppercase";
  106. $numero ->setSize(75);
  107. $complemento ->setSize(220);
  108. $complemento ->style = "text-transform: uppercase";
  109. $bairro ->setSize(173);
  110. $bairro ->style = "text-transform: uppercase";
  111. $cep ->setSize(122);
  112. $uf ->setSize(50);
  113. $uf ->style = "text-transform: uppercase";
  114. $contato ->setSize(220);
  115. $contato ->style = "text-transform: uppercase";
  116. $telefone ->setSize(155);
  117. $email ->setSize(220);
  118. $email ->style = "text-transform: lowercase";
  119. //Dados do destino
  120. $empresa_col ->setSize(220);
  121. $empresa_col ->style = "text-transform: uppercase";
  122. $customercol_cnpj ->setSize(130);
  123. $address_col ->setSize(220);
  124. $address_col ->style = "text-transform: uppercase";
  125. $municipio_col ->setSize(220);
  126. $municipio_col ->style = "text-transform: uppercase";
  127. $numero_col ->setSize(75);
  128. $complemento_col ->setSize(220);
  129. $complemento_col ->style = "text-transform: uppercase";
  130. $bairro_col ->setSize(173);
  131. $bairro_col ->style = "text-transform: uppercase";
  132. $cep_col ->setSize(122);
  133. $uf_col ->setSize(50);
  134. $uf_col ->style = "text-transform: uppercase";
  135. //Dados do produto
  136. $produto_id ->setSize(350);
  137. $grnatureza_id ->setSize(350);
  138. $embalagem_id ->setSize(220);
  139. $distancia ->setSize(90);
  140. $prod_quimico ->setSize(144);
  141. $onu ->setSize(145);
  142. $observacoes ->setSize(350);
  143. //Dados da NF-e
  144. $nfe ->setSize(100);//colocar
  145. $serie ->setSize(44); //colocar
  146. $data_nfe ->setSize(124);//colocar
  147. $volume ->setSize(144);
  148. $peso ->setSize(146);
  149. $peso_cubico ->setSize(144);
  150. $peso_cubado ->setSize(146);
  151. $comprimento ->setSize(44);
  152. $largura ->setSize(44);
  153. $altura ->setSize(44);
  154. $valor_nf ->setSize(146);
  155. //Dados do frete
  156. $fretepeso ->setSize(150);
  157. $fretevalor ->setSize(150);
  158. $coleta ->setSize(150);
  159. $entrega ->setSize(150);
  160. $txdespacho ->setSize(150);
  161. $outros ->setSize(150);
  162. $cat ->setSize(150);
  163. $sec_cat ->setSize(150);
  164. $gris ->setSize(150);
  165. $pedagio ->setSize(150);
  166. $perc_icms ->setSize(150);
  167. $base_icms ->setSize(150);
  168. $valor_icms ->setSize(150);
  169. //OBS: Diferente para validar
  170. $this->frete_total ->setSize(150);
  171. //Demais informações
  172. $alteracao ->setSize(150);
  173. $comentarios ->setSize(350);
  174. //Lista de UFs
  175. $itemUf = array();
  176. $itemUf['AC'] = 'AC';
  177. $itemUf['AL'] = 'AL';
  178. $itemUf['AM'] = 'AM';
  179. $itemUf['AP'] = 'AP';
  180. $itemUf['BA'] = 'BA';
  181. $itemUf['CE'] = 'CE';
  182. $itemUf['DF'] = 'DF';
  183. $itemUf['ES'] = 'ES';
  184. $itemUf['EX'] = 'EX';
  185. $itemUf['GO'] = 'GO';
  186. $itemUf['MA'] = 'MA';
  187. $itemUf['MG'] = 'MG';
  188. $itemUf['MS'] = 'MS';
  189. $itemUf['MT'] = 'MT';
  190. $itemUf['PA'] = 'PA';
  191. $itemUf['PB'] = 'PB';
  192. $itemUf['PE'] = 'PE';
  193. $itemUf['PI'] = 'PI';
  194. $itemUf['PR'] = 'PR';
  195. $itemUf['RJ'] = 'RJ';
  196. $itemUf['RN'] = 'RN';
  197. $itemUf['RO'] = 'RO';
  198. $itemUf['RR'] = 'RR';
  199. $itemUf['RS'] = 'RS';
  200. $itemUf['SC'] = 'SC';
  201. $itemUf['SE'] = 'SE';
  202. $itemUf['SP'] = 'SP';
  203. $itemUf['TO'] = 'TO';
  204. $uf ->addItems($itemUf);//Estado do solicitante
  205. $uf_col->addItems($itemUf);//Estado do destinatário
  206. //Mascaras de entrada, campos obrigatórios, validações
  207. $fretepeso ->setNumericMask(2, ',', '.',true);
  208. $fretevalor ->setNumericMask(2, ',', '.',true);
  209. $coleta ->setNumericMask(2, ',', '.',true);
  210. $entrega ->setNumericMask(2, ',', '.',true);
  211. $txdespacho ->setNumericMask(2, ',', '.',true);
  212. $outros ->setNumericMask(2, ',', '.',true);
  213. $cat ->setNumericMask(2, ',', '.',true);
  214. $sec_cat ->setNumericMask(2, ',', '.',true);
  215. $gris ->setNumericMask(2, ',', '.',true);
  216. $pedagio ->setNumericMask(2, ',', '.',true);
  217. $valor_icms ->setNumericMask(2, ',', '.',true);
  218. //Obs: Diferente para validar
  219. $this->frete_total ->setNumericMask(2, ',', '.',true);
  220. $valor_nf ->setNumericMask(2, ',', '.',true);
  221. $base_icms ->setNumericMask(2, ',', '.',true);
  222. $perc_icms ->setNumericMask(2, ',', '.',true);
  223. $peso_cubico ->setNumericMask(2, ',','.' ,true);
  224. $peso_cubado ->setNumericMask(2, ',','.' ,true);
  225. $comprimento ->setNumericMask(2, ',','.' ,true);
  226. $largura ->setNumericMask(2, ',','.' ,true);
  227. $altura ->setNumericMask(2, ',','.' ,true);
  228. $status ->setValue('Lançado');
  229. $data_coleta ->setMask('dd/mm/yyyy');
  230. $cep ->setMask('99999-999');
  231. $telefone ->setMask('(99)9999-9999');
  232. $cep_col ->setMask('99999-999');
  233. //Validação dos campos
  234. $email ->addValidation('E-mail',new TEmailValidator);
  235. $data_coleta ->addValidation('Data de solicitação', new TRequiredValidator);
  236. $solicitante ->addValidation('R.Z Social', new TRequiredValidator);
  237. $address ->addValidation('Endereço', new TRequiredValidator);
  238. $municipio ->addValidation('Cidade', new TRequiredValidator);
  239. $numero ->addValidation('Número', new TRequiredValidator);
  240. $bairro ->addValidation('Bairro', new TRequiredValidator);
  241. $cep ->addValidation('C.E.P', new TRequiredValidator);
  242. $uf ->addValidation('UF', new TRequiredValidator);
  243. $contato ->addValidation('Contato', new TRequiredValidator);
  244. $telefone ->addValidation('Telefone', new TRequiredValidator);
  245. $empresa_col ->addValidation('R.Z Social do Destinatário', new TRequiredValidator);
  246. $address_col ->addValidation('Endereço do Destinatário', new TRequiredValidator);
  247. $municipio_col ->addValidation('Cidade do Destinatário', new TRequiredValidator);
  248. $numero_col ->addValidation('Número do Destinatário', new TRequiredValidator);
  249. $bairro_col ->addValidation('Bairro do Destinatário', new TRequiredValidator);
  250. $cep_col ->addValidation('C.E.P do Destinatário', new TRequiredValidator);
  251. $uf_col ->addValidation('UF do Destinatário', new TRequiredValidator);
  252. $produto_id ->addValidation('Produto', new TRequiredValidator);
  253. $grnatureza_id ->addValidation('Grupo', new TRequiredValidator);
  254. $embalagem_id ->addValidation('Embalagem', new TRequiredValidator);
  255. $prod_quimico ->addValidation('Químico', new TRequiredValidator);
  256. $volume ->addValidation('Volume', new TRequiredValidator);
  257. $peso ->addValidation('Peso', new TRequiredValidator);
  258. $valor_nf ->addValidation('Valor da NF-e', new TRequiredValidator);
  259. //Ação dos campos ao perder o foco
  260. $altura ->setExitAction(new TAction(array($this, 'onCubagem' )));
  261. $peso_cubico ->setExitAction(new TAction(array($this, 'onPesocubado')));
  262. //Objeto para criar o campo de busca de solicitante e destinatário por cnpj ou rz social
  263. $obj = new SolicitanteCol; //
  264. $customer_cnpj->setAction(new TAction(array($obj, 'onReload')));
  265. $obj2 = new Destinatario; //
  266. $customercol_cnpj->setAction(new TAction(array($obj2, 'onReload')));
  267. //Botão da Grid - Aba NF-e
  268. $btn_inclui_nfe = new TButton('btn_inclui_nfe');
  269. $btn_inclui_nfe->setAction(new TAction(array($this, 'onIncluiNFe')), 'Incluir');
  270. $btn_inclui_nfe->setImage('fa:save');
  271. //Itens do químico
  272. $itemQ= array();
  273. $itemQ['Não'] = 'Não';
  274. $itemQ['Sim'] = 'Sim';
  275. $prod_quimico->setValue('Não');
  276. $prod_quimico->addItems($itemQ);
  277. //Valores padrões para os campos de calculo do frete, isso evita o erro da linha 79
  278. $fretepeso ->setValue('0');
  279. $fretevalor ->setValue('0');
  280. $coleta ->setValue('0');
  281. $entrega ->setValue('0');
  282. $txdespacho ->setValue('0');
  283. $outros ->setValue('0');
  284. $cat ->setValue('0');
  285. $sec_cat ->setValue('0');
  286. $gris ->setValue('0');
  287. $pedagio ->setValue('0');
  288. $valor_icms ->setValue('0');
  289. $this->frete_total->setValue('0');
  290. $valor_nf ->setValue('0');
  291. $base_icms ->setValue('0');
  292. $comprimento ->setValue('0');
  293. $largura ->setValue('0');
  294. $altura ->setValue('0');
  295. $peso_cubico ->setValue('0');
  296. $peso_cubado ->setValue('0');
  297. $perc_icms ->setValue('12');
  298. $status ->setValue('Lançado');
  299. $alteracao ->setValue(date('d-m-Y / H:i'));
  300. $alteracao ->setEditable(FALSE);
  301. $base_icms ->setEditable(FALSE);
  302. $valor_icms ->setEditable(FALSE);
  303. $comentarios ->setEditable(FALSE);
  304. $status ->setEditable(FALSE);
  305. // Campos da Aba Solicitante
  306. $table_data->addRowSet(new TLabel(''));
  307. $table_data->addRowSet(new TLabel('Número:') ,array(2425, new TLabel('Data de solicitação :'),$data_coleta));
  308. $table_data->addRowSet(new TLabel('CNPJ:') ,array($customer_cnpj,new TLabel('Rz Social:'),$solicitante));
  309. $table_data->addRowSet(new TLabel('Endereço:') ,array($address, new TLabel('Número do endereço:'),$numero));
  310. $table_data->addRowSet(new TLabel('Complemento:'),array($complemento));
  311. $table_data->addRowSet(new TLabel('Cidade:') ,array($municipio, new TLabel('Bairro:'),$bairro));
  312. $table_data->addRowSet(new TLabel('Estado:') ,array($uf, new TLabel('CEP:'),$cep));
  313. $table_data->addRowSet(new TLabel('Contato:') ,array($contato, new TLabel('Telefone :'),$telefone));
  314. $table_data->addRowSet(new TLabel('E-mail:') ,$email);
  315. // Campos da Aba Destino
  316. $table_destino->addRowSet(new TLabel(''));
  317. $table_destino->addRowSet(new TLabel('CNPJ:') ,array($customercol_cnpj, new TLabel('Rz Social:'),$empresa_col));
  318. $table_destino->addRowSet(new TLabel('Endereço:') ,array($address_col, new TLabel('Número do endereço:'),$numero_col));
  319. $table_destino->addRowSet(new TLabel('Complemento:'),array($complemento_col));
  320. $table_destino->addRowSet(new TLabel('Cidade:') ,array($municipio_col, new TLabel('Bairro:'),$bairro_col));
  321. $table_destino->addRowSet(new TLabel('Estado:') ,array($uf_col, new TLabel('CEP:'),$cep_col));
  322. // Campos da Aba carga
  323. $table_carga->addRowSet(new TLabel(''));
  324. $table_carga->addRowSet(new TLabel('Produto:') ,array($produto_id));
  325. $table_carga->addRowSet(new TLabel('Grupo:') ,array($grnatureza_id) );
  326. $table_carga->addRowSet(new TLabel('Embalagem:'),array($embalagem_id, new TLabel('KM:'),$distancia));
  327. $table_carga->addRowSet(new TLabel('Químico?') ,array($prod_quimico, new TLabel('O.n.U :'),$onu));
  328. $table_carga->addRowSet(new TLabel('A carga é:'),array($observacoes));
  329. // Campos da NF-e
  330. $table_nfe->addRowSet(new TLabel(''));
  331. $table_nfe->addRowSet(new TLabel('NF-e:') ,array($nfe ,new TLabel('Série:'),$serie, new TLabel('Data.:'),$data_nfe));
  332. $table_nfe->addRowSet(new TLabel('Volume:') ,array($volume ,new TLabel('Peso:') ,$peso));
  333. $table_nfe->addRowSet(new TLabel('Comp.:') ,array($comprimento ,new TLabel('Lar.:') , $largura ,new TLabel('Alt.:'), $altura, new TLabel('Valor:'),$valor_nf));
  334. $table_nfe->addRowSet(new TLabel('Cubagem:') ,array($peso_cubico,new TLabel('Peso cubado.:') ,$peso_cubado));
  335. $table_nfe->addRowSet(new TLabel('') ,array($btn_inclui_nfe));
  336. //Cria a Grid da NF-e
  337. $this->detail_list = new TQuickGrid;
  338. $this->detail_list->setHeight( 175 );
  339. $this->detail_list->makeScrollable();
  340. $this->detail_list->disableDefaultClick();
  341. $this->detail_list->addQuickColumn('', 'edit', 'left', 50);
  342. $this->detail_list->addQuickColumn('', 'delete', 'left', 50);
  343. //Itens da Grid da NF-e
  344. $this->detail_list->addQuickColumn('NF-e', 'nfe', 'left', 100);
  345. $this->detail_list->addQuickColumn('Série', 'serie', 'left', 30);
  346. $this->detail_list->addQuickColumn('Valor NF-e', 'valor_nf', 'left', 100);
  347. $this->detail_list->addQuickColumn('Data', 'data_nfe', 'left', 100);
  348. $this->detail_list->addQuickColumn('Volume', 'volume', 'left', 50);
  349. $this->detail_list->addQuickColumn('Peso', 'peso', 'left', 50);
  350. $this->detail_list->addQuickColumn('C', 'comprimento', 'left', 100);
  351. $this->detail_list->addQuickColumn('L', 'largura', 'left', 100);
  352. $this->detail_list->addQuickColumn('A', 'altura', 'left', 100);
  353. $this->detail_list->addQuickColumn('Metro 3', 'metro_cubico', 'left', 50);
  354. $this->detail_list->addQuickColumn('Peso 3', 'peso_cubado', 'left', 100);
  355. $this->detail_list->createModel();
  356. //Adiciona a Grid na Aba NF-e
  357. $linha=$table_nfe->addRowSet(new TLabel(''));
  358. $linha->addCell($this->detail_list);
  359. //Campos da Aba Frete
  360. $table_frete->addRowSet(new TLabel(''));
  361. $table_frete->addRowSet(new TLabel('Frete Peso:'),array($fretepeso),new TLabel('Frete Valor:') ,array($fretevalor)); //new TLabel('Frete Valor :') ,$fretevalor));
  362. $table_frete->addRowSet(new TLabel('Entrega:') ,array($entrega) ,new TLabel('T.Despacho:') ,array($txdespacho)); //);
  363. $table_frete->addRowSet(new TLabel('Coleta:') ,array($coleta) ,new TLabel('Outra taxa:') ,array($outros)); //);
  364. $table_frete->addRowSet(new TLabel('C.A.T:') ,array($cat) ,new TLabel('Vlr. Pedágio:'),array($pedagio)); //);
  365. $table_frete->addRowSet(new TLabel('GRIS:') ,array($gris) ,new TLabel('SEC / CAT:') ,array($sec_cat)); //);
  366. $table_frete->addRowSet(new TLabel(''));
  367. $table_frete->addRowSet(new TLabel('ICMS (%):') ,array($perc_icms),new TLabel('ICMS (R$):'),array($valor_icms));
  368. $table_frete->addRowSet(new TLabel('Base:') ,array($base_icms),new TLabel('Total:'),array($this->frete_total));
  369. $table_frete->addRowSet(new TLabel(''));
  370. // Campos da Aba Diversos
  371. $table_diversos->addRowSet(new TLabel(''));
  372. $table_diversos->addRowSet(new TLabel('Status:') ,array($status));
  373. $table_diversos->addRowSet(new TLabel('Comentário:') ,array($comentarios));
  374. $table_diversos->addRowSet(new TLabel(''));
  375. $table_diversos->addRowSet(new TLabel('Alterado:') ,array($alteracao));
  376. //criação das ações dos botões (action button)
  377. $button1=new TButton('action1');
  378. $button1->setAction(new TAction(array($this, 'onSave')), 'Salvar');
  379. $button1->setImage('fa:floppy-o');
  380. // create an action button (go to list)
  381. $button2=new TButton('list');
  382. $button2->setAction(new TAction(array('ConsultaDeColeta', 'onReload')), 'Consulta de coleta');
  383. $button2->setImage('fa:table blue');
  384. // create an action button (go to list)
  385. $button3=new TButton('novo');
  386. $button3->setAction (new TAction(array($this, 'onClear')), _t('New'));//onEdit
  387. $button3->setImage('bs:plus-sign green');
  388. // Vai chamar a função para calcular o frete
  389. $button4=new TButton('calcFrete');
  390. $button4->setAction (new TAction(array($this, 'onFrete')), ('Calcula o Frete'));
  391. $button4->setImage('bs:plus-sign green');
  392. // define os campos que são gravados na model e a variável dos botões
  393. $this->form->setFields(array(2425, $status, $customer_cnpj,$solicitante,$observacoes,$address,$numero,$complemento,
  394. $bairro,$cep,$uf,$contato,
  395. $telefone,$email,$empresa_col,$customercol_cnpj,$address_col,$numero_col,$complemento_col,$bairro_col,$cep_col,
  396. $uf_col,$produto_id,$municipio_col,$municipio,
  397. $grnatureza_id,$embalagem_id,$distancia,$prod_quimico,$onu,$volume,$peso,$peso_cubico,$peso_cubado,$valor_nf,
  398. $comentarios,$fretepeso,$fretevalor,
  399. $coleta,$entrega,$txdespacho,$outros,$cat,$sec_cat,$gris,$pedagio,$perc_icms,$valor_icms,$this->frete_total,
  400. $data_coleta,$alteracao,$btn_inclui_nfe,
  401. $button1,$button2,$button3,$button4,$altura,$comprimento,$largura,$base_icms));
  402. // coloca os botões
  403. $subtable = new TTable;
  404. $row = $subtable->addRow();
  405. $row->addCell($button1);
  406. $row->addCell($button3);
  407. $row->addCell($button2);
  408. $row->addCell($button4);
  409. // Sub menu bonito
  410. $vbox = new TVBox;
  411. $vbox->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  412. $vbox->add($this->form);
  413. $vbox->style = 'width: 55%';
  414. //$vbox->add($this->datagrid); //pra mostra a grid
  415. $vbox->add($subtable);
  416. parent::add($vbox);
  417. }
  418. //*********************** Funções ******************************
  419. public function onIncluiNFe()
  420. {
  421. // obtém os dados do formulário
  422. $item = $this->form->getData('Item');
  423. // lê variável $list da seção
  424. $list = TSession::getValue('list');
  425. // acrescenta produto na variável $list
  426. $list[$item->id_produto]= $item;
  427. // grava variável $list de volta à seção
  428. TSession::setValue('list', $list);
  429. // recarrega a listagem
  430. $this->onReload();
  431. }
  432. public function onClear( $param ) // botão novo
  433. {
  434. $this->form->clear();//Limpa o formulário
  435. //Informações padrões a serem preenchidas no formulário
  436. $perc_icms = 12;
  437. $status = 'Lançado';
  438. $alteracao = date('d-m-Y / H:i');
  439. //Apresentação e tratamento do campos
  440. $obj = new StdClass;
  441. $obj->perc_icms = number_format($perc_icms , 2, ',', '.');
  442. $obj->status = $status;
  443. $obj->alteracao = $alteracao;
  444. TForm::sendData('form_coleta', $obj);
  445. }
  446. // Calculo da cubagem
  447. static function onCubagem($param)
  448. {
  449. $comprimento = str_replace(',','.', str_replace('.','', $param['comprimento']));
  450. $largura = str_replace(',','.', str_replace('.','', $param['largura']));
  451. $altura = str_replace(',','.', str_replace('.','', $param['altura']));
  452. $peso_cubico = $comprimento * $largura * $altura;
  453. $obj = new StdClass;
  454. $obj->peso_cubico = number_format($peso_cubico, 2, ',', '.');
  455. TForm::sendData('form_coleta', $obj);
  456. }
  457. // Calculo do peso cubado
  458. static function onPesocubado($param)
  459. {
  460. $peso_cubico = str_replace(',','.', str_replace('.','', $param['peso_cubico']));
  461. $peso_cubado = $peso_cubico * 300;
  462. $obj = new StdClass;
  463. $obj->peso_cubado = number_format($peso_cubado, 2, ',', '.');
  464. TForm::sendData('form_coleta', $obj);
  465. }
  466. // Calculo do valor do frete
  467. static function onFrete($param)
  468. {
  469. //Tratamento dos campos
  470. $fretepeso = str_replace(',','.', str_replace('.','', $param['fretepeso']));
  471. $fretevalor = str_replace(',','.', str_replace('.','', $param['fretevalor']));
  472. $coleta = str_replace(',','.', str_replace('.','', $param['coleta']));
  473. $entrega = str_replace(',','.', str_replace('.','', $param['entrega']));
  474. $txdespacho = str_replace(',','.', str_replace('.','', $param['txdespacho']));
  475. $outros = str_replace(',','.', str_replace('.','', $param['outros']));
  476. $cat = str_replace(',','.', str_replace('.','', $param['cat']));
  477. $sec_cat = str_replace(',','.', str_replace('.','', $param['sec_cat']));
  478. $gris = str_replace(',','.', str_replace('.','', $param['gris']));
  479. $pedagio = str_replace(',','.', str_replace('.','', $param['pedagio']));
  480. $perc_icms = str_replace(',','.', str_replace('.','', $param['perc_icms']));
  481. //Calculos
  482. if ($perc_icms==0)
  483. {
  484. new TMessage('danger','Digite a alíquota em ICMS (%).');
  485. }
  486. else
  487. {
  488. $base_icms = ($fretepeso + $fretevalor + $coleta + $entrega + $txdespacho +
  489. $outros + $cat + $sec_cat + $gris + $pedagio) ;
  490. $frete_total = $base_icms / ((100 - $perc_icms)/100);
  491. $valor_icms = $frete_total - $base_icms;
  492. //Apresentação e tratamento do campos
  493. $obj = new StdClass;
  494. $obj->base_icms = number_format($base_icms , 2, ',', '.');
  495. $obj->frete_total = number_format($frete_total, 2, ',', '.');
  496. $obj->valor_icms = number_format($valor_icms , 2, ',', '.');
  497. TForm::sendData('form_coleta', $obj);
  498. }
  499. }
  500. /**
  501. * Load object to form data
  502. * @param $param Request
  503. */
  504. public function onEdit( $param )
  505. {
  506. try
  507. {
  508. if (isset($param['key']))
  509. {
  510. $key = $param['key']; // get the parameter $key
  511. TTransaction::open('samples'); // open a transaction
  512. $object = new Coleta($key); // instantiates the Active Record
  513. $object->data_coleta = TDate::date2br($object->data_coleta);
  514. //Desabilita os campos do formulário
  515. if ($object->status=='Aprovado')
  516. {
  517. $this->frete_total->setEditable(FALSE);
  518. }
  519. $this->form->setData($object); // fill the form
  520. TTransaction::close(); // close the transaction
  521. }
  522. else
  523. {
  524. $this->form->clear();
  525. }
  526. }
  527. catch (Exception $e) // in case of exception
  528. {
  529. new TMessage('error', $e->getMessage()); // shows the exception error message
  530. TTransaction::rollback(); // undo all pending operations
  531. }
  532. }
  533. /**
  534. * method onSave()
  535. * Executed whenever the user clicks at the save button
  536. */
  537. function onSave()
  538. {
  539. try
  540. { //grava a data e hora da última alteração
  541. $alteracao = date('d-m-Y / H:i');
  542. $obj = new StdClass;
  543. $obj ->alteracao = $alteracao;
  544. TForm::sendData('form_coleta', $obj);
  545. TTransaction::open('samples'); // Abre a conexão com o banco
  546. $this->form->validate(); // validação dos dados
  547. $object = $this->form->getData('Coleta');//abre a tabela
  548. //Lê o Status do documento e só grava se for igual a lançado
  549. if ($object->status=='Lançado')
  550. {
  551. $object->data_coleta = TDate::date2us($object->data_coleta);//converte para formato US
  552. $object->store();//grava
  553. $object->data_coleta = TDate::date2br($object->data_coleta);
  554. $this->form->setData($object);//
  555. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
  556. }
  557. else
  558. {
  559. if ($object->status=='')//Correção do campo Status que vem vazio das consultas
  560. {
  561. $status = 'Lançado';
  562. $alteracao = date('d-m-Y / H:i');
  563. //Apresentação e tratamento do campos
  564. $obj = new StdClass;
  565. $obj->status = $status;
  566. $obj->alteracao = $alteracao;
  567. TForm::sendData('form_coleta', $obj);
  568. //Salva o registro
  569. $object->data_coleta = TDate::date2us($object->data_coleta);//converte para formato US
  570. $object->store();//grava
  571. $object->data_coleta = TDate::date2br($object->data_coleta);
  572. $this->form->setData($object);//
  573. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
  574. }
  575. else
  576. {
  577. new TMessage('danger','Não é permitido a gravação de documentos impressos ou finalizados.');
  578. }
  579. }
  580. TTransaction::close(); //fecha o banco
  581. }
  582. catch (Exception $e) // in case of exception
  583. {
  584. // shows the exception error message
  585. new TMessage('error', '<b>Error</b> ' . $e->getMessage());
  586. TTransaction::rollback();
  587. }
  588. }
  589. }

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)


NR

Wempar, esse erro ocorre quando o modelo não foi encontrado pelo método getData.

Você já criou o modelo Item?