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

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

segue código abaixo

  1. <?php
  2. class EmpresaBuilder extends TPage
  3. {
  4.     private $form;
  5.     protected $table_contato;
  6.     protected $frame_contato;
  7.     protected $deta_row;
  8.     protected $deta_row_1;
  9.     protected $table_endereco;
  10.     protected $frame_endereco;
  11.     protected $cep;
  12.     private $datagrid// listing
  13.     private $datagrid1// listing
  14.     private $loaded;
  15.     private $panel;
  16.     public function __construct(){
  17.         parent::__construct();
  18.          parent::include_css('app/resources/builder.css');
  19.         parent::include_css('app/resources/blue_modificado.css');
  20.         //cria formulario
  21.         $this->form = new BootstrapFormBuilder('frm_empresa');
  22.         $this->form->setFormTitle('Empresa');
  23.         $this->form->id 'frm_empresa';
  24.         
  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. ?>


Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 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.