private void btnGrabar_Click(object sender, EventArgs e)
        {
            try
            {
                InspeccionTrabajoDetalleBL objBL_AccionCorrectiva = new InspeccionTrabajoDetalleBL();
                objBL_AccionCorrectiva.ActualizaSituacion(IdInspeccionTrabajoDetalle, Convert.ToInt32(cboSituacion.EditValue));

                XtraMessageBox.Show("La Actualización de la situación de la acción correctiva se realizó correctamente", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);

                StringBuilder strMensaje = new StringBuilder();
                strMensaje.Append("*****************************************************************************\n\n");
                strMensaje.Append("La Condición Insegura N°: " + Numero + " del Item : " + Item.ToString() + "  se regulizaró correctamente." + "\n\n");
                strMensaje.Append("Emitido Por el Area de Seguridad y Salud en el Trabajo" + "\n\n");
                strMensaje.Append("*****************************************************************************\n\n");

                //ELIMINAMOS LOR ARCHIVOS CREADOS
                foreach (var item in Directory.GetFiles(@"D:\", "*.pdf"))
                {
                    File.SetAttributes(item, FileAttributes.Normal);
                    File.Delete(item);
                }

                //GENERAR EL REPORTE EN PDF
                List <ReporteInspeccionTrabajoBE> lstReporteInspeccion = null;
                lstReporteInspeccion = new ReporteInspeccionTrabajoBL().Listado(Convert.ToInt32(Numero));
                rptInspeccionTrabajo objReporte = new rptInspeccionTrabajo();
                objReporte.SetDataSource(lstReporteInspeccion);
                objReporte.ExportToDisk(ExportFormatType.PortableDocFormat, @"D:\" + Numero + ".pdf");

                if (Convert.ToInt32(cboSituacion.EditValue) == Parametros.intDITEjecutado)
                {
                    BSUtils.EmailSend(strMailTO, "Inspección Interna de Trabajo", strMensaje.ToString(), @"D:\" + Numero + ".pdf", "", "", "");
                }

                this.Close();
            }
            catch (Exception ex)
            {
                XtraMessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void btnGrabar_Click(object sender, EventArgs e)
        {
            try
            {
                Cursor = Cursors.WaitCursor;
                if (!ValidarIngreso())
                {
                    InspeccionTrabajoBE objInspeccionTrabajo    = new InspeccionTrabajoBE();
                    InspeccionTrabajoBL objBL_InspeccionTrabajo = new InspeccionTrabajoBL();

                    objInspeccionTrabajo.IdInspeccionTrabajo = IdInspeccionTrabajo;
                    objInspeccionTrabajo.IdUnidadMinera      = Convert.ToInt32(cboUnidadMinera.EditValue);
                    objInspeccionTrabajo.IdArea               = Convert.ToInt32(cboAreaResponsable.EditValue);
                    objInspeccionTrabajo.IdSector             = Convert.ToInt32(cboSector.EditValue);
                    objInspeccionTrabajo.IdTipoInspeccion     = Convert.ToInt32(cboTipoInspeccion.EditValue);
                    objInspeccionTrabajo.Numero               = txtNumero.Text;
                    objInspeccionTrabajo.Fecha                = Convert.ToDateTime(deFecha.DateTime.ToShortDateString());
                    objInspeccionTrabajo.Hora                 = Convert.ToDateTime(teHora.EditValue);
                    objInspeccionTrabajo.Objetivo             = txtObjetivo.Text;
                    objInspeccionTrabajo.Lugar                = txtLugar.Text;
                    objInspeccionTrabajo.IdEmpresaContratista = Convert.ToInt32(cboEmpresaContratista.EditValue);
                    objInspeccionTrabajo.IdInspeccionadoPor   = intIdInspeccionadoPor;
                    objInspeccionTrabajo.IdResponsableArea    = (int?)null;
                    objInspeccionTrabajo.IdResponsableSector  = intIdResponsableSector == 0 ? (int?)null : intIdResponsableSector;
                    objInspeccionTrabajo.NumeroTrabajadores   = Convert.ToInt32(txtNumeroTrabajadores.Text);
                    objInspeccionTrabajo.PersonaRegistro      = txtPersonaRegistro.Text;
                    objInspeccionTrabajo.PersonaCargo         = txtPersonaCargo.Text;
                    objInspeccionTrabajo.FlagEstado           = true;
                    objInspeccionTrabajo.Usuario              = Parametros.strUsuarioLogin;
                    objInspeccionTrabajo.Maquina              = WindowsIdentity.GetCurrent().Name.ToString();
                    objInspeccionTrabajo.IdEmpresa            = Convert.ToInt32(cboEmpresa.EditValue);

                    //INSPECCION TRABAJO DETALLE
                    List <InspeccionTrabajoDetalleBE> lstInspeccionTrabajoDetalle = new List <InspeccionTrabajoDetalleBE>();

                    foreach (var item in mListaInspeccionTrabajoDetalleOrigen)
                    {
                        InspeccionTrabajoDetalleBE objE_InspeccionTrabajoDetalle = new InspeccionTrabajoDetalleBE();
                        objE_InspeccionTrabajoDetalle.IdEmpresa                  = Parametros.intEmpresaId;
                        objE_InspeccionTrabajoDetalle.IdInspeccionTrabajo        = IdInspeccionTrabajo;
                        objE_InspeccionTrabajoDetalle.IdInspeccionTrabajoDetalle = item.IdInspeccionTrabajoDetalle;
                        objE_InspeccionTrabajoDetalle.Item = item.Item;
                        objE_InspeccionTrabajoDetalle.Foto = item.Foto;
                        objE_InspeccionTrabajoDetalle.CondicionSubEstandar = item.CondicionSubEstandar;
                        objE_InspeccionTrabajoDetalle.AccionCorrectiva     = item.AccionCorrectiva;
                        objE_InspeccionTrabajoDetalle.IdResponsable        = item.IdResponsable;
                        objE_InspeccionTrabajoDetalle.FechaEjecucion       = (item.FechaEjecucion.ToString().Length == 0) ? null : item.FechaEjecucion;
                        objE_InspeccionTrabajoDetalle.FotoCumplimiento     = item.FotoCumplimiento;
                        objE_InspeccionTrabajoDetalle.Observacion          = item.Observacion;
                        objE_InspeccionTrabajoDetalle.IdSituacion          = item.IdSituacion;
                        objE_InspeccionTrabajoDetalle.FlagEstado           = true;
                        objE_InspeccionTrabajoDetalle.Usuario  = Parametros.strUsuarioLogin;
                        objE_InspeccionTrabajoDetalle.Maquina  = WindowsIdentity.GetCurrent().Name.ToString();
                        objE_InspeccionTrabajoDetalle.TipoOper = item.TipoOper;
                        lstInspeccionTrabajoDetalle.Add(objE_InspeccionTrabajoDetalle);
                    }


                    if (pOperacion == Operacion.Nuevo)
                    {
                        int    intNumero = 0;
                        string strNumero = "";
                        intNumero      = objBL_InspeccionTrabajo.Inserta(objInspeccionTrabajo, lstInspeccionTrabajoDetalle);
                        strNumero      = FuncionBase.AgregarCaracter(intNumero.ToString(), "0", 7);
                        txtNumero.Text = strNumero;

                        //ACTUALIZAR NUMERO
                        InspeccionTrabajoBL objBInspeccionTrabajo = new InspeccionTrabajoBL();
                        objBInspeccionTrabajo.ActualizaNumero(intNumero, txtNumero.Text);

                        //ELIMINAMOS LOR ARCHIVOS CREADOS
                        foreach (var item in Directory.GetFiles(@"D:\", "*.pdf"))
                        {
                            File.SetAttributes(item, FileAttributes.Normal);
                            File.Delete(item);
                        }

                        //GENERAR EL REPORTE EN PDF
                        List <ReporteInspeccionTrabajoBE> lstReporteInspeccion = null;
                        lstReporteInspeccion = new ReporteInspeccionTrabajoBL().Listado(intNumero);
                        rptInspeccionTrabajo objReporte = new rptInspeccionTrabajo();
                        objReporte.SetDataSource(lstReporteInspeccion);
                        objReporte.ExportToDisk(ExportFormatType.PortableDocFormat, @"D:\" + strNumero + ".pdf");

                        StringBuilder strMensaje = new StringBuilder();
                        strMensaje.Append("*****************************************************************************\n\n");
                        strMensaje.Append("Se Generó la N° Condición Insegura : " + strNumero + "\n\n");
                        strMensaje.Append("Regularizar de acuerdo a las fechas descritas en el archivo adjunto" + "\n\n");
                        strMensaje.Append("Emitido Por el Area de Seguridad y Salud en el Trabajo" + "\n\n");
                        strMensaje.Append("*****************************************************************************\n\n");

                        string strMailTO = "";
                        strMailTO = strMailSectorResponsable;

                        if (intIdResponsableAdicional1 > 0)
                        {
                            strMailTO = strMailTO + ";" + strMailResponsableAdicional1;
                        }

                        if (intIdResponsableAdicional2 > 0)
                        {
                            strMailTO = strMailTO + ";" + strMailResponsableAdicional2;
                        }

                        foreach (var item in mListaInspeccionTrabajoDetalleOrigen)
                        {
                            PersonaBE objE_Persona = new PersonaBE();
                            objE_Persona = new PersonaBL().Selecciona(0, 0, 0, item.IdResponsable);
                            if (objE_Persona != null)
                            {
                                strMailTO = strMailTO + ";" + objE_Persona.Email;
                            }
                        }

                        if (Convert.ToInt32(cboEmpresaContratista.EditValue) != Parametros.intEmpresaContratistaNinguno)
                        {
                            ActividadContratistaBE objE_ActividadContratista = new ActividadContratistaBE();
                            objE_ActividadContratista = new ActividadContratistaBL().SeleccionaEmpresa(Convert.ToInt32(cboEmpresaContratista.EditValue));
                            if (objE_ActividadContratista != null)
                            {
                                strMailTO = strMailTO + ";" + objE_ActividadContratista.EmailContratista;
                            }
                        }

                        BSUtils.EmailSend(strMailTO, "Inspección Interna de Trabajo", strMensaje.ToString(), @"D:\" + strNumero + ".pdf", "", "", "");

                        Application.DoEvents();

                        XtraMessageBox.Show("Se creó el registro de Inspeccion N° : " + txtNumero.Text, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        objBL_InspeccionTrabajo.Actualiza(objInspeccionTrabajo, lstInspeccionTrabajoDetalle);
                    }
                    this.Close();
                }
            }
            catch (Exception ex)
            {
                Cursor = Cursors.Default;
                XtraMessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void enviarFotoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                Cursor = Cursors.WaitCursor;

                string strMailTO = "";
                string strNumero = "";

                int intIdInspeccionTrabajo = 0;
                intIdInspeccionTrabajo = int.Parse(gvInspeccionTrabajo.GetFocusedRowCellValue("IdInspeccionTrabajo").ToString());
                strNumero = gvInspeccionTrabajo.GetFocusedRowCellValue("Numero").ToString();

                InspeccionTrabajoBE objE_InspeccionTrabajo = null;
                objE_InspeccionTrabajo = new InspeccionTrabajoBL().Selecciona(intIdInspeccionTrabajo);
                if (objE_InspeccionTrabajo != null)
                {
                    strMailTO = objE_InspeccionTrabajo.MailSectorResponsable;
                }

                //TRAEMOS LOS CORREOS DE LOS RESONSABLES DE LAS ACCIONES CORRECTIVAS PENDIENTES
                List <InspeccionTrabajoDetalleBE> lstInspeccionTrabajoDetalle = null;
                lstInspeccionTrabajoDetalle = new InspeccionTrabajoDetalleBL().ListaSituacion(intIdInspeccionTrabajo, Parametros.intDITPendiente);
                if (lstInspeccionTrabajoDetalle.Count == 0)
                {
                    XtraMessageBox.Show("La Inspección de Trabajo no tiene acciones correctivas pendienes", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    Cursor = Cursors.Default;
                    return;
                }
                else
                {
                    foreach (var item in lstInspeccionTrabajoDetalle)
                    {
                        PersonaBE objE_Persona = new PersonaBE();
                        objE_Persona = new PersonaBL().Selecciona(0, 0, 0, item.IdResponsable);
                        if (objE_Persona != null)
                        {
                            strMailTO = strMailTO + ";" + objE_Persona.Email;
                        }
                    }
                }

                StringBuilder strMensaje = new StringBuilder();
                strMensaje.Append("**************************************************************************************************************************\n\n");
                strMensaje.Append("Se adjunta las Acciones Correctivas Pendientes " + "\n\n");
                strMensaje.Append("Comunicarse con el Area de Seguridad y Salud en el Trabajo" + "\n\n");
                strMensaje.Append("**************************************************************************************************************************\n\n");

                //ELIMINAMOS LOR ARCHIVOS CREADOS
                foreach (var item in Directory.GetFiles(@"D:\", "*.pdf"))
                {
                    File.SetAttributes(item, FileAttributes.Normal);
                    File.Delete(item);
                }

                //GENERAR EL REPORTE EN PDF
                List <ReporteInspeccionTrabajoBE> lstReporteInspeccion = null;
                lstReporteInspeccion = new ReporteInspeccionTrabajoBL().ListadoPendiente(intIdInspeccionTrabajo);
                rptInspeccionTrabajo objReporte = new rptInspeccionTrabajo();
                objReporte.SetDataSource(lstReporteInspeccion);
                objReporte.ExportToDisk(ExportFormatType.PortableDocFormat, @"D:\" + strNumero + ".pdf");

                BSUtils.EmailSend(strMailTO, "Inspección Interna de Trabajo", strMensaje.ToString(), @"D:\" + strNumero + ".pdf", "", "", "");

                XtraMessageBox.Show("El Correo se envio correctamente", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                Cursor = Cursors.Default;
            }
            catch (Exception ex)
            {
                Cursor = Cursors.Default;
                XtraMessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }