× Linguagem de Programação ADVPL

Perguntas MATA910

Mais
10 anos 7 meses atrás #22265 por rickbamen
MATA910 foi criado por rickbamen
Boa Noite

Gostaria de saber se alguem dos colegas, já precisou fazer inclusão de nota de entrada através da rotina automatica MATA910.

Eu tentei, mas não consegui saber pq não gerou a nota, mesmo não apresentando nenhum erro.

aadd(aCabec,{"F1_TIPO" ,aNota[nFaz][02] })//F1_TIPO
aadd(aCabec,{"F1_FORMUL" ,aNota[nFaz][03] })//F1_FORMUL
aadd(aCabec,{"F1_DOC" ,aNota[nFaz][04] })//F1_DOC
aadd(aCabec,{"F1_SERIE" ,aNota[nFaz][05] })//F1_SERIE
aadd(aCabec,{"F1_EMISSAO" ,ValData(aNota[nFaz][06]) })//F1_EMISSAO
aadd(aCabec,{"F1_FORNECE" ,aCliente[1] })//F1_FORNECE
aadd(aCabec,{"F1_TIPOCLI" ,aNota[nFaz][08] })//F1_TIPOCLI
aadd(aCabec,{"F1_LOJA" ,aCliente[2] })//F1_LOJA
aadd(aCabec,{"F1_ESPECIE" ,aNota[nFaz][10] })//F1_ESPECIE
aadd(aCabec,{"F1_COND" ,aNota[nFaz][11] })//F1_COND
aadd(aCabec,{"F1_DESCONT" ,ValVlr(aNota[nFaz][12],2) })//F1_DESCONT
aadd(aCabec,{"F1_VALBRUT" ,ValVlr(aNota[nFaz][13],2) })//F1_VALBRUT
aadd(aCabec,{"F1_VALFAT" ,ValVlr(aNota[nFaz][14],2) })//F1_VALFAT
aadd(aCabec,{"F1_FRETE" ,ValVlr(aNota[nFaz][15],2) })//F1_FRETE
aadd(aCabec,{"F1_SEGURO" ,ValVlr(aNota[nFaz][16],2) })//F1_SEGURO
aadd(aCabec,{"F1_DESPESA" ,ValVlr(aNota[nFaz][17],2) })//F1_DESPESA
//aadd(aCabec,{"F1_PREFIXO" ,aNota[nFaz][18] })//F1_PREFIXO
aadd(aCabec,{"F1_HORA" ,aNota[nFaz][19] })//F1_HORA
aadd(aCabec,{"F1_CHVNFE" ,aNota[nFaz][20] })//F1_CHVNFE

For nFazIte:=1 to len(aItens)
cIteAtu:= aItens[nFazIte][9]
IF(cNotaAt = cIteAtu)
aadd(aLinha,{"D1_ITEM" ,aItens[nFazIte][2] ,Nil})
aadd(aLinha,{"D1_COD" ,aItens[nFazIte][3] ,Nil})
aadd(aLinha,{"D1_QUANT" ,ValVlr(aItens[nFazIte][4],6) ,Nil})
aadd(aLinha,{"D1_PRCVEN" ,ValVlr(aItens[nFazIte][5],6) ,Nil})
aadd(aLinha,{"D1_TOTAL" ,ValVlr(aItens[nFazIte][6],2) ,Nil})
aadd(aLinha,{"D1_TES" ,aItens[nFazIte][7] ,Nil})
aadd(aLinha,{"D1_CF" ,aItens[nFazIte][8] ,Nil})
aadd(aItensT,aLinha)
EndIF
Next nFazIte

lMsErroAuto := .F.
MSExecAuto({|x,y,z| mata910(x,y,z)},aCabec,aItensT,3) //Inclusao
If lMsErroAuto
MostraErro()
EndIF

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 7 meses atrás #22266 por Victor
Respondido por Victor no tópico MATA910
Ricardo,

Não consegui identificar seu erro. Faz assim:

Defina seu lMsErroAuto antes de passar os dados na execauto:

lMsErroAuto := .F.

aadd(aCabec,{"F1_TIPO" ,aNota[nFaz][02] })//F1_TIPO
aadd(aCabec,{"F1_FORMUL" ,aNota[nFaz][03] })//F1_FORMUL
aadd(aCabec,{"F1_DOC" ,aNota[nFaz][04] })//F1_DOC
aadd(aCabec,{"F1_SERIE" ,aNota[nFaz][05] })//F1_SERIE
aadd(aCabec,{"F1_EMISSAO" ,ValData(aNota[nFaz][06]) })//F1_EMISSAO
aadd(aCabec,{"F1_FORNECE" ,aCliente[1] })//F1_FORNECE
aadd(aCabec,{"F1_TIPOCLI" ,aNota[nFaz][08] })//F1_TIPOCLI
aadd(aCabec,{"F1_LOJA" ,aCliente[2] })//F1_LOJA
aadd(aCabec,{"F1_ESPECIE" ,aNota[nFaz][10] })//F1_ESPECIE
aadd(aCabec,{"F1_COND" ,aNota[nFaz][11] })//F1_COND
aadd(aCabec,{"F1_DESCONT" ,ValVlr(aNota[nFaz][12],2) })//F1_DESCONT
aadd(aCabec,{"F1_VALBRUT" ,ValVlr(aNota[nFaz][13],2) })//F1_VALBRUT
aadd(aCabec,{"F1_VALFAT" ,ValVlr(aNota[nFaz][14],2) })//F1_VALFAT
aadd(aCabec,{"F1_FRETE" ,ValVlr(aNota[nFaz][15],2) })//F1_FRETE
aadd(aCabec,{"F1_SEGURO" ,ValVlr(aNota[nFaz][16],2) })//F1_SEGURO
aadd(aCabec,{"F1_DESPESA" ,ValVlr(aNota[nFaz][17],2) })//F1_DESPESA
//aadd(aCabec,{"F1_PREFIXO" ,aNota[nFaz][18] })//F1_PREFIXO
aadd(aCabec,{"F1_HORA" ,aNota[nFaz][19] })//F1_HORA
aadd(aCabec,{"F1_CHVNFE" ,aNota[nFaz][20] })//F1_CHVNFE

