Page 1 of 1

ayuda ??

Posted: Fri Nov 28, 2008 7:17 pm
by tomafa
amigos como han estado, tengo la siguiente problema estoy teminando un punto de venta, pero mi problema es que el usuario quiere manejar promosiones en sus productos, he tratado de hacer un algoritmo para poder aplicar la promosion si alguien tiene una ide bien venida,


ejemplo: tengo un producto que cuesta 20 pesos, le aplico una promocion de 3 productos por 35 pesos, el sistema me tiene que hacer la operacion, pero si eligo dos me tiene que hacer la suma normal, espero que me halla explicado

Saludos

Posted: Fri Nov 28, 2008 7:24 pm
by karinha
Una sugerencia:

Un Campo donde pregunta se el produto esta en promosion.

En tu cadastro de produtos, crea 4 precios:

Precio 1 -> Normal
Precio 2 -> Otra alternativa
Precio 3 -> Otra Alternativa
Precio 4 -> En promosion.

Crea Una Fecha para controlar la fecha maxima de la promosion.
Y avisa al usuario cuando terminar la promosion.

Saludos.

Posted: Fri Nov 28, 2008 8:59 pm
by tomafa
gracias por tu respuesta pero necesito resolverlo en codigo


por ejemplo uso un ciclo for

xpromocion = 3 (3 productos)

for a:=1 to xpromocion

esta es la parte que no me sale, como puedo hacer la operacion en donde evalue si tengo 4 productos que me cobre 3 en promocion y uno en precio normal y asi sicesivamente, si tengo 2 productos que me cobre los 2 en precio normal y si tengo 7 deben entrar 6 productos en promocion y uno en precio normal y haci sicesivamente .

gracias


end for

Posted: Fri Nov 28, 2008 9:31 pm
by Daniel Garcia-Gil
intenta esto...

nCantidad_Promocion = int( nCantidad_Productos / 3 )
nCantidad_No_Promocion = nCantidad_Prodictos%3

si hay 10 productos

nCantidad_Promocion = Int( 10 / 3 ) => 3 Promiciones
nCantidad_No_Promocion = 10%3 => 1

esto quiere decir que vas a tener 3 promosiones cada promosion de 3 articulos que hacen 9 articulos + 1 de no promosion son 10

Posted: Fri Nov 28, 2008 10:03 pm
by tomafa
gracias mcfox por tu propuesta, pero no me da el resultado,


a lo mejor no me explique bien,

tengo un articulo en donde tiene promocion se que 3 unidades estan en promocion, entonces supongamos que estas vendiendo el articulo x en donde se llevan 10 unidades en donde este producto tiene promocion, es decir en este ejemplo vendo 9 en una promocion de 3 unidades, supongamos que la promocion es de 20 por 3 unidades.

1 unidada vale 15 pesos
3 unidades vales 20 pesos promocion

si me llevo 10 articulos estaria asi el ejemplo

3 = 20 que seria 9 por 60 + 15
esto es lo que quiero hacer no me sale el algoritmo me falla en algo,
me hace en principio las operaciones bien cuando es de 2 articulos la promocion pero cuando pongo mas es cuando se dispara en las cantidades o no me hace bien las operaciones

de ante mano muchas gracias

Posted: Fri Nov 28, 2008 11:16 pm
by Armando
Tomafa:

Debes conocer 4 cosas:
1.- Cuando el artículo esta en promoción
2.- Cual es el precio de la promoción, $20 según tu ejemplo
3.- Cuantas piezas forman la promoción, 3 piezas según tu ejemplo
4.- Cual es el precio por cada pieza cuando no entra en promoción, $15 según tu ejemplo.

Entonces si vendes 10 piezas del artículo en promoción debes hacer lo siguiente:

Divides las piezas vendidas entre el número de piezas que forman la promoicón, es decir 10 / 3, digamos así:

nPromo := INT(10 / 3), el resultado sera 3
luego obtienes el importe de las tres promociones

nImporte := ROUND(nPromo * 20,2) esto te dará $ 60

Despues debes determinar cuantas piezas van a cobrarse fuera de promoción esto lo obtienes así

nPzsSin := 10 - nPromo * 3, el resultado te debe dar 1 pieza

Finalmente el importe de la o las piezas sin promoción lo sumas al importe de las promociones

nImporte += ROUND(nPzsSin * 15,2)

nImporte debe valer $75 ($60 de las tres promociones + $15 de una pieza a precio de no promoción.)

Saludos

Posted: Sat Nov 29, 2008 12:16 am
by tomafa
Armando :


gracias por tu apoyo probe la logica que publicaste y me funciono esta a la perfeccion


y gracias a todos

saludos

Posted: Sat Nov 29, 2008 1:26 am
by tomafa
ARMANDO :

saludos

tuve un problema en el punto

Despues debes determinar cuantas piezas van a cobrarse fuera de promoción esto lo obtienes así

nPzsSin := 10 - nPromo * 3, el resultado te debe dar 1 pieza

en este punto tuve el problema no me regresa las piezas sin promocion estoy haciendo algo mal

gracias

Posted: Sat Nov 29, 2008 1:29 am
by Armando
Tomafa:

Con que valores no te devuelve lo correcto ?

o intentalo así para forzar que primero haga la multiplicación

nPzsSin := 10 - (nPromo * 3), el resultado te debe dar 1 pieza

Tambien recuerda sustituir las constantes 10 y 3 por las variables que las contienen. ejemplo

nPzsSin := nPzsVta - (nPromo * nPzsPro) en donde

