// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> // Cartas de aviso de no presentación Sin parámetros (CartaAviso.Rpt) // // Genera las cartas de aviso de no presentación de cálculo anual // La salida es a Word directamente // // Los empleados son pasados por parámetro en una lista de id´s // El ejercicio se pasa por parámetro // Elaboró: Luis Moisés Vázquez Moreno // Fecha: 19 de Agosto de 2013 // // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< // ************************************************************************************************** // Conexiones a las bases de datos de SQL // ************************************************************************************************** Conexion conexionNomipaq = Conexion.crear('jdbc:jtds:sqlserver://' & @parametroConsola('Servidor') & '/'& @parametroConsola('NombreEmpresa') &';instance='& @parametroConsola('Instancia'),@parametroConsola('NombreUsuario'),@parametroConsola('Clave')) Conexion conexionNomipaq2 = Conexion.crear('jdbc:jtds:sqlserver://' & @parametroConsola('Servidor') & '/nomGenerales;instance='& @parametroConsola('Instancia'),@parametroConsola('NombreUsuario'),@parametroConsola('Clave')) // ********************************************************************************************** // Consulta de Empresas // ********************************************************************************************** Consulta tEmpresa=conexionNomipaq2['select e.NombreEmpresa, e.direccion, e.localidad, e.mascarillacodigo, e.tipocodigoempleado from nom10000 e WHERE e.IdEmpresa = \''& @parametroConsola('IdEmpresa') &'\''] Incluye BibliotecaNominas.rpt // ********************************************************************************************** // Parámetros del reporte // // pEjercicio = Ejercicio del cálculo anual // pEmpleados = id´s de empleados // pLugar = Lugar de expedición de las cartas // pFecha = Fecha de expedición de las cartas // ********************************************************************************************** pEjercicio = @parametroConsola('EjercicioCalculoAnual') pEmpleados = @parametroConsola('EmpleadosCalculoAnual') Parametros Titulo 'Aviso de no presentación de cálculo anual' Pagina '&1 Principal' Parametro pLugar = '' Captura Titulo '&Lugar de expedición' Ayuda 'Introduzca el lugar de expedición de la carta' Control CtrlTexto FinCaptura Parametro pFecha = @Hoy() Captura // ND 1360 Se cambia el shortcut C al H para no intervenir con el shortcut de cancelar Titulo 'Fec&ha de expedición' Ayuda 'Seleccione la fecha de expedición de la carta' Control CtrlFecha FinCaptura FinPagina FinParametros // Estandarización de parámetros Si pEmpleados = '' pEmpleados = '-1' Finsi //Consulta de empleados con el rango definido por los parámetros Consulta tEmpleados =conexionNomipaq['select * from nom10001 WHERE idempleado in ('& pEmpleados & ') ORDER BY nombrelargo'] // ********************************************************************************************** // Funcion : fFormateaFecha // Proceso : Convirte una fecha de la forma DDDDMMAA a DD de MMMM del AAAA // Entradas: aFecha // Salidas : lFechaEditada // Creacion: Luis Moisés Vázquez Moreno // ********************************************************************************************** DefFunc fFormateaFecha(aFecha) Local lMes, lMeses, lFechaEditada lMeses [0] = 'Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre' lMes = @SubStr(aFecha;4;2) lFechaEditada[0] = @SubStr(aFecha;6;2) & ' de ' & @Escoge(lMeses; lMes-1) & ' del ' & @SubStr(aFecha;0;4) Retorna lFechaEditada FinFunc // ********************************************************************************************** // Cuerpo del reporte // ********************************************************************************************** tEmpleados.busca primero //Solo si hay empleados creamos el objeto ole Si tEmpleados->encontro //Objeto ole para uso de word ObjetoOLE Word = ObjetoOLE.Crear('Word.Application') word.documents.add word.Selection.ParagraphFormat.LineSpacing = 13.8 //ND 1360 Se setea siempre el salto de linea a 1.15 (12 pts por linea) JCE 09/2013 word.Selection.Font.name = 'Arial' //ND 1360 Se setea siempre el tipo de letra Arial para que sea 100% compatible con Office 2003 JCE 09/2013 gPrimero = true //Indicamos que es el primer empleado a procesar Mientras tEmpleados->encontro Si gPrimero//si es el primer empleado no aplica salto de línea gPrimero = false//desactiva la bandera para que a partir del segundo aplique salto Sino word.Selection.InsertBreak(7)//wdPageBreak Salto de línea Finsi word.Selection.Font.Size = 11 word.Selection.ParagraphFormat.Alignment = 2//wdAlignParagraphRight word.selection.typetext(pLugar& ' ' & fFormateafecha(pFecha)) word.Selection.TypeParagraph word.Selection.ParagraphFormat.Alignment = 0//wdAlignParagraphLeft word.Selection.TypeParagraph word.selection.typetext(tEmpresa('NombreEmpresa')) word.Selection.TypeParagraph word.selection.typetext('Dirección: '& tEmpresa('direccion') & ' '& tEmpresa('localidad')) word.Selection.TypeParagraph word.Selection.ParagraphFormat.Alignment = 1//wdAlignParagraphCenter word.Selection.Font.Size = 14 word.Selection.Font.Bold = 9999998//wdToggle Negritas word.Selection.TypeParagraph word.selection.typetext('Aviso de no presentación de cálculo anual') word.Selection.TypeParagraph Word.Selection.ParagraphFormat.Alignment = 3//wdAlignParagraphJustify word.Selection.Font.Size = 11 word.Selection.Font.Bold = 9999998//wdToggle Quitamos negritas word.Selection.TypeParagraph gParrafo = 'El (La) que suscribe, '& @trim(3;tEmpleados('NombreLargo')) &', con Registro Federal de Contribuyentes ' //...INICIO CIFP ND1406 Se ajustó el formato de fecha en el RFC a AAMMDD gParrafo = gparrafo & @trim(3;tEmpleados('RFC')) & @SubStr(@trim(3;tEmpleados('fechanacimiento'));2;6) & @trim(3;tEmpleados('homoclave')) //...FIN CIFP ND1406 Se ajustó el formato de fecha en el RFC a AAMMDD gParrafo = gParrafo & ', me permito informarle que de conformidad con los artículos 97 último párrafo, inciso c), 98 fracción III, inciso b) de la ley del Impuesto sobre la Renta,' gParrafo = gParrafo & ' y 151 de su Reglamento, voy a presentar por mi cuenta la declaración anual del impuesto sobre la renta por los ingresos percibidos por concepto de sueldos y salarios correspondientes al ejercicio fiscal '& pEjercicio &'.' word.selection.typetext(gParrafo) word.Selection.TypeParagraph word.Selection.TypeParagraph gParrafo = 'Lo anterior se le informa con el fin de solicitar atentamente que no se efectúe el cálculo del impuesto anual por los ingresos por concepto de sueldos y salarios que percibí por el ejercicio '& pEjercicio &'.' word.selection.typetext(gParrafo) word.Selection.TypeParagraph word.Selection.TypeParagraph gParrafo = 'Asimismo, me permito solicitarle la constancia de remuneraciones cubiertas y retenciones efectuadas en el año '& pEjercicio &', la cual, debe ser entregada a más tardar el 31 de enero del '& (pEjercicio + 1) gParrafo = gParrafo & ' para estar en posibilidad de cumplir con la presentación de mi declaración anual en el plazo previsto por las disposiciones fiscales.' word.selection.typetext(gParrafo) word.Selection.TypeParagraph word.Selection.TypeParagraph Word.Selection.ParagraphFormat.Alignment = 1//wdAlignParagraphCenter word.selection.typetext('Atentamente') word.Selection.TypeParagraph word.Selection.TypeParagraph word.selection.typetext('_________________________________') word.Selection.TypeParagraph word.selection.typetext(@trim(3;tEmpleados('Nombre') &' '& @trim(3;tEmpleados('ApellidoPaterno')) &' '& @trim(3;tEmpleados('ApellidoMaterno')))) word.Selection.TypeParagraph word.selection.typetext('Firma') tEmpleados.busca siguiente Finmientras Word.visible = true Finsi