Clarion - Descontar desde inventario

 
Vista:
sin imagen de perfil
Val: 23
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

Descontar desde inventario

Publicado por Manuel (12 intervenciones) el 14/02/2021 18:49:08
Buenas tardes!
Gracias de ante mano por las solucione que me aportado, en esta ocasión les pido ayuda ya que he visto varios ejemplos y no me funcionan al 100%.
Estoy haciendo un sistema de facturación por hobby, ya tengo mis tablas de :
1. Cliente
2. Productos
3. Ventas
4. Detalle de ventas
Todo hasta ahora perfecto! Pero al momento de descontar el inventario he tenido algunos problemas!
Tengo mi Formulario de Ventas! Con sus campos de : Nro Factura, Cliente, Fecha, Monto total, impuestos etc:
Y dentro un browser con detalle de ventas: código de producto, cantidad, precio etc:
El proceso lo hace todo perfecto, pero no descuenta del inventario al procesar la factura!
Tengo algo asi en el código pero no me funciona!
1
2
3
4
5
6
7
8
9
IF DETVTA:procodigo = POD:procodigo
SET(DETVTA:keyprocodigo,POD:keyprocodigo)
LOOP Until Access:poductos.Next()
POD:cantidad -= DETVTA:cantidad
put(poductos)
IF ERRORCODE() THEN MESSAGE(' TU MENSAJE ') !IF
END!IF
end
END

xSyaXrJNGe
Vv5VxhkBBm
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 403
Oro
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

Descontar desde inventario

Publicado por Marcelo Madelón (319 intervenciones) el 15/02/2021 22:06:08
Manuel

Te muestro como lo hago yo.

Lo podes hacer en dos lugares.
Cuando aceptas lo datos del hijo o cuando aceptas el padre. (Detalle items y factura)

Si lo haces cuando aceptas los datos del item y si permitis modificar
cuando ingresas debes guardar los datos del ID del producto y la cantidad en dos variables locales.
Cuando das aceptar

En open files
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
LOC:ID_Articulo = DET:ID_Artículo
LOC:Cantidad   =  DET:Cantidad
 
