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. if( (!$data->item_pedido_produto_id))
  8. {
  9. throw new Exception('Codigo do produto, Quan. de Caixa e Quant. de peças são campos obrigató ');
  10. }
  11. $item_pedido_items = TSession::getValue('item_pedido_items');
  12. $vcodprod=$data->item_pedido_produto_id;
  13. $mkey = array_search($vcodprod, array_column($item_pedido_items, 'item_pedido_produto_id'));
  14. if ($mkey !==false)
  15. {
  16. throw new Exception('Produto já cadastrado');
  17. }
  18. $key = !empty($data->item_pedido_id) ? $data->item_pedido_id : uniqid();
  19. $fields = [];
  20. $fields['item_pedido_codprod'] = $data->item_pedido_codprod;
  21. $fields['item_pedido_produto_id'] = $data->item_pedido_produto_id;
  22. $fields['item_pedido_quantidade'] = $data->item_pedido_quantidade;
  23. $fields['item_pedido_valor'] = $data->item_pedido_valor;
  24. $fields['item_pedido_volumes'] = $data->item_pedido_volumes;
  25. $fields['item_pedido_qcxcomprada'] = $data->item_pedido_qcxcomprada;
  26. $item_pedido_items[ $key ] = $fields;
  27. TSession::setValue('item_pedido_items', $item_pedido_items);
  28. // limpa os campos do item do pedido
  29. $data->item_pedido_codprod = '';
  30. $data->item_pedido_volumes = '';
  31. $data->item_pedido_item_pedido_qcxcomprada = '';
  32. $data->item_pedido_produto_id = '';
  33. $data->item_pedido_quantidade = '';
  34. $data->item_pedido_valor = '';
  35. $data->item_pedido_id = '';
  36. $data->item_pedido_qcxcomprada='';
  37. $this->form->setData($data);
  38. $this->onReload( $param );
  39. }
  40. catch (Exception $e)
  41. {
  42. $this->form->setData( $this->form->getData()); <------------------------Essa linha gera o erro
  43. new TMessage('error', '<b>Error</b> ' . $e->getMessage());
  44. }
  45. }
  46. ?>

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


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