예제 #1
0
파일: Documento.cs 프로젝트: MatAravena/Mss
        public Boolean RegistrarDocumento(Int32 DocumentoTipo_Id
                                          , MssBD.Usuarios _usu
                                          , MssBD.CON_Empleados_Rut_Centro_Result _per
                                          , bool PorVisar
                                          , string RutaFinal
                                          , ref String Mensaje
                                          , ref Int32 Doc_Id)
        {
            try
            {
                MssBD.Documentos _doc = new MssBD.Documentos();
                _doc.DocumentoTipo_Id = DocumentoTipo_Id;
                _doc.Fecha            = DateTime.Now;
                _doc.Personal_Id      = _per.Rut;
                _doc.PorVisar         = true;
                _doc.RutaFinal        = RutaFinal;
                _doc.Usuario_Id       = _usu.Usuario_Id;

                Modelo_BDMSS.Documentos.Add(_doc);
                Modelo_BDMSS.SaveChanges();

                switch (DocumentoTipo_Id)
                {
                case 1:
                    Mensaje = "Se ha registrado Contrato. Dar a conocer a Administrador para su visado.";
                    break;

                case 2:
                    Mensaje = "Se ha registrado Anexo. Dar a conocer a Administrador para su visado.";
                    break;

                case 3:
                    Mensaje = "Se ha registrado Finiquito. Dar a conocer a Administrador para su visado.";
                    break;

                default:
                    break;
                }

                try
                {
                    Doc_Id = Modelo_BDMSS.Documentos.Where(doc => doc.Documento_Id == doc.Documento_Id)
                             .Max(doc => doc.Documento_Id);
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #2
0
파일: Anexos.cs 프로젝트: MatAravena/Mss
        public bool GenereAnexosMasivos(ref String Mensaje, List <MssBD.VW_DOC_Anexos> _ListAnexos, String _RutaFinal)
        {
            Application wordApp = new Application();;
            Document    wordDoc = new Document();;

            try
            {
                foreach (var item in _ListAnexos)
                {
                    Object oMissing      = System.Reflection.Missing.Value;
                    Object oTemplatePath = String.Concat(RutaArchivosMss, "\\Anexo_Template.dotx");

                    wordApp = new Application();
                    wordDoc = new Document();

                    wordDoc = wordApp.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing);

                    foreach (Field myMergeField in wordDoc.Fields)
                    {
                        Range  rngFieldCode = myMergeField.Code;
                        String fieldText    = rngFieldCode.Text;

                        if (fieldText.StartsWith(" MERGEFIELD"))
                        {
                            Int32  endMerge        = fieldText.IndexOf("\\");
                            Int32  fieldNameLength = fieldText.Length - endMerge;
                            String fieldName       = fieldText.Substring(11, endMerge - 11);

                            switch (fieldName.Trim())
                            {
                            case "FechaInicio":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.FechaDesde.Value.ToLongDateString());
                                break;

                            case "Nombre":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(PrimeraMayuscula(String.Concat(item.Nombres, " ", item.ApellidoPaterno, " ", item.ApellidoMaterno)));
                                break;

                            case "Rut":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(String.Concat(FormatNumero(item.Rut.ToString()), "-", item.Dv));
                                break;

                            case "EstadoCivil":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.EstadoCivil);
                                break;

                            case "FechaNacimiento":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.FechaNacimiento.Value.ToLongDateString());
                                break;

                            case "Direccion":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.Direccion);
                                break;

                            case "Comuna":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.comuna_nombre);
                                break;

                            case "Telefono":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.TelFijo);
                                break;

                            case "FechaAnexo":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(_FechaAnexo.ToLongDateString());
                                break;

                            case "FechaVencimiento":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(_per.FechaVencimiento.Value.ToLongDateString());
                                break;

                            default:
                                break;
                            }
                        }
                    }

                    if (File.Exists(String.Concat(_RutaFinal, "Anexo_", DateTime.Now.ToShortDateString(), "_", item.Rut, "-", item.Dv, ".pdf")))
                    {
                        Mensaje = String.Concat("Anexo a crear '", _RutaFinal, "Anexo_", DateTime.Now.ToShortDateString(),
                                                "_", item.Rut, "-", item.Dv, ".pdf", "' ya existe en la carpeta destino, favor revisar");
                        return(false);
                    }

                    //wordDoc.SaveAs2(String.Concat(_RutaFinal, "Anexo_", DateTime.Now.ToShortDateString(), "_", item.Rut, "-", item.Dv, ".doc"));

                    Object objSaveAsFile = String.Concat(_RutaFinal, "Anexo_", DateTime.Now.ToShortDateString(), "_", item.Rut, "-", item.Dv, ".pdf");
                    Object objFileFormat = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;
                    wordDoc.SaveAs2(objSaveAsFile, ref objFileFormat, ref oMissing, ref oMissing,
                                    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                    ref oMissing, ref oMissing);

                    MssBD.Documentos _doc = new MssBD.Documentos();
                    _doc = (from p in Modelo_BDMSS.Documentos
                            where p.Documento_Id == item.Documento_Id
                            select p).First();
                    _doc.PorVisar = false;

                    Modelo_BDMSS.SaveChanges();

                    _log.IngresaLog(_usuarioSesion, String.Concat(_usuarioSesion.Usuario_Nombre, " ha autorizado Visar Anexo de ", item.Rut.ToString(), "-", item.Dv));

                    if (wordDoc != null)
                    {
                        wordDoc.Close(ref objFalse, ref oMissing, ref oMissing);
                    }
                    if (wordApp != null)
                    {
                        wordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
                    }
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                try
                {
                    Marshal.ReleaseComObject(wordDoc);
                    Marshal.ReleaseComObject(wordApp);
                    wordApp = (Microsoft.Office.Interop.Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
                    wordApp = null;
                }
                catch (Exception)
                {
                }
            }
        }
예제 #3
0
        public bool GenereFiniquitosMasivos(ref String Mensaje, List <MssBD.VW_DOC_Finiquitos> _ListFiniquitos, String _RutaFinal)
        {
            Application wordApp = new Application();
            Document    wordDoc = new Document();;

            try
            {
                foreach (var item in _ListFiniquitos)
                {
                    Object oMissing = System.Reflection.Missing.Value;

                    //Object oTemplatePath = String.Concat(_RutaInicioProyecto.Replace("\\Mss Proyecto\\bin\\Debug", String.Empty), "\\Negocio\\WordTemplate\\Finiquito_Template.dotx");
                    //Object oTemplatePath = "C:/Users/Matias Aravena/Pegas/MSS/Mss Aplicativo/Negocio/WordTemplate/Finiquito_Template.dotx";
                    Object oTemplatePath = String.Concat(RutaArchivosMss, "\\Finiquito_Template.dotx");

                    wordApp = new Application();
                    wordDoc = new Document();

                    wordDoc = wordApp.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing);

                    // Creacion bookmark / Tabla Finiquitos
                    Table tblRemuneraciones = getTableByBookmarkName(wordDoc, "Remuneraciones");

                    List <MssBD.Remuneraciones> _remuList = new List <MssBD.Remuneraciones>();
                    _remuList = Modelo_BDMSS.Remuneraciones.Where(fini => fini.Finiquito_Id == item.Finiquito_Id).ToList()
                                .OrderBy(fini => fini.Finiquito_Id).ToList();
                    Int32 orden = 1;
                    foreach (var _remu in _remuList)
                    {
                        tblRemuneraciones.Cell(orden, 1).Range.Text = String.Concat("Remuneraciones del ", _remu.FechaInicio.Value.ToShortDateString(), " al ", _remu.FechaTermino.Value.ToShortDateString());
                        tblRemuneraciones.Cell(orden, 2).Range.Text = String.Concat("$", _remu.monto.ToString());
                        tblRemuneraciones.Rows.Add();
                        orden = orden + 1;
                    }
                    tblRemuneraciones.Cell(orden, 1).Range.Text = "Vacaciones Proporcionales:";
                    tblRemuneraciones.Cell(orden, 2).Range.Text = String.Concat("$", item.Vacaciones.ToString(), ".-");

                    foreach (Field myMergeField in wordDoc.Fields)
                    {
                        Range  rngFieldCode = myMergeField.Code;
                        String fieldText    = rngFieldCode.Text;

                        if (fieldText.StartsWith(" MERGEFIELD"))
                        {
                            Int32  endMerge        = fieldText.IndexOf("\\");
                            Int32  fieldNameLength = fieldText.Length - endMerge;
                            String fieldName       = fieldText.Substring(11, endMerge - 11);

                            switch (fieldName.Trim())
                            {
                            case "FechaActual":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(DateTime.Now.ToLongDateString());
                                break;

                            case "Nombre":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(PrimeraMayuscula(String.Concat(item.Nombres, " ", item.ApellidoPaterno, " ", item.ApellidoMaterno)));
                                break;

                            case "Rut":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(String.Concat(item.Rut, "-", item.Dv));
                                break;

                            case "FechaInicio":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.FechaIngreso.Value.ToLongDateString());
                                break;

                            case "FechaHasta":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.FechaVencimiento.Value.ToLongDateString());
                                break;

                            case "Articulo":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.Articulo);
                                break;

                            case "NumeroArticulo":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.Articulo_Numero.ToString());
                                break;

                            case "Motivo":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.Comentario.ToString());
                                break;

                            case "TotalNumerico":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.MontoTotal.ToString());
                                break;

                            case "TotalLetras":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(PrimeraMayuscula(enletras(item.MontoTotal.ToString())));
                                break;

                            default:
                                break;
                            }
                        }
                    }

                    if (File.Exists(String.Concat(_RutaFinal, "Finiquito_", DateTime.Now.ToShortDateString(), "_", item.Rut, "-", item.Dv, ".pdf")))
                    {
                        Mensaje = String.Concat("Finiquito a crear '", _RutaFinal, "Finiquito_", DateTime.Now.ToShortDateString(),
                                                "_", item.Rut, "-", item.Dv, ".pdf", "' ya existe en la carpeta destino, favor revisar");
                        return(false);
                    }

                    //wordDoc.SaveAs2(String.Concat(_RutaFinal, "Finiquito_", DateTime.Now.ToShortDateString(), "_", item.Rut, "-", item.Dv, ".doc"));

                    Object objSaveAsFile = String.Concat(_RutaFinal, "Finiquito_", DateTime.Now.ToShortDateString(), "_", item.Rut, "-", item.Dv, ".pdf");
                    Object objFileFormat = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;
                    wordDoc.SaveAs2(objSaveAsFile, ref objFileFormat, ref oMissing, ref oMissing,
                                    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                    ref oMissing, ref oMissing);

                    MssBD.Documentos _doc = new MssBD.Documentos();
                    _doc = (from p in Modelo_BDMSS.Documentos
                            where p.Documento_Id == item.Documento_Id
                            select p).First();
                    _doc.PorVisar = false;

                    Modelo_BDMSS.SaveChanges();

                    _log.IngresaLog(_usuarioSesion, String.Concat(_usuarioSesion.Usuario_Nombre, " ha autorizado Visar Finiquito de ", item.Rut.ToString(), "-", item.Dv));

                    if (wordDoc != null)
                    {
                        wordDoc.Close(ref objFalse, ref oMissing, ref oMissing);
                    }
                    if (wordApp != null)
                    {
                        wordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                try
                {
                    Marshal.ReleaseComObject(wordDoc);
                    Marshal.ReleaseComObject(wordApp);
                    wordApp = (Microsoft.Office.Interop.Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
                    wordApp = null;
                }
                catch (Exception)
                {
                }
            }
        }
