//******************************************************************************* //NOMBRE DE LA FUNCIÓN:Consultar_Informacion //DESCRIPCIÓN: Metodo que permite llenar el Grid con la informacion de la consulta //PARAMETROS: //CREO : Hugo Enrique Ramírez Aguilera //FECHA_CREO : 07/Abril/2016 //MODIFICO: //FECHA_MODIFICO: //CAUSA_MODIFICACIÓN: //******************************************************************************* public void Consultar_Informacion() { Cls_Rpt_Plan_Volumenes_Negocio Rs_Consulta = new Cls_Rpt_Plan_Volumenes_Negocio(); DataTable Dt_Consulta = new DataTable(); DataTable Dt_Tarifas = new DataTable(); DataTable Dt_Reporte = new DataTable(); DataTable Dt_Auxiliar = new DataTable(); DataTable Dt_Resumen = new DataTable(); DataRow Dr_Nuevo_Elemento; String Str_Nombre_Mes = ""; Dictionary <Int32, String> Dic_Meses; Double Db_Total = 0; Decimal Dc_Total = 0; DataTable Dt_Existencia = new DataTable(); try { Dic_Meses = Cls_Metodos_Generales.Crear_Diccionario_Meses(); Rs_Consulta.P_Anio = DateTime.Now.Year; Rs_Consulta.P_Mes = DateTime.Now.Month; Dt_Tarifas = Rs_Consulta.Consultar_Tarifas_Giro(); Dt_Reporte = Crear_Tabla_Reporte(); //******************************************************************************************************************** //******************************************************************************************************************** //******************************************************************************************************************** // Se ingresan los encabezados para las tomas foreach (DataRow Registro in Dt_Tarifas.Rows) { Dr_Nuevo_Elemento = Dt_Reporte.NewRow(); Dr_Nuevo_Elemento["tarifa_Id"] = Registro["giro_id"].ToString(); Dr_Nuevo_Elemento["Id"] = Registro["giro_id"].ToString(); Dr_Nuevo_Elemento["Accion"] = 1; Dr_Nuevo_Elemento["Concepto"] = "Volumen facturado medido a " + Registro["Nombre_Giro"].ToString() + " (" + Registro["Clave"].ToString() + ")"; Dt_Reporte.Rows.Add(Dr_Nuevo_Elemento); } // se consultan las tomas que se realizaron en el año de consulta Rs_Consulta.P_Estimado = "NO"; Dt_Consulta = Rs_Consulta.Consultar_Volumenes(); foreach (DataRow Registro in Dt_Reporte.Rows) { Registro.BeginEdit(); Db_Total = 0; for (int Cont_For = 1; Cont_For <= 12; Cont_For++) { Str_Nombre_Mes = ""; if (Dic_Meses.ContainsKey(Cont_For) == true) { Str_Nombre_Mes = Dic_Meses[Cont_For]; }// fin de la validacion del diccionario Dc_Total = (from ord in Dt_Consulta.AsEnumerable() where ord.Field <String>("giro_id") == Registro["tarifa_id"].ToString() && ord.Field <Int32>("bimestre") == Cont_For && ord.Field <Int32>("anio") == Rs_Consulta.P_Anio select ord.Field <Decimal>("Consumo") ).Sum(); Registro[Str_Nombre_Mes] = Convert.ToDouble(Dc_Total); Db_Total = Db_Total + Convert.ToDouble(Dc_Total); } Registro["Total"] = Db_Total; Db_Total = 0; Registro.EndEdit(); Registro.AcceptChanges(); } // se borraran las tarifas id, ya que comenzara con el tercer proceso foreach (DataRow Registro_Reporte in Dt_Reporte.Rows) { Registro_Reporte.BeginEdit(); Registro_Reporte["Tarifa_Id"] = ""; Registro_Reporte.EndEdit(); Registro_Reporte.AcceptChanges(); } //******************************************************************************************************************** //******************************************************************************************************************** //******************************************************************************************************************** // Se ingresan los encabezados para las tomas foreach (DataRow Registro in Dt_Tarifas.Rows) { Dr_Nuevo_Elemento = Dt_Reporte.NewRow(); Dr_Nuevo_Elemento["tarifa_Id"] = Registro["giro_id"].ToString(); Dr_Nuevo_Elemento["Id"] = Registro["giro_id"].ToString(); Dr_Nuevo_Elemento["Accion"] = 2; Dr_Nuevo_Elemento["Concepto"] = "Volumen facturado estimado " + Registro["Nombre_Giro"].ToString() + " (" + Registro["Clave"].ToString() + ")"; Dt_Reporte.Rows.Add(Dr_Nuevo_Elemento); } // se consultan las tomas que se realizaron en el año de consulta Rs_Consulta.P_Estimado = "SI"; Dt_Consulta = Rs_Consulta.Consultar_Volumenes(); foreach (DataRow Registro in Dt_Reporte.Rows) { if (!String.IsNullOrEmpty(Registro["tarifa_Id"].ToString())) { Registro.BeginEdit(); Db_Total = 0; for (int Cont_For = 1; Cont_For <= 12; Cont_For++) { Str_Nombre_Mes = ""; if (Dic_Meses.ContainsKey(Cont_For) == true) { Str_Nombre_Mes = Dic_Meses[Cont_For]; }// fin de la validacion del diccionario Dc_Total = (from ord in Dt_Consulta.AsEnumerable() where ord.Field <String>("giro_id") == Registro["tarifa_id"].ToString() && ord.Field <Int32>("bimestre") == Cont_For && ord.Field <Int32>("anio") == Rs_Consulta.P_Anio select ord.Field <Decimal>("Consumo") ).Sum(); Registro[Str_Nombre_Mes] = Convert.ToDouble(Dc_Total); Db_Total = Db_Total + Convert.ToDouble(Dc_Total); } Registro["Total"] = Db_Total; Db_Total = 0; Registro.EndEdit(); Registro.AcceptChanges(); } } //******************************************************************************************************************** //******************************************************************************************************************** //******************************************************************************************************************** // Volumen de agua distribuido en pipas******************************************************************************************************************** Dr_Nuevo_Elemento = Dt_Reporte.NewRow(); Dr_Nuevo_Elemento["tarifa_Id"] = "X"; Dr_Nuevo_Elemento["Id"] = "PIPA"; Dr_Nuevo_Elemento["Concepto"] = "Volumen de agua distribuido en pipas"; Dt_Reporte.Rows.Add(Dr_Nuevo_Elemento); Dt_Consulta.Clear(); //Dt_Consulta = Rs_Consulta.Consultar_Volumenes_Pipa(); foreach (DataRow Registro in Dt_Reporte.Rows) { if (Registro["tarifa_id"] == "X") { Registro.BeginEdit(); Db_Total = 0; Registro[Str_Nombre_Mes] = Convert.ToDouble(Dc_Total); Db_Total = Db_Total + Convert.ToDouble(Dc_Total); // se recorreran los meses del año que se busca for (int Cont_For = 1; Cont_For <= 12; Cont_For++) { Str_Nombre_Mes = ""; Dc_Total = 0; if (Dic_Meses.ContainsKey(Cont_For) == true) { Str_Nombre_Mes = Dic_Meses[Cont_For]; }// fin de la validacion del diccionario Dc_Total = (from ord in Dt_Consulta.AsEnumerable() where ord.Field <Int32>("mes") == Cont_For select ord.Field <Decimal>("M3") ).Sum(); Db_Total = Db_Total + Convert.ToDouble(Dc_Total); Registro[Str_Nombre_Mes] = Dc_Total; } Registro["Total"] = Db_Total; Registro.EndEdit(); Registro.AcceptChanges(); } } // se borraran las tarifas id, ya que comenzara con el tercer proceso foreach (DataRow Registro_Reporte in Dt_Reporte.Rows) { Registro_Reporte.BeginEdit(); Registro_Reporte["Tarifa_Id"] = ""; Registro_Reporte.EndEdit(); Registro_Reporte.AcceptChanges(); } //******************************************************************************************************************** //******************************************************************************************************************** //******************************************************************************************************************** // Volumen de agua distribuido en bebedero 1******************************************************************************************************************** Dr_Nuevo_Elemento = Dt_Reporte.NewRow(); Dr_Nuevo_Elemento["tarifa_Id"] = "X"; Dr_Nuevo_Elemento["Id"] = "BEB1"; Dr_Nuevo_Elemento["Concepto"] = "Volumen de agua distribuido en bebedero 1"; Dt_Reporte.Rows.Add(Dr_Nuevo_Elemento); Dr_Nuevo_Elemento = Dt_Reporte.NewRow(); Dr_Nuevo_Elemento["tarifa_Id"] = "X"; Dr_Nuevo_Elemento["Id"] = "BEB2"; Dr_Nuevo_Elemento["Concepto"] = "Volumen de agua distribuido en bebedero 2"; Dt_Reporte.Rows.Add(Dr_Nuevo_Elemento); Dr_Nuevo_Elemento = Dt_Reporte.NewRow(); Dr_Nuevo_Elemento["tarifa_Id"] = "X"; Dr_Nuevo_Elemento["Id"] = "BEB3"; Dr_Nuevo_Elemento["Concepto"] = "Volumen de agua distribuido en bebedero 3"; Dt_Reporte.Rows.Add(Dr_Nuevo_Elemento); //******************************************************************************************************************** //******************************************************************************************************************** //******************************************************************************************************************** // llenan los espacios vacion con cero 0******************************************************************************************************************** foreach (DataRow Registro_Reporte in Dt_Reporte.Rows) { Registro_Reporte.BeginEdit(); Registro_Reporte["Tarifa_Id"] = ""; for (int Cont_For = 1; Cont_For <= 12; Cont_For++) { Str_Nombre_Mes = ""; if (Dic_Meses.ContainsKey(Cont_For) == true) { Str_Nombre_Mes = Dic_Meses[Cont_For]; }// fin de la validacion del diccionario if (String.IsNullOrEmpty(Registro_Reporte[Str_Nombre_Mes].ToString())) { Registro_Reporte[Str_Nombre_Mes] = 0; } } if (String.IsNullOrEmpty(Registro_Reporte["Total"].ToString())) { Registro_Reporte["Total"] = 0; } Registro_Reporte.EndEdit(); Registro_Reporte.AcceptChanges(); } //******************************************************************************************************************** //******************************************************************************************************************** //******************************************************************************************************************** // se ingresara la informacion // se realizara la insercion de la informacion foreach (DataRow Registro in Dt_Reporte.Rows) { Dt_Existencia.Clear(); Str_Nombre_Mes = ""; Str_Nombre_Mes = Dic_Meses[DateTime.Now.Month]; Rs_Consulta.P_Str_Nombre_Mes = Str_Nombre_Mes; Rs_Consulta.P_Giro_Id = Registro["id"].ToString(); Rs_Consulta.P_Anio = DateTime.Now.Year; Rs_Consulta.P_Dr_Registro = Registro; Rs_Consulta.P_Str_Usuario = "Servicio"; if (!String.IsNullOrEmpty(Registro["Accion"].ToString())) { Rs_Consulta.P_Str_Accion = Registro["Accion"].ToString(); } else { Rs_Consulta.P_Str_Accion = ""; } Dt_Existencia = Rs_Consulta.Consultar_Si_Existe_Registro_Volumen(); // validacion de la consulta if (Dt_Existencia != null && Dt_Existencia.Rows.Count > 0) { // actualizacion Rs_Consulta.P_Id = Dt_Existencia.Rows[0]["ID"].ToString(); Rs_Consulta.Actualizar_Registro_Volumenes(); }// fin del if else { // insercion Rs_Consulta.Insertar_Registro_Volumenes(); } // fin el else } // fin foreach } catch (Exception Ex) { MessageBox.Show("Eror: " + Ex.Message, "Mensaje", MessageBoxButtons.OK); } }// fin