Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como empiezo un sistema de almacen (https://www.clubdelphi.com/foros/showthread.php?t=41996)

espalafox 30-03-2007 22:17:55

Como empiezo un sistema de almacen
 
quiero q me ayuden a comenzar un sistema para almacen, altas bajas, reportes ...

soy nuevo y me encantaria q alguien se apiade y q me lleve poco a poco...

gracias.

si me dicen donde bajar buenos manuales, este sistema lo quiero realizar bajo delphi 7.

LordRiper 30-03-2007 22:27:51

primero la Tabla de Almacen/Existencias, todo gira sobre ella, entradas y salidas...

espalafox 30-03-2007 22:31:08

ok, estoy generandola..

gracias por la pronta respuesta...

un abraso

gluglu 30-03-2007 22:49:03

Aqui tienes un programa completo con fuentes que el compañero Caral dejó para todos los usuarios del foro.

Seguro te será de ayuda.

Onti 30-03-2007 22:51:53

Bueno todo depende del nivel de complejidad que va tener tu sistema, inicialmente deberías tener cuales son los alcances del proyecto.

algunas cosas que puedes evaluar son;

- Nro de almacenes que va a controlar el sistema
- Clasificación de lo items (niveles y categorias )
- Tipos de ingreso (compras, devoluciones,etc)
- Tipos de Salida (ventas,Facturas bajas, etc)
- Transferencias entre almacenes
- Control de proveedores
- Control de clientes
- Precios de venta (cuantas listas de precio utilizan)
.
.
.
Y así la lista de consideraciones sigue.

si tienes alguna duda en particular , estamos a la orden ;)

espalafox 30-03-2007 23:07:50

muchas gracias por su ayuda, estoy trabajando...

se me olvidaba, quiero que sepan q soy nuevo en esto de dephi, por eso tenganme un poco de pasiencia..

saludos

Caral 30-03-2007 23:17:54

Hola espalafox
Veamos, se empieza por saber que quieres que haga el programa, paso a paso, que base de datos quieres usar.
Con esto podremos ir encontrando la forma de hacer tu programa paso a paso, ya sabes, tienes que dar indicaciones para poder seguir.
Saludos

espalafox 30-03-2007 23:24:59

Hijole Caral q buenas preguntas...

ok. pretendo lo siguiente:
1. quiero usar SQL
2. existen tres tipos de almacen, papelería, cafetería y limpieza
3. el encargado del almacen úniocamente pueda dar de baja los productos q le solicitan, es decir q su usuario tenga acceso a bajas o salidas
4. en contabilidad tengan en control de las altas de productos, alta de mercancia q se compro, proveedores, devoluciones, y pues algo mas q enriquezca el sistema...

creo q en términos generales es lo que pretendo hacer...

Caral 30-03-2007 23:43:19

Hola
SQL (que)?
1-MySql?
2-SQL server?
Cual?
Saludos

espalafox 30-03-2007 23:55:40

2. SQL server 2000

;.)

Caral 31-03-2007 00:34:05

Huii
Complicado para mi, creo que puedes usar los componentes ado para conectarte.
Saludos

poliburro 31-03-2007 00:56:57

Bien mencionas amigo caral. ADO es la mejor opcíón para conectarse a sql server. Y por supuesto espalafox nada mejor que usar procedimientos almacenados :P.

AzidRain 31-03-2007 19:31:14

Oye espalafox, seria bueno hacer un pequeño prototipo de un almacen genérico para que veas como es la estructura, y que vayas determinando la complejidad final. Hablando de objetos (que no son lo mismo que las tablas) tendrias un objeto Almacen que mas adelante puede especializarse según necesites para la cafetería, papelería, etc. Esta Almacen basicamente contiene "Artículos" (otra clase que hay que definir mas adelante) y a estos artículos solo se les puede dar entrada o dar salida. Asi que nos puede quedar una Clase Sencilla:
Código Delphi [-]
  TAlmacen=TObject
      Articulos: TArticulos;
      procedure DarEntrada(unArticulo:TArticulo);
      procedure DarSalida(unArticulo:TArticulo);
  end;

