domingo, 17 de enero de 2010

Novedades fiscales 2010

Hola,
Este post lo voy a destinar a comentar las novedades en los programas de ayuda de la AEAT.
Como siempre después de navidad, la Agencia Tributaria cuelga en su página 2 programas de ayuda útiles:
-El primero, el del modelo 390-392, te permite generar un .xml con los datos el resumen anual del IVA y aparte te permite confeccionar el modelo 303 (o el 311 para los autónomos) pero, únicamente del último período del año, ya sea 4T o 12M. Vamos es útil, pero que no, ya que a lo largo del año hay que presentar, como poco, cuatro liquidaciones por IVA, pero saber que existe. Por cierto las fechas para el 303 y el 390 (presentación telemática) es el 1 de febrero de 2010.


-El segundo, la Plataforma Informativas, que como cada año actualiza los modelos a agregar. Como su propio nombre indica te permite elaborar declaraciones informativas -aquellas en las que no hay que rascarse el bolsillo- o mejor dicho resúmenes anuales de los modelos que has ido presentando a lo largo del año. Está el 190 (resumen anual del 110-111), el 118 (resumen anual del 115), el 296 (resumen anual del 216) y el 193 (resumen anual del 123), entre los más usados.

Cabe recordar que aquellos que presenten sus declaraciones en Oficina de Hacienda y Finanzas de Vizcaya o en Álava también tienen disponibles sendos programas de ayuda -incluso permiten importar el formato de los ficheros de la AEAT-, con la particularidad que no existe el periodo 4T o el 12M para el IVA, ya que dicha información se presenta sumada a la de todo el año en el Resumen Anual. En Navarra el Resumen Anual del IVA se presenta en la declaración del 4T o 12M.

Bueno ahora toca comentar lo pobres que somos y lo más pobres que seremos en el 2010 con los cambios en retenciones y tipos impositivos en 2010, que tanto sí como sí van a afectar a todo el mundo.

miércoles, 6 de enero de 2010

Crear una tabla maestro sin ninguna línea de código

Hola, hoy voy a explicar cómo crear una tabla maestro-detalle usando el Visual Studio 2008 pero tengo la intención de no escribir ni una sola línea de código. En un video posterior explicaré como hacer lo mismo pero con código, concretamente utilizaré LINQToSQL para hacer las consultas a la base de datos, y así me olvido de usar T-SQL y a parte es más sencillo porque podré servirme de Intellisense.
Pero no sólo me voy a centrar en la creación del formulario sino que también voy a mostrar cómo se crea una base de datos desde 0, con sus respectivas tablas y relaciones en el SQL Server Management Studio. La base de datos la voy a crear de forma visual, es decir, sin escribir código en Transact-SQL. Lógicamente el proyecto es sencillo: una base de datos con dos tablas (Clientes y Facturas) y una relación de uno a varios (un cliente muchas facturas, pero no al contrario). Si fuera más complicado tendría que crear una consulta y escribir código en T-SQL, de hecho hay cosas como por ejemplo como la creación de un "Snaphot" de la base de datos que no se pueden hacer de forma visual y a parte el trabajar con código te da más flexibilidad, ya que a veces es complicado saber donde está cada cosa.
El problema es que hay que aprender otro lenguaje de programación y ya llevamos unos pocos... SQL Management Studio da la opción de crear scripts de forma automática, similar a lo de 'grabar nueva macro en Excel' e incluso si seleccionamos la base de datos y vamos a Tareas --> Generate Scripts encontraremos un asistente con el que podremos obtener el código en T-SQL con el que poder generar una base de datos e incluso sus tablas con sus respectivos datos. De hecho más abajo he colgado un script que generará la base de datos eBase.
El 100% de las aplicaciones empresariales funcionan así, acceden a los datos que se encuentran en SQL Server o cualquier otro servidor de base de datos o los tienen directamente en local, en una base de datos en el directorio de la aplicación. Por eso, lo que estamos diseñando no difierirá sustancialmente de las aplicaciones que están en producción, de hecho hay muchas que no llego a comprender como han superado la fase de testeo.
En este
link voy a colgar un script que permitirá crear la base de datos eBase. Sólo hay que abrirlo en el SQL Management Studio y ejecutar pulsando F5.





jueves, 10 de diciembre de 2009

Excel para crear el fichero del modelo 115 de la AEAT

Bueno continuando con los 2 últimos post sobre el modelo 115 de la AEAT, ahora voy a colgar el Excel con macros incluidas que permitirá obtener el fichero para la presentación telemática a partir del 2010 ya con el tipo de retención del 19% y que se encuentra en este link.

Excel es una herramienta poderosa para el análisis financiero y desde luego se podría llevar la gestión de una Pyme en Excel (incluso montar un “micro-SAP”, pero cuando dimensión del proyecto se hace tan grande es mejor mirar otras alternativas como Visual Studio, por ejemplo. Cuando usas VBA en Excel tienes que programar “muy a la defensiva”, considerando que todo lo que entra un usuario es erróneo hasta que no se demuestre lo contrario y eso es complicado por no disponer de muchos controles como los de validación que ahorran muchas líneas de código. A parte está la molesta “pantalla de bienvenida” informándote sobre la seguridad de las macros y el hecho de no arrastrar bien una fórmula o tener celdas vinculadas a otros libros que puede tener consecuencias desastrosas para los resultados.
Bueno vamos a por la chicha.
Continuando con la empresa MANOLOSA vamos a generar el modelo 115 del 4T del 2009. He explicado la contabilización y repito el asiento contable de la contabilidad de MANOLOSA:

Con el Excel y si no salta ningún error se generaría el fichero que se presentaría a través de la oficina virtual de la AEAT.


Lógicamente todo esto es falso, esa empresa no existe y yo no voy a presentar este modelo con mi certificado de usuario, ya que en Hacienda es posible que no se lo tomen muy bien. Pero si leemos el fichero vemos que no hay ningún problema.

Lógicamente una vez presentado el modelo 115 deberemos declarar lo mismo en el 180 (tenemos hasta finales de enero). No serviría de nada decir en el 115 que durante el año hemos tenido un único perceptor y luego en el 180 declarar 2 perceptores, o errores de no coincidir la suma de las bases imponibles y retenciones declaradas en los 115 con lo que se declara en el 180.

El modelo 115 es bastante irrisorio pero quizás el 303 pueda ser de utilidad para más gente. De hecho sólo hay que seguir el código y atender a que en el modelo 303 pueden haber importes en negativos y el signo – se ha se substituir por una N.
Ejemplo: -300,30 será N0000000030000
Bueno continúo un poco más. Existe la posibilidad de obtener una copia en papel usando los módulos de impresión que se pueden descargar de este link. Lógicamente si hubiera creado un proyecto en VB.NET, hubiera puesto el contenido de los módulos de impresión en la carpeta bin del proyecto para que se copiasen en el lugar de instalación y con la clase Process llamaría a la aplicación MIPF32 pasándole el argumento que necesita.
Por ahora, y de forma "más manual", si tenemos el fichero del M115 y vamos a Inicio --> Ejecutar y entonces escribimos cmd aparecerá:

Antes he descomprimido el contenido de los módulos de impresión en C:\ y se ha creado una carpeta llamada REDISTRIBUIR. Pues bien escribo cd\ para ir a C:\
Después cd REDISTRIBUIR para ir a la carpeta REDISTRIBUIR y entonces MIPF32 /E:”C:\REDISTRIBUIR\00000000T.TXT y por la impresora por defecto os aparecerá la copia en papel (en este caso lo imprimo en pdf a través del CutePDF Writer).

Para la confección del Excel he adaptado el código de validación de una c.c. disponible aquí, y así el Excel es más real y me consigo que me rechace los códigos de cuenta no válidos"

En próximos post, voy a volver al mundo .NET y lo primero de lo que voy a hablar es sobre LINQ donde enseñaré como crear una tabla maestro-detalle usando LINQ.

domingo, 15 de noviembre de 2009

Escribir y leer archivos .txt usando VBA en Excel

Buenas,
hoy voy a continuar con el post anterior, pero sin tanta contabilidad ni fiscalidad. Este será la primera de 2 entradas donde voy a explicar cómo obtener “el ficherito” para la presentación telemática del modelo 115 a través de la página de la AEAT. En la segunda entrega colgaré el archivo Excel que genera el fichero, pero por ahora me entraré en explicar cómo se escribe y se lee de archivos .txt en Visual Basic 6, cosa que se ha de dominar para entender el meollo de la cuestión.

  • A modo de esquema, éste es el código para crear y/o escribir en un archivo:
    Open [ruta_archivo] For Output As #1
    Print #1, [texto o nombre_variable]
    Close
    #1

  • Para la lectura:
    Open [ruta_archivo] For Input As #1
    Line Input #1, [nombre_variable]
    Close
    #1

Ya sé que cualquier programa de contabilidad mínimamente decente, como A3 o Logic y hasta ERPs más sofisticados como Microsoft Dynamics o SAP -siempre que ésto haya sido desarrollado ya que vale pasta-, generan estos ficheros, ya que sólo tienen que hacer una consulta a sus respectivas bases de datos y obtener como resultado la cadena de texto con el formato que se requiere por la AEAT.
De lo que se trata es abrir los ojos a la creación de ficheros, ya sean .txt o .xml, que nos permitan automatizar procesos contables. Lógicamente Excel no es el mejor entorno para crear aplicaciones de este tipo y desaconsejaría usar ésto en producción al menos que se tratase de la última alternativa. Creando una aplicación Windows usando Visual Studio se tendría una interfaz mucho más desarrollada, la implementación sería más sencilla y el mantenimiento del código sería más fácil. Pero con esto quiero demostrar que con Excel también se puede hacer.

En nuevas entregas desarrollaré el modelo 202 de pago fraccionado sobre impuesto sobre sociedades creando una aplicación Windows en Visual Studio y es posible que más adelante cree un Sitio Web ASP.NET y mostraré como publicarlo en el IIS.
Pues bien éste es el link al Excel y aquí pongo el vídeo donde explico paso a paso los pasos:

Crear y leer archivos de texto en Excel usando VBA (Spanish) from Raúl González on Vimeo.

sábado, 31 de octubre de 2009

Retenciones de alquileres desde un punto de vista contable

Hola, hoy voy a explicar el tema de la retención del 18% sobre rentas del alquiler. Para ello voy a poner el caso de una empresa ficticia llamada MANOLOSA que necesita un local para su oficina y lo alquila a una persona física llamada Raúl González (también podría ser una persona jurídica llamada Raúl S.A. y el ejemplo sería igual, con la única diferencia que RAÚL S.A. tributará en el Impuesto sobre Sociedades mientras que Raúl González rellenará el apartado Actividades Empresariales y Profesionales del IRPF).

A Raúl González no le tendrían que retener si se cumplen las 3 condiciones:

  1. El valor catastral total de los inmuebles arrendados supera los 601.012,10 €.
  2. Su actividad está en el grupo 861 del IAE.
  3. Si fuera una empresa, cosa que no ocurre, y su cifra de negocios superase el millón de euros pagará IAE y no habrá problemas. Pero si está exenta del pago del IAE, por ser persona física o no superar el millón de euros, tendría que aportar otra documentación a Hacienda como escrituras, recibos del IBI y contratos de alquiler.

Si es así, Raúl González ya está tardando en ir a Hacienda a por un certificado que se lo presentaría a MANOLOSA para que no le retenga -pero como este ejemplo es más falso que als facturas del Palau de la Música no pasa nada-.

Pues bien, para el ejemplo la factura del alquiler del mes de Noviembre del 2009 sería la siguiente:
Y con esta factura el asiento contable en la contabilidad de MANOLOSA será este de aquí:
Y 256,49 € será el importe será el importe que pagará MANOLOSA cuando presente el modelo 115 del 4T del 2009 el día 20 de enero del 2010, si no hay más facturas en el período que va de octubre a diciembre. Y por supuesto el día 30 de enero del 2010 presentará a Hacienda el modelo 180 de resumen anual. Aquí pongo como quedaría el modelo 180 suponiendo que no hay más facturas, cosa rara.

Éste será el asiento que aparecerá en la contabilidad de Raúl González persona física:
La cuenta 473.0 recogerá el saldo de las retenciones a favor de Raúl González.
Una vez MANOLOSA presente el modelo 180 emitirá a Raúl González un certificado de retenciones que le servirá para confeccionar su renta. Este certificado se puede imprimir de la Plataforma Informativas de la AEAT que se puede descargar desde aquí.
Para preparar este ejemplo he utilizado la demo del A3CON disponible en el siguiente link.
Pues bien aquí pongo un esquema sobre el alquiler analizando los diferentes casos:

Pues bien como este blog es también de programación y continuando con el ejemplo, en siguientes entradas la voy a liar parda y publicaré un Excel que generará el fichero .txt para la presentación del modelo 115 y con esto recordaré como se escribía y leía de ficheros en Visual Basic 6, cosa que en .NET es diferente y para mí mucho mejor, pero como por ahora el Excel no entiende de .NET ni de System.IO habrá que hacer memoria a refrescar viejos apuntes de programación.

sábado, 24 de octubre de 2009

Ubuntu en Windows XP con VirtualBox

Hola de nuevo, hoy voy a explicar cómo ejecutar Ubuntu en equipo en el que se está ejecutando Windows XP. Para ello me voy a servir de VirtualBox, una aplicación absolutamente gratuita y que se puede descargar del siguiente link.

Con VirtualBox o con VMware (WorkStation o Server) entramos en el tema de moda de los últimos meses: la virtualización. Puedo tener un sistema operativo instalado en mi ordenador y mediante VirtualBox puedo arrancar otro dentro de él con aplicaciones específicas instaladas. Por ejemplo, el caso de tener instalado Ubuntu y arrancar una máquina virtual en la está instalado Visual Studio en el sistema operativo Windows Server 2008. El problema: más vale tener un ordenador “decente” si no quieres problemas a la hora de no tener memoria RAM suficiente, ya que habrán 2 sistemas operativos corriendo a la vez en tu mismo ordenador.
Las posibilidades son infinitas, de hecho en un post anterior expliqué cómo poder en Windows XP trabajar con una máquina virtual en la que viene configurado el SAP Netweaver Trial Edition en el SO Suse Linux. Pues bien ahora lo que voy a hacer es no descargarme los archivos que componen la máquina virtual, sino que voy a crear una desde 0.

A nivel empresarial, esto puede ser un filón, ya que muchas empresas preferirán gastarse el dinero en adquirir potentes servidores y poder a través de ellos administrar la red de forma más fácil: que hay una nueva persona en la organización, pues se clona una máquina virtual creada a tal efecto con todo ya instalado de serie y ya está, que otra necesita un disco duro más grande para almacenar más archivos pues se le da. Habrá una reducción en los costes de administración de la red, ya que ahora ya no habrá que ir ordenador por ordenador viendo si todos los programas funcionan correctamente, si hay que dar permisos de administrador a alguien sobre determinadas carpetas, si un departamento necesita tener instalado tal programa en exclusividad, … Y también en los costes de compra de nuevos terminales para los usuarios finales, ya que no tendrán que ser tan potentes ni con el hardware más avanzado para poder ejecutar aplicaciones que consuman muchos recursos, debido a que las aplicaciones se ejecutarán en el servidor y todos los datos estarán en el servidor.


Si quieres saber de este tema más aquí pongo el
link a un vídeo (in English!) donde se explica, con una presentación más típica de la teletienda, como funciona VMware Infrastructure.


Pues bien en el siguiente vídeo no voy a tratar temas de virtualización servidores y me voy a centrar a explicar como crear una máquina virtual con el SO ubuntu usando VirtualBox:

sábado, 17 de octubre de 2009

Ajax Control Toolkit en VS 2008

Si trabajamos con aplicaciones ASP.NET en Visual Studio y miramos en el cuadro de herramientas el tag (o pestaña) de Extensiones AJAX veremos que hay muy pocos controles, sólo 5. Pero no pasa nada ya que para eso tenemos el AJAX Control Toolkit que son sobre unos 30 controles, desarrollados conjuntamente por Microsoft y por la comunidad de programadores, que nos permitirán crear páginas web más profesionales aumentando la funcionalidad de los típicos controles de ASP.NET. Posiblemente en el Visual Studio 2010 estos controles ya se instalen por defecto en el proceso de instalación, pero por ahora Microsoft se ha querido curar en salud y dejar que la comunidad los pruebe y los desarrolle y, lo más importante, que se encuentren los posibles bugs antes que anticiparse a incluirlos sin testearlos lo suficiente. El Ajax Control Toolkit se puede descargar en la página de codeplex.com, donde además se pueden encontrar un montón de proyectos de código abierto interesantes que se pueden cuchichear para ir aprendiendo.

Pues bien éste será el contenido del siguiente vídeo: