## id
doc_tancaments_tpv

## nom
Tancaments de TPV — comportaments i casos concrets

## descripcio
Consulta aquest document quan calgui explicar amb precisió el format del fitxer de tancament, com
es detecta automàticament el terminal, o per què un tancament importat ja apareix comptabilitzat
sense haver-lo revisat abans. No és l'explicació general, que cobreix `flux_tancaments_tpv`.

## contingut
### El fitxer de tancament

És un fitxer de text (format del banc, amb amplada fixa), amb un bloc per cada terminal que ha
tingut moviment aquell dia. Cada bloc porta el codi de comerç del terminal, i les operacions
individuals (venda o devolució, import, targeta, número d'autorització). La data efectiva d'un
tancament és la de la seva última operació, no la de generació del fitxer (que sol ser de la
matinada següent).

### Detecció automàtica del terminal

A diferència de l'extracte de targeta (`doc_extractes_targetes`), aquí **sí** que es detecta
automàticament quin TPV correspon a cada bloc: es comparen els últims dígits del codi de comerç
del fitxer amb el "Número TPV" de la fitxa mestra. Si un bloc no troba cap coincidència, o en
troba més d'una, **es rebutja tot el fitxer sencer**, no només aquell bloc.

### Importació en dos passos

1. **Analitzar**: es puja el fitxer i es mostra una llista de tots els blocs detectats (terminal,
   data, import total, nombre de moviments), amb una casella per triar quins es volen crear. Els
   que semblen ja existir (mateix terminal i data) apareixen desmarcats per defecte, amb un avís
   — però es poden marcar igualment si cal tornar-los a importar.
2. **Crear Tancaments**: els blocs marcats es desen **immediatament** com a documents pendents de
   validar — no és una previsualització, ja queden creats a la base de dades. Cal obrir cadascun
   després per revisar-ne les línies i validar-lo.

### Conciliar automàtic: no és immediat ni automàtic en desar

El botó "Conciliar automàtic" calcula els aparellaments possibles amb els cobraments pendents,
però **no els desa per si sol** — cal prémer "Desar" a continuació perquè quedin guardats. No es
fa mai sol en importar el fitxer; sempre cal l'acció explícita de l'usuari.

### Desar, Validar i eliminar

Mateix patró que Extractes de Targetes (de fet, comparteix el mateix mecanisme d'eliminació):
"Validar" només afegeix comprovacions de camps; eliminar no comprova al servidor si ja està
validat o conciliat.

## comprovacions
Si la importació d'un fitxer de tancament es rebutja sencera: comprova que el codi de comerç de
cada bloc coincideixi (als últims dígits) amb un únic TPV donat d'alta.

Si un usuari pregunta per què un tancament ja apareix comptabilitzat només d'haver-lo importat: és
el comportament esperat — "Crear Tancaments" desa immediatament, no és una previsualització.

Si "Conciliar automàtic" no sembla haver fet res: comprova si s'ha desat després — el botó només
calcula, no guarda per si sol.
