R/Output-stock_simu.R

##' Fonction \code{stock_simu}.
##'
##' Cette fonction permet de sortir les elements composant le bilan sur les differentes annees de projection et pour une simulation donnee.
##'
##' @name stock_simu
##' @docType methods
##' @param output est un objet de type \code{\link{Output}}.
##' @param num_simu est un \code{integer}.
##' @author Damien Tichit pour Sia Partners
##' @export
##' @include Output-class.R
##'
setGeneric(name = "stock_simu", def = function(output, num_simu, digits = 2L) {standardGeneric("stock_simu")})
setMethod(
    f = "stock_simu",
    signature = c(output = "Output", num_simu = "integer"),
    definition = function(output, num_simu, digits){



        ## ###########################
        ## Nombre d'annees de projection
        ## ###########################

        # Extraction de la donnee
        nb_annees_proj <- length(output@stock[[1L]])






        ## ######################################################
        ## ######################################################
        ##
        ##              Construction du data frame
        ##
        ## ######################################################
        ## ######################################################

        stock <- sapply(1L:nb_annees_proj, function(x) {

            # Extraction de donnees
            stock <- output@stock[[num_simu]][[x]]


            ## ###########################
            ##           ACTIF
            ## ###########################

            # VMs actifs
            vm_obligation  <- sum(stock$actif@obligation@ptf$valeur_marche)
            vm_action      <- sum(stock$actif@action@ptf$valeur_marche)
            vm_immobilier  <- sum(stock$actif@immobilier@ptf$valeur_marche)
            vm_tresorerie  <- sum(stock$actif@tresorerie@solde)

            # VNC actif
            vnc_obligation  <- sum(stock$actif@obligation@ptf$valeur_nette_comptable)
            vnc_action      <- sum(stock$actif@action@ptf$valeur_comptable)
            vnc_immobilier  <- sum(stock$actif@immobilier@ptf$valeur_comptable)
            vnc_tresorerie  <- sum(stock$actif@tresorerie@solde)





            ## ###########################
            ##           PASSIF
            ## ###########################

            # Capitaux propres
            capitaux_propres <- stock$fonds_propres@capitaux_propres

            # Resultat de l'exercice
            res <- stock$fonds_propres@resultat_exercice

            # Report a nouveau
            ran <- stock$fonds_propres@report_a_nouveau

            # Emprunt
            dette <- stock$fonds_propres@dette


            # PPE
            ppe <- sum(stock$provision@ppe@ppe)

            # PPE
            pre <- sum(stock$provision@pre@montant)

            # RC
            rc <- stock$provision@reserve_capi@montant

            # PM de cloture
            pm_c <- sum(stock$passif$epargne$pm)



            c(VM_Obligation = vm_obligation, VM_Action = vm_action, VM_Immobilier = vm_immobilier, VM_Tresorerie = vm_tresorerie,
              VNC_Obligation = vnc_obligation, VNC_Action = vnc_action, VNC_Immobilier = vnc_immobilier, VNC_Tresorerie = vnc_tresorerie,

              Capitaux_propres = capitaux_propres, Dette = dette,
              Report_a_nouveau = ran,
              Resultat_de_l_exercice = res,
              Reserve_capitalisation = rc, PRE = pre, PPE = ppe,
              PM_Cloture = pm_c)

        })

        # Arrondir les donnees
        stock <- round(stock, digits = digits)

        # Renommage des colonnes
        colnames(stock) <-  1L:nb_annees_proj

        # Passage en format long
        stock <- melt(stock)

        # Renommage des colonnes
        colnames(stock) <-  c("Element", "annee", "Montant")



        # Output
        return(stock)
    }
)
DTichit/ALModel documentation built on Feb. 11, 2021, 12:32 a.m.