Beispiel #1
0
        public DatosTraspasoAF verSolicitudTraspaso(int idSolicitud)
        {
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                DatosTraspasoAF   odatos     = new DatosTraspasoAF();
                SolicitudTraspaso oSolicitud = bd.SolicitudTraspaso.Where(p => p.IdSolicitud == idSolicitud).First();
                ActivoFijo        oActivo    = bd.ActivoFijo.Where(p => p.IdBien == oSolicitud.IdBien).First();
                Empleado          oEmpleado  = bd.Empleado.Where(p => p.IdEmpleado == oActivo.IdResponsable).First();
                AreaDeNegocio     oArea      = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oEmpleado.IdAreaDeNegocio).First();
                Sucursal          oSucursal  = bd.Sucursal.Where(p => p.IdSucursal == oArea.IdSucursal).First();

                odatos.NoSolicitud         = oSolicitud.IdSolicitud;
                odatos.fechacadena         = oSolicitud.Fecha == null ? " " : ((DateTime)oSolicitud.Fecha).ToString("dd-MM-yyyy");
                odatos.folio               = oSolicitud.Folio;
                odatos.idbien              = (int)oSolicitud.IdBien;
                odatos.areanegocioactual   = oSolicitud.NuevaAreadenegocio;
                odatos.areanegocioanterior = oSolicitud.AreadenegocioAnterior;
                odatos.responsableactual   = oSolicitud.NuevoResponsable;
                odatos.responsableanterior = oSolicitud.ResponsableAnterior;
                odatos.Codigo              = oActivo.CorrelativoBien;
                odatos.Descripcion         = oActivo.Desripcion;
                odatos.idresponsable       = (int)oSolicitud.IdResponsable;
                odatos.acuerdo             = oSolicitud.Acuerdo;

                return(odatos);
            }
        }
 public AreasDeNegocioAF RecuperarAreaNegocio(int id)
 {
     using (BDAcaassAFContext bd = new BDAcaassAFContext())
     {
         AreasDeNegocioAF oAreaAF = new AreasDeNegocioAF();
         AreaDeNegocio    oArea   = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == id).First();
         oAreaAF.IdAreaNegocio = oArea.IdAreaNegocio;
         oAreaAF.Nombre        = oArea.Nombre;
         oAreaAF.IdSucursal    = (int)oArea.IdSucursal;
         oAreaAF.Correlativo   = oArea.Correlativo;
         return(oAreaAF);
     }
 }
Beispiel #3
0
        public int cambiarEstadoAceptoTraspaso([FromBody] TraspasoAF oTraspasoAF)
        {
            int respuesta = 0;

            try
            {
                using (BDAcaassAFContext bd = new BDAcaassAFContext())
                {
                    SolicitudTraspaso oSolicitudT       = bd.SolicitudTraspaso.Where(p => p.IdSolicitud == oTraspasoAF.idsolicitud).First();
                    ActivoFijo        oActivo           = bd.ActivoFijo.Where(p => p.IdBien == oSolicitudT.IdBien).First();
                    CodigoAF          oCodigo           = new CodigoAF();
                    Empleado          oEmpleadoNuevo    = bd.Empleado.Where(p => p.IdEmpleado == oTraspasoAF.idEmpleado).First();
                    Empleado          oEmpleadoAnterior = bd.Empleado.Where(p => p.IdEmpleado == oActivo.IdResponsable).First();
                    AreaDeNegocio     oarea             = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oEmpleadoNuevo.IdAreaDeNegocio).First();
                    Sucursal          osucursal         = bd.Sucursal.Where(p => p.IdSucursal == oarea.IdSucursal).First();
                    Clasificacion     oclasificacion    = bd.Clasificacion.Where(p => p.IdClasificacion == oActivo.IdClasificacion).First();
                    if (oEmpleadoNuevo.IdAreaDeNegocio == oEmpleadoAnterior.IdAreaDeNegocio)
                    {
                        oActivo.EstadoActual      = 1;
                        oSolicitudT.Acuerdo       = oTraspasoAF.acuerdo;
                        oSolicitudT.Fechatraspaso = Convert.ToDateTime(oTraspasoAF.fechasolicitud);
                        oActivo.IdResponsable     = (int)oSolicitudT.IdResponsable;
                        bd.SaveChanges();
                        respuesta = 1;
                    }
                    else
                    {
                        string   corre  = oActivo.CorrelativoBien;
                        string[] slices = corre.Split("-");
                        oCodigo.CorrelativoSucursal      = osucursal.Correlativo;
                        oCodigo.CorrelativoArea          = oarea.Correlativo;
                        oCodigo.CorrelativoClasificacion = oclasificacion.Correlativo;
                        oActivo.CorrelativoBien          = oCodigo.CorrelativoSucursal + "-" + oCodigo.CorrelativoArea + "-" + oCodigo.CorrelativoClasificacion + "-" + slices[3];
                        oActivo.EstadoActual             = 1;
                        oSolicitudT.Acuerdo       = oTraspasoAF.acuerdo;
                        oSolicitudT.Fechatraspaso = Convert.ToDateTime(oTraspasoAF.fechasolicitud);
                        oActivo.IdResponsable     = (int)oSolicitudT.IdResponsable; //para hacer el cambio de ids
                        bd.SaveChanges();
                        respuesta = 1;
                    }
                }
            }
            catch (Exception ex)
            {
                respuesta = 0;
            }
            return(respuesta);
        }
Beispiel #4
0
        public InformeMatenimientoAF datosHistorial(int idbien)
        {
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                InformeMatenimientoAF odatos  = new InformeMatenimientoAF();
                ActivoFijo            oActivo = bd.ActivoFijo.Where(p => p.IdBien == idbien).First();

                odatos.descripcion = oActivo.Desripcion;
                odatos.codigo      = oActivo.CorrelativoBien;
                odatos.idBien      = oActivo.IdBien;
                Empleado      oempleado = bd.Empleado.Where(p => p.IdEmpleado == oActivo.IdResponsable).First();
                AreaDeNegocio oArea     = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oempleado.IdAreaDeNegocio).First();
                odatos.encargado     = oempleado.Nombres + " " + oempleado.Apellidos;
                odatos.areadenegocio = oArea.Nombre;
                return(odatos);
            }
        }
