Tengo una tabla llamada tickets, la cual es asi:
Código HTML:
id | valor | cantidad --------------------------- 1 | 1 | 50 2 | 2 | 50 3 | 5 | 50 4 | 10 | 50 5 | 20 | 50 6 | 50 | 50
Estoy que me doy vueltas y hasta ahora nada.
Gracias de antemano.
| |||
Tickets y montos Tengo esto rompiendome la cabeza desde hace unos dias y hasta ahora nada, les explio a ver si alguien tiene una idea de como hacerlo Tengo una tabla llamada tickets, la cual es asi: Código HTML: id | valor | cantidad --------------------------- 1 | 1 | 50 2 | 2 | 50 3 | 5 | 50 4 | 10 | 50 5 | 20 | 50 6 | 50 | 50 Estoy que me doy vueltas y hasta ahora nada. Gracias de antemano. |
| |||
Basaicamente lo q predomina es siempre gastar los tickets de mayo denominacion. Por ejemplo: si es 65 dolares, lo ideal es -1 ticket de 50 -1 de 10 - 1 de 5 claro que si nohay tickets de 10 seria -1 ticket de 50 - 3 de 5 por lo mismo hay un campo con la cantidad disponible de tickets Gracias |
| |||
Buenas, en ese caso, lo que tendrias que hacer es recorrer cada una de las denominaciones, de la mayor a la menor. En cada vuelta, deberías restar el valor de esa denominación, si todavía quedan tickets disponibles y si el valor del ticket no es mayor a lo que falta para cubrir el total. Y básicamente, es eso. Necesitás un par de variables de control y algunos contadores y la base del esquema estaría. Un ejemplo de esto aplicado (lo probé con un par de valores y funciona, pero lo hice al vuelo así que puede tener algunos errores o puede no ser lo más óptimo; el $montoMaximo te convendría tomarlo dinámicamente) Código PHP: Un tema: Tendrías que ver si necesitás más validaciones y, si estás usando base de datos, tené en cuenta que no va a ser realmente "seguro" a menos que uses transacciones (creo que en mysql se puede hacer a partir de la versión 5, este artículo explica el problema --en inglés--: http://www.samspublishing.com/articl...p=29312&rl=1); La idea sería bloquear las tablas mientras estás haciendo las cuentas. Podría pasar (al menos en teoría, y creo que tendrías que tener bastante mala leche) una situación como la siguiente. Supongamos que el usuario A pide $100. Hay $150 en total, todos tickets de $50 (para simplificar). Mientras estás haciendo los cálculos, entra el usuario B y pide también $100. Pero la consulta a la base va a devolver que hay $150 disponibles, porque como está procesándose, el pedido de A no hizo ninguna actualización en la base. Entonces, terminás de calcular el pedido A, le das $100 y descontás 2 tickets de la base. Pero cuando termines de calcular el pedido de B, también le vas a dar $100, cuando en realidad sólo te quedan $50. Bueno, todo esto en realidad es hilar más bien fino, si no estás haciendo algo tipo home banking o por el estilo, un error de este tipo tal vez sea un probabilidad (baja) aceptable. Suerte Califa Última edición por califa010; 13/11/2006 a las 22:26 |
| |||
Gracias por la ayuda amigo Pero aun no puedo pasarlo a trabajar con la bd, todo esa data de valor y cantidad lo tengo en una tabla Código HTML: id | valor | cantidad --------------------------- 1 | 1 | 50 2 | 2 | 50 3 | 5 | 50 4 | 10 | 50 5 | 20 | 50 6 | 50 | 50
__________________ El PISCO SOLO PUEDE SER PERUANO....SALUD! |