Vai al contenuto

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:

  1. Inizializzazione, lettura configurazione (RNEWCONF), apertura file
  2. Accept filtri: commessa, data da, data a
  3. Conferma utente
  4. Elaborazione: scorre COGTESCM, per ogni commessa scorre COGRIGCM, per ogni riga RR scorre COGDMRIG
  5. 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)

  1. Posiziona su COGTESCM (dalla commessa specificata o dall'inizio)
  2. Per ogni commessa non consolidata: esegue tratta-commessa
  3. Al termine di ogni commessa: esegue a1-giornalieri-da-intervento

Tratta-commessa

  1. Scorre COGRIGCM per la commessa corrente
  2. Considera solo righe di tipo "RR" (righe reali collegate a COGDMRIG)
  3. Se la commessa ha data di consolidamento, salta le righe antecedenti
  4. Memorizza in una tabella (tab-interventi, max 999) gli ID degli interventi collegati (rgc-acid-id)
  5. Per ogni riga RR valida: esegue tratta-dmrig

Tratta-dmrig

Per ogni riga di COGDMRIG non consolidata e nel periodo selezionato:

  1. Cerca prezzo vendita (cerca-prezzo):
  2. Legge COGGEANA per il cliente di riferimento
  3. Chiama COGS01 con listino, fascia, divisa, merce, quantita', data, cliente
  4. Il prezzo netto diventa w-pre

  5. Cerca costo (cerca-prezzo-for):

  6. Se merce di classe "S" (servizio): chiama COGUA3 con operazione "CERCA-COSTO" per il tecnico del documento
  7. Altrimenti: chiama COGL61 per il prezzo acquisto
  8. Se la divisa del costo differisce da quella della riga, converte con COGU10W

  9. Calcolo valori:

  10. dmr-pre-no-sco = w-pre
  11. Se presente maggiorazione: dmr-prezzo = dmr-pre-no-sco * (1 + dmr-sco-1 / 100); arrotonda
  12. dmr-valore = dmr-prezzo * dmr-qta-doc; arrotonda
  13. dmr-val-fifo = w-cst * dmr-qta-doc * (1 + dmr-sco-2 / 100); arrotonda
  14. Per le entrate (dmr-entrusc = "E"): il valore viene negato prima dell'arrotondamento

  15. 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 sconti tsc-magg-ore e tsc-magg-spese della 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" e cogl61-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.