FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Modificaciones en el módulo UPC,
Como podéis ver hemos puesto un nuevo botón sobre un nuevo NewPanelDb, el datasource=DsPrincipal y el InverseAction=true. Este botón lo que hace es crear un nuevo registro con los datos de la Persona de contacto activa en ese momento, creando así el nuevo registro de manera automatizada. El código añadido
También se detecto un error en el código de proveedores, os pongo el procedure con la corrección
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#2
|
||||
|
||||
Módulo empleados
No seguiré comentando sobre las pestañas ya tratadas en post anteriores ya que son lo mismo Mejoras que hacer en los otros módulos incorporadas a este, al Dsprincipal en su evento DSPrincipalDataChange, se ha añadido, para que las tablas auxiliares cambien cuando cambiamos de datos, siempre y cuando no este en edición o inserción. Hay cosa nuevas como el modulo de registros de histórico y poco más. como siempre el código completo en https://gist.github.com/anonymous/5831048
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" Última edición por José Luis Garcí fecha: 21-06-2013 a las 15:52:42. |
#3
|
||||
|
||||
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" |
#4
|
||||
|
||||
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" |
#5
|
||||
|
||||
La otra tabla
Cita:
__________________
Un saludo desde Canarias, "El abuelo Cebolleta" |
#6
|
||||
|
||||
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" |
#7
|
||||
|
||||
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" |
#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" |
|
|
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 |
|