public List<LineaSolicitud> ObtenerLineas(LineaSolicitud parLinea) { List<LineaSolicitud> lista = tablaLineasSolicitud.Obtener(parLinea); if (lista != null) { this.log = "Se recuperaron " + lista.Count.ToString() + " lineas"; return lista; } else { if (tablaLineasSolicitud.Log == "VACIO") { this.log = "Esta solicitud no tiene lineas"; } else { this.log = this.tablaLineasSolicitud.Log; } return null; } }
public void CargarGridDetalle(string parNumeroSolicitud) { this.viaticos = new GastosViaje(); LineaSolicitud linea = new LineaSolicitud(); if (parNumeroSolicitud != string.Empty) { linea.Clave = Convert.ToInt32(parNumeroSolicitud); } else { linea.Clave = 0; } List<LineaSolicitud> listaLineas = viaticos.ObtenerLineas(linea); if (listaLineas == null) { // Quita mensaje de error en filtros MensajeErrorFiltros(string.Empty); //Colapsa el panel filtros panelFiltros.CssClass = "da-panel collapsible collapsed"; // Muestra mensaje de error en Grid Principal MensajeErrorGrid(viaticos.Log); } else { // Oculta mensajes de error MensajeErrorFiltros(string.Empty); MensajeErrorGrid(string.Empty); // Llena el Grid con los resultados grdDetalle.DataSource = listaLineas; grdDetalle.DataBind(); //Colapsa el panel filtros panelFiltros.CssClass = "da-panel collapsible collapsed"; //Muestra dialogo con el Detalle dialogoDetalle.Show(); } }
public List<LineaSolicitud> ObtenerVuelos(LineaSolicitud parLinea) { ManagerSqlServer baseSqlSever = new ManagerSqlServer(); DataTable datos; SqlCommand comando = new SqlCommand(); comando.CommandText = " select " + " dSol_solicitudes.n_solicitud as solicitud, " + " CASE WHEN dSol_solicitudes.n_concepto_via = 'GPA' then 'PASAJES AEREOS' " + " ELSE 'sinVuelos' " + " END as conceptoDescripcion " + " FROM Sol_solicitudes " + " left outer join dSol_solicitudes on " + " dSol_solicitudes.c_tipo = 'VIA' and " + " dSol_solicitudes.n_solicitud = Sol_solicitudes.n_solicitud and " + " dSol_solicitudes.c_unidadNeg = Sol_solicitudes.c_unidadNeg " + " where dSol_solicitudes.n_solicitud like @parClave ORDER BY 2 "; comando.Parameters.Clear(); if (parLinea.Clave == 0) { comando.Parameters.Add("@parClave", SqlDbType.VarChar).Value = "%"; } else { comando.Parameters.Add("@parClave", SqlDbType.VarChar).Value = parLinea.Clave.ToString(); } datos = baseSqlSever.Consultar(comando); if (datos != null) { if (datos.Rows.Count != 0) { List<LineaSolicitud> listaLinea = new List<LineaSolicitud>(); foreach (DataRow fila in datos.Rows) { LineaSolicitud linea = new LineaSolicitud(); linea.ConceptoDescripcion = fila["conceptoDescripcion"].ToString(); listaLinea.Add(linea); } this.log = listaLinea.Count.ToString(); return listaLinea; } else { this.log = "VACIO"; return null; } } else { this.log = baseSqlSever.Log; return null; } }
public List<LineaSolicitud> ObtenerNumPartidas(LineaSolicitud parLinea) { ManagerSqlServer baseSqlSever = new ManagerSqlServer(); DataTable datos; SqlCommand comando = new SqlCommand(); comando.CommandText = " select COUNT(n_solicitud) as totalpartidas from dSol_solicitudes " + " where n_solicitud like @parClave ORDER BY 2 "; comando.Parameters.Clear(); if (parLinea.Clave == 0) { comando.Parameters.Add("@parClave", SqlDbType.VarChar).Value = "%"; } else { comando.Parameters.Add("@parClave", SqlDbType.VarChar).Value = parLinea.Clave.ToString(); } datos = baseSqlSever.Consultar(comando); if (datos != null) { if (datos.Rows.Count != 0) { List<LineaSolicitud> listaLinea = new List<LineaSolicitud>(); foreach (DataRow fila in datos.Rows) { LineaSolicitud linea = new LineaSolicitud(); linea.Partida = Convert.ToInt32(fila["totalpartidas"].ToString()); listaLinea.Add(linea); } this.log = listaLinea.Count.ToString(); return listaLinea; } else { this.log = "VACIO"; return null; } } else { this.log = baseSqlSever.Log; return null; } }
public List<LineaSolicitud> Obtener(LineaSolicitud parLinea) { ManagerSqlServer baseSqlServer = new ManagerSqlServer(); SqlCommand comando = new SqlCommand(); comando.CommandText = "SELECT " + "c_tipo as tipo, " + "n_solicitud as clave, " + "c_unidadNeg as unClave, " + "n_partida as partida, " + "n_subtotal as subtotal, " + "p_iva as iva, " + "n_total as total, " + "d_solicitud as descripcion, " + "n_concepto_via as conceptoClave, " + "d_concepto_via as conceptoDescripcion " + "FROM dSol_solicitudes " + "where n_solicitud like @parClave " ; comando.Parameters.Clear(); if (parLinea.Clave == 0) { comando.Parameters.Add("@parClave", SqlDbType.VarChar).Value = "%"; } else { comando.Parameters.Add("@parClave", SqlDbType.VarChar).Value = parLinea.Clave.ToString(); } DataTable datos = baseSqlServer.Consultar(comando); if (datos != null) { if (datos.Rows.Count != 0) { List<LineaSolicitud> listaLineas = new List<LineaSolicitud>(); foreach (DataRow fila in datos.Rows) { LineaSolicitud linea = new LineaSolicitud(); linea.Tipo = fila["tipo"].ToString(); if (fila["clave"] != DBNull.Value) { linea.Clave = Convert.ToInt32(fila["clave"]); } linea.UnClave = fila["unClave"].ToString(); linea.UnDescripcion = string.Empty; if (fila["partida"] != DBNull.Value) { linea.Partida = Convert.ToInt32(fila["partida"]); } if (fila["subtotal"] != DBNull.Value) { linea.Subtotal = Convert.ToSingle(fila["subtotal"]); } if (fila["iva"] != DBNull.Value) { linea.Iva = Convert.ToInt32(fila["iva"]); } if (fila["total"] != DBNull.Value) { linea.Total = Convert.ToSingle(fila["total"]); } linea.Descripcion = fila["descripcion"].ToString(); linea.ConceptoClave = fila["conceptoClave"].ToString(); linea.ConceptoDescripcion = fila["conceptoDescripcion"].ToString(); listaLineas.Add(linea); } this.log = listaLineas.Count.ToString(); return listaLineas; } else { this.log = "VACIO"; return null; } } else { this.log = baseSqlServer.Log; return null; } }
protected void botonFinalizar_Click1(object sender, EventArgs e) { int bandera = 1; if ((etiquetaNoSolicitud.Text == "") || (etiquetaNoSolicitud.Text.Trim() == "0")) { MensajeErrorPartidas("Grabe el encabezado de la Solicitud, Verifique!"); bandera = 0; } if ((bandera == 1) && (GView_Detalle.Rows.Count < 1)) { MensajeErrorPartidas("No se ha capturado ninguna partida de viaticos, favor de capturar al menos un partida para finalizar al Solicitud"); bandera = 0; } if (bandera == 1) { solSolicitudesBO MysolSolicitudesBO = new solSolicitudesBO(); solSolicitudes MysolSolicitudes = new solSolicitudes(); MysolSolicitudes.N_solicitud = int.Parse(etiquetaNoSolicitud.Text); MysolSolicitudes.C_tipo = "VIA"; MysolSolicitudes.C_unidadNeg = List_UniNeg.SelectedValue.ToString(); MysolSolicitudesBO.grabarFinal(MysolSolicitudes); //Busco si tiene una partida o 2 si tiene 1 busco que tenga hospedaje o vuelo, si tiene 2 que los dos tenga hospedaje y vuelo para poner //estatus de autorizado int nolineas = 0; viaticos = new GastosViaje(); LineaSolicitud Myp = new LineaSolicitud(); Myp.Clave = int.Parse(etiquetaNoSolicitud.Text); List<LineaSolicitud> listaPartidas = viaticos.ObtenerPartidas(Myp); if (listaPartidas != null) { nolineas = listaPartidas[0].Partida; } //Busco si tiene partida con Hospedaje para mandar correo a su AUTORIZADOR y [email protected] viaticos = new GastosViaje(); var tipolinea = "0"; var tipolineaConc = "0"; var tipolineaVuelo = "0"; var mensaje_correo = ""; LineaSolicitud Mylinea = new LineaSolicitud(); Mylinea.Clave = int.Parse(etiquetaNoSolicitud.Text); //Busco que tenga Hospedaje List<LineaSolicitud> listaSolicitudes = viaticos.ObtenerLineasHospedaje(Mylinea); if (listaSolicitudes != null) { tipolinea = listaSolicitudes[0].ConceptoDescripcion; } // Busco que tenga Alimentos List<LineaSolicitud> listaLineaSolicitud = viaticos.ObtenerLineasAlimentos(Mylinea); if (listaLineaSolicitud != null) { tipolineaConc = listaLineaSolicitud[0].ConceptoDescripcion; } // Busco que tenga Vuelos List<LineaSolicitud> listaLineaSolicitudV = viaticos.ObtenerLineasVuelos(Mylinea); if (listaLineaSolicitudV != null) { tipolineaVuelo = listaLineaSolicitudV[0].ConceptoDescripcion; } if (nolineas == 1) { if (tipolinea == "Hospedaje" || tipolineaConc == "ALIMENTOS POR VIATICOS" || tipolineaVuelo == "PASAJES AEREOS") { string connectionString1 = ConfigurationManager.ConnectionStrings["conexionAPPS"].ConnectionString; //actualizo el estatus autorizado para que no pase autorizacion using (SqlConnection cnx = new SqlConnection(connectionString1)) { cnx.Open(); string query = " update Sol_solicitudes set " + " c_estado_sol = 'AUT', " + " f_autoriza_sol = GETDATE() " + " where n_solicitud = '" + etiquetaNoSolicitud.Text + "' and c_tipo='VIA' "; SqlCommand cmd = new SqlCommand(query, cnx); SqlDataReader dr = cmd.ExecuteReader(); } } //if (tipolinea != "Hospedaje" && tipolineaConc != "ALIMENTOS POR VIATICOS" && tipolineaVuelo != "PASAJES AEREOS") //{ // Response.Redirect("frmViaticos.aspx"); //} } if (nolineas == 2) { if (tipolinea == "Hospedaje" && tipolineaConc == "ALIMENTOS POR VIATICOS" && tipolineaVuelo == "PASAJES AEREOS") { //actualizo el estatus autorizado para que no pase autorizacion string connectionString2 = ConfigurationManager.ConnectionStrings["conexionAPPS"].ConnectionString; using (SqlConnection cnx = new SqlConnection(connectionString2)) { cnx.Open(); string query = " update Sol_solicitudes set " + " c_estado_sol = 'AUT', " + " f_autoriza_sol = GETDATE() " + " where n_solicitud = '" + etiquetaNoSolicitud.Text + "' and c_tipo='VIA' "; SqlCommand cmd = new SqlCommand(query, cnx); SqlDataReader dr = cmd.ExecuteReader(); } } } //if (tipolinea != "Hospedaje" && tipolineaConc != "ALIMENTOS POR VIATICOS" && tipolineaVuelo != "PASAJES AEREOS") //{ // Response.Redirect("frmViaticos.aspx"); //} //if (tipolinea == "Hospedaje" || tipolineaConc == "ALIMENTOS POR VIATICOS" || tipolineaVuelo == "PASAJES AEREOS") //{ string connectionString3 = ConfigurationManager.ConnectionStrings["conexionAPPS"].ConnectionString; //-==================================== ENVIA CORREO AUTORIZADOR y GESTOR ============================== string mensaje1 = " <table class=style1 font-family=calibri> " + " <tr><td colspan=8 align=center><strong> SOLICITUD DE VIATICOS </strong></td></tr> " + " <tr> " + " <td style=background-color: #C0C0C0 > " + " <strong>NO VIATICO</strong></td> " + " <td style=background-color: #C0C0C0> " + " <strong>FECHA DE PARTIDA</strong></td> " + " <td style=background-color: #C0C0C0> " + " <strong>FECHA DE REGRESO</strong></td> " + " <td style=background-color: #C0C0C0> " + " <strong>SOLICITANTE</strong></td> " + " <td style=background-color: #C0C0C0> " + " <strong>DESTINO</strong></td> " + " <td style=background-color: #C0C0C0> " + " <strong>UNIDAD NEGOCIO</strong></td> " + " <td style=background-color: #C0C0C0> " + " </tr> " + " <tr> " + " <td> " + MysolSolicitudes.N_solicitud + " </td> " + " <td> " + txt_f_inicio_sol.Text + " </td> " + " <td> " + txt_f_fin_sol.Text + " </td> " + " <td> " + list_empleados.SelectedItem.Text.Trim() + " </td> " + " <td> " + txt_d_referencias_sugeridas.Text + " </td> " + " <td> " + List_UniNeg.SelectedItem.Text.Trim() + " </td> " + //MysolSolicitudes.C_unidadNeg " </tr> </table>"; string mensaje_enc_detalle = "<br> <table class=style1 font-family='calibri'> " + " <tr><td colspan='5' align='center'><strong> DETALLE </strong></td></tr> " + " <tr> " + " <td style=background-color: #C0C0C0> " + " <strong>SOLICITUD</strong></td> " + " <td style=background-color: #C0C0C0> " + " <strong>PARTIDA</strong></td> " + " <td style=background-color: #C0C0C0> " + " <strong>TOTAL</strong></td> " + " <td style=background-color: #C0C0C0> " + " <strong>DESCRIPCION </strong></td> " + //" <td style=background-color: #C0C0C0> " + // " <strong>CONCEPTO </strong></td> " + " <td style=background-color: #C0C0C0> " + " <strong>ESTATUS</strong></td> " + " </tr> "; string mensaje_detalle_partidas = ""; using (SqlConnection cnxdet = new SqlConnection(connectionString3)) { cnxdet.Open(); string query = " SELECT c_tipo, n_solicitud, n_partida, n_total, d_concepto_via, c_unidadNeg, f_autoriza, " + " CASE WHEN dSol_solicitudes.n_concepto_via = 'GPA' then 'PASAJES AEREOS' " + " WHEN dSol_solicitudes.n_concepto_via = 'ALMV' then 'ALIMENTOS POR VIATICOS' " + " WHEN dSol_solicitudes.n_concepto_via = 'HTL' then 'Hospedaje' " + " ELSE n_concepto_via " + " END as conceptoDescripcion, " + " CASE WHEN dSol_solicitudes.n_concepto_via = 'GPA' then 'PRE-AUTORIZADOS' " + " WHEN dSol_solicitudes.n_concepto_via = 'HTL' then 'PRE-AUTORIZADOS' " + " ELSE 'POR AUTORIZAR' " + " END as estatus " + " FROM dSol_solicitudes " + " WHERE c_tipo = 'VIA' and n_solicitud = '" + etiquetaNoSolicitud.Text + "' and c_tipo='VIA' "; SqlCommand cmd = new SqlCommand(query, cnxdet); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { while (dr.Read()) { // mensaje_detalle_partidas = dr["c_tipo"].ToString(); mensaje_detalle_partidas = mensaje_detalle_partidas + " <tr> <td> " + dr["n_solicitud"].ToString() + " </td> " + " <td> " + dr["n_partida"].ToString() + " </td> " + " <td> " + dr["n_total"].ToString() + " </td> " + " <td> " + dr["d_concepto_via"].ToString() + " </td> " + //" <td> " + dr["conceptoDescripcion"].ToString() + " </td> " + " <td> " + dr["estatus"].ToString() + " </td> "; //" <td align='center'> " + dr["c_unidadNeg"].ToString() + " </td> </tr>"; } } } if (tipolinea == "Hospedaje" || tipolineaConc == "ALIMENTOS POR VIATICOS" || tipolineaVuelo == "PASAJES AEREOS") { var nota = "Si no esta de acuerdo con los gastos pre-autorizados, favor de de comunicarse inmediatamente con el gestor de viajes [email protected] </p>"; mensaje_correo = mensaje1 + mensaje_enc_detalle + mensaje_detalle_partidas + " </table> <br> <p>" + nota; } else { mensaje_correo = mensaje1 + mensaje_enc_detalle + mensaje_detalle_partidas + " </table> <br> <p>"; } string noempleado_solicitante = list_empleados.SelectedValue.ToString(); var JefeInmediato_nombre = "0"; var JefeInmediato_no = "0"; //List<Employee> listaEmpleados3 = capitalHumano.ListaPersonaName(noempleado_solicitante); this.capitalHumano = new RecursosHumanos(); List<Employee> listaEmpleados2 = capitalHumano.ListaPersona(noempleado_solicitante); if (listaEmpleados2 != null) { // JefeInmediato_nombre = listaEmpleados2[0].SupervisorName.ToString(); JefeInmediato_no = listaEmpleados2[0].Supervisor.ToString(); } else { JefeInmediato_no = "0"; etiquetaMensajeError.Text = capitalHumano.Log + " / o No se encuentra actualizado su Jefe en BD, consulte con Capital Humano"; } if (JefeInmediato_no != "0") { List<Employee> listaEmpleados3 = capitalHumano.ListaPersonaName(JefeInmediato_no); if (listaEmpleados3 != null) { JefeInmediato_nombre = listaEmpleados3[0].SupervisorName.ToString(); JefeInmediato_no = listaEmpleados3[0].SupervisorNoemp.ToString(); } else { // MensajeError(capitalHumano.Log + " / o No se encuentra actualizado su Jefe en BD, consulte con Capital Humano"); etiquetaMensajeError.Text = capitalHumano.Log + " / o No se encuentra actualizado su Jefe en BD, consulte con Capital Humano"; return; } } if (tipolineaConc == "ALIMENTOS POR VIATICOS") //autorizador { JefeInmediato_no = lbl_id_empAutoriza.Text; } string email1 = ""; string email_aut = ""; usuario myUsuario = new usuario(); usuarioBO myUsuarioBO = new usuarioBO(); // para obtener correo de Jefe inmediato if (JefeInmediato_no != "0") { myUsuario.Usr_id_JDE_AB = JefeInmediato_no; myUsuario = myUsuarioBO.RetrievexJDE_AD(myUsuario); email1 = myUsuario.Correo; } // para obtener correo de Autorizdor if (lbl_id_empAutoriza.Text != "") { myUsuario.Usr_id_JDE_AB = lbl_id_empAutoriza.Text; myUsuario = myUsuarioBO.RetrievexJDE_AD(myUsuario); email_aut = myUsuario.Correo; } //string email1 = ""; //using (SqlConnection cnx = new SqlConnection(connectionString3)) //{ // cnx.Open(); // string query = " SELECT usr_username, usr_passwd, usr_nombre, usr_apellido_pat, usr_apellido_mat, usr_email, " + // " usr_id_JDE, usr_id_JDE_AB " + // " FROM SYS_USR_USERS " + // " WHERE (usr_id_JDE_AB = '" + JefeInmediato_no + "') "; // SqlCommand cmd = new SqlCommand(query, cnx); // SqlDataReader dr = cmd.ExecuteReader(); // if (dr.HasRows) // { // while (dr.Read()) // { // email1 = dr["usr_email"].ToString(); // } // } //} string listaemail = ""; if (tipolinea == "Hospedaje" || tipolineaVuelo == "PASAJES AEREOS") { if (email1 == "") { listaemail = "[email protected], [email protected]"; // listaemail = "*****@*****.**"; } listaemail = email1 + ", [email protected], [email protected]"; //listaemail = "*****@*****.**"; } if (tipolineaConc == "ALIMENTOS POR VIATICOS") { if (email1 == "") { listaemail = " [email protected]"; } listaemail = email1 + ", [email protected]"; //listaemail = "*****@*****.**"; } if (tipolinea != "Hospedaje" && tipolineaConc != "ALIMENTOS POR VIATICOS" && tipolineaVuelo != "PASAJES AEREOS") { if (email1 == "") { listaemail = " [email protected]"; } listaemail = email1 + ", [email protected]"; //listaemail = "*****@*****.**"; } //envio el correo dependiendo si es hospedaje a jefe inmediato y gestor de viajes / alimentos solo autorizador correoDO enviarCorreo = new correoDO(); // enviarCorreo.EnviaMail("ALTA DE SOLICITUD DE VIATICOS", mensaje1, listaemail); // mensaje_correo = mensaje_correo + " <br> Correo a enviar: " + email1 + " Autorizador: " + lbl_id_empAutoriza.Text + "Nombre: " + lbl_d_autorizador.Text + "correo autorizador:" + email_aut; enviarCorreo.EnviaMail("ALTA DE SOLICITUD DE VIATICOS", mensaje_correo, listaemail); Response.Redirect("frmViaticos.aspx"); //} //else //{ // Response.Redirect("frmViaticos.aspx"); //} } }