Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,690 @@
|
||||
{
|
||||
------------------------------------------------------------------
|
||||
PROGRAMA : IPPRMT008
|
||||
OBJETIVO : Capturar Informacion del Conteo Fisico del
|
||||
Inventario Producto Terminado.
|
||||
PROGRAMADOR : Ing. Juan Fco. Soto.
|
||||
FECHA REALIZACION : Febrero 9, 1993.
|
||||
OBJETIVO : Permitir Numeracion Automatica e Impresion del Documento
|
||||
PROGRAMADOR : Tadeo A. Ferreras F.
|
||||
FECHA REALIZACION : Marzo 07, 1996
|
||||
------------------------------------------------------------------
|
||||
}
|
||||
GLOBALS "ipprgb000.4gl"
|
||||
|
||||
DEFINE p_hoy DATE
|
||||
DEFINE documen INTEGER
|
||||
DEFINE documento CHAR(6)
|
||||
DEFINE ano CHAR (4),chimp CHAR(1)
|
||||
DEFINE opc2,salir,otra,de,mueve CHAR(1)
|
||||
DEFINE diferencia,cant_ex,ex_mov LIKE iptb00006.cantidad_2
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
CALL ARG_VAL(3) RETURNING impresor
|
||||
CONNECT to "smarmotech" USER usuarios USING clave
|
||||
SELECT * INTO p_companias.* FROM companias
|
||||
CALL ipprmt008()
|
||||
END MAIN
|
||||
|
||||
FUNCTION ipprmt008()
|
||||
DISPLAY "ipprmt008" AT 4,3
|
||||
DISPLAY "Conteo Fisico y Ajuste(s)" AT 6,27
|
||||
OPEN WINDOW cuenta AT 8,7 WITH FORM "ipfmmt008" ATTRIBUTE (BORDER,
|
||||
FORM LINE FIRST + 1,COMMENT LINE LAST -1, PROMPT LINE LAST)
|
||||
|
||||
WHENEVER ERROR CONTINUE
|
||||
## Captura los datos que va a contener el registro
|
||||
|
||||
LET p_conteo.fecha = today
|
||||
LABEL volver:
|
||||
CLEAR FORM
|
||||
LET cant_ex = 0
|
||||
LET p_hoy = p_conteo.fecha
|
||||
INITIALIZE p_conteo.* to null
|
||||
LET p_conteo.fecha = p_hoy
|
||||
|
||||
INPUT BY NAME p_conteo.* WITHOUT DEFAULTS ATTRIBUTE (BLUE)
|
||||
BEFORE FIELD fecha
|
||||
IF otra != "S" THEN
|
||||
INITIALIZE p_conteo.* TO NULL
|
||||
LET documento = null
|
||||
END IF
|
||||
LET otra = null
|
||||
|
||||
AFTER FIELD fecha
|
||||
|
||||
LET p_fechas = p_conteo.fecha
|
||||
CALL prd(p_fechas)
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
NEXT FIELD fecha
|
||||
END IF
|
||||
|
||||
IF p_conteo.fecha > TODAY THEN
|
||||
LET numero_msg = 162
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD fecha
|
||||
END IF
|
||||
|
||||
AFTER FIELD bodega
|
||||
SELECT * FROM intb00009 WHERE cod_bodega = p_conteo.bodega
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD bodega
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_sec
|
||||
## Verifica que el codigo no exista en el catalogo de unidades. Si existe,
|
||||
## entonces despliega los datos del registro existente.
|
||||
|
||||
SELECT b.descrip_esp,b.descrip_ing,b.unidad_med
|
||||
INTO articulos.descrip_esp, articulos.descrip_ing,
|
||||
articulos.unidad_med
|
||||
FROM iptb00002 b
|
||||
WHERE b.cod_n = p_conteo.cod_n and b.cod_grupo = p_conteo.cod_grupo and
|
||||
b.cod_tipo = p_conteo.cod_tipo and b.cod_sec = p_conteo.cod_sec and
|
||||
b.bodega = p_conteo.bodega
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
|
||||
LET descripcion = articulos.descrip_esp CLIPPED
|
||||
LET ex_mov = 0
|
||||
SELECT sum(cantidad_2) INTO ex_mov FROM iptb00006
|
||||
WHERE cod_n = p_conteo.cod_n and cod_grupo = p_conteo.cod_grupo and
|
||||
cod_tipo = p_conteo.cod_tipo and cod_sec = p_conteo.cod_sec and
|
||||
status_t is null and fecha <= p_conteo.fecha
|
||||
|
||||
IF ex_mov IS NULL THEN
|
||||
LET ex_mov = 0
|
||||
END IF
|
||||
LET ex_mov = ex_mov USING "---,---,--&.####"
|
||||
DISPLAY BY NAME descripcion,articulos.unidad_med,ex_mov
|
||||
LET documen = documento
|
||||
|
||||
AFTER FIELD cantidad
|
||||
|
||||
IF p_conteo.cantidad IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad
|
||||
END IF
|
||||
|
||||
LET diferencia = (p_conteo.cantidad - ex_mov)
|
||||
IF diferencia IS NULL THEN
|
||||
LET diferencia = p_conteo.cantidad
|
||||
END IF
|
||||
IF diferencia < 0 THEN
|
||||
LET datos_gen.cod_mov = 25
|
||||
ELSE
|
||||
LET datos_gen.cod_mov = 11
|
||||
END IF
|
||||
DISPLAY BY NAME diferencia
|
||||
|
||||
SELECT descrip_mov INTO datos_gen.descrip_mov FROM iptb00005
|
||||
WHERE cod_mov = datos_gen.cod_mov
|
||||
DISPLAY BY NAME datos_gen.descrip_mov,datos_gen.cod_mov
|
||||
|
||||
SELECT UNIQUE a.num_doc INTO datos_gen.num_doc FROM iptb00007 a
|
||||
WHERE a.cod_mov = datos_gen.cod_mov
|
||||
|
||||
IF datos_gen.num_doc IS NULL THEN
|
||||
LET datos_gen.num_doc = 0
|
||||
END IF
|
||||
LET datos_gen.num_doc = datos_gen.num_doc + 1
|
||||
|
||||
SELECT UNIQUE a.num_doc FROM iptb00006 a
|
||||
WHERE a.cod_mov = datos_gen.cod_mov AND a.num_doc = datos_gen.num_doc and
|
||||
a.fecha > "01012007"
|
||||
|
||||
IF STATUS != NOTFOUND THEN
|
||||
SELECT MAX(a.num_doc) FROM iptb00006 a
|
||||
WHERE a.cod_mov = datos_gen.cod_mov AND a.num_doc = datos_gen.num_doc
|
||||
IF datos_gen.num_doc IS NULL THEN
|
||||
LET datos_gen.num_doc = 0
|
||||
END IF
|
||||
LET datos_gen.num_doc = datos_gen.num_doc + 1
|
||||
END IF
|
||||
DISPLAY BY NAME datos_gen.num_doc
|
||||
SLEEP 2
|
||||
|
||||
END INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
GOTO sale1
|
||||
END IF
|
||||
|
||||
LABEL pregu2:
|
||||
PROMPT "Toda la Informacion Es Correcta (S/N)" FOR opc2
|
||||
LET opc2 = upshift (opc2)
|
||||
IF (opc2 IS NULL) OR (opc2 != "S" AND opc2 != "N") THEN
|
||||
GOTO pregu2
|
||||
END IF
|
||||
|
||||
IF opc2 = "S" THEN
|
||||
SELECT UNIQUE a.cod_n FROM iptb00011 a WHERE a.fecha = p_conteo.fecha AND
|
||||
a.cod_n = p_conteo.cod_n and a.cod_grupo = p_conteo.cod_grupo and a.cod_tipo = p_conteo.cod_sec
|
||||
IF STATUS = NOTFOUND THEN
|
||||
INSERT INTO iptb00011 VALUES(p_conteo.*,ex_mov,suser_sname(),GETDATE(),null,null)
|
||||
ELSE
|
||||
UPDATE iptb00011 set cantidad = p_conteo.cantidad
|
||||
WHERE a.fecha = p_conteo.fecha AND
|
||||
a.cod_n = p_conteo.cod_n and a.cod_grupo = p_conteo.cod_grupo and a.cod_tipo = p_conteo.cod_sec
|
||||
END IF
|
||||
|
||||
UPDATE iptb00007 SET num_doc = datos_gen.num_doc
|
||||
WHERE cod_mov = datos_gen.cod_mov
|
||||
|
||||
IF diferencia = 0 or diferencia IS NULL THEN
|
||||
ERROR "No tiene Diferencia, Por lo Tanto No Se Creara Movimiento de Ajuste"
|
||||
ELSE
|
||||
LABEL pregu:
|
||||
PROMPT "Tiene Diferencia el Conteo, Desea Hacer Ajuste (S/N)" FOR opc
|
||||
LET opc = upshift (opc)
|
||||
IF (opc IS NULL) OR (opc != "S" AND opc != "N") THEN
|
||||
GOTO pregu
|
||||
END IF
|
||||
|
||||
IF opc = "S" THEN
|
||||
|
||||
# Ejecuta los movimientos dependiendo si es de entrada o salida
|
||||
|
||||
LET documento = datos_gen.num_doc
|
||||
|
||||
INSERT INTO iptb00006(num_doc,cod_mov,fecha,cod_n,cod_grupo,cod_tipo,
|
||||
cod_sec,cantidad_2,bodega,us_crea,fech_crea)
|
||||
VALUES (datos_gen.num_doc,datos_gen.cod_mov,p_conteo.fecha,
|
||||
p_conteo.cod_n,p_conteo.cod_grupo,p_conteo.cod_tipo,
|
||||
p_conteo.cod_sec,diferencia,p_conteo.bodega,SUSER_SNAME(),GETDATE())
|
||||
PROMPT "Desea Imprimir este documento? " FOR chimp
|
||||
LET chimp = UPSHIFT(chimp)
|
||||
IF chimp = "S" THEN
|
||||
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
|
||||
doble_on,doble_off,comp_on,comp_off,
|
||||
doce,normal,archivo,copia
|
||||
|
||||
|
||||
START REPORT ajuste TO archivo
|
||||
|
||||
ERROR "Imprsion en Proceso... Espere Por Favor"
|
||||
OUTPUT TO REPORT ajuste()
|
||||
FINISH REPORT ajuste
|
||||
RUN imprime
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
|
||||
CLEAR FORM
|
||||
GOTO volver
|
||||
LABEL sale1:
|
||||
CLOSE WINDOW cuenta
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION introduce(documento,mueve,diferencia,de,cant_ex,ex_mov)
|
||||
|
||||
# Funcion actualizadora de las tablas del ajuste y conteo fisico
|
||||
|
||||
DEFINE documento CHAR(6)
|
||||
DEFINE documen INTEGER
|
||||
DEFINE mueve,de CHAR(1)
|
||||
DEFINE ex_mov,cant_ex, diferencia DECIMAL(10,2)
|
||||
LET documen = documento
|
||||
|
||||
SELECT unique cantidad FROM iptb00011
|
||||
WHERE fecha = p_conteo.fecha and cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and bodega = p_conteo.bodega
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
INSERT INTO iptb00011 values (p_conteo.*,ex_mov,SUSER_SNAME(),GETDATE(),null,null)
|
||||
ELSE
|
||||
|
||||
# Si el conteo existe busca la cantidad que se le digito anterior a este
|
||||
# conteo
|
||||
|
||||
SELECT unique cantidad_2 INTO cant_ex FROM iptb00006
|
||||
WHERE num_doc = documen and cod_mov = datos_gen.cod_mov and
|
||||
cod_n = p_conteo.cod_n and cod_grupo = p_conteo.cod_grupo and
|
||||
cod_tipo = p_conteo.cod_tipo and cod_sec = p_conteo.cod_sec and
|
||||
bodega = p_conteo.bodega
|
||||
|
||||
UPDATE iptb00011 set cantidad = p_conteo.cantidad,
|
||||
us_mod = Suser_SNAME(),
|
||||
fech_mod = GETDATE()
|
||||
WHERE fecha = p_conteo.fecha and cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and bodega = p_conteo.bodega
|
||||
|
||||
IF datos_gen.cod_mov = 11 THEN
|
||||
LET p_conteo.cantidad = (ex_mov - cant_ex) + diferencia
|
||||
ELSE
|
||||
LET p_conteo.cantidad = (ex_mov+ cant_ex) + diferencia
|
||||
END IF
|
||||
|
||||
END IF
|
||||
IF de = "S" THEN
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
ELSE
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
LET de = null
|
||||
END FUNCTION
|
||||
|
||||
REPORT ajuste( )
|
||||
DEFINE x RECORD
|
||||
fecha DATE,
|
||||
bodega LIKE iptb00006.bodega,
|
||||
cod_n SMALLINT,
|
||||
cod_grupo SMALLINT,
|
||||
cod_tipo SMALLINT,
|
||||
cod_sec SMALLINT,
|
||||
cantidad DECIMAL(12,2)
|
||||
END RECORD
|
||||
DEFINE doce,normal,negras_of,negras_on,doble_on,doble_of CHAR(2)
|
||||
DEFINE l,unidades INTEGER
|
||||
|
||||
OUTPUT
|
||||
TOP MARGIN 0
|
||||
BOTTOM MARGIN 0
|
||||
LEFT MARGIN 0
|
||||
PAGE LENGTH 33
|
||||
|
||||
FORMAT
|
||||
#BEFORE GROUP OF doc
|
||||
PAGE HEADER
|
||||
LET negras_on = ASCII 27, ASCII 69
|
||||
LET negras_of = ASCII 27, ASCII 70
|
||||
LET doble_on = ASCII 14
|
||||
LET doble_of = ASCII 18
|
||||
LET normal = ASCII 27, ASCII 80
|
||||
LET doce = ASCII 27, ASCII 77
|
||||
|
||||
PRINT COLUMN 1,normal,negras_on,doble_on,
|
||||
COLUMN 1,p_companias.nombre CLIPPED," ",
|
||||
p_companias.rnc CLIPPED
|
||||
PRINT doble_of
|
||||
PRINT COLUMN 26, "AJUSTE DE PRODUCTO TERMINADO"
|
||||
|
||||
LET l = (80 - LENGTH(datos_gen.descrip_mov))/2
|
||||
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN l, negras_on,datos_gen.descrip_mov,negras_of
|
||||
PRINT negras_on
|
||||
PRINT COLUMN 1, "Docto. No.",doble_on,datos_gen.num_doc USING "&&&&&&"
|
||||
PRINT doble_of
|
||||
PRINT COLUMN 1, "Fecha : ",p_conteo.fecha USING "dd/mm/yy"
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN 1, "MATERIAL : ", p_conteo.cod_n USING "&","-",
|
||||
p_conteo.cod_grupo USING "&","-",
|
||||
p_conteo.cod_tipo USING "&","-",
|
||||
p_conteo.cod_sec USING "&&&"," ",
|
||||
descripcion CLIPPED," ",
|
||||
articulos.unidad_med
|
||||
|
||||
SKIP 1 LINE
|
||||
PRINT COLUMN 1, "=====================================================",
|
||||
"==========================="
|
||||
PRINT COLUMN 5, "EXISTENCIA",
|
||||
COLUMN 42, "INVENTARIO",
|
||||
COLUMN 68, "CANTIDAD"
|
||||
PRINT COLUMN 5, "S/LIBRO ",
|
||||
COLUMN 42, "FISICO",
|
||||
COLUMN 68, "AJUSTADA"
|
||||
PRINT COLUMN 1, "=====================================================",
|
||||
"==========================="
|
||||
PRINT negras_of
|
||||
PRINT COLUMN 1, ex_mov USING "(((,(((,(((.##)",
|
||||
COLUMN 37, p_conteo.cantidad USING "(((,(((,(((.####)",
|
||||
COLUMN 61, diferencia USING "(((,(((,(((.####)"
|
||||
|
||||
SKIP 4 LINE
|
||||
PRINT normal
|
||||
PRINT COLUMN 1,"OBSERVACION :"
|
||||
|
||||
PRINT
|
||||
PRINT COLUMN 1,
|
||||
"--------------------------------------------------------------------------"
|
||||
PRINT
|
||||
PRINT COLUMN 1,
|
||||
"--------------------------------------------------------------------------"
|
||||
PRINT
|
||||
PRINT COLUMN 1,
|
||||
"--------------------------------------------------------------------------"
|
||||
|
||||
END REPORT
|
||||
|
||||
{
|
||||
FUNCTION ipprmt008()
|
||||
DEFINE p_hoy DATE
|
||||
DEFINE p_cantidad,documen INTEGER
|
||||
DEFINE documento CHAR(6)
|
||||
DEFINE ano CHAR (4),
|
||||
p_cia LIKE iptb00002.cod_cia,
|
||||
p_descrip LIKE iptb00005.descrip_mov
|
||||
DEFINE existe,salir,otra,de,mueve CHAR(1)
|
||||
DEFINE dife_ant,diferencia,cant_ex,cant_ant,balance_in,ex_mov DECIMAL(10,2)
|
||||
|
||||
DISPLAY "ipprmt008" AT 4,3
|
||||
DISPLAY "Conteo Fisico y Ajuste(s)" AT 6,27
|
||||
OPEN WINDOW cuenta AT 8,7 WITH FORM "ipfmmt008" ATTRIBUTE (BORDER,
|
||||
MESSAGE LINE FIRST,FORM LINE FIRST + 1,COMMENT LINE LAST -1,
|
||||
PROMPT LINE LAST)
|
||||
|
||||
# WHENEVER ERROR CONTINUE
|
||||
## Captura los datos que va a contener el registro
|
||||
MESSAGE " <Esc> Graba Registro <Delete> Cancela Operacion"
|
||||
|
||||
LET p_conteo.fecha = today
|
||||
LABEL volver:
|
||||
CLEAR FORM
|
||||
LET cant_ex = 0
|
||||
LET p_hoy = p_conteo.fecha
|
||||
INITIALIZE p_conteo.* to null
|
||||
LET p_conteo.fecha = p_hoy
|
||||
|
||||
INPUT BY NAME p_conteo.* WITHOUT DEFAULTS ATTRIBUTE (BLUE)
|
||||
BEFORE FIELD fecha
|
||||
INITIALIZE p_conteo.* TO NULL
|
||||
LET documento = null
|
||||
AFTER FIELD fecha
|
||||
|
||||
LET p_fechas = p_conteo.fecha
|
||||
CALL prd()
|
||||
IF bandera = 1 THEN
|
||||
LET bandera = 0
|
||||
NEXT FIELD fecha
|
||||
END IF
|
||||
AFTER FIELD bodega
|
||||
SELECT * FROM intb00009 WHERE cod_bodega = p_conteo.bodega
|
||||
IF status = notfound THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD bodega
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_sec
|
||||
## Verifica que el codigo no exista en el catalogo de unidades. Si existe,
|
||||
## entonces despliega los datos del registro existente.
|
||||
SELECT b.descrip_esp,b.unidad_med,b.cod_cia
|
||||
INTO articulos.descrip_esp, articulos.unidad_med,p_cia
|
||||
FROM iptb00002 b
|
||||
WHERE b.cod_n = p_conteo.cod_n and
|
||||
b.cod_grupo = p_conteo.cod_grupo and
|
||||
b.cod_tipo = p_conteo.cod_tipo and
|
||||
b.cod_sec = p_conteo.cod_sec and
|
||||
b.bodega = p_conteo.bodega
|
||||
|
||||
IF status >= 0 THEN
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_n
|
||||
END IF
|
||||
ELSE
|
||||
CALL integridad()
|
||||
IF bandera = 1 THEN
|
||||
CLEAR SCREEN
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
LET descripcion = articulos.descrip_esp CLIPPED
|
||||
DISPLAY BY NAME descripcion ATTRIBUTE(CYAN)
|
||||
DISPLAY BY NAME articulos.unidad_med ATTRIBUTE(CYAN)
|
||||
LET documen = documento
|
||||
|
||||
AFTER FIELD cantidad
|
||||
|
||||
IF p_conteo.cantidad IS NULL THEN
|
||||
LET numero_msg = 16
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cantidad
|
||||
END IF
|
||||
|
||||
AFTER INPUT
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
LET salir = "S"
|
||||
GOTO sale
|
||||
END IF
|
||||
|
||||
SELECT sum(cantidad_2) INTO balance FROM iptb00006 WHERE
|
||||
cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and
|
||||
cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and
|
||||
status_t is null and
|
||||
fecha <= p_conteo.fecha
|
||||
|
||||
LET ex_mov = balance
|
||||
LET ex_mov = ex_mov USING "---,---,---.##"
|
||||
DISPLAY BY NAME ex_mov
|
||||
LABEL sale:
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
IF salir = "S" THEN
|
||||
GOTO sale1
|
||||
END IF
|
||||
|
||||
LET diferencia = ex_mov - p_conteo.cantidad
|
||||
IF diferencia < 0 THEN
|
||||
LET datos_gen.cod_mov = 11
|
||||
LET diferencia = diferencia * -1
|
||||
ELSE
|
||||
LET datos_gen.cod_mov = 25
|
||||
END IF
|
||||
DISPLAY BY NAME diferencia
|
||||
|
||||
SELECT num_doc INTO documento FROM iptb00007
|
||||
WHERE cod_mov = datos_gen.cod_mov
|
||||
|
||||
IF documento is null THEN
|
||||
LET documento = 1
|
||||
END IF
|
||||
LET documento = documento + 1
|
||||
DISPLAY datos_gen.cod_mov," ",documento at 11,3
|
||||
# Este control de que el documento existe fue puesto por orden del Ing. Paulino
|
||||
SELECT UNIQUE a.num_doc FROM iptb00006 a
|
||||
WHERE a.num_doc = documento and
|
||||
a.cod_n = p_conteo.cod_n and
|
||||
a.cod_grupo = p_conteo.cod_grupo and
|
||||
a.cod_tipo = p_conteo.cod_tipo and
|
||||
a.cod_sec = p_conteo.cod_sec and
|
||||
a.cod_mov = datos_gen.cod_mov
|
||||
|
||||
IF status != notfound THEN
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
GOTO volver
|
||||
END IF
|
||||
#A1 COMIENZA
|
||||
|
||||
IF diferencia = 0 THEN
|
||||
PROMPT "No tiene Diferencia, Desea Proseguir (S/N)" FOR CHAR opc
|
||||
LET opc = upshift(opc)
|
||||
IF opc = "N" THEN
|
||||
GOTO volver
|
||||
LET OPC = NULL
|
||||
ELSE
|
||||
SELECT UNIQUE cod_n FROM iptb00011
|
||||
WHERE fecha = p_conteo.fecha and cod_n = p_conteo.cod_n and
|
||||
cod_grupo=p_conteo.cod_grupo and cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and bodega = p_conteo.bodega
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
INSERT INTO iptb00011 VALUES (p_conteo.*,ex_mov,user,GETDATE(),null,
|
||||
null)
|
||||
ELSE
|
||||
UPDATE iptb00011 SET cantidad = p_conteo.cantidad,
|
||||
us_mod = user,
|
||||
fech_mod = GETDATE()
|
||||
WHERE fecha = p_conteo.fecha and cod_n = p_conteo.cod_n and
|
||||
cod_grupo=p_conteo.cod_grupo and cod_tipo=p_conteo.cod_tipo
|
||||
AND cod_sec = p_conteo.cod_sec and bodega = p_conteo.bodega
|
||||
END IF
|
||||
GOTO dif
|
||||
LET OPC = NULL
|
||||
END IF
|
||||
END IF
|
||||
LABEL dif:
|
||||
|
||||
#A1 TERMINA
|
||||
|
||||
IF ex_mov != p_conteo.cantidad THEN
|
||||
LET opc = "N"
|
||||
PROMPT "Tiene Diferencia el Conteo, Desea Hacer Ajuste (S/N)" FOR OPC
|
||||
LET opc = upshift(opc)
|
||||
#A1 COMIENZA
|
||||
|
||||
IF opc = "S" THEN
|
||||
START REPORT formu4 TO "C:\\archivo"
|
||||
DISPLAY "Codigo de Movimiento" AT 11,3
|
||||
DISPLAY "Numero Documento " AT 12,3
|
||||
|
||||
SELECT descrip_mov,status_mov INTO datos_gen.descrip_mov,mueve
|
||||
FROM iptb00005 WHERE cod_mov = datos_gen.cod_mov
|
||||
DISPLAY BY NAME datos_gen.descrip_mov,datos_gen.cod_mov
|
||||
|
||||
LABEL err1:
|
||||
LET datos_gen.num_doc = documento
|
||||
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = false
|
||||
GOTO sale1
|
||||
END IF
|
||||
|
||||
# Llama a la funcion que actializa las tablas que se afectara por el ajuste
|
||||
|
||||
CALL introduce(documento,mueve,diferencia,de,cant_ex,ex_mov)
|
||||
SELECT a.descrip_mov INTO p_descrip
|
||||
FROM iptb00005 a
|
||||
WHERE a.cod_mov = datos_gen.cod_mov
|
||||
|
||||
SELECT cantidad INTO p_cantidad
|
||||
FROM vetb00014
|
||||
WHERE cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and
|
||||
cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and
|
||||
status_t is null
|
||||
|
||||
OUTPUT TO REPORT formu4(documento,p_cia,datos_gen.cod_mov,0,0,
|
||||
" ",null,null,p_conteo.fecha,p_descrip,
|
||||
p_conteo.bodega,null,null,null,null,
|
||||
p_conteo.cod_n,p_conteo.cod_grupo,
|
||||
p_conteo.cod_tipo,p_conteo.cod_sec,
|
||||
0,diferencia,articulos.unidad_med,
|
||||
articulos.descrip_esp,p_cantidad)
|
||||
|
||||
FINISH REPORT formu4
|
||||
RUN "type c:\\archivo > %USPRINT%"
|
||||
END IF
|
||||
END IF
|
||||
|
||||
IF opc = "N" THEN
|
||||
SELECT unique cod_n FROM iptb00011
|
||||
WHERE fecha = p_conteo.fecha and cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and bodega = p_conteo.bodega
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
INSERT INTO iptb00011 VALUES (p_conteo.*,ex_mov,user,GETDATE(),null,null)
|
||||
ELSE
|
||||
UPDATE iptb00011 SET cantidad = p_conteo.cantidad,
|
||||
us_mod = user,
|
||||
fech_mod = GETDATE()
|
||||
WHERE fecha = p_conteo.fecha and cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and cod_tipo=p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and bodega = p_conteo.bodega
|
||||
END IF
|
||||
END IF
|
||||
|
||||
CLEAR FORM
|
||||
GOTO volver
|
||||
LABEL sale1:
|
||||
CLOSE WINDOW cuenta
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION introduce(documento,mueve,diferencia,de,cant_ex,ex_mov)
|
||||
|
||||
# Funcion actualizadora de las tablas del ajuste y conteo fisico
|
||||
|
||||
DEFINE documento CHAR(6)
|
||||
DEFINE documen INTEGER
|
||||
DEFINE mueve,de CHAR(1)
|
||||
DEFINE ex_mov,cant_ex, diferencia DECIMAL(10,2)
|
||||
LET documen = documento
|
||||
|
||||
IF datos_gen.cod_mov = 25 THEN
|
||||
LET diferencia = diferencia * -1
|
||||
END IF
|
||||
|
||||
INSERT INTO iptb00006(num_doc,cod_mov,fecha,cod_n,cod_grupo,cod_tipo,
|
||||
cod_sec,cantidad_2,bodega,us_crea,fech_crea)
|
||||
VALUES (documento,datos_gen.cod_mov,p_conteo.fecha,p_conteo.cod_n,
|
||||
p_conteo.cod_grupo,p_conteo.cod_tipo,p_conteo.cod_sec,diferencia,
|
||||
p_conteo.bodega,user,GETDATE())
|
||||
|
||||
UPDATE iptb00007 SET num_doc = documento
|
||||
WHERE cod_mov = datos_gen.cod_mov
|
||||
|
||||
SELECT UNIQUE cantidad FROM iptb00011
|
||||
WHERE fecha = p_conteo.fecha and cod_n = p_conteo.cod_n and
|
||||
cod_grupo = p_conteo.cod_grupo and cod_tipo = p_conteo.cod_tipo and
|
||||
cod_sec = p_conteo.cod_sec and bodega = p_conteo.bodega
|
||||
|
||||
IF STATUS = NOTFOUND THEN
|
||||
INSERT INTO iptb00011 values (p_conteo.*,ex_mov,user,GETDATE(),null,null)
|
||||
ELSE
|
||||
|
||||
# Si el conteo existe busca la cantidad que se le digito anterior a este
|
||||
# conteo
|
||||
|
||||
SELECT UNIQUE cantidad_2 INTO cant_ex FROM iptb00006
|
||||
WHERE num_doc = documen and cod_mov = datos_gen.cod_mov and
|
||||
cod_n = p_conteo.cod_n and cod_grupo = p_conteo.cod_grupo and
|
||||
cod_tipo = p_conteo.cod_tipo and cod_sec = p_conteo.cod_sec and
|
||||
bodega = p_conteo.bodega
|
||||
|
||||
|
||||
UPDATE iptb00011 SET cantidad = p_conteo.cantidad,
|
||||
us_mod = user,
|
||||
fech_mod = GETDATE()
|
||||
WHERE fecha = p_conteo.fecha and cod_n = p_conteo.cod_n and
|
||||
cod_grupo=p_conteo.cod_grupo and cod_tipo=p_conteo.cod_tipo and
|
||||
cod_sec=p_conteo.cod_sec and bodega = p_conteo.bodega
|
||||
|
||||
IF datos_gen.cod_mov = 11 THEN
|
||||
LET p_conteo.cantidad = (ex_mov - cant_ex) + diferencia
|
||||
ELSE
|
||||
LET p_conteo.cantidad = (ex_mov+ cant_ex) + diferencia
|
||||
END IF
|
||||
|
||||
END IF
|
||||
IF de = "S" THEN
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
ELSE
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
LET de = null
|
||||
END FUNCTION
|
||||
}
|
||||
Reference in New Issue
Block a user