public static string AgregarDetalle(string parUnegocios, string parNoEmpleadoPartida, string parNombreCompletoPartida, string parJefeDirecto, string parNoJefeDirecto, string parImporteSiva, string parImporteCiva, string parNoSolicitud, string parNoPartida) { EntidadSolCapacitacion cap = new EntidadSolCapacitacion(); cap.UnidadNegocio = parUnegocios; cap.NoEmpleado = parNoEmpleadoPartida; cap.NombreEmpleado = parNombreCompletoPartida; cap.NoJefeDirecto = parNoJefeDirecto; cap.JefeDirecto = parJefeDirecto; cap.FolioSolicitud = Convert.ToInt32(parNoSolicitud); //Busco la ultima partida NegocioSolicitudCap nPartida = new NegocioSolicitudCap(cap); List<EntidadSolCapacitacion> listaNpartida = nPartida.ObtenerUltimaPartidaSolicitud(); if (listaNpartida != null) { cap.N_Partida = Convert.ToInt32(listaNpartida[0].N_Partida.ToString()); cap.N_Partida = cap.N_Partida + 1; } else { cap.N_Partida = 1; } //Busco el numero de la persona a Autorizar RecursosHumanos capitalHumano = new RecursosHumanos(); List<Employee> listaEmpleados3 = capitalHumano.ListaPersonaName(parNoJefeDirecto); if (listaEmpleados3 != null) { parNoJefeDirecto = listaEmpleados3[0].SupervisorNoemp.ToString(); } else { cap.NoJefeDirecto = parNoJefeDirecto; } cap.NoJefeDirecto = parNoJefeDirecto; cap.ImporteCiva = Convert.ToDouble(parImporteSiva); cap.ImporteSiva = Convert.ToDouble(parImporteSiva); cap.Status = "CAP"; //actualiza las partidas NegocioSolicitudCap nCap = new NegocioSolicitudCap(cap); bool bander = nCap.AgregarDetalleSolicitud(); return "Add"; }
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"); //} } }