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


Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto 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.