Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Arquivo não encontrado: '.ini' - throw new Exception Olá, estou tendo um problema no segundo throw (throw new Exception('Produto já cadastrado');). Quando um produto que já foi inserido for inserido novamente, ele não permite, até aí está correto, o problema que preciso preencher os campos novamente com o comando $this->form->setData( $this->form->getData()); aí ele gera o erro como mostra o anexo. O que é estranho que só acontece no s...
AR
Arquivo não encontrado: '.ini' - throw new Exception  
Olá, estou tendo um problema no segundo throw (throw new Exception('Produto já cadastrado');). Quando um produto que já foi inserido for inserido novamente, ele não permite, até aí está correto, o problema que preciso preencher os campos novamente com o comando $this->form->setData( $this->form->getData()); aí ele gera o erro como mostra o anexo. O que é estranho que só acontece no segundo throw do código, pois o primeiro funciona perfeitamente

------------------------Funcionando
if( (!$data->item_pedido_produto_id))
{
throw new Exception('Codigo do produto, Quan. de Caixa e Quant. de peças são campos obrigató ');

}
-----------------------Não funciona com

if ($mkey !==false)
{
throw new Exception('Produto já cadastrado');

}
.....
.....

catch (Exception $e)
{

$this->form->setData( $this->form->getData()); <------------------------Essa linha gera o erro
new TMessage('error', 'Error ' . $e->getMessage());




Desde já agradeço.

OBS. Quando não uso $this->form->setData( $this->form->getData()); funciona perfeitamente, só que os campos perdem os preenchimentos.

Desde já agradeço.

  1. <?php  
  2.    public function onAddItemPedido$param )
  3.     {
  4.         try
  5.         {
  6.              $data $this->form->getData();
  7.         
  8.         
  9.             if( (!$data->item_pedido_produto_id))  
  10.             {
  11.                 throw new Exception('Codigo do produto, Quan. de Caixa e Quant. de peças são campos obrigató ');
  12.                 
  13.             }
  14.         
  15.                
  16.              $item_pedido_items TSession::getValue('item_pedido_items');
  17.              $vcodprod=$data->item_pedido_produto_id;
  18.         
  19.              $mkey array_search($vcodprodarray_column($item_pedido_items'item_pedido_produto_id'));
  20.                  
  21.                 if ($mkey !==false)
  22.                   {
  23.                     throw new Exception('Produto já cadastrado');
  24.                   }
  25.                       
  26.           
  27.             $key = !empty($data->item_pedido_id) ? $data->item_pedido_id uniqid();
  28.               
  29.             $fields = []; 
  30.             $fields['item_pedido_codprod']      = $data->item_pedido_codprod;
  31.             $fields['item_pedido_produto_id']   = $data->item_pedido_produto_id;
  32.             $fields['item_pedido_quantidade']   = $data->item_pedido_quantidade;
  33.             $fields['item_pedido_valor']        = $data->item_pedido_valor;
  34.             $fields['item_pedido_volumes']      = $data->item_pedido_volumes;
  35.             $fields['item_pedido_qcxcomprada']  = $data->item_pedido_qcxcomprada;
  36.             $item_pedido_items$key ]          = $fields;
  37.          
  38.             
  39.             TSession::setValue('item_pedido_items'$item_pedido_items);
  40.             // limpa os campos do item do pedido
  41.        
  42.             $data->item_pedido_codprod '';
  43.             $data->item_pedido_volumes '';
  44.             $data->item_pedido_item_pedido_qcxcomprada '';
  45.            
  46.             $data->item_pedido_produto_id '';
  47.             $data->item_pedido_quantidade '';
  48.             $data->item_pedido_valor '';
  49.             $data->item_pedido_id '';
  50.             $data->item_pedido_qcxcomprada='';
  51.            
  52.             $this->form->setData($data);
  53.             $this->onReload$param );
  54.             
  55.             
  56.         }
  57.         catch (Exception $e)
  58.         {
  59.            $this->form->setData$this->form->getData());  <------------------------Essa linha gera o erro
  60.            new TMessage('error''<b>Error</b> ' $e->getMessage());
  61.            
  62.         }
  63.     }
  64. ?>

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


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (2)


