- Fórum
- Protheus/Microsiga/Totvs
- Instalação e Configuração Protheus
- Dicas e Informações
- MTATIP71() Ponto de Entrada Registro 71
Perguntas MTATIP71() Ponto de Entrada Registro 71
- lalberto
- Autor do Tópico
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 4 meses atrás #16031
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
MTATIP71() Ponto de Entrada Registro 71 foi criado por lalberto
#include "rwmake.ch"
// PONTO DE ENTRADA - REGISTRO 71
User Function Mtatip71()
/*
Bom dia Tito, conforme resposta d2a programaçao o tratamento do antigo ponto de entrada MTATIP TI1656 RAQUEL 25/03/03 10:46
71 sofreu profundas alterações no programa, motivadas por mudanças no sintegra, o SF3 não está mais
posicionado no ponto de entrada. Disponibilizamos um array como parâmetro do ponto de entrada...A es
trutura ( posições ) do array é esta:
Aadd(aArrayF3,{(cAliasSF3)->F3_NFISCAL,;.(cAliasSF3)->F3_SERIE,;
.(cAliasSF3)->F3_CLIEFOR,;.(cAliasSF3)->F3_LOJA,;.(cAliasSF3)->F3_CFO,;
.(cAliasSF3)->F3_TIPO,;.(cAliasSF3)->F3_ESPECIE,;.(cAliasSF3)->F3_ALIQICM,;
.(cAliasSF3)->F3_PDV,;.(cAliasSF3)->F3_ENTRADA,;.(cAliasSF3)->F3_ICMSRET,;
.(cAliasSF3)->F3_ISENICM,;.(cAliasSF3)->F3_DTCANC,;.(cAliasSF3)->F3_CODISS,;
.(cAliasSF3)->F3_OUTRICM,;.(cAliasSF3)->F3_VALICM,;.(cAliasSF3)->F3_VALCONT,;
.(cAliasSF3)->F3_EMISSAO,;.(cAliasSF3)->F3_BASEICM,;.(cAliasSF3)->F3_OBSERV,;
.(cAliasSF3)->F3_FORMUL})
..Este array está disponível apenas para consulta, e é o segundo parâmetro do ponto de entrada. Para obtê-lo, utilizar :
..Local aArray := {}
..aArray := ParamIxb[ 2 ]
..OBS: O mata940 deve estar atualizado.
*/
SetPrvt("_CALIAS,xImpConhec")
*
//Local aArray := {}
aArray := ParamIxb[ 2 ]
SetPrvt("_CALIAS")
_cAlias := Select()
*
// O Alias A940AMONTSF3 e a aonde ficam guardadas as informacoes do SF3 que serao usadas para preencher o arquivo TIPO 71
// OBS : Uso da funcao Select() e da variavel _cAlias nas funcoes dbSelectArea() e Reclock() foi porque o Protheus nao disponibilizava o Alias cArq071 para trabalho. Com isso nao era possivel seleciona-lo, mas como logo apos o Alias que preenche o arquivo Tipo 70 vem o do Tipo 71 o uso da funcao Select()+1 torna possivel a selecao das informacoes necessarias para preencher o arquivo tipo 71. O Nome do arquivo nao foi utilizado por esse nome varia a cada chamada ao programa.
*
//Identifica a empresa/filial imprime conhec.de frete
xImpConhec := SubStr(GETMV("MV_CTRC"),1,1)
If ! xImpConhec $ "Ss"
Return
EndIf
*
dbSelectArea("R71") // Seleciona a area para gravar as informacoes do TIPO 71
*
// Funcao utilizada para verificar se o Area de Trabalho e valida
// Seleciona os dados com base no A940AMONTSF3
If Used()
*
If AllTrim(aARRAY[1,7]) == "NF" .Or. SubStr(aARRAY[1,5], 1, 1) < '5' //Só altera
Return
EndIf
*
dbSelectArea("SZ5")
dbSetOrder(6)
dbSeek(XFILIAL()+aARRAY[1,2]+aARRAY[1,1])
*
If Found()
*
// Pesquisar cliente
dbSelectArea("SA1")
dbSetOrder(1)
dbSeek(xFilial()+SZ5->Z5_DES+SZ5->Z5_LOJADES)
*
dbSelectArea("SZ6")
dbSetOrder(1)
dbSeek(SZ5->(Z5_FILIAL+Z5_NUM))
*
dbSelectArea("R71")
RecLock(Alias(), .T.)
Replace A71_CGCTOM With SA1->A1_CGC
// O Campo abaixo deveria pegar a data no SF1, mas usa Z5_DATAFAT
// porque e a mesma.
Replace A71_DTCONH With SZ5->Z5_DATAFAT
Replace A71_IETOM With SA1->A1_INSCR
Replace A71_UFTOM With SA1->A1_EST
Replace A71_MODCON With "08"
Replace A71_SERCON With aARRAY[1,2]
Replace A71_SUBCON With Space(02)
Replace A71_NUMCON With aARRAY[1,1] // SZ5->Z5_NOTA
Replace A71_UFREM With SA1->A1_EST
Replace A71_CGCREM With SA1->A1_CGC
Replace A71_IEREM With SA1->A1_INSCR
// Linha comentada porque o campo ainda nao foi criado no SZ6
// apos a cricao do campo essa linha devera ser habilitada e a
// linha(Replace A71_DTNOTA With SZ5->Z5_DATAFAT) deve ser excluida.
// Replace A71_DTNOTA With SZ6->Z6_DTNOTA
Replace A71_DTNOTA With SZ5->Z5_DATAFAT
Replace A71_MODNOT With "01"
Replace A71_SERNOT With SZ6->Z6_SERIE
Replace A71_NUMNOT With SZ6->Z6_NF
Replace A71_VALNOT With SZ6->Z6_TOTNF
MsUnlock()
EndIf
*
EndIf
//Retorna a area anterior
dbSelectArea(_cAlias)
Return
// PONTO DE ENTRADA - REGISTRO 71
User Function Mtatip71()
/*
Bom dia Tito, conforme resposta d2a programaçao o tratamento do antigo ponto de entrada MTATIP TI1656 RAQUEL 25/03/03 10:46
71 sofreu profundas alterações no programa, motivadas por mudanças no sintegra, o SF3 não está mais
posicionado no ponto de entrada. Disponibilizamos um array como parâmetro do ponto de entrada...A es
trutura ( posições ) do array é esta:
Aadd(aArrayF3,{(cAliasSF3)->F3_NFISCAL,;.(cAliasSF3)->F3_SERIE,;
.(cAliasSF3)->F3_CLIEFOR,;.(cAliasSF3)->F3_LOJA,;.(cAliasSF3)->F3_CFO,;
.(cAliasSF3)->F3_TIPO,;.(cAliasSF3)->F3_ESPECIE,;.(cAliasSF3)->F3_ALIQICM,;
.(cAliasSF3)->F3_PDV,;.(cAliasSF3)->F3_ENTRADA,;.(cAliasSF3)->F3_ICMSRET,;
.(cAliasSF3)->F3_ISENICM,;.(cAliasSF3)->F3_DTCANC,;.(cAliasSF3)->F3_CODISS,;
.(cAliasSF3)->F3_OUTRICM,;.(cAliasSF3)->F3_VALICM,;.(cAliasSF3)->F3_VALCONT,;
.(cAliasSF3)->F3_EMISSAO,;.(cAliasSF3)->F3_BASEICM,;.(cAliasSF3)->F3_OBSERV,;
.(cAliasSF3)->F3_FORMUL})
..Este array está disponível apenas para consulta, e é o segundo parâmetro do ponto de entrada. Para obtê-lo, utilizar :
..Local aArray := {}
..aArray := ParamIxb[ 2 ]
..OBS: O mata940 deve estar atualizado.
*/
SetPrvt("_CALIAS,xImpConhec")
*
//Local aArray := {}
aArray := ParamIxb[ 2 ]
SetPrvt("_CALIAS")
_cAlias := Select()
*
// O Alias A940AMONTSF3 e a aonde ficam guardadas as informacoes do SF3 que serao usadas para preencher o arquivo TIPO 71
// OBS : Uso da funcao Select() e da variavel _cAlias nas funcoes dbSelectArea() e Reclock() foi porque o Protheus nao disponibilizava o Alias cArq071 para trabalho. Com isso nao era possivel seleciona-lo, mas como logo apos o Alias que preenche o arquivo Tipo 70 vem o do Tipo 71 o uso da funcao Select()+1 torna possivel a selecao das informacoes necessarias para preencher o arquivo tipo 71. O Nome do arquivo nao foi utilizado por esse nome varia a cada chamada ao programa.
*
//Identifica a empresa/filial imprime conhec.de frete
xImpConhec := SubStr(GETMV("MV_CTRC"),1,1)
If ! xImpConhec $ "Ss"
Return
EndIf
*
dbSelectArea("R71") // Seleciona a area para gravar as informacoes do TIPO 71
*
// Funcao utilizada para verificar se o Area de Trabalho e valida
// Seleciona os dados com base no A940AMONTSF3
If Used()
*
If AllTrim(aARRAY[1,7]) == "NF" .Or. SubStr(aARRAY[1,5], 1, 1) < '5' //Só altera
Return
EndIf
*
dbSelectArea("SZ5")
dbSetOrder(6)
dbSeek(XFILIAL()+aARRAY[1,2]+aARRAY[1,1])
*
If Found()
*
// Pesquisar cliente
dbSelectArea("SA1")
dbSetOrder(1)
dbSeek(xFilial()+SZ5->Z5_DES+SZ5->Z5_LOJADES)
*
dbSelectArea("SZ6")
dbSetOrder(1)
dbSeek(SZ5->(Z5_FILIAL+Z5_NUM))
*
dbSelectArea("R71")
RecLock(Alias(), .T.)
Replace A71_CGCTOM With SA1->A1_CGC
// O Campo abaixo deveria pegar a data no SF1, mas usa Z5_DATAFAT
// porque e a mesma.
Replace A71_DTCONH With SZ5->Z5_DATAFAT
Replace A71_IETOM With SA1->A1_INSCR
Replace A71_UFTOM With SA1->A1_EST
Replace A71_MODCON With "08"
Replace A71_SERCON With aARRAY[1,2]
Replace A71_SUBCON With Space(02)
Replace A71_NUMCON With aARRAY[1,1] // SZ5->Z5_NOTA
Replace A71_UFREM With SA1->A1_EST
Replace A71_CGCREM With SA1->A1_CGC
Replace A71_IEREM With SA1->A1_INSCR
// Linha comentada porque o campo ainda nao foi criado no SZ6
// apos a cricao do campo essa linha devera ser habilitada e a
// linha(Replace A71_DTNOTA With SZ5->Z5_DATAFAT) deve ser excluida.
// Replace A71_DTNOTA With SZ6->Z6_DTNOTA
Replace A71_DTNOTA With SZ5->Z5_DATAFAT
Replace A71_MODNOT With "01"
Replace A71_SERNOT With SZ6->Z6_SERIE
Replace A71_NUMNOT With SZ6->Z6_NF
Replace A71_VALNOT With SZ6->Z6_TOTNF
MsUnlock()
EndIf
*
EndIf
//Retorna a area anterior
dbSelectArea(_cAlias)
Return
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- Instalação e Configuração Protheus
- Dicas e Informações
- MTATIP71() Ponto de Entrada Registro 71
Tempo para a criação da página:0.111 segundos