Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?
26 usuarios Online (0)
Darse de alta en la web | Recuperar password   
Inicio / Foros / MySQL / calculo de costos
6 respuestas recibidas | 186 visitas | Categoría MySQL

calculo de costos

Avatar de dantrix
Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2

(Nivel 2 - 29 posts)

#0 Offline dantrix Usuario 05 abr 08 (21:41)  
holas,
avanzando con el sistema de almacen que ya esta casi completo, por lo menos a lo que yo queria.

esta en la versión 0.9, actualmente puede realizar las siguientes funciones:
gestion de mercaderia, ingreso y egreso de mercaderia.
consulta de stock por clase de productos, presentacion de productos y principalmente, proveedores.
kardex de producto, para ver las entradas y salidas de un producto.

digo que esta casi completo pues la unica tarea que le falta es la de promediar costos, me explico.
por ejemplo, el producto galletas rellenitas x6 fresa (de codigo: 10001) cuya presentacion es caja x40 y proveedor es gn, tiene los siguientes movimientos:
ingresa 20 productos con costo 15 (costo unitario para todos)
sale 10 productos
ingresa 30 productos con costo 20
sale 25 productos.

el kardex registra esos movimientos y crea ala siguiente tabla(es una consulta):

Producto: 10001
Fecha: Cantidad: costo: tipo*: Documento:
2008-04-05 14:57:40 25 0 S 222
2008-04-05 14:56:50 30 20 I 111
2008-04-05 14:15:57 10 0 S os 01
2008-04-05 14:12:46 20 15 I 123456
Stock Actual: 15

*tipo: I = ingreso , S = salida

yo lo ingreso con costo 0 pues el costo debe ser automatico,
es decir si hay 20 productos cuyo costo es 15, en la siguiente operacion deben de salir 10 productos a ese costo y asi para todos los casos.

eso es lo que aun no puedo hacer y no se ocurre como hacerlo,

alguien con una idea sobre esto,


saludos
dantrix on gmail.com

el sistema esta funcionando en

Avatar de dantrix
Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2

(Nivel 2 - 29 posts)

#1 Offline dantrix Usuario 05 abr 08 (22:13)  
http://dantrix2006.iespana.es/

primero vean los productos que estan creados , en la seccion consultas de stock, ver todos los productos

algunos datos más

Avatar de jurena
Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5

(Nivel 5 - 729 posts)

#2 Offline jurena Usuario 07 abr 08 (17:40)  
Yo, al menos, necesito algunas aclaraciones más para intentar ayudarte, pues no he entendido todo bien.
Explica con más detalle que es el ingreso y la salida, cómo se establece el precio de ingreso y el de salida; a qué te refieres con costo automático y cuál es la operación completa de la que quieres obtener el dato final, si es un sumatorio de precio de ingresos menos precios de salidas, etc.

ojala me haya explicado bien

Avatar de dantrix
Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2

(Nivel 2 - 29 posts)

#3 Offline dantrix Usuario 08 abr 08 (19:05)  
Hola Jurena,
gracias por el apoyo , puesa pesar de no entenderme tienes la intencion de aopyar, y no solo a mi sino a otras personas que estan en la pagina. yo siempre con el problema de no saber explicarme y/o de pensar que todos pensamos igual.

a ver, ahora si, voya a tratar de explicar lo mejor posible:

ASPECTO FUNCIONAL

las compras se formulan de acuerdo al stock (numero de productos), si el proveedor "A" viene los lunes(por ejemplo) para llenar los pedidos, ese dia a primera hora se tiene el listado del stock de todos los productos que vende el proveedor "A", teniendo en cuenta que los pedidos tardan en llegar de uno a dos dias. Por ejemplo el proveedor "A" vende los siguientes productos:

(stock al lunes en la mañana):
Producto Codigo cantidad(en u.f.) minimo(en u.f.)*
prod. a 100001 25 50
prod. b 100002 26 50
prod. c 100003 27 50
prod. d 100004 28 50
prod. e 100005 29 50
**u.f. = unidades fisicas, para estandarizar.
**u.fm = unidades monetarias, para estandarizar.
* el minimo no esta establecido, es decir, el dueño de la empresa segun su criterio elige cuanto es el minimo, pero para este caso, pongamos que para todos los productos es 50.

