Conheça as melhorias da versão 8.0, 8.1, 8.2!
Clique aqui para saber mais
Datagrid with input fields não edita Olá, pessoal Estou tentando criar um formulário com grid, baseado no modelo Datagrid with input fields ( linha editável ), porém ao clicar para editar os itens somem, alguém pode me ajudar ? segue código abaixo ...
RB
Datagrid with input fields não edita  
Olá, pessoal

Estou tentando criar um formulário com grid, baseado no modelo Datagrid with input fields ( linha editável ), porém ao clicar para editar os itens somem, alguém pode me ajudar ?

segue código abaixo

 
  1. <?php
  2. class EmpresaBuilder extends TPage
  3. {
  4. private $form;
  5. protected $table_contato;
  6. protected $frame_contato;
  7. protected $deta_row;
  8. protected $deta_row_1;
  9. protected $table_endereco;
  10. protected $frame_endereco;
  11. protected $cep;
  12. private $datagrid; // listing
  13. private $datagrid1; // listing
  14. private $loaded;
  15. private $panel;
  16. public function __construct(){
  17. parent::__construct();
  18. parent::include_css('app/resources/builder.css');
  19. parent::include_css('app/resources/blue_modificado.css');
  20. //cria formulario
  21. $this->form = new BootstrapFormBuilder('frm_empresa');
  22. $this->form->setFormTitle('Empresa');
  23. $this->form->id = 'frm_empresa';
  24. $div_pesq = new TElement('div');
  25. $div_pesq->id = 'div_pesq';
  26. $div_pesq->style = 'width:100%;';
  27. //cria formulário de pesquisa
  28. $form_cnpj = new TForm('frm_cnpj');
  29. $form_cnpj->style = 'width:30%;float:right;';
  30. $pesq_cnpj = new TEntry('pesq_cnpj');
  31. $pesq_cnpj->setMask('99.999.999/9999-99');
  32. $pesq_cnpj->setMaxLength(18);
  33. $pesq_cnpj->placeholder = "CNPJ";
  34. // creates the action button
  35. $button1 = new TButton('action1');
  36. $button1->setAction(new TAction(array($this, 'onCNPJ')), 'Pesquisar');
  37. $button1->setImage('fa:check-circle-o green');
  38. //adciona itens ao formulário de pesquisa
  39. $form_cnpj->add($pesq_cnpj);
  40. $form_cnpj->setFields([$pesq_cnpj,$button1]);
  41. $div_pesq->add($form_cnpj);
  42. $this->form->addFields([$div_pesq,$button1] );
  43. $dados_cliente = new TLabel('Identificação da Empresa');
  44. $dados_cliente->class = 'lbl_titulo';
  45. $this->form->addContent( [$dados_cliente] );
  46. //cria os labels do fromulário
  47. $lbl_tipo_organizacao = new TLabel('Tipo');
  48. $lbl_id = new TLabel('#');
  49. $lbl_nome_empresarial = new TLabel('Nome Empresarial');
  50. $lbl_nome_fantasia = new TLabel('Nome de Fantasia');
  51. $lbl_razao_social = new TLabel('Razão Social');
  52. $lbl_data_nascto = new TLabel('Data Início');
  53. $lbl_cod_desc_ativ_principal = new TLabel('Código e Descrição da Atividade Econômica Principal');
  54. $lbl_cod_desc_ativ_secundaria = new TLabel('Código e Descrição da Atividade Econômica Secundária');
  55. $lbl_categoria_natureza_juridica = new TLabel('Categoria Natureza Jurídica');
  56. $lbl_cod_natureza_juridica = new TLabel('Código e Descrição da Natureza Jurídica');
  57. $lbl_cod_modelo_fiscal = new TLabel('Modelo Fiscal');
  58. $lbl_status = new TLabel('Status');
  59. //formata fontes titulos
  60. $lbl_id->class='lbl_text';
  61. $lbl_nome_empresarial->class='lbl_text';
  62. $lbl_nome_fantasia->class='lbl_text';
  63. $lbl_razao_social->class='lbl_text';
  64. $lbl_data_nascto->class='lbl_text';
  65. $lbl_tipo_organizacao->class='lbl_text';
  66. $lbl_cod_desc_ativ_principal->class='lbl_text';
  67. $lbl_cod_desc_ativ_secundaria->class='lbl_text';
  68. $lbl_categoria_natureza_juridica->class='lbl_text';
  69. $lbl_cod_natureza_juridica->class='lbl_text';
  70. $lbl_cod_modelo_fiscal->class='lbl_text';
  71. $lbl_status->class='lbl_text';
  72. //cria os campos do fromulário Identificação da Empresa
  73. $id = new TEntry('id');
  74. $id->setEditable(false);
  75. $tipo_organizacao_id = new TCombo('tipo_organizacao_id');
  76. $tipo_organizacao_id->setSize('9%');
  77. $tipo_organizacao_id->addItems( [ '1' => 'Matriz', '2' => 'Filial'] );
  78. $tipo_organizacao_id->setDefaultOption(false);
  79. $nome_empresarial = new TEntry('nome_empresarial', new TRequiredValidator);
  80. $nome_fantasia = new TEntry('nome_fantasia', new TRequiredValidator);
  81. $razao_social = new TEntry('razao_social', new TRequiredValidator);
  82. $data_nascto = new TDate('data_nascto', new TRequiredValidator);
  83. $data_nascto->setMask('dd/mm/yyyy');
  84. // creates a DataGrid
  85. $this->datagrid = new BootstrapDatagridWrapper(new TQuickGrid);
  86. // creates the datagrid columns
  87. $code = new TDataGridColumn('code', 'Código', 'left','10%');
  88. $atv_principal = new TDataGridColumn('text', 'Atividade Principal', 'left','90%');
  89. // add the columns to the DataGrid
  90. $this->datagrid->addColumn($code);
  91. $this->datagrid->addColumn($atv_principal);
  92. // create the datagrid model
  93. $this->datagrid->createModel();
  94. // creates a DataGrid
  95. $this->datagrid1 = new BootstrapDatagridWrapper(new TQuickGrid);
  96. // creates the datagrid columns
  97. $code1 = new TDataGridColumn('code', 'Código', 'left','10%');
  98. $atv_secundaria = new TDataGridColumn('text', 'Atividade Secundária', 'left','90%');
  99. // add the columns to the DataGrid
  100. $this->datagrid1->addColumn($code1);
  101. $this->datagrid1->addColumn($atv_secundaria);
  102. // creates the edit action
  103. $editaction1 = new TDataGridAction(array($this, 'onEdit'));
  104. $editaction1->setField('text');
  105. $atv_secundaria->setEditAction($editaction1);
  106. // create the datagrid model
  107. $this->datagrid1->createModel();
  108. $nome_empresarial->style = 'text-transform: uppercase';
  109. $nome_fantasia->style = 'text-transform: uppercase';
  110. $razao_social->style ='text-transform: uppercase';
  111. $lbl_id->setSize('5%');
  112. $id->setSize('5%');
  113. $lbl_id->style = 'display:none';
  114. $id->style = 'display:none';
  115. $lbl_nome_fantasia->setSize('25%');
  116. $lbl_nome_empresarial->setSize('25%');
  117. $lbl_razao_social->setSize('30%');
  118. $lbl_cod_natureza_juridica->setSize('50%');
  119. $nome_empresarial->setSize('25%');
  120. $nome_fantasia->setSize('25%');
  121. $razao_social->setSize('30%');
  122. $data_nascto->setSize('11%');
  123. $lbl_tipo_organizacao->setSize('9%');
  124. //adciona criterio de filtro categoria natureza juridica
  125. $filter = new TCriteria;
  126. $filter->add(new TFilter('id', '<', '4'));
  127. //combo 1(master)
  128. $categoria_juridica_id = new TDBCombo('categoria_juridica_id' ,'centinel','CategoriaJuridica','id','descricao','descricao asc',$filter);
  129. $categoria_juridica_id->setDefaultOption(false);
  130. $categoria_juridica_id->setChangeAction( new TAction( array($this, 'onChangeAction')) );
  131. $filter1 = new TCriteria;
  132. $filter1->add(new TFilter('id', '<','0'));
  133. //combo 2 (detail)
  134. $natureza_juridica_id = new TDBCombo('natureza_juridica_id','centinel','NaturezaJuridica','id','codigo_descricao','codigo_descricao asc',$filter1);
  135. $natureza_juridica_id->setDefaultOption(false);
  136. $lbl_categoria_natureza_juridica->setSize('50%');
  137. $lbl_cod_natureza_juridica->setSize('50%');
  138. $categoria_juridica_id->setSize('50%');
  139. $natureza_juridica_id->setSize('50%');
  140. //$modelo_fiscal = new TText('modelo_fiscal');
  141. $modelo_fiscal = new TDBCombo('modelo_fiscal_id','centinel','ModeloFiscal','id','nome');
  142. $modelo_fiscal->setDefaultOption(false);
  143. //cria os labels do fromulário Documentos de Registro da Empresa
  144. $lbl_cnpj = new TLabel('CNPJ');
  145. $lbl_inscricao_estadual = new TLabel('Inscrição Estadual');
  146. $lbl_inscricao_junta_comercial = new TLabel('Inscrição Junta Comercial');
  147. $lbl_inscricao_municipal = new TLabel('Inscrição Municipal');
  148. $lbl_cnpj->class='lbl_text';
  149. $lbl_inscricao_estadual->class='lbl_text';
  150. $lbl_inscricao_junta_comercial->class='lbl_text';
  151. $lbl_inscricao_municipal->class='lbl_text';
  152. //cria os campos do fromulário documentos
  153. $cnpj = new TEntry('cnpj');
  154. $cnpj->setMask('99.999.999/9999-99');
  155. $cnpj->setMaxLength(18);
  156. $cnpj->addValidation('cnpj',new TCNPJValidator);
  157. $cnpj->addValidation('cnpj',new TMaxLengthValidator, array(18));
  158. $cnpj->addValidation('cnpj',new TMinValueValidator, array(18));
  159. $cnpj->addValidation('cnpj',new TNumericValidator);
  160. $inscricao_estadual = new TEntry('inscricao_estadual');
  161. $inscricao_estadual->setMaxLength(15);
  162. $inscricao_junta_comercial = new TEntry('inscricao_junta_comercial');
  163. $inscricao_junta_comercial->setMaxLength(15);
  164. $inscricao_municipal = new TEntry('inscricao_municipal');
  165. $inscricao_municipal->setMaxLength(15);
  166. //adiciona atividades no container atividades
  167. $this->panel = new TPanelGroup('');
  168. $this->panel->style = 'display:none';
  169. $this->panel->add($this->datagrid);
  170. $this->panel->add($this->datagrid1);
  171. $this->form->addFields([$lbl_id,$lbl_nome_empresarial,$lbl_nome_fantasia,$lbl_razao_social,$lbl_tipo_organizacao,$lbl_data_nascto]);
  172. $this->form->addFields([$id,$nome_empresarial,$nome_fantasia,$razao_social,$tipo_organizacao_id,$data_nascto]);
  173. $this->form->addFields([$this->panel]);
  174. $this->form->addFields([$lbl_categoria_natureza_juridica,$lbl_cod_natureza_juridica]);
  175. $this->form->addFields([$categoria_juridica_id,$natureza_juridica_id]);
  176. //adiciona campos documentos empresa
  177. $documentos_registro = new TLabel('Documentos de Registro da Empresa');
  178. $documentos_registro->class ='lbl_titulo';
  179. $this->form->addContent( [$documentos_registro] );
  180. $this->form->addFields([$lbl_cnpj,$lbl_inscricao_estadual,$lbl_inscricao_junta_comercial,$lbl_inscricao_municipal]);
  181. $this->form->addFields([$cnpj,$inscricao_estadual,$inscricao_junta_comercial,$inscricao_municipal]);
  182. $lbl_cnpj->setSize('25%');
  183. $lbl_inscricao_estadual->setSize('25%');
  184. $lbl_inscricao_junta_comercial->setSize('25%');
  185. $lbl_inscricao_municipal->setSize('25%');
  186. $cnpj->setSize('25%');
  187. $inscricao_estadual->setSize('25%');
  188. $inscricao_junta_comercial->setSize('25%');
  189. $inscricao_municipal->setSize('25%');
  190. //adiciona campos informações financeiras da empresa
  191. $informacoes_financeira = new TLabel('Informações Financeira');
  192. $informacoes_financeira->class ='lbl_titulo';
  193. $this->form->addContent( [$informacoes_financeira] );
  194. $lbl_capital_social = new TLabel('Capital Social');
  195. $lbl_faturamento_anual = new TLabel('Faturamento Anual');
  196. $lbl_margen_lucro = new TLabel('Margem de Lucro');
  197. $lbl_situacao = new TLabel('Situacao');
  198. $capital_social = new TEntry('capital_social');
  199. $capital_social->setNumericMask(2,',','.');
  200. $faturamento_anual = new TEntry('faturamento_anual');
  201. $faturamento_anual->setNumericMask(2,',','.');
  202. $margen_lucro = new TEntry('margen_lucro');
  203. $situacao = new TEntry('situacao');
  204. $situacao->setSize('9%');
  205. $this->form->addFields([$lbl_capital_social,$lbl_faturamento_anual,$lbl_margen_lucro,$lbl_situacao]);
  206. $this->form->addFields([$capital_social,$faturamento_anual,$margen_lucro,$situacao]);
  207. //formata labels informações financeiras
  208. $lbl_capital_social->class = 'lbl_text';
  209. $lbl_faturamento_anual->class = 'lbl_text';
  210. $lbl_margen_lucro->class = 'lbl_text';
  211. $lbl_situacao->class = 'lbl_text';
  212. $lbl_capital_social->setSize('25%');
  213. $lbl_faturamento_anual->setSize('25%');
  214. $lbl_margen_lucro->setSize('40%');
  215. $lbl_situacao->setSize('10%');
  216. $capital_social->setSize('25%');
  217. $faturamento_anual->setSize('25%');
  218. $margen_lucro->setSize('40%');
  219. $situacao->setSize('10%');
  220. //cria dados de contato
  221. $contato = new TLabel('Contato');
  222. $contato->class = 'lbl_titulo';
  223. $lbl_ddi = new TLabel('DDI');
  224. $lbl_dd = new TLabel('DDD');
  225. $lbl_tipo_telefone = new TLabel('Tipo Telefone');
  226. $lbl_telefone = new TLabel('Telefone');
  227. $lbl_operadora = new TLabel('Operadora');
  228. //Cria tabela contato adiciona campos
  229. $this->table_contato = new TTable('table_contato');
  230. $this->table_contato->width ='100%';
  231. $this->table_contato->addSection('thead');
  232. $this->table_contato->addSection('tbody');
  233. //cria frame contato
  234. $this->frame_contato = new TFrame;
  235. $this->frame_contato->style = 'width:98%;border:none;float:lef;margin-left:-1px;';
  236. $this->frame_contato->add($contato);
  237. $this->frame_contato->add($this->table_contato);
  238. $this->table_contato->addRowSet([$lbl_ddi,$lbl_dd,$lbl_tipo_telefone,$lbl_telefone,$lbl_operadora]);
  239. $this->form->addContent([$this->frame_contato]);
  240. $lbl_email = new TLabel('Email');
  241. $email = new TEntry('email');
  242. $email->placeholder = "exemplo@exemplo.com.br";
  243. $email->addValidation('email', new TEmailValidator); // email field
  244. $lbl_site = new TLabel('Site');
  245. $site = new TEntry('url');
  246. $site->placeholder = "exemplo.com.br";
  247. $lbl_responsavel = new TLabel('Responsável');
  248. $responsavel = new TEntry('responsavel');
  249. $responsavel->style='text-transform: uppercase';
  250. //adiciona contato web
  251. $this->form->addFields( [$lbl_email,$lbl_site,$lbl_responsavel] );
  252. $this->form->addFields( [$email,$site,$responsavel] );
  253. $email->setSize('33.3333%');
  254. $site->setSize('33.3333%');
  255. $responsavel->setSize('33.3333%');
  256. //adiciona dados de correspondência
  257. $lbl_endereco = new TLabel('Endereco');
  258. $lbl_endereco->class='lbl_titulo';
  259. $lbl_cep = new TLabel('Cep');
  260. $lbl_id_cep = new TLabel('#');
  261. $lbl_id_cep->style = 'display:none;';
  262. $lbl_logradouro = new TLabel('Logradouro');
  263. $lbl_numero = new TLabel('Número');
  264. $lbl_bairro = new TLabel('Bairro');
  265. $lbl_cidade = new TLabel('Cidade');
  266. $lbl_uf = new TLabel('UF');
  267. $lbl_tipo_endereco_id = new TLabel('Tipo Endereco');
  268. $lbl_complemento = new TLabel('Complemento');
  269. $lbl_regiao = new TLabel('Região');
  270. $this->detail_row = 0;
  271. $this->detail_row_1 = 0;
  272. $this->table_endereco = new TTable();
  273. $this->table_endereco->width ='100%';
  274. $this->table_endereco->addSection('thead');
  275. $this->table_endereco->addSection('tbody');
  276. $this->frame_endereco = new TFrame;
  277. $this->frame_endereco->style ='width:98%;border:none;float:lef;margin-left:-1px;';
  278. $this->frame_endereco->add($lbl_endereco);
  279. $this->frame_endereco->add($this->table_endereco);
  280. $this->table_endereco->addRowSet([$lbl_id_cep,$lbl_cep,$lbl_logradouro,$lbl_numero,$lbl_bairro,$lbl_cidade,$lbl_uf,$lbl_tipo_endereco_id,$lbl_complemento,$lbl_regiao]);
  281. $this->form->addContent([$this->frame_endereco]);
  282. $lbl_id_cep->class='lbl_text';
  283. $lbl_cep->class='lbl_text';
  284. $lbl_logradouro->class='lbl_text';
  285. $lbl_numero->class='lbl_text';
  286. $lbl_tipo_endereco_id->class='lbl_text';
  287. $lbl_bairro->class='lbl_text';
  288. $lbl_cidade->class='lbl_text';
  289. $lbl_uf->class='lbl_text';
  290. $lbl_complemento->class='lbl_text';
  291. $lbl_regiao->class='lbl_text';
  292. $lbl_id_cep->setSize('30');
  293. $lbl_cep->setSize('70');
  294. $lbl_logradouro->setSize('160');
  295. $lbl_bairro->setSize('140');
  296. $lbl_cidade->setSize('100');
  297. $lbl_uf->setSize('30');
  298. $lbl_numero->setSize('65');
  299. $lbl_complemento->setSize('100');
  300. $lbl_regiao->setSize('100');
  301. $lbl_tipo_endereco_id->setSize('100');
  302. $lbl_ddi->class='lbl_text';
  303. $lbl_dd->class='lbl_text';
  304. $lbl_tipo_telefone->class='lbl_text';
  305. $lbl_telefone->class='lbl_text';
  306. $lbl_operadora->class='lbl_text';
  307. $lbl_email->class='lbl_text';
  308. $lbl_site->class='lbl_text';
  309. $lbl_responsavel->class='lbl_text';
  310. $lbl_ddi->setSize('40');
  311. $lbl_dd->setSize('40');
  312. $lbl_tipo_telefone->setSize('100');
  313. $lbl_telefone->setSize('100');
  314. $lbl_email->setSize('33.3333%');
  315. $lbl_site->setSize('33.3333%');
  316. $lbl_responsavel->setSize('33.3333%');
  317. //cria botões de ações
  318. $this->form->addAction('Salvar',new TAction(array($this, 'onSave')),'fa:save blue');
  319. $this->form->addAction('Listar',new TAction(array('EmpresaGrid','onReload')),'fa:table blue');
  320. // wrap the page content using vertical box
  321. $vbox = new TVBox;
  322. $vbox->style = 'width:100%,display:table;';
  323. $vbox->add($this->form);
  324. parent::add($this->form);
  325. }
  326. public function onClear($param)
  327. {
  328. $this->form->clear(TRUE);
  329. //$this->table_contato->addSection('tbody');
  330. $this->addContatoRow(new stdClass);
  331. self::formataTelefone($param);
  332. //criar e adicionar botão
  333. $add = new TButton('addContact');
  334. $add->setLabel('Adicionar');
  335. $add->setImage('fa:plus-circle blue');
  336. $add->addFunction('ttable_clone_previous_row(this)');
  337. //adiciona botão a tabela
  338. $row = $this->table_contato->addSection('tfoot');
  339. $row = $this->table_contato->addRowSet([$add]);
  340. //adciona tabela endereco
  341. //$this->table_endereco->addSection('tbody');
  342. $this->addEnderecoRow(new stdClass);
  343. //criar e adicionar botão
  344. $add_endereco = new TButton('addEnder');
  345. $add_endereco->setLabel('Adicionar');
  346. $add_endereco->setImage('fa:plus-circle blue');
  347. $add_endereco->addFunction('ttable_clone_previous_row(this)');
  348. //adiciona botão a tabela
  349. $row_end = $this->table_endereco->addSection('tfoot');
  350. $row_end = $this->table_endereco->addRowSet([$add_endereco]);
  351. }
  352. public static function onCep($param)
  353. {
  354. $endereco_cep = $param['_field_id'];
  355. $cep_endereco = $param['_field_value'];
  356. $endereco_cep = explode('_', $endereco_cep);
  357. $unique_id = end($endereco_cep);
  358. $retorno = Endereco::BuscaCepWeb($cep_endereco);
  359. if (!empty($retorno))
  360. {
  361. $response = new stdClass;
  362. $response->{'id_endereco_'.$unique_id} = $retorno['id'];
  363. $response->{'logradouro_'.$unique_id} = $retorno['logradouro'];
  364. $response->{'bairro_'.$unique_id} = $retorno['bairro'];
  365. $response->{'cidade_'.$unique_id} = $retorno['localidade'];
  366. $response->{'uf_'.$unique_id} = $retorno['uf'];
  367. //$response->ibge = strtoupper( $retorno['ibge']);
  368. //$response->gia = strtoupper( $retorno['gia']);
  369. TForm::sendData('frm_empresa', $response);
  370. TScript::create('$("input[name=numero]").focus();');
  371. }
  372. else
  373. {
  374. $endereco = Endereco::BuscaCepBanco($cep_endereco);
  375. if($endereco)
  376. {
  377. $retorno = new stdClass;
  378. $retorno->{'id_endereco_'.$unique_id} = $endereco['id'];
  379. $retorno->{'logradouro_'.$unique_id} = $endereco['logradouro'];
  380. $retorno->{'bairro_'.$unique_id} = $endereco['bairro'];
  381. $retorno->{'cidade_'.$unique_id} = $endereco['cidade'];
  382. $retorno->{'uf_'.$unique_id} = $endereco['uf'];
  383. TForm::sendData('frm_empresa', $retorno);
  384. TScript::create('$("input[name=numero]").focus();');
  385. }
  386. /*
  387. else
  388. {
  389. new TMessage("error", "CEP - Em Branco ou Inválido");
  390. }
  391. */
  392. }
  393. }
  394. public static function onSave($param)
  395. {
  396. $organizacao_id = TSession::getValue('organizacion_id'); // pega id da empresa
  397. $user_id = TSession::getValue('userid'); // pega id da usuário
  398. $data_actual = date('Y-m-d H:i:s');
  399. try
  400. {
  401. if (isset($param['id']) AND(!empty($param['id'])))
  402. {
  403. $key = $param['id'];
  404. TTransaction::open('permission'); // open a transaction
  405. /*
  406. TTransaction::setLoggerFunction(function($param)
  407. {
  408. print $param.'<br/>';
  409. });
  410. */
  411. //inserir na base permission
  412. $system_organization = SystemUnit::where('organization_id','=',$key)->load();
  413. if($system_organization)
  414. {
  415. foreach ($system_organization as $object)
  416. {
  417. $object->name = $param['nome_fantasia'];
  418. //$object->unit_id = $key;
  419. $object->store();
  420. }
  421. }
  422. TTransaction::close(); // close the transaction
  423. }
  424. TTransaction::open('centinel'); // open a transaction
  425. /*
  426. TTransaction::setLoggerFunction(function($param)
  427. {
  428. print $param.'<br/>';
  429. });
  430. */
  431. if( (! $param['nome_fantasia'])){
  432. throw new Exception('O Campo nome fantasia é obrigatório');
  433. }
  434. if( (! $param['data_nascto'])){
  435. throw new Exception('O Campo data inicio é obrigatório');
  436. }
  437. if( (! $param['razao_social'])){
  438. throw new Exception('O Campo razao social é obrigatório');
  439. }
  440. if( (! $param['categoria_juridica_id'])){
  441. throw new Exception('O Campo categoria juridica é obrigatório');
  442. }
  443. if( (! $param['natureza_juridica_id'])){
  444. throw new Exception('O Campo natureza juridica é obrigatório');
  445. }
  446. if( (! $param['cnpj'])){
  447. throw new Exception('O Campo cnpj é obrigatório');
  448. }
  449. if (isset($param['id']) AND(!empty($param['id'])))
  450. {
  451. $key = $param['id'];
  452. $obj = Organizacao::find($key);
  453. $obj->tipo_organizacao_id = $param['tipo_organizacao_id'];
  454. $obj->store();
  455. $juridica = Juridica::find($obj->juridica_id);
  456. $juridica->cnpj = str_replace('.','',str_replace('/','',str_replace('-','',$param['cnpj'])));
  457. $juridica->nome = $param['nome_fantasia'];
  458. $juridica->razao_social = $param['razao_social'];
  459. $juridica->categoria_juridica_id = $param['categoria_juridica_id'];
  460. $juridica->natureza_juridica_id = $param['natureza_juridica_id'];
  461. $juridica->inscricao_municipal = $param['inscricao_municipal'];
  462. $juridica->inscricao_estadual = $param['inscricao_estadual'];
  463. $juridica->inscricao_junta_comercial = $param['inscricao_junta_comercial'];
  464. $juridica->criacao = date('Y-m-d H:i:s');
  465. $juridica->atualizacao = date('Y-m-d H:i:s');
  466. $juridica->atividade_primaria = $param['cod_desc_ativ_principal'];
  467. $juridica->atividade_secundaria = $param['cod_desc_ativ_secundaria'];
  468. $juridica->faturamento_anual = str_replace('R$','',$param['faturamento_anual']);
  469. $juridica->margen_lucro = str_replace('%','',$param['margen_lucro']);;
  470. $juridica->data_inicio = TDate::date2us($param['data_nascto']);
  471. $juridica->store();
  472. $pessoa = Pessoa::find($obj->pessoa_id);
  473. $pessoa->atualizacao = date('Y-m-d H:i:s');
  474. //adiciona contatos
  475. if( !empty($param['telefone']) AND is_array($param['telefone']) )
  476. {
  477. foreach( $param['telefone'] as $row => $telefone)
  478. {
  479. if ($telefone)
  480. {
  481. $item = new Contato;
  482. $item->pessoa_id = $pessoa->id;
  483. $item->ddi = trim($param['ddi'][$row]);
  484. $item->ddd = trim($param['dd'][$row]);
  485. $item->telefone = str_replace('-','',$param['telefone'][$row]);
  486. $item->operadora_id = $param['operadora_id'][$row];
  487. $item->tipo_telefone_id = $param['tipo_telefone_id'][$row];
  488. $item->criacao = $data_actual;
  489. $item->atualizacao = $data_actual;
  490. $item->ativo = 1;
  491. $item->organizacao_id = $organizacao_id;
  492. $pessoa->addContato($item);
  493. }
  494. }
  495. }
  496. //adiciona endereco
  497. if( !empty($param['cep']) AND is_array($param['cep']) AND is_array($param['numero']) )
  498. {
  499. foreach( $param['id_endereco'] as $row => $id_endereco)
  500. {
  501. if ($id_endereco)
  502. {
  503. $pessoa_endereco = new PessoaEndereco;
  504. $pessoa_endereco->pessoa_id = $pessoa->id;
  505. $pessoa_endereco->endereco_id = $param['id_endereco'][$row];
  506. $pessoa_endereco->tipo_endereco_id = $param['tipo_endereco_id'][$row];
  507. $pessoa_endereco->numero = $param['numero'][$row];
  508. $pessoa_endereco->complemento = $param['compl'][$row];
  509. $pessoa_endereco->criacao = $data_actual;
  510. $pessoa_endereco->atualizacao = $data_actual;
  511. $pessoa_endereco->organizacao_id = $organizacao_id;
  512. $pessoa_endereco->regiao_id = $param['regiao_id'][$row];
  513. $pessoa_endereco->ativo = 1;
  514. $pessoa->addPessoaEndereco($pessoa_endereco);
  515. }
  516. }
  517. }
  518. $pessoa->store();
  519. }
  520. else
  521. {
  522. //pesquisa se cnpj existe
  523. $juridica = Juridica::where('cnpj','=',str_replace('.','',str_replace('/','',str_replace('-','',$param['cnpj']))));
  524. if (!empty($juridica->id))
  525. {
  526. new TMessage('info', 'Juridica existe');
  527. print_r($param);
  528. }
  529. else
  530. {
  531. //new TMessage('info','juridica não existe');
  532. $pessoa = new Pessoa;
  533. $pessoa->criacao = date('Y-m-d H:i:s');
  534. $pessoa->atualizacao = date('Y-m-d H:i:s');
  535. //adiciona contatos
  536. if( !empty($param['telefone']) AND is_array($param['telefone']) )
  537. {
  538. foreach( $param['telefone'] as $row => $telefone)
  539. {
  540. if ($telefone)
  541. {
  542. $item = new Contato;
  543. $item->pessoa_id = $pessoa->id;
  544. $item->ddi = trim($param['ddi'][$row]);
  545. $item->ddd = trim($param['dd'][$row]);
  546. $item->telefone = str_replace('-','',$param['telefone'][$row]);
  547. $item->operadora_id = $param['operadora_id'][$row];
  548. $item->tipo_telefone_id = $param['tipo_telefone_id'][$row];
  549. $item->criacao = $data_actual;
  550. $item->atualizacao = $data_actual;
  551. $item->ativo = 1;
  552. $item->organizacao_id = $organizacao_id;
  553. $pessoa->addContato($item);
  554. }
  555. }
  556. }
  557. //adiciona endereco
  558. if( !empty($param['cep']) AND is_array($param['cep']) AND is_array($param['numero']) )
  559. {
  560. foreach( $param['id_endereco'] as $row => $id_endereco)
  561. {
  562. if ($id_endereco)
  563. {
  564. $pessoa_endereco = new PessoaEndereco;
  565. $pessoa_endereco->pessoa_id = $pessoa->id;
  566. $pessoa_endereco->endereco_id = $param['id_endereco'][$row];
  567. $pessoa_endereco->tipo_endereco_id = $param['tipo_endereco_id'][$row];
  568. $pessoa_endereco->numero = $param['numero'][$row];
  569. $pessoa_endereco->complemento = $param['compl'][$row];
  570. $pessoa_endereco->criacao = $data_actual;
  571. $pessoa_endereco->atualizacao = $data_actual;
  572. $pessoa_endereco->organizacao_id = $organizacao_id;
  573. $pessoa_endereco->regiao_id = $param['regiao_id'][$row];
  574. $pessoa_endereco->ativo = 1;
  575. $pessoa->addPessoaEndereco($pessoa_endereco);
  576. }
  577. }
  578. }
  579. $pessoa->store();
  580. if (!empty($param['url']))
  581. {
  582. $site = new Site;
  583. $site->nome = $param['url'];
  584. $site->url = $param['url'];
  585. $site->pessoa_id = $pessoa->id;
  586. $site->organizacao_id = $organizacao_id;
  587. $site->ativo = 1;
  588. $site->criacao = $data_actual;
  589. $site->atualizacao = $data_actual;
  590. $site->store();
  591. }
  592. if (!empty($param['email']))
  593. {
  594. $contatoweb = new ContatoWeb;
  595. $contatoweb->email = $param['email'];
  596. $contatoweb->pessoa_id = $pessoa->id;
  597. $contatoweb->organizacao_id = $organizacao_id;
  598. $contatoweb->criacao = $data_actual;
  599. $contatoweb->atualizacao = $data_actual;
  600. $contatoweb->ativo = 1;
  601. $contatoweb->store();
  602. }
  603. $juridica = new Juridica;
  604. $juridica->pessoa_id = $pessoa->id;
  605. $juridica->cnpj = str_replace('.','',str_replace('/','',str_replace('-','',$param['cnpj'])));
  606. $juridica->nome = $param['nome_fantasia'];
  607. $juridica->razao_social = $param['razao_social'];
  608. $juridica->modelo_fiscal_id = $param['modelo_fiscal_id'];
  609. $juridica->categoria_juridica_id = $param['categoria_juridica_id'];
  610. $juridica->natureza_juridica_id = $param['natureza_juridica_id'];
  611. $juridica->inscricao_municipal = $param['inscricao_municipal'];
  612. $juridica->inscricao_estadual = $param['inscricao_estadual'];
  613. $juridica->inscricao_junta_comercial = $param['inscricao_junta_comercial'];
  614. $juridica->criacao = date('Y-m-d H:i:s');
  615. $juridica->atualizacao = date('Y-m-d H:i:s');
  616. $juridica->atividade_primaria = $param['cod_desc_ativ_principal'];
  617. $juridica->atividade_secundaria = $param['cod_desc_ativ_secundaria'];
  618. $juridica->faturamento_anual = $param['faturamento_anual'];
  619. $juridica->margen_lucro = $param['margen_lucro'];
  620. $juridica->data_inicio = TDate::date2us($param['data_nascto']);
  621. $juridica->store();
  622. $organizacao = new Organizacao;
  623. $organizacao->pessoa_id = $pessoa->id;
  624. $organizacao->juridica_id = $juridica->id;
  625. $organizacao->organizacao_id = $organizacao_id;
  626. $organizacao->ativo = 1;
  627. $organizacao->tipo_organizacao_id = $param['tipo_organizacao_id'];
  628. //$organizacao->unidade_id = 1;
  629. $organizacao->store();
  630. self::fireEvents($object);
  631. //new TMessage('info','Pessoa id :'.$organizacao->id);
  632. $data = new stdClass;
  633. $data->id = $organizacao->id;
  634. TForm::sendData('frm_empresa', $data);// keep form data
  635. }
  636. }
  637. TTransaction::close(); // close the transaction
  638. TTransaction::open('permission'); // open a transaction
  639. //inserir na base permission
  640. $system_organization = new SystemUnit;
  641. $system_organization->name = $param['nome_fantasia'];
  642. $system_organization->active = 1;
  643. $system_organization->organization_id = TSession::getValue('organizacion_id');
  644. $system_organization->tipo_id = $param['tipo_organizacao_id'];
  645. $system_organization->store();
  646. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
  647. TTransaction::close(); // close the transaction
  648. }
  649. catch (Exception $e)
  650. {
  651. new TMessage('error', $e->getMessage());
  652. TForm::sendData('frm_empresa', $param);// keep form data
  653. TTransaction::rollback();
  654. }
  655. }
  656. public function onEdit($param)
  657. {
  658. try
  659. {
  660. // get the parameter $key
  661. $field = $param['field'];
  662. $key = $param['key'];
  663. $value = $param['value'];
  664. if (isset($param['key']))
  665. {
  666. // open a transaction with database 'samples'
  667. TTransaction::open('centinel');
  668. $key = $param['key'];
  669. $organizacao = Organizacao::find($key);
  670. if($organizacao)
  671. {
  672. if (strlen($organizacao->juridica->cnpj) == 14):
  673. $cnpj = substr($organizacao->juridica->cnpj, 0, 2) . '.' . substr($organizacao->juridica->cnpj, 2, 3) . '.' . substr($organizacao->juridica->cnpj, 5, 3) . '/' . substr($organizacao->juridica->cnpj, 8, 4) . '-' . substr($organizacao->juridica->cnpj, 12, 2); endif;
  674. $organizacao->nome_fantasia = $organizacao->juridica->nome;
  675. $organizacao->data_nascto = TDate::date2br($organizacao->juridica->data_inicio);
  676. $organizacao->tipo_organizacao_id = $organizacao->tipo_organizacao_id;
  677. $organizacao->razao_social = $organizacao->juridica->razao_social;
  678. $organizacao->cod_desc_ativ_principal = $organizacao->juridica->atividade_primaria;
  679. $organizacao->cod_desc_ativ_secundaria = $organizacao->juridica->atividade_secundaria;
  680. $organizacao->categoria_juridica_id = $organizacao->juridica->categoria_juridica_id;
  681. $organizacao->natureza_juridica_id = $organizacao->juridica->natureza_juridica_id;
  682. $organizacao->{$field} = $value;
  683. $this->fireEvents($organizacao);
  684. $organizacao->modelo_fiscal_id = $organizacao->juridica->modelo_fiscal_id;
  685. $organizacao->cnpj = $cnpj;
  686. $organizacao->inscricao_estadual = $organizacao->juridica->inscricao_estadual;
  687. $organizacao->inscricao_junta_comercial = $organizacao->juridica->inscricao_junta_comercial;
  688. $organizacao->inscricao_municipal = $organizacao->juridica->inscricao_municipal;
  689. $organizacao->responsavel = $organizacao->juridica->responsavel;
  690. $organizacao->faturamento_anual = 'R$ ' .$organizacao->juridica->faturamento_anual;
  691. $organizacao->capital_social = 'R$ ' .$organizacao->juridica->capital_social;
  692. $organizacao->margen_lucro = $organizacao->juridica->margen_lucro.' % ';
  693. $organizacao->email = $organizacao->contatoweb_email;
  694. $organizacao->url = $organizacao->site_url;
  695. // reload the listing
  696. $this->onCNPJ($param);
  697. $this->datagrid->clear();
  698. if ($objects)
  699. {
  700. // iterate the collection of active records
  701. foreach ($objects as $object)
  702. {
  703. // add the object inside the datagrid
  704. $this->datagrid->addItem($object);
  705. }
  706. }
  707. //adiciona tabela contato ao formulário
  708. //$this->table_contato->addSection('tbody');
  709. $contatos = $organizacao->get_pessoa()->getContato();
  710. if (!empty($contatos))
  711. {
  712. foreach ($contatos as $contato)
  713. {
  714. $contato->telefone = substr($contato->telefone, 0, 4) . '-' . substr($contato->telefone, 4, 8);
  715. $this->addContatoRow($contato);
  716. }
  717. //criar e adicionar botão
  718. $add = new TButton('addContact');
  719. $add->setLabel('Adicionar');
  720. $add->setImage('fa:plus-circle blue');
  721. $add->addFunction('ttable_clone_previous_row(this)');
  722. //adiciona botão a tabela
  723. $row = $this->table_contato->addSection('tfoot');
  724. $row = $this->table_contato->addRowSet([$add]);
  725. }
  726. else
  727. {
  728. $this->onClear($param);
  729. }
  730. //adiciona tabela endereco ao formulário
  731. //$this->table_endereco->addSection('tbody');
  732. $endereco = $organizacao->get_pessoa()->getPessoaEndereco();
  733. if (!empty($endereco))
  734. {
  735. foreach ($endereco as $enderecos)
  736. {
  737. $this->addEnderecoRow($enderecos);
  738. }
  739. //criar e adicionar botão
  740. $add_endereco = new TButton('addEnder');
  741. $add_endereco->setLabel('Adiconar');
  742. $add_endereco->setImage('fa:plus-circle blue');
  743. $add_endereco->addFunction('ttable_clone_previous_row(this)');
  744. //adiciona botão a tabela
  745. $row_end = $this->table_endereco->addSection('tfoot');
  746. $row_end = $this->table_endereco->addRowSet([$add_endereco]);
  747. }
  748. else
  749. {
  750. $this->onClear($param);
  751. }
  752. }
  753. $this->form->setData($organizacao);
  754. // close the transaction
  755. TTransaction::close();
  756. }
  757. }catch (Exception $e) // in case of exception
  758. {
  759. new TMessage('error', $e->getMessage());
  760. TForm::sendData('frm_empresa', $param);// keep form data
  761. TTransaction::rollback();
  762. }
  763. }
  764. /* method addContatoRow($contato)
  765. * adicona vetor de contatos no formulário
  766. */
  767. public function addContatoRow($contato){
  768. $uniqid = mt_rand(1000000, 9999999);
  769. $ddi = new TEntry('ddi[]');
  770. $ddi->setValue('55');
  771. $ddi->addValidation('ddi', new TNumericValidator,new TMaxValueValidator,array(2));
  772. if (!empty($contato->ddi))
  773. {
  774. $ddi->setValue($contato->ddi);
  775. }
  776. $dd = new TEntry('dd[]');
  777. $dd->setValue('011');
  778. $dd->addValidation('ddd',new TNumericValidator, new TMaxValueValidator,array(3));
  779. if (!empty($contato->dd))
  780. {
  781. $dd->setValue($contato->dd);
  782. }
  783. $tipo_telefone_id = new TDBCombo('tipo_telefone_id[]','centinel','TipoTelefone','id','descricao');
  784. $tipo_telefone_id->setDefaultOption(false);
  785. if (!empty($contato->tipo_telefone_id))
  786. {
  787. foreach ($contato->tipo_telefone_id as $tipo_telefone_id)
  788. {
  789. // set exit action for input_exit
  790. $change_action = new TAction(array($this, 'formataTelefone'));
  791. $tipo_telefone_id->setChangeAction($change_action);
  792. $tipo_telefone_id->setValue($contato->tipo_telefone_id);
  793. }
  794. }
  795. $telefone = new TEntry('telefone[]');
  796. if (!empty($contato->telefone))
  797. {
  798. if ($contato->tipo_telefone_id == 3) {
  799. $telefone->setMask('99999-9999');
  800. $telefone->setValue($contato->telefone);
  801. $telefone->addValidation('telefone', new TNumericValidator);
  802. }
  803. else
  804. {
  805. $telefone->setMask('9999-9999');
  806. $telefone->setValue($contato->telefone);
  807. $telefone->addValidation('telefone', new TNumericValidator);
  808. }
  809. }
  810. $operadora_id = new TDBCombo('operadora_id[]','centinel','Operadora','id','nome');
  811. $operadora_id->setDefaultOption(false);
  812. if (!empty($contato->operadora_id))
  813. {
  814. $operadora_id->setValue($contato->operadora_id);
  815. }
  816. //set ids
  817. $ddi->setId('ddi_'.$uniqid);
  818. $dd->setId('dd_'.$uniqid);
  819. $telefone->setId('telefone_'.$uniqid);
  820. $tipo_telefone_id->setId('tipo_telefone_id_'.$uniqid);
  821. $operadora_id->setId('operadora_id_'.$uniqid);
  822. // create delete button
  823. $del = new TImage('fa:trash-o blue');
  824. $del->onclick = 'ttable_remove_row(this)';
  825. $row = $this->table_contato->addRowSet([$ddi,$dd,$tipo_telefone_id,$telefone,$operadora_id,$del]);
  826. $this->detail_row ++;
  827. $ddi->setSize('40');
  828. $dd->setSize('40');
  829. $tipo_telefone_id->setSize('100');
  830. $telefone->setSize('100');
  831. $operadora_id ->setSize('100');
  832. }
  833. /* method addEnderecoRow($endereco)
  834. * adicona vetor de endereco no formulário
  835. */
  836. public function addEnderecoRow($endereco)
  837. {
  838. $uniqid = mt_rand(1000000, 9999999);
  839. $this->cep = new TEntry('cep[]');
  840. $this->cep->setMask('00000-000');
  841. $this->cep->addValidation('CEP', new TRequiredValidator, new TMaxValueValidator,array(8));
  842. $this->form->addField($this->cep);
  843. $input_cep = new TAction(array($this,'onCep'));
  844. $this->cep->setExitAction($input_cep);
  845. if (!empty($endereco->endereco->cep))
  846. {
  847. $this->cep->setValue($endereco->endereco->cep);
  848. }
  849. $id_endereco = new TEntry('id_endereco[]');
  850. $id_endereco->setEditable(false);
  851. $id_endereco->style = 'display:none;';
  852. if (!empty($endereco->endereco->id))
  853. {
  854. $id_endereco->setValue($endereco->endereco->id);
  855. }
  856. $logradouro = new TEntry('logradouro[]');
  857. if (!empty($endereco->endereco->logradouro))
  858. {
  859. $logradouro->setValue($endereco->endereco->logradouro);
  860. }
  861. $bairro = new TEntry('bairro[]');
  862. if (!empty($endereco->endereco->bairro))
  863. {
  864. $bairro->setValue($endereco->endereco->bairro);
  865. }
  866. $cidade = new TEntry('cidade[]');
  867. if (!empty($endereco->endereco->cidade))
  868. {
  869. $cidade->setValue($endereco->endereco->cidade);
  870. }
  871. $uf = new TEntry('uf[]');
  872. if (!empty($endereco->endereco->uf))
  873. {
  874. $uf->setValue($endereco->endereco->uf);
  875. }
  876. $numero = new TEntry('numero[]');
  877. if (!empty($endereco->numero))
  878. {
  879. $numero->setValue($endereco->numero);
  880. }
  881. $tipo_endereco_id = new TDBCombo('tipo_endereco_id[]','centinel','TipoEndereco','id','descricao');
  882. $tipo_endereco_id->setDefaultOption(false);
  883. if (!empty($endereco->tipo_endereco_id))
  884. {
  885. $tipo_endereco_id->setValue($endereco->tipo_endereco_id);
  886. }
  887. $complemento = new TEntry('compl[]');
  888. if (!empty($endereco->complemento))
  889. {
  890. $complemento->setValue($endereco->complemento);
  891. }
  892. $regiao_id = new TDBCombo('regiao_id[]','centinel','Regiao','id','descricao');
  893. $regiao_id->setDefaultOption(false);
  894. if (!empty($endereco->regiao_id))
  895. {
  896. $regiao_id->setValue($endereco->regiao_id);
  897. }
  898. // set row counter
  899. $this->cep->{'data-row_1'} = $this->detail_row_1;
  900. $id_endereco->{'data-row_1'} = $this->detail_row_1;
  901. $logradouro->{'data-row_1'} = $this->detail_row_1;
  902. $numero->{'data-row_1'} = $this->detail_row_1;
  903. $bairro->{'data-row_1'} = $this->detail_row_1;
  904. $cidade->{'data-row_1'} = $this->detail_row_1;
  905. $uf->{'data-row_1'} = $this->detail_row_1;
  906. $tipo_endereco_id->{'data-row_1'} = $this->detail_row_1;
  907. $complemento->{'data-row_1'} = $this->detail_row_1;
  908. $regiao_id->{'data-row_1'} = $this->detail_row_1;
  909. //set ids
  910. //$btn_cep ->setId('btn_cep)'.$uniqid);
  911. //$id_end ->setId('id_endereco_'.$uniqid);
  912. $this->cep ->setId('cep_'.$uniqid);
  913. $id_endereco ->setId('id_endereco_'.$uniqid);
  914. $logradouro ->setId('logradouro_'.$uniqid);
  915. $bairro ->setId('bairro_'.$uniqid);
  916. $cidade ->setId('cidade_'.$uniqid);
  917. $uf ->setId('uf_'.$uniqid);
  918. $numero ->setId('numero_'.$uniqid);
  919. $tipo_endereco_id->setId('tipo_endereco_id_'.$uniqid);
  920. $complemento ->setId('compl_'.$uniqid);
  921. $regiao_id ->setId('regiao_id'.$uniqid);
  922. // create delete button
  923. $del_endereco = new TImage('fa:trash-o blue');
  924. $del_endereco->onclick = 'ttable_remove_row(this)';
  925. $row_end = $this->table_endereco->addRowSet([$id_endereco,$this->cep,$logradouro,$numero,$bairro,$cidade,$uf,$tipo_endereco_id,$complemento,$regiao_id,$del_endereco]);
  926. $row_end->{'data-row'} = $this->detail_row_1;
  927. $id_endereco->setSize('30');
  928. $this->cep->setSize('70');
  929. $logradouro->setSize('160');
  930. $bairro->setSize('140');
  931. $cidade->setSize('100');
  932. $uf->setSize('30');
  933. $numero->setSize('65');
  934. $complemento->setSize('100');
  935. $regiao_id->setSize('90');
  936. $tipo_endereco_id->setSize('100');
  937. $this->detail_row_1 ++;
  938. }
  939. /* Action to be executed when the user changes the gender or status
  940. * @param $param Action parameters
  941. */
  942. static function onChangeAction($param)
  943. {
  944. try
  945. {
  946. if ($param['categoria_juridica_id'])//se existe parâmetro da primeira combo(nome da primeira combo)
  947. {
  948. $criteria = TCriteria::create( ['categoria_juridica_id' => $param['categoria_juridica_id'] ] );
  949. //categoria_juridica_id = parametro chave estrangeira da tabela master
  950. //formname,field(nome do campo),database , nome da model,key,value,ordercolumn = NULL,criteria, startEmpty = FALSE
  951. TDBCombo::reloadFromModel('frm_empresa','natureza_juridica_id','centinel','NaturezaJuridica','id','{codigo_descricao}', 'codigo_descricao',$criteria,TRUE);
  952. }
  953. else
  954. {
  955. TCombo::clearField('frm_empresa', 'natureza_juridica_id'); //reload do formulario frm_empresa na segunda combo "natureza_juridica_id"
  956. }
  957. }
  958. catch (Exception $e)
  959. {
  960. new TMessage('error', $e->getMessage());
  961. }
  962. }
  963. public function fireEvents( $object )
  964. {
  965. $obj = new stdClass;
  966. if(get_class($object) == 'stdClass')
  967. {
  968. if(isset($object->juridica->categoria_juridica_id))
  969. {
  970. $obj->categoria_juridica_id = $object->juridica->categoria_juridica_id;
  971. }
  972. if(isset($object->juridica->natureza_juridica_id))
  973. {
  974. $obj->natureza_juridica_id = $object->juridica->natureza_juridica_id;
  975. }
  976. }
  977. else
  978. {
  979. if(isset($object->juridica->categoria_juridica_id))
  980. {
  981. $obj->categoria_juridica_id = $object->juridica->categoria_juridica_id;
  982. }
  983. if(isset($object->juridica->natureza_juridica_id))
  984. {
  985. $obj->natureza_juridica_id = $object->juridica->natureza_juridica_id;
  986. }
  987. }
  988. TForm::sendData('frm_empresa', $obj);
  989. }
  990. public static function formataTelefone($param)
  991. {
  992. try
  993. {
  994. if( isset($param['tipo_telefone_id']) && $param['tipo_telefone_id']< '3')
  995. {
  996. TScript::create( "$('input[name=telefone]').off();
  997. $('input[name=telefone]').val('');
  998. $('input[name=telefone]').keypress(function() { tentry_mask(this, event, '9999-9999') }); " );
  999. }
  1000. elseif( isset($param['tipo_telefone_id']) && $param['tipo_telefone_id']> '2')
  1001. {
  1002. TScript::create( "$('input[name=telefone]').off();
  1003. $('input[name=telefone]').val('');
  1004. $('input[name=telefone]').keypress(function() { tentry_mask(this, event, '99999-99999') }); " );
  1005. }
  1006. }
  1007. catch(Exception $e)
  1008. {
  1009. new TMessage('error', $e->getMessage());
  1010. }
  1011. }
  1012. //Código fa ACTION
  1013. public function onCNPJ($param)
  1014. {
  1015. try
  1016. {
  1017. if (isset($param['pesq_cnpj']) and (!empty($param['pesq_cnpj'])))
  1018. {
  1019. //Joga o valor informado para uma variavel
  1020. $documento = $param['pesq_cnpj'];
  1021. //Deixa apenas numeros usando expressão regular
  1022. $documento = str_replace('.','',str_replace('/','',str_replace('-','',$documento)));
  1023. //$documento = preg_replace("/D/","", $documento);
  1024. //efetua a consulta e joga o resultado na variavel retorno
  1025. $retorno = @file_get_contents('https://www.receitaws.com.br/v1/cnpj/'.urlencode($documento));
  1026. $objeto = json_decode($retorno);
  1027. //print_r($objeto);
  1028. if (isset($objeto->nome))
  1029. {
  1030. $obj = new stdClass();
  1031. $obj->nome_empresarial = $objeto->nome;
  1032. $str = '*******************************';
  1033. if($objeto->fantasia == '')
  1034. {
  1035. $obj->nome_fantasia = $str;
  1036. }else
  1037. {
  1038. $obj->nome_fantasia = $objeto->fantasia;
  1039. }
  1040. $obj->data_nascto = $objeto->abertura;
  1041. $obj->cep = $objeto->cep;
  1042. $obj->logradouro = $objeto->logradouro;
  1043. $obj->numero = $objeto->numero;
  1044. $obj->bairro = $objeto->bairro;
  1045. $obj->cidade = $objeto->municipio;
  1046. $obj->uf = $objeto->uf;
  1047. $obj->observacao = "";
  1048. $obj->email = $objeto->email;
  1049. $obj->situacao = $objeto->situacao;
  1050. $this->datagrid->clear();
  1051. foreach($objeto->atividade_principal as $object)
  1052. {
  1053. $this->datagrid->addItem($object);
  1054. }
  1055. $this->datagrid1->clear();
  1056. foreach($objeto->atividades_secundarias as $object1)
  1057. {
  1058. $this->datagrid1->addItem($object1);
  1059. }
  1060. $this->panel->style = 'display:block';
  1061. $objects = NaturezaJuridica::pesqNatureza($objeto->natureza_juridica);
  1062. //print_r($objects);
  1063. foreach ($objects as $value)
  1064. {
  1065. $obj->categoria_juridica_id = $value->categoria_juridica_id;
  1066. $obj->natureza_juridica_id = $value->id;
  1067. }
  1068. $obj->capital_social = "R$ ".number_format($objeto->capital_social,2,',','.');
  1069. $obj->cnpj = $param['pesq_cnpj'];
  1070. TForm::sendData('frm_empresa',$obj);
  1071. unset($obj);
  1072. }
  1073. else
  1074. {
  1075. new TMessage('info', 'Erro ao buscar endereço por este CNPJ.');
  1076. }
  1077. }
  1078. }
  1079. catch (Exception $e)
  1080. {
  1081. new TMessage('error', '<b>Error:</b> ' . $e->getMessage());
  1082. }
  1083. }
  1084. /**
  1085. * method show()
  1086. * Shows the page
  1087. */
  1088. function show()
  1089. {
  1090. // check if the datagrid is already loaded
  1091. if (!$this->loaded)
  1092. {
  1093. $this->onCNPJ($param = NULL);
  1094. }
  1095. parent::show();
  1096. }
  1097. }
  1098. ?>


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)


FC

Rapaz estou com mesmo problema tudo indica que é por causa do "form" em volta do datagrid no meu caso é pq tenho um check no datagrid o Nataniel disse para mudar a posição neste topico https://www.adianti.com.br/forum/pt/view_4179?edit-inline-com-check-box
Mas ainda não descobri como fazer.
RB

Felipe,

Pelo que entendi, não da para adicionar um form dentro de outro form.