ML
Object of class Pedido could not be converted to string
Fechado
Boa noite, novamente preciso de ajuda....
To ajustando o código da aplicação tutor para um aplicação (trabalho de faculdade) e na hora de gravar a venda/pedido pelo função onSave() ta me dando esse alerta "Object of class Pedido could not be converted to string", onde diz que eu não posso converter para string o objeto da classe Pedido. Por falta de conhecimento e prática recorro a alguém que possa me orientar.
public function onSave()
{
try
{
$this->form_cliente->validate(); // validate form data
$data = $this->form_cliente->getData();
TTransaction::open('conectabd');
$items = TSession::getValue('items'); // get items
if ($items)
{
$pedidoitem = new Pedido; // create a new Sale
$$pedidoitem->id_cliente = $data->id_cliente;
$pedidoitem->data_pedido = data_pedido('Y-m-d');
$total_pedido = 0;
foreach ($items as $item)
{
$item->preco_produto = str_replace(',', '', $item->preco_produto);
$item->total_produto = str_replace(',', '', $item->total_produto);
$total += str_replace(',', '', $item->total);
$pedido_item->addPedidoItem($item); // add the item to the Sale
}
$pedidoitem->total = $total;
$pedidoitem->store(); // store the Sale
// clear items
TSession::setValue('items', NULL);
$this->form_cliente->clear(); // clear form
new TMessage('info', 'Record saved successfully');
}
TTransaction::close();
$this->onReload();
}
catch (Exception $e)
{
new TMessage('error', $e->getMessage());
}
}
To ajustando o código da aplicação tutor para um aplicação (trabalho de faculdade) e na hora de gravar a venda/pedido pelo função onSave() ta me dando esse alerta "Object of class Pedido could not be converted to string", onde diz que eu não posso converter para string o objeto da classe Pedido. Por falta de conhecimento e prática recorro a alguém que possa me orientar.
public function onSave()
{
try
{
$this->form_cliente->validate(); // validate form data
$data = $this->form_cliente->getData();
TTransaction::open('conectabd');
$items = TSession::getValue('items'); // get items
if ($items)
{
$pedidoitem = new Pedido; // create a new Sale
$$pedidoitem->id_cliente = $data->id_cliente;
$pedidoitem->data_pedido = data_pedido('Y-m-d');
$total_pedido = 0;
foreach ($items as $item)
{
$item->preco_produto = str_replace(',', '', $item->preco_produto);
$item->total_produto = str_replace(',', '', $item->total_produto);
$total += str_replace(',', '', $item->total);
$pedido_item->addPedidoItem($item); // add the item to the Sale
}
$pedidoitem->total = $total;
$pedidoitem->store(); // store the Sale
// clear items
TSession::setValue('items', NULL);
$this->form_cliente->clear(); // clear form
new TMessage('info', 'Record saved successfully');
}
TTransaction::close();
$this->onReload();
}
catch (Exception $e)
{
new TMessage('error', $e->getMessage());
}
}
Olá Marcelo
Veja qual linha esta dando o problema, geralmente este problema ocorre quando vc passa um valor para um campo do formulário que estava esperando uma widget Ex: TEntry ou Tlabel, vc pode criar um TLabel("Passar valor aqui") e inserir o label ao form.
Vlw
Marcelo
quando colocar o código no forum coloque entre as tags '
Creio que seu problema esteja nos campos de valores:
<php
//transforme todos os campos que tenham valor para tipo igual ao do banco de dados, ou seja
//se o campo for double ou float use doubleVal() conforme exemplo abaixo
$item->preco_produto = doubleVal(str_replace(',', '', $item->preco_produto));
?>
Verifique sua função replace pq pode dar errado os valores se vc tiver valores com decimais.
Pessoal fiz as alterações que você pediram o problema citado anteriormente não ocorreu mais. Agora ao tentar gravar a venda exibe a msg: Fatal error: Call to undefined function data_pedido(). Não consegui identificar o pq do erro.
Olá Marcelo
Onde vc colocou data_pedido vc esta chamando uma função se vc não criou da este erro, neste caso vc pode criar uma função com este nome ou vc pode usar a função nativa do php para pegar a data atual.
Vlw
Jackson,
Segui sua orientação e me deparei com a seguinte msg ao tentar gravar a venda: Argument 1 passed to Pedido::addPedidoItem() must be an instance of PedidoItem, instance of Produto given, called in C:xampphtdocsMisterChefappcontrolPedidoForm.class.php on line 244 and defined.
O model PedidoItem está abaixo:
Minha falta de conhecimento/experiencia de iniciante está me limitando a resolver essa situação... Peço apoio aos colegas que puderem me ajudar...
Você deve ter coisas na variável de sessão que não sejam objetos PedidoItem:
TSession::getValue('items');
Confira o trecho do código onde você alimenta a variável de sessão.
O erro deve estar ali.