Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  1. Visão Geral
  2. Exemplo de utilização
    1. Tela XXX
      1. Outras Ações / Ações relacionadas
      1. Cenário de inclusão
      2. Inclusões múltiplas
      3. Alteração
      4. Exclusão
      Tela XXX
      1. Principais Campos e Parâmetros
    2. Tabelas utilizadas


    01. VISÃO GERAL

    ...

    Exemplo de rotina automática no cadastro de ativos(ATFA012), mostrando exemplos de utilização e tabelas relacionadas.



    02. EXEMPLO DE UTILIZAÇÃO

    ...

    Informações
    titleObservação

    Nos casos em que ocorram mais de uma linha na tabela SN3, é obrigatório a passagem do campo N3_SEQ.



    Cenário de inclusão normal de apenas 1 registro:

    Bloco de código
    languagepy
    themeMidnight
    titleInclusão
    linenumberstrue
    collapsetrue
    #INCLUDE "Protheus.CH"
    #include "rwmake.ch"
    #include "TOTVS.ch"
    #include "TBICONN.ch"
    
    User Function MyAtfa012
        Local aArea := GetArea()
    	Local cBase := "ATFX01"//"0000000000"
    	Local cItem := "0002"
    	Local nQtd := 1
    	Local cChapa := "AJEDS10"//"00000"
    	Local cPatrim := "N"
    	Local cTipo := "01"//"01"
    
    	Local cGrupo := ""
    	Local dAquisic //:= dDataBase //:= CTOD("01/06/20")//dDataBase
    	Local dIndDepr //:= RetDinDepr(dDataBase)
    	Local cDescric := "Teste 01"
    
    	Local cHistor := "TESTE "
    	Local cContab := "11101"
    	Local cCusto := "CDL"
    	Local cSubCon := "000000001"
    	Local cClvlCon := "000000000"
    
    	Local nValor := 1000
    	Local nTaxa := 10
    	Local nTamBase //:= TamSX3("N3_CBASE")[1]
    	Local nTamChapa //:= TamSX3("N3_CBASE")[1]
    
    	Local aParam := {}
    	Local aCab := {}
    	Local aItens := {}
    
    	Private lMsErroAuto := .F.
    	Private lMsHelpAuto := .T.
    
    	PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "ATF" TABLES "SN1","SN3"
    
    		dAquisic := dDataBase //:= CTOD("01/06/20")//dDataBase
    		dIndDepr := RetDinDepr(dDataBase)
    
    		DBSelectArea(aArea)
    		nTamBase := TamSX3("N3_CBASE")[1]
    		nTamChapa := TamSX3("N3_CBASE")[1]
    
    		aCab := {}
    		AAdd(aCab,{"N1_CBASE" , cBase ,NIL})
    		AAdd(aCab,{"N1_ITEM" , cItem ,NIL})
    		AAdd(aCab,{"N1_AQUISIC", dDataBase ,NIL})
    		AAdd(aCab,{"N1_DESCRIC", cDescric ,NIL})
    		AAdd(aCab,{"N1_QUANTD" , nQtd ,NIL})
    		AAdd(aCab,{"N1_CHAPA" , cChapa ,NIL})
    		AAdd(aCab,{"N1_PATRIM" , cPatrim ,NIL})
    		AAdd(aCab,{"N1_GRUPO" , cGrupo ,NIL})
    		//Coloque os campos desejados aqui 
    
    		aItens := {}
    		//-- Preenche itens
    
    
    		AAdd(aItens,{;
    		{"N3_CBASE" , cBase ,NIL},;
    		{"N3_ITEM" , cItem ,NIL},;
    		{"N3_TIPO" , cTipo ,NIL},;
    		{"N3_BAIXA" , "0" ,NIL},;
    		{"N3_HISTOR" , cHistor ,NIL},;
    		{"N3_CCONTAB" , cContab ,NIL},;
    		{"N3_CUSTBEM" , cCusto ,NIL},;
    		{"N3_CDEPREC" , cContab ,NIL},;
    		{"N3_CDESP" , cContab ,NIL},;
    		{"N3_CCORREC" , cContab ,NIL},;
    		{"N3_CCUSTO" , cCusto ,NIL},;
    		{"N3_DINDEPR" , dIndDepr ,NIL},;
    		{"N3_VORIG1" , nValor ,NIL},;
    		{"N3_TXDEPR1" , nTaxa ,NIL},;
    		{"N3_VORIG2" , nValor ,NIL},;
    		{"N3_TXDEPR2" , nTaxa ,NIL},;
    		{"N3_VORIG3" , nValor ,NIL},;
    		{"N3_TXDEPR3" , nTaxa ,NIL},;
    		{"N3_VORIG4" , nValor ,NIL},;
    		{"N3_TXDEPR4" , nTaxa ,NIL},;
    		{"N3_VORIG5" , nValor ,NIL},;
    		{"N3_SUBCCON" , cSubCon ,NIL},;
    		{"N3_CLVLCON" , cClvlCon ,NIL},;
    		{"N3_TXDEPR5" , nTaxa ,NIL};
    		})
    		//Coloque os campos desejados aqui
    
    		Begin Transaction
    
    			MSExecAuto({|x,y,z| Atfa012(x,y,z)},aCab,aItens,3,aParam)
    			If lMsErroAuto 
    
    			MostraErro()
    				DisarmTransaction()
    			Endif
    		End Transaction
    
    		RestArea(aArea)
    	RESET ENVIRONMENT
    
    Return

    ...

    Bloco de código
    languagepy
    themeMidnight
    titleMúltiplas inclusões
    linenumberstrue
    collapsetrue
    #include "rwmake.ch"
    #include "TOTVS.ch"
    #include "TBICONN.ch"
    
    User Function MyA012
    
      Local aArea
      Local cBase, cItem ,cGrupo, cChapa , cDescric:= " "
      Local cTipo := "13"
      Local cPatrim := "N"
      Local dIndDepr 
      Local cHistor := "TESTE EXEC"
      Local cContab := "PLANODECONTA00000000"
    
      Local cCusto := "CENTR0001"
      Local cSubCon :="000000001"
      Local cClvlCon:="000000000"
    
      Local nQtd := 1
      Local nValor := 10
      Local nTaxa := 1
      Local nTaxa2:= 1  
    
      Local nX
      Local aParam := {}
      Local aCab := {}
      Local aItens := {}
      Private lMsErroAuto := .F.
      Private lMsHelpAuto := .T.
    
      PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "ATF" TABLES "SN1","SN3"
            
        /*lançamento para inclusao de mais Ativos 
        ----------------------------------------------*/
        For nX :=1 To 2//Quantos registros serão incluídos
    
          aArea := GetArea()
    
          cBase   :=PadR("AG"+cValToChar(nX),TamSX3("A3_COD")[1])
          cItem   :=PadR("AG"+cValToChar(nX),TamSX3("N1_ITEM")[1],"")
          cChapa  :=PadR("AG"+cValToChar(nX),TamSX3("N1_CHAPA")[1])
          cDescric:=PadR("EXECAUT : "+ cValToChar(nX), TamSX3("N1_CHAPA")[1])
          dIndDepr := RetDinDepr(dDataBase)
    
          aCab := {}
          AAdd(aCab,{"N1_CBASE"   , cBase     ,NIL})
          AAdd(aCab,{"N1_ITEM"    , cItem     ,NIL})
          AAdd(aCab,{"N1_AQUISIC" , dDataBase ,NIL})
          AAdd(aCab,{"N1_DESCRIC" , cDescric  ,NIL})
          AAdd(aCab,{"N1_QUANTD"  , nQtd      ,NIL})
          AAdd(aCab,{"N1_CHAPA"   , cChapa    ,NIL})
          AAdd(aCab,{"N1_PATRIM"  , cPatrim   ,NIL})
          AAdd(aCab,{"N1_GRUPO"   , cGrupo    ,NIL})
          AAdd(aCab,{"N1_MARGEM"   ,"000000"  ,NIL})
          //adicione aqui os campos desejados
          
          aItens := {}
          //-- Preenche item 1
          AAdd(aItens,{;
                      {"N3_CBASE"   , cBase       ,NIL},;
                      {"N3_ITEM"    , cItem       ,NIL},;
                      {"N3_TIPO"    , cTipo       ,NIL},;
                      {"N3_BAIXA"   , "0"         ,NIL},;
                      {"N3_HISTOR"  , cHistor     ,NIL},;
                      {"N3_CCONTAB" , cContab     ,NIL},;
                      {"N3_CUSTBEM" , cCusto      ,NIL},;
                      {"N3_CDEPREC" , cContab     ,NIL},;
                      {"N3_CDESP"   , cContab     ,NIL},;
                      {"N3_CCORREC" , cContab     ,NIL},;
                      {"N3_CCUSTO"  , cCusto      ,NIL},;
                      {"N3_DINDEPR" , dIndDepr    ,NIL},;
                      {"N3_VORIG1"  , nValor      ,NIL},;
                      {"N3_TXDEPR1" , nTaxa       ,NIL},;
                      {"N3_VORIG2"  , nValor      ,NIL},;
                      {"N3_TXDEPR2" , nTaxa       ,NIL},;
                      {"N3_VORIG3"  , nValor      ,NIL},;
                      {"N3_TXDEPR3" , nTaxa       ,NIL},;
                      {"N3_VORIG4"  , nValor      ,NIL},;
                      {"N3_TXDEPR4" , nTaxa       ,NIL},;
                      {"N3_VORIG5"  , nValor      ,NIL},;
                      {"N3_TXDEPR5" , nTaxa       ,NIL},;
                      {"N3_VRDACM1" , nTaxa2      ,NIL},;
                      {"N3_SUBCCON" , cSubCon     ,NIL},;
                      {"N3_SEQ"     , SN3->N3_SEQ ,NIL},;
                      {"N3_CLVLCON" , cClvlCon    ,NIL};
                      })
                      //adicione acima os campos desejados
    
          //Controle de transacao
          Begin Transaction
    
            conOut('Inicio da rotina Automatica '+ Time())
            MSExecAuto({|x,y,z| Atfa012(x,y,z)},aCab,aItens,3,aParam)
            conOut('FIM' +Time())
    
            If lMsErroAuto 
                 MostraErro()
                 DisarmTransaction()
            else
              ConfirmSx8()
              conOut('INCLUIDO ATIVO N3_CBASE: '+ cBase + ", N3_ITEM : "+cItem+ ", N3_CUSTBEM : "+cCusto+ ", N3_SUBCCON : "+cSubCon+ ", N3_CLVLCON : "+cClvlCon)
            ENDIF    
    
            RestArea(aArea)
          End Transaction
    
          //Modificando campos para segunda execução
          cCusto  :="CENTR0002"
          cSubCon :="000000002"
          cClvlCon:="000000002"
          
        Next nX
    
      RESET ENVIRONMENT
    
    Return 




    Exemplo de alteração normal.Alteração:

    Bloco de código
    languagepy
    themeMidnight
    titleAlteração
    linenumberstrue
    collapsetrue
    #INCLUDE "Protheus.CH"
    
    User Function AltAtfa012()
    
    	Local aArea := GetArea()
    	Local nQtd := 1
    	Local dAquisic := dDataBase
    	Local dIndDepr := RetDinDepr(dDataBase)
    	Local nQtd := 2
    	Local nValor := 1000
    	Local nTaxa := 10
    	Local nTamBase := TamSX3("N3_CBASE")[1]
    	Local nTamChapa := TamSX3("N3_CBASE")[1]
    	Local cGrupo := "0001"
    	Local aParam := {}
    
    	Local aCab := {}
    	Local aItens := {}
    
    	Private lMsErroAuto := .F.
    	Private lMsHelpAuto := .T.
    
    	 
    	SN1->(DbSetOrder(1)) //N1_FILIAL+N1_CBASE+N1_ITEM
    	If SN1->(DbSeek(xFilial("SN1")+"0000000000"+"0001"))
    
    		aCab := {}
    		AAdd(aCab,{"N1_CBASE" , SN1->N1_CBASE ,NIL})
    		AAdd(aCab,{"N1_ITEM" , SN1->N1_ITEM ,NIL})
    		AAdd(aCab,{"N1_AQUISIC", SN1->N1_AQUISIC ,NIL})
    		AAdd(aCab,{"N1_DESCRIC", "TESTE MYAATF012 2" ,NIL})
    		AAdd(aCab,{"N1_QUANTD" , SN1->N1_QUANTD ,NIL})
    		AAdd(aCab,{"N1_CHAPA" , SN1->N1_CHAPA ,NIL})
    		AAdd(aCab,{"N1_PATRIM" , SN1->N1_PATRIM ,NIL})
    		AAdd(aCab,{"N1_GRUPO" , SN1->N1_GRUPO ,NIL})
    
    		aItens := {}
    		//-- Preenche itens
    		SN3->(DbSetOrder(1))//N3_FILIAL+N3_CBASE+N3_ITEM+N3_TIPO+N3_BAIXA+N3_SEQ
    		If SN3->(DbSeek(xFilial("SN3")+"0000000000"+"0001"+"01"+"0"+"001"))
    
    			AAdd(aItens,{;
    			{"N3_CBASE" , SN3->N3_CBASE ,NIL},;
    			{"N3_ITEM" , SN3->N3_ITEM ,NIL},;
    			{"N3_TIPO" , SN3->N3_TIPO ,NIL},;
    			{"N3_BAIXA" , SN3->N3_BAIXA ,NIL},;
    			{"N3_HISTOR" , "TESTE MYAATF012 2" ,NIL},;
    			{"N3_CCONTAB" , SN3->N3_CCONTAB ,NIL},;
    			{"N3_CUSTBEM" , SN3->N3_CUSTBEM ,NIL},;
    			{"N3_CDEPREC" , SN3->N3_CDEPREC ,NIL},;
    			{"N3_CDESP" , SN3->N3_CDESP ,NIL},;
    			{"N3_CCORREC" , SN3->N3_CCORREC ,NIL},;
    			{"N3_CCUSTO" , SN3->N3_CCUSTO ,NIL},;
    			{"N3_DINDEPR" , SN3->N3_DINDEPR ,NIL},;
    			{"N3_VORIG1" , SN3->N3_VORIG1 ,NIL},;
    			{"N3_TXDEPR1" , SN3->N3_TXDEPR1 ,NIL},;
    			{"N3_VORIG2" , SN3->N3_VORIG2 ,NIL},;
    			{"N3_TXDEPR2" , SN3->N3_TXDEPR2 ,NIL},;
    			{"N3_VORIG3" , SN3->N3_VORIG3 ,NIL},;
    			{"N3_TXDEPR3" , SN3->N3_TXDEPR3 ,NIL},;
    			{"N3_VORIG4" , SN3->N3_VORIG4 ,NIL},;
    			{"N3_TXDEPR4" , SN3->N3_TXDEPR4 ,NIL},;
    			{"N3_VORIG5" , SN3->N3_VORIG5 ,NIL},;
    			{"N3_TXDEPR5" , SN3->N3_TXDEPR5 ,NIL}})
    
    		EndIf
    
    		Begin Transaction
    
    			MSExecAuto({|x,y,z| Atfa012(x,y,z)},aCab,aItens,4,aParam)
    
    			If lMsErroAuto
    				MostraErro()
    				DisarmTransaction()
    			Endif
    
    		End Transaction
    	EndIf
    
    	RestArea(aArea)
    Return




    Exclusão:

    Bloco de código
    languagepy
    themeMidnight
    titleExclusão
    linenumberstrue
    collapsetrue
    #INCLUDE "Protheus.CH"
    
    User Function Exc012
    
    	Local aArea := GetArea()
    	Local nQtd := 1
    	Local dAquisic := dDataBase
    	Local dIndDepr := RetDinDepr(dDataBase)
    	Local nQtd := 2
    	Local nValor := 1000
    	Local nTaxa := 10
    	Local nTamBase := TamSX3("N3_CBASE")[1]
    	Local nTamChapa := TamSX3("N3_CBASE")[1]
    	Local cGrupo := "0001"
    	Local aParam := {}
    
    	Local aCab := {}
    	Local aItens := {}
    
    	Private lMsErroAuto := .F.
    	Private lMsHelpAuto := .T.
    
    	SN1->(DbSetOrder(1)) //N1_FILIAL+N1_CBASE+N1_ITEM
    	If SN1->(DbSeek(xFilial("SN1")+"0000000000"+"0001")) 
    
            aCab := {}
            AAdd(aCab,{"N1_CBASE" , SN1->N1_CBASE ,NIL})
            AAdd(aCab,{"N1_ITEM" , SN1->N1_ITEM ,NIL})
            AAdd(aCab,{"N1_AQUISIC", SN1->N1_AQUISIC ,NIL})
            AAdd(aCab,{"N1_DESCRIC", "TESTE MYAATF012" ,NIL})
            AAdd(aCab,{"N1_QUANTD" , SN1->N1_QUANTD ,NIL})
            AAdd(aCab,{"N1_CHAPA" , SN1->N1_CHAPA ,NIL})
            AAdd(aCab,{"N1_PATRIM" , SN1->N1_PATRIM ,NIL})
            AAdd(aCab,{"N1_GRUPO" , SN1->N1_GRUPO ,NIL})
    
    	EndIf
    
    	Begin Transaction
    
            MSExecAuto({|x,y,z| Atfa012(x,y,z)},aCab,Nil,5,aParam)
    
            If lMsErroAuto
    
                MostraErro()
                DisarmTransaction()
    
            Endif
    
    	End Transaction
    
    	RestArea(aArea)
    
    Return 

    03. TELA XXXXX

    Outras Ações / Ações relacionadas

    ...

    04. TELA XXXXX

    Principais Campos e Parâmetros

    ...



    05. TABELAS UTILIZADAS

    • SN3 -  Saldos e Valores
    • SN1 -  Ativo Imobilizado
    • SN4 -  Movimentações do Ativo Fixo
    • SN5 -  Arquivos de Saldos
    • SN8 -  Inventário
    • CT1 -  Plano de Contas
    • CTT -  Centro de Custo
    • CTD -  Item Contábil
    • CTH -  Classes de Valores





    HTML
    <!-- esconder o menu --> 
    
    
    <style>
    div.theme-default .ia-splitter #main {
        margin-left: 0px;
    }
    .ia-fixed-sidebar, .ia-splitter-left {
        display: none;
    }
    #main {
        padding-left: 10px;
        padding-right: 10px;
        overflow-x: hidden;
    }
    
    .aui-header-primary .aui-nav,  .aui-page-panel {
        margin-left: 0px !important;
    }
    .aui-header-primary .aui-nav {
        margin-left: 0px !important;
    }
    </style>