Data ultimo aggiornamento: 17/04/2013

Clicca per accedere al sito di NTS Informatica
Clicca per accedere all'argomentoClicca per accedere all'argomentoClicca per accedere all'argomentoClicca per accedere all'argomento
Clicca per accedere al sito di NTS Informatica

Gestione delle formule in budget/consuntivi

Per gestire le formule è necessario gestire i preventivi. Le formule si appoggiano ad una classe/dll (BECXFORM.DLL) che potrà essere ereditata e poi mappata tramite DLLMAP.INI per poter essere integrata con nuove funzionalità o sostituzione di funzioni esistenti precablate (vedi costo del venduto).

Logica di funzionamento

In schemi budget verrà memorizzato il nome della funzione che identifica la formula, con l'apposita voce di menu 'CALCOLA FORMULE' una elaborazione provvederà a calcolare le formule per i dati a preventivo e consuntivo. La funzione chiamerà BECXFORM passandogli un datatable che ha la stessa struttura della tabella cabudget, con compilati tutti i campi relativi al budget in elaborazione (identificativo schema budget, centro, linea, commessa, articolo, ...., mese), un flag che identifica se la funzione dovrà elaborare dati per un PREVENTIVO o un CONSUNTIVO e una stringa di parametri libero per gli usi più disparati. In uscita ritornerà lo stesso datatable con compilati quantità e valore. All'interno della funzione potranno essere eseguite le query più disparate ... (su movmag, lavcent, ecc...). Quantità e valori di ritorno verranno memorizzati nei dati a preventivo e potranno essere utilizzati nei calcoli delle colonne totali e/o base di ribaltamento.

L'elaborazione massiva potrà essere eseguita dal programma dei ribaltamenti, dove è presente un nuovobottone 'Calcola formule sui budget'. Questa funzionalità lancia l'elaborazione massiva di tutte le formule indicate nei budget, ma prima di effettuare il calcolo delle formule verifica ed eventualmente crea i budget per centro/linea/commessa/divisione/stabilimento/articolo (solo ultima fase)/cliente se mancantie che nel relativo schema budgetpresenta almeno una formula da valutare.

I risultati sono memorizzati nella tabella dei budget nelle colonne 'Formule per budget' e/o 'Formule per consuntivo'.

Il nome della formula è lo stesso sia per il preventivo che per il consuntivo.

Il risultato dell'elaborazione sul consuntivo verrà memorizzato nei budget (cabudget) nelle colonne del consuntivo, mentre i dati del preventivo verranno memorizzati nelle colonne del preventivo.

NB: i nomi delle formule DEVONO ESSERE SCRITTI SEMPRE IN MAIUSCOLO, sia in impostazione schemi budget che in scrittura routine nell'entity di BECXFORM (o entità ereditati). Le funzioni che calcolano le formule devono avere una chiamata come quella seguente:


  Public Overridable Function ESEMPIO_FORMULA(ByVal bPreventivo As Boolean, ByVal strParams As String, _
                                              ByRef dtrBud As DataRow) As Boolean
    'esempio di stringa passata alla funzione
    'in schemi budget scrivo ESEMPIO_FORMULA(Parametro1=12,5;ParStr2="stringa libera";DataLibera=09/12/2010)
    'se la funzione restituirà TRUE il dato verrà aggiornato nel budget
    Try
      'ottengo l'elenco dei parametri
      Dim strT() As String = strParams.Split(";"c)

      'modifico i dati da restituire
      If bPreventivo Then
        dtrBud!bu_qta = 10.5 + NTSCDec(strT(0).Substring(11))
        dtrBud!bu_val = 999.33
      Else
        dtrBud!bu_qtacon = 10.5
        dtrBud!bu_valcon = 999.33
      End If
      dtrBud.AcceptChanges()

      'se restituisco FALSE i dati non verranno aggiornati
      Return True

    Catch ex As Exception
      '--------------------------------------------------------------
      If GestErrorCallThrow() Then
        Throw New NTSException(GestError(ex, Me, "", oApp.InfoError, "", False))
      Else
        ThrowRemoteEvent(New NTSEventArgs("", GestError(ex, Me, "", oApp.InfoError, "", False)))
      End If
      '--------------------------------------------------------------	
    End Try
  End Function
	  

Formula standard COSTO_DEL_VENDUTO

Aaccetta in input il tipo di valorizzazione il tipo di costo da utilizzare ed il codice voce del budget di tipo 'Ricavo' su cui calcolare il costo del venduto (nell'esempio sopra viene calcolato l'ultimo costo della voce budget 'Z1', ovvero 'Ricavi vendite prodotti').

Questa formula può essere utilizzata solo per dati a consuntivo.

Questa formula non può essere utilizzata per budget di tipo 'gruppo di aziende' e/o 'raggruppamento budget', visto che lavora filtrando la ditta in elaborazione.

La procedura provvede a leggere i movimenti di contabilità analitica con conti di CADC utilizzati SOLO per le vendite, per determinare la quantità venduta e per ogni articolo calcola il costo in base al sistema di valorizzazione richiesto. NB: va impostato correttamente lo schema budget per fare in modo che il record dei ricavi da utilizzare come voce parametro da passare alla COSTO_DEL_VENDUTO nell'esempio 'Z1', sia collegato a sottoconti utilizzati SOLO per rilevare ricavi e storni di ricavo!!!

Non opera correttamente se i sottoconti collegati alla voce budget sono gestiti a 'Periodo competenza economica'.

Come tipo di valorizzazione (NumList=) sono ammessi i seguenti valori:

  • 0 = ultimo costo
  • -1 = ultimo costo comprensivo degli oneri accessori
  • -2 = costo medio
  • -3 = fifo
  • -4 = costo medio ponderato
  • maggiore di 0 = listino costi standard

Calcolo delle formule

Nella nuova CADC il calcolo delle formule avviene solo per centri, linee, commesse, articoi, clienti, ... per i quali era stato creato un budget.

Da programma Genera ribaltamenti budget/consuntivi in automatico vengono creati i budget a partire dagli schemi budget di CADC per centri, linee, commess, ecc... mancanti se nello schema budget a cui dovrebbero essere collegati è presente almeno una formula.

Attenzione:

  • non vengono creati in automatico schemi budget per GRUPPO DI AZIENDA, DITTA, AGGREGAZIONE BUDGET
  • per gli articoli gestiti a fasi viene creato il budget solo sull'ultima fase

Chiarimento: le formule possono attingere dati dal database, ma non possono utilizzare i totali calcolati al volo durante l'elaborazione di budget/consuntivi di CA DC e/o ribaltamenti. Inoltre, per chiarezza, per lanciare l'elaborazione delle formule è presente un comando sulla toolbar di Genera ribaltamenti budget/consuntivi.

Clicca per accedere al sito di NTS Informatica