public function show() { try { Transaction::open('livro'); $venda = new Venda(); $venda->cliente = new Pessoa(3); $venda->data_venda = date('Y-m-d'); $venda->valor_venda = 0; $venda->desconto = 0; $venda->acrescimos = 0; $venda->obs = 'obs'; $venda->addItem(new Produto(3), 2); $venda->addItem(new Produto(4), 1); $venda->valor_final = $venda->valor_venda + $venda->acrescimos - $venda->desconto; $venda->store(); Transaction::close(); } catch (Exception $e) { echo $e->getMessage(); } }
*/ public function getItens() { return $this->itens; } public function finalizarVenda() { foreach ($this->itens as $item) { $quantidade = $item[0]; $produto = $item[1]; //Soma Total $total += $produto->calculaPrecoVenda() * $quantidade; //Diminuir estoque $produto->resgistraVenda($quantidade); } return $total; } } #Fim da Class Venda #----------------------------------- //Intanciar o objecto venda $venda = new Venda(); //Adicionar alguns produtos $venda->addItem(3, new Produto('Vinho', 10, 15)); //58.5 $venda->addItem(2, new Produto('Salame', 20, 20)); //52 $venda->addItem(1, new Produto('Queijo', 30, 10)); //13 //finalizar a venda echo $venda->finalizarVenda();
<?php require_once 'classes/dm/Produto.php'; require_once 'classes/dm/Venda.php'; require_once 'classes/dm/VendaMapper.php'; try { $p1 = new Produto(); $p1->id = 1; $p1->preco = 12; $p2 = new Produto(); $p2->id = 2; $p2->preco = 14; $venda = new Venda(); $venda->addItem(10, $p1); $venda->addItem(20, $p2); $conn = new PDO('sqlite:database/estoque.db'); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); VendaMapper::setConnection($conn); VendaMapper::save($venda); } catch (Exception $e) { print $e->getMessage(); }
function onGravaVenda() { date_default_timezone_set('America/Sao_Paulo'); // obtém os dados do formulário de conclusão de venda $form = new ConcluiVendaForm(); $dados = $form->getData(); // inicia transação com o banco 'sq_livro' TTransaction::open('sq_livro'); // instancia novo objeto Venda $venda = new Venda(); // define os atributos a serem gravados $venda->id_cliente = $dados->id_cliente; $venda->data_venda = date('Y-m-d'); $venda->desconto = $dados->desconto; $venda->valor_total = $dados->valor_total; $venda->valor_pago = $dados->valor_pago; // lê a variável $list da seção $itens = TSession::getValue('list'); if ($itens) { // percorre os itens foreach ($itens as $item) { // adiciona o item na venda $venda->addItem($item); } } // armazena venda no banco de dados $venda->store(); // finaliza a transação TTransaction::close(); // limpa lista de itens da seção TSession::setValue('list', array()); // exibe mensagem de sucesso new TMessage('info', 'Venda registrada com sucesso'); // recarrega lista de itens $this->onReload(); }
/** * Grava venda */ public function onGravaVenda() { try { // inicia transação com o banco 'livro' Transaction::open('livro'); $dados = $this->form->getData(); $cliente = Pessoa::find($dados->id_cliente); if (!$cliente) { throw new Exception('Cliente não encontrado'); } if ($cliente->totalDebitos() > 0) { throw new Exception('Débitos impedem esta operação'); } $venda = new Venda(); $venda->cliente = $cliente; $venda->data_venda = date('Y-m-d'); $venda->valor_venda = $dados->valor_venda; $venda->desconto = $dados->desconto; $venda->acrescimos = $dados->acrescimos; $venda->valor_final = $dados->valor_final; $venda->obs = $dados->obs; // lê a variável $list da seção $itens = Session::getValue('list'); if ($itens) { // percorre os itens foreach ($itens as $item) { // adiciona o item na venda $venda->addItem(new Produto($item->id_produto), $item->quantidade); } } $venda->store(); // armazena venda no banco de dados // gera o financeiro Conta::geraParcelas($dados->id_cliente, 2, $dados->valor_final, $dados->parcelas); Transaction::close(); // finaliza a transação Session::setValue('list', array()); // limpa lista de itens da seção // exibe mensagem de sucesso new Message('info', 'Venda registrada com sucesso'); } catch (Exception $e) { new Message('error', $e->getMessage()); } }