COGG57 - Ricalcolo Prestazioni¶
Scopo¶
Ricalcolo massivo dei valori economici (prezzo di vendita, costo, valore e valore FIFO) delle righe di giornaliero commessa (COGDMRIG). Per ogni riga non consolidata nel periodo selezionato, ricalcola il prezzo di vendita dal listino del cliente e il costo dalla subroutine COGUA3 (per servizi) o COGL61 (prezzo medio acquisto per merci), aggiornando la riga con i nuovi valori. Al termine ricalcola anche le valorizzazioni degli interventi collegati alle commesse tramite ASNS08.
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Vendite | Commesse > Utilita' > Ricalcolo Prestazioni |
Struttura¶
Programma GUI interattivo di elaborazione batch. Flusso:
- Inizializzazione, lettura configurazione (RNEWCONF), apertura file
- Accept filtri: commessa, data da, data a
- Conferma utente
- Elaborazione: scorre COGTESCM, per ogni commessa scorre COGRIGCM, per ogni riga RR scorre COGDMRIG
- Al termine, ricalcola interventi collegati
Accept campi¶
tm-tsc: codice commessa (vuoto = tutte)tm-da-data: data iniziale (facoltativo)tm-a-data: data finale (facoltativo, deve essere >= da-data)
Tabelle/File utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema |
| COGTESCM | Input | Testata commesse |
| COGRIGCM | Input | Righe commessa (giornaliero) |
| COGDMRIG | I-O | Dettaglio righe giornaliero (aggiornato con rwr) |
| COGDMTES | Input | Testata documenti |
| COGRIFER | Input | Riferimenti documenti |
| COGGEANA | Input | Anagrafica generale (clienti) |
| COGMERCI | Input | Anagrafica merci |
| File da cogg57.select | I-O | File generati da Screens |
Configurazioni (RNEWCONF)¶
| Gruppo | Chiave | Descrizione |
|---|---|---|
| COMMESSE | TIPO-NUMERAZIONE-COMMESSE | "A" = alfanumerico, "N" = numerico |
| ASS-VAL | PREST-GIA-FATT-A-RICAVO | Prestazioni gia' fatturate considerate a ricavo |
Logica di elaborazione¶
Ciclo principale (tratta-dati)¶
- Posiziona su COGTESCM (dalla commessa specificata o dall'inizio)
- Per ogni commessa non consolidata: esegue
tratta-commessa - Al termine di ogni commessa: esegue
a1-giornalieri-da-intervento
Tratta-commessa¶
- Scorre COGRIGCM per la commessa corrente
- Considera solo righe di tipo "RR" (righe reali collegate a COGDMRIG)
- Se la commessa ha data di consolidamento, salta le righe antecedenti
- Memorizza in una tabella (
tab-interventi, max 999) gli ID degli interventi collegati (rgc-acid-id) - Per ogni riga RR valida: esegue
tratta-dmrig
Tratta-dmrig¶
Per ogni riga di COGDMRIG non consolidata e nel periodo selezionato:
- Cerca prezzo vendita (
cerca-prezzo): - Legge COGGEANA per il cliente di riferimento
- Chiama COGS01 con listino, fascia, divisa, merce, quantita', data, cliente
-
Il prezzo netto diventa
w-pre -
Cerca costo (
cerca-prezzo-for): - Se merce di classe "S" (servizio): chiama COGUA3 con operazione "CERCA-COSTO" per il tecnico del documento
- Altrimenti: chiama COGL61 per il prezzo acquisto
-
Se la divisa del costo differisce da quella della riga, converte con COGU10W
-
Calcolo valori:
dmr-pre-no-sco = w-pre- Se presente maggiorazione:
dmr-prezzo = dmr-pre-no-sco * (1 + dmr-sco-1 / 100); arrotonda dmr-valore = dmr-prezzo * dmr-qta-doc; arrotondadmr-val-fifo = w-cst * dmr-qta-doc * (1 + dmr-sco-2 / 100); arrotonda-
Per le entrate (
dmr-entrusc = "E"): il valore viene negato prima dell'arrotondamento -
Riscrive la riga con
rwr-cogdmrig
Ricalcolo interventi (a1-giornalieri-da-intervento)¶
Scorre la tabella degli interventi memorizzati e per ciascuno chiama ASNS08 per ricalcolare la valorizzazione dell'intervento.
Chiamate a sottoprogrammi¶
| Sottoprogramma | Scopo |
|---|---|
| COGS01 | Ricerca prezzo di vendita da listino |
| COGL61 | Ricerca prezzo di acquisto (ultimo/medio) |
| COGUA3 | Ricerca costo servizio per tecnico e data |
| COGU10W | Gestione divise, cambi e arrotondamenti |
| ASNS08 | Ricalcolo valorizzazione intervento |
| RNEWCONF | Lettura configurazioni |
COPY utilizzate¶
Working storage¶
cogg57.wrk, k-u10, wgrave, wnscr, wopenf, wstato, cogazien, utilu10, utilu20, utilu35w, utils52, utilcogl61, utilcogua3, utilncnf, utilasns08
Linkage¶
wcont, utils01 (parametri COGS01), utils01f (parametri fornitore), wcont1
Screen/Procedure¶
cogg57.select, cogg57.fd, cogg57.wrk, cogg57.decla, cogg57-01.scr, cogg57.prc
Generiche¶
feurtab.fd, cogfiles.cpy, mmmask.cpy, stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, call-u35.cpy
Note¶
- Le maggiorazioni (
dmr-fl-maggioraz = "M") applicano gli scontitsc-magg-oreetsc-magg-spesedella commessa rispettivamente come sco-1 e sco-2. - Il programma conserva la tabella degli interventi per evitare duplicati: se lo stesso intervento e' collegato a piu' righe, viene ricalcolato una sola volta.
- La subroutine COGL61 viene chiamata con
cogl61-in-prezacq = "S"ecogl61-in-pma = "N"per ottenere solo il prezzo di acquisto. - L'arrotondamento avviene tramite COGU10W con operazione "Arrotonda", differenziando prezzo (tipo "V"), valore (tipo " ") e valore FIFO.