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(); } }
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()); } }