nPzsVta es igual a las piezas a vender, 10 y
nPzsPro es igual a las piezas de la promoción, 3

Saludos

Posted: Sat Nov 29, 2008 4:20 am
by Daniel Garcia-Gil
parece que no me entediste con la explicacion... aqui te deje un ejemplo...
lo puedes descargar tambien

Code: Select all

#include "fivewin.ch"

function main()

local oDlg, oSay

local nPrecio_Unitario			:= 	0
local nPrecio_Promo					:= 	0
local nArticulos_Por_Promo	:= 	0
local nArticulos_Venta			:= 	0
local nTotal_Pagar					:=  0



	define dialog oDlg Title "Ejemplo Articulos Promocion" size 400, 250
	
	@ 1,1 say "Precio Unitario :"
	@ 2,1 say "Articulos Por Promocion :"
	@ 3,1 say "Precio Total de la Promocion:"
	@ 4,1 say "Cantidad de Articulos a vender:"
	@ 5,1 say "Total a Pagar:"
	@ 5,1 button "Calcula" action( nTotal_Pagar:= Calcular(nPrecio_Promo, nPrecio_Unitario, nArticulos_Por_Promo, nArticulos_Venta),;
																 oSay:refresh())
	
	@ 1,7 get nPrecio_Unitario picture "999,999,999.99" right
	@ 2.5,8 get nArticulos_Por_Promo picture "999" right
	@ 3.5,10 get nPrecio_Promo picture "999,999,999.99" right
	@ 4.5,10 get nArticulos_Venta picture "999" right

	@ 5,10 say oSay var nTotal_Pagar picture "999,999,999.99" update
	

	activate dialog oDlg centered
	
return 

static function Calcular(nPrecio_Promo, nPrecio_Unitario, nArticulos_Por_Promo, nArticulos_Venta)

local nCantidad_Promocion 
local nCantidad_No_Promocion 
local nTotal

nCantidad_Promocion 		= int( nArticulos_Venta / nArticulos_Por_Promo )
nCantidad_No_Promocion 	= nArticulos_Venta % nArticulos_Por_Promo

nTotal 	= ( nCantidad_Promocion * nPrecio_Promo ) + ( nCantidad_No_Promocion * nPrecio_Unitario )

return nTotal
http://rapidshare.com/files/168433102/test01.rar

aqui tienes una imagen con las datos que tu mismo has suministrado
Image

Posted: Sat Nov 29, 2008 2:18 pm
by MauroArevalo
Disculpen pero no aguante:

Creo que el problema es mucha más de fondo que hacer el algoritmo y luego formularlo en código.

El control de los inventarios tiene como principio básico controlar las cantidades en existencia, rotación, etc.. Agregado a este control se debe manejar los costos del inventario.

Dentro de esta parte tenemos Sistemas de Inventarios y sus métodos de valuación, dentro de los métodos de valuación podemos tener los siguientes:

1. Costo Promedio

2. UEPS (Ultimas en Entrar, primeras en Salir) referidas a las unidades.

3. PEPS (Primeras en entrar, primeras en Salir) referidas a las unidades.

4. Identificación especifica.

Resumiendo, dependiendo del método de valuación de tu sistema de punto de venta debes buscar la forma de controlar los productos que salen en promoción porque te afecta directamente el porcentaje (%) de margen de utilidad, el costo de ventas y el costo del inventario.

Este tema es mucho más complejo si se le suma devoluciones, descuentos, daños, etc., ni que decir de las exigencias fiscales y tributarias (que es propia de cada país).

Vuelvo y pido disculpas si me salí del tema, aunque creo que no…me pico el bichito de mi otra profesión (Contador Público)

Saludos cordiales,

Posted: Sat Nov 29, 2008 6:07 pm
by Armando
Mauro:

Llevas mucha razón y no te quito un ápice, sin embargo lo que yo entendí en el post es ayuda sobre el algoritmo para calcular los importes que se deben cobrar cuando hay promoción y cuando no la hay, lo demas lo doy por descontado.

Saludos amigo.

Posted: Sat Nov 29, 2008 6:37 pm
by Daniel Garcia-Gil
Armando... te has adelantado a un post que me disponia es publicar, escribia algo muy similar, pero es bueno saber que Mauro Arevalo es contador :D

Posted: Sat Nov 29, 2008 8:51 pm
by Vital
Mira, yo lo que hago en una tienda de tines y playeras, tenemos varias formas de promociones, 1.- 3 por $ 20.00 2.- Paga 3 y llevate 4 3.- Descuento al precio por % 4.- Decuento al precio por importe 5.- Precio por Docena

En cada venta que se hace se revisa si es que tiene promo y que tipo de promo, y la venta se va ordenando por articulo, para que cuando se hace la venta se valla contando el producto y se puebla aplicar la promocion. En la promocion de 3 por $20.00, la promocion se aplica al precio del tercer producto, el 1ro y 2do son con precio normal y el 3ro le aplica la promo.

Saludos, cualquier duda a mi correo

Posted: Sun Nov 30, 2008 12:08 am
by tomafa
mcfox

y a todos me parecio interesante cada una de las opiniones estoy probando el codigo y en verdad me funciono,

y gracias a todos por sus aportaciones

gracias y estoy a sus ordenes,

a veces con este tipo de problemas estoy, no se como decirlo pero agradensco el apoyo de todos, creo que podemos apoyarnos, en verdad nunca pense que me ayudaran y creo que recibi más, es valiso contar con cada uno de ustedes

gracias