From 3d9835746fb591ba074c090d4399bde6b20ac64e Mon Sep 17 00:00:00 2001 From: cabralwms <61280919+cabralwms@users.noreply.github.com> Date: Sat, 20 Jul 2024 14:17:06 -0300 Subject: [PATCH] =?UTF-8?q?#DESAFIO=20PR=20Atualiza=C3=A7=C3=A3o=20painel?= =?UTF-8?q?=20com=20informa=C3=A7=C3=B5es=20(B=C3=94NUS)=20(#2490)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Correção bug ao Faturar Vendas * Melhorada as informações do Painel * Correção Ortografica * Aumento de limites * Correção limites apresentados. * Melhorando Responsividade --- application/controllers/Mapos.php | 12 +- application/models/Mapos_model.php | 70 ++++ application/views/mapos/painel.php | 594 ++++++++++++++++++++++++----- assets/css/custom.css | 57 +++ 4 files changed, 646 insertions(+), 87 deletions(-) diff --git a/application/controllers/Mapos.php b/application/controllers/Mapos.php index f20959442..d5af01849 100644 --- a/application/controllers/Mapos.php +++ b/application/controllers/Mapos.php @@ -8,8 +8,16 @@ public function __construct() public function index() { - $this->data['ordens'] = $this->mapos_model->getOsAbertas(); - $this->data['ordens1'] = $this->mapos_model->getOsAguardandoPecas(); + $status = array('Em Andamento', 'Aguardando Peças'); + $this->data['ordens_status'] = $this->mapos_model->getOsStatus($status); + $vstatus = array('Aberto', 'Em Andamento', 'Aguardando Peças', 'Aprovado', 'Orçamento'); + $this->data['vendasstatus'] = $this->mapos_model->getVendasStatus($vstatus); + $this->data['lancamentos'] = $this->mapos_model->getLancamentos(); + $this->data['ordens_orcamentos'] = $this->mapos_model->getOsOrcamentos(); + $this->data['ordens_abertas'] = $this->mapos_model->getOsAbertas(); + $this->data['ordens_aprovadas'] = $this->mapos_model->getOsAprovadas(); + $this->data['ordens_finalizadas'] = $this->mapos_model->getOsFinalizadas(); + $this->data['ordens_aguardando'] = $this->mapos_model->getOsAguardandoPecas(); $this->data['ordens_andamento'] = $this->mapos_model->getOsAndamento(); $this->data['produtos'] = $this->mapos_model->getProdutosMinimo(); $this->data['os'] = $this->mapos_model->getOsEstatisticas(); diff --git a/application/models/Mapos_model.php b/application/models/Mapos_model.php index 823bea38c..98bcdf31c 100644 --- a/application/models/Mapos_model.php +++ b/application/models/Mapos_model.php @@ -116,6 +116,17 @@ public function count($table) return $this->db->count_all($table); } + public function getOsOrcamentos() + { + $this->db->select('os.*, clientes.nomeCliente'); + $this->db->from('os'); + $this->db->join('clientes', 'clientes.idClientes = os.clientes_id'); + $this->db->where('os.status', 'Orçamento'); + $this->db->limit(10); + + return $this->db->get()->result(); + } + public function getOsAbertas() { $this->db->select('os.*, clientes.nomeCliente'); @@ -127,6 +138,29 @@ public function getOsAbertas() return $this->db->get()->result(); } + public function getOsFinalizadas() + { + $this->db->select('os.*, clientes.nomeCliente'); + $this->db->from('os'); + $this->db->join('clientes', 'clientes.idClientes = os.clientes_id'); + $this->db->where('os.status', 'Finalizado'); + $this->db->order_by('os.idOs', 'DESC'); + $this->db->limit(10); + + return $this->db->get()->result(); + } + + public function getOsAprovadas() + { + $this->db->select('os.*, clientes.nomeCliente'); + $this->db->from('os'); + $this->db->join('clientes', 'clientes.idClientes = os.clientes_id'); + $this->db->where('os.status', 'Aprovado'); + $this->db->limit(10); + + return $this->db->get()->result(); + } + public function getOsAguardandoPecas() { $this->db->select('os.*, clientes.nomeCliente'); @@ -149,6 +183,42 @@ public function getOsAndamento() return $this->db->get()->result(); } + public function getOsStatus($status) + { + $this->db->select('os.*, clientes.nomeCliente'); + $this->db->from('os'); + $this->db->join('clientes', 'clientes.idClientes = os.clientes_id'); + $this->db->where_in('os.status', $status); + $this->db->order_by('os.idOs', 'DESC'); + $this->db->limit(10); + + return $this->db->get()->result(); + } + + public function getVendasStatus($vstatus) + { + $this->db->select('vendas.*, clientes.nomeCliente'); + $this->db->from('vendas'); + $this->db->join('clientes', 'clientes.idClientes = vendas.clientes_id'); + $this->db->where_in('vendas.status', $vstatus); + $this->db->order_by('vendas.idVendas', 'DESC'); + $this->db->limit(10); + + return $this->db->get()->result(); + } + + public function getLancamentos() + { + $this->db->select('idLancamentos, tipo, cliente_fornecedor, descricao, data_vencimento, forma_pgto, valor_desconto, baixado'); + $this->db->from('lancamentos'); + $this->db->where('baixado', 0); + $this->db->order_by('idLancamentos', 'DESC'); + $this->db->limit(10); + + $query = $this->db->get(); + return $query->result(); + } + public function calendario($start, $end, $status = null) { $this->db->select( diff --git a/application/views/mapos/painel.php b/application/views/mapos/painel.php index ef9be8ac1..a6a861eeb 100644 --- a/application/views/mapos/painel.php +++ b/application/views/mapos/painel.php @@ -8,6 +8,7 @@ + @@ -490,88 +491,154 @@ function responsiveFonts() {
-
-
-
-
Produtos Com Estoque Mínimo
-
-
- - - - - - - - - - - - - - - - - - - - - - - - +
+
+
Ordens de Serviços Em Orçamento.
+
+
+
Cod.ProdutoPreço de VendaEstoqueEstoque MínimoAções
- idProdutos ?> - - descricao ?> - R$ - precoVenda ?> - - estoque ?> - - estoqueMinimo ?> - - permission->checkPermission($this->session->userdata('permissao'), 'eProduto')) : ?> - - - - - - -
+ + + + + + + + + + + + + status) { + case 'Aberto': + $cor = '#00cd00'; + break; + case 'Em Andamento': + $cor = '#436eee'; + break; + case 'Orçamento': + $cor = '#CDB380'; + break; + case 'Negociação': + $cor = '#AEB404'; + break; + case 'Cancelado': + $cor = '#CD0000'; + break; + case 'Finalizado': + $cor = '#256'; + break; + case 'Faturado': + $cor = '#B266FF'; + break; + case 'Aguardando Peças': + $cor = '#FF7F00'; + break; + case 'Aprovado': + $cor = '#808080'; + break; + default: + $cor = '#E0E4CC'; + break; + } + ?> - + + + + + + + + + - - -
ClienteData FinalStatusAções
Nenhum produto com estoque baixo. + idOs ?> + + nomeCliente ?> + dataFinal != null) { + echo date('d/m/Y', strtotime($o->dataFinal)); + } else { + echo ""; + } ?> + status ?> + + permission->checkPermission($this->session->userdata('permissao'), 'vOs')) : ?> + + + +
-
+ + + + Nenhuma OS em Orçamento. + + + +
- +
-
Ordens de Serviço Em Aberto
+
Ordens de Serviços Em Aberto
- - + + - - + + + status) { + case 'Aberto': + $cor = '#00cd00'; + break; + case 'Em Andamento': + $cor = '#436eee'; + break; + case 'Orçamento': + $cor = '#CDB380'; + break; + case 'Negociação': + $cor = '#AEB404'; + break; + case 'Cancelado': + $cor = '#CD0000'; + break; + case 'Finalizado': + $cor = '#256'; + break; + case 'Faturado': + $cor = '#B266FF'; + break; + case 'Aguardando Peças': + $cor = '#FF7F00'; + break; + case 'Aprovado': + $cor = '#808080'; + break; + default: + $cor = '#E0E4CC'; + break; + } + ?> - - - +
Data InicialData Final ClienteData FinalStatus Ações
idOs ?> - dataInicial)) ?> + + + nomeCliente ?> dataFinal != null) { @@ -579,10 +646,11 @@ function responsiveFonts() { } else { echo ""; } ?> - nomeCliente ?> + + + status ?> permission->checkPermission($this->session->userdata('permissao'), 'vOs')) : ?> @@ -604,46 +672,175 @@ function responsiveFonts() {
-
Ordens de Serviço Aguardando Peças
+
Ordens de Serviços Aprovadas
- - + + - - + + + status) { + case 'Aberto': + $cor = '#00cd00'; + break; + case 'Em Andamento': + $cor = '#436eee'; + break; + case 'Orçamento': + $cor = '#CDB380'; + break; + case 'Negociação': + $cor = '#AEB404'; + break; + case 'Cancelado': + $cor = '#CD0000'; + break; + case 'Finalizado': + $cor = '#256'; + break; + case 'Faturado': + $cor = '#B266FF'; + break; + case 'Aguardando Peças': + $cor = '#FF7F00'; + break; + case 'Aprovado': + $cor = '#808080'; + break; + default: + $cor = '#E0E4CC'; + break; + } + ?> + + + + + + + + + + + + + + + +
Data InicialData Final ClienteData FinalStatus Ações
idOs ?> + nomeCliente ?> + dataFinal != null) { + echo date('d/m/Y', strtotime($o->dataFinal)); + } else { + echo ""; + } ?> + status ?> + - dataInicial)) ?> + permission->checkPermission($this->session->userdata('permissao'), 'vOs')) : ?> + + +
Nenhuma OS Aprovada.
+
+
+ +
+
+
Ordens de Serviços Finalizadas
+
+
+ + + + + + + + + + + + + + status) { + case 'Aberto': + $cor = '#00cd00'; + break; + case 'Em Andamento': + $cor = '#436eee'; + break; + case 'Orçamento': + $cor = '#CDB380'; + break; + case 'Negociação': + $cor = '#AEB404'; + break; + case 'Cancelado': + $cor = '#CD0000'; + break; + case 'Finalizado': + $cor = '#256'; + break; + case 'Faturado': + $cor = '#B266FF'; + break; + case 'Aguardando Peças': + $cor = '#FF7F00'; + break; + case 'Aprovado': + $cor = '#808080'; + break; + default: + $cor = '#E0E4CC'; + break; + } + ?> + + + + + + + - + @@ -653,52 +850,279 @@ function responsiveFonts() {
-
Ordens de Serviço Em Andamento
+
Ordens de Serviços Em Andamento e Aguardando Peças
ClienteData FinalStatusAções
- dataFinal)) ?> + idOs ?> nomeCliente ?> dataFinal != null) { + echo date('d/m/Y', strtotime($o->dataFinal)); + } else { + echo ""; + } ?> + status ?> + permission->checkPermission($this->session->userdata('permissao'), 'vOs')) : ?> - +
Nenhuma OS Aguardando Peças.Nenhuma OS Finalizada.
- - + + - - + + + status) { + case 'Aberto': + $cor = '#00cd00'; + break; + case 'Em Andamento': + $cor = '#436eee'; + break; + case 'Orçamento': + $cor = '#CDB380'; + break; + case 'Negociação': + $cor = '#AEB404'; + break; + case 'Cancelado': + $cor = '#CD0000'; + break; + case 'Finalizado': + $cor = '#256'; + break; + case 'Faturado': + $cor = '#B266FF'; + break; + case 'Aguardando Peças': + $cor = '#FF7F00'; + break; + case 'Aprovado': + $cor = '#808080'; + break; + default: + $cor = '#E0E4CC'; + break; + } + ?> + + + + + + + + + + + + + +
Data InicialData Final ClienteData FinalStatus Ações
idOs ?> + nomeCliente ?> + dataFinal != null) { + echo date('d/m/Y', strtotime($o->dataFinal)); + } else { + echo ""; + } ?> + status ?> + - dataInicial)) ?> + permission->checkPermission($this->session->userdata('permissao'), 'vOs')) : ?> + + +
Nenhuma OS em Orçamento.
+
+
+ +
+
+
Status de Vendas
+
+
+ + + + + + + + + + + + + + status) { + case 'Aberto': + $cor = '#00cd00'; + break; + case 'Em Andamento': + $cor = '#436eee'; + break; + case 'Orçamento': + $cor = '#CDB380'; + break; + case 'Negociação': + $cor = '#AEB404'; + break; + case 'Cancelado': + $cor = '#CD0000'; + break; + case 'Finalizado': + $cor = '#256'; + break; + case 'Faturado': + $cor = '#B266FF'; + break; + case 'Aguardando Peças': + $cor = '#FF7F00'; + break; + case 'Aprovado': + $cor = '#808080'; + break; + default: + $cor = '#E0E4CC'; + break; + } + ?> + + + + + - +
ClienteData da VendaStatusAções
- dataFinal)) ?> + idVendas ?> - nomeCliente ?> + nomeCliente ?> - permission->checkPermission($this->session->userdata('permissao'), 'vOs')) : ?> - - + dataVenda)) ?> + + status ?> + + permission->checkPermission($this->session->userdata('permissao'), 'vVenda')) : ?> + + +
Nenhuma OS em Andamento.Nenhuma Venda.
+ +
+
+
Últimos Lançamentos Pendentes
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
TipoCliente/FornecedorDescriçãoVencimentoV.T. Pago
+ tipo == 'receita'): ?> + tipo); ?> + tipo == 'despesa'): ?> + tipo); ?> + + tipo); ?> + + cliente_fornecedor; ?>descricao; ?>data_vencimento), 'd/m/Y'); ?>R$ valor_desconto, 2, ',', '.'); ?>
Nenhum lançamento encontrado.
+
+
+ +
+
+
+
Produtos Com Estoque Mínimo
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Cod.ProdutoPreço de VendaEstoqueEstoque MínimoAções
+ idProdutos ?> + + descricao ?> + R$ + precoVenda ?> + + estoque ?> + + estoqueMinimo ?> + + permission->checkPermission($this->session->userdata('permissao'), 'eProduto')) : ?> + + + + + + +
Nenhum produto com estoque baixo.
+
+
+
+ diff --git a/assets/css/custom.css b/assets/css/custom.css index 04ee36a14..6cd27b2ae 100644 --- a/assets/css/custom.css +++ b/assets/css/custom.css @@ -82,3 +82,60 @@ textarea { .ui-menu { z-index: 9999 !important; } + +.numero-col { + width: 3%; +} + +.data-inicial-col { + width: 10%; +} + +.data-final-col { + width: 10%; +} + +.acoes-col { + width: 5%; +} + +.tipo-col { + width: 10%; +} + +.cliente-col { + width: 20%; +} + +.status-col { + width: 12%; +} + +.descricao-col { + width: 20%; +} + +.vencimento-col { + width: 10%; +} + +.valor-col { + width: 10%; +} + +.text-truncate { + max-width: 100%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.lanc-table { + table-layout: fixed; + width: 100%; +} + +.lanc-table tbody > tr > td, +.lanc-table tbody > tr > th { + padding: 7px; +}