public Response Existe(RecepcionActivoFijoDetalle recepcionActivoFijoDetalle)
        {
            var nombreActivoFijo       = recepcionActivoFijoDetalle.ActivoFijo.Nombre.ToUpper().TrimEnd().TrimStart();
            var serieActivoFijo        = recepcionActivoFijoDetalle.ActivoFijo.Serie.ToUpper().TrimEnd().TrimStart();
            var ubicacionActivoFijo    = recepcionActivoFijoDetalle.ActivoFijo.Ubicacion.ToUpper().TrimEnd().TrimStart();
            var modeloActivoFijo       = recepcionActivoFijoDetalle.ActivoFijo.IdModelo;
            var unidadMedidaActivoFijo = recepcionActivoFijoDetalle.ActivoFijo.IdUnidadMedida;
            var fondoRecepcion         = recepcionActivoFijoDetalle.RecepcionActivoFijo.Fondo.ToUpper().TrimStart().TrimEnd();
            var ordenCompraRecepcion   = recepcionActivoFijoDetalle.RecepcionActivoFijo.OrdenCompra.ToUpper().TrimStart().TrimEnd();

            var loglevelrespuesta = db.RecepcionActivoFijoDetalle.Where(p => p.ActivoFijo.Nombre.ToUpper().TrimStart().TrimEnd() == nombreActivoFijo &&
                                                                        p.ActivoFijo.Serie.ToUpper().TrimStart().TrimEnd() == serieActivoFijo &&
                                                                        p.ActivoFijo.Ubicacion.ToUpper().TrimStart().TrimEnd() == ubicacionActivoFijo &&
                                                                        p.ActivoFijo.IdModelo == modeloActivoFijo &&
                                                                        p.ActivoFijo.IdUnidadMedida == unidadMedidaActivoFijo &&
                                                                        p.RecepcionActivoFijo.Fondo == fondoRecepcion &&
                                                                        p.RecepcionActivoFijo.OrdenCompra == ordenCompraRecepcion).FirstOrDefault();

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

            return(new Response
            {
                IsSuccess = false,
                Resultado = loglevelrespuesta,
            });
        }
        public async Task <Response> AsignarPoliza([FromBody] RecepcionActivoFijoDetalle recepcionActivoFijoDetalle)
        {
            try
            {
                var ActualizarActivoFijoDetalle = await db.RecepcionActivoFijoDetalle.Where(x => x.IdRecepcionActivoFijoDetalle == recepcionActivoFijoDetalle.IdRecepcionActivoFijoDetalle).FirstOrDefaultAsync();

                if (ActualizarActivoFijoDetalle != null)
                {
                    try
                    {
                        ActualizarActivoFijoDetalle.NumeroPoliza = recepcionActivoFijoDetalle.NumeroPoliza;
                        db.RecepcionActivoFijoDetalle.Update(ActualizarActivoFijoDetalle);
                        await db.SaveChangesAsync();

                        return(new Response
                        {
                            IsSuccess = true,
                            Message = Mensaje.ModeloInvalido,
                        });
                    }
                    catch (Exception ex)
                    {
                        await GuardarLogService.SaveLogEntry(new LogEntryTranfer
                        {
                            ApplicationName      = Convert.ToString(Aplicacion.SwRm),
                            ExceptionTrace       = ex,
                            Message              = Mensaje.Excepcion,
                            LogCategoryParametre = Convert.ToString(LogCategoryParameter.Critical),
                            LogLevelShortName    = Convert.ToString(LogLevelParameter.ERR),
                            UserName             = "",
                        });

                        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
                });
            }
        }
        public Response PostValidacionModeloRecepcionActivoFijo([FromBody] RecepcionActivoFijoDetalle recepcionActivoFijoDetalle)
        {
            ModelState.Remove("IdActivoFijo");
            ModelState.Remove("IdRecepcionActivoFijo");
            ModelState.Remove("ActivoFijo.IdCodigoActivoFijo");

            if (!ModelState.IsValid)
            {
                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.ModeloInvalido
                });
            }

            return(new Response
            {
                IsSuccess = true,
                Message = Mensaje.Satisfactorio
            });
        }
        public async Task <Response> PutRecepcionActivoFijo([FromRoute] int id, [FromBody] RecepcionActivoFijoDetalle recepcionActivoFijoDetalle)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = Mensaje.ModeloInvalido
                    });
                }
                var recepcionActivoFijoDetalleActualizar = await db.RecepcionActivoFijoDetalle.Include(c => c.Estado).Include(c => c.RecepcionActivoFijo).Include(c => c.ActivoFijo).ThenInclude(c => c.CodigoActivoFijo).SingleOrDefaultAsync(c => c.IdRecepcionActivoFijoDetalle == recepcionActivoFijoDetalle.IdRecepcionActivoFijoDetalle);

                if (recepcionActivoFijoDetalleActualizar != null)
                {
                    recepcionActivoFijoDetalleActualizar.RecepcionActivoFijo.FechaRecepcion       = recepcionActivoFijoDetalle.RecepcionActivoFijo.FechaRecepcion;
                    recepcionActivoFijoDetalleActualizar.RecepcionActivoFijo.Cantidad             = recepcionActivoFijoDetalle.RecepcionActivoFijo.Cantidad;
                    recepcionActivoFijoDetalleActualizar.RecepcionActivoFijo.ValidacionTecnica    = recepcionActivoFijoDetalle.RecepcionActivoFijo.ValidacionTecnica;
                    recepcionActivoFijoDetalleActualizar.RecepcionActivoFijo.Fondo                = recepcionActivoFijoDetalle.RecepcionActivoFijo.Fondo;
                    recepcionActivoFijoDetalleActualizar.RecepcionActivoFijo.OrdenCompra          = recepcionActivoFijoDetalle.RecepcionActivoFijo.OrdenCompra;
                    recepcionActivoFijoDetalleActualizar.RecepcionActivoFijo.IdLibroActivoFijo    = recepcionActivoFijoDetalle.RecepcionActivoFijo.IdLibroActivoFijo;
                    recepcionActivoFijoDetalleActualizar.RecepcionActivoFijo.IdEmpleado           = recepcionActivoFijoDetalle.RecepcionActivoFijo.IdEmpleado;
                    recepcionActivoFijoDetalleActualizar.RecepcionActivoFijo.IdSubClaseActivoFijo = recepcionActivoFijoDetalle.RecepcionActivoFijo.IdSubClaseActivoFijo;
                    recepcionActivoFijoDetalleActualizar.RecepcionActivoFijo.IdMotivoRecepcion    = recepcionActivoFijoDetalle.RecepcionActivoFijo.IdMotivoRecepcion;
                    recepcionActivoFijoDetalleActualizar.RecepcionActivoFijo.IdProveedor          = recepcionActivoFijoDetalle.RecepcionActivoFijo.IdProveedor;
                    recepcionActivoFijoDetalleActualizar.ActivoFijo.Nombre                            = recepcionActivoFijoDetalle.ActivoFijo.Nombre;
                    recepcionActivoFijoDetalleActualizar.ActivoFijo.Serie                             = recepcionActivoFijoDetalle.ActivoFijo.Serie;
                    recepcionActivoFijoDetalleActualizar.ActivoFijo.ValorCompra                       = recepcionActivoFijoDetalle.ActivoFijo.ValorCompra;
                    recepcionActivoFijoDetalleActualizar.ActivoFijo.Ubicacion                         = recepcionActivoFijoDetalle.ActivoFijo.Ubicacion;
                    recepcionActivoFijoDetalleActualizar.ActivoFijo.IdSubClaseActivoFijo              = recepcionActivoFijoDetalle.ActivoFijo.IdSubClaseActivoFijo;
                    recepcionActivoFijoDetalleActualizar.ActivoFijo.IdLibroActivoFijo                 = recepcionActivoFijoDetalle.ActivoFijo.IdLibroActivoFijo;
                    recepcionActivoFijoDetalleActualizar.ActivoFijo.IdCiudad                          = recepcionActivoFijoDetalle.ActivoFijo.IdCiudad;
                    recepcionActivoFijoDetalleActualizar.ActivoFijo.IdUnidadMedida                    = recepcionActivoFijoDetalle.ActivoFijo.IdUnidadMedida;
                    recepcionActivoFijoDetalleActualizar.ActivoFijo.IdCodigoActivoFijo                = recepcionActivoFijoDetalle.ActivoFijo.IdCodigoActivoFijo;
                    recepcionActivoFijoDetalleActualizar.ActivoFijo.IdModelo                          = recepcionActivoFijoDetalle.ActivoFijo.IdModelo;
                    recepcionActivoFijoDetalleActualizar.ActivoFijo.CodigoActivoFijo.CodigoBarras     = recepcionActivoFijoDetalle.ActivoFijo.CodigoActivoFijo.CodigoBarras;
                    recepcionActivoFijoDetalleActualizar.ActivoFijo.CodigoActivoFijo.Codigosecuencial = recepcionActivoFijoDetalle.ActivoFijo.CodigoActivoFijo.Codigosecuencial;
                    recepcionActivoFijoDetalleActualizar.IdEstado = recepcionActivoFijoDetalle.IdEstado;

                    db.RecepcionActivoFijoDetalle.Update(recepcionActivoFijoDetalleActualizar);
                    await db.SaveChangesAsync();

                    return(new Response
                    {
                        IsSuccess = true,
                        Message = Mensaje.Satisfactorio
                    });
                }
                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.Error
                });
            }
            catch (Exception)
            {
                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.Excepcion
                });
            }
        }
        public async Task <Response> PostRecepcionActivoFijo([FromBody] RecepcionActivoFijoDetalle recepcionActivoFijoDetalle)
        {
            try
            {
                ModelState.Remove("IdActivoFijo");
                ModelState.Remove("IdRecepcionActivoFijo");
                ModelState.Remove("ActivoFijo.IdCodigoActivoFijo");

                if (!ModelState.IsValid)
                {
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = Mensaje.ModeloInvalido
                    });
                }

                var respuesta = Existe(recepcionActivoFijoDetalle);
                if (!respuesta.IsSuccess)
                {
                    db.Entry(recepcionActivoFijoDetalle.RecepcionActivoFijo.SubClaseActivoFijo).State = EntityState.Unchanged;
                    db.Entry(recepcionActivoFijoDetalle.RecepcionActivoFijo.LibroActivoFijo).State    = EntityState.Unchanged;
                    await db.RecepcionActivoFijo.AddAsync(recepcionActivoFijoDetalle.RecepcionActivoFijo);

                    await db.SaveChangesAsync();

                    db.Entry(recepcionActivoFijoDetalle.ActivoFijo.Modelo).State       = EntityState.Unchanged;
                    db.Entry(recepcionActivoFijoDetalle.ActivoFijo.Ciudad).State       = EntityState.Unchanged;
                    db.Entry(recepcionActivoFijoDetalle.ActivoFijo.UnidadMedida).State = EntityState.Unchanged;
                    await db.ActivoFijo.AddAsync(recepcionActivoFijoDetalle.ActivoFijo);

                    await db.SaveChangesAsync();

                    db.Entry(recepcionActivoFijoDetalle.ActivoFijo).State          = EntityState.Unchanged;
                    db.Entry(recepcionActivoFijoDetalle.RecepcionActivoFijo).State = EntityState.Unchanged;
                    db.Entry(recepcionActivoFijoDetalle.Estado).State = EntityState.Unchanged;

                    db.RecepcionActivoFijoDetalle.Add(recepcionActivoFijoDetalle);
                    await db.SaveChangesAsync();

                    return(new Response
                    {
                        IsSuccess = true,
                        Message = Mensaje.Satisfactorio,
                        Resultado = recepcionActivoFijoDetalle
                    });
                }

                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.ExisteRegistro
                });
            }
            catch (Exception ex)
            {
                await GuardarLogService.SaveLogEntry(new LogEntryTranfer
                {
                    ApplicationName      = Convert.ToString(Aplicacion.SwRm),
                    ExceptionTrace       = ex,
                    Message              = Mensaje.Excepcion,
                    LogCategoryParametre = Convert.ToString(LogCategoryParameter.Critical),
                    LogLevelShortName    = Convert.ToString(LogLevelParameter.ERR),
                    UserName             = "",
                });

                return(new Response
                {
                    IsSuccess = false,
                    Message = Mensaje.Error,
                });
            }
        }
        public async Task <Response> PutModificarEstadoActivoFijo([FromRoute] int id, [FromBody] RecepcionActivoFijoDetalle recepcionActivoFijoDetalle)
        {
            try
            {
                var recepcionActivoFijoDetalleActualizar = await db.RecepcionActivoFijoDetalle.Where(x => x.IdRecepcionActivoFijoDetalle == id).FirstOrDefaultAsync();

                if (recepcionActivoFijoDetalleActualizar != null)
                {
                    try
                    {
                        recepcionActivoFijoDetalleActualizar.Estado = await db.Estado.SingleOrDefaultAsync(c => c.Nombre == recepcionActivoFijoDetalle.Estado.Nombre);

                        recepcionActivoFijoDetalleActualizar.IdEstado = recepcionActivoFijoDetalleActualizar.Estado.IdEstado;
                        db.RecepcionActivoFijoDetalle.Update(recepcionActivoFijoDetalleActualizar);
                        await db.SaveChangesAsync();

                        return(new Response
                        {
                            IsSuccess = true,
                            Message = Mensaje.Satisfactorio
                        });
                    }
                    catch (Exception ex)
                    {
                        await GuardarLogService.SaveLogEntry(new LogEntryTranfer
                        {
                            ApplicationName      = Convert.ToString(Aplicacion.SwRm),
                            ExceptionTrace       = ex,
                            Message              = Mensaje.Excepcion,
                            LogCategoryParametre = Convert.ToString(LogCategoryParameter.Critical),
                            LogLevelShortName    = Convert.ToString(LogLevelParameter.ERR),
                            UserName             = "",
                        });

                        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
                });
            }
        }