public Boolean RegistrarFiniquito(Int32 DocumentoTipo_Id , MssBD.Usuarios _usu , MssBD.CON_Empleados_Rut_Centro_Result _per , bool PorVisar , string RutaFinal , ref String Mensaje , Int32 Doc_Id , Finiquitos _Finiquito , IDictionary <int, Negocio.Documentos.Remuneracion> _listRemu) { try { Int32 _Finiquito_Id = 0; MssBD.Finiquito _fin = new MssBD.Finiquito(); _fin.Documento_Id = Doc_Id; _fin.Articulo = _Finiquito._Articulo; _fin.Articulo_Numero = Int32.Parse(_Finiquito._NumeroArticulo); _fin.Comentario = _Finiquito._Motivo; _fin.Documento_Id = Doc_Id; _fin.Vacaciones = _Finiquito._Vacaciones; _fin.MontoTotal = _Finiquito._Total; _fin.RutaFinal = RutaFinal; Modelo_BDMSS.Finiquito.Add(_fin); Modelo_BDMSS.SaveChanges(); _Finiquito_Id = Modelo_BDMSS.Finiquito.Where(fin => fin.Finiquito_Id == fin.Finiquito_Id) .Max(fin => fin.Finiquito_Id); foreach (var item in _listRemu) { Remuneracion remu = new Remuneracion(); remu = (Remuneracion)item.Value; MssBD.Remuneraciones _remu = new MssBD.Remuneraciones(); _remu.FechaInicio = remu.FechaInicio; _remu.FechaTermino = remu.FechaTermino; _remu.Finiquito_Id = _Finiquito_Id; _remu.monto = remu.Monto; Modelo_BDMSS.Remuneraciones.Add(_remu); Modelo_BDMSS.SaveChanges(); } _log.IngresaLog(_usu, String.Concat(_usu.Usuario_Nombre, " ha registrado Finiquito de ", _per.Rut, "-", _per.Dv)); 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; } return(true); } catch (Exception) { throw;; } }
public Boolean GeneraFiniquito(ref String Mensaje, IDictionary <int, Negocio.Documentos.Remuneracion> _listRemu) { Application wordApp = new Application(); Document wordDoc = new Document(); try { Object oMissing = System.Reflection.Missing.Value; //System.Windows.forms.application.startuppath var Assembly2 = System.Reflection.Assembly.GetExecutingAssembly(); Object oTemplatePath = String.Concat(RutaArchivosMss, "\\Finiquito_Template.dotx"); wordDoc = wordApp.Documents.Add(ref oTemplatePath, ref oMissing, ref oMissing, ref oMissing); // Creacion bookmark / Tabla Finiquitos Table tblRemuneraciones = getTableByBookmarkName(wordDoc, "Remuneraciones"); int i = 0; for (i = 1; i <= _listRemu.Count(); i++) { Remuneracion remu = new Remuneracion(); remu = (Remuneracion)_listRemu.ElementAt(i - 1).Value; tblRemuneraciones.Cell(i, 1).Range.Text = String.Concat("Remuneraciones del ", remu.FechaInicio.ToShortDateString(), " al ", remu.FechaTermino.ToShortDateString()); tblRemuneraciones.Cell(i, 2).Range.Text = String.Concat("$", FormatNumero(remu.Monto.ToString()), ".-"); tblRemuneraciones.Rows.Add(); } tblRemuneraciones.Cell(i + 1, 1).Range.Text = "Vacaciones Proporcionales:"; tblRemuneraciones.Cell(i + 1, 2).Range.Text = String.Concat("$", _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(_per.Nombres, " ", _per.ApellidoPaterno, " ", _per.ApellidoMaterno))); break; case "Rut": myMergeField.Select(); wordApp.Selection.TypeText(String.Concat(FormatNumero(_per.Rut.ToString()), "-", _per.Dv)); break; case "FechaInicio": myMergeField.Select(); wordApp.Selection.TypeText(_per.FechaIngreso.Value.ToLongDateString()); break; case "FechaHasta": myMergeField.Select(); wordApp.Selection.TypeText(_per.FechaVencimiento.Value.ToLongDateString()); break; case "Articulo": myMergeField.Select(); wordApp.Selection.TypeText(_Articulo); break; case "NumeroArticulo": myMergeField.Select(); wordApp.Selection.TypeText(_NumeroArticulo); break; case "Motivo": myMergeField.Select(); wordApp.Selection.TypeText(_Motivo); break; case "TotalNumerico": myMergeField.Select(); wordApp.Selection.TypeText(String.Concat("$", FormatNumero(_Total.ToString()))); break; case "TotalLetras": myMergeField.Select(); wordApp.Selection.TypeText(PrimeraMayuscula(enletras(_Total.ToString()))); break; default: break; } } } if (File.Exists(String.Concat(_RutaFinal, "Finiquito_", DateTime.Now.ToShortDateString(), "_", _per.Rut, "-", _per.Dv, ".pdf"))) { Mensaje = String.Concat("Finiquito a crear '", _RutaFinal, "Finiquito_", DateTime.Now.ToShortDateString(), "_", _per.Rut, "-", _per.Dv, ".pdf", "' ya existe en la carpeta destino, favor revisar"); return(false); } //wordDoc.SaveAs2(String.Concat(_RutaFinal, "Finiquito_", DateTime.Now.ToShortDateString(), "_", _per.Rut, "-", _per.Dv, ".doc")); Object objSaveAsFile = String.Concat(_RutaFinal, "Finiquito_", DateTime.Now.ToShortDateString(), "_", _per.Rut, "-", _per.Dv, ".pdf"); 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); //wordDoc.SaveAs2(String.Concat(_RutaFinal, "Contrato_", DateTime.Now.ToShortDateString(), "_", _per.Rut, "-", _per.Dv, ".doc")); _log.IngresaLog(_usuarioSesion, String.Concat(_usuarioSesion.Usuario_Nombre, " ha generado Finiquito de ", _per.Rut, "-", _per.Dv)); return(true); } catch (Exception ex) { throw ex; } finally { try { if (wordDoc != null) { wordDoc.Close(ref objFalse, ref oMissing, ref oMissing); } if (wordApp != null) { wordApp.Quit(ref oMissing, ref oMissing, ref oMissing); } Marshal.ReleaseComObject(wordDoc); Marshal.ReleaseComObject(wordApp); Marshal.ReleaseThreadCache(); wordApp = (Microsoft.Office.Interop.Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application"); wordApp = null; } catch (Exception) { } } }