Apúntate a la Zona De Descargas Reservadas (ZDDR). Solo son 20 Euros
Con solo 20€ ayudarás
a mantener el foro.


Seguir a udias en Twitter
Directorio de Empresas de Foros de informática


Todo lo que sueñas, se puede diseñar.
We build your dreams.

 - Principal - Responder - Estadísticas - Registrarse - Buscar - Lista de usuarios -  - Zona de Descargas
 -Privacidad y política de cookies -
Ayuda al foro con tu donación

Búsqueda en los foros

Foros en Udias.com / FileMaker / Contar meses desde varias fechas
Autor Mensaje

Miembro

Asiduo

  Karma           255

#1 Publicado: 22 Sep 2009 11:49 - Editado por: Enigma



Utilizando las fórmulas que en otro hilo pusieron JCU y Perezoso tengo el conteo de MESES que necesito, pero me ha surgido un problema:

If( Fecha de compra >= Get ( CurrentDate ) ; (Month(Fecha de compra) - Month(Get ( CurrentDate ))) + ((Year(Fecha de compra) - Year(Get ( CurrentDate ))) * 12)) - If( Get ( CurrentDate ) >= Fecha de compra ; (Month(Fecha de compra) - Month(Get ( CurrentDate ))) + ((Year(Fecha de compra) - Year(Get ( CurrentDate ))) * 12)) + If( Day(Fecha de compra) >= 15 ; 0 ; 1 )

1. Puedo contar desde la fecha de compra hasta la actualidad. OK.

2. El problema viene con este ejemplo (suponemos el pago de lo que sea DESDE una fecha determinada):

Fecha de compra: Comprador 1 (01-01-2009), Comprador 2 (01-08-2009).
Fecha obligación de pagar impuesto (desde): 01-03-2009.


Con el comprador 2 no hay problema porque la fecha de compra es posterior a la fecha de obligación de pago y la fórmula halla los meses desde que se compró.

Pero el comprador 1 no debe pagar desde que compró, sino desde la fecha del impuesto (7 meses hasta la fecha de hoy).

No se si me he explicado bien.

¿Qué debería añadir a la fórmula anterior?

Gracias a todos.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 7. FM Pro Advanced 11

Miembro

Constante

  Karma             1008

#2 Publicado: 22 Sep 2009 13:39



Hola.

Con tus palabras ya estas proponiendo un algoritmo.

Si la fecha de compra es mayor que la del pago de impuestos, el calculo se hara a partir de la fecha de compra.
Si la fecha de comprar es menor que la del pago de impuestos, el calculo se hara a partir de la fecha del impuesto.

Esto traducido a fm:

if(fecha de compra>=fecha impuestos;fecha de compra;fecha impuestos)

este if te devuelve la fecha a partir de la que hay que hacer el calculo.

En la formula propuesta, la fecha a partir de la que se hace el calculo es "Fecha de compra"; asi que si sustituyes el texto "Fecha de compra", en todas las ocasiones en las que aparece en la formula, por el if , debiera funcionarte.

Un saludo.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Desde Galicia FM6, WindowsXP, Ubuntu

Miembro

Asiduo

  Karma           255

#3 Publicado: 22 Sep 2009 23:43



He conseguido que me calcule desde la fecha de pago del impuesto en aquellos que compraron antes, con estos simples retoques a la fórmula.

If ( Fecha de compra >= Fecha_inicio_pago ; ( Month ( Fecha_inicio_pago ) - Month ( Get ( CurrentDate ) ) ) + ( ( Year ( Fecha_inicio_pago ) - Year ( Get ( CurrentDate ) ) ) * 12 ) ) - If ( Get ( CurrentDate ) >= Fecha_inicio_pago ; ( Month ( Fecha_inicio_pago ) - Month ( Get ( CurrentDate ) ) ) + ( ( Year ( Fecha_inicio_pago ) - Year ( Get ( CurrentDate ) ) ) * 12 ) ) + If ( Day ( Fecha_inicio_pago ) >= 15 ; 0 ; 1 )

El problema es que ahora tengo ambas cosas pero por separado y no se unirlas, jeje.

¿Alguien podría enseñarme como unir ambas fórmulas para que me hiciese ambas cosas?... Si la compra es anterior a la fecha de pago tener en cuenta la fecha de pago y si la compra es posterior tener en cuenta la fecha de compra.

Gracias


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 7. FM Pro Advanced 11

Miembro

Asiduo

  Karma           255

#4 Publicado: 23 Sep 2009 01:26



Antes de nada muchas gracias poutija, tu sugerencia ha sido crucial.

De momento lo he solucionado así:

Campos:
- Fecha de compra.

- Fecha inicio de pago.

- Cálculo fecha de pago. If ( Fecha inicio pago >= Fecha de compra ; Fecha inicio pago ; Fecha de compra )

- Mensualidades a pagar. If ( Cálculo fecha de pago >= Get ( CurrentDate ) ; ( Month ( Cálculo fecha de pago ) - Month ( Get ( CurrentDate ) ) ) + ( ( Year ( Cálculo fecha de pago ) - Year ( Get ( CurrentDate ) ) ) * 12 ) ) - If ( Get ( CurrentDate ) >= Cálculo fecha de pago ; ( Month ( Cálculo fecha de pago ) - Month ( Get ( CurrentDate ) ) ) + ( ( Year ( Cálculo fecha de pago ) - Year ( Get ( CurrentDate ) ) ) * 12 ) ) + If ( Day ( Cálculo fecha de pago ) >= 15 ; 0 ; 1 )

No se si he hecho cosas redundantes o si lo he liado demasiado.

Aquí lo pongo porque en principio parece que funciona y por si le puede valer a alguien, después de todo mi contribución ha sido mínima, las ideas y las fórmulas han sido vuestras.

Muchas gracias.

PD. Seguiré dando problemas


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 7. FM Pro Advanced 11

Miembro

Asiduo

  Karma           255

#5 Publicado: 23 Sep 2009 05:22



Para complicar un poco más la cosa:

Si el pago del impuesto no es mensual (todos los meses) sino una vez, pero en diferentes fechas diferente impuesto. Ej.

Tabla 1
Comprador 1.
Comprador 2.

Tabla 2
Impuesto 1. Fecha 1
Impuesto 2. Fecha 2
Impuesto 3. Fecha 3

F. de compra: Comprador 1 (01-10-2004), Comprador 2 (01-04-2006).

F. de pagar impuesto 1: 01-12-2005, F. de pagar impuesto 2: 01-09-2007, F. de pagar impuesto 3: 01-10-2008.

Al comprador 1 le toca pagar todos los impuestos puesto que aparecen después de él comprar.
Al comprador 2 no le tocaría pagar el impuesto 1 puesto que cuando apareció no había comprado todavía, pero sí el 2, 3 y los que sigan.

Intento hacer un informe, ordenado por comprador, donde aparezcan sólo los cargos que debe pagar cada uno y que me haga el total de estos.

Adjunto una idea de como quedaría (hecha a mano en word, jeje).

Gracias.

Idea
Idea

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 7. FM Pro Advanced 11

Miembro

Constante

  Karma             1008

#6 Publicado: 23 Sep 2009 23:52



Hola.

Si generas una formula como la que ya hiciste, para cada una de estas fechas, tendras un cero o un uno segun pague o no cada impuesto.
Si multiplicas ese cero o uno por lo que le corresponda pagar por el impuesto, y sumas los tres resultados debiera funcionarte.

Te quedaria algo asi:

if(... con fecha impuesto1...)*Cantidad impuesto1
+
if(... con fecha impuesto2...)*Cantidad impuesto2
+
if(... con fecha impuesto3...)*Cantidad impuesto3

Si el resultado de un if es cero, no paga nada en ese sumando, si es uno aporta su parte a la suma total de impuestos.


Un saludo.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Desde Galicia FM6, WindowsXP, Ubuntu

Miembro

Asiduo

  Karma           255

#7 Publicado: 24 Sep 2009 14:46



Una pregunta.

Si los impuestos son registros de una misma tabla, ¿cómo hago para que el programa distinga que cada impuesto tiene una fecha diferente? Todas entán en el mismo campo (fecha impuesto).

¿Debo hacer un cálculo para que le añada la id (secuencial 1, 2, 3, etc) a la fecha? o no se como. De momento tengo 3, pero según se vayan añadiendo....

De momento la fórmula que se me ocurre siguiendo tu consejo, y a no ser que me equivoque es...

If ( Fecha impuesto >= Fecha de compra ;0 ; 1 ) * Importe impuesto

pero ¿y el segundo y tercero y siguientes?....

Debe ser que se me escapa algo, a lo mejor es que llevo demasiado tiempo... jeje


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 7. FM Pro Advanced 11

Miembro

Constante

  Karma             1008

#8 Publicado: 24 Sep 2009 22:55



Hola.

No entiendo si tienes un registro por cada fecha de impuesto, si tienes las fechas de impuestos definidas como un campo repetido o si concatenas todas las fechas con comas, guiones, carros ....

¿Tienes los campos que contienen las fechas de impuestos en la tabla de compras o en una tabla independiente?

Como me imagino que las fechas de impuesto son comunes para todos los clientes de la tabla, lo mas coherente seria almacenarlas en un campo global. A tu eleccion queda si deseas definir un campo unico repetido del tipo fecha, o un conjunto de campos globales del tipo fecha.

Confirmame si tienes previsto trabajar en red. En este caso los campos globales pueden traerte algun que otro problema si no se adoptan determinadas precauciones.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Desde Galicia FM6, WindowsXP, Ubuntu

Miembro

Asiduo

  Karma           255

#9 Publicado: 25 Sep 2009 11:04



