Foros del Web » Programación para mayores de 30 ;) » Programación General »

Problema para crear un algoritmo

Estas en el tema de Problema para crear un algoritmo en el foro de Programación General en Foros del Web. Hola. Estoy desarrollando un sistema en PHP y MySQL. Ya tengo bastante desarrollado, pero tengo un problema con un algoritmo que necesito implementar. Tengo productos ...
  #1 (permalink)  
Antiguo 30/07/2008, 10:27
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 21 años, 9 meses
Puntos: 0
Problema para crear un algoritmo

Hola.
Estoy desarrollando un sistema en PHP y MySQL.
Ya tengo bastante desarrollado, pero tengo un problema con un algoritmo que necesito implementar.
Tengo productos electricos que forman parte de la configuracion de un servicio, pero a este servicio
se le puede cambiar un producto y necesito contar cuantos servicios se han vendido con una u otra configuracion.
Es decir, tengo el servicio1, que contempla 10 unidades del producto a y 10 unidades del producto b.
Ya he vendido 5 servicios con esa configuracion. Cambio la configuracion del servicio1 y le agrego el producto c. Luego vendo 3 servicios con esa configuracion. El script para configurar los servicios ya esta funcionando, pero necesito agregar algo que me cuente los servicios vendidos con una u otra configuracion. Es decir, que el sistema me pueda decir :
Se han Vendido :
5 Servicios 1 con producto a, producto b.
3 Servicios 1 con producto a, producto b, producto c.

