Registro Salvo de pedido de compra erro na function OnReload Ocorre erro na última linha, alguém sabe porque está dando este erro? Notice: Undefined index: produto_nome in C:wamp64wwwOneDriveerpweb1appcontrolPedido_compraForm.class.php on line 471 ...
GG
Registro Salvo de pedido de compra erro na function OnReload  
Ocorre erro na última linha, alguém sabe porque está dando este erro? Notice: Undefined index: produto_nome in C:wamp64wwwOneDriveerpweb1appcontrolPedido_compraForm.class.php on line 471
 
  1. <?php
  2. // items
  3. $item->id = $list_item['id'];
  4. $item->qtde = $list_item['qtde'];
  5. $item->qtde_bonificada = $list_item['qtde_bonificada'];
  6. $item->valor_item = $list_item['valor_item'];
  7. $item->valor_total_item = $list_item['valor_total_item'];
  8. $item->produto_id = $list_item['produto_id'];
  9. $item->produto_nome = $list_item['produto_nome'];
  10. ?>

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


MG

Guilherme
Ocorre que o campo "produto_nome" não pertence ao modelo.
Ele faz parte de um relacionamento, certo?
Então é preciso informar o nome do relacionamento antes.

Posta no corpo do fórum o modelo referente ao item do pedido para podermos ajudá-lo.
GG

 
  1. <?php
  2. class Item_pedido_compra extends TRecord
  3. {
  4. const TABLENAME = 'item_pedido_compra';
  5. const PRIMARYKEY= 'id';
  6. const IDPOLICY = 'serial'; // {max, serial}
  7. private $item_pedido_compra;
  8. /**
  9. * Constructor method
  10. */
  11. public function __construct($id = NULL)
  12. {
  13. parent::__construct($id);
  14. parent::addAttribute('qtde');
  15. parent::addAttribute('qtde_bonificada');
  16. parent::addAttribute('valor_item');
  17. parent::addAttribute('valor_total_item');
  18. parent::addAttribute('produto_id');
  19. parent::addAttribute('pedido_compra_id');
  20. }
  21. /**
  22. * Method set_category
  23. * Sample of usage: $customer->category = $object;
  24. * @param $object Instance of Category
  25. */
  26. public function set_produto(Produto $object)
  27. {
  28. $this->produto = $object;
  29. $this->produto_id = $object->id;
  30. }
  31. /**
  32. * Method get_category
  33. * Sample of usage: $customer->category->attribute;
  34. * @returns Category instance
  35. */
  36. public function get_produto()
  37. {
  38. // loads the associated object
  39. if (empty($this->produto))
  40. $this->produto = new Produto($this->produto_id);
  41. // returns the associated object
  42. return $this->produto;
  43. }
  44. public function set_pedido_compra(Pedido_compra $object)
  45. {
  46. $this->pedido_compra = $object;
  47. $this->pedido_compra_id = $object->id;
  48. }
  49. /**
  50. * Method get_category
  51. * Sample of usage: $customer->category->attribute;
  52. * @returns Category instance
  53. */
  54. public function get_pedido_compra()
  55. {
  56. // loads the associated object
  57. if (empty($this->pedido_compra))
  58. $this->pedido_compra = new Pedido_compra($this->pedido_compra_id);
  59. // returns the associated object
  60. return $this->pedido_compra;
  61. }
  62. public function __isset($name)
  63. {
  64. $var = $this->__get($name);
  65. return isset($var);
  66. }
  67. }
  68. ?>
NR

Guilherme, como informado na mensagem de erro, não existe a chave produto_nome nesse array $list_item. Verifique sua função onEdit, você precisa definir esse valor juntamente com os demais.
GG

na inclusão está assim
$detail_produto_id = new TDBSeekButton('detail_produto_id', 'erpweb',$this->form->getName(), 'Produto','descricao', 'detail_produto_id', 'detail_produto_nome');
$detail_produto_nome = new TEntry('detail_produto_nome');

Coloquei esta linha no onedit mas não fez feito $data->detail_produto_nome = $item['produto_nome'];

continua o erro
Notice: Undefined index: produto_nome in C:wamp64wwwOneDriveerpweb1appcontrolPedido_compraForm.class.php on line 472
$item->produto_nome = $list_item['produto_nome'];
NR

Poste o código desse control
GG

Está em anexo.
NR

 
  1. <?php
  2. public function onEdit($param)
  3. {
  4. ...
  5. foreach( $items as $item )
  6. {
  7. $item_key = $item->id;
  8. $session_items[$item_key] = $item->toArray();
  9. $session_items[$item_key]['id'] = $item->id;
  10. $session_items[$item_key]['qtde'] = $item->qtde;
  11. $session_items[$item_key]['qtde_bonificada'] = $item->qtde_bonificada;
  12. $session_items[$item_key]['valor_item'] = $item->valor_item;
  13. $session_items[$item_key]['valor_total_item'] = $item->valor_total_item;
  14. // adicionar linha abaixo
  15. $session_items[$item_key]['produto_nome'] = $item->produto->descricao;
  16. }
  17. ...
  18. ?>
GG

Obrigado Nataniel