Es un ejemplo nada más porque al usar tablas normalmente cambia la forma de definir las clases. Hablando de tablas tendriamos una Tabla Almacen que contenga los datos de los almacenes que quieras definir y una Tabla Artículos, que contenga todos los artículos agrupados por almacen, es decir, esta tabla seria el detalle de la tabla Almacen.

Solo habria que definir entonces los métodos para meter un artículo o para sacarlo del Almacen, realmente la operacion seria sumar o restar unidades a la existencia registrada en la tabla.

ASi si tenemos una tabla:
Código:

Tabla Almacenes:
ID Descripcion
1  Cafeteria
2  Limpieza

Tabla Articulos:
 Item  Descripcion  Existencia Almacen
  1      SODA          0              1
  2      JABON          0              2
  3      CAFE            3              1

Si queremos darle entrada digamos a 3 Jabones, simplemente sumamos 3 a la existencia actual en el registro y listo, Si le damos salida se resta y ya. Obviamente la operacion tanto de entrada o salida involucrará diferentes variantes: ventas, devoluciones, compras, merma, etc. y ahí tienes que definir las reglas para cada caso, pero al final terminan haciendo la operación básica ya vista.

Esto solo es simple teoría, ya te pasaro un programa completo del buen Caral que hace todo lo necesario ojala y te podamos ayuda.. También el buen Poliburro ya te dio opción de usar Procedimientos Almacenados con SQL Server asi que como puedes ver ya tienes bastante apoyo de todos...

Saludos..

espalafox 03-04-2007 18:21:03

Azid Rain: Definitivamente tienes toda la razon, fijate q estos últimos dos días, y antes de leer tu mensaje, pense algo parecido a lo q tu me dices, mira:

TProducto = class(Tobject)
Nombre : String;
Unidad : String;
Clave : String;
Existencia : Float;
public
procedure Alta();
procedure Baja ();
end;

TProductoCafetería = class(TProducto)
public

etc, etc, no se si esta bien, pero crero que con tu comentario me estas dejando las cosas mas claras, al dia de hoy ya me he aventado como dos cursos de delphi pero en el curso le entiendo todo, pero al querer aplicarlo a un problema real me esta costando un poco de trabajo...

de antemano muchas gracias y espero no te olvides de mi.

espalafox 03-04-2007 21:37:49

De antemano quiero agradecer a gluglu, caral, Azid Rain, a poliburro, onti, LordRiper, que se han tomado la molestia de Contestar, todo lo que me han dicho trato de aplicarlo o mejor dicho entenderlo y aplicarlo, creo que tengo un buen de cosas en q pensar y que hacer, solo espero que no se olviden y no desesperén de gente como yo que apenas comienza en este lindo mundo delphi

fjcg02 03-04-2007 23:27:49

Desde aqui animar a Caral para que no se quede detrás de la valla. Por si te interesa, con el office viene el motor de BBDD SQL Server versión 7 ( solo el motor ) . A no ser que vayas a sacar chispas, se puede instalar perfectamente en un pc para simular trabajar contra un servidor aprovechando todas las ventajas de un motor 'profesional' ( = transaccional, multiusuario, ...). Si buscas en la red alguna utilidad para gestionar el motor ( no encuentro una gratuita que utilicé en su día ) para la creación de tablas, indices, vistas, procedimientos almacenados, ... seguro que no te quedas con las ganas... y conociendo como conoces Access no te será muy difícil hacerte con los mandos. De hecho, en ocasiones utilizo el generador de consultas de access para generar consultas para SQL Server.

Lo dicho, seguro que algún empujón podemos daros. Además, una vez dominado, no te será difícil saltar a otros motores, a saber, mySql, firebird, ...


Un saludo

Caral 03-04-2007 23:38:37

