Data ultimo aggiornamento: 17/04/2013

Clicca per accedere al sito di NTS Informatica
Clicca per accedere all'argomento Clicca per accedere all'argomento Clicca per accedere all'argomento Clicca 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
Clicca per accedere al sito di NTS Informatica