Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Trabajar con Lista de Precios. (https://www.clubdelphi.com/foros/showthread.php?t=90497)

nicolass_83 25-06-2016 00:06:28

Trabajar con Lista de Precios.
 
Gente, buenas tardes: les comento algo a ver si me pueden dar una idea. En el programa que estoy haciendo necesito actualizar los precios de una lista una vez por semana. Sucede que nunca he hecho esto y no me termino de descifrar cual puede ser le método mas adecuado. Uds sugieren que se realice a través de una importación desde excel. Que se realice una por una desde soft, Si alguien pudiese orientarme un poco mas se los agradecería.

rocksoft 25-06-2016 01:10:45

Hola Nicolass,

por lo que entiendo estas creando un programa (no se si sera de gestion etc), en el cual tienes tus productos y sus respectivos precios.

Si ya que tienes un programa personalizado, al menos desde mi punto de vista seria un pecado a menos que no quede otra, solicitar al usuario que use otro programa en este caso excel para modificar los precios, despues obligarlo a importar dicho excel. Ademas de complicarle la vida al usuario y dar la posibilidad de generar errores que le complique mas la vida todavia, por ejemplo cambiando el nombre del campo, modificar el ID del producto, o ingresar en el precio valores no numericos, aparte de inducir problemas con las comas y puntos segun el lenguaje del sistema. (1,000.55 no es lo mismo que 1.000,55) que esto me pasa ami cuando llegan las listas de precio de europa.

Yo en lo personal lo haria de tal manera.
- Crear un formulario nuevo solo para cambios de Precio (2 edits para la fecha, una grilla DB y un paar de botones para filtrar, actualizar, guardar y salir)
- Crear un query que solo muestre los productos que no fueron modificados entre la fecha a y b
Ahora solo tienes que ir modificando los precios cambiando de registro con las flechas arriba y abajo, puedes hacer un refresh cada cambio o de forma manual.
cuando la lista este vacia sabras que modificaste todos los productos entre las fechas mencionadas, o puedes tambien decir que muestre todo lo que no tenga la fecha de hoy, asi tambien abarca lo que no cae entre las fechas a y b.

si escojes la version de hacerlo con excel, tendrias que importar el excel, seleccionar el libro en caso que tenga varias hojas, leer linea por linea el ID, verificar el precio que el valor sea numerico y el formato correcto (punto y coma), en caso de error de lectura o escritura generar un protocolo para identificar el error.

y por ultimo la mejor opcion segun yo :) no tocar los precios base y crear una lista de precios especial para cada semana (Master-Detail) el beneficio que puedes revisar listas anteriores y pruedes planificar el futuro, ya en anticipo crear las listas para las proximas 4 semanas y que se activen de forma automatica o manual.

Creas dos tablas pro ejemplo asi, creas una nueva lista de precios e importas todos los ID de productos en la PriceListDat e ingresas el precio.

Código:

[PriceList]
ID
Name
DateBegin
DateEnd


[PriceListDat]
ID
ID_PriceList
ID_Product
Price

bueno espero que te ayude

AgustinOrtu 25-06-2016 01:40:41

Hay muchas formas de hacerlo. Depende del contexto. En mi programa de gestion, lo hago de varias maneras

1. Primero no me parece pecado que el sistema soporte importar el excel. Hay listas de precios de terceros (proveedores casi siempre) que se confeccionan "afuera" del sistema. Dicha debe cumplir con cierto formato (o diseño de registro como se le decia antes) por ejemplo la columna 1 corresponde a tal cosa, la 2 a tal otra, tiene tal tipo de dato y tal formato, etc. Si detectas algun problema podes incluirlo en el informe pre-actualizacion (mas abajo vuelvo sobre esto) indicando que numero de fila-columna produzco el error, y si es posible cual es.

Problemas de configuracion regional no deberias tener nunca porque son cosas perfectamente manejables desde codigo. Mi programa funciona bien independientemente de la configuracion regional. Por supuesto que hay que escribir un poquito (solo un poquito) mas de codigo y no usar las funciones de conversion "directas", sino que hay que especificar el formato con el que vamos a trabajar. Es tan sencillo como escribir una funcion que inicialize un TFormatSettings y luego se lo pase a las versiones sobrecargadas que realizan la conversion. De esta manera trabajas con datos "internos" siempre en el mismo formato conocido, y luego se lo presentas al usuario segun como le guste mas su configuracion regional

2. Otra forma de actualizar precios es tomando cierto grupo de productos, y aplicar un porcentaje de incremento/decremento, o sumarles un valor fijo. A su vez, la parte de "tomar un grupo de productos" se puede implementar de un monton de maneras, permitiendo al usuario que use la que mas le convenga en cada caso.
Por ejemplo, yo tengo almacenados en los productos datos como: familia, subfamilia (p rubro y subrubro), proveedor, unidad de medida, nro de lista de precios, etc etc. Podria decirse que son los tipicos filtros, similar a una busqueda
Tambien se puede mostrar una lista completa de productos y mediante un checkbox que se tilde "este si, este no"; u otra manera que el usuario de alguna manera vaya armando una especie de listado de productos que quiere modificar el precio

3. Tambien hay muchos sistemas que manejan margenes de ganancia. De nuevo, la complejidad dependera de las necesidades, las exigencias, y la creatividad. Lo mas sencillo posible seria guardar un porcentaje de ganancia. Cada vez que el costo de un producto cambia, el precio automaticamente se actualiza aplicando ese porcentaje. Y para actualizar el costo de los productos, podrias usar cualquiera de los dos metodos de arriba

Otra cosa importante es guardar un historico: Cada vez que cambia un precio, esta bueno que quede reflejado en algun lado quien lo cambio, cuando lo cambio, cual era el valor anterior, cual es la diferencia, cual es el nuevo margen de ganancia, como cambio el margen de ganancia respecto al anterior, y el "metodo" (excel, act. por costo, manual, ...)

Y ahora vuelvo sobre la previsualizacion antes de "aplicar". Es simplemente mostrar un preview de como quedarian los productos afectados con los precios "antes" y "despues". Un simple reporte bastaria. En este informe es buena idea colocar cosas como "en el excel se encontro un codigo "1234" que no existe en el sistema" o "el producto 444 queda con un margen de ganancia menor al establecido" etc

rocksoft 27-06-2016 02:13:11

Buenas a todos,

@AgustinOrtu :) el pecado no es usar Excel, para mi el pecado es usar en un sistema propio manejando las listas de precio de forma externa para importarlos.

Lo que viene de forma interna manajarla en el sistema, y todo lo que viene de fuera importarlo :)

pero como dicen muchos caminos llevan a Roma y todos los caminos son buenos segun por donde quiera ir uno.

pero ok, me retracto del pecado capital :)


La franja horaria es GMT +2. Ahora son las 19:18:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi