ST
Fatal Error ao Salvar um registro
Amigos,
Ao salvar ou editar um registro está apresentando mensagens de erros:
Fatal error: Uncaught TypeError: Argument 1 passed to Perdcomp::set_tipo_documento() must be an instance of TipoDocumento, string given in C:xampphtdocsperdcompappmodelPerdcomp.class.php:85 Stack trace: #0 [internal function]: Perdcomp->set_tipo_documento('DeclaraxC3xA7xC3xA3o de...') #1 C:xampphtdocsperdcomplibadiantidatabaseTRecord.php(168): call_user_func(Array, 'DeclaraxC3xA7xC3xA3o de...') #2 C:xampphtdocsperdcomplibadiantiwidgetformTForm.php(376): AdiantiDatabaseTRecord->__set('tipo_documento', 'DeclaraxC3xA7xC3xA3o de...') #3 C:xampphtdocsperdcomplibadiantibaseAdiantiStandardFormTrait.php(36): AdiantiWidgetFormTForm->getData('Perdcomp') #4 [internal function]: PerdcompForm->onSave(Array) #5 C:xampphtdocsperdcomplibadianticontrolTPage.php(51): call_user_func(Array, Array) #6 C:xampphtdocsperdcomplibadianticontrolTPage.php(205): AdiantiControlTPage->run() #7 C:xampphtdocsperdcomplibadianticoreAdiantiCoreApplication.php(62): AdiantiControlTPage->sho in C:xampphtdocsperdcompappmodelPerdcomp.class.php on line 85
Segue código do modelo:
Ao salvar ou editar um registro está apresentando mensagens de erros:
Fatal error: Uncaught TypeError: Argument 1 passed to Perdcomp::set_tipo_documento() must be an instance of TipoDocumento, string given in C:xampphtdocsperdcompappmodelPerdcomp.class.php:85 Stack trace: #0 [internal function]: Perdcomp->set_tipo_documento('DeclaraxC3xA7xC3xA3o de...') #1 C:xampphtdocsperdcomplibadiantidatabaseTRecord.php(168): call_user_func(Array, 'DeclaraxC3xA7xC3xA3o de...') #2 C:xampphtdocsperdcomplibadiantiwidgetformTForm.php(376): AdiantiDatabaseTRecord->__set('tipo_documento', 'DeclaraxC3xA7xC3xA3o de...') #3 C:xampphtdocsperdcomplibadiantibaseAdiantiStandardFormTrait.php(36): AdiantiWidgetFormTForm->getData('Perdcomp') #4 [internal function]: PerdcompForm->onSave(Array) #5 C:xampphtdocsperdcomplibadianticontrolTPage.php(51): call_user_func(Array, Array) #6 C:xampphtdocsperdcomplibadianticontrolTPage.php(205): AdiantiControlTPage->run() #7 C:xampphtdocsperdcomplibadianticoreAdiantiCoreApplication.php(62): AdiantiControlTPage->sho in C:xampphtdocsperdcompappmodelPerdcomp.class.php on line 85
Segue código do modelo:
<?php/** * Perdcomp Active Record * @author <your-name-here> */class Perdcomp extends TRecord{ const TABLENAME = 'perdcomp'; const PRIMARYKEY= 'perdcomp_id'; const IDPOLICY = 'max'; // {max, serial} private $origem_documento; private $tipo_credito; private $tipo_documento; private $tipo_imposto; private $empresa; /** * Constructor method */ public function __construct($id = NULL, $callObjectLoad = TRUE) { parent::__construct($id, $callObjectLoad); parent::addAttribute('DataCriacao'); parent::addAttribute('DataTransmissao'); parent::addAttribute('Sequencial'); parent::addAttribute('Nr_PERDCOMP'); parent::addAttribute('TipoDocumento_id'); parent::addAttribute('OrigemDocumento_id'); parent::addAttribute('TipoCredito_id'); parent::addAttribute('SaldoDeclarado'); parent::addAttribute('Exercicio'); parent::addAttribute('TipoImposto_ID'); parent::addAttribute('ValorCompensado'); parent::addAttribute('Competencia'); parent::addAttribute('PERDCOMP_Original'); parent::addAttribute('Situacao'); parent::addAttribute('Cancelamento'); parent::addAttribute('CreditoOriginalInicial'); parent::addAttribute('CreditoOriginalUtilizadoCompensacoes'); parent::addAttribute('CreditoOriginalDisponivel'); parent::addAttribute('CreditoOriginalTransmissao'); parent::addAttribute('SelicAcumulada'); parent::addAttribute('CreditoAtualizado'); parent::addAttribute('DebitosDocumento'); parent::addAttribute('CreditoOriginalUtilizadoDocumento'); parent::addAttribute('SaldoCreditoOriginal'); parent::addAttribute('Empresa_id'); parent::addAttribute('Ged'); } public function set_origem_documento(OrigemDocumento $object) { $this->origem_documento = $object; $this->origem_documento_id = $object->OrigemDocumento_id; } public function get_origem_documento() { if (empty($this->origem_documento)) $this->origem_documento = new OrigemDocumento($this->OrigemDocumento_id); return $this->origem_documento->OrigemDocumentoDescricao; } public function set_tipo_credito(TipoCredito $object) { $this->tipo_credito = $object; $this->tipo_credito_id = $object->TipoCredito_id; } public function get_tipo_credito() { if (empty($this->tipo_credito)) $this->tipo_credito = new TipoCredito($this->TipoCredito_id); return $this->tipo_credito->TipoCreditoDescricao; } public function set_tipo_documento(TipoDocumento $object) { $this->tipo_documento = $object; $this->tipo_documento_id = $object->id; } public function get_tipo_documento() { if (empty($this->tipo_documento)) $this->tipo_documento = new TipoDocumento($this->TipoDocumento_id); return $this->tipo_documento->TipoDocumentoDescricao; } public function set_tipo_imposto(TipoImposto $object) { $this->tipo_imposto = $object; $this->tipo_imposto_id = $object->TipoImposto_ID; } public function get_tipo_imposto() { if (empty($this->tipo_imposto)) $this->tipo_imposto = new TipoImposto($this->TipoImposto_ID); return $this->tipo_imposto->TipoImposto_Descricao; } public function set_empresa(Empresa $object) { $this->empresa = $object; $this->empresa_id = $object->id; } public function get_empresa() { if (empty($this->empresa)) $this->empresa = new Empresa($this->id); return $this->empresa; } }Código do formulário:
<?php/** * PerdcompForm Registration * @author <your name here> */class PerdcompForm extends TPage{ protected $form; // form use Adianti\Base\AdiantiStandardFormTrait; // Standard form methods /** * Class constructor * Creates the page and the registration form */ function __construct() { parent::__construct(); $this->setDatabase('perdcomp'); // defines the database $this->setActiveRecord('Perdcomp'); // defines the active record // creates the form $this->form = new TQuickForm('form_Perdcomp'); $this->form->class = 'tform'; // change CSS class $this->form->style = 'display: table;width:100%'; // change style // define the form title $this->form->setFormTitle('Perdcomp'); // create the form fields $perdcomp_id = new TEntry('perdcomp_id'); $DataCriacao = new TDate('DataCriacao'); // $DataCriacao = new TDate::convertToMask('DataCriacao', 'yyyy-mm-dd', 'dd/mm/yyyy'); $DataTransmissao = new TDate('DataTransmissao'); $Sequencial = new TEntry('Sequencial'); $Nr_PERDCOMP = new TEntry('Nr_PERDCOMP'); $TipoDocumento_id = new
">TDBSeekButton('TipoDocumento_id', 'perdcomp', $this->form->getName(), 'TipoDocumento', 'TipoDocumentoDescricao', 'TipoDocumento_id', 'tipo_documento'); $TipoDocumentoDescricao = new TEntry('tipo_documento'); $OrigemDocumento_id = new
">TDBSeekButton('OrigemDocumento_id', 'perdcomp', $this->form->getName(), 'OrigemDocumento', 'OrigemDocumentoDescricao', 'OrigemDocumento_id', 'origem_documento'); $OrigemDocumentoDescricao = new TEntry('origem_documento'); $TipoCredito_id = new
">TDBSeekButton('TipoCredito_id', 'perdcomp', $this->form->getName(), 'TipoCredito', 'TipoCreditoDescricao', 'TipoCredito_id', 'tipo_credito'); $TipoCreditoDescricao = new TEntry('tipo_credito'); $SaldoDeclarado = new TEntry('SaldoDeclarado'); $Exercicio = new TEntry('Exercicio'); $TipoImposto_ID = new
">TDBSeekButton('TipoImposto_ID', 'perdcomp', $this->form->getName(), 'TipoImposto', 'TipoImposto_Descricao', 'TipoImposto_ID', 'tipo_imposto'); $TipoImposto_Descricao = new TEntry('tipo_imposto'); $ValorCompensado = new TEntry('ValorCompensado'); $Competencia = new TDate('Competencia'); $PERDCOMP_Original = new TEntry('PERDCOMP_Original'); $Situacao = new TEntry('Situacao'); $Cancelamento = new TEntry('Cancelamento'); $CreditoOriginalInicial = new TEntry('CreditoOriginalInicial'); $CreditoOriginalUtilizadoCompensacoes = new TEntry('CreditoOriginalUtilizadoCompensacoes'); $CreditoOriginalDisponivel = new TEntry('CreditoOriginalDisponivel'); $CreditoOriginalTransmissao = new TEntry('CreditoOriginalTransmissao'); $SelicAcumulada = new TEntry('SelicAcumulada'); $CreditoAtualizado = new TEntry('CreditoAtualizado'); $DebitosDocumento = new TEntry('DebitosDocumento'); $CreditoOriginalUtilizadoDocumento = new TEntry('CreditoOriginalUtilizadoDocumento'); $SaldoCreditoOriginal = new TEntry('SaldoCreditoOriginal'); $Empresa_id = new
">TDBSeekButton('Empresa_id', 'perdcomp', $this->form->getName(), 'Empresa', 'EmpresaNome', 'Empresa_id', 'empresa'); $EmpresaNome = new TEntry('empresa'); $Ged = new TFile('Ged'); // complete upload action $TipoDocumentoDescricao->setEditable(FALSE); $TipoDocumento_id->setSize('40'); $TipoDocumentoDescricao->setSize('500'); $OrigemDocumentoDescricao->setEditable(FALSE); $OrigemDocumento_id->setSize('40'); $OrigemDocumentoDescricao->setSize('500'); $TipoCreditoDescricao->setEditable(FALSE); $TipoCredito_id->setSize('40'); $TipoCreditoDescricao->setSize('500'); $TipoImposto_Descricao->setEditable(FALSE); $TipoImposto_ID->setSize('40'); $TipoImposto_Descricao->setSize('500'); $EmpresaNome->setEditable(FALSE); $Empresa_id->setSize('40'); $EmpresaNome->setSize('500'); $SaldoDeclarado->setNumericMask(2, ',', '.', TRUE); $ValorCompensado->setNumericMask(2, ',', '.', TRUE); $CreditoOriginalInicial->setNumericMask(2, ',', '.', TRUE); $CreditoOriginalUtilizadoCompensacoes->setNumericMask(2, ',', '.', TRUE); $CreditoOriginalDisponivel->setNumericMask(2, ',', '.', TRUE); $CreditoOriginalTransmissao->setNumericMask(2, ',', '.', TRUE); $SelicAcumulada->setNumericMask(2, ',', '.', TRUE); $CreditoAtualizado->setNumericMask(2, ',', '.', TRUE); $DebitosDocumento->setNumericMask(2, ',', '.', TRUE); $CreditoOriginalUtilizadoDocumento->setNumericMask(2, ',', '.', TRUE); $SaldoCreditoOriginal->setNumericMask(2, ',', '.', TRUE); $Nr_PERDCOMP->setMask('99999.99999.999999.9.9.99-9999'); $PERDCOMP_Original->setMask('99999.99999.999999.9.9.99-9999'); // add the fields $this->form->addQuickField('Código:', $perdcomp_id, 100 ); $this->form->addQuickField('Data Criação:', $DataCriacao, 100 ); $this->form->addQuickField('Data Transmissão:', $DataTransmissao, 100 ); $this->form->addQuickField('Sequencial:', $Sequencial, 200 ); $this->form->addQuickField('Nº Perdcomp:', $Nr_PERDCOMP, 200 ); $this->form->addQuickFields('Tipo Documento:', [ $TipoDocumento_id, $TipoDocumentoDescricao ] ); $this->form->addQuickFields('Origem Documento:', [ $OrigemDocumento_id, $OrigemDocumentoDescricao ] ); $this->form->addQuickFields('Tipo Crédito:', [ $TipoCredito_id, $TipoCreditoDescricao] ); $this->form->addQuickField('Saldo Declarado:', $SaldoDeclarado, 100 ); $this->form->addQuickField('Exercicio:', $Exercicio, 100 ); $this->form->addQuickFields('Tipo Imposto:', [ $TipoImposto_ID, $TipoImposto_Descricao] ); $this->form->addQuickField('Valor Compensado:', $ValorCompensado, 100 ); $this->form->addQuickField('Competência:', $Competencia, 100 ); $this->form->addQuickField('Perdcomp Original:', $PERDCOMP_Original, 200 ); $this->form->addQuickField('Situação:', $Situacao, 200 ); $this->form->addQuickField('Cancelamento:', $Cancelamento, 200 ); $this->form->addQuickField('Crédito Original Inicial:', $CreditoOriginalInicial, 100 ); $this->form->addQuickField('Crédito Original Utilizado Compensações:', $CreditoOriginalUtilizadoCompensacoes, 100 ); $this->form->addQuickField('Crédito Original Disponível:', $CreditoOriginalDisponivel, 100 ); $this->form->addQuickField('Crédito Original Transmissão:', $CreditoOriginalTransmissao, 100 ); $this->form->addQuickField('Selic Acumulada:', $SelicAcumulada, 100 ); $this->form->addQuickField('Crédito Atualizado:', $CreditoAtualizado, 100 ); $this->form->addQuickField('Débitos Documento:', $DebitosDocumento, 100 ); $this->form->addQuickField('Crédito Original Utilizado Documento:', $CreditoOriginalUtilizadoDocumento, 100 ); $this->form->addQuickField('Saldo Crédito Original:', $SaldoCreditoOriginal, 100); $this->form->addQuickFields('Unidade:', [ $Empresa_id, $EmpresaNome ], new TRequiredValidator ); $this->form->addQuickField('Ged:', $Ged, 500 ); if (!empty($perdcomp_id)) { $perdcomp_id->setEditable(FALSE); } /** samples $this->form->addQuickFields('Date', array($date1, new TLabel('to'), $date2)); // side by side fields $fieldX->addValidation( 'Field X', new TRequiredValidator ); // add validation $fieldX->setSize( 100, 40 ); // set size **/ // create the form actions $this->form->addQuickAction(_t('Save'), new TAction(array($this, 'onSave')), 'fa:floppy-o'); $this->form->addQuickAction(_t('New'), new TAction(array($this, 'onEdit')), 'bs:plus-sign green'); $this->form->addQuickAction(_t('Back to the listing'), new TAction(array('PerdcompList', 'onReload')), 'fa:table blue'); // vertical box container $container = new TVBox; $container->style = 'width: 90%'; // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__)); $container->add($this->form); parent::add($container); } }Código da listagem do datagrid:
<?php/** * PerdcompList Listing * @author <your name here> */class PerdcompList extends TStandardList{ protected $form; // registration form protected $datagrid; // listing protected $pageNavigation; protected $formgrid; protected $deleteButton; protected $transformCallback; /** * Page constructor */ public function __construct() { parent::__construct(); parent::setDatabase('perdcomp'); // defines the database parent::setActiveRecord('Perdcomp'); // defines the active record parent::setDefaultOrder('perdcomp_id', 'asc'); // defines the default order // parent::setCriteria($criteria) // define a standard filter parent::addFilterField('perdcomp_id', '=', 'perdcomp_id'); // filterField, operator, formField parent::addFilterField('DataCriacao', 'like', 'DataCriacao'); // filterField, operator, formField parent::addFilterField('DataTransmissao', 'like', 'DataTransmissao'); // filterField, operator, formField parent::addFilterField('Sequencial', 'like', 'Sequencial'); // filterField, operator, formField parent::addFilterField('Nr_PERDCOMP', 'like', 'Nr_PERDCOMP'); // filterField, operator, formField parent::addFilterField('TipoDocumento_id', 'like', 'TipoDocumento_id'); // filterField, operator, formField parent::addFilterField('OrigemDocumento_id', 'like', 'OrigemDocumento_id'); // filterField, operator, formField parent::addFilterField('TipoCredito_id', 'like', 'TipoCredito_id'); // filterField, operator, formField parent::addFilterField('SaldoDeclarado', 'like', 'SaldoDeclarado'); // filterField, operator, formField parent::addFilterField('Exercicio', 'like', 'Exercicio'); // filterField, operator, formField parent::addFilterField('TipoImposto_ID', 'like', 'TipoImposto_ID'); // filterField, operator, formField // creates the form $this->form = new TQuickForm('form_search_Perdcomp'); $this->form->class = 'tform'; // change CSS class $this->form->style = 'display: table;width:100%'; // change style $this->form->setFormTitle('Filtro Perdcomp'); // create the form fields $perdcomp_id = new TEntry('perdcomp_id'); $DataCriacao = new TDate('DataCriacao'); $DataTransmissao = new TDate('DataTransmissao'); $Nr_PERDCOMP = new TEntry('Nr_PERDCOMP'); $TipoDocumento_id = new
">TDBSeekButton('TipoDocumento_id', 'perdcomp', $this->form->getName(), 'TipoDocumento', 'TipoDocumentoDescricao', 'TipoDocumento_id', 'tipo_documento'); $TipoDocumentoDescricao = new TEntry('tipo_documento'); $TipoCredito_id = new
">TDBSeekButton('TipoCredito_id', 'perdcomp', $this->form->getName(), 'TipoCredito', 'TipoCreditoDescricao', 'TipoCredito_id', 'tipo_credito'); $TipoCreditoDescricao = new TEntry('tipo_credito'); $OrigemDocumento_id = new
">TDBSeekButton('OrigemDocumento_id', 'perdcomp', $this->form->getName(), 'OrigemDocumento', 'OrigemDocumentoDescricao', 'OrigemDocumento_id', 'origem_documento'); $OrigemDocumentoDescricao = new TEntry('origem_documento'); $TipoImposto_ID = new
">TDBSeekButton('TipoImposto_ID', 'perdcomp', $this->form->getName(), 'TipoImposto', 'TipoImposto_Descricao', 'TipoImposto_ID', 'tipo_imposto'); $TipoImposto_Descricao = new TEntry('tipo_imposto'); $Exercicio = new TEntry('Exercicio'); $TipoDocumentoDescricao->setEditable(FALSE); $TipoDocumento_id->setSize('40'); $TipoDocumentoDescricao->setSize('500'); $TipoCreditoDescricao->setEditable(FALSE); $TipoCredito_id->setSize('40'); $TipoCreditoDescricao->setSize('500'); $OrigemDocumentoDescricao->setEditable(FALSE); $OrigemDocumento_id->setSize('40'); $OrigemDocumentoDescricao->setSize('500'); $TipoImposto_Descricao->setEditable(FALSE); $TipoImposto_ID->setSize('40'); $TipoImposto_Descricao->setSize('500'); // add the fields $this->form->addQuickField('Código:', $perdcomp_id, 80 ); $this->form->addQuickField('Data Criação', $DataCriacao, 80 ); $this->form->addQuickField('Data Transmissão:', $DataTransmissao, 80 ); $this->form->addQuickField('Nº Perdcomp:', $Nr_PERDCOMP, 500 ); $this->form->addQuickFields('Tipo Documento:', [ $TipoDocumento_id, $TipoDocumentoDescricao ] ); $this->form->addQuickFields('Tipo Crédito:', [ $TipoCredito_id, $TipoCreditoDescricao] ); $this->form->addQuickFields('Origem Documento:', [ $OrigemDocumento_id, $OrigemDocumentoDescricao ] ); $this->form->addQuickFields('Tipo Imposto:', [ $TipoImposto_ID, $TipoImposto_Descricao] ); $this->form->addQuickField('Exercício', $Exercicio, 100 ); // keep the form filled during navigation with session data $this->form->setData( TSession::getValue('Perdcomp_filter_data') ); // add the search form actions $this->form->addQuickAction(_t('Find'), new TAction(array($this, 'onSearch')), 'fa:search'); $this->form->addQuickAction(_t('New'), new TAction(array('PerdcompForm', 'onEdit')), 'bs:plus-sign green'); // creates a DataGrid $this->datagrid = new TDataGrid; // $this->datagrid->enablePopover('Image', "<img src='{photo_path}'>"); $this->datagrid->style = 'width: 100%'; $this->datagrid->datatable = 'true'; // $this->datagrid->enablePopover('Popover', 'Hi <b> {name} </b>'); // creates the datagrid columns $column_check = new TDataGridColumn('check', '', 'center'); $column_perdcomp_id = new TDataGridColumn('perdcomp_id', 'Código', 'right'); $column_DataCriacao = new TDataGridColumn('DataCriacao', 'Data Criação', 'left'); $column_DataTransmissao = new TDataGridColumn('DataTransmissao', 'Data Transmissão', 'left'); $column_Nr_PERDCOMP = new TDataGridColumn('Nr_PERDCOMP', 'Nº Perdcomp', 'left'); $column_TipoDocumento_id = new TDataGridColumn('tipo_documento', 'Tipo Documento', 'left'); $column_Ged = new TDataGridColumn('Ged', 'Ged', 'left'); $column_TipoCredito_id = new TDataGridColumn('tipo_credito', 'Tipo Crédito', 'left'); $column_TipoImposto_ID = new TDataGridColumn('tipo_imposto', 'Tipo Imposto', 'left'); $column_OrigemDocumento_id = new TDataGridColumn('origem_documento', 'Origem Documento', 'left'); $column_SaldoDeclarado = new TDataGridColumn('SaldoDeclarado', 'Saldo Declarado', 'right'); $column_Exercicio = new TDataGridColumn('Exercicio', 'Exercício', 'right'); $column_ValorCompensado = new TDataGridColumn('ValorCompensado', 'Valor Compensado', 'right'); $column_Sequencial = new TDataGridColumn('Sequencial', 'Sequencial', 'left'); $column_Competencia = new TDataGridColumn('Competencia', 'Competência', 'left'); $column_PERDCOMP_Original = new TDataGridColumn('PERDCOMP_Original', 'Perdcomp Original', 'left'); $column_Situacao = new TDataGridColumn('Situacao', 'Situação', 'left'); $column_Cancelamento = new TDataGridColumn('Cancelamento', 'Cancelamento', 'left'); $column_CreditoOriginalInicial = new TDataGridColumn('CreditoOriginalInicial', 'Crédito Original Inicial', 'right'); $column_CreditoOriginalUtilizadoCompensacoes = new TDataGridColumn('Credito Original Utilizado Compensações', 'Creditooriginalutilizadocompensacoes', 'right'); $column_CreditoOriginalDisponivel = new TDataGridColumn('Crédito Original Disponível', 'Crédito Original Disponível', 'right'); $column_CreditoOriginalTransmissao = new TDataGridColumn('Credito Original Transmissão', 'Crédito Original Transmissão', 'right'); $column_SelicAcumulada = new TDataGridColumn('Selic Acumulada', 'Selic Acumulada', 'right'); $column_CreditoAtualizado = new TDataGridColumn('CreditoAtualizado', 'Crédito Atualizado', 'right'); $column_DebitosDocumento = new TDataGridColumn('DebitosDocumento', 'Débitos Documento', 'right'); $column_CreditoOriginalUtilizadoDocumento = new TDataGridColumn('CreditoOriginalUtilizadoDocumento', 'Crédito Original Utilizado Documento', 'right'); $column_SaldoCreditoOriginal = new TDataGridColumn('SaldoCreditoOriginal', 'Saldo Crédito Original', 'right'); $column_Empresa_id = new TDataGridColumn('Empresa_id', 'Empresa', 'right'); // add the columns to the DataGrid $this->datagrid->addColumn($column_check); $this->datagrid->addColumn($column_perdcomp_id); $this->datagrid->addColumn($column_DataCriacao); $this->datagrid->addColumn($column_DataTransmissao); $this->datagrid->addColumn($column_Sequencial); $this->datagrid->addColumn($column_Nr_PERDCOMP); $this->datagrid->addColumn($column_TipoDocumento_id); $this->datagrid->addColumn($column_OrigemDocumento_id); $this->datagrid->addColumn($column_TipoCredito_id); $this->datagrid->addColumn($column_TipoImposto_ID); $this->datagrid->addColumn($column_SaldoDeclarado); $this->datagrid->addColumn($column_ValorCompensado); $this->datagrid->addColumn($column_Exercicio); $this->datagrid->addColumn($column_Competencia); $this->datagrid->addColumn($column_PERDCOMP_Original); $this->datagrid->addColumn($column_Situacao); $this->datagrid->addColumn($column_Cancelamento); $this->datagrid->addColumn($column_CreditoOriginalInicial); $this->datagrid->addColumn($column_CreditoOriginalUtilizadoCompensacoes); $this->datagrid->addColumn($column_CreditoOriginalDisponivel); $this->datagrid->addColumn($column_CreditoOriginalTransmissao); $this->datagrid->addColumn($column_SelicAcumulada); $this->datagrid->addColumn($column_CreditoAtualizado); $this->datagrid->addColumn($column_DebitosDocumento); $this->datagrid->addColumn($column_CreditoOriginalUtilizadoDocumento); $this->datagrid->addColumn($column_SaldoCreditoOriginal); $this->datagrid->addColumn($column_Ged); $this->datagrid->addColumn($column_Empresa_id); $order_perdcomp_id = new TAction(array($this, 'onReload')); $order_perdcomp_id->setParameter('order', 'perdcomp_id'); $column_perdcomp_id->setAction($order_perdcomp_id); $order_DataCriacao = new TAction(array($this, 'onReload')); $order_DataCriacao->setParameter('order', 'DataCriacao'); $column_DataCriacao->setAction($order_DataCriacao); $order_DataTransmissao = new TAction(array($this, 'onReload')); $order_DataTransmissao->setParameter('order', 'DataTransmissao'); $column_DataTransmissao->setAction($order_DataTransmissao); // define the transformer method over image $column_Ged->setTransformer(function($value, $object, $row){ $link = new THyperLink($value,'files/documents/' . $value, 'blue', 12, 'biu'); return $link; }); $column_Competencia->setTransformer( function($value, $object, $row) { $date = new DateTime($value); return $date->format('d/m/Y'); }); // define the transformer method over image $column_DataCriacao->setTransformer( function($value, $object, $row) { $date = new DateTime($value); return $date->format('d/m/Y'); }); // define the transformer method over image $column_DataTransmissao->setTransformer( function($value, $object, $row) { $date = new DateTime($value); return $date->format('d/m/Y'); }); // define the transformer method over image $column_SaldoDeclarado->setTransformer( function($value, $object, $row) { return 'R$ ' . number_format($value, 2, ',', '.'); }); // define the transformer method over image $column_ValorCompensado->setTransformer( function($value, $object, $row) { return 'R$ ' . number_format($value, 2, ',', '.'); }); // define the transformer method over image $column_CreditoOriginalInicial->setTransformer( function($value, $object, $row) { return 'R$ ' . number_format($value, 2, ',', '.'); }); // define the transformer method over image $column_CreditoOriginalUtilizadoCompensacoes->setTransformer( function($value, $object, $row) { return 'R$ ' . number_format($value, 2, ',', '.'); }); // define the transformer method over image $column_CreditoOriginalDisponivel->setTransformer( function($value, $object, $row) { return 'R$ ' . number_format($value, 2, ',', '.'); }); // define the transformer method over image $column_CreditoOriginalTransmissao->setTransformer( function($value, $object, $row) { return 'R$ ' . number_format($value, 2, ',', '.'); }); // define the transformer method over image $column_CreditoAtualizado->setTransformer( function($value, $object, $row) { return 'R$ ' . number_format($value, 2, ',', '.'); }); // define the transformer method over image $column_DebitosDocumento->setTransformer( function($value, $object, $row) { return 'R$ ' . number_format($value, 2, ',', '.'); }); // define the transformer method over image $column_CreditoOriginalUtilizadoDocumento->setTransformer( function($value, $object, $row) { return 'R$ ' . number_format($value, 2, ',', '.'); }); // define the transformer method over image $column_SaldoCreditoOriginal->setTransformer( function($value, $object, $row) { return 'R$ ' . number_format($value, 2, ',', '.'); }); // create EDIT action $action_edit = new TDataGridAction(array('PerdcompForm', 'onEdit')); $action_edit->setButtonClass('btn btn-default'); $action_edit->setLabel(_t('Edit')); $action_edit->setImage('fa:pencil-square-o blue fa-lg'); $action_edit->setField('perdcomp_id'); $this->datagrid->addAction($action_edit); // create DELETE action $action_del = new TDataGridAction(array($this, 'onDelete')); $action_del->setButtonClass('btn btn-default'); $action_del->setLabel(_t('Delete')); $action_del->setImage('fa:trash-o red fa-lg'); $action_del->setField('perdcomp_id'); $this->datagrid->addAction($action_del); // create the datagrid model $this->datagrid->createModel(); // create the page navigation $this->pageNavigation = new TPageNavigation; $this->pageNavigation->setAction(new TAction(array($this, 'onReload'))); $this->pageNavigation->setWidth($this->datagrid->getWidth()); $this->datagrid->disableDefaultClick(); // put datagrid inside a form $this->formgrid = new TForm; $this->formgrid->add($this->datagrid); // creates the delete collection button $this->deleteButton = new TButton('delete_collection'); $this->deleteButton->setAction(new TAction(array($this, 'onDeleteCollection')), AdiantiCoreTranslator::translate('Delete selected')); $this->deleteButton->setImage('fa:remove red'); $this->formgrid->addField($this->deleteButton); $gridpack = new TVBox; $gridpack->style = 'width: 100%'; $gridpack->add($this->formgrid); $gridpack->add($this->deleteButton)->style = 'background:whiteSmoke;border:1px solid #cccccc; padding: 3px;padding: 5px;'; $this->transformCallback = array($this, 'onBeforeLoad'); // vertical box container $container = new TVBox; $container->style = 'width: 90%'; // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__)); $container->add($this->form); // $container->add($this->datagrid); $container->add($gridpack); $container->add($this->pageNavigation); parent::add($container); } public function onBeforeLoad($objects, $param) { // update the action parameters to pass the current page to action // without this, the action will only work for the first page $deleteAction = $this->deleteButton->getAction(); $deleteAction->setParameters($param); // important! $gridfields = array( $this->deleteButton ); foreach ($objects as $object) { $object->check = new TCheckButton('check' . $object->perdcomp_id); $object->check->setIndexValue('on'); $gridfields[] = $object->check; // important } $this->formgrid->setFields($gridfields); }}
Apague as funções abaixo do model Perdcomp, elas estão conflitando com os campos do formulário no momento do setData:
set_tipo_documento
set_origem_documento
set_tipo_credito
set_tipo_imposto
set_empresa
Obrigado amigo Nataniel,
Com suas orientações o problema foi resolvido.