Clienti padre/figlio¶
Concetto¶
Nel gestionale Eurocoge esiste una struttura gerarchica cliente padre / cliente figlio utilizzata per gestire: - Gruppi aziendali - Sedi multiple di uno stesso cliente - Destinazioni diverse
Struttura in COGTESOR (testata ordini)¶
Il campo tor-destina determina la modalita':
| tor-destina | tor-clifor | Significato |
|---|---|---|
| = 0 | cliente | Cliente singolo (no gerarchia) |
| > 0 (padre) | figlio | tor-destina = padre, tor-clifor = figlio |
Attenzione - illogicita' storica: i nomi dei campi sono fuorvianti. Quando c'e' gerarchia padre/figlio, tor-clifor (che suggerirebbe il cliente principale) contiene il figlio, e tor-destina (che suggerirebbe la destinazione) contiene il padre.
Esempio con padre=99, figlio=293:
| Caso | tor-clifor | tor-destina |
|---|---|---|
| Solo padre | 99 | 0 |
| Padre + figlio | 293 (figlio) | 99 (padre) |
Utilizzo in COGM65 (buoni prelievo)¶
Campi maschera¶
02 tm-cli pic 9(05). *> Cliente padre
02 tm-cli-f-cod pic 9(05). *> Cliente figlio
Controllo validità (riga 3188)¶
x-controlla-tm-cli-f.
*> Se non c'è padre, non può esserci figlio
if tm-cli = 0 and tm-cli-f-cod > 0
move "In assenza di cliente padre, il cliente figlio non può essere selezionato"
...
end-if
Controllo coerenza con ordine (righe 3751-3781)¶
Quando si seleziona un BDP collegato a un ordine, il programma verifica che la coppia padre/figlio sia coerente:
*> Legge la testata ordine
perform rd-cogtesor
if tor-destina = 0
*> Cliente singolo: deve coincidere con tm-cli e non ci deve essere figlio
if tor-clifor = tm-cli and tm-cli-f-cod = 0
move "S" to w-bdp-ok
end-if
else
*> Padre/figlio: entrambi devono coincidere
if tor-destina = tm-cli and tor-clifor = tm-cli-f-cod
move "S" to w-bdp-ok
end-if
end-if
Flag "figli tutti" (tm-figli-tutti)¶
Quando tm-figli-tutti = "S", accetta BdP per qualunque figlio del padre indicato, senza richiedere un figlio specifico. La verifica deve comunque controllare che il padre corrisponda:
if tm-figli-tutti = "S" and
tor-destina = tm-cli
move "S" to w-bdp-ok
end-if
Senza il check su tor-destina = tm-cli, passerebbero ordini di padri diversi.
Nota: fallimento lettura ordine¶
Se la lettura di COGTESOR fallisce, il controllo viene bypassato (w-bdp-ok = "S"). Questo e' intenzionale per permettere BDP non collegati a ordini.
Programmi coinvolti¶
| Programma | Utilizzo |
|---|---|
| cogm65 | Gestione BDP con filtro padre/figlio |
| cogtesor | Tabella ordini con campi tor-destina e tor-clifor |
| coggeana | Anagrafica generale (verifica esistenza cliente) |