Ante todo mi agradecimiento por tu ayuda desinteresada.

No creas que tengo una idea mucho más allá de simple usuario con algún que otro conocimiento extra sobre filemaker.

Siento haberte confundido cuando más arriba puse en la tabla 2 lo de impuesto 1, 2, etc. Me refería a registros, no a campos.

Lo que tengo son dos tablas.

En una están los compradores y en otra están los diferentes impuestos. Tablas simples, con campos simples.

Tabla 1
Id Comprador (texto - index.)
Nombre (texto - index.)
Apellidos (texto - index.)
Fecha compra (fecha)

Tabla 2
ID Impuesto (texto - index., Autointroducción)
Fecha de pago (fecha)
Cantidad (numérico - index.)
Concepto (texto - index.)

De momento en la tabla 1 tengo como 20 registros de compradores
y
en la Tabla 2 tengo 4 registros, 1 es un impuesto mensual y los otros tres son de pago único en la fecha en que sea.

Gracias a todos.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 7. FM Pro Advanced 11

Miembro

Constante

  Karma             1008

#10 Publicado: 26 Sep 2009 00:53



Con la estructura que muestras en la tabla 1, lo mas rapido seria definir varios campos ID, "ID Impuesto a pagar1" "ID Impuesto a pagar2" "ID Impuesto a pagar3",sera en estos campos en los que introduciras que impuesto le corresponde a esta compra, y los valores introducidos deben corresponder con "ID Impuesto " de la tabla2. Defines un enlace por cada campo Id recien definido y el "ID impuesto" de Tabla2, y ya te puedes traer a la formula de JCU, el campo relacionado Fecha de pago ( supongo que es la fecha a partir de la que esta vigente el impuesto ).

Seguro que esto te funcionara, pero si me permites te propongo esta estructura:

En la tabla1 veo que mezclas datos del cliente con datos de la compra.
Te propondria usar la tabla1 exclusivamente como un contenedor de COMPRADORES , en donde almacenar su identidad y otros datos de interes de los mismos ( direccion, telefono, email... ). El campo "Fecha compra", no seria demasiado correcto mantenerlo en esta tabla, fijate que, siendo previsible que un comprador haga mas de una compra, tendriamos varios registros con el mismo "ID de comprador".

La tabla2, quiza la deberiamos entender como una tabla contenedora de los impuestos en vigor y no los que deben pagarse por una transaccion determinada ( esto lo meteriamos en otra tabla ). El campo "Fecha de pago", entiendo que seria la fecha a partir de la cual el impuesto debe pagarse, y siendo asi deberiamos definir un campo " fecha de cese", para cuando ese impuesto no este activo, el sistema no lo tenga en cuenta en sus calculos ( borrar el registro no activo, no seria adecuado, ya que podria alterar las contabilidad de las transacciones realizadas mientras estaba en vigor ). Identificar si el impuesto es de pago unico, mensual, anual ... evidentemente infulira en los calculos, asi que debemos disponer de un campo que tipifique el impuesto, si esta labor la realizas con el campo "concepto", estupendo y si no deberiamos definir otro "tipificacion del impuesto"

Por ultimo, te propongo una tabla3 COMPRAS REALIZADAS enlazada con la de compradores y la de impuestos, en la que pondriamos el campo "Fecha de Compra" ( la que ahora tienes en Tabla1), y todos los campos que necesitemos para definir cada compra ( ID comprador, ID impuestos aplicables, ID de la compra, Calculo del importe, Calculo de impuestos ...)
Es desde esta tabla3 desde donde deberiamos calcular los impuestos correspondientes a cada compra.

Espero que te sirva.

Un saludo


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Desde Galicia FM6, WindowsXP, Ubuntu
Su respuesta

Estilo Negrillas  Estilo Italico  Estilo Subrayado  URL De La Imagen  URL De La Web  Preformatted Text  YouTube URL  Sin código BB
Emoticones
:) ;) :up: :down: :biglol: :confused :cool: :mad: :sad: :shame: :smirk: :tongue: ... Más  Emoticones desactivados
Color de texto
Texto en negro Texto en blanco Texto en gris Texto en rojo Texto en azul Texto en verde Texto en rojo oscuro Texto en cian Texto en azul oscuro Texto en púrpura Texto en amarillo Texto en rosa Texto en naranja Texto en verde oliva Texto en marrón



 » Usuario  » Contraseña 
Solo Usuarios Registrados Pueden Postiar Aqui.
 

Tópicos relacionados con Contar meses desde varias fechas

Dividir rango de fechas en intervalos de fechas por meses en otra tabla
Cálculo de número de meses entre dos fechas.
Contar a la vez datos de varias tablas
Varias fechas en un variable global
Duda sobre como relacionar varias fechas


Conectados: Invitados - 3
Miembros - 0
En verde usuarios ZDDR

Realizado con miniBB © 2001-2021
Para Udias.com © 1996-2021
Hosting con Interdominios