コード例 #1
0
        private void agruparPorFecha()
        {
            if (_lista_pa == null)
            {
                return;
            }
            var resp_  = _lista_pa.TPabiertas.OrderBy(o => o.Zfbdt).ThenBy(o => o.Vbewa).ThenBy(o => o.Belnr).ToList();
            var result = from r in resp_
                         group r by r.Zfbdt into g
                         select g.Select(x => x.Zfbdt);

            List <zpabierta>      Respuestafinal = null;
            List <Grupo_Pabierta> lpa_agrupadas  = new List <Grupo_Pabierta>();
            Grupo_Pabierta        lgrupo         = null;

            foreach (IEnumerable <string> r in result)
            {
                Respuestafinal = new List <zpabierta>();
                Respuestafinal.AddRange(resp_.Where(o => o.Zfbdt == r.FirstOrDefault()).ToList());
                lgrupo = new Grupo_Pabierta(Respuestafinal, Respuestafinal.FirstOrDefault().Zfbdt);
                lpa_agrupadas.Add(lgrupo);
            }

            if (this._pa_agrupadas != null)
            {
                this._pa_agrupadas.Clear();
            }
            this._pa_agrupadas = lpa_agrupadas;

            Console.WriteLine("lgrupo con: {0} ", lpa_agrupadas.Count);
        }
コード例 #2
0
        private Grupo_Pabierta next_grupo()
        {
            Grupo_Pabierta lres = null;

            if (null == _pa_agrupadas || 0 == _pa_agrupadas.Count)
            {
                return(lres);
            }
            if (_indice_next_grupo < _pa_agrupadas.Count)
            {
                lres = _pa_agrupadas[_indice_next_grupo];
            }
            _indice_next_grupo++;
            return(lres);
        }
コード例 #3
0
        public bool selecionarPartidasCondonar()
        {
            bool    lres            = false;
            decimal lmonto_condonar = this._totalCondonacion;

            if (this._totalCondonacion <= 0)
            {
                return(lres);
            }

            try
            {
                Grupo_Pabierta lgrupo           = null;
                decimal        lmonto_del_grupo = 0.0M;

                this.agruparPorFecha();
                for (int va = 0; va < _pa_agrupadas.Count; va++)
                {
                    lgrupo = _pa_agrupadas[va];
                    lgrupo._montoContodar = lmonto_condonar;
                    lmonto_del_grupo      = lgrupo.elegirPartidasCondonar();
                    lmonto_condonar      -= lmonto_del_grupo;

                    for (int v = 0; v < lgrupo._lista_pa_condonar.Count; v++)
                    {
                        this._pa_acondonar.Add(lgrupo._lista_pa_condonar[v]);
                    }
                    if (lmonto_condonar <= 0)
                    {
                        lres = true;
                        break;
                    }
                }
            }
            catch (Exception aexception)
            {
                lres        = false;
                _strSuccess = "Exce:" + aexception.Message;
                System.Diagnostics.Debug.Write("Exce:" + aexception.Message);
            }
            return(lres);
        }