// *Inclusão de Conhecimento considerando Tipo NF Normal*
#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"
// BIBLIOTECA
#include
#INCLUDE "Protheus.ch"
User Function rmata116()
Local aCabeccCodFor := "COM003"
Local cLojFor := "01"
Local cNumDoc := {}"COM116001"
Local aItenscSerie := "1"
Local aCabec := {}
Local aItens := {}
Local aLinha := {}
Local aRatcc := {}
Local aRateio := {}
Local aCCItem aRatcc := {}
Local nX := 0
Local nY ::= 0
Local nTamFilial := 0
Local lOk := .T.
Local cFilSF1 := ""
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
//------------------------//| Abertura do ambiente |//------------------------
//PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "COM" TABLES "SB1","SD1","SF1"
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| VerificacaoVerificação do ambiente para teste |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//-- Verifica informações |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//-- Verifica informacoes de produto
dbSelectArea("de produto
dbSelectArea("SB1")
dbSetOrder(1)
If !SB1->(MsSeek(xFilial("SB1")+"001"))
lOk := .F.
ConOut("Cadastrar produto: 001")
EndIf
//-- Verifica informacoesinformações da TES
dbSelectArea("SF4")
dbSetOrder(1)
If !SF4->(MsSeek(xFilial("SF4")+"001"))
lOk := .F.
ConOut("Cadastrar TES: 001")
EndIf
//-- Verifica informacoesinformações da condicaocondição de pagamento
dbSelectArea("SE4")
dbSetOrder(1)
If !SE4->(MsSeek(xFilial("SE4")+"001"))
lOk := .F.
ConOut("Cadastrar condicaocondição de pagamento: 001")
EndIf
//-- Verifica fornecedor
dbSelectArea("SA2")
dbSetOrder(1)
If !SA2->(MsSeek(xFilial("SA2")+"001"))
lOk := .F.
ConOut("Cadastrar fornecedor: 001")
EndIf
If lOk
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Carrega ate 3 documentos de origem - Fornecedor 000001000001 |
|
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SF1")
dbSetOrder(1)
MsSeek(xFilial("SF1"))
While !EOF()
IF (Alltrim(SF1->F1_FORNECE+SF1->F1_LOJA) =="001 01")
COM00301")
if nX<3
cFilSF1 := xFilial("SF1")
nTamFilial := Len(cFilSF1)
aadd(aItens,{{"PRIMARYKEY",AllTrim(SubStr(&(IndexKey()),nTamFilial + 1))}}) //Tratamento para Gestao Empresas
else
exit
Endif
nX++
EndIf
dbskip()
EndDo
IF nX
exit
Endif
nX++
EndIf
dbskip()
EndDo
IF nX >0
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Teste de Inclusao |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
>0
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Teste de Inclusão |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aadd(aCabec,{"",Ctod("01/01/2015")}) //Data Inicial
aadd(aCabec,{"",Ctod("01/12/2015")}) //Data Final
aadd(aCabec,{"",2}) //2-Inclusao;1=Exclusao
aadd(aCabec,{"",cCodFor}) //Fornecedor do documento de Origem
aadd(aCabec,{"",cLojFor}) //Loja de origem
aadd(aCabec,{"",dDataBase-901}) //Tipo da nota de //Data Inicial
origem: 1=Normal;2=Devol/Benef
aadd(aCabec,{"",dDataBase1}) //Data Final
1=Aglutina;2=Nao aglutina
aadd(aCabec,{"F1_EST",2""}) //2-Inclusao;1=Exclusao
aadd(aCabec,{"",1000}) //Valor do conhecimento
aadd(aCabec,{"F1_FORMUL","001 "2}) // Utiliza Formulario proprio ? //Fornecedor do documento de Origem
1-Nao,2-Sim
aadd(aCabec,{"F1_DOC",cNumDoc}) //..Numero da NF de Conhecimento de Frete
aadd(aCabec,{"F1_SERIE","01"cSerie}) //Loja de origem
aadd(aCabec,{"F1_FORNECE",cCodFor})
aadd(aCabec,{"F1_LOJA",cLojFor})
aadd(aCabec,{"",1"001"}) //Tipo da nota de origem: 1=Normal;2=Devol/Benef
aadd//TES
aadd(aCabec,{"F1_BASERET",20}) //1=Aglutina;2=Nao aglutina
aadd(aCabec,{"F1_ICMRET",0})
aadd(aCabec,{"F1_ESTCOND","001"})
aadd(aCabec,{"F1_EMISSAO",1000dDataBase}) //Valor do conhecimento
aadd(aCabec,{"F1_FORMULESPECIE",1"NF"})
//-- Rateio de Centro de
aadd(aCabec,{"F1_DOCCustos
AAdd (aCCItem, {"DE_ITEM","00004301"}) //..Numero da NF de Conhecimento de Frete
aadd(aCabec,{"F1_SERIE","CF "})
aadd(aCabec,{"F1_FORNECE","001 "})
aadd(aCabec,{"F1_LOJA","01"})
aadd(aCabec,{"","001"}) //TES
aadd(aCabec,{"F1_BASERET",0})
aadd(aCabec,{"F1_ICMRET",0})
aadd(aCabec,{"F1_COND","001"})
aadd(aCabec,{"F1_EMISSAO",dDataBase})
aadd(aCabec,{"F1_ESPECIE","NF"})
aadd(aCabec,{"E2_NATUREZ",""})
If Len(aItens)>0
//item da nota //Item do Rateio , Perc. Rate ,Cent.de Cus,,,, Alias,Linha Deletada, Item 02 do Rateio.
aRatcc := {{"0001" ,{{'01'
AAdd (aCCItem, {"DE_PERC",45})
AAdd (aCCItem, {"DE_CC","COM002"})
AAdd (aRatCC, aCCItem)
aCCItem := {}
AAdd (aCCItem, {"DE_ITEM","02"})
AAdd (aCCItem, {"DE_PERC",55})
AAdd (aCCItem, {"DE_CC","COM003"})
AAdd (aRatCC, aCCItem)
AAdd (aRateio, {"0001",aRatCC})
MATA116(aCabec,aItens,,,aRateio)
If lMsErroAuto
MostraErro()
Conout("Erro!")
Else
Conout("Ok!")
Endif
EndIf
EndIf
RESET ENVIRONMENT
Return(.T.)
****************************************************************************
// Inclusão de Conhecimento considerando Tipo NF Devol/Benef
#INCLUDE "RWMAKE.CH"
#INCLUDE "TBICONN.CH"
#INCLUDE "Protheus.ch"
User Function mt116Dev()
Local cCliFor := "COM002"
Local cLclifor := "01"
Local cNumDoc := "COM116002"
Local cSerie := "1"
Local cTransp := "COM003"
Local cLtransp := "01"
Local cOrigem := "COM000013"
Local cSerie := "1 "
Local cSerieId
Local cEspecie := "CTR"
Local cTipo := "C"
Local nX := 0
Local nY := 0
Local aItens := {}
Local aLinha := {}
Local aCabec := {}
Local nTamFilial := 0
Local lOk := .T.
Local cFilSF1 := ""
Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
//------------------------//| Abertura do ambiente |//------------------------
//PREPARE ENVIRONMENT EMPRESA "99" FILIAL "01" MODULO "COM" TABLES "SB1","SD1","SF1"
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Verificação do ambiente para teste |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//-- Verifica informações de produto
dbSelectArea("SB1")
dbSetOrder(1)
If !SB1->(MsSeek(xFilial("SB1")+"X123456"))
lOk := .F.
ConOut("Cadastrar produto: 001")
EndIf
//-- Verifica informacões da TES
dbSelectArea("SF4")
dbSetOrder(1)
If !SF4->(MsSeek(xFilial("SF4")+"001"))
lOk := .F.
ConOut("Cadastrar TES: 001")
EndIf
//-- Verifica informações da condição de pagamento
dbSelectArea("SE4")
dbSetOrder(1)
If !SE4->(MsSeek(xFilial("SE4")+"001"))
lOk := .F.
ConOut("Cadastrar condição de pagamento: 001")
EndIf
//-- Verifica fornecedor
dbSelectArea("SA2")
dbSetOrder(1)
If !SA2->(MsSeek(xFilial("SA2")+"000002"))
lOk := .F.
ConOut("Cadastrar fornecedor: 001")
EndIf
If lOk
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Carrega ate 3 documentos de origem - Fornecedor 000001 |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SF1")
dbSetOrder(1)
MsSeek(xFilial("SF1"))
While !EOF()
IF (Alltrim(SF1->F1_FORNECE+SF1->F1_LOJA) =="COM00201")
if nX<3
cFilSF1 := xFilial("SF1")
nTamFilial := Len(cFilSF1)
aadd(aItens,{{"PRIMARYKEY",AllTrim(SubStr(&(IndexKey()),nTamFilial + 1))}}) //Tratamento para Gestao Empresas
else
exit
Endif
nX++
EndIf
dbskip()
EndDo
IF nX >0
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Teste de Inclusão |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
aadd(aCabec,{"",Ctod("01/01/2015")}) //Data Inicial
aadd(aCabec,{"",Ctod("01/12/2015")}) //Data Final
aadd(aCabec,{"",2}) //2-Inclusao;1=Exclusao
aadd(aCabec,{"",cCliFor}) //Fornecedor do documento de Origem
aadd(aCabec,{"",cLclifor}) //Loja de origem
aadd(aCabec,{"",2}) //Tipo da nota de origem: 1=Normal;2=Devol/Benef
aadd(aCabec,{"",1}) //1=Aglutina;2=Nao aglutina
aadd(aCabec,{"F1_EST",""})
aadd(aCabec,{"",150}) //Valor do conhecimento
aadd(aCabec,{"F1_FORMUL",1}) // Utiliza Formulario proprio ? 1-Nao,2-Sim
aadd(aCabec,{"F1_DOC",cNumDoc}) //..Numero da NF de Conhecimento de Frete
aadd(aCabec,{"F1_SERIE",cSerie})
aadd(aCabec,{"F1_FORNECE",cTransp})
aadd(aCabec,{"F1_LOJA",cLtransp})
aadd(aCabec,{"","001"}) //TES
aadd(aCabec,{"F1_BASERET",0})
aadd(aCabec,{"F1_ICMRET",0})
aadd(aCabec,{"F1_COND","001"})
aadd(aCabec,{"F1_EMISSAO",dDataBase})
aadd(aCabec,{"F1_ESPECIE",cEspecie})
//aadd(aItens,{"PRIMARYKEY",cOrigem})
MSExecAuto({|x,y| Mata116(x,y)},aCabec,aItens)
If lMsErroAuto
MostraErro()
Conout("Erro!") ,50
,"000000000",,,,"SDE",,,,.F. Else },{'02',50,"000001",,,,"SDE",,,,.F.}}}}
MATA116(aCabec,aItens,,,aRatcc)
EndIf
If lMsErroAuto
MostraErro()
Alert("Erro!")
Else
Alert Conout("Ok!")
Endif
EndIf EndIf
EndIf
Return(.T.) |