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.