Пример #1
0
        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;
            }
        }
Пример #2
0
        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();

            }


        } 
Пример #3
0
        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;
            }
        }
Пример #4
0
        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;
            }
        }
Пример #5
0
        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;
            }
        }
Пример #6
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");
                //}


            }
        }