Esempio n. 1
0
 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();
 }
Esempio n. 3
0
 /**
  * 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());
     }
 }