示例#1
0
        public static void Aplicar(GrupoConta conta, Dictionary <int, GrupoConta> catid_grupo_conta)
        {
            if (conta.Formulas.Count > 1)
            {
                var        primeiraFormula = conta.Formulas[0];
                GrupoConta primeiraConta   = catid_grupo_conta[primeiraFormula.CatID];

                var orcadoMes    = primeiraConta.TotalOrcadoMes;
                var realizadoMes = primeiraConta.TotalRealizadoMes;
                var varMesReal   = primeiraConta.VarMesReal;
                var varMesPerc   = primeiraConta.VarMesPerc;

                var orcadoAno    = primeiraConta.TotalOrcadoAno;
                var realizadoAno = primeiraConta.TotalRealizadoAno;
                var varAnoReal   = primeiraConta.VarAnoReal;
                var varAnoPerc   = primeiraConta.VarAnoPerc;

                var ultimaOperacao = primeiraFormula.Operacao;

                for (int i = 1; i < conta.Formulas.Count; i++)
                {
                    var        currentFormula  = conta.Formulas[i];
                    GrupoConta grupoContaParam = catid_grupo_conta[currentFormula.CatID];

                    if (ultimaOperacao == TipoOperacao.Soma)
                    {
                        orcadoMes    += grupoContaParam.TotalOrcadoMes;
                        realizadoMes += grupoContaParam.TotalRealizadoMes;
                        varMesReal   += grupoContaParam.VarMesReal;

                        orcadoAno    += grupoContaParam.TotalOrcadoAno;
                        realizadoAno += grupoContaParam.TotalRealizadoAno;
                        varAnoReal   += grupoContaParam.VarAnoReal;
                    }
                    else if (ultimaOperacao == TipoOperacao.Subtracao)
                    {
                        orcadoMes    -= grupoContaParam.TotalOrcadoMes;
                        realizadoMes -= grupoContaParam.TotalRealizadoMes;
                        varMesReal   -= grupoContaParam.VarMesReal;

                        orcadoAno    -= grupoContaParam.TotalOrcadoAno;
                        realizadoAno -= grupoContaParam.TotalRealizadoAno;
                        varAnoReal   -= grupoContaParam.VarAnoReal;
                    }
                }

                conta.TotalOrcadoMes    = orcadoMes;
                conta.TotalRealizadoMes = realizadoMes;
                conta.VarMesReal        = varMesReal;

                conta.TotalOrcadoAno    = orcadoAno;
                conta.TotalRealizadoAno = realizadoAno;
                conta.VarAnoReal        = varAnoReal;
            }
        }
        public static GrupoContaFolha Clone(GrupoConta from, int catID)
        {
            return(new GrupoContaFolha(catID)
            {
                TotalOrcadoMes = from.TotalOrcadoMes,
                TotalRealizadoMes = from.TotalRealizadoMes,
                VarMesReal = from.VarMesReal,


                TotalOrcadoAno = from.TotalOrcadoAno,
                TotalRealizadoAno = from.TotalRealizadoAno,
                VarAnoReal = from.VarAnoReal,
            });
        }
        public static GrupoContaFolha Concatena(GrupoConta grupoFilho, GrupoConta grupoPai)
        {
            return(new GrupoContaFolha(grupoPai.CatID)
            {
                TotalOrcadoMes = grupoFilho.TotalOrcadoMes + grupoPai.TotalOrcadoMes,
                TotalRealizadoMes = grupoFilho.TotalRealizadoMes + grupoPai.TotalRealizadoMes,
                VarMesReal = grupoFilho.VarMesReal + grupoPai.VarMesReal,


                TotalOrcadoAno = grupoFilho.TotalOrcadoAno + grupoPai.TotalOrcadoAno,
                TotalRealizadoAno = grupoFilho.TotalRealizadoAno + grupoPai.TotalRealizadoAno,
                VarAnoReal = grupoFilho.VarAnoReal + grupoPai.VarAnoReal
            });
        }