NR

Pelo detalhe do erro, o problema ocorre com o TDBSeekButton. Você está usando a função setAuxiliar com o seek? Está passando todos os parâmetros necessários para esse componente?
AR

Obrigado pelo retorno.

Sim estou usando.

E da maneira que está, pode se digitar um valor ou criar um filtro.

Está errado ?


  1. <?php 
  2. /**
  3.  *
  4.  * @version    1.0
  5.  * @package    samples
  6.  * @subpackage tutor
  7.  * @author     Pablo Dall'Oglio
  8.  * @copyright  Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
  9.  * @license    http://www.adianti.com.br/framework-license
  10.  */
  11. class PedidoForm extends TPage
  12. {
  13.     protected $form// form
  14.     
  15.     use adianti\base\AdiantiMasterDetailTrait;
  16.     
  17.     /**
  18.      * Form constructor
  19.      * @param $param Request
  20.      */
  21.     public function __construct$param )
  22.     {
  23.         parent::__construct();
  24.         
  25.         $this->form = new BootstrapFormBuilder('list_Pedido');
  26.         $this->form->setFormTitle('Pedido');
  27.         $crit_transp = new TCriteria();
  28.       //  $crit_transp->add(new TFilter('id_empresa','=',TSession::getValue('userunitid')));
  29.         $crit_transp->add(new TFilter('grupo_id','=','6'));
  30.         // master fields
  31.         $id                     = new TEntry('id');
  32.         $product_description    = new TEntry('product_description');
  33.         $estado_pedido_id       = new TDBCombo('estado_pedido_id''dbaerp''EstadoPedido''id''nome','id asc'  );
  34.         $cliente_id             = new TDBUniqueSearch('cliente_id''dbaerp''Pessoa''id''nome','nome asc'  );
  35.         $transportadora_id      = new TDBUniqueSearch('transportadora_id''dbaerp''Pessoa''id''nome','nome asc',$crit_transp);
  36.      // $vendedor_id            = new TDBUniqueSearch('vendedor_id', 'dbaerp', 'Vendedor', 'id', 'nome','nome asc'  );
  37.         $vendedor_id            = new TDBCombo('vendedor_id','permission','Vendedor','id','nome','codvend_desk');
  38.         $dt_pedido              = new TDate('dt_pedido');
  39.         $obs                    = new TText('obs');
  40.        
  41.        //Funcionando
  42.     //   $item_pedido_codprod     = new TEntry('item_pedido_codprod');
  43.        //Testando
  44.        $descricao_nome          = new TEntry('descricao_nome');
  45.        $item_pedido_codprod     = new  ">TDBSeekButton('item_pedido_codprod''dbaerp''list_Pedido''Produto''nome');
  46.        $item_pedido_codprod->setAuxiliar($descricao_nome); 
  47.        
  48.        $descricao_nome->setSize('50%');
  49.       
  50.        $item_pedido_codprod2    = new TSeekButton('item_pedido_codprod2'); 
  51.       
  52.        $item_pedido_codprod2->setSize(50);  
  53.       // $item_pedido_codprod2->setAuxiliar($descricao_nome); 
  54.      //  $item_pedido_codprod2->button->style = 'margin-top:0px; vertical-align:top';
  55.         
  56.    
  57.         $item_pedido_produto_id   = new  ">TDBSeekButton('item_pedido_produto_id''dbaerp''list_Pedido''Produto''codprod');
  58.       //  $customer_name = new TEntry('customer_name');
  59.         $item_pedido_produto_id->setDisplayMask('{codprod} - {nome}');
  60.       //  $item_pedido_produto_id->setDisplayMask('{codprod} - {nome} - {preco_venda}');
  61.       //  $item_pedido_produto_id->setDisplayMask('{codprod} - {city->name} - {city->state->name}');
  62.         $item_pedido_produto_id->setDisplayLabel('Informações do produto');
  63.         $item_pedido_produto_id->setAuxiliar($product_description);
  64.         $item_pedido_produto_id->setSize('10%');
  65.         
  66.         
  67.       //  $item_pedido_produto_id->setExitAction(new TAction(array($this, 'onExitProduct')));
  68.     
  69.      //Funcionando ---não precisei, mas está funcionado 
  70.      //   $item_pedido_codprod->setExitAction(new TAction(array($this, 'onExitCodProd')));
  71.         
  72.   
  73.         
  74.          
  75.        // $item_pedido_produto_id = new TEntry('item_pedido_produto_id');
  76.         $item_pedido_quantidade = new TEntry('item_pedido_quantidade');
  77.         $item_pedido_valor      = new TNumeric('item_pedido_valor''2'',''.' );
  78.         $item_pedido_id         = new THidden('item_pedido_id');
  79.  
  80.       
  81.         
  82.         $item_pedido_volumes     = new TEntry('item_pedido_volumes');
  83.         //$item_pedido_item_pedido_qcxcomprada = new TEntry('item_pedido_qcxcomprada');
  84.         $item_pedido_qcxcomprada = new TEntry('item_pedido_qcxcomprada');
  85.         
  86.         $estado_pedido_id->addValidation('Estado pedido', new TRequiredValidator());
  87.         $cliente_id->addValidation('Cliente', new TRequiredValidator());
  88.         $vendedor_id->addValidation('Vendedor', new TRequiredValidator());
  89.         $dt_pedido->addValidation('Data do peido', new TRequiredValidator()); 
  90.      //   $item_pedido_quantidade->addValidation('Quantidade', new TNumericValidator());
  91.      //   $item_pedido_qcxcomprada->addValidation('Cx/Comprada', new TRequiredValidator());
  92.         
  93.        
  94.     
  95.         $id->setEditable(false);
  96.         $id->setSize('20%');
  97.         $item_pedido_volumes->setEditable(false);
  98.        // $item_pedido_item_pedido_qcxcomprada->setEditable(false);
  99.         $item_pedido_qcxcomprada->setEditable(false);
  100.         
  101.         $item_pedido_produto_id->setEditable(false);  
  102.        
  103.         $item_pedido_codprod->setSize('20%');
  104.    
  105.         $product_description->setEditable(FALSE);
  106.         $product_description->setSize('60%');
  107.         $item_pedido_quantidade->setMask('9999');
  108.         
  109.         $vendedor_id->setEditable(FALSE);
  110.         
  111.         
  112.         $cliente_id->setMinLength(2);
  113.         $cliente_id->setSize('100%');
  114.         
  115.       //  $vendedor_id->setMinLength(2);
  116.         $vendedor_id->setSize('40%');
  117.         $vendedor_id->style 'height: 30px;';
  118.         
  119.       /*  
  120.         
  121.          //--------------------------------------------------
  122.         TTransaction::open('dbaerp');
  123.         $user = SystemUser::newFromLogin(TSession::getValue('login')); // instancia o user logado
  124.        
  125.         if ($user)
  126.                {
  127.                 $user_id   = $user->id;
  128.                 $user_name = $user->name;
  129.                 $vendedor_id_user = $user->vendedor_id;
  130.                }
  131.        
  132.        print_r('Vend'.$vendedor_id_user);
  133.  
  134.           if (!empty($vendedor_id_user)) 
  135.                {
  136.                 $vendedor_id->setValue($vendedor_id_user);
  137.                 }
  138.   
  139.          TTransaction::close();
  140.         //--------------------------------------------------
  141.         */
  142.           
  143.         
  144.         
  145.      //   $item_pedido_produto_id->setMinLength(2);
  146.         $dt_pedido->setValue(date('d/m/Y h:i'));
  147.         $dt_pedido->setDatabaseMask('yyyy-mm-dd');
  148.         $cliente_id->setMask('{nome}');
  149.       //  $vendedor_id->setMask('{nome}');
  150.         $dt_pedido->setMask('dd/mm/yyyy');
  151.         $dt_pedido->setSize(190);
  152.         $obs->setSize('90%'68);
  153.         $estado_pedido_id->setSize('75%');
  154.         $item_pedido_valor->setSize('30%');
  155.      //   $item_pedido_valor->setEditable(FALSE);
  156.         
  157.      //   $item_pedido_produto_id->setMask('{nome}');
  158.     //    $item_pedido_produto_id->setSize('70%');
  159.         $item_pedido_quantidade->setSize('30%');
  160.         $item_pedido_volumes->setSize('60%');
  161.        // $item_pedido_item_pedido_qcxcomprada->setSize('30%');
  162.         $item_pedido_qcxcomprada->setSize('30%');
  163.     
  164.        
  165.        //Funcionando----------------------  
  166.        $obj = new ProductSeekCodigo;
  167.        $action = new TAction(array($obj'onReload'));
  168.      //  $action->setParameter('item_pedido_codprod','item_pedido_codprod2');
  169.       // $action->setParameter('field_text','srf_nome_despacho');
  170.        $item_pedido_codprod2->setAction($action);
  171.         
  172.       
  173.       
  174.       //------------Funcionando--------------
  175.        $obj2 = new ProductSeekCodigo;
  176.        $action = new TAction(array($obj2'onReload'));
  177.      //  $action->setParameter('item_pedido_codprod','item_pedido_codprod2');
  178.       // $action->setParameter('field_text','srf_nome_despacho');
  179.        $item_pedido_codprod->setAction($action);
  180.       
  181.       
  182.       
  183.           
  184.        $estado_pedido_id->setEditable(False);
  185.         
  186.          
  187.         
  188.         // master fields
  189.         $this->form->addFields([new TLabel('Id:')],[$id],[new TLabel('Estado pedido:''#101010')],[$estado_pedido_id]);
  190.         $this->form->addFields([new TLabel('Cliente:''#101010')],[$cliente_id],[new TLabel('Dt pedido:')],[$dt_pedido]);
  191.         $this->form->addFields([new TLabel('Transportadora:''#101010')],[$transportadora_id]);
  192.         $this->form->addFields([new TLabel('Vendedor:''#101010')],[$vendedor_id]);
  193.         $this->form->addFields([new TLabel('Obs:')],[$obs]);
  194.         
  195.         // detail fields
  196.         $this->form->addContent([new TFormSeparator('Itens''#333333''18''#eeeeee')]);
  197.         $this->form->addFields([new TLabel('Id:''#101010')],[$item_pedido_produto_id]);
  198.         $this->form->addFields([new TLabel('Digite seu Código :''#03A9F4')],[$item_pedido_codprod]);
  199.       //  $this->form->addFields([new TLabel('Código2:', '#ff0000')],[$item_pedido_codprod2]);        
  200.         $this->form->addFields([new TLabel('Q.Peças:')],[$item_pedido_quantidade],[new TLabel('Vol/Caixa:''#101010')],[$item_pedido_volumes]);
  201.      
  202.      
  203.         $this->form->addFields([new TLabel('Total Cx:')],[$item_pedido_qcxcomprada]);
  204.        
  205.        
  206.         // Quantidade de caixa comprada
  207.         $exit_action_cx = new TAction(array($this'onExitQCx'));
  208.         $item_pedido_quantidade->setExitAction($exit_action_cx);
  209.  
  210.         //setChangeAction
  211.       //setExitAction
  212.        
  213.         $this->form->addFields([new TLabel('Valor:')],[$item_pedido_valor]);
  214.         $this->form->addFields([$item_pedido_id]);     
  215.      //   $this->form->addFields([$item_pedido_produto_id]);         
  216.         
  217.         // add button
  218.         $add_item_pedido = new TButton('add_item_pedido');
  219.         $add_item_pedido->setAction(new TAction(array($this'onAddItemPedido')), 'Adicionar');
  220.         $add_item_pedido->setImage('fa:plus #51c249');
  221.         $this->form->addFields([$add_item_pedido]);
  222.         
  223.         // detail datagrid
  224.         $this->item_pedido_list = new BootstrapDatagridWrapper(new TQuickGrid);
  225.         $this->item_pedido_list->style 'width:100%';
  226.       
  227.        
  228.         $this->item_pedido_list->class .= ' table-bordered';
  229.         $this->item_pedido_list->disableDefaultClick();
  230.       //  $this->item_pedido_list->addQuickColumn('', 'edit', 'left', 50);
  231.         $this->item_pedido_list->addQuickColumn('''delete''left'50);
  232.       
  233.       
  234.         $col_produto_codprod   $this->item_pedido_list->addQuickColumn('Código''item_pedido_codprod''left','10%');  
  235.         $col_produto_id        $this->item_pedido_list->addQuickColumn('Produto''item_pedido_produto_id''left','50%');
  236.         $col_quantidade        $this->item_pedido_list->addQuickColumn('Q.Peças''item_pedido_quantidade''left','5%');
  237.         $col_cxcomprada        $this->item_pedido_list->addQuickColumn('T.Cx''item_pedido_qcxcomprada''left','5%');
  238.         $col_volumenacx        $this->item_pedido_list->addQuickColumn('Vol/Caixa''item_pedido_volumes''left','5%');
  239.         $col_valor             $this->item_pedido_list->addQuickColumn('Valor''item_pedido_valor''left','10%');
  240.         $col_total             $this->item_pedido_list->addQuickColumn('Total''= {item_pedido_quantidade} * {item_pedido_valor}''right','20%');
  241.         
  242.         $col_total->setTotalFunction( function($values) { 
  243.             return array_sum((array) $values);
  244.         }); 
  245.         
  246.         $col_cxcomprada->setTotalFunction( function($values) { 
  247.             return array_sum((array) $values);
  248.         }); 
  249.         
  250.         
  251.         $this->item_pedido_list->createModel();
  252.         
  253.         $col_total->setTransformer(function($value$object$row) {
  254.             if (!$value)
  255.             {
  256.                 $value 0;
  257.             }
  258.             return "R$ " number_format($value2","".");
  259.         });
  260.         
  261.         TScript::create(" $('body').on('keydown', 'input, select, textarea', function(e) { var self = $(this) , form = self.parents('form:eq(0)') , focusable , next ;
  262.          if (e.keyCode == 13) { focusable = form.find('input,a,select,button,textarea').filter(':visible');
  263.          next = focusable.eq(focusable.index(this)+1);
  264.          if (next.length) { next.focus();
  265.          } else { form.submit();
  266.          } return false; }});");
  267.         
  268.         
  269.        $this->item_pedido_list->datatable 'true';
  270.         
  271.         $this->form->addContent([$this->item_pedido_list]);
  272.         
  273.         // create the form actions
  274.         $this->form->addAction('Salvar', new TAction([$this'onSave']), 'fa:floppy-o')->addStyleClass('btn-primary');
  275.         $this->form->addAction('Limpar formulário', new TAction([$this'onClear']), 'fa:eraser blue');
  276.         $this->form->addActionLink('Voltar',  new TAction(array('PedidoList''onReload')), 'fa:table blue');
  277.         // vertical box container
  278.         $container = new TVBox;
  279.         $container->style 'width: 100%';
  280.         $container->class 'form-container';
  281.         $container->add(new TXMLBreadCrumb('menu.xml''PedidoList'));
  282.         $container->add($this->form);
  283.         
  284.         parent::add($container);
  285.     }
  286. >