Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Cadastro de Item apresentando erro, seria versão do php? Olá, ao usar o Mini_ERP e tentar cadastrar um orçamento ou venda, é apresentado este erro: Warning: Undefined variable $data in C:webserverhtdocserpappcontrolcrmOrcamentoForm.php on line 237 Warning: Attempt to read property "id" on null in C:webserverhtdocserpappcontrolcrmOrcamentoForm.php on line 237 No modal de erro aparece: ERRO: Unsuppor...
GM
Cadastro de Item apresentando erro, seria versão do php?  
Olá, ao usar o Mini_ERP e tentar cadastrar um orçamento ou venda, é apresentado este erro:

Warning: Undefined variable $data in C:\webserver\htdocs\erp\app\control\crm\OrcamentoForm.php on line 237 Warning: Attempt to read property "id" on null in C:\webserver\htdocs\erp\app\control\crm\OrcamentoForm.php on line 237


No modal de erro aparece:
ERRO: Unsupported operand types: string - string


A linha em questão contém:

public function onSave($param = null) { try { TTransaction::open(self::$database); // open a transaction /** // Enable Debug logger for SQL operations inside the transaction TTransaction::setLogger(new TLoggerSTD); // standard output TTransaction::setLogger(new TLoggerTXT('log.txt')); // file **/ $messageAction = null; $this->form->validate(); // validate form data $object = new Orcamento(); // create an empty object // LINHA COM O ERRO AQUI - INICIO if(!$data->id) // LINHA 237 { $object->system_unit_id = TSession::getValue('userunitid'); } // LINHA COM O ERRO AQUI - FIM $data = $this->form->getData(); // get form data as array $object->fromArray( (array) $data); // load the object with data $object->store(); // save the object $messageAction = new TAction(['OrcamentoList', 'onShow']); if(!empty($param['target_container'])) { $messageAction->setParameter('target_container', $param['target_container']); } $orcamento_item_orcamento_items = $this->storeItems('OrcamentoItem', 'orcamento_id', $object, 'orcamento_item_orcamento', function($masterObject, $detailObject){ $masterObject->valor_total += ($detailObject->quantidade * ($detailObject->valor - $detailObject->desconto)); }); $object->store(); // get the generated {PRIMARY_KEY} $data->id = $object->id; $this->form->setData($data); // fill form data TTransaction::close(); // close the transaction /** // To define an action to be executed on the message close event: $messageAction = new TAction(['className', 'methodName']); **/ new TMessage('info', AdiantiCoreTranslator::translate('Record saved'), $messageAction); } catch (Exception $e) // in case of exception { new TMessage('error', $e->getMessage()); // shows the exception error message $this->form->setData( $this->form->getData() ); // keep form data TTransaction::rollback(); // undo all pending operations } }


acredito que seja talvez a versão, mas não quero mudar a versão do que já estou usando.

alguma dica?

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 (4)


NR

O erro diz que você está tentando usar a variável data antes dela ser declarada. Logo abaixo do erro tem o comando a seguir:
  1. <?php
  2. $data $this->form->getData();
  3. ?>

Coloque esse comando acima da linha com erro:
  1. <?php
  2. $data $this->form->getData();
  3. if (!$data->id)
  4. ?>
GM

Sim, mas fazendo conforme você informa ele mostra o erro que informei lá em cima no modal:

Unsupported operand types: string - string


o tipo de dados destes campos está igual 'int' com mesmo tamanho no dicionário.
GM

Este é o código completo:

  1. <?php
  1. <?php
  2. class OrcamentoForm extends TPage
  3. {
  4.     protected $form;
  5.     private $formFields = [];
  6.     private static $database 'mini_erp';
  7.     private static $activeRecord 'Orcamento';
  8.     private static $primaryKey 'id';
  9.     private static $formName 'form_Orcamento';
  10.     use Adianti\Base\AdiantiMasterDetailTrait;
  11.     /**
  12.      * Form constructor
  13.      * @param $param Request
  14.      */
  15.     public function __construct$param )
  16.     {
  17.         parent::__construct();
  18.         if(!empty($param['target_container']))
  19.         {
  20.             $this->adianti_target_container $param['target_container'];
  21.         }
  22.         // creates the form
  23.         $this->form = new BootstrapFormBuilder(self::$formName);
  24.         // define the form title
  25.         $this->form->setFormTitle("Cadastro de orçamento");
  26.         $criteria_cliente_id = new TCriteria();
  27.         $criteria_vendedor_id = new TCriteria();
  28.         $filterVar Grupo::clientes;
  29.         $criteria_cliente_id->add(new TFilter('id''in'"(SELECT pessoa_id FROM pessoa_grupo WHERE grupo_id in  (SELECT id FROM grupo WHERE id = '{$filterVar}') )")); 
  30.         $filterVar Grupo::vendedores;
  31.         $criteria_vendedor_id->add(new TFilter('id''in'"(SELECT pessoa_id FROM pessoa_grupo WHERE grupo_id in  (SELECT id FROM grupo WHERE id = '{$filterVar}') )")); 
  32.         $id = new TEntry('id');
  33.         $dt_orcamento = new TDateTime('dt_orcamento');
  34.         $cliente_id = new TDBUniqueSearch('cliente_id''mini_erp''Pessoa''id''nome','nome asc' $criteria_cliente_id );
  35.         $vendedor_id = new TDBCombo('vendedor_id''mini_erp''Pessoa''id''{nome}','nome asc' $criteria_vendedor_id );
  36.         $frete = new TNumeric('frete''2'',''.' );
  37.         $estado_orcamento_id = new TDBCombo('estado_orcamento_id''mini_erp''EstadoOrcamento''id''{nome}','nome asc'  );
  38.         $obs = new TText('obs');
  39.         $orcamento_item_orcamento_produto_id = new TDBCombo('orcamento_item_orcamento_produto_id''mini_erp''Produto''id''{nome}','nome asc'  );
  40.         $orcamento_item_orcamento_valor = new TNumeric('orcamento_item_orcamento_valor''2'',''.' );
  41.         $orcamento_item_orcamento_quantidade = new TNumeric('orcamento_item_orcamento_quantidade''2'',''.' );
  42.         $orcamento_item_orcamento_desconto = new TNumeric('orcamento_item_orcamento_desconto''2'',''.' );
  43.         $orcamento_item_orcamento_id = new THidden('orcamento_item_orcamento_id');
  44.         $orcamento_item_orcamento_produto_id->setChangeAction(new TAction([$this,'onChangeProduto']));
  45.         $dt_orcamento->addValidation("Data do orçamento", new TRequiredValidator()); 
  46.         $cliente_id->addValidation("Cliente", new TRequiredValidator()); 
  47.         $vendedor_id->addValidation("Vendedor", new TRequiredValidator()); 
  48.         $estado_orcamento_id->addValidation("Estado do orçamento", new TRequiredValidator()); 
  49.         $id->setEditable(false);
  50.         $dt_orcamento->setValue(date('d/m/Y H:i'));
  51.         $dt_orcamento->setDatabaseMask('yyyy-mm-dd hh:ii');
  52.         $cliente_id->setMinLength(2);
  53.         $vendedor_id->enableSearch();
  54.         $cliente_id->setMask('{nome}');
  55.         $dt_orcamento->setMask('dd/mm/yyyy hh:ii');
  56.         $id->setSize(100);
  57.         $frete->setSize('100%');
  58.         $obs->setSize('70%'100);
  59.         $dt_orcamento->setSize(150);
  60.         $cliente_id->setSize('100%');
  61.         $vendedor_id->setSize('100%');
  62.         $estado_orcamento_id->setSize('100%');
  63.         $orcamento_item_orcamento_valor->setSize('100%');
  64.         $orcamento_item_orcamento_desconto->setSize('100%');
  65.         $orcamento_item_orcamento_produto_id->setSize('100%');
  66.         $orcamento_item_orcamento_quantidade->setSize('100%');
  67.         $row1 $this->form->addFields([new TLabel("Id:"null'14px'null)],[$id],[new TLabel("Data do orçamento:"'#ff0000''14px'null)],[$dt_orcamento]);
  68.         $row2 $this->form->addFields([new TLabel("Cliente:"'#ff0000''14px'null)],[$cliente_id],[new TLabel("Vendedor:"'#ff0000''14px'null)],[$vendedor_id]);
  69.         $row3 $this->form->addFields([new TLabel("Valor do frete:"null'14px'null)],[$frete],[new TLabel("Estado do orçamento:"'#ff0000''14px'null)],[$estado_orcamento_id]);
  70.         $row4 $this->form->addFields([new TLabel("Observação:"null'14px'null)],[$obs]);
  71.         $row5 $this->form->addContent([new TFormSeparator("Produtos"'#333333''18''#eeeeee')]);
  72.         $row6 $this->form->addFields([new TLabel("Produto:"'#ff0000''14px'null)],[$orcamento_item_orcamento_produto_id],[new TLabel("Valor:"'#ff0000''14px'null)],[$orcamento_item_orcamento_valor]);
  73.         $row7 $this->form->addFields([new TLabel("Quantidade:"'#ff0000''14px'null)],[$orcamento_item_orcamento_quantidade],[new TLabel("Desconto:"null'14px'null)],[$orcamento_item_orcamento_desconto]);
  74.         $row8 $this->form->addFields([$orcamento_item_orcamento_id]);         
  75.         $add_orcamento_item_orcamento = new TButton('add_orcamento_item_orcamento');
  76.         $action_orcamento_item_orcamento = new TAction(array($this'onAddOrcamentoItemOrcamento'));
  77.         $add_orcamento_item_orcamento->setAction($action_orcamento_item_orcamento"Adicionar");
  78.         $add_orcamento_item_orcamento->setImage('fas:plus #000000');
  79.         $this->form->addFields([$add_orcamento_item_orcamento]);
  80.         $detailDatagrid = new TQuickGrid;
  81.         $detailDatagrid->disableHtmlConversion();
  82.         $this->orcamento_item_orcamento_list = new BootstrapDatagridWrapper($detailDatagrid);
  83.         $this->orcamento_item_orcamento_list->style 'width:100%';
  84.         $this->orcamento_item_orcamento_list->class .= ' table-bordered';
  85.         $this->orcamento_item_orcamento_list->disableDefaultClick();
  86.         $this->orcamento_item_orcamento_list->addQuickColumn('''edit''left'50);
  87.         $this->orcamento_item_orcamento_list->addQuickColumn('''delete''left'50);
  88.         $column_orcamento_item_orcamento_produto_id $this->orcamento_item_orcamento_list->addQuickColumn("Produto"'orcamento_item_orcamento_produto_id''left');
  89.         $column_orcamento_item_orcamento_quantidade $this->orcamento_item_orcamento_list->addQuickColumn("Quantidade"'orcamento_item_orcamento_quantidade''left');
  90.         $column_orcamento_item_orcamento_valor_transformed $this->orcamento_item_orcamento_list->addQuickColumn("Valor"'orcamento_item_orcamento_valor''left');
  91.         $column_orcamento_item_orcamento_desconto_transformed $this->orcamento_item_orcamento_list->addQuickColumn("Desconto"'orcamento_item_orcamento_desconto''left');
  92.         $column_calculated_6 $this->orcamento_item_orcamento_list->addQuickColumn("Valor total"'=( ( {orcamento_item_orcamento_valor} - {orcamento_item_orcamento_desconto} ) * {orcamento_item_orcamento_quantidade}  )''left');
  93.         $column_calculated_6->setTotalFunction( function($values) { 
  94.             return array_sum((array) $values); 
  95.         }); 
  96.         $this->orcamento_item_orcamento_list->createModel();
  97.         $this->form->addContent([$this->orcamento_item_orcamento_list]);
  98.         $column_orcamento_item_orcamento_valor_transformed->setTransformer(function($value$object$row$cell$last_row)
  99.         {
  100.             if(!$value)
  101.             {
  102.                 $value 0;
  103.             }
  104.             if(is_numeric($value))
  105.             {
  106.                 return "R$ " number_format($value2","".");
  107.             }
  108.             else
  109.             {
  110.                 return $value;
  111.             }
  112.         });
  113.         $column_orcamento_item_orcamento_desconto_transformed->setTransformer(function($value$object$row$cell$last_row)
  114.         {
  115.             if(!$value)
  116.             {
  117.                 $value 0;
  118.             }
  119.             if(is_numeric($value))
  120.             {
  121.                 return "R$ " number_format($value2","".");
  122.             }
  123.             else
  124.             {
  125.                 return $value;
  126.             }
  127.         });
  128.         $column_calculated_6->setTransformer(function($value$object$row$cell$last_row)
  129.         {
  130.             if(!$value)
  131.             {
  132.                 $value 0;
  133.             }
  134.             if(is_numeric($value))
  135.             {
  136.                 return "R$ " number_format($value2","".");
  137.             }
  138.             else
  139.             {
  140.                 return $value;
  141.             }
  142.         });
  143.         // create the form actions
  144.         $btn_onsave $this->form->addAction("Salvar", new TAction([$this'onSave']), 'far:save #ffffff');
  145.         $this->btn_onsave $btn_onsave;
  146.         $btn_onsave->addStyleClass('btn-primary'); 
  147.         $btn_onclear $this->form->addAction("Limpar formulário", new TAction([$this'onClear']), 'fas:eraser #dd5a43');
  148.         $this->btn_onclear $btn_onclear;
  149.         // vertical box container
  150.         $container = new TVBox;
  151.         $container->style 'width: 100%';
  152.         $container->class 'form-container';
  153.         if(empty($param['target_container']))
  154.         {
  155.             // $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  156.         }
  157.         $container->add($this->form);
  158.         parent::add($container);
  159.     }
  160.     public static function onChangeProduto($param null
  161.     {
  162.         try 
  163.         {
  164.             if($param['key'])
  165.             {
  166.                 TTransaction::open('mini_erp');
  167.                 $produto = new Produto($param['key']);
  168.                 TTransaction::close();
  169.                 if($produto)
  170.                 {
  171.                     $object = new stdClass();
  172.                     $object->orcamento_item_orcamento_valor number_format($produto->preco_venda',''.');
  173.                     TForm::sendData(self::$formName$object);    
  174.                 }
  175.             }
  176.         }
  177.         catch (Exception $e
  178.         {
  179.             new TMessage('error'$e->getMessage());    
  180.         }
  181.     }
  182.     public function onSave($param null
  183.     {
  184.         try
  185.         {
  186.             TTransaction::open(self::$database); // abrindo a transação
  187.             $messageAction null;
  188.             $this->form->validate(); // validando dado
  189.             $object = new Orcamento(); // criando objeto
  190.             
  191.             $data $this->form->getData(); 
  192.             if(!$data->id)
  193.             {
  194.                 $object->system_unit_id TSession::getValue('userunitid');
  195.             }
  196.             // coletando dados do array
  197.             $object->fromArray( (array) $data); // carregando dados do objeto
  198.             $object->store(); // salvando o objeto
  199.             $messageAction = new TAction(['OrcamentoList''onShow']);   
  200.             if(!empty($param['target_container']))
  201.             {
  202.                 $messageAction->setParameter('target_container'$param['target_container']);
  203.             }
  204.             $orcamento_item_orcamento_items $this->storeItems('OrcamentoItem''orcamento_id'$object'orcamento_item_orcamento', function($masterObject$detailObject){ 
  205.                 $masterObject->valor_total += ($detailObject->quantidade * ($detailObject->valor $detailObject->desconto));
  206.             }); 
  207.             
  208.             $object->store();
  209.             // get the generated {PRIMARY_KEY}
  210.             $data->id $object->id
  211.             $this->form->setData($data); // fill form data
  212.             TTransaction::close(); // close the transaction
  213.             /**
  214.             // To define an action to be executed on the message close event:
  215.             $messageAction = new TAction(['className', 'methodName']);
  216.             **/
  217.             new TMessage('info'AdiantiCoreTranslator::translate('Record saved'), $messageAction);
  218.         }
  219.         catch (Exception $e// in case of exception
  220.         {
  221.             new TMessage('error'$e->getMessage()); // shows the exception error message
  222.             $this->form->setData$this->form->getData() ); // keep form data
  223.             TTransaction::rollback(); // undo all pending operations
  224.         }
  225.     }
  226.     public function onEdit$param )
  227.     {
  228.         try
  229.         {
  230.             if(!isset($param['negociacao_id']))
  231.             {
  232.                 TTransaction::open('mini_erp');
  233.                 $negociacao = new Negociacao($param['negociacao_id']);
  234.                 TTransaction::close();
  235.                 unset($negociacao->id);
  236.                 $this->form->setData($negociacao);
  237.                 $this->onReload();
  238.             }
  239.             if (isset($param['key']))
  240.             {
  241.                 $key $param['key'];  // get the parameter $key
  242.                 TTransaction::open(self::$database); // open a transaction
  243.                 $object = new Orcamento($key); // instantiates the Active Record 
  244.                 $orcamento_item_orcamento_items $this->loadItems('OrcamentoItem''orcamento_id'$object'orcamento_item_orcamento', function($masterObject$detailObject){ 
  245.                     //code here
  246.                 }); 
  247.                 $this->form->setData($object); // fill the form 
  248.                     $this->onReload();
  249.                 TTransaction::close(); // close the transaction 
  250.             }
  251.             else
  252.             {
  253.                 $this->form->clear();
  254.             }
  255.         }
  256.         catch (Exception $e// in case of exception
  257.         {
  258.             new TMessage('error'$e->getMessage()); // shows the exception error message
  259.             TTransaction::rollback(); // undo all pending operations
  260.         }
  261.     }
  262.     /**
  263.      * Clear form data
  264.      * @param $param Request
  265.      */
  266.     public function onClear$param )
  267.     {
  268.         $this->form->clear(true);
  269.         TSession::setValue('orcamento_item_orcamento_items'null);
  270.         $this->onReload();
  271.     }
  272.     public function onAddOrcamentoItemOrcamento$param )
  273.     {
  274.         try
  275.         {
  276.             $data $this->form->getData();
  277.             if(!$data->orcamento_item_orcamento_produto_id)
  278.             {
  279.                 throw new Exception(AdiantiCoreTranslator::translate('The field ^1 is required'"Produtp"));
  280.             }             
  281.             if(!$data->orcamento_item_orcamento_valor)
  282.             {
  283.                 throw new Exception(AdiantiCoreTranslator::translate('The field ^1 is required'"Valor"));
  284.             }             
  285.             if(!$data->orcamento_item_orcamento_quantidade)
  286.             {
  287.                 throw new Exception(AdiantiCoreTranslator::translate('The field ^1 is required'"Quantidade"));
  288.             }             
  289.             $orcamento_item_orcamento_items TSession::getValue('orcamento_item_orcamento_items');
  290.             $key = isset($data->orcamento_item_orcamento_id) && $data->orcamento_item_orcamento_id $data->orcamento_item_orcamento_id 'b'.uniqid();
  291.             $fields = []; 
  292.             $fields['orcamento_item_orcamento_produto_id'] = $data->orcamento_item_orcamento_produto_id;
  293.             $fields['orcamento_item_orcamento_valor'] = $data->orcamento_item_orcamento_valor;
  294.             $fields['orcamento_item_orcamento_quantidade'] = $data->orcamento_item_orcamento_quantidade;
  295.             $fields['orcamento_item_orcamento_desconto'] = $data->orcamento_item_orcamento_desconto;
  296.             $orcamento_item_orcamento_items$key ] = $fields;
  297.             TSession::setValue('orcamento_item_orcamento_items'$orcamento_item_orcamento_items);
  298.             $data->orcamento_item_orcamento_id '';
  299.             $data->orcamento_item_orcamento_produto_id '';
  300.             $data->orcamento_item_orcamento_valor '';
  301.             $data->orcamento_item_orcamento_quantidade '';
  302.             $data->orcamento_item_orcamento_desconto '';
  303.             $this->form->setData($data);
  304.             $this->onReload$param );
  305.         }
  306.         catch (Exception $e)
  307.         {
  308.             $this->form->setData$this->form->getData());
  309.             new TMessage('error'$e->getMessage());
  310.         }
  311.     }
  312.     public function onEditOrcamentoItemOrcamento$param )
  313.     {
  314.         $data $this->form->getData();
  315.         // read session items
  316.         $items TSession::getValue('orcamento_item_orcamento_items');
  317.         // get the session item
  318.         $item $items[$param['orcamento_item_orcamento_id_row_id']];
  319.         $data->orcamento_item_orcamento_produto_id $item['orcamento_item_orcamento_produto_id'];
  320.         $data->orcamento_item_orcamento_valor $item['orcamento_item_orcamento_valor'];
  321.         $data->orcamento_item_orcamento_quantidade $item['orcamento_item_orcamento_quantidade'];
  322.         $data->orcamento_item_orcamento_desconto $item['orcamento_item_orcamento_desconto'];
  323.         $data->orcamento_item_orcamento_id $param['orcamento_item_orcamento_id_row_id'];
  324.         // fill product fields
  325.         $this->form->setData$data );
  326.         $this->onReload$param );
  327.     }
  328.     public function onDeleteOrcamentoItemOrcamento$param )
  329.     {
  330.         $data $this->form->getData();
  331.         $data->orcamento_item_orcamento_produto_id '';
  332.         $data->orcamento_item_orcamento_valor '';
  333.         $data->orcamento_item_orcamento_quantidade '';
  334.         $data->orcamento_item_orcamento_desconto '';
  335.         // clear form data
  336.         $this->form->setData$data );
  337.         // read session items
  338.         $items TSession::getValue('orcamento_item_orcamento_items');
  339.         // delete the item from session
  340.         unset($items[$param['orcamento_item_orcamento_id_row_id']]);
  341.         TSession::setValue('orcamento_item_orcamento_items'$items);
  342.         // reload sale items
  343.         $this->onReload$param );
  344.     }
  345.     public function onReloadOrcamentoItemOrcamento$param )
  346.     {
  347.         $items TSession::getValue('orcamento_item_orcamento_items'); 
  348.         $this->orcamento_item_orcamento_list->clear(); 
  349.         if($items
  350.         { 
  351.             $cont 1
  352.             foreach ($items as $key => $item
  353.             {
  354.                 $rowItem = new StdClass;
  355.                 $action_del = new TAction(array($this'onDeleteOrcamentoItemOrcamento')); 
  356.                 $action_del->setParameter('orcamento_item_orcamento_id_row_id'$key);
  357.                 $action_del->setParameter('row_data'base64_encode(serialize($item)));
  358.                 $action_del->setParameter('key'$key);
  359.                 $action_edi = new TAction(array($this'onEditOrcamentoItemOrcamento'));  
  360.                 $action_edi->setParameter('orcamento_item_orcamento_id_row_id'$key);  
  361.                 $action_edi->setParameter('row_data'base64_encode(serialize($item)));
  362.                 $action_edi->setParameter('key'$key);
  363.                 $button_del = new TButton('delete_orcamento_item_orcamento'.$cont);
  364.                 $button_del->setAction($action_del'');
  365.                 $button_del->setFormName($this->form->getName());
  366.                 $button_del->class 'btn btn-link btn-sm';
  367.                 $button_del->title '';
  368.                 $button_del->setImage('far:trash-alt #dd5a43');
  369.                 $rowItem->delete $button_del;
  370.                 $button_edi = new TButton('edit_orcamento_item_orcamento'.$cont);
  371.                 $button_edi->setAction($action_edi'');
  372.                 $button_edi->setFormName($this->form->getName());
  373.                 $button_edi->class 'btn btn-link btn-sm';
  374.                 $button_edi->title '';
  375.                 $button_edi->setImage('far:edit #478fca');
  376.                 $rowItem->edit $button_edi;
  377.                 $rowItem->orcamento_item_orcamento_produto_id '';
  378.                 if(isset($item['orcamento_item_orcamento_produto_id']) && $item['orcamento_item_orcamento_produto_id'])
  379.                 {
  380.                     TTransaction::open('mini_erp');
  381.                     $produto Produto::find($item['orcamento_item_orcamento_produto_id']);
  382.                     if($produto)
  383.                     {
  384.                         $rowItem->orcamento_item_orcamento_produto_id $produto->render('{nome}');
  385.                     }
  386.                     TTransaction::close();
  387.                 }
  388.                 $rowItem->orcamento_item_orcamento_valor = isset($item['orcamento_item_orcamento_valor']) ? $item['orcamento_item_orcamento_valor'] : '';
  389.                 $rowItem->orcamento_item_orcamento_quantidade = isset($item['orcamento_item_orcamento_quantidade']) ? $item['orcamento_item_orcamento_quantidade'] : '';
  390.                 $rowItem->orcamento_item_orcamento_desconto = isset($item['orcamento_item_orcamento_desconto']) ? $item['orcamento_item_orcamento_desconto'] : '';
  391.                 $row $this->orcamento_item_orcamento_list->addItem($rowItem);
  392.                 $cont++;
  393.             } 
  394.         } 
  395.     } 
  396.     public function onShow($param null)
  397.     {
  398.         TSession::setValue('orcamento_item_orcamento_items'null);
  399.         $this->onReload();
  400.     } 
  401.     public function onReload($params null)
  402.     {
  403.         $this->loaded TRUE;
  404.         $this->onReloadOrcamentoItemOrcamento($params);
  405.     }
  406.     public function show() 
  407.     { 
  408.         if (!$this->loaded AND (!isset($_GET['method']) OR $_GET['method'] !== 'onReload') ) 
  409.         { 
  410.             $this->onReloadfunc_get_arg(0) );
  411.         }
  412.         parent::show();
  413.     }
  414. }
  415. ?>
GM

erro:

link: https://gpsoft.com.br/doc/erro.png

Editado 18/02/2023 (há 1 ano) - Ver alterações