Estas son las tablas que intervienen:
Código PHP:
//Tabla Productos
productos (
  `
id_productoint(11NOT NULL auto_increment,
  `
nombre_productovarchar(100) default NULL,
  `
unidad_medidavarchar(100) default NULL,
  `
valor_compraint(11) default NULL,
  `
valor_ventaint(11) default NULL,
  `
stockint(11) default NULL,
  `
fecha_registrotimestamp NULL default CURRENT_TIMESTAMP)



//Tabla Servicios
`servicios` (
  `
id_servicioint(11NOT NULL auto_increment,
  `
nombrevarchar(200) default NULL,
  `
subclasificacionvarchar(200) default NULL,
  `
valorint(11) default NULL,
  `
estadovarchar(20) default NULL,
  `
fecha_registrotimestamp NULL default CURRENT_TIMESTAMP)


//Tabla Servicios Detalle
`servicios_detalle` (
  `
id_servicios_detalleint(11NOT NULL auto_increment,
  `
id_servicioint(11) default NULL,
  `
id_productoint(11) default NULL,
  `
cantidaddecimal(11,2) default NULL,
  `
valor_unitarioint(11) default NULL,
  `
sub_totalint(11) default NULL,
  `
fecha_registrotimestamp NULL default CURRENT_TIMESTAMP
Espero que me entiendan la idea y ojala alguien me puede orientar sobre que puedo hacer.
De antemano, Gracias.

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #2 (permalink)  
Antiguo 30/07/2008, 13:01
Avatar de Darth_Carl  
Fecha de Ingreso: mayo-2008
Ubicación: En Foros DWP
Mensajes: 160
Antigüedad: 16 años
Puntos: 8
Respuesta: Problema para crear un algoritmo

Explicate mejor, para que sea más fácil ayudarte
__________________
Si te ha servido, un karma POSITIVO es agradecido
NOTA: También se aceptan donaciones a PayPal xD
  #3 (permalink)  
Antiguo 30/07/2008, 13:54
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 21 años, 9 meses
Puntos: 0
Respuesta: Problema para crear un algoritmo

Voy a tratar de explicarme mejor con datos:

Estos son los registros que hay en las tablas:

Tabla productos
id_producto,nombre_producto,unidad_medida,valor_co mpra,valor_venta,stock,fecha_registro
1 ,Cable Rojo ,METRO ,100 ,180 ,125 ,2008-05-26 19:20:25
2 ,Cable Verde ,METRO ,90 ,170 ,25 ,2008-05-27 09:20:15
3 ,Cable Negro ,METRO ,110 ,180 ,78 ,2008-05-27 09:20:53

Tabla servicios
id_servicio,nombre ,subclasificacion,valor,estado,fecha_registro
1 ,CENTRO UNO ,Enchufes ,12000,ACTIVO,2008-05-30 10:51:20


Tabla servicios_detalle
id_servicios_detalle,id_servicio,id_producto,canti dad,valor_unitario,sub_total,fecha_registro
1 ,1 ,1 ,10 ,180 ,1800 ,2008-05-30 10:52:10
2 ,1 ,2 ,10 ,170 ,1700 ,2008-05-30 10:54:21


Ahora, en el sistema hago una venta de 5 unidades del servicio 'CENTRO UNO', que lleva 'Cable Rojo' y 'Cable Verde' (Esto ya esta desarrollado y funciona OK).

Luego, modifico la configuracion del servicio 'CENTRO UNO' y queda asi : (la modificacion solo es en la tabla servicios_detalle)

Tabla servicios_detalle
id_servicios_detalle,id_servicio,id_producto,canti dad,valor_unitario,sub_total,fecha_registro
1 ,1 ,1 ,10 ,180 ,1800 ,2008-05-30 10:52:10
2 ,1 ,3 ,10 ,180 ,1800 ,2008-05-31 23:22:18

Ahora, en el sistema hago una venta de 3 unidades del servicio 'CENTRO UNO', que lleva 'Cable Rojo' y 'Cable Negro'.


El Algoritmo que necesito implementar tiene que mostrarme un resultado asi :

Analisis Historico de Servicios
Nombre Servicio : CENTRO UNO

Cantidad vendidas : 05
Configuracion :
Cable Rojo
Cable Verde

Cantidad Vendidas : 03
Configuracion:
Cable Rojo
Cable Negro



Es decir, al momento de configurar los servicios debo insertar en alguna tabla el detalle de como esta configurado el servicio.
Luego, cuando realizo una venta, agrego las cantidades vendidas de ese servicio con esa configuracion a la tabla.


Espero ser un poco mas claro y ojala me orienten.

Gracias.

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #4 (permalink)  
Antiguo 30/07/2008, 14:27
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 17 años, 11 meses
Puntos: 1
Respuesta: Problema para crear un algoritmo

ok, crea otra tabla para las ventas y solo incluye el id de la venta, el id del servicio, el id del detalle y la fecha de la venta, así llegas rápido a los datos que requieras ver, ya que puedes hacer las consultas de las ventas por centro, por detalle o por fecha de venta.
__________________
" La vida es un programa que no hemos logrado depurar."
"El programar tu vida es como si le metieras más errores a tu futuro, el proceso es ahora"
  #5 (permalink)  
Antiguo 30/07/2008, 15:00
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 21 años, 9 meses
Puntos: 0
Respuesta: Problema para crear un algoritmo

No puedo utilizar eso, pq el id_servicio es el mismo, si hago un count sobre la tabla ventas, ordenado por id_servicio, me retornara todo lo del id_servicio. Para el caso me diria 8 unidades vendidas para el id_servicio 1 'CENTRO UNO'.

Lo que necesito es que al modificar un servicio, revisarlo en alguna tabla para ver como esta configurado, si no son iguales (el que estoy modificando con el que esta en la tabla), debo ingresarlo como una nueva configuracion del servicio. De esta forma, en esta tabla voy a tener dos configuraciones para el id_servicio 1.
Luego, cuando hago la venta debo revisar la configuracion que tiene el servicio que estoy vendiendo y revisar las configuraciones que hay para ese servicio, en la que coincida le sumo la cantidad vendida para ir acumulando.

Respecto de lo mismo, tengo una consulta:
Se pueden comparar arreglos o hay alguna funcion PHP que haga esto ?
Se puede:
Código PHP:
$arreglo1 = array('1','2');
$arreglo2 = array('1','3');
if(
$arreglo1 == $arreglo2)
   echo 
"son iguales";
else
   echo 
"no son iguales"
Se puede hacer eso ?

Gracias.

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #6 (permalink)  
Antiguo 30/07/2008, 15:42
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
Respuesta: Problema para crear un algoritmo

no me he detenido a leer todo, asi que si lo que escribo es una burrada lo siento, pero creo que el problema es de conceptos, para mi, tengo materiales, y tengo servicios, el servicio1 a consta de material1 y material2, si luego, tengo ese servicio con material1 y material3 con material7 pues ese no es el mismo servicio1, seria el servicio2.
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
  #7 (permalink)  
Antiguo 30/07/2008, 21:55
Avatar de Gerifaltus  
Fecha de Ingreso: junio-2005
Ubicación: Tabasco, México
Mensajes: 180
Antigüedad: 18 años, 10 meses
Puntos: 4
Respuesta: Problema para crear un algoritmo

Cita:
Iniciado por KillerBKS Ver Mensaje
Ahora, en el sistema hago una venta de 5 unidades del servicio 'CENTRO UNO', que lleva 'Cable Rojo' y 'Cable Verde' (Esto ya esta desarrollado y funciona OK).

Luego, modifico la configuracion del servicio 'CENTRO UNO' y queda asi : (la modificacion solo es en la tabla servicios_detalle)
Coincido con Xcars, el detall es más de concepto que programación, una pregunta por qué debes modificar un servicio (CENTRO UNO), si se supone que ese servicio ya está registrado?

Cita:
Iniciado por KillerBKS Ver Mensaje

El Algoritmo que necesito implementar tiene que mostrarme un resultado asi :

Analisis Historico de Servicios
Nombre Servicio : CENTRO UNO

Cantidad vendidas : 05
Configuracion :
Cable Rojo
Cable Verde

Cantidad Vendidas : 03
Configuracion:
Cable Rojo
Cable Negro
Para obtener un historial como el que quieres, debe estar guardado, de lo contrario solo obtendrás los ultimos datos que modificaste como en el caso de CENTRO UNO. Debes considerar la propuesta de XCARS, cada servicio debe ser independiente y tener sus propios productos y de está manera podrás tener tu historial a como lo deseas.

Saludos.
__________________
:::.. Todo tiene un ¿Por qué? y un ¿Para qué? ..:::
:::.. Todo se reduce a un SI y a un No ..:::
  #8 (permalink)  
Antiguo 31/07/2008, 02:21
Avatar de Darth_Carl  
Fecha de Ingreso: mayo-2008
Ubicación: En Foros DWP
Mensajes: 160
Antigüedad: 16 años
Puntos: 8
Respuesta: Problema para crear un algoritmo

Prueba a crear una tabla que sea productos_vendidos, con todos los productos como campos. Luego, insertas el número 0 en cada campo, y cuando se venda alguno, utiliza este code, en el que se usa cablerojo como ejemplo:
Código PHP:
<?php
$vendidos
=mysql_query("SELECT cablerojo FROM productos_vendidos");
$vendibles=$vendidos 1;
mysql_query("UPDATE productos_vendidos SET cablerojo=" $vendibles " WHERE cablerojo = " $vendidos ");
?>
__________________
Si te ha servido, un karma POSITIVO es agradecido
NOTA: También se aceptan donaciones a PayPal xD
  #9 (permalink)  
Antiguo 31/07/2008, 10:33
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 21 años, 9 meses
Puntos: 0
Respuesta: Problema para crear un algoritmo

Ok,
Agradezco sus comentarios.
El tema de por que cuando cambio un detalle de un servicio no corresponde a otro servicio es solo por la definicion que quiere el cliente.
CENTRO UNO, puede tener distintos detalles pero siempre es el mismo servicio.
Mi idea es poder manejar un historico de cada servicio, es decir, un historico de como ha sido configurado en N ocaciones, y que cantidad se han vendido en cada una de esas distintas configuraciones.
Tal vez ahi quede mas clara mi duda.
Gracias.

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #10 (permalink)  
Antiguo 31/07/2008, 10:41
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
Respuesta: Problema para crear un algoritmo

Cita:
Iniciado por KillerBKS Ver Mensaje
Ok,
Agradezco sus comentarios.
El tema de por que cuando cambio un detalle de un servicio no corresponde a otro servicio es solo por la definicion que quiere el cliente.
CENTRO UNO, puede tener distintos detalles pero siempre es el mismo servicio.
Mi idea es poder manejar un historico de cada servicio, es decir, un historico de como ha sido configurado en N ocaciones, y que cantidad se han vendido en cada una de esas distintas configuraciones.
Tal vez ahi quede mas clara mi duda.
Gracias.

Salu2 !!!
No concuerdo con esto, como sera el mismo servicio CAMBIAR ACEITE con el servicio CAMBIAR LLANTAS?? y que ambos se llamen SERVICIO1, no... no estoy de acuerdo, y recuerda una cosa es el back-end y la otra el front-end, ya te explico pero si se puede hacer lo que tu quieres, pero lo que tendras luego de 12 meses es BASURA DE DATOS porque ni tu entenderas, y cuando intentes reconstruir un historico, te va a dar mas dolores de cabeza de los que crees, yo ya hice una vez algo asi, y creeme, no es la solucion.... pero bueno.... yo te invitaria a que consideras tener SERVICIO1 y SERVICIO2, por asi decirlo, servicio_id=1 y servicio_id=2 y en la descripcion del servicio el mismo nombre, nose,. pero nunca puedes considerar que el productoA es el mismo ProductoB cuando hay diferencias en sus propiedades y sus metodos, etc, para eso existe la herencia....

Como hacer lo que quieres? facil, en tus tablas historias, tendras que guardar toooodo, toooodos los movimientos, si vendes el servicio1 tendras que guardar en el historico todo lo que contenia, materiales, precios, etc etc y luego podras saber en el tiempo como se vendieron, pero tendras que calcular cuando hubo cambios, etc etc
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
  #11 (permalink)  
Antiguo 31/07/2008, 14:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema para crear un algoritmo

Tema trasladado a Ingenieria del Software y Gestion de Proyectos.
  #12 (permalink)  
Antiguo 04/08/2008, 18:25
 
Fecha de Ingreso: agosto-2008
Mensajes: 7
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Problema para crear un algoritmo

ok. varias cositas

1. el problema debes solucionarlo en el diseño de la base mas que en la programacion.
2. tiene que observar como es en realidad el negocio y como va a ser utilizado(se que es dicifil predecir en un futuro su uso pero has alguna especie de analisis)
3. si los cambios dentro del servicio son muy frecuentes tienes que en definitiva olvidarte de tener una tabla historial.
4. si no una opcion muy practica y que en lo personal implementaria seria:
que el servicio no estubiesen predefinidos los productos que este contenga. o siemplemente en otra tabla liste los que pudiese tener y luego en la interfaz el usuario escoja los productos que quiere quiere con ese servicio asi te seria mas facil llevar un informe.

te coloco un ejemplo mas claro en un restaurante tienes un servicio llamado hamburguesa: sus posibles ingredientes son: - tomate, - cebolla, -- salsas,etc simplemente cuando hagas el pedido en la interfaz escojas si quieres todos los ingredientes o solo algunos. y sigue siendo una hamburguesa. asi mismo podrias calcular cuantas hamburguesas sin cebolla han pedido.. no te parece es mucho mas facil que tener un servicios : hamburguesa sin cebolla o hamburguesa con cebolla. mas tardecito

te hago el favor y te modelo el sistema mientras si deseas puedes escribirme a [email protected]
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:51.