aca tambien las decisiones se toman al momento, por ejemplo, el producto a cuyo precio normal oscila entre 10.00 u.m. y 12.00 u.m, pero el proveedor nos menciona que si compramos 50 u.f. le da un precio de 7.00 u.m., se puede aceptar la condicion pues por cantidad puede resultar ventajoso. es por eso que se necesita tener un historial de los precios.
Pero digamos que no hay oferta y se pido lo que se encesita para un minimo que es de 25, 24, 23, 22,21 para los productos a, b, c, d y e respectivamente.

ok, el miercoles(2008-04-09 11:00:00 , por ejemplo) llega el pedido segun lo mencionado anteriormente(con factura F/. 0123456789), se almacena y se registra el ingreso en la tabla de movimientos de la siguiente manera:
En el index se dirige a la parte movimiento de mercaderia , se introduce la cantidad de productos a ingresar (en este caso 5) y el documento de referencia (la factura F/. 0123456789 ) y pinchamos el boton de ingreso.
en la siguiente pagina (/ingreso.php) nos aparecera 5 selects con sus respectivos campos de texto para la cantidad y costo de los productos, pinchamos aceptar, y saldra una pagina (/ingreso2.php) que procesa las operaciones y muestra el mensaje de "operacion satisfactoria".ingreso2.php realiza:
- un insert en la tabla mov por cada movimiento hecho, si se ingresa 5 productos, se tendra 5 nuevos registros:
"INSERT INTO mov (prd_ids, mov_qty, mov_cto, mov_flag, mov_date, mov_ref) VALUES ($id_prod, $cantidad, '$costo', '$tipo', '$fecha', '$ref')"
- un update* en la tabla productos de acuerdo al codigo del producto ingresado:
"UPDATE productos SET productos.prd_qty = productos.prd_qty + $cantidad WHERE productos.prd_id = $id_prod "
*si es que es salida hara una resta en ves de una suma.
para consultar el movimiento realizado, en el index, nos dirigimos a la parte kardex, y podemos ver los movimientos por producto introduciendo el codigo en el campo de texto,o podemos ver todos los movimientos dandole al vinculo "ver todo los movimientos". digamos que el movimiento anterior es el unico que tenemos, nos mostrara la siguiente tabla:
Fecha: Codigo: Cantidad: costo*: tipo**: Documento:
2008-04-09 11:00:00 100001 25 20.00 I F/. 0123456789
2008-04-09 11:00:00 100002 24 20.00 I F/. 0123456789
2008-04-09 11:00:00 100003 23 20.00 I F/. 0123456789
2008-04-09 11:00:00 100004 22 20.00 I F/. 0123456789
2008-04-09 11:00:00 100005 21 20.00 I F/. 0123456789
* el costo de los ingresos de mercaderia es obtenida de la factura.
** los tipos : I = ingreso , S = salida.
pasan dos dias, viernes (2008-04-11 13:00:00), por ejemplo, ahora queremos hacer una salida de mercaderia, pues se ha vendido en tienda y necesitamos reponer 15, 14, 13, 12 y 11 u.f. de los productos para los productos a, b, c, d y e respectivamente, para eso se ha realizado una orden de despacho (OD/.001), realizando el mismo procedimiento que para el ingreso, consultamos los movimientos realizados en el kardex y veremos:
Fecha*: Codigo: Cantidad: costo**: tipo: Documento:
2008-04-11 13:00:00 100001 15 S OD/.001
2008-04-11 13:00:00 100002 14 S OD/.001
2008-04-11 13:00:00 100003 13 S OD/.001
2008-04-11 13:00:00 100004 12 S OD/.001
2008-04-11 13:00:00 100005 11 S OD/.001
2008-04-09 11:00:00 100001 25 20.00 I F/. 0123456789
2008-04-09 11:00:00 100002 24 20.00 I F/. 0123456789
2008-04-09 11:00:00 100003 23 20.00 I F/. 0123456789
2008-04-09 11:00:00 100004 22 20.00 I F/. 0123456789
2008-04-09 11:00:00 100005 21 20.00 I F/. 0123456789
El total de Movimientos es :10
* esta ordenado por fecha, el movimiento mas reciente al comienzo
** como podran observar en la salidas no se coloca el costo pues no hay manera de saber con anterioridad.