For nFazIte:=1 to len(aItens)
cIteAtu:= aItens[nFazIte][9]
IF(cNotaAt = cIteAtu)
aadd(aLinha,{"D1_ITEM" ,aItens[nFazIte][2] ,Nil})
aadd(aLinha,{"D1_COD" ,aItens[nFazIte][3] ,Nil})
aadd(aLinha,{"D1_QUANT" ,ValVlr(aItens[nFazIte][4],6) ,Nil})
aadd(aLinha,{"D1_PRCVEN" ,ValVlr(aItens[nFazIte][5],6) ,Nil})
aadd(aLinha,{"D1_TOTAL" ,ValVlr(aItens[nFazIte][6],2) ,Nil})
aadd(aLinha,{"D1_TES" ,aItens[nFazIte][7] ,Nil})
aadd(aLinha,{"D1_CF" ,aItens[nFazIte][8] ,Nil})
aadd(aItensT,aLinha)
EndIF
Next nFazIte


MSExecAuto({|x,y,z| mata910(x,y,z)},aCabec,aItensT,3) //Inclusao

If lMsErroAuto

MostraErro()

EndIF

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 7 meses atrás #22267 por rickbamen
Respondido por rickbamen no tópico MATA910
Vitor...
O problema é que não inclui a nota com o codigo que postei, apesar de não dar erro.
Sobre o que vc mencionou isso já é feito...apenas quando copiei faltou, mas ele já tem no meu codigo.
O engraçado é que ao terminar de executar a rotina ele abre a tela de inclusão de nota, mas não acho a nota que inseri...

Não sei se essa rotina precisa de alguma coisa, ou se ela é usada apenas para gerar uma nota complementar...

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 7 meses atrás #22268 por Victor
Respondido por Victor no tópico MATA910
Ricardo,


Você pode anexar seu fonte completo aqui?

Att

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 7 meses atrás #22269 por rickbamen
Respondido por rickbamen no tópico MATA910
Vitor...
O fonte é apenas o que te no post...
A unica coisa que ta faltando são os dois arrays de nota e itens que está mencionado no post...
Não tem nada de diferente....
Eu ja tentei executar MATA910, MATA103 e MATA140, mas não obtive sucesso na inclusão das notas em nenhuma das rotinas...

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 7 meses atrás #22270 por Victor
Respondido por Victor no tópico MATA910
Andei dando uma pesquisada e não achei execauto na rotina MATA910.

Em um cliente fiz na MATA103 segue exemplo:


lmsErroAuto:= .T.
aCAB := {}
aITEM := {}

aadd( aCab, { "F1_TIPO" ,"N" })
aadd( aCab, { "F1_FORMUL" ,"N" })
aadd( aCab, { "F1_DOC" ,_cNumCTe })
aadd( aCab, { "F1_SERIE" ,_cSerCTe })
aadd( aCab, { "F1_EMISSAO" ,CtoD(_cEmissa) })
aadd( aCab, { "F1_FORNECE" ,_cCdFor })
aadd( aCab, { "F1_LOJA" ,_cLojaF })
aadd( aCab, { "F1_ESPECIE" ,"SPED" })
aadd( aCab, { "F1_COND" ,"001" })
AADD(aCab, {"F1_CHVNFE" ,_cChavNFE })
aadd( aCab, { "E2_NATUREZ" ,"2.3.14" })
aadd(aCab,{"E2_VENCTO",_dDtVenc})

Aadd( aITEM, { { "D1_ITEM" ,"0001" ,Nil }, ;
{ "D1_COD" ,"000086" ,Nil }, ;
{ "D1_QUANT" ,1 ,Nil }, ;
{ "D1_VUNIT" ,_nVlUnit ,Nil }, ;
{ "D1_TES" ,"209" ,Nil }, ;
{ "D1_HIST",_cHistFin ,NIL }})

lMSErroAuto := .F.
lMSHelpAuto := .T.
Begin Transaction
MSExecAuto({|x,y,z|MATA103(x,y,z)},aCAB, aITEM,3,NIL)
End Transaction

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.136 segundos
Joomla templates by a4joomla