Gracias fjcg02
La verdad es que tengo intenciones de hacer algo con la base de datos pero el problema que tengo es que mi aplicacion es demasiado grande para migrarla a otra, me refiero a que hay muchas consultas que no trabajan bien en sqlserver o mysql, hay que modificarlas primero y som mas de 90, menuda faena.
De todos modos te agradezco que te preocupes por mi.
Saludos

fjcg02 04-04-2007 00:56:54

Cita:

Empezado por Caral
La verdad es que tengo intenciones de hacer algo con la base de datos pero el problema que tengo es que mi aplicacion es demasiado grande para migrarla a otra, me refiero a que hay muchas consultas que no trabajan bien en sqlserver o mysql, hay que modificarlas primero y som mas de 90, menuda faena.

Te recomiendo que vayas pensando en crear una tabla en la que recojas todas las querys de tu aplicación, para que cuando crees una ventana asignes dinámicamente las consultas. Puedes poner una tabla con la estructura pantalla, nombre query, sentencia SQL. Cuando creas la pantalla, asignas las sentencias. Para pasar a otro motor de BBDD sólo tienes que importar las tablas y en ésa, reescribir las consultas. No es tan fácil como decirlo, pero por algo se empieza.

De hecho, tengo un proyecto en la cabeza, que no sé por donde empezar. Sería la aplicación auto-diseñable. Que quiero decir; creas una aplicación que sea configurable desde 0 por el usuario ( o por quien tenga conocimientos de la misma ). Creas las tablas. Las claves foráneas permitirán que el programa sepa cual es el origen de los valores. Para los campos que no sean claves foraneas, seleccionas la lista de valores que pueden ser seleccionados, y así sucesivamente, creas tu propia aplicación. La aplicación sólamente tendría inserciones , modificaciones y borrados. Desde triggers y procedimientos almacenados se calcularían todos aquellos valores que fueran necesarios, ....

Bueno, lo dicho, es un proyecto. Todo esto viene porque en el trabajo utilizo varias aplicaciones, cuyos datos residen en diferentes BBDD ( yo no las he desarrollado ). Finalmente para explotar la información, acabo haciendolo con consultas access adjuntando las tablas con un odbc o a través de una serie de aplicaciones que he ido creando en casa alrededor de esas BBDD ( por eso te comentaba lo del SL server 7 o MSDE), en las que las consultas las escribo en una tabla, y las pantallas sacan la información que yo quiero, porque me organizo mejor la información o extraigo información que no me reportan las propias aplicaciones.

Buuff me voy a la cama, son casi las 00:00h y ya veo estrellas. Desde las 6:45h que estoy levantado ya es suficiente.

Saludos a todos

fjcg02 07-04-2007 01:01:39

Bueno Caral,
para que lo comentado en el post anterior ( lo de añadir las querys en una tabla ) no tengas que hacerlo a mano, te paso un código que lo único que tendrías que hacer es correrlo en cada uno de tus formularios de la aplicación, de manera que en lugar de mostrar las querys y sus contenidos, las inserte en la tabla que decidas. A la hora de ejecutar el programa, sólo tendrías que cargarlas desde esa tabla.
Un saludo

Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var i,j:integer; mensaje:string; temp: TComponent;
begin
// me recorro todos los componentes del formulario
for i:= 0 to (Sender as tButton).Owner.ComponentCount-1 do
begin
  // utilizo una variable objeto para facilitar la compresión
  temp:= (Sender as tButton).Owner.Components[i];
 if (temp is TADOQuery ) then // si el componente es TADOQuery ....
    begin
      // pongo el nombre del formulario, de la query, y añado la sentencia SQL
      mensaje:= temp.Owner.Name+chr(10)+
                temp.Name+chr(10);
      for j:=0 to (temp as TADOQuery).SQL.Count-1 do
      begin
        mensaje:= mensaje+ (temp as TADOQuery).SQL[j]+chr(10);
      end;
     // y muestro el montaje ....
      showmessage(mensaje);
    end;
end;
end;


La franja horaria es GMT +2. Ahora son las 22:00:50.

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