! EN ACEPTAR
!Si no es accion "Insert"
IF Self:Request NOT = InsertRecord
    ART:ID_Articulo  =   LOC:ID_Articulo        ! id del maestro de artículos
    IF Access:ASTOCK01.Fetch(AST:KeyID_Articulo           !Lee
        MESSAGE('No Encuentra Registro en ASTOCK','Mensaje del Sistema',ICON:Exclamation)
        Select(?DET:ID_Articulo)
        CYCLE                           !           Regresa el foco al campo DET:ID_Articulo
    END
    AST:Existencia += LOC:Cantidad    !  Devuelvo  la cantidad original al articulo original
!  Actualizo el articulo
    IF   Access:ASTOCK01.Update()
           MESSAGE('No Actualiza Existencias del artículo original,'Mensaje del Sistema',ICON:Exclamation)
    END
END
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Si no es acción de borrar, o sea insert o Change (agregar o modificar)
IF Self:Request NOT = DeleteRecord
! Ahora voy a restar la cantidad del artículo que se ingreso o se cambió
    ART:ID_Articulo  =   FAC:ID_Articulo        ! id del maestro de artículos
    IF Access:ASTOCK01.Fetch(AST:KeyID_Articulo           !Lee
        MESSAGE('No Encuentra Registro en ASTOCK','Mensaje del Sistema',ICON:Exclamation)
        RETURN Level:Fatal ! Salir del programa
        !  Acá para armar el ejemplo lo habo abortar y no es lo correcto.
    END
    AST:Existencia -= FAC:Cantidad    !  Resto   la cantidad
!  Actualizo el articulo
    IF   Access:AASTOCK01.Update()
           MESSAGE('No Actualiza Existencias del artículo original,'Mensaje del Sistema',ICON:Exclamation)
    END
END

Esto es si actualizas la existencia cuando grabas, modificas o borras un hijo


En la proxima te mustro como lo hago si actualizo existencias cuando da aceptar el padre.
El inconveniente de esta forma es que hasta que no grabas el padre no se actualiza la existencia y uede pasar que
el software te diga que tenes existencia y en realidad no la tenes por que no terminaste de grabar el padre.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
! En el caso del padre
! Hago un loop del hijo y resto las existencias y actualizo el maestro de Stock
 
CLEAR(DET:Record)
! Cargo una clave del hijo y la leo secuencialmente
DET:Letra  = FAC:Letra
DET:Puesto= FAC:Puesto
DET:NUmero = FAC:Numero
SET(DET:Clave,DET:Clave)   ! Ordeno por clave y Me posiciono en  el primer hijo que tenga esa clave
LOOP UNTIL Access:Detalle.Next() or  DET:Letra  <> FAC:Letra or DET:Puesto<> FAC:Puesto or DET:NUmero <> FAC:Numero
 ! Leo mientras sea la misma letra, el mismo puesto y el mismo numero
    ART:ID_Articulo  =   DET:ID_Articulo        ! id del maestro de artículos
    IF Access:ASTOCK01.Fetch(AST:KeyID_Articulo           !Lee
        MESSAGE('No Encuentra Registro en ASTOCK','Mensaje del Sistema',ICON:Exclamation)
    END
    AST:Existencia -= DETCantidad    !  Resto  la cantidad  al articulo
!  Actualizo el articulo
    IF   Access:ASTOCK01.Update()
           MESSAGE('No Actualiza Existencias del artículo original,'Mensaje del Sistema',ICON:Exclamation)
    END
END


Espero se entienda, de lo contrario no dudes en volver a preguntar


Saludos desde Venado Tuerto . Argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 403
Oro
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

Descontar desde inventario

Publicado por Marcelo Madelón (319 intervenciones) el 15/02/2021 22:25:01
Esta el la imagen del caso que acturlices cuando aceptas cada hijo (cada item)

help




En la segunda imagen esd cuasndo actualizo el padre

help1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 23
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

Descontar desde inventario

Publicado por Manuel (12 intervenciones) el 16/02/2021 17:11:27
Gracias voy a probar los dos y cualquier cosa te comento, muy agradecido!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 23
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

Descontar desde inventario

Publicado por Manuel (12 intervenciones) el 16/02/2021 19:00:06
Perfecto me funciono al 1000% Agradecido, a ver si puedes o tendrás algún ejemplo, hay manera de bajar información desde una web con clarión, yo necesito bajar los precios del dólar de x pagina que publica los precios
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 403
Oro
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

Descontar desde inventario

Publicado por Marcelo Madelón (319 intervenciones) el 17/02/2021 15:50:13
Abrir una pagina WEB con ShellExecute

En el embed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
LOC:Handle = 0{PROP:Handle}
LOC:Op     = 'Open'
LOC:File   = 'http://www.evolutionconsulting.com.ar'
LOC:Path   = ' '
LOC:Param  = ' '
LOC:Show   = 1
LOC:RetHandle = ShellExecute(LOC:Handle,LOC:Op,LOC:File,LOC:Param,LOC:Path,LOC:Show)
 
 
 
! Otro ejemplo.  Consulta del cuit
 
 
! *  Conectarme a la web  consulta cuit on line
 
IF  AC1:Id_Documento    =    80 or AC1:Id_Documento = 86
    RUN('C:\Users\Marcelo\AppData\Local\Google\Chrome\Application\chrome.exe https://www.cuitonline.com/search.php?q=' & AC1:Cuit)
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 23
Ha mantenido su posición en Clarion (en relación al último mes)
Gráfica de Clarion

Descontar desde inventario

Publicado por Manuel (12 intervenciones) el 18/02/2021 00:40:44
Ok! Por lo que veo en el código es para abrir una URL, pero me sirve para traerme los datos de los marcadores yo necesito bajar los valores del dólar de esta pagina https://criptodolar.net/ y se guarden en una tablas!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar