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