示例#1
0
        private void ModificacionDeComisionDeServicio(ComisionDeServicio una_comision)
        {
            var comision_anterior = ObtenerViaticoPorId(una_comision.Id);

            foreach (Estadia unaEstadia in una_comision.Estadias)
            {
                unaEstadia.ComisionDeServicio = una_comision;
            }

            foreach (Pasaje unPasaje in una_comision.Pasajes)
            {
                unPasaje.ComisionDeServicio = una_comision;
            }

            var repoEstadias      = new RepositorioDeEstadias(conexion_bd);
            var estadias_quitadas = comision_anterior.Estadias.FindAll(e => !una_comision.Estadias.Contains(e));

            repoEstadias.BajaDeEstadias(estadias_quitadas);
            var estadias_nuevas = una_comision.Estadias.FindAll(e => e.Id == 0);

            repoEstadias.AltaDeEstadias(estadias_nuevas);

            var repoPasajes      = new RepositorioDePasajes(conexion_bd);
            var pasajes_quitados = comision_anterior.Pasajes.FindAll(p => !una_comision.Pasajes.Contains(p));

            repoPasajes.BajaDePasajes(pasajes_quitados);
            var pasajes_nuevos = una_comision.Pasajes.FindAll(p => p.Id == 0);

            repoPasajes.AltaDePasajes(pasajes_nuevos);

            var repoAcciones = new RepositorioDeAccionesDeTransicion();

            this.ReasignarComision(una_comision, una_comision.AreaSuperior, repoAcciones.GetAccionSolicitar().Id, "");
        }
示例#2
0
        public void ReasignarComision(ComisionDeServicio una_comision, Area area_destino, int id_accion, String comentario)
        {
            Area area_actual;

            if (una_comision.TransicionesRealizadas.Count > 0)
            {
                area_actual = una_comision.AreaActual;
            }
            else
            {
                area_actual = una_comision.AreaCreadora;
            }

            var repo_acciones = new RepositorioDeAccionesDeTransicion();
            var accion        = repo_acciones.GetAccionDeTransicionById(id_accion);

            var fecha_transicion = DateTime.Now;

            var parametros = new Dictionary <string, object>();

            parametros.Add("@Id_Comision", una_comision.Id);
            parametros.Add("@Id_Area_Origen", area_actual.Id);
            parametros.Add("@Id_Area_Destino", area_destino.Id);
            parametros.Add("@Id_Accion", id_accion);
            parametros.Add("@Fecha", fecha_transicion);
            parametros.Add("@Comentario", comentario);
            var id_transicion = conexion_bd.EjecutarEscalar("dbo.VIA_GuardarTransicionDeViatico", parametros);

            var transicion = new TransicionDeViatico((int)((Decimal)id_transicion), area_actual, area_destino, accion, fecha_transicion, comentario);

            una_comision.TransicionesRealizadas.Add(transicion);
        }
示例#3
0
    private void LimpiarComisionEnSession()
    {
        ComisionDeServicio comisionEnEdicion = new ComisionDeServicio();

        comisionEnEdicion.Estadias = new Estadia[0];
        comisionEnEdicion.Pasajes  = new Pasaje[0];
        Session[ConstantesDeSesion.VIATICO_EN_EDICION] = comisionEnEdicion;
    }
示例#4
0
    protected void Btn_AccesoDirectoSolicitarModificacion_Click(object sender, EventArgs e)
    {
        WSViaticosSoapClient ws           = new WSViaticosSoapClient();
        ComisionDeServicio   una_comision = (ComisionDeServicio)Session["comisionActual"];

        ws.ReasignarComision(una_comision, Int32.Parse(this.cmbAreasTransicionesAnteriores.SelectedValue), 2, "");
        Response.Redirect("~/FormularioDeViaticosAprobacion/FControlDeAprobacion.aspx", true);
    }
示例#5
0
    public void MostrarTablaDePasajes(ComisionDeServicio comision)
    {
        RenderizadorDeTablas <Pasaje> renderizador = new RenderizadorDeTablas <Pasaje>(new CargaPasajeToRowSerializer());

        renderizador.RenderTo(new List <Pasaje>(comision.Pasajes.ToList()), this._tabla_listado_pasajes);

        //this._tabla_listado_estadias.CssClass = "table table-striped table-bordered table-condensed";
        //this.Controls.Add(TablaViaticos);
    }
示例#6
0
    //protected void btnAprobarYEnviarA_Click(object sender, EventArgs e)
    //{
    //    WSViaticosSoapClient ws = new WSViaticosSoapClient();
    //    ComisionDeServicio una_comision = (ComisionDeServicio)Session["comisionActual"];
    //    ws.ReasignarComision(una_comision, ws.GetAreaSuperiorA(((ComisionDeServicio)Session["comisionActual"]).AreaActual).Id, 1, "");
    //    Response.Redirect("~/FormularioDeViaticosAprobacion/FControlDeAprobacion.aspx", true);
    //}

    //protected void btnRechazarYNotificarA_Click(object sender, EventArgs e)
    //{

    //}

    //protected void btnSolicitarModificacionA_Click(object sender, EventArgs e)
    //{
    //    WSViaticosSoapClient ws = new WSViaticosSoapClient();
    //    ComisionDeServicio una_comision = (ComisionDeServicio)Session["comisionActual"];
    //    ws.ReasignarComision(una_comision, ws.GetAreaPreviaDe(((ComisionDeServicio)Session["comisionActual"])).Id , 2, "");
    //    Response.Redirect("~/FormularioDeViaticosAprobacion/FControlDeAprobacion.aspx", true);
    //}

    protected void Btn_AccesoDirectoAprobar_Click(object sender, EventArgs e)
    {
        /**/

        WSViaticosSoapClient ws           = new WSViaticosSoapClient();
        ComisionDeServicio   una_comision = (ComisionDeServicio)Session["comisionActual"];

        ws.ReasignarComision(una_comision, ws.GetAreaSuperiorA(((ComisionDeServicio)Session["comisionActual"]).AreaActual).Id, 1, "");
        Response.Redirect("~/FormularioDeViaticosAprobacion/FControlDeAprobacion.aspx", true);
    }
示例#7
0
    private void AddPasaje(Pasaje pasaje)
    {
        ComisionDeServicio viatico_en_edicion = (ComisionDeServicio)Session[ConstantesDeSesion.VIATICO_EN_EDICION];

        var nuevos_pasajes = pasajes();// new List<Pasaje>(viatico_en_edicion.Pasajes);

        nuevos_pasajes.Add(pasaje);

        viatico_en_edicion.Pasajes = nuevos_pasajes.ToArray();
    }
示例#8
0
    private void AddEstadia(Estadia estadia)
    {
        ComisionDeServicio viatico_en_edicion = (ComisionDeServicio)Session[ConstantesDeSesion.VIATICO_EN_EDICION];

        var nuevos_estadias = estadias();// new List<Estadia>(viatico_en_edicion.Estadias);

        nuevos_estadias.Add(estadia);

        viatico_en_edicion.Estadias = nuevos_estadias.ToArray();
    }
示例#9
0
    public DateTime ObtenerFechaMaximaEstadia()
    {
        ComisionDeServicio viatico_en_edicion = (ComisionDeServicio)Session[ConstantesDeSesion.VIATICO_EN_EDICION];
        DateTime           maxDate            = DateTime.MinValue;

        foreach (Estadia estadia in viatico_en_edicion.Estadias)
        {
            if (maxDate < estadia.Hasta)
            {
                maxDate = estadia.Hasta;
            }
        }
        return(maxDate);
    }
示例#10
0
    public void QuitarPasajeDelListado(int id_pasaje)
    {
        ComisionDeServicio viatico_en_edicion = (ComisionDeServicio)HttpContext.Current.Session[ConstantesDeSesion.VIATICO_EN_EDICION];

        List <Pasaje> pasajes_existentes = new List <Pasaje>(viatico_en_edicion.Pasajes);

        Pasaje pasaje_a_borrar = pasajes_existentes.Find(p => p.Id == (int)id_pasaje);

        pasajes_existentes.Remove(pasaje_a_borrar);

        viatico_en_edicion.Pasajes = pasajes_existentes.ToArray();

        this.ControlGrillaEstadias.MostrarTablaDeEstadias(viatico_en_edicion);
        this.ControlGrillaPasajes.MostrarTablaDePasajes(viatico_en_edicion);
    }
示例#11
0
    //[ScriptMethod, WebMethod]
    //public static string  QuitarEstadia(object id_estadia)
    //{
    //    ComisionDeServicio viatico_en_edicion = (ComisionDeServicio)HttpContext.Current.Session[ConstantesDeSesion.VIATICO_EN_EDICION];
    //    List<Estadia> estadias_existentes = new List<Estadia>(viatico_en_edicion.Estadias);
    //    Estadia estadia_a_borrar = estadias_existentes.Find(e => e.Id == (int)id_estadia);
    //    estadias_existentes.Remove(estadia_a_borrar);
    //    viatico_en_edicion.Estadias = estadias_existentes.ToArray();
    //    //this.ControlGrillaEstadias.MostrarTablaDeEstadias((ComisionDeServicio)HttpContext.Current.Session[ConstantesDeSesion.VIATICO_EN_EDICION]);
    //    //this.ControlGrillaPasajes.MostrarTablaDePasajes((ComisionDeServicio)HttpContext.Current.Session[ConstantesDeSesion.VIATICO_EN_EDICION]);
    //    return "FCargaComisionDeServicio.aspx";
    //}


    public void QuitarEstadiaDelListado(int id_estadia)
    {
        ComisionDeServicio viatico_en_edicion = (ComisionDeServicio)HttpContext.Current.Session[ConstantesDeSesion.VIATICO_EN_EDICION];

        List <Estadia> estadias_existentes = new List <Estadia>(viatico_en_edicion.Estadias);

        Estadia estadia_a_borrar = estadias_existentes.Find(e => e.Id == (int)id_estadia);

        estadias_existentes.Remove(estadia_a_borrar);

        viatico_en_edicion.Estadias = estadias_existentes.ToArray();

        this.ControlGrillaEstadias.MostrarTablaDeEstadias(viatico_en_edicion);
        this.ControlGrillaPasajes.MostrarTablaDePasajes(viatico_en_edicion);
    }
示例#12
0
 private void AgregarAreasAnterioresAlComboDeSolicitarModificacion(ComisionDeServicio viaticoActual)
 {
     foreach (var t in viaticoActual.TransicionesRealizadas)
     {
         var a = t.AreaOrigen;
         //Agrego las areas distintas entre si y distintas al area actual
         if (this.cmbAreasTransicionesAnteriores.Items.FindByValue(a.Id.ToString()) == null)
         {
             if (a.Id != viaticoActual.AreaActual.Id)
             {
                 this.cmbAreasTransicionesAnteriores.Items.Add(new System.Web.UI.WebControls.ListItem(a.Nombre, a.Id.ToString()));
             }
         }
     }
 }
示例#13
0
        public void GuardarComisionDeServicio(ComisionDeServicio una_comision)
        {
            if (una_comision.Estadias.Count < 1)
            {
                throw new Exception("No se puede guardar una comisión sin estadias.");
            }

            if (una_comision.Id == 0)
            {
                AltaDeComisionDeServicio(una_comision);
            }
            else
            {
                ModificacionDeComisionDeServicio(una_comision);
            }
        }
示例#14
0
        public Area GetAreaPreviaDe(ComisionDeServicio una_comision)
        {
            var parametros = new Dictionary <string, object>();

            parametros.Add("@Id_Viatico", una_comision.Id);
            var tablaDatos = conexion_bd.Ejecutar("dbo.VIA_GetAreaPreviaDe", parametros);

            if (tablaDatos.Rows.Count > 0)
            {
                var row = tablaDatos.Rows[0];
                return(new Area {
                    Id = row.GetInt("id_area"), Nombre = row.GetString("descripcion"), Codigo = row.GetString("codigo")
                });
            }
            return(null);
        }
示例#15
0
    protected void Modificar_Click(object sender, EventArgs e)
    {
        ComisionDeServicio comisionEnEdicion = new ComisionDeServicio();

        comisionEnEdicion.Estadias = new Estadia[0];
        comisionEnEdicion.Pasajes  = new Pasaje[0];

        Session[ConstantesDeSesion.VIATICO_EN_EDICION] = comision;
        Session[ConstantesDeSesion.AREA_ACTUAL]        = comision.AreaCreadora;
        Session["personaViatico"]      = comision.Persona;
        Session["VieneDeModificacion"] = true;
        Session["EstadiasQuitadas"]    = new List <string>();
        Session["PasajesQuitadas"]     = new List <string>();
        Session["Viatico vacio"]       = comisionEnEdicion;
        Response.Redirect("~\\FormularioDeViaticos\\FCargaComisionDeServicio.aspx");
    }
示例#16
0
    protected void botonRechazar_Click(object sender, EventArgs e)
    {
        WSViaticosSoapClient ws           = new WSViaticosSoapClient();
        ComisionDeServicio   una_comision = (ComisionDeServicio)Session["comisionActual"];

        try
        {
            Int32 id_area = Int32.Parse(this.AreaSeleccionadaRechazo.Value);
            ws.ReasignarComision(una_comision, id_area, 3, this.txtComentarios.Text);
            Response.Redirect("~/FormularioDeViaticosAprobacion/FControlDeAprobacion.aspx", true);
        }
        catch (FormatException)
        {
            this.AlertaTransicionInvalida.InnerText = "Debe seleccionar un área destino para enviar el viático";
            this.AlertaTransicionInvalida.Visible   = true;
        }
    }
示例#17
0
    public void MostrarTablaDeEstadias(ComisionDeServicio comision)
    {
        RenderizadorDeTablas <Estadia> renderizador = new RenderizadorDeTablas <Estadia>(new CargaEstadiaToRowSerializer());

        List <Estadia> lista_de_estadias = new List <Estadia>(comision.Estadias.ToList());

        //List<ComisionDeServicio> lista_de_comisiones = new List<ComisionDeServicio>();
        //lista_de_comisiones.Add(comision);

        //lista_de_estadias.ForEach(e => e.ComisionDeServicio = comision);


        renderizador.RenderTo(lista_de_estadias, this._tabla_listado_estadias);

        //this._tabla_listado_estadias.CssClass = "table table-striped table-bordered table-condensed";
        //this.Controls.Add(TablaViaticos);
    }
示例#18
0
    protected void Page_Load(object sender, EventArgs e)
    {
        ComisionDeServicio Comision = new ComisionDeServicio();
        Persona            Persona  = new Persona();

        Comision = (ComisionDeServicio)Session["ComisionDeServicio"];
        Persona  = ((Persona)Session["persona"]);

        lblAgente.Text      = Persona.Apellido.ToString();
        lblDependencia.Text = Persona.Area.Dependencias[0].Nombre.ToString();
        lblTelefono.Text    = "";
        lblCategoria.Text   = "";
        lblLegajo.Text      = "";
        lblCUIT.Text        = "";
        //lblComision.Text = Comision.Estadias[0].Provincia[0].Nombre.ToString();
        lblFechaInicio.Text     = Comision.Estadias[0].Desde.ToString();
        lblFechaFin.Text        = Comision.Estadias[0].Hasta.Date.ToString();
        lblHoraInicio.Text      = Comision.Estadias[0].Desde.ToString();
        lblHoraFin.Text         = Comision.Estadias[0].Hasta.ToString();
        lblDias.Text            = ""; //calculo Marcelo
        lblPesosDiario.Text     = ""; //calculo agustin
        lblTotalPesos.Text      = ""; // Comision.Estadias[0].AdicionalParaPasajes + Comision.Estadias[0].Eventuales;
        lblPasajesPesos.Text    = Comision.Estadias[0].AdicionalParaPasajes.ToString();
        lblEventualesPesos.Text = Comision.Estadias[0].Eventuales.ToString();
        lblProgramaNro.Text     = "";
        lblActividadNro.Text    = "";

        lblDiasDPEP.Text            = "";
        lblPesosDiarioDPEP.Text     = "";
        lblTotalPesosDPEP.Text      = ""; //Comision.Estadias[0].AdicionalParaPasajes + Comision.Estadias[0].Eventuales;
        lblPasajesPesosDPEP.Text    = Comision.Estadias[0].AdicionalParaPasajes.ToString();
        lblEventualesPesosDPEP.Text = Comision.Estadias[0].Eventuales.ToString();

        lblRecibiPesosLetra.Text      = "";
        lblRecibiPesosNro.Text        = "";
        lblDiasRebici.Text            = "";
        lblPesosDiarioRebici.Text     = "";
        lblTotalPesosRebici.Text      = ""; //Comision.Estadias[0].AdicionalParaPasajes + Comision.Estadias[0].Eventuales;
        lblPasajesPesosRebici.Text    = Comision.Estadias[0].AdicionalParaPasajes.ToString();
        lblEventualesPesosRebici.Text = Comision.Estadias[0].Eventuales.ToString();

        lblApellidoNombrePersona.Text = Persona.Apellido.ToString() + ", " + Persona.Nombre.ToString();
    }
示例#19
0
    private ComisionDeServicio PonerEn0LosIdDeLasEstadiasYPasajesNuevas(ComisionDeServicio comision)
    {
        foreach (var estadia in comision.Estadias)
        {
            if (estadia.Id < 0)
            {
                estadia.Id = 0;
            }
        }

        foreach (var pasaje in comision.Pasajes)
        {
            if (pasaje.Id < 0)
            {
                pasaje.Id = 0;
            }
        }

        return(comision);
    }
示例#20
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["comisionActual"] != null)
        {
            comision = (ComisionDeServicio)Session["comisionActual"];
        }

        //Table tabla_encabezado_datos_persona = ConstruirTabla("Datos Personales");
        //Table tabla_detalle_datos_persona = ContruirTablaDetalleDatosPersonales();

        //Table tabla_encabezado_estadia = ConstruirTabla("Detalle de Estadías");
        //Table tabla_detalle_estadia = ConstruirTablaDetalleEstadia();

        MostrarTablaDePersona();
        MostrarTablaEstadias();
        MostrarTablaDePasajes();
        // Table tabla_encabezado_pasaje = ConstruirTabla("Detalle de Pasajes");
        //Table tabla_detalle_pasaje = ConstruirTablaDetallePasaje();

        System.Web.UI.WebControls.Panel lista_firmantes = ConstruirListaFirmantes();

        this.Controls.Add(lista_firmantes);

        Usuario usuario = ((Usuario)Session["usuario"]);

        WSViaticosSoapClient ws = new WSViaticosSoapClient();

        var idAreasUsuario = ws.AreasAdministradasPor(usuario).Select(a => a.Id);

        if (!idAreasUsuario.Contains(comision.AreaActual.Id))
        {
            this.BotonModificar.Visible = false;
        }

        if (ValidacionesEnComisionesDeServicios.Validar72Horas(comision.FechaCreacion, comision.Estadias.Select(es => es.Desde).Min()))
        {
            this.lbValidacion72horas.Text = "El Viático fue solicitado con menos de 72 horas hábiles";
        }
    }
示例#21
0
        private void AltaDeComisionDeServicio(ComisionDeServicio una_comision)
        {
            var parametros = new Dictionary <string, object>();

            parametros.Add("@idAreaCreadora", una_comision.AreaCreadora.Id);
            parametros.Add("@documentoAgente", una_comision.Persona.Documento);
            parametros.Add("@estado", Enum.GetNames(typeof(EstadosDeComision))[(int)una_comision.Estado]);
            parametros.Add("@baja", una_comision.Baja);
            parametros.Add("@usuario", 1);
            var id = conexion_bd.EjecutarEscalar("dbo.VIA_AltaComisionDeServicio", parametros);

            una_comision.Id = int.Parse(id.ToString());

            foreach (Estadia unaEstadia in una_comision.Estadias)
            {
                unaEstadia.ComisionDeServicio = una_comision;
            }

            foreach (Pasaje unPasaje in una_comision.Pasajes)
            {
                unPasaje.ComisionDeServicio = una_comision;
            }

            var repoEstadias = new RepositorioDeEstadias(conexion_bd);

            repoEstadias.AltaDeEstadias(una_comision.Estadias);

            var repoPasajes = new RepositorioDePasajes(conexion_bd);

            repoPasajes.AltaDePasajes(una_comision.Pasajes);

            var repoAcciones = new RepositorioDeAccionesDeTransicion();

            //unaComision.AreaActual = unaComision.AreaCreadora;
            this.ReasignarComision(una_comision, una_comision.AreaSuperior, repoAcciones.GetAccionSolicitar().Id, "");
        }
示例#22
0
    protected void Page_Load(object sender, EventArgs e)
    {
        comision = (ComisionDeServicio)Session["comisionActual"];

        Usuario usuario = ((Usuario)Session["usuario"]);

        var ws            = new WSViaticosSoapClient();
        var areas_usuario = ws.AreasAdministradasPor(usuario);

        var idAreasUsuario = areas_usuario.Select(a => a.Id).ToList();

        Session["personaViatico"] = comision.Persona;

        MostrarDatosViajante();
        MostrarTablaEstadias();
        MostrarTablaDePasajes();
        MostrarTablaDeFirmantes();
        if (!idAreasUsuario.Contains(comision.AreaActual.Id)) // || !usuario.EsFirmante) NOTA IMPORTANTE: volver a poner obteniendo desde la bd esta condición porque el login ya no lo trae más
        {
            this.controlDeTransiciones.Visible = false;
        }
        else
        {
            CargarControlesDeTransicion();
            this.controlDeTransiciones.Visible = true;
        }

        if (!idAreasUsuario.Contains(comision.AreaActual.Id))
        {
            this.BotonModificar.Visible = false;
        }
        else
        {
            this.BotonModificar.Visible = true;
        }
    }
示例#23
0
    //GPR: Se movió el Viatico a la pantalla de presente como Grupo 5.
    private void CargarDatosParaViatico(object sender)
    {
        ComisionDeServicio comisionEnEdicion = new ComisionDeServicio();

        comisionEnEdicion.Estadias = new Estadia[0];
        comisionEnEdicion.Pasajes  = new Pasaje[0];


        Persona  personaViatico = new Persona();
        TableRow rowClickeada   = (TableRow)((TableCell)((LinkButton)sender).Parent).Parent;

        string[] nombreCompleto = rowClickeada.Cells[2].Text.Split(',');

        personaViatico.Documento  = int.Parse(rowClickeada.Cells[1].Text.Replace(".", "").Replace("&nbsp;", ""));
        personaViatico.Apellido   = nombreCompleto[0];
        personaViatico.Nombre     = nombreCompleto[1];
        Session["personaViatico"] = personaViatico;
        Session[ConstantesDeSesion.VIATICO_EN_EDICION] = comisionEnEdicion;
        //Session["Viatico vacio"] = comisionEnEdicion;
        Session["VieneDeModificacion"] = false;
        //se agregan estos dos session para poder en el form siguiente quitar estadias y pasajes guardandolo en las respectivas sessiones
        Session["EstadiasQuitadas"] = new List <string>();
        Session["PasajesQuitadas"]  = new List <string>();
    }
示例#24
0
        private List <ComisionDeServicio> GetViaticosFromTabla(TablaDeDatos tablaViaticos)
        {
            List <ComisionDeServicio> viaticos = new List <ComisionDeServicio>();

            if (tablaViaticos.Rows.Count > 0)
            {
                var un_viatico     = new ComisionDeServicio();
                var un_pasaje      = new Pasaje();
                var una_estadia    = new Estadia();
                var una_transicion = new TransicionDeViatico();
                var una_zona       = new Zona();
                tablaViaticos.Rows.ForEach(row =>
                {
                    if (viaticos.FindAll(t => t.Id == row.GetInt("Id")).Count == 0)
                    {
                        un_viatico                     = new ComisionDeServicio();
                        un_viatico.Id                  = row.GetInt("Id");
                        un_viatico.Baja                = row.GetBoolean("Baja");
                        un_viatico.FechaCreacion       = row.GetDateTime("fecha");
                        un_viatico.AreaCreadora        = new Area();
                        un_viatico.AreaCreadora.Id     = row.GetInt("IdAreaCreadora");
                        un_viatico.AreaCreadora.Nombre = row.GetString("DescripcionAreaCreadora");
                        un_viatico.AreaSuperior        = new Area();
                        un_viatico.AreaSuperior.Id     = row.GetInt("IdAreaCreadora");
                        un_viatico.AreaSuperior.Nombre = row.GetString("DescripcionAreaCreadora");
                        un_viatico.Persona             = new Persona();
                        un_viatico.Persona.Nombre      = row.GetString("Persona_Nombre");
                        un_viatico.Persona.Apellido    = row.GetString("Persona_Apellido");
                        un_viatico.Persona.Documento   = row.GetInt("Persona_Documento");
                        un_viatico.Persona.Area        = new Area();
                        un_viatico.Persona.Area.Id     = row.GetInt("Persona_Area_Id");
                        un_viatico.Persona.Area.Nombre = row.GetString("Persona_Area_Descripcion");

                        un_viatico.Persona.Cuit      = row.GetString("Cuil_Persona");
                        un_viatico.Persona.Legajo    = row.GetInt("Legajo_Persona").ToString();
                        un_viatico.Persona.Telefono  = row.GetString("Telefono_Area");
                        un_viatico.Persona.Categoria = row.GetString("Categoria_Persona");
                        un_viatico.Persona.Nivel     = row.GetString("Nivel_Funcion");
                        un_viatico.Persona.Grado     = row.GetString("Grado_Rango");

                        //FC:agrego el estado mockeado por ahora para poder filtrar

                        //

                        viaticos.Add(un_viatico);
                        un_pasaje      = new Pasaje();
                        una_estadia    = new Estadia();
                        una_transicion = new TransicionDeViatico();
                    }
                    if (!(row.GetObject("Estadia_Id") is DBNull))
                    {
                        if (un_viatico.Estadias.FindAll(t => t.Id == row.GetInt("Estadia_Id")).Count == 0)
                        {
                            una_estadia                       = new Estadia();
                            una_zona                          = new Zona(row.GetSmallintAsInt("Id_Zona"), row.GetString("Nombre_Zona"));
                            una_estadia.Id                    = row.GetInt("Estadia_Id");
                            una_estadia.Desde                 = row.GetDateTime("Estadia_Desde");
                            una_estadia.Hasta                 = row.GetDateTime("Estadia_Hasta");
                            una_estadia.Provincia             = new Provincia();
                            una_estadia.Provincia.Id          = row.GetSmallintAsInt("Estadia_Provincia_Id");
                            una_estadia.Provincia.Nombre      = row.GetString("Estadia_Provincia_Nombre");
                            una_estadia.Provincia.Zona        = una_zona;
                            una_estadia.Eventuales            = Decimal.Parse(row.GetObject("Estadia_Eventuales").ToString());            // GetObject("Estadia_Eventuales");
                            una_estadia.AdicionalParaPasajes  = Decimal.Parse(row.GetObject("Estadia_AdicionalParaPasajes").ToString());  //GetObject("Estadia_AdicionalParaPasajes");
                            una_estadia.CalculadoPorCategoria = Decimal.Parse(row.GetObject("Estadia_CalculadoPorCategoria").ToString()); //GetObject("Estadia_CalculadoPorCategoria");
                            una_estadia.Motivo                = row.GetString("Estadia_Motivo");
                            una_estadia.Persona               = un_viatico.Persona;

                            un_viatico.Estadias.Add(una_estadia);
                        }
                    }

                    if (!(row.GetObject("Pasaje_Id") is DBNull))
                    {
                        if (un_viatico.Pasajes.FindAll(t => t.Id == row.GetInt("Pasaje_Id")).Count == 0)
                        {
                            un_pasaje                          = new Pasaje();
                            un_pasaje.Id                       = row.GetInt("Pasaje_Id");
                            un_pasaje.Origen                   = new Localidad();
                            un_pasaje.Origen.Id                = row.GetInt("Pasaje_LocalidadOrigen_Id");
                            un_pasaje.Origen.Nombre            = row.GetString("Pasaje_LocalidadOrigen_Nombre");
                            un_pasaje.Destino                  = new Localidad();
                            un_pasaje.Destino.Id               = row.GetInt("Pasaje_LocalidadDestino_Id");
                            un_pasaje.Destino.Nombre           = row.GetString("Pasaje_LocalidadDestino_Nombre");
                            un_pasaje.FechaDeViaje             = row.GetDateTime("Pasaje_FechaDeViaje");
                            un_pasaje.MedioDeTransporte        = new MedioDeTransporte();
                            un_pasaje.MedioDeTransporte.Id     = row.GetSmallintAsInt("Pasaje_MedioDeTransporte_Id");
                            un_pasaje.MedioDeTransporte.Nombre = row.GetString("Pasaje_MedioDeTransporte_Nombre");
                            un_pasaje.MedioDePago              = new MedioDePago();
                            un_pasaje.MedioDePago.Id           = row.GetSmallintAsInt("Pasaje_MedioDePago_Id");
                            un_pasaje.MedioDePago.Nombre       = row.GetString("Pasaje_MedioDePago_Nombre");
                            un_pasaje.Precio                   = Decimal.Parse(row.GetObject("Pasaje_Precio").ToString());//.GetObject("Pasaje_Precio");

                            un_viatico.Pasajes.Add(un_pasaje);
                        }
                    }

                    if (!(row.GetObject("Transicion_Id") is DBNull))
                    {
                        if (un_viatico.TransicionesRealizadas.FindAll(t => t.Id == row.GetInt("Transicion_Id")).Count == 0)
                        {
                            var id_transicion = row.GetInt("Transicion_Id");

                            var id_area_origen     = row.GetInt("Transicion_AreaOrigen_Id");
                            var nombre_area_origen = row.GetString("Transicion_AreaOrigen_Descripcion");
                            var area_origen        = new Area(id_area_origen, nombre_area_origen);

                            var responsableAreaOrigen       = new Persona();
                            responsableAreaOrigen.Nombre    = row.GetString("Transicion_AreaOrigen_Responsable_Nombre");
                            responsableAreaOrigen.Apellido  = row.GetString("Transicion_AreaOrigen_Responsable_Apellido");
                            responsableAreaOrigen.Documento = row.GetInt("Transicion_AreaOrigen_Responsable_Documento");
                            area_origen.Responsables        = new List <Persona>();
                            area_origen.Responsables.Add(responsableAreaOrigen);

                            var id_area_destino     = row.GetInt("Transicion_AreaDestino_Id");
                            var nombre_area_destino = row.GetString("Transicion_AreaDestino_Descripcion");
                            var area_destino        = new Area(id_area_destino, nombre_area_destino);

                            var responsableAreaDestino       = new Persona();
                            responsableAreaDestino.Nombre    = row.GetString("Transicion_AreaDestino_Responsable_Nombre");
                            responsableAreaDestino.Apellido  = row.GetString("Transicion_AreaDestino_Responsable_Apellido");
                            responsableAreaDestino.Documento = row.GetInt("Transicion_AreaDestino_Responsable_Documento");

                            area_destino.Responsables = new List <Persona>();
                            area_destino.Responsables.Add(responsableAreaDestino);

                            var repositorioAcciones = new RepositorioDeAccionesDeTransicion();
                            var accion     = repositorioAcciones.GetAccionDeTransicionById(row.GetInt("Transicion_Id_Accion"));
                            var fecha      = row.GetDateTime("Transicion_Fecha");
                            var comentario = row.GetString("Transicion_Comentario");
                            if (comentario == null)
                            {
                                comentario = "";
                            }
                            una_transicion = new TransicionDeViatico(id_transicion, area_origen, area_destino, accion, fecha, comentario);
                            un_viatico.TransicionesRealizadas.Add(una_transicion);
                        }
                    }
                });
            }
            return(viaticos);
        }
