Ir para conteúdo
Fórum Script Brasil
  • 0

Relatório com totais das formas de pagamento


Nilson Alvarenga

Pergunta

Bom dia a todos!
Não estou conseguindo resolver esse caso.

Tenho duas tabelas, uma vendas e outra formas de pagamento. Preciso mostrar as formas de pagamento com os valores somados, quando seleciono o mês. Segui o código.

Aqui mostra todos entre a data selecionada, mas não soma o valor total referente a cada forma de pagamento.

[code]

$pos_venda = $this->venda_model->join(''formas_de_pagamento f'',''f.nome = vendas.forma_de_pagamento'')->where(''vendas.data >='', "$data_agora-01")->where(''vendas.data <='', "$data_agora-31")->orderBy(''f.nome'', ''ASC'')->findAll();
[/code]

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Aqui só me da o valor total se adiciono o "groupBy", não mostra os outros campos para que eu mostre na tabela do formulário.

[code]

$pos_venda = $this->venda_model->join(''formas_de_pagamento f'',''f.nome = vendas.forma_de_pagamento'')->where(''vendas.data >='', "$data_agora-01")->where(''vendas.data <='', "$data_agora-31")->orderBy(''f.nome'', ''ASC'')-> groupBy(''vendas.forma_de_pagamento'')->findAll();
[/code]

tabela assim:
Dinheiro 15.00
Dinheiro 10.00
Dinheiro 25.00
Cartão de Débito 25.00
Cartão de Débito 20.00
Cartão de Débito 40.00
Cartão de Crédito 20.00
Cartão de Crédito 20.00
Cartão de Crédito 20.00

Gostaria de mostrar no formulário assim:

Dinheiro 50.00
Cartão de Débito 45.00
Cartão de Crédito 60.00

Podem me ajudar?

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Estudei o Codeigniter e para fazer a sua tarefa, comecei pelo MySQL, mudei ele assim:

CREATE TABLE `vendas` (
  `id` int NOT NULL AUTO_INCREMENT,
  `data` date DEFAULT NULL,
  `venda` float DEFAULT NULL,
  `forma_de_pagamento` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

INSERT INTO `vendas` VALUES (37,'2023-07-01',15,'Dinheiro'),(38,'2023-07-02',10,'Dinheiro'),
(39,'2023-07-03',25,'Dinheiro'),(40,'2023-07-04',25,'Cartão de Débito'),
(41,'2023-07-05',20,'Cartão de Débito'),(42,'2023-07-06',40,'Cartão de Débito'),
(43,'2023-07-07',20,'Cartão de Crédito'),(44,'2023-07-07',20,'Cartão de Crédito'),
(45,'2023-07-08',20,'Cartão de Crédito');

e o Codeigniter ficou assim:
 

app > Config > Routes.php
...
use App\Controllers\Vendas;
$routes->get('vendas',[Vendas::class,'index']);

app > Controllers > Vendas.php
<?php
namespace App\Controllers;
use App\Models\venda_model;
class Vendas extends BaseController {
    public function index(){
        $model=model(venda_model::class);
        $data=['vendas'=>$model->getVendas('2023-07')];
        return view('vendas',$data);}  
    }

app > Models > venda_model.php
<?php
namespace App\Models;
use CodeIgniter\Model;
class venda_model extends Model {
    protected $table='vendas';
    public function getVendas($data_agora){
        return $this->select('sum(venda) as somavenda')
        ->select('forma_de_pagamento')
        ->where('data >=', "$data_agora-01")
        ->where('data <=', "$data_agora-31")
        ->groupBy('forma_de_pagamento')->findAll();}
}

app > Views > vendas.php
<h1>Relatório de Vendas</h1>
<table><th>Forma de Pagamento<th>Venda
<?php foreach($vendas as $venda){ ?>
<tr><td><?=$venda['forma_de_pagamento']?><td><?=$venda['somavenda']?>
<?php } ?>

E ele ficou assim:

Captura de tela 2023-07-22 225543.png

Link para o comentário
Compartilhar em outros sites

  • 0

Frank K Hosaka, Boa tarde!

Muito obrigado por me ajudar.

Desculpe não ter responder antes, acabei de chegar de viagem e já vim correndo conferir sua ajuda.

Eu não estou entendendo a parte do Models, coloco lá e não funciona.

O meu Models original está assim:

 

[code]

<?php

namespace App\Models;

use CodeIgniter\Model;

class VendaModel extends Model
{
    protected $table = 'vendas';
    protected $primaryKey = 'id_venda';
    protected $useSoftDeletes = true;
    protected $allowedFields = [
        'id_venda',
        'valor_a_pagar',
        'desconto',
        'valor_recebido',
        'troco',
        'forma_de_pagamento',
        'juros_link',
        'juros_real_credito',
        'juros_real_debito',
        'juros_real_credito2',
        'juros_real_debito2',
        'valor_real_cartao',
        'numero_parcelas',
        'data',
        'hora',
        'id_cliente',
        'id_funcionario',
        'id_empresa',
        'id_filial',
        'id_usuario',
        'peso',
        'id_caixa'
    ];
    protected $useTimestamps = true;
    protected $createdField  = 'created_at';
    protected $updatedField  = 'updated_at';
    protected $deletedField  = 'deleted_at';
}
 

[/code]

Me desculpe pela falta de conhecimento como vocês, teria como você me ajudar a colocar os códigos do seu Models no meu Controllers, e chamar na Views?

 

Obrigado, Deus te abençõe!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...