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
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
- <?php
- class EmpresaBuilder extends TPage
- {
- private $form;
- protected $table_contato;
- protected $frame_contato;
- protected $deta_row;
- protected $deta_row_1;
- protected $table_endereco;
- protected $frame_endereco;
- protected $cep;
- private $datagrid; // listing
- private $datagrid1; // listing
- private $loaded;
- private $panel;
- public function __construct(){
- parent::__construct();
- parent::include_css('app/resources/builder.css');
- parent::include_css('app/resources/blue_modificado.css');
- //cria formulario
- $this->form = new BootstrapFormBuilder('frm_empresa');
- $this->form->setFormTitle('Empresa');
- $this->form->id = 'frm_empresa';
- $div_pesq = new TElement('div');
- $div_pesq->id = 'div_pesq';
- $div_pesq->style = 'width:100%;';
- //cria formulário de pesquisa
- $form_cnpj = new TForm('frm_cnpj');
- $form_cnpj->style = 'width:30%;float:right;';
- $pesq_cnpj = new TEntry('pesq_cnpj');
- $pesq_cnpj->setMask('99.999.999/9999-99');
- $pesq_cnpj->setMaxLength(18);
- $pesq_cnpj->placeholder = "CNPJ";
- // creates the action button
- $button1 = new TButton('action1');
- $button1->setAction(new TAction(array($this, 'onCNPJ')), 'Pesquisar');
- $button1->setImage('fa:check-circle-o green');
- //adciona itens ao formulário de pesquisa
- $form_cnpj->add($pesq_cnpj);
- $form_cnpj->setFields([$pesq_cnpj,$button1]);
- $div_pesq->add($form_cnpj);
- $this->form->addFields([$div_pesq,$button1] );
- $dados_cliente = new TLabel('Identificação da Empresa');
- $dados_cliente->class = 'lbl_titulo';
- $this->form->addContent( [$dados_cliente] );
- //cria os labels do fromulário
- $lbl_tipo_organizacao = new TLabel('Tipo');
- $lbl_id = new TLabel('#');
- $lbl_nome_empresarial = new TLabel('Nome Empresarial');
- $lbl_nome_fantasia = new TLabel('Nome de Fantasia');
- $lbl_razao_social = new TLabel('Razão Social');
- $lbl_data_nascto = new TLabel('Data Início');
- $lbl_cod_desc_ativ_principal = new TLabel('Código e Descrição da Atividade Econômica Principal');
- $lbl_cod_desc_ativ_secundaria = new TLabel('Código e Descrição da Atividade Econômica Secundária');
- $lbl_categoria_natureza_juridica = new TLabel('Categoria Natureza Jurídica');
- $lbl_cod_natureza_juridica = new TLabel('Código e Descrição da Natureza Jurídica');
- $lbl_cod_modelo_fiscal = new TLabel('Modelo Fiscal');
- $lbl_status = new TLabel('Status');
- //formata fontes titulos
- $lbl_id->class='lbl_text';
- $lbl_nome_empresarial->class='lbl_text';
- $lbl_nome_fantasia->class='lbl_text';
- $lbl_razao_social->class='lbl_text';
- $lbl_data_nascto->class='lbl_text';
- $lbl_tipo_organizacao->class='lbl_text';
- $lbl_cod_desc_ativ_principal->class='lbl_text';
- $lbl_cod_desc_ativ_secundaria->class='lbl_text';
- $lbl_categoria_natureza_juridica->class='lbl_text';
- $lbl_cod_natureza_juridica->class='lbl_text';
- $lbl_cod_modelo_fiscal->class='lbl_text';
- $lbl_status->class='lbl_text';
- //cria os campos do fromulário Identificação da Empresa
- $id = new TEntry('id');
- $id->setEditable(false);
- $tipo_organizacao_id = new TCombo('tipo_organizacao_id');
- $tipo_organizacao_id->setSize('9%');
- $tipo_organizacao_id->addItems( [ '1' => 'Matriz', '2' => 'Filial'] );
- $tipo_organizacao_id->setDefaultOption(false);
- $nome_empresarial = new TEntry('nome_empresarial', new TRequiredValidator);
- $nome_fantasia = new TEntry('nome_fantasia', new TRequiredValidator);
- $razao_social = new TEntry('razao_social', new TRequiredValidator);
- $data_nascto = new TDate('data_nascto', new TRequiredValidator);
- $data_nascto->setMask('dd/mm/yyyy');
- // creates a DataGrid
- $this->datagrid = new BootstrapDatagridWrapper(new TQuickGrid);
- // creates the datagrid columns
- $code = new TDataGridColumn('code', 'Código', 'left','10%');
- $atv_principal = new TDataGridColumn('text', 'Atividade Principal', 'left','90%');
- // add the columns to the DataGrid
- $this->datagrid->addColumn($code);
- $this->datagrid->addColumn($atv_principal);
- // create the datagrid model
- $this->datagrid->createModel();
- // creates a DataGrid
- $this->datagrid1 = new BootstrapDatagridWrapper(new TQuickGrid);
- // creates the datagrid columns
- $code1 = new TDataGridColumn('code', 'Código', 'left','10%');
- $atv_secundaria = new TDataGridColumn('text', 'Atividade Secundária', 'left','90%');
- // add the columns to the DataGrid
- $this->datagrid1->addColumn($code1);
- $this->datagrid1->addColumn($atv_secundaria);
- // creates the edit action
- $editaction1 = new TDataGridAction(array($this, 'onEdit'));
- $editaction1->setField('text');
- $atv_secundaria->setEditAction($editaction1);
- // create the datagrid model
- $this->datagrid1->createModel();
- $nome_empresarial->style = 'text-transform: uppercase';
- $nome_fantasia->style = 'text-transform: uppercase';
- $razao_social->style ='text-transform: uppercase';
- $lbl_id->setSize('5%');
- $id->setSize('5%');
- $lbl_id->style = 'display:none';
- $id->style = 'display:none';
- $lbl_nome_fantasia->setSize('25%');
- $lbl_nome_empresarial->setSize('25%');
- $lbl_razao_social->setSize('30%');
- $lbl_cod_natureza_juridica->setSize('50%');
- $nome_empresarial->setSize('25%');
- $nome_fantasia->setSize('25%');
- $razao_social->setSize('30%');
- $data_nascto->setSize('11%');
- $lbl_tipo_organizacao->setSize('9%');
- //adciona criterio de filtro categoria natureza juridica
- $filter = new TCriteria;
- $filter->add(new TFilter('id', '<', '4'));
- //combo 1(master)
- $categoria_juridica_id = new TDBCombo('categoria_juridica_id' ,'centinel','CategoriaJuridica','id','descricao','descricao asc',$filter);
- $categoria_juridica_id->setDefaultOption(false);
- $categoria_juridica_id->setChangeAction( new TAction( array($this, 'onChangeAction')) );
- $filter1 = new TCriteria;
- $filter1->add(new TFilter('id', '<','0'));
- //combo 2 (detail)
- $natureza_juridica_id = new TDBCombo('natureza_juridica_id','centinel','NaturezaJuridica','id','codigo_descricao','codigo_descricao asc',$filter1);
- $natureza_juridica_id->setDefaultOption(false);
- $lbl_categoria_natureza_juridica->setSize('50%');
- $lbl_cod_natureza_juridica->setSize('50%');
- $categoria_juridica_id->setSize('50%');
- $natureza_juridica_id->setSize('50%');
- //$modelo_fiscal = new TText('modelo_fiscal');
- $modelo_fiscal = new TDBCombo('modelo_fiscal_id','centinel','ModeloFiscal','id','nome');
- $modelo_fiscal->setDefaultOption(false);
- //cria os labels do fromulário Documentos de Registro da Empresa
- $lbl_cnpj = new TLabel('CNPJ');
- $lbl_inscricao_estadual = new TLabel('Inscrição Estadual');
- $lbl_inscricao_junta_comercial = new TLabel('Inscrição Junta Comercial');
- $lbl_inscricao_municipal = new TLabel('Inscrição Municipal');
- $lbl_cnpj->class='lbl_text';
- $lbl_inscricao_estadual->class='lbl_text';
- $lbl_inscricao_junta_comercial->class='lbl_text';
- $lbl_inscricao_municipal->class='lbl_text';
- //cria os campos do fromulário documentos
- $cnpj = new TEntry('cnpj');
- $cnpj->setMask('99.999.999/9999-99');
- $cnpj->setMaxLength(18);
- $cnpj->addValidation('cnpj',new TCNPJValidator);
- $cnpj->addValidation('cnpj',new TMaxLengthValidator, array(18));
- $cnpj->addValidation('cnpj',new TMinValueValidator, array(18));
- $cnpj->addValidation('cnpj',new TNumericValidator);
- $inscricao_estadual = new TEntry('inscricao_estadual');
- $inscricao_estadual->setMaxLength(15);
- $inscricao_junta_comercial = new TEntry('inscricao_junta_comercial');
- $inscricao_junta_comercial->setMaxLength(15);
- $inscricao_municipal = new TEntry('inscricao_municipal');
- $inscricao_municipal->setMaxLength(15);
- //adiciona atividades no container atividades
- $this->panel = new TPanelGroup('');
- $this->panel->style = 'display:none';
- $this->panel->add($this->datagrid);
- $this->panel->add($this->datagrid1);
- $this->form->addFields([$lbl_id,$lbl_nome_empresarial,$lbl_nome_fantasia,$lbl_razao_social,$lbl_tipo_organizacao,$lbl_data_nascto]);
- $this->form->addFields([$id,$nome_empresarial,$nome_fantasia,$razao_social,$tipo_organizacao_id,$data_nascto]);
- $this->form->addFields([$this->panel]);
- $this->form->addFields([$lbl_categoria_natureza_juridica,$lbl_cod_natureza_juridica]);
- $this->form->addFields([$categoria_juridica_id,$natureza_juridica_id]);
- //adiciona campos documentos empresa
- $documentos_registro = new TLabel('Documentos de Registro da Empresa');
- $documentos_registro->class ='lbl_titulo';
- $this->form->addContent( [$documentos_registro] );
- $this->form->addFields([$lbl_cnpj,$lbl_inscricao_estadual,$lbl_inscricao_junta_comercial,$lbl_inscricao_municipal]);
- $this->form->addFields([$cnpj,$inscricao_estadual,$inscricao_junta_comercial,$inscricao_municipal]);
- $lbl_cnpj->setSize('25%');
- $lbl_inscricao_estadual->setSize('25%');
- $lbl_inscricao_junta_comercial->setSize('25%');
- $lbl_inscricao_municipal->setSize('25%');
- $cnpj->setSize('25%');
- $inscricao_estadual->setSize('25%');
- $inscricao_junta_comercial->setSize('25%');
- $inscricao_municipal->setSize('25%');
- //adiciona campos informações financeiras da empresa
- $informacoes_financeira = new TLabel('Informações Financeira');
- $informacoes_financeira->class ='lbl_titulo';
- $this->form->addContent( [$informacoes_financeira] );
- $lbl_capital_social = new TLabel('Capital Social');
- $lbl_faturamento_anual = new TLabel('Faturamento Anual');
- $lbl_margen_lucro = new TLabel('Margem de Lucro');
- $lbl_situacao = new TLabel('Situacao');
- $capital_social = new TEntry('capital_social');
- $capital_social->setNumericMask(2,',','.');
- $faturamento_anual = new TEntry('faturamento_anual');
- $faturamento_anual->setNumericMask(2,',','.');
- $margen_lucro = new TEntry('margen_lucro');
- $situacao = new TEntry('situacao');
- $situacao->setSize('9%');
- $this->form->addFields([$lbl_capital_social,$lbl_faturamento_anual,$lbl_margen_lucro,$lbl_situacao]);
- $this->form->addFields([$capital_social,$faturamento_anual,$margen_lucro,$situacao]);
- //formata labels informações financeiras
- $lbl_capital_social->class = 'lbl_text';
- $lbl_faturamento_anual->class = 'lbl_text';
- $lbl_margen_lucro->class = 'lbl_text';
- $lbl_situacao->class = 'lbl_text';
- $lbl_capital_social->setSize('25%');
- $lbl_faturamento_anual->setSize('25%');
- $lbl_margen_lucro->setSize('40%');
- $lbl_situacao->setSize('10%');
- $capital_social->setSize('25%');
- $faturamento_anual->setSize('25%');
- $margen_lucro->setSize('40%');
- $situacao->setSize('10%');
- //cria dados de contato
- $contato = new TLabel('Contato');
- $contato->class = 'lbl_titulo';
- $lbl_ddi = new TLabel('DDI');
- $lbl_dd = new TLabel('DDD');
- $lbl_tipo_telefone = new TLabel('Tipo Telefone');
- $lbl_telefone = new TLabel('Telefone');
- $lbl_operadora = new TLabel('Operadora');
- //Cria tabela contato adiciona campos
- $this->table_contato = new TTable('table_contato');
- $this->table_contato->width ='100%';
- $this->table_contato->addSection('thead');
- $this->table_contato->addSection('tbody');
- //cria frame contato
- $this->frame_contato = new TFrame;
- $this->frame_contato->style = 'width:98%;border:none;float:lef;margin-left:-1px;';
- $this->frame_contato->add($contato);
- $this->frame_contato->add($this->table_contato);
- $this->table_contato->addRowSet([$lbl_ddi,$lbl_dd,$lbl_tipo_telefone,$lbl_telefone,$lbl_operadora]);
- $this->form->addContent([$this->frame_contato]);
- $lbl_email = new TLabel('Email');
- $email = new TEntry('email');
- $email->placeholder = "exemplo@exemplo.com.br";
- $email->addValidation('email', new TEmailValidator); // email field
- $lbl_site = new TLabel('Site');
- $site = new TEntry('url');
- $site->placeholder = "exemplo.com.br";
- $lbl_responsavel = new TLabel('Responsável');
- $responsavel = new TEntry('responsavel');
- $responsavel->style='text-transform: uppercase';
- //adiciona contato web
- $this->form->addFields( [$lbl_email,$lbl_site,$lbl_responsavel] );
- $this->form->addFields( [$email,$site,$responsavel] );
- $email->setSize('33.3333%');
- $site->setSize('33.3333%');
- $responsavel->setSize('33.3333%');
- //adiciona dados de correspondência
- $lbl_endereco = new TLabel('Endereco');
- $lbl_endereco->class='lbl_titulo';
- $lbl_cep = new TLabel('Cep');
- $lbl_id_cep = new TLabel('#');
- $lbl_id_cep->style = 'display:none;';
- $lbl_logradouro = new TLabel('Logradouro');
- $lbl_numero = new TLabel('Número');
- $lbl_bairro = new TLabel('Bairro');
- $lbl_cidade = new TLabel('Cidade');
- $lbl_uf = new TLabel('UF');
- $lbl_tipo_endereco_id = new TLabel('Tipo Endereco');
- $lbl_complemento = new TLabel('Complemento');
- $lbl_regiao = new TLabel('Região');
- $this->detail_row = 0;
- $this->detail_row_1 = 0;
- $this->table_endereco = new TTable();
- $this->table_endereco->width ='100%';
- $this->table_endereco->addSection('thead');
- $this->table_endereco->addSection('tbody');
- $this->frame_endereco = new TFrame;
- $this->frame_endereco->style ='width:98%;border:none;float:lef;margin-left:-1px;';
- $this->frame_endereco->add($lbl_endereco);
- $this->frame_endereco->add($this->table_endereco);
- $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]);
- $this->form->addContent([$this->frame_endereco]);
- $lbl_id_cep->class='lbl_text';
- $lbl_cep->class='lbl_text';
- $lbl_logradouro->class='lbl_text';
- $lbl_numero->class='lbl_text';
- $lbl_tipo_endereco_id->class='lbl_text';
- $lbl_bairro->class='lbl_text';
- $lbl_cidade->class='lbl_text';
- $lbl_uf->class='lbl_text';
- $lbl_complemento->class='lbl_text';
- $lbl_regiao->class='lbl_text';
- $lbl_id_cep->setSize('30');
- $lbl_cep->setSize('70');
- $lbl_logradouro->setSize('160');
- $lbl_bairro->setSize('140');
- $lbl_cidade->setSize('100');
- $lbl_uf->setSize('30');
- $lbl_numero->setSize('65');
- $lbl_complemento->setSize('100');
- $lbl_regiao->setSize('100');
- $lbl_tipo_endereco_id->setSize('100');
- $lbl_ddi->class='lbl_text';
- $lbl_dd->class='lbl_text';
- $lbl_tipo_telefone->class='lbl_text';
- $lbl_telefone->class='lbl_text';
- $lbl_operadora->class='lbl_text';
- $lbl_email->class='lbl_text';
- $lbl_site->class='lbl_text';
- $lbl_responsavel->class='lbl_text';
- $lbl_ddi->setSize('40');
- $lbl_dd->setSize('40');
- $lbl_tipo_telefone->setSize('100');
- $lbl_telefone->setSize('100');
- $lbl_email->setSize('33.3333%');
- $lbl_site->setSize('33.3333%');
- $lbl_responsavel->setSize('33.3333%');
- //cria botões de ações
- $this->form->addAction('Salvar',new TAction(array($this, 'onSave')),'fa:save blue');
- $this->form->addAction('Listar',new TAction(array('EmpresaGrid','onReload')),'fa:table blue');
- // wrap the page content using vertical box
- $vbox = new TVBox;
- $vbox->style = 'width:100%,display:table;';
- $vbox->add($this->form);
- parent::add($this->form);
- }
- public function onClear($param)
- {
- $this->form->clear(TRUE);
- //$this->table_contato->addSection('tbody');
- $this->addContatoRow(new stdClass);
- self::formataTelefone($param);
- //criar e adicionar botão
- $add = new TButton('addContact');
- $add->setLabel('Adicionar');
- $add->setImage('fa:plus-circle blue');
- $add->addFunction('ttable_clone_previous_row(this)');
- //adiciona botão a tabela
- $row = $this->table_contato->addSection('tfoot');
- $row = $this->table_contato->addRowSet([$add]);
- //adciona tabela endereco
- //$this->table_endereco->addSection('tbody');
- $this->addEnderecoRow(new stdClass);
- //criar e adicionar botão
- $add_endereco = new TButton('addEnder');
- $add_endereco->setLabel('Adicionar');
- $add_endereco->setImage('fa:plus-circle blue');
- $add_endereco->addFunction('ttable_clone_previous_row(this)');
- //adiciona botão a tabela
- $row_end = $this->table_endereco->addSection('tfoot');
- $row_end = $this->table_endereco->addRowSet([$add_endereco]);
- }
- public static function onCep($param)
- {
- $endereco_cep = $param['_field_id'];
- $cep_endereco = $param['_field_value'];
- $endereco_cep = explode('_', $endereco_cep);
- $unique_id = end($endereco_cep);
- $retorno = Endereco::BuscaCepWeb($cep_endereco);
- if (!empty($retorno))
- {
- $response = new stdClass;
- $response->{'id_endereco_'.$unique_id} = $retorno['id'];
- $response->{'logradouro_'.$unique_id} = $retorno['logradouro'];
- $response->{'bairro_'.$unique_id} = $retorno['bairro'];
- $response->{'cidade_'.$unique_id} = $retorno['localidade'];
- $response->{'uf_'.$unique_id} = $retorno['uf'];
- //$response->ibge = strtoupper( $retorno['ibge']);
- //$response->gia = strtoupper( $retorno['gia']);
- TForm::sendData('frm_empresa', $response);
- TScript::create('$("input[name=numero]").focus();');
- }
- else
- {
- $endereco = Endereco::BuscaCepBanco($cep_endereco);
- if($endereco)
- {
- $retorno = new stdClass;
- $retorno->{'id_endereco_'.$unique_id} = $endereco['id'];
- $retorno->{'logradouro_'.$unique_id} = $endereco['logradouro'];
- $retorno->{'bairro_'.$unique_id} = $endereco['bairro'];
- $retorno->{'cidade_'.$unique_id} = $endereco['cidade'];
- $retorno->{'uf_'.$unique_id} = $endereco['uf'];
- TForm::sendData('frm_empresa', $retorno);
- TScript::create('$("input[name=numero]").focus();');
- }
- /*
- else
- {
- new TMessage("error", "CEP - Em Branco ou Inválido");
- }
- */
- }
- }
- public static function onSave($param)
- {
- $organizacao_id = TSession::getValue('organizacion_id'); // pega id da empresa
- $user_id = TSession::getValue('userid'); // pega id da usuário
- $data_actual = date('Y-m-d H:i:s');
- try
- {
- if (isset($param['id']) AND(!empty($param['id'])))
- {
- $key = $param['id'];
- TTransaction::open('permission'); // open a transaction
- /*
- TTransaction::setLoggerFunction(function($param)
- {
- print $param.'<br/>';
- });
- */
- //inserir na base permission
- $system_organization = SystemUnit::where('organization_id','=',$key)->load();
- if($system_organization)
- {
- foreach ($system_organization as $object)
- {
- $object->name = $param['nome_fantasia'];
- //$object->unit_id = $key;
- $object->store();
- }
- }
- TTransaction::close(); // close the transaction
- }
- TTransaction::open('centinel'); // open a transaction
- /*
- TTransaction::setLoggerFunction(function($param)
- {
- print $param.'<br/>';
- });
- */
- if( (! $param['nome_fantasia'])){
- throw new Exception('O Campo nome fantasia é obrigatório');
- }
- if( (! $param['data_nascto'])){
- throw new Exception('O Campo data inicio é obrigatório');
- }
- if( (! $param['razao_social'])){
- throw new Exception('O Campo razao social é obrigatório');
- }
- if( (! $param['categoria_juridica_id'])){
- throw new Exception('O Campo categoria juridica é obrigatório');
- }
- if( (! $param['natureza_juridica_id'])){
- throw new Exception('O Campo natureza juridica é obrigatório');
- }
- if( (! $param['cnpj'])){
- throw new Exception('O Campo cnpj é obrigatório');
- }
- if (isset($param['id']) AND(!empty($param['id'])))
- {
- $key = $param['id'];
- $obj = Organizacao::find($key);
- $obj->tipo_organizacao_id = $param['tipo_organizacao_id'];
- $obj->store();
- $juridica = Juridica::find($obj->juridica_id);
- $juridica->cnpj = str_replace('.','',str_replace('/','',str_replace('-','',$param['cnpj'])));
- $juridica->nome = $param['nome_fantasia'];
- $juridica->razao_social = $param['razao_social'];
- $juridica->categoria_juridica_id = $param['categoria_juridica_id'];
- $juridica->natureza_juridica_id = $param['natureza_juridica_id'];
- $juridica->inscricao_municipal = $param['inscricao_municipal'];
- $juridica->inscricao_estadual = $param['inscricao_estadual'];
- $juridica->inscricao_junta_comercial = $param['inscricao_junta_comercial'];
- $juridica->criacao = date('Y-m-d H:i:s');
- $juridica->atualizacao = date('Y-m-d H:i:s');
- $juridica->atividade_primaria = $param['cod_desc_ativ_principal'];
- $juridica->atividade_secundaria = $param['cod_desc_ativ_secundaria'];
- $juridica->faturamento_anual = str_replace('R$','',$param['faturamento_anual']);
- $juridica->margen_lucro = str_replace('%','',$param['margen_lucro']);;
- $juridica->data_inicio = TDate::date2us($param['data_nascto']);
- $juridica->store();
- $pessoa = Pessoa::find($obj->pessoa_id);
- $pessoa->atualizacao = date('Y-m-d H:i:s');
- //adiciona contatos
- if( !empty($param['telefone']) AND is_array($param['telefone']) )
- {
- foreach( $param['telefone'] as $row => $telefone)
- {
- if ($telefone)
- {
- $item = new Contato;
- $item->pessoa_id = $pessoa->id;
- $item->ddi = trim($param['ddi'][$row]);
- $item->ddd = trim($param['dd'][$row]);
- $item->telefone = str_replace('-','',$param['telefone'][$row]);
- $item->operadora_id = $param['operadora_id'][$row];
- $item->tipo_telefone_id = $param['tipo_telefone_id'][$row];
- $item->criacao = $data_actual;
- $item->atualizacao = $data_actual;
- $item->ativo = 1;
- $item->organizacao_id = $organizacao_id;
- $pessoa->addContato($item);
- }
- }
- }
- //adiciona endereco
- if( !empty($param['cep']) AND is_array($param['cep']) AND is_array($param['numero']) )
- {
- foreach( $param['id_endereco'] as $row => $id_endereco)
- {
- if ($id_endereco)
- {
- $pessoa_endereco = new PessoaEndereco;
- $pessoa_endereco->pessoa_id = $pessoa->id;
- $pessoa_endereco->endereco_id = $param['id_endereco'][$row];
- $pessoa_endereco->tipo_endereco_id = $param['tipo_endereco_id'][$row];
- $pessoa_endereco->numero = $param['numero'][$row];
- $pessoa_endereco->complemento = $param['compl'][$row];
- $pessoa_endereco->criacao = $data_actual;
- $pessoa_endereco->atualizacao = $data_actual;
- $pessoa_endereco->organizacao_id = $organizacao_id;
- $pessoa_endereco->regiao_id = $param['regiao_id'][$row];
- $pessoa_endereco->ativo = 1;
- $pessoa->addPessoaEndereco($pessoa_endereco);
- }
- }
- }
- $pessoa->store();
- }
- else
- {
- //pesquisa se cnpj existe
- $juridica = Juridica::where('cnpj','=',str_replace('.','',str_replace('/','',str_replace('-','',$param['cnpj']))));
- if (!empty($juridica->id))
- {
- new TMessage('info', 'Juridica existe');
- print_r($param);
- }
- else
- {
- //new TMessage('info','juridica não existe');
- $pessoa = new Pessoa;
- $pessoa->criacao = date('Y-m-d H:i:s');
- $pessoa->atualizacao = date('Y-m-d H:i:s');
- //adiciona contatos
- if( !empty($param['telefone']) AND is_array($param['telefone']) )
- {
- foreach( $param['telefone'] as $row => $telefone)
- {
- if ($telefone)
- {
- $item = new Contato;
- $item->pessoa_id = $pessoa->id;
- $item->ddi = trim($param['ddi'][$row]);
- $item->ddd = trim($param['dd'][$row]);
- $item->telefone = str_replace('-','',$param['telefone'][$row]);
- $item->operadora_id = $param['operadora_id'][$row];
- $item->tipo_telefone_id = $param['tipo_telefone_id'][$row];
- $item->criacao = $data_actual;
- $item->atualizacao = $data_actual;
- $item->ativo = 1;
- $item->organizacao_id = $organizacao_id;
- $pessoa->addContato($item);
- }
- }
- }
- //adiciona endereco
- if( !empty($param['cep']) AND is_array($param['cep']) AND is_array($param['numero']) )
- {
- foreach( $param['id_endereco'] as $row => $id_endereco)
- {
- if ($id_endereco)
- {
- $pessoa_endereco = new PessoaEndereco;
- $pessoa_endereco->pessoa_id = $pessoa->id;
- $pessoa_endereco->endereco_id = $param['id_endereco'][$row];
- $pessoa_endereco->tipo_endereco_id = $param['tipo_endereco_id'][$row];
- $pessoa_endereco->numero = $param['numero'][$row];
- $pessoa_endereco->complemento = $param['compl'][$row];
- $pessoa_endereco->criacao = $data_actual;
- $pessoa_endereco->atualizacao = $data_actual;
- $pessoa_endereco->organizacao_id = $organizacao_id;
- $pessoa_endereco->regiao_id = $param['regiao_id'][$row];
- $pessoa_endereco->ativo = 1;
- $pessoa->addPessoaEndereco($pessoa_endereco);
- }
- }
- }
- $pessoa->store();
- if (!empty($param['url']))
- {
- $site = new Site;
- $site->nome = $param['url'];
- $site->url = $param['url'];
- $site->pessoa_id = $pessoa->id;
- $site->organizacao_id = $organizacao_id;
- $site->ativo = 1;
- $site->criacao = $data_actual;
- $site->atualizacao = $data_actual;
- $site->store();
- }
- if (!empty($param['email']))
- {
- $contatoweb = new ContatoWeb;
- $contatoweb->email = $param['email'];
- $contatoweb->pessoa_id = $pessoa->id;
- $contatoweb->organizacao_id = $organizacao_id;
- $contatoweb->criacao = $data_actual;
- $contatoweb->atualizacao = $data_actual;
- $contatoweb->ativo = 1;
- $contatoweb->store();
- }
- $juridica = new Juridica;
- $juridica->pessoa_id = $pessoa->id;
- $juridica->cnpj = str_replace('.','',str_replace('/','',str_replace('-','',$param['cnpj'])));
- $juridica->nome = $param['nome_fantasia'];
- $juridica->razao_social = $param['razao_social'];
- $juridica->modelo_fiscal_id = $param['modelo_fiscal_id'];
- $juridica->categoria_juridica_id = $param['categoria_juridica_id'];
- $juridica->natureza_juridica_id = $param['natureza_juridica_id'];
- $juridica->inscricao_municipal = $param['inscricao_municipal'];
- $juridica->inscricao_estadual = $param['inscricao_estadual'];
- $juridica->inscricao_junta_comercial = $param['inscricao_junta_comercial'];
- $juridica->criacao = date('Y-m-d H:i:s');
- $juridica->atualizacao = date('Y-m-d H:i:s');
- $juridica->atividade_primaria = $param['cod_desc_ativ_principal'];
- $juridica->atividade_secundaria = $param['cod_desc_ativ_secundaria'];
- $juridica->faturamento_anual = $param['faturamento_anual'];
- $juridica->margen_lucro = $param['margen_lucro'];
- $juridica->data_inicio = TDate::date2us($param['data_nascto']);
- $juridica->store();
- $organizacao = new Organizacao;
- $organizacao->pessoa_id = $pessoa->id;
- $organizacao->juridica_id = $juridica->id;
- $organizacao->organizacao_id = $organizacao_id;
- $organizacao->ativo = 1;
- $organizacao->tipo_organizacao_id = $param['tipo_organizacao_id'];
- //$organizacao->unidade_id = 1;
- $organizacao->store();
- self::fireEvents($object);
- //new TMessage('info','Pessoa id :'.$organizacao->id);
- $data = new stdClass;
- $data->id = $organizacao->id;
- TForm::sendData('frm_empresa', $data);// keep form data
- }
- }
- TTransaction::close(); // close the transaction
- TTransaction::open('permission'); // open a transaction
- //inserir na base permission
- $system_organization = new SystemUnit;
- $system_organization->name = $param['nome_fantasia'];
- $system_organization->active = 1;
- $system_organization->organization_id = TSession::getValue('organizacion_id');
- $system_organization->tipo_id = $param['tipo_organizacao_id'];
- $system_organization->store();
- new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
- TTransaction::close(); // close the transaction
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- TForm::sendData('frm_empresa', $param);// keep form data
- TTransaction::rollback();
- }
- }
- public function onEdit($param)
- {
- try
- {
- // get the parameter $key
- $field = $param['field'];
- $key = $param['key'];
- $value = $param['value'];
- if (isset($param['key']))
- {
- // open a transaction with database 'samples'
- TTransaction::open('centinel');
- $key = $param['key'];
- $organizacao = Organizacao::find($key);
- if($organizacao)
- {
- if (strlen($organizacao->juridica->cnpj) == 14):
- $cnpj = substr($organizacao->juridica->cnpj, 0, 2) . '.' . substr($organizacao->juridica->cnpj, 2, 3) . '.' . substr($organizacao->juridica->cnpj, 5, 3) . '/' . substr($organizacao->juridica->cnpj, 8, 4) . '-' . substr($organizacao->juridica->cnpj, 12, 2); endif;
- $organizacao->nome_fantasia = $organizacao->juridica->nome;
- $organizacao->data_nascto = TDate::date2br($organizacao->juridica->data_inicio);
- $organizacao->tipo_organizacao_id = $organizacao->tipo_organizacao_id;
- $organizacao->razao_social = $organizacao->juridica->razao_social;
- $organizacao->cod_desc_ativ_principal = $organizacao->juridica->atividade_primaria;
- $organizacao->cod_desc_ativ_secundaria = $organizacao->juridica->atividade_secundaria;
- $organizacao->categoria_juridica_id = $organizacao->juridica->categoria_juridica_id;
- $organizacao->natureza_juridica_id = $organizacao->juridica->natureza_juridica_id;
- $organizacao->{$field} = $value;
- $this->fireEvents($organizacao);
- $organizacao->modelo_fiscal_id = $organizacao->juridica->modelo_fiscal_id;
- $organizacao->cnpj = $cnpj;
- $organizacao->inscricao_estadual = $organizacao->juridica->inscricao_estadual;
- $organizacao->inscricao_junta_comercial = $organizacao->juridica->inscricao_junta_comercial;
- $organizacao->inscricao_municipal = $organizacao->juridica->inscricao_municipal;
- $organizacao->responsavel = $organizacao->juridica->responsavel;
- $organizacao->faturamento_anual = 'R$ ' .$organizacao->juridica->faturamento_anual;
- $organizacao->capital_social = 'R$ ' .$organizacao->juridica->capital_social;
- $organizacao->margen_lucro = $organizacao->juridica->margen_lucro.' % ';
- $organizacao->email = $organizacao->contatoweb_email;
- $organizacao->url = $organizacao->site_url;
- // reload the listing
- $this->onCNPJ($param);
- $this->datagrid->clear();
- if ($objects)
- {
- // iterate the collection of active records
- foreach ($objects as $object)
- {
- // add the object inside the datagrid
- $this->datagrid->addItem($object);
- }
- }
- //adiciona tabela contato ao formulário
- //$this->table_contato->addSection('tbody');
- $contatos = $organizacao->get_pessoa()->getContato();
- if (!empty($contatos))
- {
- foreach ($contatos as $contato)
- {
- $contato->telefone = substr($contato->telefone, 0, 4) . '-' . substr($contato->telefone, 4, 8);
- $this->addContatoRow($contato);
- }
- //criar e adicionar botão
- $add = new TButton('addContact');
- $add->setLabel('Adicionar');
- $add->setImage('fa:plus-circle blue');
- $add->addFunction('ttable_clone_previous_row(this)');
- //adiciona botão a tabela
- $row = $this->table_contato->addSection('tfoot');
- $row = $this->table_contato->addRowSet([$add]);
- }
- else
- {
- $this->onClear($param);
- }
- //adiciona tabela endereco ao formulário
- //$this->table_endereco->addSection('tbody');
- $endereco = $organizacao->get_pessoa()->getPessoaEndereco();
- if (!empty($endereco))
- {
- foreach ($endereco as $enderecos)
- {
- $this->addEnderecoRow($enderecos);
- }
- //criar e adicionar botão
- $add_endereco = new TButton('addEnder');
- $add_endereco->setLabel('Adiconar');
- $add_endereco->setImage('fa:plus-circle blue');
- $add_endereco->addFunction('ttable_clone_previous_row(this)');
- //adiciona botão a tabela
- $row_end = $this->table_endereco->addSection('tfoot');
- $row_end = $this->table_endereco->addRowSet([$add_endereco]);
- }
- else
- {
- $this->onClear($param);
- }
- }
- $this->form->setData($organizacao);
- // close the transaction
- TTransaction::close();
- }
- }catch (Exception $e) // in case of exception
- {
- new TMessage('error', $e->getMessage());
- TForm::sendData('frm_empresa', $param);// keep form data
- TTransaction::rollback();
- }
- }
- /* method addContatoRow($contato)
- * adicona vetor de contatos no formulário
- */
- public function addContatoRow($contato){
- $uniqid = mt_rand(1000000, 9999999);
- $ddi = new TEntry('ddi[]');
- $ddi->setValue('55');
- $ddi->addValidation('ddi', new TNumericValidator,new TMaxValueValidator,array(2));
- if (!empty($contato->ddi))
- {
- $ddi->setValue($contato->ddi);
- }
- $dd = new TEntry('dd[]');
- $dd->setValue('011');
- $dd->addValidation('ddd',new TNumericValidator, new TMaxValueValidator,array(3));
- if (!empty($contato->dd))
- {
- $dd->setValue($contato->dd);
- }
- $tipo_telefone_id = new TDBCombo('tipo_telefone_id[]','centinel','TipoTelefone','id','descricao');
- $tipo_telefone_id->setDefaultOption(false);
- if (!empty($contato->tipo_telefone_id))
- {
- foreach ($contato->tipo_telefone_id as $tipo_telefone_id)
- {
- // set exit action for input_exit
- $change_action = new TAction(array($this, 'formataTelefone'));
- $tipo_telefone_id->setChangeAction($change_action);
- $tipo_telefone_id->setValue($contato->tipo_telefone_id);
- }
- }
- $telefone = new TEntry('telefone[]');
- if (!empty($contato->telefone))
- {
- if ($contato->tipo_telefone_id == 3) {
- $telefone->setMask('99999-9999');
- $telefone->setValue($contato->telefone);
- $telefone->addValidation('telefone', new TNumericValidator);
- }
- else
- {
- $telefone->setMask('9999-9999');
- $telefone->setValue($contato->telefone);
- $telefone->addValidation('telefone', new TNumericValidator);
- }
- }
- $operadora_id = new TDBCombo('operadora_id[]','centinel','Operadora','id','nome');
- $operadora_id->setDefaultOption(false);
- if (!empty($contato->operadora_id))
- {
- $operadora_id->setValue($contato->operadora_id);
- }
- //set ids
- $ddi->setId('ddi_'.$uniqid);
- $dd->setId('dd_'.$uniqid);
- $telefone->setId('telefone_'.$uniqid);
- $tipo_telefone_id->setId('tipo_telefone_id_'.$uniqid);
- $operadora_id->setId('operadora_id_'.$uniqid);
- // create delete button
- $del = new TImage('fa:trash-o blue');
- $del->onclick = 'ttable_remove_row(this)';
- $row = $this->table_contato->addRowSet([$ddi,$dd,$tipo_telefone_id,$telefone,$operadora_id,$del]);
- $this->detail_row ++;
- $ddi->setSize('40');
- $dd->setSize('40');
- $tipo_telefone_id->setSize('100');
- $telefone->setSize('100');
- $operadora_id ->setSize('100');
- }
- /* method addEnderecoRow($endereco)
- * adicona vetor de endereco no formulário
- */
- public function addEnderecoRow($endereco)
- {
- $uniqid = mt_rand(1000000, 9999999);
- $this->cep = new TEntry('cep[]');
- $this->cep->setMask('00000-000');
- $this->cep->addValidation('CEP', new TRequiredValidator, new TMaxValueValidator,array(8));
- $this->form->addField($this->cep);
- $input_cep = new TAction(array($this,'onCep'));
- $this->cep->setExitAction($input_cep);
- if (!empty($endereco->endereco->cep))
- {
- $this->cep->setValue($endereco->endereco->cep);
- }
- $id_endereco = new TEntry('id_endereco[]');
- $id_endereco->setEditable(false);
- $id_endereco->style = 'display:none;';
- if (!empty($endereco->endereco->id))
- {
- $id_endereco->setValue($endereco->endereco->id);
- }
- $logradouro = new TEntry('logradouro[]');
- if (!empty($endereco->endereco->logradouro))
- {
- $logradouro->setValue($endereco->endereco->logradouro);
- }
- $bairro = new TEntry('bairro[]');
- if (!empty($endereco->endereco->bairro))
- {
- $bairro->setValue($endereco->endereco->bairro);
- }
- $cidade = new TEntry('cidade[]');
- if (!empty($endereco->endereco->cidade))
- {
- $cidade->setValue($endereco->endereco->cidade);
- }
- $uf = new TEntry('uf[]');
- if (!empty($endereco->endereco->uf))
- {
- $uf->setValue($endereco->endereco->uf);
- }
- $numero = new TEntry('numero[]');
- if (!empty($endereco->numero))
- {
- $numero->setValue($endereco->numero);
- }
- $tipo_endereco_id = new TDBCombo('tipo_endereco_id[]','centinel','TipoEndereco','id','descricao');
- $tipo_endereco_id->setDefaultOption(false);
- if (!empty($endereco->tipo_endereco_id))
- {
- $tipo_endereco_id->setValue($endereco->tipo_endereco_id);
- }
- $complemento = new TEntry('compl[]');
- if (!empty($endereco->complemento))
- {
- $complemento->setValue($endereco->complemento);
- }
- $regiao_id = new TDBCombo('regiao_id[]','centinel','Regiao','id','descricao');
- $regiao_id->setDefaultOption(false);
- if (!empty($endereco->regiao_id))
- {
- $regiao_id->setValue($endereco->regiao_id);
- }
- // set row counter
- $this->cep->{'data-row_1'} = $this->detail_row_1;
- $id_endereco->{'data-row_1'} = $this->detail_row_1;
- $logradouro->{'data-row_1'} = $this->detail_row_1;
- $numero->{'data-row_1'} = $this->detail_row_1;
- $bairro->{'data-row_1'} = $this->detail_row_1;
- $cidade->{'data-row_1'} = $this->detail_row_1;
- $uf->{'data-row_1'} = $this->detail_row_1;
- $tipo_endereco_id->{'data-row_1'} = $this->detail_row_1;
- $complemento->{'data-row_1'} = $this->detail_row_1;
- $regiao_id->{'data-row_1'} = $this->detail_row_1;
- //set ids
- //$btn_cep ->setId('btn_cep)'.$uniqid);
- //$id_end ->setId('id_endereco_'.$uniqid);
- $this->cep ->setId('cep_'.$uniqid);
- $id_endereco ->setId('id_endereco_'.$uniqid);
- $logradouro ->setId('logradouro_'.$uniqid);
- $bairro ->setId('bairro_'.$uniqid);
- $cidade ->setId('cidade_'.$uniqid);
- $uf ->setId('uf_'.$uniqid);
- $numero ->setId('numero_'.$uniqid);
- $tipo_endereco_id->setId('tipo_endereco_id_'.$uniqid);
- $complemento ->setId('compl_'.$uniqid);
- $regiao_id ->setId('regiao_id'.$uniqid);
- // create delete button
- $del_endereco = new TImage('fa:trash-o blue');
- $del_endereco->onclick = 'ttable_remove_row(this)';
- $row_end = $this->table_endereco->addRowSet([$id_endereco,$this->cep,$logradouro,$numero,$bairro,$cidade,$uf,$tipo_endereco_id,$complemento,$regiao_id,$del_endereco]);
- $row_end->{'data-row'} = $this->detail_row_1;
- $id_endereco->setSize('30');
- $this->cep->setSize('70');
- $logradouro->setSize('160');
- $bairro->setSize('140');
- $cidade->setSize('100');
- $uf->setSize('30');
- $numero->setSize('65');
- $complemento->setSize('100');
- $regiao_id->setSize('90');
- $tipo_endereco_id->setSize('100');
- $this->detail_row_1 ++;
- }
- /* Action to be executed when the user changes the gender or status
- * @param $param Action parameters
- */
- static function onChangeAction($param)
- {
- try
- {
- if ($param['categoria_juridica_id'])//se existe parâmetro da primeira combo(nome da primeira combo)
- {
- $criteria = TCriteria::create( ['categoria_juridica_id' => $param['categoria_juridica_id'] ] );
- //categoria_juridica_id = parametro chave estrangeira da tabela master
- //formname,field(nome do campo),database , nome da model,key,value,ordercolumn = NULL,criteria, startEmpty = FALSE
- TDBCombo::reloadFromModel('frm_empresa','natureza_juridica_id','centinel','NaturezaJuridica','id','{codigo_descricao}', 'codigo_descricao',$criteria,TRUE);
- }
- else
- {
- TCombo::clearField('frm_empresa', 'natureza_juridica_id'); //reload do formulario frm_empresa na segunda combo "natureza_juridica_id"
- }
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- }
- }
- public function fireEvents( $object )
- {
- $obj = new stdClass;
- if(get_class($object) == 'stdClass')
- {
- if(isset($object->juridica->categoria_juridica_id))
- {
- $obj->categoria_juridica_id = $object->juridica->categoria_juridica_id;
- }
- if(isset($object->juridica->natureza_juridica_id))
- {
- $obj->natureza_juridica_id = $object->juridica->natureza_juridica_id;
- }
- }
- else
- {
- if(isset($object->juridica->categoria_juridica_id))
- {
- $obj->categoria_juridica_id = $object->juridica->categoria_juridica_id;
- }
- if(isset($object->juridica->natureza_juridica_id))
- {
- $obj->natureza_juridica_id = $object->juridica->natureza_juridica_id;
- }
- }
- TForm::sendData('frm_empresa', $obj);
- }
- public static function formataTelefone($param)
- {
- try
- {
- if( isset($param['tipo_telefone_id']) && $param['tipo_telefone_id']< '3')
- {
- TScript::create( "$('input[name=telefone]').off();
- $('input[name=telefone]').val('');
- $('input[name=telefone]').keypress(function() { tentry_mask(this, event, '9999-9999') }); " );
- }
- elseif( isset($param['tipo_telefone_id']) && $param['tipo_telefone_id']> '2')
- {
- TScript::create( "$('input[name=telefone]').off();
- $('input[name=telefone]').val('');
- $('input[name=telefone]').keypress(function() { tentry_mask(this, event, '99999-99999') }); " );
- }
- }
- catch(Exception $e)
- {
- new TMessage('error', $e->getMessage());
- }
- }
- //Código fa ACTION
- public function onCNPJ($param)
- {
- try
- {
- if (isset($param['pesq_cnpj']) and (!empty($param['pesq_cnpj'])))
- {
- //Joga o valor informado para uma variavel
- $documento = $param['pesq_cnpj'];
- //Deixa apenas numeros usando expressão regular
- $documento = str_replace('.','',str_replace('/','',str_replace('-','',$documento)));
- //$documento = preg_replace("/D/","", $documento);
- //efetua a consulta e joga o resultado na variavel retorno
- $retorno = @file_get_contents('https://www.receitaws.com.br/v1/cnpj/'.urlencode($documento));
- $objeto = json_decode($retorno);
- //print_r($objeto);
- if (isset($objeto->nome))
- {
- $obj = new stdClass();
- $obj->nome_empresarial = $objeto->nome;
- $str = '*******************************';
- if($objeto->fantasia == '')
- {
- $obj->nome_fantasia = $str;
- }else
- {
- $obj->nome_fantasia = $objeto->fantasia;
- }
- $obj->data_nascto = $objeto->abertura;
- $obj->cep = $objeto->cep;
- $obj->logradouro = $objeto->logradouro;
- $obj->numero = $objeto->numero;
- $obj->bairro = $objeto->bairro;
- $obj->cidade = $objeto->municipio;
- $obj->uf = $objeto->uf;
- $obj->observacao = "";
- $obj->email = $objeto->email;
- $obj->situacao = $objeto->situacao;
- $this->datagrid->clear();
- foreach($objeto->atividade_principal as $object)
- {
- $this->datagrid->addItem($object);
- }
- $this->datagrid1->clear();
- foreach($objeto->atividades_secundarias as $object1)
- {
- $this->datagrid1->addItem($object1);
- }
- $this->panel->style = 'display:block';
- $objects = NaturezaJuridica::pesqNatureza($objeto->natureza_juridica);
- //print_r($objects);
- foreach ($objects as $value)
- {
- $obj->categoria_juridica_id = $value->categoria_juridica_id;
- $obj->natureza_juridica_id = $value->id;
- }
- $obj->capital_social = "R$ ".number_format($objeto->capital_social,2,',','.');
- $obj->cnpj = $param['pesq_cnpj'];
- TForm::sendData('frm_empresa',$obj);
- unset($obj);
- }
- else
- {
- new TMessage('info', 'Erro ao buscar endereço por este CNPJ.');
- }
- }
- }
- catch (Exception $e)
- {
- new TMessage('error', '<b>Error:</b> ' . $e->getMessage());
- }
- }
- /**
- * method show()
- * Shows the page
- */
- function show()
- {
- // check if the datagrid is already loaded
- if (!$this->loaded)
- {
- $this->onCNPJ($param = NULL);
- }
- parent::show();
- }
- }
- ?>
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.
Felipe,
Pelo que entendi, não da para adicionar um form dentro de outro form.