예제 #1
0
        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";

        }
예제 #2
0
        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");
                //}


            }
        }