Descripción:
Este punto de entrada se ejecuta como complemento al cálculo de la rentabilidad del presupuesto. Este puede utilizarse para modificar los valores mostrados o para ocultar informes de los valores.
Programa fuente:
MATA415.PRX
Sintaxis:
MA415RVP( aRentab ) --> aRentab
Parámetros:
Nombre | Tipo | Descripción | Obligatorio |
aRentab | Vector | Array con la siguiente estructura: [1] - Carácter - Código del producto | X |
Respuesta:
aRentab - Vetor - Array con la misma estructura:
[1] - Carácter - Código del producto
[2] - Carácter - Valor Total
[3] - Carácter - C.M.V.
[4] - Carácter - Valor presente
[5] - Carácter - Ganancia bruta, donde: (Valor presente - C.M.V.)
[6] - Carácter - Margen de contribución %, donde: ((Ganancia Bruta / Valor Presente) * 100)
Ejemplo:
User Function MA415RVP()
Local aRet := PARAMIXB
Local nTot := Len(aRet)
Local nValCMV := 0
Local nX := 0
Local nY := 0
//Convierte los valores de rentabilidad de carácter a numérico.
For nX := 1 To nTot
For nY := 2 To Len(aRet[nX])
If AT(".",aRet[nX][nY]) > 0
aRet[nX][nY] := StrTran(aRet[nX][nY],".","")
EndIf
If AT(",",aRet[nX][nY]) > 0
aRet[nX][nY] := StrTran(aRet[nX][nY],",",".")
EndIf
aRet[nX][nY] := Val(aRet[nX][nY])
Next nY
Next nX
For nX := 1 To nTot
//Si el producto es el código "03", se debe dejar en cero la columna del C.M.V.
If nX <> nTot .And. AllTrim(aRet[nX][1]) == "03"
nValCMV += aRet[nX][3]
aRet[nX][3] := 0 //C.M.V.
EndIf
//Actualiza el elemento de totalización
If nX == nTot .And. Empty(aRet[nX][1])
aRet[nX][3] := (aRet[nX][3] - nValCMV)
EndIf
Next nX
//Convierte los valores de rentabilidad de numérico a carácter. (estándar)
For nX := 1 To nTot
For nY := 2 To Len(aRet[nX])
aRet[nX][nY] := TransForm(aRet[nX][nY],"@e 999,999,999.999999")
Next nY
Next nX
Return aRet