示例#1
0
        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;;
            }
        }
示例#2
0
        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)
                {
                }
            }
        }