...
Producto | Produto: |
| |||||||||||||
Línea de | Produtoproducto: | | Linhas_totvs | | Linha | Linha|||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Segmento: |
| ||||||||||||||
Módulo: | |||||||||||||||
| Modulos_cross_segmentos | TOTVS Backoffice (Linha Línea Protheus) - Contabilidade Gerencial Contabilidad de gestión (SIGACTB)
| ||||||||||||||
Función: | CTBXSALA | ||||||||||||||
País: | Brasil | ||||||||||||||
Ticket: | Interno | ||||||||||||||
Requisito/ | StoryStory/Issue | DSERCTR1-46748 |
...
...
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 "
...
Sí".
...
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.
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 | ||||||
|---|---|---|---|---|---|---|
| ||||||
cQuery += ExecBlock("CTBSldLP", .F.,.F., { lImpAntLP , dDataLP, aMeses , lAcum , cMoeda , cTpSaldo , 1 } ) |
| Bloco de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
#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 // só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 // só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 // só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 // só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 | ||
|---|---|---|
| ||
|
...