En el index, realizamos un consulta al kardex para el producto a(ingresando en el campo de texto el codigo 100001), nos mostrara la siguiente tabla:
Fecha*: Codigo: Cantidad: costo**: tipo: Documento:
2008-04-11 13:00:00 100001 15 S OD/.001
2008-04-09 11:00:00 100001 25 20.00 I F/. 0123456789
Stock actual*: 10
El total de Movimientos es :2

*el stock actual es una consulta a la tabla productos:
SELECT prd_qty FROM productos WHERE prd_id = $criterio
Lo demas es de la tabla mov:
"SELECT * FROM mov WHERE prd_ids = $criterio ORDER BY mov_date DESC "

PROBLEMA

El problema que tengo es que no se como puedo hacer para gestionar el costo de los productos, algo para poder tener un stock valorizado, es decir me salga los 10 productos(para el producto con codigo 100001) y su costo actual.

--
Espero no haberte cansado o aburrido con toda la explicación, y gracias por leerme

a ver si te he entendido

Avatar de jurena
Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5

(Nivel 5 - 729 posts)

#4 Offline jurena Usuario 08 abr 08 (20:26)  
Gracias por la explicación. El problema no es que tú no te expliques bien, sino que yo no alcanzaba a comprender lo que querías exactamente. He leído con atención tu texto y no sé si habré entendido todo: pero te haré una pregunta
imaginemos que en tu stock te quedan del producto 10001 50 que te costaron a 20 y 33 que te costaron a 45, tal vez lo que quieres es que el programa multiplique 50 * 20 y 33 * 45, haga luego la suma, 2485, y finalmente te saque la media dividiendo el resultado de la suma por 83, dando 29,94, para que tú tengas para cada producto el valor de coste promediado según tu stock, y todo eso por producto. ¿Es eso lo que quieres sacar?

seria una solucion...

Avatar de dantrix
Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2 Nivel 2

(Nivel 2 - 29 posts)

#5 Offline dantrix Usuario 09 abr 08 (01:20)  
tu ejemplo es bueno, pero necesita un mayor panorama, adecuemos un ejemplo:
( se entiende que los movimientos son para el m ismo producto, y el costo es unitario)
2008-04-10 10:00 hrs ingresan 50 productos a 20.00 um.
2008-04-11 12:00 hrs salen 30 productos a ¿? um.
(dado que cuando se retira productos del almacen no se coloca un costo, por eso lo que busco es hallar la manera de que tenga un costo historico para poder utilizar.)
2008-04-12 10:00 hrs ingresan 30 productos a 24.00 um.
2008-04-13 14:00 hrs salen 20 productos a ¿? um.
aca esta el meollo del asunto

algo que se me ocurre ahora es agregar un campo (en la tabla productos) prd_cto(costo de producto), para que ese sea el historico, en el momento de hacer el kardex almacenar ahi el historico, pero el problema esta en que no se como plantearlo.

voy a romperme la cabeza mas tarde para ver como hacerlo.
de ahi vuelvo a escribir


grax

y por las fechas de factura y precio

Avatar de jurena
Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5

(Nivel 5 - 729 posts)

#6 Offline jurena Usuario 09 abr 08 (10:41)  
Imaginemos que te quedan 200 productos de 10001; para calcular el valor deberías buscar las facturas de ingreso más recientes cuyo número total sumado sea superior a 200. Te saldrán por ejemplo 100 de hace tres semanas a 40, 80 de hace dos semanas a 80 y 100 de la última semana a 100. Lo que tendrías que hacer es aplicar el precio de 100 a 100, de 80 a 80 y de 20 a 40 (pues los otros 80 de a 40 ya estarían vendidos). Luego aplicas las fórmulas y sacas el precio medio del producto. Piensa en esta propuesta que lo que hace es regirse por los precios de entrada según fecha y entiende que lo que se vende primero es lo que entró antes.

Responder mensaje

Para poder participar debes estar registrado e identificado. Si no estás registrado como usuario de PHP-Hispano, :: Registrar ::
Login / Password   

Web alojada en Zilos

php-hispano.net 2002 - 2008 | XHTML 1.0
Datos Legales | Webmaster