public bool Validate() { validCells = new Dictionary <ESQUEMA, bool>(); foreach (ESQUEMA item in Enum.GetValues(typeof(ESQUEMA))) { validCells[item] = true; } DateTime aux; int int_aux; double double_aux; validCells[ESQUEMA.CVE_SEDE] = (Sede.Length <= 5) && sedes.Contains(Sede); validCells[ESQUEMA.PERIODO] = (Periodo.Length <= 10) && periodos.Contains(Periodo); validCells[ESQUEMA.ESQUEMADEPAGODES] = true; //validCells[ESQUEMA.CVE_CONTRATO] = (ClaveContrato.Length <= 5) && contratos.Contains(ClaveContrato); // anteriormente se valida la longitud, pero ahora que sólo se considera la descripción, ya no más LENGTH validCells[ESQUEMA.CVE_CONTRATO] = contratos.Contains(ClaveContrato); validCells[ESQUEMA.FECHAINICIO] = DateTime.TryParse(FechaInicio, out aux); validCells[ESQUEMA.FECHAFIN] = DateTime.TryParse(FechaFin, out aux); validCells[ESQUEMA.NOSEMANAS] = double.TryParse(NumSemanas, out double_aux); validCells[ESQUEMA.NOPAGOS] = int.TryParse(NumPagos, out int_aux); validCells[ESQUEMA.BLOQUEOCONTRATO] = (BloqueoContrato == "0" || BloqueoContrato == "1"); // Conceptos validCells[ESQUEMA.CONCEPTO] = (Concepto.Length <= 25) && conceptos.Keys.Contains(Concepto.ToUpper()); if (validCells[ESQUEMA.CONCEPTO]) { Concepto = conceptos[Concepto.ToUpper()]; // Se busca el concepto con MAYUSCULAS, y se reasigna con MAYUSCULAS y minusculas. } validCells[ESQUEMA.FECHAPAGO] = DateTime.TryParse(FechaPago, out aux); validCells[ESQUEMA.FECHARECIBO] = DateTime.TryParse(FechaRecibo, out aux); // Esquemas DUPLICADO = false; CONCEPTO_DUPLICADO = false; if (EsquemaDePago.Length <= 15 && validCells[ESQUEMA.CVE_SEDE] && validCells[ESQUEMA.PERIODO] /* && validCells[ESQUEMA.CVE_NIVEL]*/) { validCells[ESQUEMA.ESQUEMADEPAGO] = true; try { string nombre_esquema = EsquemaDePago.ToUpper(); if (__esquemas.Keys.Contains(Sede) && __esquemas[Sede].Keys.Contains(Periodo) && __esquemas[Sede][Periodo].Keys.Contains(nombre_esquema)) { EsquemaDePago = __esquemas[Sede][Periodo][nombre_esquema].ESQUEMADEPAGO; DUPLICADO = true; if (__esquemas[Sede][Periodo][nombre_esquema].conceptos.Keys.Contains(Concepto.ToUpper())) { CONCEPTO_DUPLICADO = true; } } } catch (Exception) { } } else { validCells[ESQUEMA.ESQUEMADEPAGO] = false; } // Se busca algun error. foreach (ESQUEMA item in Enum.GetValues(typeof(ESQUEMA))) { if (validCells[item] == false) { return(false); } } return(true); }
public void cargaListas() { ResultSet res; // // SEDES // string sqlSedes = "SELECT CVE_SEDE FROM SEDES"; if (!(sqlSedes == string.Empty && sqlSedes == null)) { sqlSedes += " where cve_sede = '" + SedeX + "'"; } res = db.getTable(sqlSedes); sedes = new List <string>(); while (res.Next()) { sedes.Add(res.Get("CVE_SEDE")); } sedes.Sort(delegate(string str1, string str2) { return(str1.CompareTo(str2)); }); // // PERIODOS // res = db.getTable("SELECT PERIODO FROM PERIODOS"); periodos = new List <string>(); while (res.Next()) { periodos.Add(res.Get("PERIODO")); } // // CONCEPTOS // res = db.getTable("SELECT DISTINCT(CONCEPTO) FROM CONCEPTOSDEPAGO ORDER BY CONCEPTO"); conceptos = new Dictionary <string, string>(); while (res.Next()) { conceptos.Add(res.Get("CONCEPTO").ToUpper(), res.Get("CONCEPTO")); } //res = db.getTable("SELECT ID_ESQUEMA, CVE_SEDE, PERIODO, CVE_NIVEL, ESQUEMADEPAGO FROM ESQUEMASDEPAGO ORDER BY CVE_SEDE ASC, PERIODO ASC, CVE_NIVEL ASC, ESQUEMADEPAGO"); res = db.getTable(@"SELECT E.ID_ESQUEMA, E.CVE_SEDE, E.PERIODO, E.ESQUEMADEPAGO, R.CONCEPTO, R.FECHA_RECIBO, R.FECHADEPAGO FROM ESQUEMASDEPAGO E, ESQUEMASDEPAGOFECHAS R WHERE R.ID_ESQUEMA = E.ID_ESQUEMA "); __esquemas = new Dictionary <string, Dictionary <string, Dictionary <string, Esquema> > >(); while (res.Next()) { Sede = res.Get("CVE_SEDE"); Periodo = res.Get("PERIODO"); EsquemaDePago = res.Get("ESQUEMADEPAGO"); Concepto = res.Get("CONCEPTO"); if (__esquemas.Keys.Contains(Sede) == false) { __esquemas.Add(Sede, new Dictionary <string, Dictionary <string, Esquema> >()); } if (__esquemas[Sede].Keys.Contains(Periodo) == false) { __esquemas[Sede].Add(Periodo, new Dictionary <string, Esquema>()); } if (__esquemas[Sede][Periodo].Keys.Contains(EsquemaDePago.ToUpper()) == false) { __esquemas[Sede][Periodo].Add(EsquemaDePago.ToUpper(), new Esquema(EsquemaDePago)); } if (__esquemas[Sede][Periodo][EsquemaDePago.ToUpper()].conceptos.Keys.Contains(Concepto.ToUpper()) == false) { __esquemas[Sede][Periodo][EsquemaDePago.ToUpper()].conceptos.Add(Concepto.ToUpper(), Concepto); } } // // CONTRATOS // //res = db.getTable("SELECT CVE_CONTRATO FROM FORMATOCONTRATOS"); //contratos = new List<string>(); //while (res.Next()) // contratos.Add(res.Get("CVE_CONTRATO")); res = db.getTable("SELECT CONTRATO FROM FORMATOCONTRATOS"); contratos = new List <string>(); while (res.Next()) { contratos.Add(res.Get("CONTRATO")); } }