Programar para multiusuario
Hola experto, estoy desarrollando un sistema para un Corralon que tiene varios vendedores y necesito saber si tengo que usar los comandos tableupdate() y tablerevert() en todas las tablas que use para realizar la facturación (tabla compras, compras_a, detalle_factura, artículos, etc.) .Este es una parte de mi código, ¿esto se hace o usa así? ¿O solamente debo utilizar tableupdate y tablerevert en algunas partes especiales?, aquí va parte del código:
*aqui genero un nº de factura dependiendo el tipo de factura A o B
IF tipo_f="B"
SET MULTILOCKS ON
CURSORSETPROP("Buffering",3,"compras")
SELECT compras
SET DELETED OFF
SET ORDER TO NRO_FACT && NRO_FACT
GO BOTTOM
IF nro_fact=0
nf=inicial
ELSE
nf=nro_fact + 1
ENDIF
ELSE
SET MULTILOCKS ON
CURSORSETPROP("Buffering",3,"compras_a")
SELECT compras_a
SET DELETED OFF
SET ORDER TO NRO_FACT && NRO_FACT
GO BOTTOM
IF nro_fact=0
nf=inicial_a
ELSE
nf=nro_fact + 1
ENDIF
ENDIF
*guardo los datos de la factura A o B
SET DELETED ON
APPEND BLANK
replace nro_fact WITH nf
replace num_emple WITH n_vendedor
replace num_cli WITH cliente_actual
replace fecha_compra WITH fe
replace hora WITH TIME()
replace desc_gral WITH p_dgral
replace observaciones WITH obs
replace total WITH thisform.text7.Value
IF tipo_f="A"
replace tipo WITH 1
ELSE
replace tipo WITH 2
ENDIF
TABLEUPDATE(.T.)
*guardo el detalle de la factura A o B (temp es un cursor que guarda el detalle de la factua)
SELECT temp
SCAN
ar=id_art
c=cant_temp
di=descuento
p=precio
IF tipo_f="B"
SET MULTILOCKS ON
CURSORSETPROP("Buffering",3,"detalle_factura")
SELECT detalle_factura
ELSE
SET MULTILOCKS ON
CURSORSETPROP("Buffering",3,"detalle_factura_a")
SELECT detalle_factura_a
ENDIF
APPEND BLANK
replace cod_art WITH ar
replace cant WITH c
replace nro_fact WITH nf
replace desc_item WITH di
replace precio WITH p
TABLEUPDATE(.T.)
*resto de stock los articulos
SET MULTILOCKS ON
CURSORSETPROP("Buffering",3,"articulos")
SELECT articulos
SET FILTER TO
LOCATE for cod_art=ar
can=cantidad
replace cantidad WITH (can - c)
Tableupdate(.t.)
Endscan
Perdón por lo extenso pero necesito terminar cuanto antes este sistema y agradecería mucho que me puedas orientar al respecto
*aqui genero un nº de factura dependiendo el tipo de factura A o B
IF tipo_f="B"
SET MULTILOCKS ON
CURSORSETPROP("Buffering",3,"compras")
SELECT compras
SET DELETED OFF
SET ORDER TO NRO_FACT && NRO_FACT
GO BOTTOM
IF nro_fact=0
nf=inicial
ELSE
nf=nro_fact + 1
ENDIF
ELSE
SET MULTILOCKS ON
CURSORSETPROP("Buffering",3,"compras_a")
SELECT compras_a
SET DELETED OFF
SET ORDER TO NRO_FACT && NRO_FACT
GO BOTTOM
IF nro_fact=0
nf=inicial_a
ELSE
nf=nro_fact + 1
ENDIF
ENDIF
*guardo los datos de la factura A o B
SET DELETED ON
APPEND BLANK
replace nro_fact WITH nf
replace num_emple WITH n_vendedor
replace num_cli WITH cliente_actual
replace fecha_compra WITH fe
replace hora WITH TIME()
replace desc_gral WITH p_dgral
replace observaciones WITH obs
replace total WITH thisform.text7.Value
IF tipo_f="A"
replace tipo WITH 1
ELSE
replace tipo WITH 2
ENDIF
TABLEUPDATE(.T.)
*guardo el detalle de la factura A o B (temp es un cursor que guarda el detalle de la factua)
SELECT temp
SCAN
ar=id_art
c=cant_temp
di=descuento
p=precio
IF tipo_f="B"
SET MULTILOCKS ON
CURSORSETPROP("Buffering",3,"detalle_factura")
SELECT detalle_factura
ELSE
SET MULTILOCKS ON
CURSORSETPROP("Buffering",3,"detalle_factura_a")
SELECT detalle_factura_a
ENDIF
APPEND BLANK
replace cod_art WITH ar
replace cant WITH c
replace nro_fact WITH nf
replace desc_item WITH di
replace precio WITH p
TABLEUPDATE(.T.)
*resto de stock los articulos
SET MULTILOCKS ON
CURSORSETPROP("Buffering",3,"articulos")
SELECT articulos
SET FILTER TO
LOCATE for cod_art=ar
can=cantidad
replace cantidad WITH (can - c)
Tableupdate(.t.)
Endscan
Perdón por lo extenso pero necesito terminar cuanto antes este sistema y agradecería mucho que me puedas orientar al respecto
1 Respuesta
Respuesta de softigal
1