ÍNDICE
- Visión general
- Ejemplo de utilización
01. VISIÓN GENERAL
Ejemplo de utilización de la rutina automática ATFA271 - Grupos de bienes.
02. EJEMPLO DE UTILIZACIÓN
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "rwmake.ch"
#include 'totvs.ch'
#include 'tbiconn.ch'
Static __oModelAut := NIL //variable oModel para sustituir msexecauto en MVC
User Function MyATF271Inc()
Local oSNGMASTER
Local oFNGDETAIL
Local lRet := .T.
Local nX := 0
Local aLog := {}
Local cLog := ""
Local cNG_GRUPO := "ATF4"
Local cNG_DESCRIC := "Grupo ATF01- CT001"
Local dNG_DTBLOQ := CtOD("01/01/2020")
Local cNG_CCUSTO := "CTB000000"
Local cNG_SUBCTA := "CTB000003"
Local cNG_CLVL := "CTB000000"
Local cNG_TPSALDO := "1"
Local cNG_TPDEPR := "1"
//Cuentas contables
Local cNG_CCONTAB:= "CTB00000000000000000"
Local cNG_CDEPREC:="CTB00000000000000001"
Local cNG_CCDEPR:="CTB00000000000000002"
Local cNG_CDESP:="CTB00000000000000003"
Local cNG_CCORREC:="CTB00000000000000004"
//Centros de costo
Local cNG_CUSTBEM:="CTB000001"
Local cNG_CCDESP :="CTB000002"
Local cNG_CCCDEP :="CTB000003"
Local cNG_CCCDES :="CTB000004"
Local cNG_CCCORR :="CTB000005"
//Ítems contables
Local cNG_SUBCCON:="CTB000003"
Local cNG_SUBCDEP:="CTB000004"
Local cNG_SUBCCDE:="CTB000005"
Local cNG_SUBCDES:="CTB000006"
Local cNG_SUBCCOR:="CTB000007"
//Clases de valor
Local cNG_CLVLCON:="CTB000001"
Local cNG_CLVLDEP:="CTB000002"
Local cNG_CLVLCDE:="CTB000003"
Local cNG_CLVLDES:="CTB000004"
Local cNG_CLVLCOR:="CTB000005"
//Solapa Otros
Local cNG_TAXAPAD:="ATF001"
Local cNG_DETPATR:="03"
Local cNG_UTIPATR:="2"
//GRID
Local cFNG_TIPO:="01"
Local cFNG_HISTOR:="CT001"
PREPARE ENVIRONMENT EMPRESA 'T1' FILIAL 'D MG 01' TABLES 'SNG','FNG' MODULO 'ATF'
If __oModelAut == Nil //solamente carga una vez el modelo
__oModelAut := FWLoadModel( 'ATFA271' )
EndIf
__oModelAut:SetOperation(MODEL_OPERATION_INSERT)
__oModelAut:Activate()
oSNGMASTER := __oModelAut:GetModel('SNGMASTER')
//-- Solapa principal
oSNGMASTER:SetValue('NG_GRUPO',cNG_GRUPO)
oSNGMASTER:SetValue('NG_DESCRIC',cNG_DESCRIC)
oSNGMASTER:SetValue('NG_DTBLOQ',dNG_DTBLOQ)
oSNGMASTER:SetValue('NG_CCUSTO',cNG_CCUSTO)
oSNGMASTER:SetValue('NG_SUBCTA',cNG_SUBCTA)
oSNGMASTER:SetValue('NG_CLVL',cNG_CLVL)
oSNGMASTER:SetValue('NG_TPSALDO',cNG_TPSALDO)
oSNGMASTER:SetValue('NG_TPDEPR',cNG_TPDEPR)
//-Solapa otros
oSNGMASTER:SetValue('NG_TAXAPAD',cNG_TAXAPAD)
oSNGMASTER:SetValue('NG_DETPATR',cNG_DETPATR)
oSNGMASTER:SetValue('NG_UTIPATR',cNG_UTIPATR)
//Cuentas contables
oSNGMASTER:SetValue('NG_CCONTAB',cNG_CCONTAB)
oSNGMASTER:SetValue('NG_CDEPREC',cNG_CDEPREC)
oSNGMASTER:SetValue('NG_CCDEPR',cNG_CCDEPR)
oSNGMASTER:SetValue('NG_CDESP',cNG_CDESP)
oSNGMASTER:SetValue('NG_CCORREC',cNG_CCORREC)
//Centros de costo
oSNGMASTER:SetValue('NG_CUSTBEM',cNG_CUSTBEM )
oSNGMASTER:SetValue('NG_CCDESP',cNG_CCDESP )
oSNGMASTER:SetValue('NG_CCCDEP',cNG_CCCDEP)
oSNGMASTER:SetValue('NG_CCCDES',cNG_CCCDES)
oSNGMASTER:SetValue('NG_CCCORR',cNG_CCCORR)
//Ítem contable
oSNGMASTER:SetValue('NG_SUBCCON',cNG_SUBCCON)
oSNGMASTER:SetValue('NG_SUBCDEP',cNG_SUBCDEP)
oSNGMASTER:SetValue('NG_SUBCCDE',cNG_SUBCCDE)
oSNGMASTER:SetValue('NG_SUBCDES',cNG_SUBCDES)
oSNGMASTER:SetValue('NG_SUBCCOR',cNG_SUBCCOR)
//Clase de valor
oSNGMASTER:SetValue('NG_CLVLCON',cNG_CLVLCON)
oSNGMASTER:SetValue('NG_CLVLDEP',cNG_CLVLDEP)
oSNGMASTER:SetValue('NG_CLVLCDE',cNG_CLVLCDE)
oSNGMASTER:SetValue('NG_CLVLDES',cNG_CLVLDES)
oSNGMASTER:SetValue('NG_CLVLCOR',cNG_CLVLCOR)
//GRID
oFNGDETAIL := __oModelAut:GetModel('FNGDETAIL')
oFNGDETAIL:SetValue('FNG_TIPO',cFNG_TIPO)
oFNGDETAIL:SetValue('FNG_HISTOR',cFNG_HISTOR)
If __oModelAut:VldData() //validación de los datos por el modelo
__oModelAut:CommitData() //grabación de los datos
Else
aLog := __oModelAut:GetErrorMessage() //Recupera el error del model cuando no pasó en el VldData
//bucle para grabar en string cLog contenido del array aLog
For nX := 1 to Len(aLog)
If !Empty(aLog[nX])
cLog += Alltrim(aLog[nX]) + CRLF
EndIf
Next nX
lMsErroAuto := .T. //flecha variable private como error
AutoGRLog(cLog) //graba log para mostrar con función mostraerro
mostraerro()
lRet := .F. //devuelve false
Endif
__oModelAut:DeActivate() //desactiva modelo
Return( lRet )
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "rwmake.ch"
#include 'totvs.ch'
#include 'tbiconn.ch'
Static __oModelAut := NIL //variable oModel para sustituir msexecauto en MVC
User Function MyATF271Alt()
Local oSNGMASTER
Local lRet := .T.
Local nX := 0
Local aLog := {}
Local cLog := ""
Local lFound := .F.
Local cNG_GRUPO := "ATF4"
Local cNG_DESCRIC := "Grupo ATF4- PRUEBA"
Local dNG_DTBLOQ := CtOD("02/02/2020")
PREPARE ENVIRONMENT EMPRESA 'T1' SUCURSAL 'D MG 01' TABLES 'SNG','FNG' MÓDULO 'ATF'
While SNG->(!Eof()) .AND. lFound == .F.
SNG->(dbSetOrder(1))
lFound := SNG->(dbSeek(SNG->NG_FILIAL+cNG_GRUPO))
If lFound
Loop
else
SNG->( dbSkip() )
Endif
Enddo
If __oModelAut == Nil //solamente carga una vez el modelo
__oModelAut := FWLoadModel( 'ATFA271' )
EndIf
__oModelAut:SetOperation(MODEL_OPERATION_UPDATE)
__oModelAut:Activate()
oSNGMASTER := __oModelAut:GetModel('SNGMASTER')
//-- Solapa principal
oSNGMASTER:SetValue('NG_DESCRIC',cNG_DESCRIC)
oSNGMASTER:SetValue('NG_DTBLOQ',dNG_DTBLOQ)
If __oModelAut:VldData() //validación de los datos por el modelo
__oModelAut:CommitData() //grabación de los datos
Else
aLog := __oModelAut:GetErrorMessage() //Recupera el error del model cuando no pasó en el VldData
//bucle para grabar en string cLog contenido del array aLog
For nX := 1 to Len(aLog)
If !Empty(aLog[nX])
cLog += Alltrim(aLog[nX]) + CRLF
EndIf
Next nX
lMsErroAuto := .T. //flecha variable private como error
AutoGRLog(cLog) //graba log para mostrar con función mostraerro
mostraerro()
lRet := .F. //devuelve false
Endif
__oModelAut:DeActivate() //desactiva modelo
Return( lRet )
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "rwmake.ch"
#include 'totvs.ch'
#include 'tbiconn.ch'
Static __oModelAut := NIL //variable oModel para sustituir msexecauto en MVC
User Function MyATF271Del()
Local lRet := .T.
Local nX := 0
Local aLog := {}
Local cLog := ""
Local lFound := .F.
Local cNG_GRUPO := "ATF4"
PREPARE ENVIRONMENT EMPRESA 'T1' SUCURSAL 'D MG 01' TABLES 'SNG','FNG' MÓDULO 'ATF'
While SNG->(!Eof()) .AND. lFound == .F.
SNG->(dbSetOrder(1))
lFound := SNG->(dbSeek(SNG->NG_FILIAL+cNG_GRUPO))
If lFound
Loop
else
SNG->( dbSkip() )
Endif
Enddo
If __oModelAut == Nil //solamente carga una vez el modelo
__oModelAut := FWLoadModel( 'ATFA271' )
EndIf
__oModelAut:SetOperation(MODEL_OPERATION_DELETE)
__oModelAut:Activate()
If __oModelAut:VldData() //validación de los datos por el modelo
__oModelAut:CommitData() //grabación de los datos
Else
aLog := __oModelAut:GetErrorMessage() //Recupera el error del model cuando no pasó en el VldData
//bucle para grabar en string cLog contenido del array aLog
For nX := 1 to Len(aLog)
If !Empty(aLog[nX])
cLog += Alltrim(aLog[nX]) + CRLF
EndIf
Next nX
lMsErroAuto := .T. //flecha variable private como error
AutoGRLog(cLog) //graba log para mostrar con función mostraerro
mostraerro()
lRet := .F. //devuelve false
Endif
__oModelAut:DeActivate() //desactiva modelo
Return( lRet )
05. TABLAS UTILIZADAS