Versões comparadas

Chave

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

01.

...

DATOS GENERALES

ProdutoLinha ProdutoLinha

Línea Protheus

ModulosCrossSegmentosFunçãoStory

Producto

:

Solucoes_totvs

Solucoes_totvs_cross
SolucaoCrossTOTVS Backoffice

Solucoes_totvs_parceiros
SolucaoParceiros

Solucoes_totvs_parceirosexptotvs
SolucaoParcsExpsTOTVS

Línea de

producto:

Linhas_totvs
Linha

Segmento:

Segmentos_totvs
SegmentoServiços

Módulo:

Modulos_cross_segmentos

TOTVS Backoffice (Linha Línea Protheus) - Contabilidade Gerencial Contabilidad de gestión (SIGACTB)

Modulos_framework

Modulos_totvs_construcao

Modulos_totvs_juridico

Modulos_totvs_logistica

Modulos_totvs_manufatura

Modulos_totvs_rh

Modulos_totvs_saude

Modulos_totvs_prestadores_de_servicos

Función:

CTBXSALA

País:

Brasil

Ticket:

Interno

Requisito/

Story/Issue

DSERCTR1-46748

02. 

...

DESCRIPCIÓN

...

El punto de entrada CTBSLDLP permite que

...

el sistema acceda a las fechas del último y penúltimo cálculo, incluso cuando el parámetro "Posición Ant. L/P" está configurado como "

...

".

...

Este permite visualizar y manejar la información de cálculos anteriores, garantizando que los datos históricos estén disponibles para consultas y procesos de análisis.

Con el CTBSLDLP, se puede ajustar el comportamiento estándar del sistema para garantizar que, aun cuando existen restricciones impuestas por el parámetro de posición anterior, las informaciones de los cálculos más recientes se pueden acceder y utilizar según sea necesario, contribuyendo para la precisión de los procesos de control y análisis financiero.

03. OTRAS INFORMACIONES

Com o CTBSLDLP, é possível ajustar o comportamento padrão do sistema para garantir que, mesmo quando há restrições impostas pelo parâmetro de posição anterior, as informações das apurações mais recentes possam ser acessadas e utilizadas conforme necessário, contribuindo para a precisão dos processos de controle e análise financeira.

...


Bloco de código
languagecpp
themeRDark
titleManipulação de PE no sistema
cQuery += ExecBlock("CTBSldLP", .F.,.F., { lImpAntLP , dDataLP, aMeses , lAcum , cMoeda , cTpSaldo , 1 } )
Bloco de código
languagecpp
themeRDark
titleExemplo Ejemplo de PE
#include 'Protheus.ch'
#include 'rwmake.ch'

User Function CTBSldLP()

Local lImpAntLP := PARAMIXB[1]
Local dDataLP := PARAMIXB[2]
Local aMeses := PARAMIXB[3]
Local lAcum := PARAMIXB[4]
Local cMoeda := PARAMIXB[5]
Local cTpSaldo := PARAMIXB[6]
Local nOpc := PARAMIXB[7]
Local cQuery := ''
Local nColunas := 0
Local lREL12Mes := ((Alltrim(FunName()) == 'CTBR265') .Or. (Alltrim(FunName()) == 'ABCTR265'))
Local lRel6Mes := ((Alltrim(FunName()) == 'CTBR260') .Or. (Alltrim(FunName()) == 'ABCTR260'))
Local nMes := 0

If nOpc == 1
If lREL12Mes .And. !lImpAntLP // solo para comparativo de 12 meses

For nColunas := 1 to Len(aMeses)
cQuery += " (SELECT SUM(CT7_CREDIT) - SUM(CT7_DEBITO) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "

If lAcum .and. nColunas <> 12 /// SI SE FOR ACUMULADOACUMULA, ALA PRIMEIRAPRIMERA COLUNACOLUMNA TERATENDRÁ OEL SALDO ATEHASTA OEL FINAL DODEL PERIODOPERÍODO

cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "

ElseIf lAcum .and. (nColunas == 12) /// SI SE FOR ACUMULADOACUMULA, ALA PRIMEIRAPRIMERA COLUNACOLUMNA TERATENDRÁ OEL SALDO ATEHASTA OEL FINAL DODEL PERIODOPERÍODO

cQuery += " AND ( "
cQuery += " (CT7_DATA <= '"+DTOS(aMeses[nColunas][3]-1)+"') "
cQuery += " OR "
cQuery += " (CT7_DATA = '"+DTOS(aMeses[nColunas][3])+"' AND "+IIF(!lImpAntLP, "CT7_LP <> 'Z'", "") + " ) "
cQuery += " ) "

Else /// LAS ASDEMÁS DEMAISCOLUMNAS COLUNASSIEMPRE SEMPRESUMAN SOMAMEL OMOVIMIENTO MOVIMENTOEN NOEL PERIODOPERÍODO. (CALCULO NOEN EL RELATORIOINFORME)

cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "

If !lImpAntLP .and. nColunas == 12
cQuery += " AND CT7_LP <> 'Z' "
EndIf

Endif

If lImpAntLP .and. (dDataLP >= aMeses[nColunas][2])
cQuery += " AND CT7_LP <> 'Z' "
Endif

cQuery += " AND CT7.D_E_L_E_T_ = ' ') COLUNA"+Str(nColunas,Iif(nColunas>9,2,1))+" "

If nColunas <> Len(aMeses)
cQuery += ", "
EndIf
Next

Elseif lRel6Mes .And. !lImpAntLP // solo para comparativo de 6 mesesmesess

For nColunas := 1 to Len(aMeses)
nMes := Month(aMeses[nColunas][3])

cQuery += " (SELECT SUM(CT7_CREDIT) - SUM(CT7_DEBITO) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "

If lAcum .and. nMes <> 12 /// SI SE FOR ACUMULADOACUMULA, ALA PRIMEIRAPRIMERA COLUNACOLUMNA TERATENDRÁ OEL SALDO ATEHASTA OEL FINAL DODEL PERIODOPERÍODO

cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "

ElseIf lAcum .and. (nMes == 12) /// SI SE FOR ACUMULADOACUMULA, ALA PRIMEIRAPRIMERA COLUNACOLUMNA TERATENDRÁ OEL SALDO ATEHASTA OEL FINAL DODEL PERIODOPERÍODO

cQuery += " AND ( "
cQuery += " (CT7_DATA <= '"+DTOS(aMeses[nColunas][3]-1)+"') "
cQuery += " OR "
cQuery += " (CT7_DATA = '"+DTOS(aMeses[nColunas][3])+"' AND "+IIF(!lImpAntLP, "CT7_LP <> 'Z'", "") + " ) "
cQuery += " ) "

Else /// LAS ASDEMÁS DEMAISCOLUMNAS COLUNASSIEMPRE SEMPRESUMAN SOMAMEL OMOVIMIENTO MOVIMENTOEN NOEL PERIODOPERÍODO. (CALCULO NOEN EL RELATORIOINFORME)

cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "

If !lImpAntLP .and. nColunas == 12
cQuery += " AND CT7_LP <> 'Z' "
EndIf

Endif

If lImpAntLP .and. (dDataLP >= aMeses[nColunas][2])
cQuery += " AND CT7_LP <> 'Z' "
Endif

cQuery += " AND CT7.D_E_L_E_T_ = ' ') COLUNA"+Str(nColunas,Iif(nColunas>9,2,1))+" "

If nColunas <> Len(aMeses)
cQuery += ", "
EndIf
Next

Else

For nColunas := 1 to Len(aMeses)
cQuery += " (SELECT SUM(CT7_CREDIT) - SUM(CT7_DEBITO) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "
If lAcum //.and. nColunas == 1//// SI SE FOR ACUMULADOACUMULA, ALA PRIMEIRAPRIMERA COLUNACOLUMNA TERATENDRÁ OEL SALDO ATEHASTA OEL FINAL DODEL PERIODOPERÍODO
cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "
Else /// ASLAS DEMÁS DEMAISCOLUMNAS COLUNASSIEMPRE SEMPRESUMAN SOMAMEL OMOVIMIENTO MOVIMENTOEN NOEL PERIODOPERÍODO. (CALCULO EN NOEL RELATORIOINFORME)
cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
Endif
If lImpAntLP .and. dDataLP >= aMeses[nColunas][2]
cQuery += " AND CT7_LP <> 'Z' "
Endif
cQuery += " AND CT7.D_E_L_E_T_ = ' ') COLUNA"+Str(nColunas,Iif(nColunas>9,2,1))+" "

If nColunas <> Len(aMeses)
cQuery += ", "
EndIf
Next

Endif


Elseif nOpc == 2 /// Trecho para oeL passopaso "considera valor zeradoen cero"


cQuery += U_VlrZero(lImpAntLP,dDataLP,aMeses,lAcum,cMoeda,cTpSaldo)

Endif

Return cQuery


User Function VlrZero(lImpAntLP,dDataLP,aMeses,lAcum,cMoeda,cTpSaldo)

Local cQuery := ''
Local nColunas := 0
Local lREL12Mes := ((Alltrim(FunName()) == 'CTBR265') .Or. (Alltrim(FunName()) == 'ABCTR265'))
Local lRel6Mes := ((Alltrim(FunName()) == 'CTBR260') .Or. (Alltrim(FunName()) == 'ABCTR260'))
Local nMes := 0

If lREL12Mes .And. !lImpAntLP // solo para comparativo 12 meses

cQuery += " AND ( "
For nColunas := 1 to Len(aMeses)
cQuery += " (SELECT ROUND(SUM(CT7_CREDIT),2) - ROUND(SUM(CT7_DEBITO),2) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "

If lAcum .and. nColunas <> 12 /// SI SE FOR ACUMULADOACUMULA, ALA PRIMEIRAPRIMERA COLUNACOLUMNA TERATENDRÁ OEL SALDO ATEHASTA OEL FINAL DODEL PERIODOPERÍODO

cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "

ElseIf lAcum .and. (nColunas == 12) /// SI SE FOR ACUMULADOACUMULA, ALA PRIMEIRAPRIMERA COLUNACOLUMNA TERATENDRÁ OEL SALDO ATEHASTA OEL FINAL DODEL PERIODOPERÍODO

cQuery += " AND ( "
cQuery += " (CT7_DATA <= '"+DTOS(aMeses[nColunas][3]-1)+"') "
cQuery += " OR "
cQuery += " (CT7_DATA = '"+DTOS(aMeses[nColunas][3])+"' AND "+IIF(!lImpAntLP, "CT7_LP <> 'Z'", "") + " ) "
cQuery += " ) "

Else /// ASLAS DEMÁS DEMAISCOLUMNAS COLUNASSIEMPRE SEMPRESUMAN SOMAMEL OMOVIMIENTO MOVIMENTOEN NOEL PERIODOPERÍODO. (CALCULO NOEN EL RELATORIOINFORME)

cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "

If !lImpAntLP .and. nColunas == 12
cQuery += " AND CT7_LP <> 'Z' "
EndIf

Endif

If lImpAntLP .and. dDataLP >= aMeses[nColunas][2]
cQuery += " AND CT7_LP <> 'Z' "
Endif
cQuery += " AND CT7.D_E_L_E_T_ = ' ') <> 0 "
If nColunas <> Len(aMeses)
cQuery += " OR "
EndIf
Next
cQuery += " ) "

Elseif lRel6Mes .And. !lImpAntLP // solo para comparativo 6 meses


For nColunas := 1 to Len(aMeses)
nMes := Month(aMeses[nColunas][3])

cQuery += " (SELECT SUM(CT7_CREDIT) - SUM(CT7_DEBITO) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "

If lAcum .and. nMes <> 12 /// SI SE FOR ACUMULADOACUMULA, ALA PRIMEIRAPRIMERA COLUNACOLUMNA TERATENDRÁ OEL SALDO ATEHASTA OEL FINAL DODEL PERIODOPERÍODO

cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "

