@extends('layouts.app')
@section('title', 'Detalhes da Transferência')
@push('styles-custom')
@endpush
@section('content')
{{ $transferencia->descricao }}
Data
{{ \Carbon\Carbon::parse($transferencia->data)->format('d/m/Y') }}
Valor
R$ {{ number_format($transferencia->valor, 2, ',', '.') }}
Descrição
{{ $transferencia->descricao }}
Processada
Transferência lançada em
{{ $transferencia->created_at->format('d/m/Y \à\s H:i') }}
{{ $transferencia->contaOrigem->empresa->nome_fantasia }}
{{ $transferencia->contaOrigem->empresa->razao_social }}
{{ $transferencia->contaOrigem->banco }}
Ag: {{ $transferencia->contaOrigem->agencia }} | CC: {{ $transferencia->contaOrigem->conta_corrente }}
{{ $transferencia->planoOrigem->codigo }}
{{ $transferencia->planoOrigem->descricao }}
Conta de Destino (Crédito)
{{ $transferencia->contaDestino->empresa->nome_fantasia }}
{{ $transferencia->contaDestino->empresa->razao_social }}
{{ $transferencia->contaDestino->banco }}
Ag: {{ $transferencia->contaDestino->agencia }} | CC: {{ $transferencia->contaDestino->conta_corrente }}
{{ $transferencia->planoDestino->codigo }}
{{ $transferencia->planoDestino->descricao }}
Tipo |
Data |
Descrição |
Empresa |
Conta Bancária |
Valor |
@php
$movimentacoes = collect();
// Adicionar TODOS os pagamentos com transferencia_id = transferencia.id
foreach ($pagamentos as $pagamento) {
$contaAPagar = $pagamento->contaAPagar;
$movimentacoes->push([
'tipo' => 'débito',
'tipo_label' => 'Pagamento (Débito)',
'data' => $pagamento->data_pagamento,
'data_original' => $pagamento->created_at,
'descricao' => $contaAPagar ? $contaAPagar->descricao : 'Pagamento de transferência',
'empresa' => $contaAPagar && $contaAPagar->empresa ? $contaAPagar->empresa->nome_fantasia : 'N/A',
'fornecedor' => $contaAPagar && $contaAPagar->fornecedor ? $contaAPagar->fornecedor->razao_social : 'N/A',
'conta' => $contaAPagar && $contaAPagar->contaBancaria ?
$contaAPagar->contaBancaria->banco . ' - ' . $contaAPagar->contaBancaria->conta_corrente : 'N/A',
'valor' => $pagamento->valor,
'conta_id' => $contaAPagar ? $contaAPagar->id : null,
'conta_tipo' => 'conta_a_pagar',
'movimentacao_id' => $pagamento->id,
'multa' => $pagamento->multa ?? 0,
'juros' => $pagamento->juros ?? 0
]);
}
// Adicionar TODOS os recebimentos com transferencia_id = transferencia.id
foreach ($recebimentos as $recebimento) {
$contaAReceber = $recebimento->contaAReceber;
$movimentacoes->push([
'tipo' => 'crédito',
'tipo_label' => 'Recebimento (Crédito)',
'data' => $recebimento->data_pagamento,
'data_original' => $recebimento->created_at,
'descricao' => $contaAReceber ? $contaAReceber->descricao : 'Recebimento de transferência',
'empresa' => $contaAReceber && $contaAReceber->empresa ? $contaAReceber->empresa->nome_fantasia : 'N/A',
'cliente' => $contaAReceber && $contaAReceber->cliente ? $contaAReceber->cliente->razao_social : 'N/A',
'conta' => $contaAReceber && $contaAReceber->contaBancaria ?
$contaAReceber->contaBancaria->banco . ' - ' . $contaAReceber->contaBancaria->conta_corrente : 'N/A',
'valor' => $recebimento->valor,
'conta_id' => $contaAReceber ? $contaAReceber->id : null,
'conta_tipo' => 'conta_a_receber',
'movimentacao_id' => $recebimento->id,
'observacao' => $recebimento->observacao ?? ''
]);
}
/*
// *** ADICIONAR MOVIMENTAÇÃO VIRTUAL PARA BALANCEAMENTO ***
// Se não há recebimentos registrados, criar uma movimentação virtual para exibição
if ($recebimentos->count() == 0) {
$movimentacoes->push([
'tipo' => 'crédito',
'tipo_label' => 'Transferência (Crédito)',
'data' => $transferencia->data,
'data_original' => $transferencia->created_at,
'descricao' => 'TRANSFERÊNCIA = ' . $transferencia->descricao,
'empresa' => $transferencia->contaDestino->empresa->nome_fantasia,
'cliente' => 'Transferência interna',
'conta' => $transferencia->contaDestino->banco . ' - ' . $transferencia->contaDestino->conta_corrente,
'valor' => $transferencia->valor,
'conta_id' => null,
'conta_tipo' => 'transferencia',
'movimentacao_id' => 'virtual',
'observacao' => 'Movimentação de transferência'
]);
}
// Se não há pagamentos registrados, criar uma movimentação virtual para exibição
if ($pagamentos->count() == 0) {
$movimentacoes->push([
'tipo' => 'débito',
'tipo_label' => 'Transferência (Débito)',
'data' => $transferencia->data,
'data_original' => $transferencia->created_at,
'descricao' => 'TRANSFERÊNCIA = ' . $transferencia->descricao,
'empresa' => $transferencia->contaOrigem->empresa->nome_fantasia,
'fornecedor' => 'Transferência interna',
'conta' => $transferencia->contaOrigem->banco . ' - ' . $transferencia->contaOrigem->conta_corrente,
'valor' => $transferencia->valor,
'conta_id' => null,
'conta_tipo' => 'transferencia',
'movimentacao_id' => 'virtual',
'multa' => 0,
'juros' => 0
]);
}
*/
// Ordenar por data de pagamento/recebimento, depois por data de criação
$movimentacoes = $movimentacoes->sortBy(['data', 'data_original']);
@endphp
@forelse($movimentacoes as $mov)
@if($mov['tipo'] === 'débito')
@if($mov['conta_tipo'] === 'transferencia')
{{ $mov['tipo_label'] }}
@else
{{ $mov['tipo_label'] }}
@endif
@else
@if($mov['conta_tipo'] === 'transferencia')
{{ $mov['tipo_label'] }}
@else
{{ $mov['tipo_label'] }}
@endif
@endif
|
{{ \Carbon\Carbon::parse($mov['data'])->format('d/m/Y') }}
|
|
{{ $mov['empresa'] }}
|
{{ $mov['conta'] }}
|
@if($mov['tipo'] === 'débito')
- R$ {{ number_format(abs($mov['valor']), 2, ',', '.') }}
@else
+ R$ {{ number_format($mov['valor'], 2, ',', '.') }}
@endif
|
@empty
Nenhuma movimentação encontrada para esta transferência.
|
@endforelse
@php
// Somar só as movimentações reais (conta_tipo ≠ transferencia)
$totalDebitos = $movimentacoes
->where('tipo', 'débito')
->where('conta_tipo', '!=', 'transferencia')
->sum('valor');
$totalCreditos = $movimentacoes
->where('tipo', 'crédito')
->where('conta_tipo', '!=', 'transferencia')
->sum('valor');
// Saldo final = saldo inicial + créditos reais – débitos reais
$saldoLiquido = $transferencia->valor + $totalCreditos - $totalDebitos;
@endphp
Total Débitos
R$ {{ number_format($totalDebitos, 2, ',', '.') }}
Total Créditos
R$ {{ number_format($totalCreditos, 2, ',', '.') }}
Saldo Líquido
R$ {{ number_format($saldoLiquido, 2, ',', '.') }}
@if($transferencia->vinculacoesOrigem->count() > 0 || $transferencia->vinculacoesDestino->count() > 0)
@if($transferencia->vinculacoesOrigem->count() > 0)
@foreach($transferencia->vinculacoesOrigem as $vinculacao)
{{ \Carbon\Carbon::parse($vinculacao->transferenciaDestino->data)->format('d/m/Y') }}
R$ {{ number_format($vinculacao->valor_vinculado, 2, ',', '.') }}
Descrição: {{ $vinculacao->transferenciaDestino->descricao }}
Empresas:
{{ $vinculacao->transferenciaDestino->contaOrigem->empresa->nome_fantasia }}
→ {{ $vinculacao->transferenciaDestino->contaDestino->empresa->nome_fantasia }}
@if($vinculacao->observacoes)
Observações: {{ $vinculacao->observacoes }}
@endif
Vinculada em {{ $vinculacao->data_vinculacao->format('d/m/Y \à\s H:i') }}
@endforeach
@endif
@if($transferencia->vinculacoesDestino->count() > 0)
@foreach($transferencia->vinculacoesDestino as $vinculacao)
{{ \Carbon\Carbon::parse($vinculacao->transferenciaOrigem->data)->format('d/m/Y') }}
R$ {{ number_format($vinculacao->valor_vinculado, 2, ',', '.') }}
Descrição: {{ $vinculacao->transferenciaOrigem->descricao }}
Empresas:
{{ $vinculacao->transferenciaOrigem->contaOrigem->empresa->nome_fantasia }}
→ {{ $vinculacao->transferenciaOrigem->contaDestino->empresa->nome_fantasia }}
@if($vinculacao->observacoes)
Observações: {{ $vinculacao->observacoes }}
@endif
Vinculada em {{ $vinculacao->data_vinculacao->format('d/m/Y \à\s H:i') }}
Apenas a transferência origem pode remover esta vinculação
@endforeach
@endif
@endif
@endsection