예제 #4
0
        public bool GenereContratosMasivos(ref String Mensaje, List <MssBD.VW_DOC_Contratos> _ListContratos, String _RutaFinal)
        {
            Application wordApp = new Application();
            Document    wordDoc = new Document();;

            try
            {
                foreach (var item in _ListContratos)
                {
                    //Assembly thisAssembly;
                    //thisAssembly = Assembly.GetExecutingAssembly();
                    //Stream someStream;
                    //someStream = thisAssembly.GetManifestResourceStream("Negocio.WordTemplate.Contrato_Template.dotx");
                    //Assembly _assembly = Assembly.GetExecutingAssembly();

                    // Object oTemplatePath = _assembly.GetManifestResourceStream("WordTemplate\\Contrato_Template.dotx");
                    //Object oTemplatePath = _assembly.GetManifestResourceStream("Negocio.WordTemplate.Contrato_Template.dotx");
                    //Object oTemplatePath2 = _assembly.GetManifestResourceStream("WordTemplate\\Contrato_Template.dotx");

                    Object oTemplatePath = String.Concat(RutaArchivosMss, "\\Contrato_Template.dotx");

                    wordApp = new Application();
                    wordDoc = new Document();

                    wordDoc = wordApp.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing);

                    foreach (Field myMergeField in wordDoc.Fields)
                    {
                        Range  rngFieldCode = myMergeField.Code;
                        String fieldText    = rngFieldCode.Text;

                        if (fieldText.StartsWith(" MERGEFIELD"))
                        {
                            Int32  endMerge        = fieldText.IndexOf("\\");
                            Int32  fieldNameLength = fieldText.Length - endMerge;
                            String fieldName       = fieldText.Substring(11, endMerge - 11);

                            switch (fieldName.Trim())
                            {
                            case "FechaContrato":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(DateTime.Now.ToLongDateString());
                                break;

                            case "Nombre":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(PrimeraMayuscula(String.Concat(item.Nombres, " ", item.ApellidoPaterno, " ", item.ApellidoMaterno)));
                                break;

                            case "Rut":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(String.Concat(FormatNumero(item.Rut.ToString()), "-", item.Dv));
                                break;

                            case "EstadoCivil":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.EstadoCivil);
                                break;

                            case "FechaNacimiento":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.FechaNacimiento.Value.ToLongDateString());
                                break;

                            case "Dirección":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.Direccion);
                                break;

                            case "Comuna":
                                myMergeField.Select();
                                try
                                {
                                    if (item.comuna_nombre == null)
                                    {
                                        Mensaje = "Personal no tiene Comuna asociada. Favor ingresarla y volver a intentar.";
                                        return(false);
                                    }
                                    wordApp.Selection.TypeText(item.comuna_nombre);
                                }
                                catch (Exception)
                                {
                                    Mensaje = "Personal no tiene Comuna asociada. Favor ingresarla y volver a intentar.";
                                    return(false);
                                }
                                break;

                            case "Telefono":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.TelFijo);

                                if (item.TelCelular != string.Empty && item.TelFijo != string.Empty)
                                {
                                    wordApp.Selection.TypeText(String.Concat("Teléfono ", item.TelFijo, " y Teléfono Celular ", item.TelCelular));
                                }
                                else
                                {
                                    if (item.TelCelular != string.Empty)
                                    {
                                        wordApp.Selection.TypeText(String.Concat("Teléfono Celular ", item.TelCelular));
                                    }
                                    else
                                    {
                                        wordApp.Selection.TypeText(String.Concat("Teléfono ", item.TelFijo));
                                    }
                                }
                                break;

                            case "SueldoBaseNumero":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(FormatNumero(item.SueldoBase.ToString()));
                                break;

                            case "SueldoBaseLetras":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(PrimeraMayuscula(enletras(item.SueldoBase.ToString())));
                                break;

                            case "GratificacionNumero":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(FormatNumero(item.Gratificacion.ToString()));
                                break;

                            case "GratificacionLetras":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(PrimeraMayuscula(enletras(item.Gratificacion.ToString())));
                                break;

                            case "AsistenciaNumero":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(FormatNumero(item.BonoAsistencia.ToString()));
                                break;

                            case "AsistenciaLetras":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(PrimeraMayuscula(enletras(item.BonoAsistencia.ToString())));
                                break;

                            case "ProduccionNumero":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(FormatNumero(item.BonoProduccion.ToString()));
                                break;

                            case "ProduccionLetras":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(PrimeraMayuscula(enletras(item.BonoProduccion.ToString())));
                                break;

                            case "ColacionNumero":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(FormatNumero(item.Colacion.ToString()));
                                break;

                            case "ColacionLetras":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(PrimeraMayuscula(enletras(item.Colacion.ToString())));
                                break;

                            case "MovilizacionNumero":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(FormatNumero(item.Movilizacion.ToString()));
                                break;

                            case "MovilizacionLetras":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(PrimeraMayuscula(enletras(item.Movilizacion.ToString())));
                                break;

                            case "BonoTurno":
                                myMergeField.Select();
                                if (item.BonoTurno <= 0)
                                {
                                    wordApp.Selection.TypeText(FormatNumero("0"));
                                }
                                else
                                {
                                    wordApp.Selection.TypeText(FormatNumero(item.BonoTurno.ToString()));
                                }
                                break;

                            case "FechaVencimiento":
                                myMergeField.Select();
                                if (item.TipoContrato.Equals("INDEFINIDO"))
                                {
                                    wordApp.Selection.TypeText("Indefinida");
                                }
                                else
                                {
                                    wordApp.Selection.TypeText(String.Concat("hasta el ", item.FechaVencimiento.Value.ToLongDateString()));
                                }
                                break;

                            case "FechaInicio":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.FechaHasta.Value.ToLongDateString());
                                break;

                            case "AFP":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.Afp_Nombre);
                                break;

                            case "Isapre":
                                myMergeField.Select();
                                wordApp.Selection.TypeText(item.Isapre_Nombre);
                                break;

                            case "Desempeño":
                                myMergeField.Select();
                                try
                                {
                                    if (item.Cargo.Contains("guardia") || item.Cargo.Contains("Guardia") || item.Cargo.Contains("GUARDIA"))
                                    {
                                        wordApp.Selection.TypeText("Guardia de Seguridad.");
                                    }
                                    else
                                    {
                                        wordApp.Selection.TypeText(_personal.Cargo);
                                    }
                                }
                                catch (Exception)
                                {
                                    throw;
                                }
                                break;

                            case "SegundoParrafo":
                                myMergeField.Select();
                                try
                                {
                                    if (item.Cargo.Contains("guardia") || item.Cargo.Contains("Guardia") || item.Cargo.Contains("GUARDIA"))
                                    {
                                        wordApp.Selection.TypeText("Guardia de Seguridad, será el encargado de asistir en la organización y realización de tareas de seguridad del área, patrullar o supervisar las instalaciones para evitar el robo, la violencia, o infracciones contra la empresa contratante, autorizar la entrada y salida de los empleados, visitantes y otras personas con el fin de protegerse contra el Robo y/o Hurto. El guardia de Seguridad es responsable de mantener instalaciones seguras, debe ser capaz de escribir informes sobre las actividades diarias y las irregularidades, tales como daños en los equipos o la propiedad, robos, Hurtos, la presencia de personas no autorizadas o los acontecimientos inusuales, o cualquier otro acontecimiento que revista los caracteres de delito. Un guardia de seguridad debe llamar a la Carabineros o a la Policía, bomberos y/o Ambulancias en casos de emergencia. Cuando un guardia de seguridad se enfrenta a personas no autorizadas que se niegan a abandonar la zona custodiada, deben llamar a la policía para efectuar el procedimiento.");
                                    }
                                    else
                                    {
                                        wordApp.Selection.TypeText(String.Concat(item.Cargo, ", ", _SegundoParrafo));
                                    }
                                }
                                catch (Exception)
                                {
                                    throw;
                                }
                                break;

                            case "DireccionInstalacion":
                                myMergeField.Select();
                                try
                                {
                                    wordApp.Selection.TypeText(_DireccionInstalacion);
                                }
                                catch (Exception)
                                {
                                    throw;
                                }
                                break;

                            case "AfectoBonoAsistencia":
                                myMergeField.Select();
                                try
                                {
                                    //if (_personal.Usuarios.Privilegio_Id == 5)
                                    if (_personal.Cargo.Contains("guardia") || _personal.Cargo.Contains("Guardia") || _personal.Cargo.Contains("GUARDIA"))
                                    {
                                        wordApp.Selection.TypeText("En el evento que el trabajador tenga un día de inasistencia o un atraso injustificado, se le descontará el 100% del bono de Asistencia y Responsabilidad.  Lo anterior sin perjuicio de lo estipulado en el Art. 160, nro. 3 y 4, del Código del Trabajo. El trabajador no tendrá otros beneficios que los que se hagan contar por escrito en el presente contrato.");
                                    }
                                }
                                catch (Exception)
                                {
                                    throw;
                                }
                                break;

                            case "Anticipo":
                                myMergeField.Select();
                                try
                                {
                                    if (_personal.Cargo.Contains("guardia") || _personal.Cargo.Contains("Guardia") || _personal.Cargo.Contains("GUARDIA"))
                                    {
                                        wordApp.Selection.TypeText(FormatNumero("60000"));
                                    }
                                    else
                                    {
                                        wordApp.Selection.TypeText(FormatNumero(_Anticipo.ToString()));
                                    }
                                }
                                catch (Exception)
                                {
                                    throw;
                                }
                                break;

                            case "AnticipoLetras":
                                myMergeField.Select();
                                try
                                {
                                    if (_personal.Cargo.Contains("guardia") || _personal.Cargo.Contains("Guardia") || _personal.Cargo.Contains("GUARDIA"))
                                    {
                                        wordApp.Selection.TypeText(FormatNumero(String.Concat("(", PrimeraMayuscula(enletras("60000")), " pesos chilenos)")));
                                    }
                                    else
                                    {
                                        wordApp.Selection.TypeText(FormatNumero(String.Concat("(", PrimeraMayuscula(enletras(_Anticipo.ToString())), " pesos chilenos)")));
                                    }
                                }
                                catch (Exception)
                                {
                                    throw;
                                }
                                break;

                            case "DepositoBanco":
                                myMergeField.Select();
                                try
                                {
                                    //vista Nº 18162030, del Banco Estado.
                                    if (_personal.Id_Banco == 19 && _personal.TipoCuenta.ToString().Equals("Cuenta Vista"))
                                    {
                                        wordApp.Selection.TypeText(String.Concat("Cuenta Rut", " Nº", _personal.NumeroCuenta, ", del", _Bancos.BuscaNombreBanco((int)_personal.Id_Banco)));
                                    }
                                    else
                                    {
                                        wordApp.Selection.TypeText(String.Concat(_personal.TipoCuenta, " Nº", _personal.NumeroCuenta, ", del", _Bancos.BuscaNombreBanco((int)_personal.Id_Banco)));
                                    }
                                }
                                catch (Exception)
                                {
                                    throw;
                                }
                                break;

                            default:
                                break;
                            }
                        }
                    }

                    if (File.Exists(String.Concat(_RutaFinal, "Contrato_", DateTime.Now.ToShortDateString(), "_", item.Rut, "-", item.Dv, ".pdf")))
                    {
                        Mensaje = String.Concat("Contrato a crear '", _RutaFinal, "Contrato_", DateTime.Now.ToShortDateString(),
                                                "_", item.Rut, "-", item.Dv, ".pdf", "' ya existe en la carpeta destino, favor revisar");
                        return(false);
                    }

                    Object objSaveAsFile = String.Concat(_RutaFinal, "Contrato_", DateTime.Now.ToShortDateString(), "_", item.Rut, "-", item.Dv, ".pdf");
                    Object objFileFormat = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;
                    wordDoc.SaveAs2(objSaveAsFile, ref objFileFormat, ref oMissing, ref oMissing,
                                    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                    ref oMissing, ref oMissing);

                    MssBD.Documentos _doc = new MssBD.Documentos();
                    _doc = (from p in Modelo_BDMSS.Documentos
                            where p.Documento_Id == item.Documento_Id
                            select p).First();
                    _doc.PorVisar = false;

                    Modelo_BDMSS.SaveChanges();

                    _log.IngresaLog(_usuarioSesion, String.Concat(_usuarioSesion.Usuario_Nombre, " ha autorizado Visar Contratos de ", item.Rut.ToString(), "-", item.Dv));

                    if (wordDoc != null)
                    {
                        wordDoc.Close(ref objFalse, ref oMissing, ref oMissing);
                    }
                    if (wordApp != null)
                    {
                        wordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                try
                {
                    Marshal.ReleaseComObject(wordDoc);
                    Marshal.ReleaseComObject(wordApp);
                    wordApp = (Microsoft.Office.Interop.Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
                    wordApp = null;
                }
                catch (Exception)
                {
                }
            }
        }