FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Bien comenzaba con la gestión de lotes cuando me di cuenta de que me faltaba un campo en su tabla
Como estaba era de la siguiente manera Cita:
La tabla completa queda así Cita:
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#2
|
||||
|
||||
Vamos con dos tablas auxiliares importantes
Cita:
Es de suma importancia saber que en este caso el stock lo hacemos por Lote, con lo que saber el total de existencias reales, seria la suma de de todos los lotes que estén en activo y cuya EXISTENCIAS sean mayor o igual a 1, quiero decir que las existencias del 16-5 es todas las que estén en la tabla Stock con los siguientes datos CODIGOPRODUCTO='16-5', ACTIVO='S' y EXISTENCIAS>=1 lo que nos puede dar varios registros. (1) En ciertos tipos de fabricación, las mercancías no se sacan todas a la vez, por eso este campo, lo que hace es incrementar, según hagamos entradas (2) Aquí debemos tener mucho ojo, es las Existencias (el verdadero Stock), debe indicarnos en todo momento la cantidad real de artículos que quedan , es importante esta cantidad normalmente disminuye, pero hay que tener en cuenta que si hemos echo un documento (albarán, Factura, Etc) que afecta al stock, debemos controlar sus modificamos veamos diferentes ejemplos pongamos que inicialmente sacamos 10 vajillas Primero tener en cuenta que si las existencias llegan a 0 debemos marcar como no activo (4) Caso 1º Salida de 10 vajillas 5L código del producto 16-5 Lote 130001 Seria CODIGOPRODUCTO='16-5', LOTE=130001, EXISTENCIAS=EXISTENCIAS-10 Caso 2º Salida de 10 vajillas 5L código del producto 16-5 Lote 130001(6) y 130002(4) ya que del primer lote nos quedan solo 6, los cambios en la tabla stock serían CODIGOPRODUCTO='16-5', LOTE=130001, EXISTENCIAS=EXISTENCIAS-6, ACTIVO='N' Y CODIGOPRODUCTO='16-5', LOTE=130002, EXISTENCIAS=EXISTENCIAS-4 Caso 3º Sobre el que teníamos con salida de 10 vajillas 5L código del producto 16-5 Lote 130001 lo modificamos y en vez de 10, subimos a 12 los cambios serían CODIGOPRODUCTO='16-5', LOTE=130001, EXISTENCIAS=EXISTENCIAS-2 (ya que habíamos descontado anteriormente 10 por ello debemos controlar al editar la cantidad anterior siendo el cálculo resultante el siguiente CantiadaADescontar:=CantidadActual-CantidadAnterior; ) Caso 4º Sobre el que teníamos con salida de 10 vajillas 5L código del producto 16-5 Lote 130001 lo modificamos y en vez de 10, Bajamos a 8 los cambios serían CODIGOPRODUCTO='16-5', LOTE=130001, EXISTENCIAS=EXISTENCIAS+2 (ya que habíamos descontado anteriormente 10 por ello debemos controlar al editar la cantidad anterior siendo el cálculo resultante el siguiente CantiadaADescontar:=CantidadActual-CantidadAnterior; en este caso cantidad actual sería mayor con los que nos daría -2 de resultado al ser el resultado negativo entonces sumamo) Caso 5º Sobre el que teníamos con salida de 10 vajillas 5L código del producto 16-5 Lote 130001 lo modificamos Cambiamos el Lote por 130004 los cambios serían CODIGOPRODUCTO='16-5', LOTE=130001, EXISTENCIAS=EXISTENCIAS+10 CODIGOPRODUCTO='16-5', LOTE=130004, EXISTENCIAS=EXISTENCIAS-10 Caso 6º Eliminamos el que teníamos con salida de 10 vajillas 5L código del producto 16-5 Lote 130001 lo cambios serían CODIGOPRODUCTO='16-5', LOTE=130001, EXISTENCIAS=EXISTENCIAS+10 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Si existiesen varios lotes debemos tener Stringrid, dividiendo los lotes con sus cantidades y un edit por Row, para poder poner la nueva cantidad, su estructura seria más o menos como sigue Lote, Fecha, Caducidad, Existencias, Activo (en caso de que sea 'N' no nos permitirá números positivos, pero si recuperar, si este fuese el caso debemos añadir a existencias y cambiar ACTIVO de 'N' a 'S') (3) Si el producto es caduco aquí ira su Fecha de caducidad, como un lote sólo puede tener una única fecha de producción, sólo habrá una fecha de caducidad y repito a un número de lote asignado, es una única fabricación. (4) El Campo ACTIVO tendrá los valores S o N y es de vital importancia, por defecto cuando damos una entrada, si no existe en la tabla STOCK, lo creamos con ACTIVO='S', salvo que indicamos lo contrario, el motivo para esta r en 'N' son los siguientes, que en la mayoría de los casos no tiene que ver con las Existencias 1º) Existencias a 0, en este caso no es lógico que cada vez que entramos en el artículo, o en uno de los documentos de venta siguiera apareciendo si no hay artículo de donde extraer. 2º) Un lote a retirar, podríamos detectar un problema en un lote y tener que retirarlo, para evitar que siga habiendo salidas, lo marcamos como no activo 3º) Es un producto de uso interno y por lo tanto no se vende, tato para uso del personal, como creado para usar en la fabricación/uso de otros productos Siento el coñazo, pero es muy importante que este tema quede bien claro, para no tener problemas de trazabilidad y existencias reales. Si queda alguna duda, prefiero dedicarle más tiempo y aclararlo ahora que más adelante cuando el programa este más avanzado. Espero no haberme dejado alguno de los casos posibles, si es así, por favor comunicármelo.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#3
|
||||
|
||||
La otra tabla
Cita:
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#4
|
||||
|
||||
Se me olvidaba, por supuesto es importante que si el producto es caduco quiero decir con esto que tiene fecha de caducidad y no esta en blanco, debe controlar que la fecha actual es menor que la de la caducidad y como no si el caso es que la fecha es mayor que la de la caducidad debemos poner ACTIVO='N'
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#5
|
||||
|
||||
Como estaba harto de que este componente me diese problemas con el tema de la negrita, lo he vuelto a modificar y aquí lo dejo ya corregido
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#6
|
||||
|
||||
El Módulo de Lotes
Es importante darse cuenta que el nuevo número de lote siempre lo cogemos de configuración evitando de esta manera que se puedan duplicar los número de lotes Tenemos que poner un apartado en el programa para cerrar el año, ya que este nos permite poner el contador de lotes y de otros si es necesario a 0 El código en https://gist.github.com/anonymous/5844768 Veamos un detalle de como va cambiando el módulo UbusquedaFP
como podemos ver usamos el mismo módulo, para diferentes llamadas, e incluso cunado las llamadas son desde el mismo módulo, pero para diferente Tablas ('LOTESF' y 'LOTESE') El próximo módulo es el de entradas, que tiene muchas similitudes con este pero también con el de Stock, realmente es el paso intermedio entre ambos. Que paséis un buen Domingo.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" Última edición por José Luis Garcí fecha: 23-06-2013 a las 14:44:22. |
#7
|
||||
|
||||
Bueno le toca al modulo de entradas
y el código como siempre en https://gist.github.com/anonymous/5850255 Como se puede apreciar, se va complicando la cosa , os que yo soy muy complicado como prefierán
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#8
|
||||
|
||||
Sólo puedo decir ¡Chapeau! Por el trabajo que estas realizando. Estoy siguiendo el desarrollo desde el principio y me parece fantástico. Es un ejemplo ejemplarizante de desarrollo de aplicación.
Componentes, Datamodulos, explicaciones, imágenes. Es un trabajo que puede servir tanto para un nivel de programador bajo-medío-alto ya das un montón de aportes al mismo y das buenos ejemplos de resolución como son los componentes adaptados a las necesidades concretas.
__________________
PepeLolo El hombre el único virus que mide más de unas cuantas micras |
#9
|
||||
|
||||
Cita:
Una cosa que no me ha quedado clara a lo largo del tutorial, es el conocimiento real de los temas tratados por los compañeros, es por lo que digo muchas veces, que no se si interesa o es que estoy siendo muy espeso en el tema e incluso que alguno piense en que estoy siendo prepotente. Vuelvo y te repito gracias por el comentario, pero podrias poner una evaluación como la pido, ya que me sería más útil, para saber realmente, en que tendría que mejorar.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#10
|
||||
|
||||
Además creo que mi sistema de trabajo no es el mejor, estoy seguro de que muchos compañeros, pueden hacer maravillas comparado con lo que yo hago, la única ventaja que yo puedo tener, es que suelo trabajar en las empresas para que hago los programas, ya que es la manera más eficaz de conocer las carencias y necesidades de una empresa. Por supuesto si te dedicas a la programación, esto es casi imposible, pero tampoco debemos quedarnos con lo que nos dice el jefe de una empresa, ya que suelen tener un ideal de la empresa, que muchas veces choca con la realidad, de la misma.
Normalmente suelo hablar de cosas que conozco, aunque sea un poco, hace ya cerca de 17-18 empece a trabajar para una empresa que vendía cupones, tipo a los de la once, el primer día me pusieron a trabajar, con un señor que llevaba unos cuantos años buenos trabajando para esta asociación de Madrid, empezó a explicarme el programa, claro, al final y al cabo se trata de un programa de gestión y yo programaba en clipper en esa época, que era el mismo lenguaje de la aplicación, al cabo de una hora y media, ya empece a trabajar con el programa y terminamos el día de trabajo, me preguntaron que que tal y le comente que no entendía, por que algunos procesos se hacían de determinada manera. Al cabo de una semana, me presentaron a un señor, que me pregunto por las dudas, que tenia del programa, le comente y explique, el por que de mis dudas, me pregunto como lo haría yo, esquematizando le dije más o menos, mis ideas y planteamientos, al cabo de dos días volvió este señor, con otro mucho más joven, era la persona que había hecho el programa, tuve que volver a explicar mis dudas y decir mis planteamientos, esa misma tarde me sacaron de la oficina, para ir al hotel donde se quedaban, tenia una reunión, entre el gerente de zona, la persona que me enseño (era el tercero dentro de la asociación con más de 8 años en ella), el señor más mayor que me pregunto por mis dudas (resulto ser el Presidente de la Asociación, cosa que yo aun desconocía) y el programador), claro, como podéis imaginaros, estaba un poco acojonado, ya que había sido padre hacía pocos meses y estuve en el paro antes de este puesto cerca de 3 años, pensaba que me despedían, sinceramente. Aquella reunión termino por la noche, me invitaron a cenar y me convocaron nuevamente, a la mañana siguiente en el hotel, durante esos dos días, se estuvo planteando y rebatiendo los diferentes puntos, tiradas, premiso, cierres, partes, etc. a la hora de comer, se presentan a un chaval joven, ante el delegado de zona y el señor que me enseñaba a mi, era mi sustituto, podéis imaginaros, se me cayo el alma a los pies, aún así, mantuve el tipo y calle, seguimos la reunión y al final del segundo día, me preguntaron, por que encontré con tanta facilidad, tantos puntos flacos, posibles errores y mejoras, mi respuesta fue sincera, por que estaban ahí, el presidente se rió y el informático cayo, estaba serio, muy serio, cuando el presidente se sereno, le pregunto al informático, que como era posible que un programa que estaba terminado hacia dos años, más un año terminarlo, no se hubiese dado cuenta de esos errores, mejoras y huecos de seguridad, el informático me miro, estaba triste, se le notaba que estaba enfadado imagine que consigo mismo (luego supe que así era), se hizo el silencio, yo me vire y le pregunte, algo que Jesús, el amigo que me enseño a programar en clipper me dijo al principio del todo, "oye Carlos (el nombre del informático), cuantas horas pasaste con el personal preguntándoles y viéndoles trabajar", me miro sorprendido y me dijo 0, fue el Presidente (no recuerdo su nombre), quien me dio las pautas, a el se le entregaba el programa y me comentaban los errores, me vire a este y le pregunte, cuantas horas paso usted con el programa, su respuesta fue tajante, yo no trabajo con eso se la doy a Fulanito (La persona que me enseño el primer día del cual no recuerdo el nombre) y el a su vez se lo da al personal el cual le dice los fallos, entonces tú (Carlos), no haz hablado nunca con nadie que trabajara directamente con el programa, me volvió a mirar, haciendo un esfuerzo por recordar y dijo no, nunca, dije, esta claro, ahí radica el problema, los usuarios finales, son los que detectan los fallos, si hay un jefe por medio, siempre se cohiben más que con un igual o alguien externo que este para solucionar los problemas, los dos me miraron, se miraron y me dijeron que volviera la hotel al día siguiente. Regrese al día siguiente y me dijeron que no volvería a mi puesto de inspector (introductor), que me subían el sueldo (25.000 pesetas si no recuerdo mal) y que tendría que estar los próximos quince días yendo a trabajar a una casa que habían alquilado, con Carlos, que luego era probable, que tuviese que viajar a Madrid, cuando el programa estuviese en su fase final de pruebas, nunca fui, diez días despues, hubo un problema muy serio entre la persona que me había contratado y la asociación (el problema fue por parte de esta), no se bajaron del burro, así que mi jefe Jerónimo, decidió despues de preguntarme si yo era capaz de hacer un programa parecido como el que tenia la asociación, le dije que si, me dijo en 20 días, le dije, completo no, pero algunas partes si, acepto y rompió los acuerdos con la asociación, montando una nueva, dicho programa en terminarlo completo, tarde 6 meses, al cabo de otros tres años y medio, me pidió y pago que le hiciera una nuevo para windows, y que yo sepa a día de hoy lo signe usando, tiene fallos, debido a que fue echo en DBF y Delphi 3, hoy en día hubiese echo muchas cosas de manera diferente, pero me imagino que nos pasa a todos. En cuanto a Carlos, estuve en contacto hasta el 2007, año en que por desgracia murió, durante muchos años, cuando venia a canarias, siempre nos veíamos, el programa lo corrigió siguiendo muchos de mis concejos y aplicando su técnica y forma de programar, pero fue siempre un buen amigo, a partir de aquel tercer día de conocernos. Siento el coñazo, pero para que entandáis a que me refiero, se debe contar la historia completa.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#11
|
||||
|
||||
jeje... me gustan las historias de los "abuelos"
Fdo. Otro abuelo |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
llamar un programa desde otro programa en un computador con dos monitores | RONPABLO | Varios | 0 | 10-10-2011 18:20:51 |
Cargar tu programa desde otro programa | rmendoza83 | Varios | 7 | 05-01-2009 19:51:33 |
Lanzar programa desde mi programa | Pablo Carlos | API de Windows | 32 | 09-09-2004 13:56:26 |
Ejecutar un programa externo desde un programa de Delphi | Roger_Fernandez | Varios | 3 | 02-09-2004 18:05:36 |
ISC ERROR CODE:335544344 I/O error for file "c:\gestion\gestion.gdb" | eliasterrero | Firebird e Interbase | 2 | 28-06-2004 12:20:25 |
|