예제 #1
0
        public citParte4Final(citModeloC modeloC, citFloadAndRoad result)
        {
            this.KycrspFundno = modeloC.KYCRSP_FUNDNO;

            this.MCALDT = modeloC.MCALDT;
            //this.FMRET = modeloC.FMRET;
            //this.RmRfd = modeloC.RmRfd;
            //this.SMB = modeloC.SMB;
            //this.HML = modeloC.HML;
            //this.Mom = modeloC.Mom;
            //this.Rfd = modeloC.Rfd;
            //this._b_RmRfd = modeloC._b_RmRfd;
            //this._b_SMB = modeloC._b_SMB;
            //this._b_HML = modeloC._b_HML;
            //this._b_Mom = modeloC._b_Mom;
            //this._b_cons = modeloC._b_cons;
            //this._p = modeloC._p;

            if (result != null)
            {
                this.FrontLoad = result.FrontLoad;
                this.Fflbegdt = result.Fflbegdt;
                this.Fflenddt = result.Fflenddt;

                this.RearLoad = result.RearLoad;
                this.Frlbegdt = result.Frlbegdt;
                this.Frlenddt = result.Frlenddt;

                this.FexpRatio = result.FexpRatio;
                this.FmgmtFee = result.FmgmtFee;
                this.FturnRatio = result.FturnRatio;
                this.Ffebegdt = result.Ffebegdt;
                this.Ffeenddt = result.Ffeenddt;
            }
        }
예제 #2
0
        private void btnJuntarFicheirosFloadRload_Click(object sender, EventArgs e)
        {
            int index1 = -1;
            int index2 = -1;

            Source.citTotalLoadsFload auxFload = null;
            Source.citTotalLoadsRload auxRload = null;
            Source.citExpenseTurnoverFee auxExpense = null;

            Source.citFloadAndRoad aux;

            try {
                _result.Clear();
                foreach(Source.citTotalLoadsFload fload in _SourceTotalLoadsFload) {
                    index1 = -1;
                    index2 = -1;
                    auxFload = fload;
                    auxRload = null;
                    auxExpense = null;

                    // procura no rload um fundo igual
                    index1 = _SourceTotalLoadsRload.FindIndex(r => r.KycrspFundno == fload.KycrspFundno && r.Frlbegdt == fload.Fflbegdt && r.Frlenddt == fload.Fflenddt);
                    index2 = _SourceExpensiveTurnoverFee.FindIndex(r => r.KycrspFundno == fload.KycrspFundno && r.Ffebegdt >= fload.Fflbegdt && r.Ffeenddt <= fload.Fflenddt);

                    if(index1 > 0) auxRload = _SourceTotalLoadsRload[index1];
                    if(index2 > 0) auxExpense = _SourceExpensiveTurnoverFee[index2];

                    aux = new Source.citFloadAndRoad(auxFload, auxRload, auxExpense);

                    if(!_result.Contains(aux)) {
                        _result.Add(aux);
                    }

                }

                foreach(Source.citTotalLoadsRload rload in _SourceTotalLoadsRload) {
                    index1 = -1;
                    index2 = -1;
                    auxFload = null;
                    auxRload = rload;
                    auxExpense = null;

                    // procura no rload um fundo igual
                    index1 = _SourceTotalLoadsFload.FindIndex(f => (f.KycrspFundno == rload.KycrspFundno && f.Fflbegdt == rload.Frlbegdt && f.Fflenddt == rload.Frlenddt));
                    index2 = _SourceExpensiveTurnoverFee.FindIndex(r => r.KycrspFundno == rload.KycrspFundno && r.Ffebegdt >= rload.Frlbegdt && r.Ffeenddt <= rload.Frlenddt);

                    if(index1 > 0) auxFload = _SourceTotalLoadsFload[index1];
                    if(index2 > 0) auxExpense = _SourceExpensiveTurnoverFee[index2];

                    aux = new Source.citFloadAndRoad(auxFload, auxRload, auxExpense);

                    if(!_result.Contains(aux)) {
                        _result.Add(aux);
                    }

                }

                foreach(Source.citExpenseTurnoverFee expense in _SourceExpensiveTurnoverFee) {
                    index1 = -1;
                    index2 = -1;
                    auxFload = null;
                    auxRload = null;
                    auxExpense = expense;

                    // procura no rload um fundo igual
                    index1 = _SourceTotalLoadsFload.FindIndex(f => f.KycrspFundno == expense.KycrspFundno && f.Fflbegdt <= expense.Ffebegdt && f.Fflenddt >= expense.Ffeenddt);
                    index2 = _SourceTotalLoadsRload.FindIndex(r => r.KycrspFundno == expense.KycrspFundno && r.Frlbegdt <= expense.Ffebegdt && r.Frlenddt >= expense.Ffeenddt);

                    if(index1 > 0) auxFload = _SourceTotalLoadsFload[index1];
                    if(index2 > 0) auxRload = _SourceTotalLoadsRload[index2];

                    aux = new Source.citFloadAndRoad(auxFload, auxRload, auxExpense);

                    if(!_result.Contains(aux)) {
                        _result.Add(aux);
                    }

                }

                //ordena os resultados e elimina linhas repetidas

                //_result = (from r in _result select r).Distinct().ToList();
                //_result = _result.GroupBy(x => x.KycrspFundno, (k, g) => g.Aggregate((a, x) =>x.Equals(a) ? x : a)).ToList();
                _result = (from x in _result orderby x.KycrspFundno, x.Fflbegdt, x.Frlbegdt, x.Ffebegdt select x).ToList();

                dgvFicheirosFloadRload.DataSource = _result;

                citResultado.Parte3 = _result;

            } catch(Exception ex) {
                MessageBox.Show("Error merge files.\n" + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }