private Response Existe(FacturaViatico facturaViatico)
        {
            var bdd1 = facturaViatico.IdFacturaViatico;
            var bdd2 = facturaViatico.NumeroFactura;
            var bdd3 = facturaViatico.ValorTotalFactura;
            var bdd4 = facturaViatico.FechaFactura;
            var facturaViaticorespuesta = db.FacturaViatico.Where(p => p.IdFacturaViatico == bdd1 &&
                                                                  p.NumeroFactura == bdd2 &&
                                                                  p.ValorTotalFactura == bdd3 &&
                                                                  p.FechaFactura == bdd4
                                                                  //&& p.FechaHasta == bdd5
                                                                  //&& p.Valor == bdd6
                                                                  //&& p.HoraSalida == bdd7
                                                                  //&& p.HoraLlegada == bdd8
                                                                  ).FirstOrDefault();

            if (facturaViaticorespuesta != null)
            {
                return(new Response
                {
                    IsSuccess = true,
                    Message = Mensaje.ExisteRegistro,
                    Resultado = null,
                });
            }

            return(new Response
            {
                IsSuccess = false,
                Resultado = facturaViaticorespuesta,
            });
        }
Пример #2
0
        public async Task <IActionResult> Edit(string id, FacturaViatico facturaViatico)
        {
            Response response = new Response();

            try
            {
                if (!string.IsNullOrEmpty(id))
                {
                    response = await apiServicio.EditarAsync(id, facturaViatico, new Uri(WebApp.BaseAddress),
                                                             "api/FacturaViatico");

                    if (response.IsSuccess)
                    {
                        var solicitudViatico = new SolicitudViatico
                        {
                            IdSolicitudViatico = facturaViatico.IdSolicitudViatico
                        };
                        return(RedirectToAction("Informe", "ItinerarioViatico", new { IdSolicitudViatico = facturaViatico.IdSolicitudViatico }));
                    }
                    ViewData["Error"] = response.Message;
                    return(View(facturaViatico));
                }
                return(BadRequest());
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
        public async Task <IActionResult> Informe(int IdSolicitudViatico, string mensaje)
        {
            List <InformeViatico> lista = new List <InformeViatico>();

            try
            {
                var sol = new ViewModelsSolicitudViaticos
                {
                    IdSolicitudViatico = IdSolicitudViatico,
                };
                if (IdSolicitudViatico.ToString() != null)
                {
                    var respuestaSolicitudViatico = await apiServicio.ObtenerElementoAsync1 <ViewModelsSolicitudViaticos>(sol, new Uri(WebApp.BaseAddress),
                                                                                                                          "api/SolicitudViaticos/ObtenerSolicitudesViaticosporId");

                    //InicializarMensaje(null);
                    if (respuestaSolicitudViatico != null)
                    {
                        lista = new List <InformeViatico>();
                        var itinerarioViatico = new InformeViatico
                        {
                            IdSolicitudViatico = IdSolicitudViatico
                        };
                        lista = await apiServicio.ObtenerElementoAsync1 <List <InformeViatico> >(itinerarioViatico, new Uri(WebApp.BaseAddress)
                                                                                                 , "api/InformeViaticos/ListarInformeViaticos");

                        var facturas = new FacturaViatico()
                        {
                            IdSolicitudViatico = IdSolicitudViatico
                        };

                        var listaFacruras = await apiServicio.Listar <FacturaViatico>(facturas, new Uri(WebApp.BaseAddress)
                                                                                      , "api/FacturaViatico/ListarFacturas");

                        HttpContext.Session.SetInt32(Constantes.IdSolicitudtinerario, IdSolicitudViatico);

                        //busca las actividades del informe
                        var informeViatico = new InformeViatico
                        {
                            IdSolicitudViatico = IdSolicitudViatico
                        };
                        var Actividades = await apiServicio.ObtenerElementoAsync1 <InformeActividadViatico>(informeViatico, new Uri(WebApp.BaseAddress)
                                                                                                            , "api/InformeViaticos/ObtenerActividades");

                        respuestaSolicitudViatico.ListaInformeViatico     = lista;
                        respuestaSolicitudViatico.ListaFacturaViatico     = listaFacruras;
                        respuestaSolicitudViatico.InformeActividadViatico = Actividades;
                        InicializarMensaje(mensaje);
                        return(View(respuestaSolicitudViatico));
                    }
                }
                InicializarMensaje(null);
                return(View());
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
Пример #4
0
        public async Task <IActionResult> Index(int IdSolicitudViatico, string mensaje)
        {
            try
            {
                var sol = new ViewModelsSolicitudViaticos
                {
                    IdSolicitudViatico = IdSolicitudViatico
                };
                if (IdSolicitudViatico.ToString() != null)
                {
                    var respuestaSolicitudViatico = await apiServicio.ObtenerElementoAsync1 <ViewModelsSolicitudViaticos>(sol, new Uri(WebApp.BaseAddress),
                                                                                                                          "api/SolicitudViaticos/ObtenerSolicitudesViaticosporId");

                    //total informe
                    var informeViatico = new InformeViatico
                    {
                        IdSolicitudViatico = IdSolicitudViatico
                    };

                    var listaintforme = await apiServicio.ObtenerElementoAsync1 <List <InformeViatico> >(informeViatico, new Uri(WebApp.BaseAddress)
                                                                                                         , "api/InformeViaticos/ListarInformeViaticos");

                    ///Valor total de informe
                    var valortotaInforme = listaintforme.Sum(x => x.ValorEstimado);
                    ///total facturas
                    var facturas = new FacturaViatico()
                    {
                        IdSolicitudViatico = IdSolicitudViatico
                    };
                    var listaFacruras = await apiServicio.Listar <FacturaViatico>(facturas, new Uri(WebApp.BaseAddress)
                                                                                  , "api/FacturaViatico/ListarFacturas");

                    //calculo de reliquidacion

                    var valortotalfacturas = listaFacruras.Sum(x => x.ValorTotalFactura);

                    var valorCalculo = (respuestaSolicitudViatico.ValorEstimado * 70) / 100;

                    var EstadoReliquidacion = new ViewModelsSolicitudViaticos();

                    if ((listaFacruras.Count() > 0 || respuestaSolicitudViatico.ListaInformeViatico.Count > 0) && respuestaSolicitudViatico.Estado == 4)
                    {
                        EstadoReliquidacion = calculos(Convert.ToDecimal(valortotaInforme), valortotalfacturas, Convert.ToDecimal(valorCalculo), Convert.ToDecimal(respuestaSolicitudViatico.ValorEstimado));
                    }
                    respuestaSolicitudViatico.Reliquidacion = EstadoReliquidacion.Reliquidacion;
                    respuestaSolicitudViatico.Valor         = EstadoReliquidacion.Valor;
                    InicializarMensaje(mensaje);
                    return(View(respuestaSolicitudViatico));
                }
                return(BadRequest());
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
Пример #5
0
        public async Task <IActionResult> Create(int IdSolicitudViatico)
        {
            ViewData["ItemViatico"] = new SelectList(await apiServicio.Listar <ItemViatico>(new Uri(WebApp.BaseAddress), "api/ItemViaticos/ListarItemViaticos"), "IdItemViatico", "Descripcion");
            var facturaViatico = new FacturaViatico
            {
                IdSolicitudViatico = IdSolicitudViatico,
            };

            InicializarMensaje(null);
            return(View(facturaViatico));
        }
 public async Task <List <FacturaViatico> > ListarFacturas([FromBody] FacturaViatico facturaViatico)
 {
     //Persona persona = new Persona();
     try
     {
         return(await db.FacturaViatico.Where(x => x.IdSolicitudViatico == facturaViatico.IdSolicitudViatico).ToListAsync());
     }
     catch (Exception ex)
     {
         return(new List <FacturaViatico>());
     }
 }
        public async Task <Response> InsertarFacturas([FromBody] ViewModelFacturaViatico viewModelFacturaViatico)
        {
            try
            {
                var documenttransfer = new FacturaViatico
                {
                    NumeroFactura      = viewModelFacturaViatico.NumeroFactura,
                    IdSolicitudViatico = viewModelFacturaViatico.IdSolicitudViatico,
                    IdItemViatico      = viewModelFacturaViatico.IdItemViatico,
                    FechaFactura       = viewModelFacturaViatico.FechaFactura,
                    ValorTotalFactura  = viewModelFacturaViatico.ValorTotalFactura,
                    Observaciones      = viewModelFacturaViatico.Observaciones,
                    Url = viewModelFacturaViatico.Url,
                };

                var respuesta = Existe(documenttransfer);
                if (!respuesta.IsSuccess)
                {
                    db.FacturaViatico.Add(documenttransfer);
                    await db.SaveChangesAsync();

                    var id = documenttransfer.IdFacturaViatico;

                    await uploadFileService.UploadFile(viewModelFacturaViatico.Fichero, "FacturaViaticos", Convert.ToString(id), ".pdf");


                    var seleccionado = db.FacturaViatico.Find(documenttransfer.IdFacturaViatico);
                    seleccionado.Url = string.Format("{0}/{1}.{2}", "FacturaViaticos", Convert.ToString(id), "pdf");
                    db.FacturaViatico.Update(seleccionado);
                    db.SaveChanges();
                    return(new Response
                    {
                        IsSuccess = true,
                        Message = Mensaje.Satisfactorio
                    });
                }

                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.ExisteRegistro
                });
            }
            catch (Exception ex)
            {
                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.Error,
                });
            }
        }
        public async Task <IActionResult> Reliquidacion(int IdSolicitudViatico, string mensaje)
        {
            SolicitudViatico            sol      = new SolicitudViatico();
            ListaEmpleadoViewModel      empleado = new ListaEmpleadoViewModel();
            List <ReliquidacionViatico> lista    = new List <ReliquidacionViatico>();

            try
            {
                if (IdSolicitudViatico.ToString() != null)
                {
                    var respuestaSolicitudViatico = await apiServicio.SeleccionarAsync <Response>(IdSolicitudViatico.ToString(), new Uri(WebApp.BaseAddress),
                                                                                                  "api/SolicitudViaticos");

                    //InicializarMensaje(null);
                    if (respuestaSolicitudViatico.IsSuccess)
                    {
                        sol = JsonConvert.DeserializeObject <SolicitudViatico>(respuestaSolicitudViatico.Resultado.ToString());
                        var solicitudViatico = new SolicitudViatico
                        {
                            IdEmpleado = sol.IdEmpleado,
                        };

                        var respuestaEmpleado = await apiServicio.SeleccionarAsync <Response>(solicitudViatico.IdEmpleado.ToString(), new Uri(WebApp.BaseAddress),
                                                                                              "api/Empleados");

                        if (respuestaEmpleado.IsSuccess)
                        {
                            var emp            = JsonConvert.DeserializeObject <Empleado>(respuestaEmpleado.Resultado.ToString());
                            var empleadoEnviar = new Empleado
                            {
                                NombreUsuario = emp.NombreUsuario,
                            };

                            empleado = await apiServicio.ObtenerElementoAsync1 <ListaEmpleadoViewModel>(empleadoEnviar, new Uri(WebApp.BaseAddress), "api/Empleados/ObtenerDatosCompletosEmpleado");


                            lista = new List <ReliquidacionViatico>();
                            var itinerarioViatico = new ReliquidacionViatico
                            {
                                //IdSolicitudViatico = sol.IdSolicitudViatico
                                IdSolicitudViatico = IdSolicitudViatico
                            };
                            lista = await apiServicio.ObtenerElementoAsync1 <List <ReliquidacionViatico> >(itinerarioViatico, new Uri(WebApp.BaseAddress)
                                                                                                           , "api/ReliquidacionViaticos/ListarReliquidaciones");

                            //var informe = new InformeViatico()
                            //{
                            //    IdItinerarioViatico = IdItinerarioViatico

                            //};

                            //lista = await apiServicio.Listar<InformeViatico>(informe, new Uri(WebApp.BaseAddress)
                            //                                        , "api/InformeViaticos/ListarInformeViaticos");
                            var facturas = new FacturaViatico()
                            {
                                IdSolicitudViatico = IdSolicitudViatico
                            };

                            var listaFacruras = await apiServicio.Listar <FacturaViatico>(facturas, new Uri(WebApp.BaseAddress)
                                                                                          , "api/FacturaViatico/ListarFacturas");

                            HttpContext.Session.SetInt32(Constantes.IdSolicitudtinerario, IdSolicitudViatico);

                            //busca las actividades del informe
                            var informeViatico = new InformeViatico
                            {
                                IdSolicitudViatico = IdSolicitudViatico
                            };
                            var Actividades = await apiServicio.ObtenerElementoAsync1 <InformeActividadViatico>(informeViatico, new Uri(WebApp.BaseAddress)
                                                                                                                , "api/InformeViaticos/ObtenerActividades");

                            var descri = "";
                            if (Actividades == null)
                            {
                                descri = "";
                            }
                            else
                            {
                                descri = Actividades.Descripcion;
                            }
                            var informeViaticoViewModel = new ReliquidacionViaticoViewModel
                            {
                                SolicitudViatico       = sol,
                                ListaEmpleadoViewModel = empleado,
                                ReliquidacionViatico   = lista,
                                FacturaViatico         = listaFacruras,
                                IdSolicitudViatico     = sol.IdSolicitudViatico,
                                Descripcion            = descri
                            };

                            //var respuestaPais = await apiServicio.SeleccionarAsync<Response>(informeViaticoViewModel.SolicitudViatico.IdPais.ToString(), new Uri(WebApp.BaseAddress),
                            //                                         "api/Pais");
                            //var pais = JsonConvert.DeserializeObject<Pais>(respuestaPais.Resultado.ToString());
                            //var respuestaProvincia = await apiServicio.SeleccionarAsync<Response>(informeViaticoViewModel.SolicitudViatico.IdProvincia.ToString(), new Uri(WebApp.BaseAddress),
                            //                                         "api/Provincia");
                            //var provincia = JsonConvert.DeserializeObject<Provincia>(respuestaProvincia.Resultado.ToString());
                            //var respuestaCiudad = await apiServicio.SeleccionarAsync<Response>(informeViaticoViewModel.SolicitudViatico.IdCiudad.ToString(), new Uri(WebApp.BaseAddress),
                            //                                         "api/Ciudad");
                            //var ciudad = JsonConvert.DeserializeObject<Ciudad>(respuestaCiudad.Resultado.ToString());


                            //ViewData["Pais"] = pais.Nombre;
                            //ViewData["Provincia"] = provincia.Nombre;
                            //ViewData["Ciudad"] = ciudad.Nombre;
                            InicializarMensaje(mensaje);
                            return(View(informeViaticoViewModel));
                        }
                    }
                }
                InicializarMensaje(null);
                return(View());
            }
            catch (Exception exe)
            {
                return(BadRequest());
            }
        }
        public async Task <Response> PutFacturaViatico([FromRoute] int id, [FromBody] FacturaViatico facturaViatico)
        {
            try
            {
                var existe = Existe(facturaViatico);
                if (existe.IsSuccess)
                {
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = Mensaje.ExisteRegistro,
                    });
                }

                var facturaViaticoActualizar = await db.FacturaViatico.Where(x => x.IdFacturaViatico == id).FirstOrDefaultAsync();

                if (facturaViaticoActualizar != null)
                {
                    try
                    {
                        facturaViaticoActualizar.NumeroFactura      = facturaViatico.NumeroFactura;
                        facturaViaticoActualizar.FechaFactura       = facturaViatico.FechaFactura;
                        facturaViaticoActualizar.ValorTotalFactura  = facturaViatico.ValorTotalFactura;
                        facturaViaticoActualizar.FechaFactura       = facturaViatico.FechaFactura;
                        facturaViaticoActualizar.Observaciones      = facturaViatico.Observaciones;
                        facturaViaticoActualizar.IdItemViatico      = facturaViatico.IdItemViatico;
                        facturaViaticoActualizar.IdSolicitudViatico = facturaViatico.IdSolicitudViatico;
                        db.FacturaViatico.Update(facturaViaticoActualizar);
                        await db.SaveChangesAsync();

                        return(new Response
                        {
                            IsSuccess = true,
                            Message = Mensaje.Satisfactorio,
                        });
                    }
                    catch (Exception ex)
                    {
                        return(new Response
                        {
                            IsSuccess = false,
                            Message = Mensaje.Error,
                        });
                    }
                }

                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.ExisteRegistro
                });
            }
            catch (Exception)
            {
                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.Excepcion
                });
            }
        }
Пример #10
0
        public async Task <IActionResult> Reliquidacion(int IdSolicitudViatico, string mensaje)
        {
            try
            {
                var listaReliquidacion = new List <ReliquidacionViatico>();

                var sol = new ViewModelsSolicitudViaticos
                {
                    IdSolicitudViatico = IdSolicitudViatico
                };
                if (IdSolicitudViatico.ToString() != null)
                {
                    var respuestaSolicitudViatico = await apiServicio.ObtenerElementoAsync1 <ViewModelsSolicitudViaticos>(sol, new Uri(WebApp.BaseAddress),
                                                                                                                          "api/SolicitudViaticos/ObtenerSolicitudesViaticosporId");


                    var reliquidacionViatico = new ReliquidacionViatico
                    {
                        IdSolicitudViatico = IdSolicitudViatico
                    };
                    listaReliquidacion = await apiServicio.ObtenerElementoAsync1 <List <ReliquidacionViatico> >(reliquidacionViatico, new Uri(WebApp.BaseAddress)
                                                                                                                , "api/ReliquidacionViaticos/ListarReliquidaciones");

                    var valortotaReliquidacion = listaReliquidacion.Sum(x => x.ValorEstimado);

                    ///Informe
                    var informeViatico = new InformeViatico
                    {
                        IdSolicitudViatico = IdSolicitudViatico
                    };

                    var listaintforme = await apiServicio.ObtenerElementoAsync1 <List <InformeViatico> >(informeViatico, new Uri(WebApp.BaseAddress)
                                                                                                         , "api/InformeViaticos/ListarInformeViaticos");

                    ///Valor total de informe
                    var valortotaInforme = listaintforme.Sum(x => x.ValorEstimado);

                    ///total facturas
                    var facturas = new FacturaViatico()
                    {
                        IdSolicitudViatico = IdSolicitudViatico
                    };
                    var listaFacruras = await apiServicio.Listar <FacturaViatico>(facturas, new Uri(WebApp.BaseAddress)
                                                                                  , "api/FacturaViatico/ListarFacturas");

                    ///Valor total de Itinerario
                    var valortotalfacturas = listaFacruras.Sum(x => x.ValorTotalFactura);

                    var valorCalculo        = (respuestaSolicitudViatico.ValorEstimado * 70) / 100;
                    var EstadoReliquidacion = new ViewModelsSolicitudViaticos();
                    if ((listaFacruras.Count() > 0 || listaintforme.Count > 0) && respuestaSolicitudViatico.Estado == 4)
                    {
                        EstadoReliquidacion = calculos(Convert.ToDecimal(valortotaInforme), valortotalfacturas, Convert.ToDecimal(valorCalculo), Convert.ToDecimal(respuestaSolicitudViatico.ValorEstimado));
                    }
                    //HttpContext.Session.SetInt32(Constantes.IdSolicitudtinerario, IdSolicitudViatico);
                    //HttpContext.Session.SetInt32(Constantes.ValorReliquidacion, Convert.ToInt32(ValorReliquidacion.Valor));

                    ViewData["IdPresupuesto"] = new SelectList(await apiServicio.Listar <Presupuesto>(new Uri(WebApp.BaseAddress), "api/Presupuesto/ListarPresupuesto"), "IdPresupuesto", "NumeroPartidaPresupuestaria");
                    respuestaSolicitudViatico.ListaReliquidacionViatico = listaReliquidacion;
                    respuestaSolicitudViatico.Reliquidacion             = EstadoReliquidacion.Reliquidacion;
                    respuestaSolicitudViatico.Valor = EstadoReliquidacion.Valor;
                    InicializarMensaje(mensaje);
                    return(View(respuestaSolicitudViatico));
                }
                return(View());
            }

            catch (Exception exe)
            {
                return(BadRequest());
            }
        }