ElseIf lAcum .and. (nMes == 12) /// SI SE FOR ACUMULADOACUMULA, ALA PRIMEIRAPRIMERA COLUNACOLUMNA TERATENDRÁ OEL SALDO ATEHASTA OEL FINAL DO PERIODO

cQueryDEL PERÍODO  cQuery += " AND ( "
cQuery += " (CT7_DATA <= '"+DTOS(aMeses[nColunas][3]-1)+"') "
cQuery += " OR "
cQuery += " (CT7_DATA = '"+DTOS(aMeses[nColunas][3])+"' AND "+IIF(!lImpAntLP, "CT7_LP <> 'Z'", "") + " ) "
cQuery += " ) "

Else /// ASLAS DEMÁS DEMAISCOLUMNAS COLUNASSIEMPRE SEMPRESUMAN SOMAMEL OMOVIMIENTO MOVIMENTOEN NOEL PERIODOPERÍODO. (CALCULO EN NOEL RELATORIOINFORME)

cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "

If !lImpAntLP .and. nColunas == 12
cQuery += " AND CT7_LP <> 'Z' "
EndIf

Endif

If lImpAntLP .and. (dDataLP >= aMeses[nColunas][2])
cQuery += " AND CT7_LP <> 'Z' "
Endif

cQuery += " AND CT7.D_E_L_E_T_ = ' ') <> 0 "

If nColunas <> Len(aMeses)
cQuery += " OR "
EndIf
Next



cQuery += " AND ( "
For nColunas := 1 to Len(aMeses)
cQuery += " (SELECT ROUND(SUM(CT7_CREDIT),2) - ROUND(SUM(CT7_DEBITO),2) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "
If lAcum
cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "
Else
cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
EndIf
If lImpAntLP .and. dDataLP >= aMeses[nColunas][2]
cQuery += " AND CT7_LP <> 'Z' "
Endif
cQuery += " AND CT7.D_E_L_E_T_ = ' ') <> 0 "
If nColunas <> Len(aMeses)
cQuery += " OR "
EndIf
Next
cQuery += " ) "

Else

cQuery += " AND ( "
For nColunas := 1 to Len(aMeses)
cQuery += " (SELECT ROUND(SUM(CT7_CREDIT),2) - ROUND(SUM(CT7_DEBITO),2) "
cQuery += " FROM "+RetSqlName("CT7")+" CT7 "
cQuery += " WHERE CT7.CT7_FILIAL = '"+xFilial("CT7")+"' "
cQuery += " AND ARQ.CT1_CONTA = CT7_CONTA "
cQuery += " AND CT7_MOEDA = '"+cMoeda+"' "
cQuery += " AND CT7_TPSALD = '"+cTpSaldo+"' "
If lAcum
cQuery += " AND CT7_DATA <= '"+DTOS(aMeses[nColunas][3])+"' "
Else
cQuery += " AND CT7_DATA BETWEEN '"+DTOS(aMeses[nColunas][2])+"' AND '"+DTOS(aMeses[nColunas][3])+"' "
EndIf
If lImpAntLP .and. dDataLP >= aMeses[nColunas][2]
cQuery += " AND CT7_LP <> 'Z' "
Endif
cQuery += " AND CT7.D_E_L_E_T_ = ' ') <> 0 "
If nColunas <> Len(aMeses)
cQuery += " OR "
EndIf
Next
cQuery += " ) "

Endif

Return cQuery
Aviso
titleImportante !!
  • Se observa que la utilización del PE y sus impactos en el sistema es de responsabilidad del cliente.
  • Los ejemplos utilizados en esta documentación solamente son para fines de demostración, cada cliente debe verificar el comportamiento que desea realizar de acuerdo con el alcance del punto
  • Observa-se que a utilização do PE e os impactos dele no sistema são de responsabilidade do cliente.
  • Os exemplos utilizados nessa documentação são apenas para fins de demonstração, cada cliente deve verificar qual comportamento deseja realizar de acordo com o escopo do ponto de entrada.

04.

...

ASUNTOS RELACIONADOS