Beispiel #5
0
        public DatosGenerlesAF DatosGenerales(int id)
        {
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                DatosGenerlesAF   oDatosF     = new DatosGenerlesAF();
                ActivoFijo        oActivo     = bd.ActivoFijo.Where(p => p.IdBien == id).First();
                FormularioIngreso oFOrmulario = bd.FormularioIngreso.Where(p => p.NoFormulario == oActivo.NoFormulario).First();
                Empleado          oEmpleado   = bd.Empleado.Where(p => p.IdEmpleado == oActivo.IdResponsable).First();
                AreaDeNegocio     oArea       = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oEmpleado.IdAreaDeNegocio).First();
                Sucursal          oSucursal   = bd.Sucursal.Where(p => p.IdSucursal == oArea.IdSucursal).First();
                if (oActivo.IdProveedor != null)
                {
                    Proveedor oProveedor = bd.Proveedor.Where(p => p.IdProveedor == oActivo.IdProveedor).First();
                    oDatosF.ProvDon   = oProveedor.Nombre;
                    oDatosF.IsProvDon = 1;
                }
                else
                {
                    Donantes oDonante = bd.Donantes.Where(p => p.IdDonante == oActivo.IdDonante).First();
                    oDatosF.ProvDon   = oDonante.Nombre;
                    oDatosF.IsProvDon = 2;
                }
                if (oActivo.IdProveedor == null && oActivo.IdDonante == null)
                {
                    oDatosF.ProvDon = "";
                }

                TarjetaDepreciacion oTarjeta = bd.TarjetaDepreciacion.Where(p => p.IdBien == oActivo.IdBien).Last();

                oDatosF.idBien          = (int)oActivo.IdBien;
                oDatosF.descripcion     = oActivo.Desripcion;
                oDatosF.fecha           = oFOrmulario.FechaIngreso == null ? " " : ((DateTime)oFOrmulario.FechaIngreso).ToString("dd-MM-yyyy");
                oDatosF.codigo          = oActivo.CorrelativoBien;
                oDatosF.valorAquisicion = oActivo.ValorAdquicicion.ToString();
                oDatosF.Respondable     = oEmpleado.Nombres + " " + oEmpleado.Apellidos;
                oDatosF.Ubicacion       = oArea.Nombre + " - " + oSucursal.Nombre;
                oDatosF.valorActual     = oTarjeta.ValorActual.ToString();
                oDatosF.NoSerie         = oActivo.NoSerie;
                oDatosF.VidaUtil        = oActivo.VidaUtil.ToString();
                oDatosF.Observaciones   = oFOrmulario.Observaciones;

                oDatosF.foto = oActivo.Foto;
                return(oDatosF);
            }
        }
Beispiel #6
0
        public int validarArea(int idSucursal)
        {
            int res = 0;

            try
            {
                using (BDAcaassAFContext bd = new BDAcaassAFContext())
                {
                    AreaDeNegocio oArea = bd.AreaDeNegocio.Where(p => p.IdSucursal == idSucursal && p.Dhabilitado == 1).First();
                    res = 1;
                }
            }
            catch (Exception ex)
            {
                res = 0;
            }
            return(res);
        }
Beispiel #7
0
        public BienesSolicitadosMttoAF DatosSolicitud(int idSolicitud)
        {
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                BienesSolicitadosMttoAF odatos     = new BienesSolicitadosMttoAF();
                SolicitudMantenimiento  osolicitud = bd.SolicitudMantenimiento.Where(p => p.IdSolicitud == idSolicitud).First();

                odatos.NoSolicitud = "00" + osolicitud.IdSolicitud.ToString();
                odatos.fechacadena = osolicitud.Fecha == null ? " " : ((DateTime)osolicitud.Fecha).ToString("dd-MM-yyyy");
                BienMantenimiento obienMtto = bd.BienMantenimiento.Where(p => p.IdSolicitud == osolicitud.IdSolicitud).First();
                ActivoFijo        obien     = bd.ActivoFijo.Where(p => p.IdBien == obienMtto.IdBien).First();
                Empleado          oempleado = bd.Empleado.Where(p => p.IdEmpleado == obien.IdResponsable).First();
                AreaDeNegocio     oArea     = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oempleado.IdAreaDeNegocio).First();
                odatos.jefe        = oempleado.Nombres + " " + oempleado.Apellidos;
                odatos.areanegocio = oArea.Nombre;
                return(odatos);
            }
        }
Beispiel #8
0
        public DatosGeneralesEmpleadoAF DatosGeneralesEmpleado(int idempleado)
        {
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                DatosGeneralesEmpleadoAF oDatosAF = new DatosGeneralesEmpleadoAF();
                Empleado      oEmpleado           = bd.Empleado.Where(p => p.IdEmpleado == idempleado).First();
                Cargos        oCargo    = bd.Cargos.Where(p => p.IdCargo == oEmpleado.IdCargo).First();
                AreaDeNegocio oArea     = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oEmpleado.IdAreaDeNegocio).First();
                Sucursal      oSucursal = bd.Sucursal.Where(p => p.IdSucursal == oArea.IdSucursal).First();


                oDatosAF.dui              = oEmpleado.Dui;
                oDatosAF.nombres          = oEmpleado.Nombres;
                oDatosAF.apellidos        = oEmpleado.Apellidos;
                oDatosAF.direccion        = oEmpleado.Direccion;
                oDatosAF.telefono         = oEmpleado.Telefono;
                oDatosAF.telefonopersonal = oEmpleado.TelefonoPersonal;
                oDatosAF.email            = oEmpleado.Email;

                if (oCargo == null)
                {
                    oDatosAF.cargo = "";
                }
                else
                {
                    oDatosAF.cargo = oCargo.Cargo;
                }

                if (oArea == null)
                {
                    oDatosAF.nombrearea     = "";
                    oDatosAF.nombresucursal = "";
                }
                else
                {
                    oDatosAF.nombrearea     = oArea.Nombre;
                    oDatosAF.nombresucursal = oSucursal.Nombre;
                }

                oDatosAF.ubicacion = oSucursal.Ubicacion;

                return(oDatosAF);
            }
        }
        public int eliminarArea(int idArea)
        {
            int res;

            try
            {
                using (BDAcaassAFContext bd = new BDAcaassAFContext())
                {
                    AreaDeNegocio oArea = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == idArea).First();
                    oArea.Dhabilitado = 0;
                    bd.SaveChanges();
                    res = 1;
                }
            }
            catch (Exception ex)
            {
                res = 0;
            }
            return(res);
        }
Beispiel #10
0
        public int validarRefereciaActivo(int idSucursal)
        {
            int res = 0;

            try
            {
                using (BDAcaassAFContext bd = new BDAcaassAFContext())
                {
                    AreaDeNegocio oArea     = bd.AreaDeNegocio.Where(p => p.IdSucursal == idSucursal && p.Dhabilitado == 1).First();
                    Empleado      Oempleado = bd.Empleado.Where(p => p.IdAreaDeNegocio == oArea.IdAreaNegocio && p.Dhabilitado == 1).First();
                    ActivoFijo    oActivo   = bd.ActivoFijo.Where(p => p.IdResponsable == Oempleado.IdEmpleado && p.EstadoActual != 0).First();
                    res = 1;
                }
            }
            catch (Exception ex)
            {
                res = 0;
            }
            return(res);
        }
Beispiel #11
0
        public DetallesUsuariosAF RecuperarDetallesusuarios(int id)
        {
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                DetallesUsuariosAF oUsuarioAF = new DetallesUsuariosAF();
                Usuario            oUsuario   = bd.Usuario.Where(p => p.IdUsuario == id).First();
                Empleado           oEmpleado  = bd.Empleado.Where(p => p.IdEmpleado == oUsuario.IdEmpleado).FirstOrDefault();
                TipoUsuario        oTipo      = bd.TipoUsuario.Where(p => p.IdTipoUsuario == oUsuario.IdTipoUsuario).FirstOrDefault();
                AreaDeNegocio      oArea      = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oEmpleado.IdAreaDeNegocio).FirstOrDefault();
                Sucursal           oSucursal  = bd.Sucursal.Where(p => p.IdSucursal == oArea.IdSucursal).FirstOrDefault();

                oUsuarioAF.nombre        = oEmpleado.Nombres + " " + oEmpleado.Apellidos;
                oUsuarioAF.nombreusuario = oUsuario.NombreUsuario;
                oUsuarioAF.tipousuario   = oTipo.TipoUsuario1;
                oUsuarioAF.sucursal      = oSucursal.Nombre;
                oUsuarioAF.area          = oArea.Nombre;

                return(oUsuarioAF);
            }
        }
        public int modificarArea([FromBody] AreasDeNegocioAF oAreaAF)
        {
            int rpta = 0;

            try
            {
                using (BDAcaassAFContext bd = new BDAcaassAFContext())
                {
                    AreaDeNegocio oArea = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oAreaAF.IdAreaNegocio).First();
                    oArea.IdAreaNegocio = oAreaAF.IdAreaNegocio;
                    oArea.Nombre        = oAreaAF.Nombre;
                    oArea.IdSucursal    = oAreaAF.IdSucursal;
                    oArea.Correlativo   = oAreaAF.Correlativo;
                    bd.SaveChanges();
                    rpta = 1;
                }
            }
            catch (Exception ex)
            {
                rpta = 0;
            }
            return(rpta);
        }
Beispiel #13
0
        public int guardarSolicitudTraspaso([FromBody] SolicitudTraspasoAF oSolicitudAF)
        {
            int respuesta = 0;

            try
            {
                using (BDAcaassAFContext bd = new BDAcaassAFContext())
                {
                    SolicitudTraspaso oSolicitud = new SolicitudTraspaso();
                    oSolicitud.IdSolicitud = oSolicitudAF.idsolicitud;
                    oSolicitud.IdBien      = oSolicitudAF.idbien;
                    oSolicitud.Fecha       = oSolicitudAF.fechasolicitud;
                    oSolicitud.Folio       = oSolicitudAF.folio;
                    oSolicitud.Descripcion = oSolicitudAF.descripcion;
                    //en la bd se llaman responsableanterior y area anterior pero se guardarán los nuevos porque los anteriores serian los actuales.
                    //oSolicitud.NuevaAreadenegocio = oSolicitudAF.nuevaarea;
                    oSolicitud.NuevoResponsable      = oSolicitudAF.nuevoresponsable;
                    oSolicitud.AreadenegocioAnterior = oSolicitudAF.areaanterior;
                    oSolicitud.ResponsableAnterior   = oSolicitudAF.responsableanterior;
                    oSolicitud.IdResponsable         = oSolicitudAF.idresponsable;
                    Empleado      oEmpleado = bd.Empleado.Where(p => p.IdEmpleado == oSolicitud.IdResponsable).First();
                    AreaDeNegocio oArea     = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oEmpleado.IdAreaDeNegocio).First();
                    Sucursal      oSucursal = bd.Sucursal.Where(p => p.IdSucursal == oArea.IdSucursal).First();
                    oSolicitud.NuevoResponsable   = oEmpleado.Nombres + " " + oEmpleado.Apellidos;
                    oSolicitud.NuevaAreadenegocio = oArea.Nombre + " - " + oSucursal.Nombre + " - " + oSucursal.Ubicacion;
                    oSolicitud.Estado             = 1;
                    bd.SolicitudTraspaso.Add(oSolicitud);
                    bd.SaveChanges();
                    respuesta = 1;
                }
            }
            catch (Exception ex)
            {
                respuesta = 0;
            }
            return(respuesta);
        }
        public int aregarMarca([FromBody] AreasDeNegocioAF oAreaAF)
        {
            int res = 0;

            try
            {
                using (BDAcaassAFContext bd = new BDAcaassAFContext()) {
                    AreaDeNegocio oArea = new AreaDeNegocio();
                    oArea.IdAreaNegocio = oAreaAF.IdAreaNegocio;
                    oArea.Nombre        = oAreaAF.Nombre;
                    oArea.IdSucursal    = oAreaAF.IdSucursal;
                    oArea.Correlativo   = oAreaAF.Correlativo;
                    oArea.Dhabilitado   = 1;
                    bd.AreaDeNegocio.Add(oArea);
                    bd.SaveChanges();
                    res = 1;
                }
            }
            catch (Exception)
            {
                res = 0;
            }
            return(res);
        }
Beispiel #15
0
 public IEnumerable <CuadroControlExcelAF> listarCuadroControlJefeExcel(int idJefe)
 {
     using (BDAcaassAFContext bd = new BDAcaassAFContext())
     {
         Empleado      oempleado = bd.Empleado.Where(p => p.IdEmpleado == idJefe).FirstOrDefault();
         AreaDeNegocio oarea     = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oempleado.IdAreaDeNegocio).FirstOrDefault();
         IEnumerable <CuadroControlExcelAF> listacuadro = (
             from tarjeta in bd.TarjetaDepreciacion
             group tarjeta by tarjeta.IdBien into bar
             join cuadro in bd.ActivoFijo
             on bar.FirstOrDefault().IdBien equals cuadro.IdBien
             join noFormulario in bd.FormularioIngreso
             on cuadro.NoFormulario equals noFormulario.NoFormulario
             join clasif in bd.Clasificacion
             on cuadro.IdClasificacion equals clasif.IdClasificacion
             join resposable in bd.Empleado
             on cuadro.IdResponsable equals resposable.IdEmpleado
             join area in bd.AreaDeNegocio
             on resposable.IdAreaDeNegocio equals area.IdAreaNegocio
             where area.IdAreaNegocio == oarea.IdAreaNegocio
             //where cuadro.EstadoActual == 1 && cuadro.EstaAsignado == 1
             select new CuadroControlExcelAF()
         {
             codigo = cuadro.CorrelativoBien,
             descripcion = cuadro.Desripcion,
             valorAdquisicion = (double)cuadro.ValorAdquicicion,
             fechaAdquisicion = noFormulario.FechaIngreso == null ? " " : ((DateTime)noFormulario.FechaIngreso).ToString("dd-MM-yyyy"),
             valoractual = Math.Round(((double)bar.OrderByDescending(x => x.IdTarjeta).First().ValorActual), 2),
             depreciacion = Math.Round(((double)bar.OrderByDescending(x => x.IdTarjeta).First().DepreciacionAnual), 2),
             depreciacionAcumulada = Math.Round(((double)bar.Sum(x => x.DepreciacionAnual)), 2),
             ubicacion = area.Nombre,
             responsable = resposable.Nombres + " " + resposable.Apellidos
         }).ToList();
         return(listacuadro);
     }
 }
        public async Task <IActionResult> activosEnManteJefePdf(int idJefe)
        {
            Document doc = new Document(PageSize.Letter);

            doc.SetMargins(40f, 40f, 40f, 40f);
            MemoryStream ms     = new MemoryStream();
            PdfWriter    writer = PdfWriter.GetInstance(doc, ms);

            //Instanciamos la clase para el paginado y la fecha de impresión
            var pe = new PageEventHelper();

            writer.PageEvent = pe;

            doc.AddAuthor("Asgard");
            doc.AddTitle("Reporte activos en mantenimiento");
            doc.Open();

            //Inicia cuerpo del reporte

            //Estilo y fuente personalizada
            BaseFont fuente = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo = new iTextSharp.text.Font(fuente, 12f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));
            BaseFont             fuente2 = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo2 = new iTextSharp.text.Font(fuente2, 10f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));
            BaseFont             fuente3  = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo3 = new iTextSharp.text.Font(fuente3, 15f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));
            BaseFont             fuente4  = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo4 = new iTextSharp.text.Font(fuente4, 11f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));

            //Para las celdas
            BaseFont fuente5 = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, true);

            iTextSharp.text.Font parrafo5 = new iTextSharp.text.Font(fuente5, 10f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));


            //Encabezado
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                CooperativaAF oCooperativaAF = new CooperativaAF();
                Cooperativa   oCooperativa   = bd.Cooperativa.Where(p => p.Dhabilitado == 1).First();
                oCooperativaAF.idcooperativa = oCooperativa.IdCooperativa;
                oCooperativaAF.nombre        = oCooperativa.Nombre;
                oCooperativaAF.descripcion   = oCooperativa.Descripcion;

                //Se agrega el encabezado
                var tbl1 = new PdfPTable(new float[] { 11f, 89f })
                {
                    WidthPercentage = 100f
                };
                tbl1.AddCell(new PdfPCell(new Phrase(" ", parrafo2))
                {
                    Border = 0, Rowspan = 2
                });
                tbl1.AddCell(new PdfPCell(new Phrase(oCooperativa.Descripcion.ToUpper(), parrafo2))
                {
                    Border = 0, HorizontalAlignment = 1
                });
                tbl1.AddCell(new PdfPCell(new Phrase(oCooperativa.Nombre.ToUpper(), parrafo3))
                {
                    Border = 0, HorizontalAlignment = 1
                });
                doc.Add(tbl1);
                doc.Add(new Phrase("\n"));
            }
            doc.Add(new Phrase("\n"));
            //Línea separadora
            Chunk linea = new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(1f, 100f, BaseColor.Black, Element.ALIGN_CENTER, 1f));

            doc.Add(linea);
            doc.Add(new Paragraph("REPORTE DE ACTIVOS EN MANTENIMIENTO", parrafo)
            {
                Alignment = Element.ALIGN_CENTER
            });

            //Espacio en blanco
            doc.Add(Chunk.Newline);

            //Agregamos una tabla
            var tbl = new PdfPTable(new float[] { 25f, 40f, 40f, 40f })
            {
                WidthPercentage = 100f
            };
            var c1 = new PdfPCell(new Phrase("CÓDIGO", parrafo2));
            var c2 = new PdfPCell(new Phrase("DESCRIPCIÓN", parrafo2));
            var c3 = new PdfPCell(new Phrase("RAZONES DE MANTENIMIENTO", parrafo2));
            var c4 = new PdfPCell(new Phrase("PERÍODO DE MANTENIMIENTO", parrafo2));

            //Agregamos a la tabla las celdas
            tbl.AddCell(c1);
            tbl.AddCell(c2);
            tbl.AddCell(c3);
            tbl.AddCell(c4);

            //Extraemos de la base y llenamos las celdas
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                Empleado      oempleado = bd.Empleado.Where(p => p.IdEmpleado == idJefe).FirstOrDefault();
                AreaDeNegocio oarea     = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oempleado.IdAreaDeNegocio).FirstOrDefault();
                IEnumerable <BienesSolicitadosMttoAF> lista = (from bienMtto in bd.BienMantenimiento
                                                               join activo in bd.ActivoFijo
                                                               on bienMtto.IdBien equals activo.IdBien
                                                               join solicitud in bd.SolicitudMantenimiento
                                                               on bienMtto.IdSolicitud equals solicitud.IdSolicitud
                                                               join resposable in bd.Empleado
                                                               on activo.IdResponsable equals resposable.IdEmpleado
                                                               join area in bd.AreaDeNegocio
                                                               on resposable.IdAreaDeNegocio equals area.IdAreaNegocio
                                                                                                                                                                   //  join informe in bd.InformeMantenimiento
                                                                                                                                                                   // on bienMtto.IdMantenimiento equals informe.IdMantenimiento
                                                               where activo.EstadoActual == 3 && bienMtto.Estado == 1 && area.IdAreaNegocio == oarea.IdAreaNegocio //ELEMENTO 2 LISTA
                                                               select new BienesSolicitadosMttoAF
                {
                    idBien = activo.IdBien,
                    idmantenimiento = bienMtto.IdMantenimiento,
                    estadoActual = (int)activo.EstadoActual,
                    Codigo = activo.CorrelativoBien,
                    Descripcion = activo.Desripcion,
                    Periodo = bienMtto.PeriodoMantenimiento,
                    Razon = bienMtto.RazonMantenimiento,
                    fechacadena = solicitud.Fecha == null ? " " : ((DateTime)solicitud.Fecha).ToString("dd-MM-yyyy"),
                }).ToList();
                foreach (var activosmante in lista)
                {
                    c1.Phrase = new Phrase(activosmante.Codigo, parrafo5);
                    c2.Phrase = new Phrase(activosmante.Descripcion, parrafo5);
                    c3.Phrase = new Phrase(activosmante.Razon, parrafo5);
                    c4.Phrase = new Phrase(activosmante.Periodo, parrafo5);



                    //Agregamos a la tabla
                    tbl.AddCell(c1);
                    tbl.AddCell(c2);
                    tbl.AddCell(c3);
                    tbl.AddCell(c4);
                }

                //INICIO DE ADICIÓN DE LOGO
                CooperativaAF oCooperativaAF = new CooperativaAF();

                Cooperativa oCooperativa = bd.Cooperativa.Where(p => p.Dhabilitado == 1).First();
                oCooperativaAF.idcooperativa = oCooperativa.IdCooperativa;


                try
                {
                    iTextSharp.text.Image logo = null;
                    logo             = iTextSharp.text.Image.GetInstance(oCooperativa.Logo.ToString());
                    logo.Alignment   = iTextSharp.text.Image.ALIGN_LEFT;
                    logo.Border      = iTextSharp.text.Rectangle.NO_BORDER;
                    logo.BorderColor = iTextSharp.text.BaseColor.White;
                    logo.ScaleToFit(170f, 100f);

                    float ancho      = logo.Width;
                    float alto       = logo.Height;
                    float proporcion = alto / ancho;

                    logo.ScaleAbsoluteWidth(80);
                    logo.ScaleAbsoluteHeight(80 * proporcion);

                    logo.SetAbsolutePosition(40f, 695f);

                    doc.Add(logo);
                }
                catch (DocumentException dex)
                {
                    //log exception here
                }

                //FIN DE ADICIÓN DE LOGO
            }
            doc.Add(tbl);
            writer.Close();
            doc.Close();
            ms.Seek(0, SeekOrigin.Begin);
            return(File(ms, "application/pdf"));
        }
        public async Task <IActionResult> historialmantenimientopdf(int idbien)
        {
            Document doc = new Document(PageSize.Letter);

            doc.SetMargins(40f, 40f, 40f, 40f);
            MemoryStream ms     = new MemoryStream();
            PdfWriter    writer = PdfWriter.GetInstance(doc, ms);

            //Instanciamos la clase para el paginado y la fecha de impresión
            var pe = new PageEventHelper();

            writer.PageEvent = pe;

            doc.AddAuthor("Asgard");
            doc.AddTitle("Reporte historial mantenimiento");
            doc.Open();

            //Inicia cuerpo del reporte

            //Estilo y fuente personalizada
            BaseFont fuente = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo = new iTextSharp.text.Font(fuente, 12f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));
            BaseFont             fuente2 = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo2 = new iTextSharp.text.Font(fuente2, 11f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));
            BaseFont             fuente3  = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo3 = new iTextSharp.text.Font(fuente3, 15f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));
            BaseFont             fuente4  = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo4 = new iTextSharp.text.Font(fuente4, 11f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));

            //Para las celdas
            BaseFont fuente5 = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, true);

            iTextSharp.text.Font parrafo5 = new iTextSharp.text.Font(fuente5, 10f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));

            //Fuente para tarjeta
            BaseFont fuente6 = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo6 = new iTextSharp.text.Font(fuente2, 9f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));
            BaseFont             fuente7  = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo7 = new iTextSharp.text.Font(fuente, 9f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));

            BaseFont fuente8 = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo8 = new iTextSharp.text.Font(fuente2, 9f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));


            //Encabezado
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                CooperativaAF oCooperativaAF = new CooperativaAF();
                Cooperativa   oCooperativa   = bd.Cooperativa.Where(p => p.Dhabilitado == 1).First();
                oCooperativaAF.idcooperativa = oCooperativa.IdCooperativa;
                oCooperativaAF.nombre        = oCooperativa.Nombre;
                oCooperativaAF.descripcion   = oCooperativa.Descripcion;

                //Se agrega el encabezado
                var tbl1 = new PdfPTable(new float[] { 11f, 89f })
                {
                    WidthPercentage = 100f
                };
                tbl1.AddCell(new PdfPCell(new Phrase(" ", parrafo2))
                {
                    Border = 0, Rowspan = 2
                });
                tbl1.AddCell(new PdfPCell(new Phrase(oCooperativa.Descripcion.ToUpper(), parrafo2))
                {
                    Border = 0, HorizontalAlignment = 1
                });
                tbl1.AddCell(new PdfPCell(new Phrase(oCooperativa.Nombre.ToUpper(), parrafo3))
                {
                    Border = 0, HorizontalAlignment = 1
                });
                doc.Add(tbl1);
                doc.Add(new Phrase("\n"));
            }
            doc.Add(new Phrase("\n"));
            //Línea separadora
            Chunk linea = new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(1f, 100f, BaseColor.Black, Element.ALIGN_CENTER, 1f));

            doc.Add(linea);
            doc.Add(new Paragraph("REPORTE HISTORIAL DE MANTENIMIENTO ", parrafo)
            {
                Alignment = Element.ALIGN_CENTER
            });

            //Espacio en blanco
            doc.Add(Chunk.Newline);

            //Extraemos de la base y llenamos las celdas
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                InformeMatenimientoAF odatos  = new InformeMatenimientoAF();
                ActivoFijo            oActivo = bd.ActivoFijo.Where(p => p.IdBien == idbien).First();

                odatos.descripcion = oActivo.Desripcion;
                odatos.codigo      = oActivo.CorrelativoBien;
                Empleado      oempleado = bd.Empleado.Where(p => p.IdEmpleado == oActivo.IdResponsable).First();
                AreaDeNegocio oArea     = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oempleado.IdAreaDeNegocio).First();
                odatos.encargado     = oempleado.Nombres + " " + oempleado.Apellidos;
                odatos.areadenegocio = oArea.Nombre;
                // return odatos;


                //Cuerpo de la tarjeta
                var tbl1 = new PdfPTable(new float[] { 4f, 7f, 5f, 7f })
                {
                    WidthPercentage = 100f
                };
                tbl1.AddCell(new PdfPCell(new Phrase("Correlativo: ", parrafo6))
                {
                    Border = 0, Rowspan = 2
                });
                tbl1.AddCell(new PdfPCell(new Phrase(odatos.codigo, parrafo7))
                {
                    Border = 0
                });
                tbl1.AddCell(new PdfPCell(new Phrase("Descripción de activo: ", parrafo6))
                {
                    Border = 0, Rowspan = 2
                });
                tbl1.AddCell(new PdfPCell(new Phrase(odatos.descripcion, parrafo7))
                {
                    Border = 0
                });


                var tbl2 = new PdfPTable(new float[] { 4f, 7f, 5f, 7f })
                {
                    WidthPercentage = 100f
                };
                tbl2.AddCell(new PdfPCell(new Phrase("Encargado actual: ", parrafo6))
                {
                    Border = 0, Rowspan = 2
                });
                tbl2.AddCell(new PdfPCell(new Phrase(odatos.encargado, parrafo7))
                {
                    Border = 0
                });
                tbl2.AddCell(new PdfPCell(new Phrase("Área de negocio actual: ", parrafo6))
                {
                    Border = 0, Rowspan = 2
                });
                tbl2.AddCell(new PdfPCell(new Phrase(odatos.areadenegocio, parrafo7))
                {
                    Border = 0
                });



                doc.Add(tbl1);
                doc.Add(Chunk.Newline);
                doc.Add(tbl2);
                doc.Add(Chunk.Newline);


                //Tabla de transacciones
                // doc.Add(new Paragraph("TABLA HISTORIAL DE TRASPASOS", parrafo2) { Alignment = Element.ALIGN_CENTER });


                //Agregamos una tabla
                //Agregamos una tabla
                var tbl = new PdfPTable(new float[] { 25f, 30f, 25f, 30f, 20f, 40f })
                {
                    WidthPercentage = 100f
                };
                var c1 = new PdfPCell(new Phrase("FECHA", parrafo2));
                var c2 = new PdfPCell(new Phrase("TÉCNICO", parrafo2));
                var c3 = new PdfPCell(new Phrase("MANO DE OBRA", parrafo2));
                var c4 = new PdfPCell(new Phrase("MATERIALES", parrafo2));
                var c5 = new PdfPCell(new Phrase("COSTO TOTAL", parrafo2));
                var c6 = new PdfPCell(new Phrase("DESCRIPCIÓN", parrafo2));

                //Agregamos a la tabla las celdas
                tbl.AddCell(c1);
                tbl.AddCell(c2);
                tbl.AddCell(c3);
                tbl.AddCell(c4);
                tbl.AddCell(c5);
                tbl.AddCell(c6);


                IEnumerable <InformeMatenimientoAF> lista = (from tecnico in bd.Tecnicos
                                                             join informemante in bd.InformeMantenimiento
                                                             on tecnico.IdTecnico equals informemante.IdTecnico
                                                             join bienmante in bd.BienMantenimiento
                                                             on informemante.IdMantenimiento equals bienmante.IdMantenimiento
                                                             join bienes in bd.ActivoFijo
                                                             on bienmante.IdBien equals bienes.IdBien
                                                             where bienes.IdBien == idbien //&& informemante.Estado == 0 || informemante.Estado == 2 || informemante.Estado == 1
                                                             orderby bienes.CorrelativoBien

                                                             select new InformeMatenimientoAF
                {
                    idinformematenimiento = informemante.IdInformeMantenimiento,
                    idBien = bienes.IdBien,
                    idmantenimiento = (int)informemante.IdMantenimiento,
                    fechacadena = informemante.Fecha == null ? " " : ((DateTime)informemante.Fecha).ToString("dd-MM-yyyy"),
                    nombretecnico = tecnico.Nombre,
                    codigo = bienes.CorrelativoBien,
                    descripcion = informemante.Descripcion,
                    costomateriales = (double)informemante.CostoMateriales,
                    costomo = (double)informemante.CostoMo,
                    costototal = (double)informemante.CostoTotal,
                    bienes = bienes.Desripcion
                }).ToList();

                foreach (var historialmante in lista)
                {
                    c1.Phrase = new Phrase(historialmante.fechacadena, parrafo5);
                    c2.Phrase = new Phrase(historialmante.nombretecnico, parrafo5);
                    c3.Phrase = new Phrase("$" + historialmante.costomo.ToString(), parrafo5);
                    c4.Phrase = new Phrase("$" + historialmante.costomateriales.ToString(), parrafo5);
                    c5.Phrase = new Phrase("$" + historialmante.costototal.ToString(), parrafo5);
                    c6.Phrase = new Phrase(historialmante.descripcion, parrafo5);



                    //Agregamos a la tabla
                    tbl.AddCell(c1);
                    tbl.AddCell(c2);
                    tbl.AddCell(c3);
                    tbl.AddCell(c4);
                    tbl.AddCell(c5);
                    tbl.AddCell(c6);
                }
                doc.Add(tbl);
                //INICIO DE ADICIÓN DE LOGO
                CooperativaAF oCooperativaAF = new CooperativaAF();

                Cooperativa oCooperativa = bd.Cooperativa.Where(p => p.Dhabilitado == 1).First();
                oCooperativaAF.idcooperativa = oCooperativa.IdCooperativa;


                try
                {
                    iTextSharp.text.Image logo = null;
                    logo             = iTextSharp.text.Image.GetInstance(oCooperativa.Logo.ToString());
                    logo.Alignment   = iTextSharp.text.Image.ALIGN_LEFT;
                    logo.Border      = iTextSharp.text.Rectangle.NO_BORDER;
                    logo.BorderColor = iTextSharp.text.BaseColor.White;
                    logo.ScaleToFit(170f, 100f);

                    float ancho      = logo.Width;
                    float alto       = logo.Height;
                    float proporcion = alto / ancho;

                    logo.ScaleAbsoluteWidth(80);
                    logo.ScaleAbsoluteHeight(80 * proporcion);

                    logo.SetAbsolutePosition(40f, 695f);

                    doc.Add(logo);
                }
                catch (DocumentException dex)
                {
                    //log exception here
                }

                //FIN DE ADICIÓN DE LOGO
            }
            writer.Close();
            doc.Close();
            ms.Seek(0, SeekOrigin.Begin);
            return(File(ms, "application/pdf"));
        }
        public int guardarActivoFijo([FromBody] ActivoAF oActivoAF)
        {
            int rpta = 0;

            try
            {
                using (BDAcaassAFContext bd = new BDAcaassAFContext())
                {
                    //If para clasificar el tipo de activo
                    if (oActivoAF.tipoactivo == 1)
                    {
                        ActivoFijo oActivoFijo = new ActivoFijo();
                        //Datos para la tabla activo fijo
                        oActivoFijo.IdBien     = oActivoAF.idbien;
                        oActivoFijo.TipoActivo = oActivoAF.tipoactivo;
                        FormularioIngreso oFormulario = bd.FormularioIngreso.Last();
                        oActivoFijo.NoFormulario    = oFormulario.NoFormulario;
                        oActivoFijo.Desripcion      = oActivoAF.descripcion;
                        oActivoFijo.TipoAdquicicion = oActivoAF.tipoadquicicion;

                        oActivoFijo.IdClasificacion = oActivoAF.idclasificacion;
                        oActivoFijo.VidaUtil        = oActivoAF.vidautil;
                        if (oActivoAF.tipoadquicicion == 3)
                        {
                            oActivoFijo.IdDonante = oActivoAF.idproveedor;
                        }
                        else
                        {
                            oActivoFijo.IdProveedor = oActivoAF.idproveedor;
                            if (oActivoAF.tipoadquicicion == 2)
                            {
                                oActivoFijo.PlazoPago      = oActivoAF.plazopago;
                                oActivoFijo.Prima          = oActivoAF.prima;
                                oActivoFijo.CuotaAsignanda = oActivoAF.cuotaasignada;
                                oActivoFijo.Intereses      = oActivoAF.interes;
                            }
                        }

                        oActivoFijo.EstadoIngreso    = oActivoAF.estadoingreso;
                        oActivoFijo.ValorAdquicicion = oActivoAF.valoradquicicion;
                        oActivoFijo.Foto             = oActivoAF.foto;
                        oActivoFijo.ValorResidual    = oActivoAF.valorresidual;
                        oActivoFijo.EnSolicitud      = 0;
                        oActivoFijo.EstadoActual     = 1;
                        oActivoFijo.EstaAsignado     = 0;
                        bd.ActivoFijo.Add(oActivoFijo);
                        bd.SaveChanges();
                        //Generar codigo
                        //objeto de la clase codigo que contiene los elementos
                        CodigoAF oCodigo = new CodigoAF();
                        //Extraer los datos padres de la base
                        ActivoFijo    oActivo        = bd.ActivoFijo.Last();
                        Sucursal      osucursal      = bd.Sucursal.Where(p => p.IdSucursal == oActivoAF.idsucursal).First();
                        Clasificacion oclasificacion = bd.Clasificacion.Where(p => p.IdClasificacion == oActivo.IdClasificacion).First();
                        //LLenado de objeto
                        oCodigo.CorrelativoSucursal      = osucursal.Correlativo;
                        oCodigo.CorrelativoClasificacion = oclasificacion.Correlativo;
                        //selccionar cuantos hay de esa clasificacion
                        int oActivoC = bd.ActivoFijo.Where(p => p.EstaAsignado == 1 && p.IdClasificacion == oclasificacion.IdClasificacion).Count();

                        //comparar para la concatenacion correspondiente
                        if (oActivoC >= 0 && oActivoC <= 9)
                        {
                            oActivoC            = oActivoC + 1;
                            oCodigo.Correlativo = "00" + oActivoC.ToString();
                        }
                        else if (oActivoC >= 10 && oActivoC <= 99)
                        {
                            oActivoC            = oActivoC + 1;
                            oCodigo.Correlativo = "0" + oActivoC.ToString();
                        }
                        else
                        {
                            oActivoC            = oActivoC + 1;
                            oCodigo.Correlativo = oActivoC.ToString();
                        }
                        oActivo.CorrelativoBien = oCodigo.CorrelativoSucursal + "-" + oCodigo.CorrelativoClasificacion + "-" + oCodigo.Correlativo;
                        //Guardamos en la tabla activo fijo
                        oActivo.DestinoInicial = osucursal.Nombre;
                        oActivo.EstaAsignado   = 1;
                        bd.SaveChanges();


                        //Transaccion a tarjeta
                        TarjetaDepreciacion transaccion            = new TarjetaDepreciacion();
                        ActivoFijo          oActivoFijoTransaccion = bd.ActivoFijo.Last();
                        transaccion.IdBien                = oActivoFijoTransaccion.IdBien;
                        transaccion.Fecha                 = oFormulario.FechaIngreso;
                        transaccion.Concepto              = "Compra";
                        transaccion.Valor                 = oActivoFijoTransaccion.ValorAdquicicion;
                        transaccion.DepreciacionAnual     = 0.00;
                        transaccion.DepreciacionAcumulada = 0.00;
                        transaccion.ValorActual           = oActivoFijoTransaccion.ValorAdquicicion;
                        transaccion.ValorTransaccion      = oActivoFijoTransaccion.ValorAdquicicion;
                        bd.TarjetaDepreciacion.Add(transaccion);
                        bd.SaveChanges();
                        //Generar codigo
                    }
                    if (oActivoAF.tipoactivo == 2)
                    {
                        for (int i = 0; i < oActivoAF.cantidad; i++)
                        {
                            ActivoFijo oActivoFijo = new ActivoFijo();
                            //Datos para la tabla activo fijo
                            oActivoFijo.IdBien     = oActivoAF.idbien;
                            oActivoFijo.TipoActivo = oActivoAF.tipoactivo;
                            FormularioIngreso oFormulario = bd.FormularioIngreso.Last();
                            oActivoFijo.NoFormulario    = oFormulario.NoFormulario;
                            oActivoFijo.Desripcion      = oActivoAF.descripcion;
                            oActivoFijo.Modelo          = oActivoAF.modelo;
                            oActivoFijo.TipoAdquicicion = oActivoAF.tipoadquicicion;
                            oActivoFijo.Color           = oActivoAF.color;
                            oActivoFijo.IdClasificacion = oActivoAF.idclasificacion;
                            if (oActivoAF.idmarca != 0)
                            {
                                oActivoFijo.IdMarca = oActivoAF.idmarca;
                            }
                            else
                            {
                                oActivoFijo.IdMarca = null;
                            }
                            if (oActivoAF.tipoadquicicion == 3)
                            {
                                oActivoFijo.IdDonante = oActivoAF.idproveedor;
                            }
                            else
                            {
                                oActivoFijo.IdProveedor = oActivoAF.idproveedor;
                                if (oActivoAF.tipoadquicicion == 2)
                                {
                                    oActivoFijo.PlazoPago      = oActivoAF.plazopago;
                                    oActivoFijo.Prima          = oActivoAF.prima;
                                    oActivoFijo.CuotaAsignanda = oActivoAF.cuotaasignada;
                                    oActivoFijo.Intereses      = oActivoAF.interes;
                                }
                            }
                            oActivoFijo.EstadoIngreso    = oActivoAF.estadoingreso;
                            oActivoFijo.ValorAdquicicion = oActivoAF.valoradquicicion;
                            oActivoFijo.Foto             = oActivoAF.foto;
                            oActivoFijo.ValorResidual    = oActivoAF.valorresidual;
                            //Linea de prueba en rama solicitud
                            oActivoFijo.EnSolicitud  = 0;
                            oActivoFijo.EstaAsignado = 0;
                            oActivoFijo.EstadoActual = 1;


                            bd.ActivoFijo.Add(oActivoFijo);
                            bd.SaveChanges();
                            //Transaccion a tarjeta
                            TarjetaDepreciacion transaccion            = new TarjetaDepreciacion();
                            ActivoFijo          oActivoFijoTransaccion = bd.ActivoFijo.Last();
                            transaccion.IdBien                = oActivoFijoTransaccion.IdBien;
                            transaccion.Fecha                 = oFormulario.FechaIngreso;
                            transaccion.Concepto              = "Compra";
                            transaccion.Valor                 = oActivoFijoTransaccion.ValorAdquicicion;
                            transaccion.DepreciacionAnual     = 0.00;
                            transaccion.DepreciacionAcumulada = 0.00;
                            transaccion.ValorActual           = oActivoFijoTransaccion.ValorAdquicicion;
                            transaccion.ValorTransaccion      = oActivoFijoTransaccion.ValorAdquicicion;
                            bd.TarjetaDepreciacion.Add(transaccion);
                            bd.SaveChanges();
                        }
                    }
                    if (oActivoAF.tipoactivo == 3)
                    {
                        ActivoFijo oActivoFijo = new ActivoFijo();
                        //Datos para la tabla activo fijo
                        oActivoFijo.IdBien     = oActivoAF.idbien;
                        oActivoFijo.TipoActivo = oActivoAF.tipoactivo;
                        FormularioIngreso oFormulario = bd.FormularioIngreso.Last();
                        oActivoFijo.NoFormulario    = oFormulario.NoFormulario;
                        oActivoFijo.Desripcion      = oActivoAF.descripcion;
                        oActivoFijo.TipoAdquicicion = oActivoAF.tipoadquicicion;

                        oActivoFijo.IdClasificacion = oActivoAF.idclasificacion;
                        oActivoFijo.VidaUtil        = oActivoAF.vidautil;
                        if (oActivoAF.tipoadquicicion == 3)
                        {
                            oActivoFijo.IdDonante = oActivoAF.idproveedor;
                        }
                        else
                        {
                            oActivoFijo.IdProveedor = oActivoAF.idproveedor;
                            if (oActivoAF.tipoadquicicion == 2)
                            {
                                oActivoFijo.PlazoPago      = oActivoAF.plazopago;
                                oActivoFijo.Prima          = oActivoAF.prima;
                                oActivoFijo.CuotaAsignanda = oActivoAF.cuotaasignada;
                                oActivoFijo.Intereses      = oActivoAF.interes;
                            }
                        }

                        oActivoFijo.ValorAdquicicion = oActivoAF.valoradquicicion;
                        oActivoFijo.Foto             = oActivoAF.foto;
                        oActivoFijo.ValorResidual    = oActivoAF.valorresidual;
                        oActivoFijo.EnSolicitud      = 0;
                        oActivoFijo.EstadoActual     = 1;
                        oActivoFijo.EstaAsignado     = 0;
                        bd.ActivoFijo.Add(oActivoFijo);
                        bd.SaveChanges();
                        //Generar codigo
                        //objeto de la clase codigo que contiene los elementos
                        CodigoAF oCodigo = new CodigoAF();
                        //Extraer los datos padres de la base
                        ActivoFijo    oActivo        = bd.ActivoFijo.Last();
                        AreaDeNegocio oarea          = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oActivoAF.idarea).First();
                        Sucursal      osucursal      = bd.Sucursal.Where(p => p.IdSucursal == oarea.IdSucursal).First();
                        Clasificacion oclasificacion = bd.Clasificacion.Where(p => p.IdClasificacion == oActivo.IdClasificacion).First();


                        //LLenado de objeto
                        oCodigo.CorrelativoSucursal      = osucursal.Correlativo;
                        oCodigo.CorrelativoClasificacion = oclasificacion.Correlativo;
                        oCodigo.CorrelativoArea          = oarea.Correlativo;
                        //selccionar cuantos hay de esa clasificacion
                        int oActivoC = bd.ActivoFijo.Where(p => p.EstaAsignado == 1 && p.IdClasificacion == oclasificacion.IdClasificacion).Count();

                        //comparar para la concatenacion correspondiente
                        if (oActivoC >= 0 && oActivoC <= 9)
                        {
                            oActivoC            = oActivoC + 1;
                            oCodigo.Correlativo = "00" + oActivoC.ToString();
                        }
                        else if (oActivoC >= 10 && oActivoC <= 99)
                        {
                            oActivoC            = oActivoC + 1;
                            oCodigo.Correlativo = "0" + oActivoC.ToString();
                        }
                        else
                        {
                            oActivoC            = oActivoC + 1;
                            oCodigo.Correlativo = oActivoC.ToString();
                        }
                        oActivo.CorrelativoBien = oCodigo.CorrelativoSucursal + "-" + oCodigo.CorrelativoArea + "-" + oCodigo.CorrelativoClasificacion + "-" + oCodigo.Correlativo;
                        //Guardamos en la tabla activo fijo
                        oActivo.DestinoInicial = osucursal.Nombre;
                        oActivo.EstaAsignado   = 1;
                        bd.SaveChanges();

                        //Transaccion a tarjeta
                        TarjetaDepreciacion transaccion            = new TarjetaDepreciacion();
                        ActivoFijo          oActivoFijoTransaccion = bd.ActivoFijo.Last();
                        transaccion.IdBien                = oActivoFijoTransaccion.IdBien;
                        transaccion.Fecha                 = oFormulario.FechaIngreso;
                        transaccion.Concepto              = "Compra";
                        transaccion.Valor                 = oActivoFijoTransaccion.ValorAdquicicion;
                        transaccion.DepreciacionAnual     = 0.00;
                        transaccion.DepreciacionAcumulada = 0.00;
                        transaccion.ValorActual           = oActivoFijoTransaccion.ValorAdquicicion;
                        transaccion.ValorTransaccion      = oActivoFijoTransaccion.ValorAdquicicion;
                        bd.TarjetaDepreciacion.Add(transaccion);
                        bd.SaveChanges();
                    }

                    rpta = 1;
                }
            }
            catch (Exception ex)
            {
                rpta = 0;
            }
            return(rpta);
        }
Beispiel #19
0
        public async Task <IActionResult> activosDescargadosJefePdf(int idJefe)
        {
            Document doc = new Document(PageSize.Letter);

            doc.SetMargins(40f, 40f, 40f, 40f);
            MemoryStream ms     = new MemoryStream();
            PdfWriter    writer = PdfWriter.GetInstance(doc, ms);

            //Instanciamos la clase para el paginado y la fecha de impresión
            var pe = new PageEventHelper();

            writer.PageEvent = pe;

            doc.AddAuthor("Asgard");
            doc.AddTitle("Reporte de historial de descargos de activos asignados");
            doc.Open();

            //Inicia cuerpo del reporte

            //Estilo y fuente personalizada
            BaseFont fuente = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo = new iTextSharp.text.Font(fuente, 12f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));
            BaseFont             fuente2 = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo2 = new iTextSharp.text.Font(fuente2, 10f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));
            BaseFont             fuente3  = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo3 = new iTextSharp.text.Font(fuente3, 15f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));
            BaseFont             fuente4  = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1250, true);

            iTextSharp.text.Font parrafo4 = new iTextSharp.text.Font(fuente4, 11f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));

            //Para las celdas
            BaseFont fuente5 = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, true);

            iTextSharp.text.Font parrafo5 = new iTextSharp.text.Font(fuente5, 10f, iTextSharp.text.Font.NORMAL, new BaseColor(0, 0, 0));


            //Encabezado
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                CooperativaAF oCooperativaAF = new CooperativaAF();
                Cooperativa   oCooperativa   = bd.Cooperativa.Where(p => p.Dhabilitado == 1).First();
                oCooperativaAF.idcooperativa = oCooperativa.IdCooperativa;
                oCooperativaAF.nombre        = oCooperativa.Nombre;
                oCooperativaAF.descripcion   = oCooperativa.Descripcion;

                //Se agrega el encabezado
                var tbl1 = new PdfPTable(new float[] { 11f, 89f })
                {
                    WidthPercentage = 100f
                };
                tbl1.AddCell(new PdfPCell(new Phrase(" ", parrafo2))
                {
                    Border = 0, Rowspan = 2
                });
                tbl1.AddCell(new PdfPCell(new Phrase(oCooperativa.Descripcion.ToUpper(), parrafo2))
                {
                    Border = 0, HorizontalAlignment = 1
                });
                tbl1.AddCell(new PdfPCell(new Phrase(oCooperativa.Nombre.ToUpper(), parrafo3))
                {
                    Border = 0, HorizontalAlignment = 1
                });
                doc.Add(tbl1);
                doc.Add(new Phrase("\n"));
            }
            doc.Add(new Phrase("\n"));
            //Línea separadora
            Chunk linea = new Chunk(new iTextSharp.text.pdf.draw.LineSeparator(1f, 100f, BaseColor.Black, Element.ALIGN_CENTER, 1f));

            doc.Add(linea);
            doc.Add(new Paragraph("REPORTE DE HISTORIAL DE DESCARGOS DE ACTIVOS ASIGNADOS", parrafo)
            {
                Alignment = Element.ALIGN_CENTER
            });

            //Espacio en blanco
            doc.Add(Chunk.Newline);

            //Agregamos una tabla
            var tbl = new PdfPTable(new float[] { 30f, 35f, 40f, 40f, 30f })
            {
                WidthPercentage = 100f
            };
            var c1 = new PdfPCell(new Phrase("CORRELATIVO", parrafo2));
            var c2 = new PdfPCell(new Phrase("FECHA INGRESO", parrafo2));
            var c3 = new PdfPCell(new Phrase("DESCRIPCIÓN", parrafo2));
            var c4 = new PdfPCell(new Phrase("ÁREA DE NEGOCIOS", parrafo2));
            var c5 = new PdfPCell(new Phrase("RESPONSABLE", parrafo2));

            //Agregamos a la tabla las celdas
            tbl.AddCell(c1);
            tbl.AddCell(c2);
            tbl.AddCell(c3);
            tbl.AddCell(c4);
            tbl.AddCell(c5);

            //Extraemos de la base y llenamos las celdas
            using (BDAcaassAFContext bd = new BDAcaassAFContext())
            {
                Empleado      oempleado = bd.Empleado.Where(p => p.IdEmpleado == idJefe).FirstOrDefault();
                AreaDeNegocio oarea     = bd.AreaDeNegocio.Where(p => p.IdAreaNegocio == oempleado.IdAreaDeNegocio).FirstOrDefault();
                List <BajaAF> lista     = (from activo in bd.ActivoFijo
                                           join noFormulario in bd.FormularioIngreso
                                           on activo.NoFormulario equals noFormulario.NoFormulario
                                           join resposable in bd.Empleado
                                           on activo.IdResponsable equals resposable.IdEmpleado
                                           join area in bd.AreaDeNegocio
                                           on resposable.IdAreaDeNegocio equals area.IdAreaNegocio
                                           join cargo in bd.Cargos
                                           on resposable.IdCargo equals cargo.IdCargo

                                           where activo.EstadoActual == 0 && activo.EstaAsignado == 1 && area.IdAreaNegocio == oarea.IdAreaNegocio
                                           orderby activo.CorrelativoBien
                                           select new BajaAF
                {
                    IdBien = activo.IdBien,
                    Codigo = activo.CorrelativoBien,
                    fechacadena = noFormulario.FechaIngreso == null ? " " : ((DateTime)noFormulario.FechaIngreso).ToString("dd-MM-yyyy"),
                    Desripcion = activo.Desripcion,
                    AreaDeNegocio = area.Nombre,
                    Resposnsable = resposable.Nombres + " " + resposable.Apellidos,
                    //cargo = cargo.Cargo,
                }).ToList();
                foreach (var activosbaja in lista)
                {
                    c1.Phrase = new Phrase(activosbaja.Codigo, parrafo5);
                    c2.Phrase = new Phrase(activosbaja.fechacadena, parrafo5);
                    c3.Phrase = new Phrase(activosbaja.Desripcion, parrafo5);
                    c4.Phrase = new Phrase(activosbaja.AreaDeNegocio, parrafo5);
                    c5.Phrase = new Phrase(activosbaja.Resposnsable, parrafo5);



                    //Agregamos a la tabla
                    tbl.AddCell(c1);
                    tbl.AddCell(c2);
                    tbl.AddCell(c3);
                    tbl.AddCell(c4);
                    tbl.AddCell(c5);
                }

                //INICIO DE ADICIÓN DE LOGO
                CooperativaAF oCooperativaAF = new CooperativaAF();

                Cooperativa oCooperativa = bd.Cooperativa.Where(p => p.Dhabilitado == 1).First();
                oCooperativaAF.idcooperativa = oCooperativa.IdCooperativa;


                try
                {
                    iTextSharp.text.Image logo = null;
                    logo             = iTextSharp.text.Image.GetInstance(oCooperativa.Logo.ToString());
                    logo.Alignment   = iTextSharp.text.Image.ALIGN_LEFT;
                    logo.Border      = iTextSharp.text.Rectangle.NO_BORDER;
                    logo.BorderColor = iTextSharp.text.BaseColor.White;
                    logo.ScaleToFit(170f, 100f);

                    float ancho      = logo.Width;
                    float alto       = logo.Height;
                    float proporcion = alto / ancho;

                    logo.ScaleAbsoluteWidth(80);
                    logo.ScaleAbsoluteHeight(80 * proporcion);

                    logo.SetAbsolutePosition(40f, 695f);

                    doc.Add(logo);
                }
                catch (DocumentException dex)
                {
                    //log exception here
                }

                //FIN DE ADICIÓN DE LOGO
            }
            doc.Add(tbl);
            writer.Close();
            doc.Close();
            ms.Seek(0, SeekOrigin.Begin);
            return(File(ms, "application/pdf"));
        }