示例#25
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Sesion.VerificarSesion(this);
        //GetFotosDelDirectorio();
        Encriptador crypt = new Encriptador();

        //esta idtemporal es para ir agregando los id negativos a las estadias y pasajes nuevos durante el cargado
        if (Session["idtemporal"] == null)
        {
            Session["idtemporal"] = 0;
        }

        if (Session["personaViatico"] != null)
        {
            WSViaticosSoapClient service = new WSViaticosSoapClient();
            Persona personaViat          = (Persona)Session["personaViatico"];
            personaViat = service.CompletarDatosDeContratacion(personaViat);
            Session[ConstantesDeSesion.PERSONA] = personaViat;
            string documentoEncriptado = crypt.getMd5Hash(personaViat.Documento + ".jpg");

            this.img_perfil.ImageUrl = "../Imagenes/fotosEncriptadas/" + documentoEncriptado + ".jpg";
        }

        /*AZA -Para control de fechas superpuestas contra la base. Ver si se deja.*/
        //if (Session["estadiasAnteriores"] == null)
        //{
        //    WSViaticosSoapClient service = new WSViaticosSoapClient();
        //    Persona personaViat = (Persona)Session["personaViatico"];
        //    lista_estadias_anteriores_persona = service.GetEstadiasPorPersona(personaViat.Documento);
        //    Session["estadiasAnteriores"] = lista_estadias_anteriores_persona;

        try
        {
            this.DatosDelAgente1.Agente = (Persona)Session[ConstantesDeSesion.PERSONA];
            this.DatosDelAgente1.Area   = (Area)Session[ConstantesDeSesion.AREA_ACTUAL];
        }
        catch (Exception)
        {
            Response.Redirect("~\\Principal.aspx");
        }

        if (Session["zonas"] == null)
        {
            WSViaticosSoapClient service = new WSViaticosSoapClient();
            //WSViaticos.WSViaticos service =  new WSViaticos.WSViaticos();

            Session["zonas"] = service.ZonasDeViaticos();
            Session["mediosDeTransporte"] = service.MediosDeTransporte();
            Session["mediosDePagos"]      = service.MediosDePago();
        }

        List <Provincia> provincias = new List <Provincia>();

        foreach (Zona unaZona in (Zona[])Session["zonas"])
        {
            foreach (Provincia unaProvincia in unaZona.Provincias)
            {
                provincias.Add(unaProvincia);
            }
        }

        Provincia[] vectorProvincias = new Provincia[provincias.Count];

        for (int i = 0; i < provincias.Count; i++)
        {
            vectorProvincias[i] = provincias[i];
        }



        if (!IsPostBack)
        {
            this.ControlEstadia.Provincias = vectorProvincias;
            this.ControlPasaje.Medios      = (MedioDeTransporte[])Session["mediosDeTransporte"];
            this.ControlPasaje.Pagos       = (MedioDePago[])Session["mediosDePagos"];
        }

        this.ControlPasaje.Provincias = vectorProvincias;

        this.ControlPasaje.Acepto += new EventHandler(CambioCombo);

        this.ControlGrillaEstadias.AgregarEncabezado();
        this.ControlGrillaPasajes.AgregarEncabezado();

        ComisionDeServicio comision = (ComisionDeServicio)HttpContext.Current.Session[ConstantesDeSesion.VIATICO_EN_EDICION];

        if ((bool)Session["VieneDeModificacion"])
        {
            if (comision.Id != 0)
            {
                //Completar la grilla para modificar
                this.ControlGrillaEstadias.MostrarTablaDeEstadias(comision);
                this.ControlGrillaPasajes.MostrarTablaDePasajes(comision);
                Session["VieneDeModificacion"] = false;
            }
        }


        //esto es para capturar el id que se envia por la url de la pantalla y poder quitar o no de las listas
        string id_estadia = Request.QueryString["EstadiaAQuitar"];
        string id_pasaje  = Request.QueryString["PasajeAQuitar"];

        QuitarEstadia(id_estadia);
        QuitarPasaje(id_pasaje);
    }