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); }
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); }
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); }