colocando todos os valores no analitico
This commit is contained in:
parent
88c5e02987
commit
9ad890bb19
|
|
@ -27,7 +27,18 @@ interface AnaliticoItem {
|
||||||
updated_at: string;
|
updated_at: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
type SortField = 'nome_fornecedor' | 'data_competencia' | 'valor' | 'conta';
|
type SortField =
|
||||||
|
| 'data_vencimento'
|
||||||
|
| 'data_caixa'
|
||||||
|
| 'codigo_fornecedor'
|
||||||
|
| 'nome_fornecedor'
|
||||||
|
| 'codigo_centrocusto'
|
||||||
|
| 'codigo_conta'
|
||||||
|
| 'conta'
|
||||||
|
| 'valor'
|
||||||
|
| 'historico'
|
||||||
|
| 'historico2'
|
||||||
|
| 'recnum';
|
||||||
type SortDirection = 'asc' | 'desc';
|
type SortDirection = 'asc' | 'desc';
|
||||||
|
|
||||||
interface SortConfig {
|
interface SortConfig {
|
||||||
|
|
@ -50,7 +61,7 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
const [data, setData] = useState<AnaliticoItem[]>([]);
|
const [data, setData] = useState<AnaliticoItem[]>([]);
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const [sortConfig, setSortConfig] = useState<SortConfig>({
|
const [sortConfig, setSortConfig] = useState<SortConfig>({
|
||||||
field: 'data_competencia',
|
field: 'data_vencimento',
|
||||||
direction: 'desc',
|
direction: 'desc',
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -150,25 +161,21 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
|
|
||||||
// Preparar dados para exportação
|
// Preparar dados para exportação
|
||||||
const exportData = data.map((item) => ({
|
const exportData = data.map((item) => ({
|
||||||
'Código Fornecedor': item.codigo_fornecedor,
|
|
||||||
'Nome Fornecedor': item.nome_fornecedor,
|
|
||||||
'Data Competência': new Date(item.data_competencia).toLocaleDateString(
|
|
||||||
'pt-BR'
|
|
||||||
),
|
|
||||||
'Data Vencimento': new Date(item.data_vencimento).toLocaleDateString(
|
'Data Vencimento': new Date(item.data_vencimento).toLocaleDateString(
|
||||||
'pt-BR'
|
'pt-BR'
|
||||||
),
|
),
|
||||||
'Data Pagamento': item.data_pagamento
|
|
||||||
? new Date(item.data_pagamento).toLocaleDateString('pt-BR')
|
|
||||||
: '',
|
|
||||||
'Data Caixa': new Date(item.data_caixa).toLocaleDateString('pt-BR'),
|
'Data Caixa': new Date(item.data_caixa).toLocaleDateString('pt-BR'),
|
||||||
|
'Código Fornecedor': item.codigo_fornecedor,
|
||||||
|
Fornecedor: item.nome_fornecedor,
|
||||||
|
'Código Centro Custo': item.codigo_centrocusto,
|
||||||
|
'Centro Custo': item.codigo_centrocusto, // Assumindo que é o mesmo valor
|
||||||
'Código Conta': item.codigo_conta,
|
'Código Conta': item.codigo_conta,
|
||||||
Conta: item.conta,
|
Conta: item.conta,
|
||||||
'Centro de Custo': item.codigo_centrocusto,
|
|
||||||
Valor:
|
Valor:
|
||||||
typeof item.valor === 'string' ? parseFloat(item.valor) : item.valor,
|
typeof item.valor === 'string' ? parseFloat(item.valor) : item.valor,
|
||||||
Histórico: item.historico,
|
Histórico: item.historico,
|
||||||
'Histórico 2': item.historico2,
|
'Histórico 2': item.historico2,
|
||||||
|
Recnum: item.recnum,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Criar workbook
|
// Criar workbook
|
||||||
|
|
@ -251,9 +258,39 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
style={{ backgroundColor: 'white', opacity: 1 }}
|
style={{ backgroundColor: 'white', opacity: 1 }}
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className="flex p-3 font-semibold text-xs"
|
className="flex p-2 font-semibold text-xs"
|
||||||
style={{ backgroundColor: 'white', opacity: 1 }}
|
style={{ backgroundColor: 'white', opacity: 1 }}
|
||||||
>
|
>
|
||||||
|
<div className="flex-1 min-w-[100px] max-w-[120px]">
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
onClick={() => handleSort('data_vencimento')}
|
||||||
|
className="h-auto p-0 font-semibold"
|
||||||
|
>
|
||||||
|
Data Venc.
|
||||||
|
{getSortIcon('data_vencimento')}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
<div className="flex-1 min-w-[100px] max-w-[120px]">
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
onClick={() => handleSort('data_caixa')}
|
||||||
|
className="h-auto p-0 font-semibold"
|
||||||
|
>
|
||||||
|
Data Caixa
|
||||||
|
{getSortIcon('data_caixa')}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
<div className="flex-1 min-w-[100px] max-w-[120px]">
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
onClick={() => handleSort('codigo_fornecedor')}
|
||||||
|
className="h-auto p-0 font-semibold"
|
||||||
|
>
|
||||||
|
Cód. Fornec.
|
||||||
|
{getSortIcon('codigo_fornecedor')}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
<div className="flex-1 min-w-[150px] max-w-[200px]">
|
<div className="flex-1 min-w-[150px] max-w-[200px]">
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
|
|
@ -264,17 +301,27 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
{getSortIcon('nome_fornecedor')}
|
{getSortIcon('nome_fornecedor')}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex-1 min-w-[100px] max-w-[120px] text-right">
|
<div className="flex-1 min-w-[100px] max-w-[120px]">
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
onClick={() => handleSort('data_competencia')}
|
onClick={() => handleSort('codigo_centrocusto')}
|
||||||
className="h-auto p-0 font-semibold"
|
className="h-auto p-0 font-semibold"
|
||||||
>
|
>
|
||||||
Data
|
Cód. Centro
|
||||||
{getSortIcon('data_competencia')}
|
{getSortIcon('codigo_centrocusto')}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex-1 min-w-[120px] max-w-[150px] text-right">
|
<div className="flex-1 min-w-[100px] max-w-[120px]">
|
||||||
|
<Button
|
||||||
|
variant="ghost"
|
||||||
|
onClick={() => handleSort('codigo_conta')}
|
||||||
|
className="h-auto p-0 font-semibold"
|
||||||
|
>
|
||||||
|
Cód. Conta
|
||||||
|
{getSortIcon('codigo_conta')}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
<div className="flex-1 min-w-[120px] max-w-[150px]">
|
||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
onClick={() => handleSort('conta')}
|
onClick={() => handleSort('conta')}
|
||||||
|
|
@ -294,7 +341,11 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
{getSortIcon('valor')}
|
{getSortIcon('valor')}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
<div className="flex-1 min-w-[200px] max-w-[300px]">Histórico</div>
|
<div className="flex-1 min-w-[150px] max-w-[200px]">Histórico</div>
|
||||||
|
<div className="flex-1 min-w-[150px] max-w-[200px]">
|
||||||
|
Histórico 2
|
||||||
|
</div>
|
||||||
|
<div className="flex-1 min-w-[100px] max-w-[120px]">Recnum</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -310,14 +361,26 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
) : (
|
) : (
|
||||||
sortedData.map((row, index) => (
|
sortedData.map((row, index) => (
|
||||||
<div key={index} className="flex border-b hover:bg-gray-50">
|
<div key={index} className="flex border-b hover:bg-gray-50">
|
||||||
|
<div className="flex-1 min-w-[100px] max-w-[120px] p-1 text-xs">
|
||||||
|
{formatDate(row.data_vencimento)}
|
||||||
|
</div>
|
||||||
|
<div className="flex-1 min-w-[100px] max-w-[120px] p-1 text-xs">
|
||||||
|
{formatDate(row.data_caixa)}
|
||||||
|
</div>
|
||||||
|
<div className="flex-1 min-w-[100px] max-w-[120px] p-1 text-xs">
|
||||||
|
{row.codigo_fornecedor || '-'}
|
||||||
|
</div>
|
||||||
<div className="flex-1 min-w-[150px] max-w-[200px] p-1 text-xs">
|
<div className="flex-1 min-w-[150px] max-w-[200px] p-1 text-xs">
|
||||||
{row.nome_fornecedor || '-'}
|
{row.nome_fornecedor || '-'}
|
||||||
</div>
|
</div>
|
||||||
<div className="flex-1 min-w-[100px] max-w-[120px] text-right p-1 text-xs">
|
<div className="flex-1 min-w-[100px] max-w-[120px] p-1 text-xs">
|
||||||
{formatDate(row.data_competencia)}
|
{row.codigo_centrocusto || '-'}
|
||||||
</div>
|
</div>
|
||||||
<div className="flex-1 min-w-[120px] max-w-[150px] text-right p-1 text-xs">
|
<div className="flex-1 min-w-[100px] max-w-[120px] p-1 text-xs">
|
||||||
{row.conta}
|
{row.codigo_conta || '-'}
|
||||||
|
</div>
|
||||||
|
<div className="flex-1 min-w-[120px] max-w-[150px] p-1 text-xs">
|
||||||
|
{row.conta || '-'}
|
||||||
</div>
|
</div>
|
||||||
<div className="flex-1 min-w-[100px] max-w-[120px] text-right p-1 text-xs font-medium">
|
<div className="flex-1 min-w-[100px] max-w-[120px] text-right p-1 text-xs font-medium">
|
||||||
{formatCurrency(
|
{formatCurrency(
|
||||||
|
|
@ -326,9 +389,15 @@ export default function AnaliticoComponent({ filtros }: AnaliticoProps) {
|
||||||
: row.valor
|
: row.valor
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div className="flex-1 min-w-[200px] max-w-[300px] p-1 text-xs">
|
<div className="flex-1 min-w-[150px] max-w-[200px] p-1 text-xs">
|
||||||
{row.historico || '-'}
|
{row.historico || '-'}
|
||||||
</div>
|
</div>
|
||||||
|
<div className="flex-1 min-w-[150px] max-w-[200px] p-1 text-xs">
|
||||||
|
{row.historico2 || '-'}
|
||||||
|
</div>
|
||||||
|
<div className="flex-1 min-w-[100px] max-w-[120px] p-1 text-xs">
|
||||||
|
{row.recnum || '-'}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
))
|
))
|
||||||
)}
|
)}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue