public ReportOTGeneral(ordenDeTrabajoGeneral OT)
        {
            this.numeroFolio    = OT.numeroFolio;
            this.fechaOTAbierta = Formateador.fechaCompletaToString(OT.fechaOTAbierta);
            this.fechaOTCerrada = Formateador.fechaCompletaToString(OT.fechaOTCerrada);
            this.operador       = OT.operador;
            this.faena          = OT.faena;
            this.turno          = OT.turno;
            this.area           = OT.area;
            equipos equipo = equipos.ObtenerConTipo(Convert.ToInt32(OT.idEquipo));

            this.modeloEquipo  = equipo.ModeloID.nombreModelo;
            this.tipoEquipo    = equipo.tipoEquipo;
            this.patenteEquipo = OT.patenteEquipo;
            this.horometro     = OT.horometro;
            this.kilometraje   = OT.kilometraje;
            this.tipoMantenimientoARealizar         = OT.tipoMantenimientoARealizar;
            this.horasMantenimientoNivelCombustible = OT.horasMantenimientoNivelCombustible;
            this.horasMantenimientoFecha            = Formateador.fechaCompletaToString(OT.horasMantenimientoFecha);
            this.horasMantenimientoHRInicio         = OT.horasMantenimientoHRInicio;
            this.horasMantenimientoHRTermino        = OT.horasMantenimientoHRTermino;
            this.horasMantenimientoHRSDetenido      = OT.horasMantenimientoHRSDetenido.ToString();
            this.trabajoRealizar = OT.trabajoRealizar;
            this.conclusionesTrabajoRealizado = OT.conclusionesTrabajoRealizado;
            this.estadoEquipo = OT.estadoEquipo;
            this.trabajosPendientesPorRealizar      = OT.trabajosPendientesPorRealizar;
            this.fechaTrabajosPendientesPorRealizar = Formateador.fechaCompletaToString(OT.fechaTrabajosPendientesPorRealizar);
            this.nombreMantenedor         = OT.nombreMantenedor;
            this.nombreOperador           = OT.nombreOperador;
            this.nombreSupervisor         = OT.nombreSupervisor;
            this.tipoOTSegunMantenimiento = OT.tipoOTSegunMantenimiento;
            this.AFIEquipo = new Context().Equipos.Find(int.Parse(OT.idEquipo)).numeroAFI;
        }
        public IndicadoresCostosActivosOT(ordenDeTrabajoGeneral OrdenTrabajoGeneral)
        {
            totalCostos = 0;
            Context db = new Context();

            ordenDeTrabajoGeneral = OrdenTrabajoGeneral;

            materialesUtilizados = db.materialesUtilizadosOTs.Where(s => s.ordenDeTrabajoGeneralID == OrdenTrabajoGeneral.ordenDeTrabajoGeneralID).ToList();

            detalleCostos = new List <detalleIndicadoresCostosActivosOT>();

            foreach (materialesUtilizadosOT Material in materialesUtilizados)
            {
                detalleCostos.Add(new detalleIndicadoresCostosActivosOT(Material));
                totalCostos += detalleCostos[detalleCostos.Count - 1].costos;
            }
        }
        public IndicadoresCostosActivosOT( ordenDeTrabajoGeneral OrdenTrabajoGeneral)
        {
            totalCostos = 0;
            Context db = new Context();

            ordenDeTrabajoGeneral = OrdenTrabajoGeneral;

            materialesUtilizados = db.materialesUtilizadosOTs.Where(s => s.ordenDeTrabajoGeneralID == OrdenTrabajoGeneral.ordenDeTrabajoGeneralID).ToList();

            detalleCostos = new List<detalleIndicadoresCostosActivosOT>();

            foreach (materialesUtilizadosOT Material in materialesUtilizados) 
            {
                detalleCostos.Add(new detalleIndicadoresCostosActivosOT(Material));
                totalCostos += detalleCostos[detalleCostos.Count - 1].costos;
            }
        }
        public IndicadoresCostosActivosOTReport(detalleIndicadoresCostosActivosOT detalleInd)
        {
            Context db = new Context();

            materialUtilizado = detalleInd.MaterialesUtilizados.nombreMaterial + "/" + detalleInd.MaterialesUtilizados.numeroParte;
            cantidad          = (int)detalleInd.MaterialesUtilizados.cantidad;
            precio            = detalleInd.MaterialesUtilizados.precioActual;
            total             = cantidad * precio;

            ordenDeTrabajoGeneral OT =
                db.ordenDeTrabajoGenerals.Find(detalleInd.MaterialesUtilizados.ordenDeTrabajoGeneralID);

            numeroOT = OT.numeroFolio.ToString();

            fechaOT = formatearString.fechaSinHoraDiaPrimero(OT.horasMantenimientoFecha);

            equipos Equipo = equipos.Obtener(int.Parse(OT.idEquipo));

            equipo = Equipo.numeroAFI + "/" + Equipo.patenteEquipo + "/" + Equipo.ModeloID.nombreModelo
                     + " - " + Equipo.ModeloID.MarcaID.NombreMarca;
        }
        public FileContentResult ordenDeTrabajoGeneralPendiente(int id)
        {
            LocalReport reporte_local = new LocalReport();
            RentaMaq.DAL.Context db = new RentaMaq.DAL.Context();
            reporte_local.ReportPath = Server.MapPath("~/Report/ordenDeTrabajoGeneralPendiente.rdlc");
            ReportDataSource conjunto_datosOT = new ReportDataSource();
            ReportDataSource conjunto_datosEjecutantes = new ReportDataSource();
            ReportDataSource conjunto_datosMatUt = new ReportDataSource();
            ReportDataSource conjunto_datosMatReq = new ReportDataSource();

            conjunto_datosOT.Name = "DataSetOT";
            conjunto_datosEjecutantes.Name = "DataSetEject";
            conjunto_datosMatUt.Name = "DataSetMatUt";
            conjunto_datosMatReq.Name = "DataSetMatReq";

            List<ReportOTGeneral> reportOT = new List<ReportOTGeneral>();
            ordenDeTrabajoGeneral OT = db.ordenDeTrabajoGenerals.Find(id);
            ordenDeTrabajoGeneral OTNUEVO = new ordenDeTrabajoGeneral();
            OTNUEVO.numeroFolio = "BACK"+OT.numeroFolio;
            OTNUEVO.fechaOTAbierta = DateTime.Now;
            OTNUEVO.area = OT.area;
            OTNUEVO.faena = OT.faena;
            OTNUEVO.idEquipo = OT.idEquipo;
           // OTNUEVO.tipoOTSegunMantenimiento = OT.tipoOTSegunMantenimiento;
            OTNUEVO.trabajoRealizar = OT.trabajosPendientesPorRealizar;

            reportOT.Add(new ReportOTGeneral(OTNUEVO));
            List<ejecutanteTrabajoOT> ejecutantesTrabajoOT = db.ejecutanteTrabajoOTs.Where(s => s.ordenDeTrabajoGeneralID == id).ToList();

            List<materialesRequeridosOT> materialesRequeridosOT = db.materialesRequeridosOTs.Where(s => s.ordenDeTrabajoGeneralID == id).ToList();
            List<materialesUtilizadosOT> materialesUtilizadosOT = db.materialesUtilizadosOTs.Where(s => s.ordenDeTrabajoGeneralID == id).ToList();

            List<materialesRequeridoReportOTGeneral> matReq = new List<materialesRequeridoReportOTGeneral>();
            List<materialesUtilizadosReportOTGeneral> matUt = new List<materialesUtilizadosReportOTGeneral>();

            foreach (RentaMaq.Models.materialesRequeridosOT matR in materialesRequeridosOT)
            {
                materialesRequeridoReportOTGeneral materialR = new materialesRequeridoReportOTGeneral(matR);
                matReq.Add(materialR);
            }

            foreach (RentaMaq.Models.materialesUtilizadosOT matU in materialesUtilizadosOT)
            {
                materialesUtilizadosReportOTGeneral materialU = new materialesUtilizadosReportOTGeneral(matU);
                matUt.Add(materialU);

            }

            conjunto_datosOT.Value = reportOT;
          

            reporte_local.DataSources.Add(conjunto_datosOT);
           /* reporte_local.DataSources.Add(conjunto_datosEjecutantes);
            reporte_local.DataSources.Add(conjunto_datosMatUt);
            reporte_local.DataSources.Add(conjunto_datosMatReq);*/
            string reportType = "PDF";
            string mimeType;
            string encoding;
            string fileNameExtension;
            string deviceInfo = "<DeviceInfo>" +
                 "  <OutputFormat>jpeg</OutputFormat>" +
                 "  <PageWidth>10in</PageWidth>" +
                 "  <PageHeight>13in</PageHeight>" +
                 "  <MarginTop>0.5in</MarginTop>" +
                 "  <MarginLeft>1in</MarginLeft>" +
                 "  <MarginRight>1in</MarginRight>" +
                 "  <MarginBottom>0.5in</MarginBottom>" +
                 "</DeviceInfo>";
            Warning[] warnings;
            string[] streams;
            byte[] renderedBytes;

            renderedBytes = reporte_local.Render(reportType, deviceInfo, out mimeType, out encoding, out fileNameExtension, out streams, out warnings);
            return File(renderedBytes, mimeType);
        }
 public ReportOTGeneral(ordenDeTrabajoGeneral OT) {             
     this.numeroFolio =OT.numeroFolio;
     this.fechaOTAbierta =Formateador.fechaCompletaToString(OT.fechaOTAbierta);
     this.fechaOTCerrada =Formateador.fechaCompletaToString(OT.fechaOTCerrada);
     this.operador =OT.operador;
     this.faena=OT.faena;
     this.turno =OT.turno;
     this.area = OT.area;
     equipos equipo = equipos.ObtenerConTipo(Convert.ToInt32(OT.idEquipo));
     this.modeloEquipo= equipo.ModeloID.nombreModelo;
     this.tipoEquipo=equipo.tipoEquipo;
     this.patenteEquipo=OT.patenteEquipo;
     this.horometro=OT.horometro;
     this.kilometraje=OT.kilometraje;
     this.tipoMantenimientoARealizar=OT.tipoMantenimientoARealizar;
     this.horasMantenimientoNivelCombustible =OT.horasMantenimientoNivelCombustible;
     this.horasMantenimientoFecha =Formateador.fechaCompletaToString(OT.horasMantenimientoFecha);
     this.horasMantenimientoHRInicio =OT.horasMantenimientoHRInicio;
     this.horasMantenimientoHRTermino =OT.horasMantenimientoHRTermino;
     this.horasMantenimientoHRSDetenido =OT.horasMantenimientoHRSDetenido.ToString();
     this.trabajoRealizar=OT.trabajoRealizar;
     this.conclusionesTrabajoRealizado = OT.conclusionesTrabajoRealizado;
     this.estadoEquipo = OT.estadoEquipo;
     this.trabajosPendientesPorRealizar=OT.trabajosPendientesPorRealizar;
     this.fechaTrabajosPendientesPorRealizar =Formateador.fechaCompletaToString(OT.fechaTrabajosPendientesPorRealizar);            
     this.nombreMantenedor=OT.nombreMantenedor;
     this.nombreOperador =OT.nombreOperador;
     this.nombreSupervisor=OT.nombreSupervisor;
     this.tipoOTSegunMantenimiento = OT.tipoOTSegunMantenimiento;
     this.AFIEquipo = new Context().Equipos.Find(int.Parse(OT.idEquipo)).numeroAFI;
 
 }