ayuda ??

ayuda ??

Postby tomafa » Fri Nov 28, 2008 7:17 pm

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
tomafa
 
Posts: 111
Joined: Sun Aug 13, 2006 7:28 pm
Location: ....

Postby karinha » Fri Nov 28, 2008 7:24 pm

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.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7215
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby tomafa » Fri Nov 28, 2008 8:59 pm

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
tomafa
 
Posts: 111
Joined: Sun Aug 13, 2006 7:28 pm
Location: ....

Postby Daniel Garcia-Gil » Fri Nov 28, 2008 9:31 pm

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
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Postby tomafa » Fri Nov 28, 2008 10:03 pm

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
tomafa
 
Posts: 111
Joined: Sun Aug 13, 2006 7:28 pm
Location: ....

Postby Armando » Fri Nov 28, 2008 11:16 pm

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
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby tomafa » Sat Nov 29, 2008 12:16 am

Armando :


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


y gracias a todos

saludos
tomafa
 
Posts: 111
Joined: Sun Aug 13, 2006 7:28 pm
Location: ....

Postby tomafa » Sat Nov 29, 2008 1:26 am

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
tomafa
 
Posts: 111
Joined: Sun Aug 13, 2006 7:28 pm
Location: ....

Postby Armando » Sat Nov 29, 2008 1:29 am

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
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby Daniel Garcia-Gil » Sat Nov 29, 2008 4:20 am

parece que no me entediste con la explicacion... aqui te deje un ejemplo...
lo puedes descargar tambien

Code: Select all  Expand view
#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
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Postby MauroArevalo » Sat Nov 29, 2008 2:18 pm

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,
Edgar Mauricio Arévalo Mogollón.
Bogotá DC. Colombia
FWH FTDN, xHarbour 1.2.1, Pelles C, Fivedit, Visual Studio Code, Borland 7.30, Mysql, Dbfs
http://www.hymplus.com http://www.hymlyma.com
Tratando de retomar la programación....
User avatar
MauroArevalo
 
Posts: 105
Joined: Thu Jan 19, 2006 11:47 pm
Location: Bogota DC. Colombia

Postby Armando » Sat Nov 29, 2008 6:07 pm

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.
Last edited by Armando on Sat Nov 29, 2008 7:41 pm, edited 1 time in total.
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3061
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Postby Daniel Garcia-Gil » Sat Nov 29, 2008 6:37 pm

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
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Postby Vital » Sat Nov 29, 2008 8:51 pm

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
Vital
 
Posts: 58
Joined: Mon Nov 06, 2006 6:56 am

Postby tomafa » Sun Nov 30, 2008 12:08 am

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
tomafa
 
Posts: 111
Joined: Sun Aug 13, 2006 7:28 pm
Location: ....


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 83 guests