- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Rotina automatca de Atendimento
×
Linguagem de Programação ADVPL
Perguntas Rotina automatca de Atendimento
- andreia296
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 38
- Obrigados Recebidos: 0
10 anos 2 dias atrás #26226
por andreia296
Rotina automatca de Atendimento foi criado por andreia296
Bom Dia
Preciso fazer uma rotina automática no televendas, fiz uma usando msexecauto porem nao grava
Tem algum problema para gravar na tabela SUA e SUB ??
Grata
Andreia
Preciso fazer uma rotina automática no televendas, fiz uma usando msexecauto porem nao grava
Tem algum problema para gravar na tabela SUA e SUB ??
Grata
Andreia
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
10 anos 2 dias atrás #26227
por admin
Respondido por admin no tópico Rotina automatca de Atendimento
Andreia boa tarde, no call center tabelas SUA e SUB senão me engano não tem execauto, tem que ser na raça mesmo, mas não tem problema, segue um fonte aonde faço a geração automatica do atendimento.
If !MsgYesNo(STR0023) //"Confirma a geracao do Novo Orcamento ?"
Return
EndIf
_lPri := .F.
_aItens := {}
_aPedOk := {}
While !Eof() .And. TLHA->LHA_NUMREQ = LHA->LHA_NUMREQ
If !_lPri
DbSelectArea('SUA')
RecLock('SUA',.T.)
SUA->UA_FILIAL := xFilial('SUA')
SUA->UA_NUM := TkNumero('SUA','UA_NUM')
SUA->UA_OPERADO := Posicione('SU7',3,xFilial('SU7')+Alltrim(cUserName),'U7_COD')
SUA->UA_CLIENTE := SA1->A1_COD
SUA->UA_LOJA := SA1->A1_LOJA
SUA->UA_DESCCLI := SA1->A1_NOME
SUA->UA_TMK := '2'
SUA->UA_OPER := '2'
SUA->UA_VEND := SA1->A1_VEND
SUA->UA_EXECCON := SA1->A1_EXECCON
SUA->UA_FATINT := 'S'
SUA->UA_AGLUTIN := SA1->A1_AGLUTIN
SUA->UA_EMISSAO := dDatabase
SUA->UA_CONDPG := IIf(!Empty(SA1->A1_COND),SA1->A1_COND,SuperGetMv('MV_CONDPAD'))
SUA->UA_CONDAF := IIf(!Empty(SA1->A1_COND),SA1->A1_COND,SuperGetMv('MV_CONDPAD'))
SUA->UA_STATUS := 'SUP'
SUA->UA_ENDCOB := SA1->A1_ENDCOB
SUA->UA_BAIRROC := SA1->A1_BAIRROC
SUA->UA_CEPC := SA1->A1_CEPC
SUA->UA_MUNC := SA1->A1_MUNC
SUA->UA_ESTC := SA1->A1_ESTC
SUA->UA_ENDENT := SA1->A1_ENDENT
SUA->UA_BAIRROE := SA1->A1_BAIRROE
SUA->UA_CEPE := SA1->A1_CEPE
SUA->UA_MUNE := SA1->A1_MUNE
SUA->UA_ESTE := SA1->A1_ESTE
SUA->UA_TRANSP := SA1->A1_TRANSP
SUA->UA_TPFRETE := SA1->A1_TPFRET
SUA->UA_PROSPEC := .F.
// Campos Especificos Datasupri
SUA->UA_CLIENT := SA1->A1_COD
SUA->UA_LOJAENT := SA1->A1_LOJA
SUA->UA_ALERTA := SA1->A1_ALERT
SUA->UA_DESCENT := SA1->A1_NOME
SUA->UA_TIPENT := "E"
SUA->UA_LIMCRED := Round (SA1->A1_LC - SA1->A1_SALDUP,2)
SUA->UA_ULTCOM := SA1->A1_ULTCOM
SUA->UA_CONTRAT := "S"
SUA->UA_CONFIRM := "N"
SUA->UA_OBSLOG := Space(TamSX3("UA_OBSLOG")[1])
SUA->UA_OBSSUP := Space(TamSX3("UA_OBSLOG")[1])
SUA->UA_TIPPED := "N"
SUA->UA_NUMMAE := ""
SUA->UA_DTBFIN := CTOD("")
SUA->UA_GRPVEN := SA1->A1_GRPVEN
MsUnlock()
_lPri := .T.
AaDd(_aPedOk,SUA->UA_NUM)
EndIf
Posicione('SB1',1,xFilial('SB1')+LHA->LHA_PRODUT,'B1_DESC')
_cTes := SB1->B1_TS
Posicione('SU0',1,xFilial('SU0')+IIf(!Empty(SA1->A1_GRUPOAT),SA1->A1_GRUPOAT,SU7->U7_POSTO),'U0_NOME')
_nPrecoMin := Posicione('SB0',1,xFilial('SB0')+LHA->LHA_PRODUT,'B0_PRV'+Alltrim(Str(SU0->U0_TABMIN,2)))
_nPrecoMax := Posicione('SB0',1,xFilial('SB0')+LHA->LHA_PRODUT,'B0_PRV'+Alltrim(Str(SU0->U0_TABMAX,2)))
_nPerCom := Posicione('LH4',2,xFilial('LH4')+SA1->A1_COD+SA1->A1_LOJA,'LH4_COMISS')
Posicione('LH7',1,xFilial('LH7')+LHA->LHA_PRODUT,'LH7_PRC')
_aPrecoMin := U_PerAcrePre(_nPrecoMin,SUA->UA_CONDAF,SU0->U0_CALAFIN,SU0->U0_CALAFRE)
_aPrecoMax := U_PerAcrePre(_nPrecoMax,SUA->UA_CONDAF,SU0->U0_CALAFIN,SU0->U0_CALAFRE)
M->UB_PRODUTO := LHA->LHA_PRODUT
M->UB_VRUNIT := LHA->LHA_VALOR
M->UB_PRCTAB := LHA->LHA_VALOR
M->UB_VLRMIN := _aPrecoMin[1]
M->UB_VLRMAX := _aPrecoMax[1]
M->UB_ADFRETE := _aPrecoMin[3]
M->UB_PERCOM := _nPerCom
_nPosProd := IIf(Len(_aItens)>0,Ascan(_aItens,{|x|Alltrim(x[4])=Alltrim(LHA->LHA_PRODUT)}),0)
If _nPosProd = 0
M->UB_QUANT := LHA->LHA_QUANT
M->UB_COMISSA := 0
M->UB_PCOVER := 0
M->UB_VCOVER := 0
M->UB_MKP := 0
U_NTMKG01c(0)
AaDd(_aItens,{xFilial('SUB'),; // 1
LHA->LHA_ITEM,; // 2
SUA->UA_NUM,; // 3
M->UB_PRODUTO,; // 4
SB1->B1_DESC,; // 5
M->UB_QUANT,; // 6
M->UB_VRUNIT,; // 7
LHA->LHA_TOTAL,; // 8
M->UB_VLRMIN,; // 9
SB1->B1_UM,; // 10
dDatabase+2,; // 11
_cTes,; // 12
IIf(SA1->A1_EST= SuperGetMv('MV_ESTADO'),Posicione('SF4',1,xFilial('SF4')+_cTes,'F4_CF'),'6'+SubStr(Posicione('SF4',1,xFilial('SF4')+_cTes,'F4_CF'),2,3)),; //13
'9',; // 14
'01',; // 15
(LHA->LHA_TOTAL*SB1->B1_PICM)/100,; // 16
(LHA->LHA_TOTAL*SB1->B1_IPI)/100,; // 17
LHA->LHA_TOTAL,; // 18
M->UB_VRUNIT,; // 19
M->UB_PERCOM,; // 20
IIf(!Empty(M->UB_PERCOM),LHA->LHA_TOTAL*M->UB_PERCOM,0),; //21
LH7->LH7_PRC,; // 22
M->UB_VLRMAX,; // 23
LH7->LH7_DESEST,; // 24
LH7->LH7_RESU08,; // 25
M->UB_COMISSA,; // 26
M->UB_PCOVER,; // 27
M->UB_VCOVER,; // 28
M->UB_MKP}) // 29
Else
_aItens[_nPosProd,6] += LHA->LHA_QUANT
M->UB_QUANT := _aItens[_nPosProd,6]
M->UB_PERCOM := 0
M->UB_COMISSA := 0
M->UB_PCOVER := 0
M->UB_VCOVER := 0
M->UB_MKP := 0
U_NTMKG01c(0)
_aItens[_nPosProd,8] := (_aItens[_nPosProd,7]*_aItens[_nPosProd,6])
_aItens[_nPosProd,16]:= (_aItens[_nPosProd,8]*SB1->B1_PICM)/100
_aItens[_nPosProd,17]:= (_aItens[_nPosProd,8]*SB1->B1_IPI)/100
_aItens[_nPosProd,18]:= _aItens[_nPosProd,8]
_aItens[_nPosProd,20]:= M->UB_PERCOM
_aItens[_nPosProd,21]:= M->UB_COMISSA
_aItens[_nPosProd,27]:= M->UB_PCOVER
_aItens[_nPosProd,28]:= M->UB_VCOVER
_aItens[_nPosProd,29]:= M->UB_MKP
EndIf
DbSelectArea('LHA')
RecLock('LHA',.F.)
LHA->LHA_NUMORC := SUA->UA_NUM
MsUnLock()
DbSkip()
End
For _nX := 1 To Len(_aItens)
RecLock('SUB',.T.)
If Empty(_cItem)
_cItem := '01'
Else
_cItem := SomaIt(_cItem)
EndIf
SUB->UB_FILIAL := _aItens[_nX,1]
SUB->UB_ITEM := _cItem
SUB->UB_NUM := _aItens[_nX,3]
SUB->UB_PRODUTO:= _aItens[_nX,4]
SUB->UB_DESCRI := _aItens[_nX,5]
SUB->UB_QUANT := _aItens[_nX,6]
SUB->UB_VRUNIT := _aItens[_nX,7]
SUB->UB_VLRITEM:= _aItens[_nX,8]
SUB->UB_VLRMIN := _aItens[_nX,9]
SUB->UB_VLRMAX := _aItens[_nX,23]
SUB->UB_UM := _aItens[_nX,10]
SUB->UB_DTENTRE:= _aItens[_nX,11]
SUB->UB_TES := _aItens[_nX,12]
SUB->UB_CF := _aItens[_nX,13]
SUB->UB_TABELA := _aItens[_nX,14]
SUB->UB_LOCAL := _aItens[_nX,15]
SUB->UB_BASEICM:= _aItens[_nX,18]
SUB->UB_PRCTAB := _aItens[_nX,19]
SUB->UB_PERCOM := _aItens[_nX,20]
SUB->UB_COMISSA:= _aItens[_nX,21]
SUB->UB_PCOVER := _aItens[_nX,27]
SUB->UB_VCOVER := _aItens[_nX,28]
SUB->UB_MKP := _aItens[_nX,29]
SUB->UB_RESU02 := _aItens[_nX,24]
SUB->UB_RESU08 := _aItens[_nX,25]
MsUnlock()
Next
If Len(_aPedOk) > 0
MsgBox(STR0024+SUA->UA_NUM,STR0025,'INFO') //'Orcamento criado com Sucesso! No. '###'Geracao de Orcamentos'
EndIf
If !MsgYesNo(STR0023) //"Confirma a geracao do Novo Orcamento ?"
Return
EndIf
_lPri := .F.
_aItens := {}
_aPedOk := {}
While !Eof() .And. TLHA->LHA_NUMREQ = LHA->LHA_NUMREQ
If !_lPri
DbSelectArea('SUA')
RecLock('SUA',.T.)
SUA->UA_FILIAL := xFilial('SUA')
SUA->UA_NUM := TkNumero('SUA','UA_NUM')
SUA->UA_OPERADO := Posicione('SU7',3,xFilial('SU7')+Alltrim(cUserName),'U7_COD')
SUA->UA_CLIENTE := SA1->A1_COD
SUA->UA_LOJA := SA1->A1_LOJA
SUA->UA_DESCCLI := SA1->A1_NOME
SUA->UA_TMK := '2'
SUA->UA_OPER := '2'
SUA->UA_VEND := SA1->A1_VEND
SUA->UA_EXECCON := SA1->A1_EXECCON
SUA->UA_FATINT := 'S'
SUA->UA_AGLUTIN := SA1->A1_AGLUTIN
SUA->UA_EMISSAO := dDatabase
SUA->UA_CONDPG := IIf(!Empty(SA1->A1_COND),SA1->A1_COND,SuperGetMv('MV_CONDPAD'))
SUA->UA_CONDAF := IIf(!Empty(SA1->A1_COND),SA1->A1_COND,SuperGetMv('MV_CONDPAD'))
SUA->UA_STATUS := 'SUP'
SUA->UA_ENDCOB := SA1->A1_ENDCOB
SUA->UA_BAIRROC := SA1->A1_BAIRROC
SUA->UA_CEPC := SA1->A1_CEPC
SUA->UA_MUNC := SA1->A1_MUNC
SUA->UA_ESTC := SA1->A1_ESTC
SUA->UA_ENDENT := SA1->A1_ENDENT
SUA->UA_BAIRROE := SA1->A1_BAIRROE
SUA->UA_CEPE := SA1->A1_CEPE
SUA->UA_MUNE := SA1->A1_MUNE
SUA->UA_ESTE := SA1->A1_ESTE
SUA->UA_TRANSP := SA1->A1_TRANSP
SUA->UA_TPFRETE := SA1->A1_TPFRET
SUA->UA_PROSPEC := .F.
// Campos Especificos Datasupri
SUA->UA_CLIENT := SA1->A1_COD
SUA->UA_LOJAENT := SA1->A1_LOJA
SUA->UA_ALERTA := SA1->A1_ALERT
SUA->UA_DESCENT := SA1->A1_NOME
SUA->UA_TIPENT := "E"
SUA->UA_LIMCRED := Round (SA1->A1_LC - SA1->A1_SALDUP,2)
SUA->UA_ULTCOM := SA1->A1_ULTCOM
SUA->UA_CONTRAT := "S"
SUA->UA_CONFIRM := "N"
SUA->UA_OBSLOG := Space(TamSX3("UA_OBSLOG")[1])
SUA->UA_OBSSUP := Space(TamSX3("UA_OBSLOG")[1])
SUA->UA_TIPPED := "N"
SUA->UA_NUMMAE := ""
SUA->UA_DTBFIN := CTOD("")
SUA->UA_GRPVEN := SA1->A1_GRPVEN
MsUnlock()
_lPri := .T.
AaDd(_aPedOk,SUA->UA_NUM)
EndIf
Posicione('SB1',1,xFilial('SB1')+LHA->LHA_PRODUT,'B1_DESC')
_cTes := SB1->B1_TS
Posicione('SU0',1,xFilial('SU0')+IIf(!Empty(SA1->A1_GRUPOAT),SA1->A1_GRUPOAT,SU7->U7_POSTO),'U0_NOME')
_nPrecoMin := Posicione('SB0',1,xFilial('SB0')+LHA->LHA_PRODUT,'B0_PRV'+Alltrim(Str(SU0->U0_TABMIN,2)))
_nPrecoMax := Posicione('SB0',1,xFilial('SB0')+LHA->LHA_PRODUT,'B0_PRV'+Alltrim(Str(SU0->U0_TABMAX,2)))
_nPerCom := Posicione('LH4',2,xFilial('LH4')+SA1->A1_COD+SA1->A1_LOJA,'LH4_COMISS')
Posicione('LH7',1,xFilial('LH7')+LHA->LHA_PRODUT,'LH7_PRC')
_aPrecoMin := U_PerAcrePre(_nPrecoMin,SUA->UA_CONDAF,SU0->U0_CALAFIN,SU0->U0_CALAFRE)
_aPrecoMax := U_PerAcrePre(_nPrecoMax,SUA->UA_CONDAF,SU0->U0_CALAFIN,SU0->U0_CALAFRE)
M->UB_PRODUTO := LHA->LHA_PRODUT
M->UB_VRUNIT := LHA->LHA_VALOR
M->UB_PRCTAB := LHA->LHA_VALOR
M->UB_VLRMIN := _aPrecoMin[1]
M->UB_VLRMAX := _aPrecoMax[1]
M->UB_ADFRETE := _aPrecoMin[3]
M->UB_PERCOM := _nPerCom
_nPosProd := IIf(Len(_aItens)>0,Ascan(_aItens,{|x|Alltrim(x[4])=Alltrim(LHA->LHA_PRODUT)}),0)
If _nPosProd = 0
M->UB_QUANT := LHA->LHA_QUANT
M->UB_COMISSA := 0
M->UB_PCOVER := 0
M->UB_VCOVER := 0
M->UB_MKP := 0
U_NTMKG01c(0)
AaDd(_aItens,{xFilial('SUB'),; // 1
LHA->LHA_ITEM,; // 2
SUA->UA_NUM,; // 3
M->UB_PRODUTO,; // 4
SB1->B1_DESC,; // 5
M->UB_QUANT,; // 6
M->UB_VRUNIT,; // 7
LHA->LHA_TOTAL,; // 8
M->UB_VLRMIN,; // 9
SB1->B1_UM,; // 10
dDatabase+2,; // 11
_cTes,; // 12
IIf(SA1->A1_EST= SuperGetMv('MV_ESTADO'),Posicione('SF4',1,xFilial('SF4')+_cTes,'F4_CF'),'6'+SubStr(Posicione('SF4',1,xFilial('SF4')+_cTes,'F4_CF'),2,3)),; //13
'9',; // 14
'01',; // 15
(LHA->LHA_TOTAL*SB1->B1_PICM)/100,; // 16
(LHA->LHA_TOTAL*SB1->B1_IPI)/100,; // 17
LHA->LHA_TOTAL,; // 18
M->UB_VRUNIT,; // 19
M->UB_PERCOM,; // 20
IIf(!Empty(M->UB_PERCOM),LHA->LHA_TOTAL*M->UB_PERCOM,0),; //21
LH7->LH7_PRC,; // 22
M->UB_VLRMAX,; // 23
LH7->LH7_DESEST,; // 24
LH7->LH7_RESU08,; // 25
M->UB_COMISSA,; // 26
M->UB_PCOVER,; // 27
M->UB_VCOVER,; // 28
M->UB_MKP}) // 29
Else
_aItens[_nPosProd,6] += LHA->LHA_QUANT
M->UB_QUANT := _aItens[_nPosProd,6]
M->UB_PERCOM := 0
M->UB_COMISSA := 0
M->UB_PCOVER := 0
M->UB_VCOVER := 0
M->UB_MKP := 0
U_NTMKG01c(0)
_aItens[_nPosProd,8] := (_aItens[_nPosProd,7]*_aItens[_nPosProd,6])
_aItens[_nPosProd,16]:= (_aItens[_nPosProd,8]*SB1->B1_PICM)/100
_aItens[_nPosProd,17]:= (_aItens[_nPosProd,8]*SB1->B1_IPI)/100
_aItens[_nPosProd,18]:= _aItens[_nPosProd,8]
_aItens[_nPosProd,20]:= M->UB_PERCOM
_aItens[_nPosProd,21]:= M->UB_COMISSA
_aItens[_nPosProd,27]:= M->UB_PCOVER
_aItens[_nPosProd,28]:= M->UB_VCOVER
_aItens[_nPosProd,29]:= M->UB_MKP
EndIf
DbSelectArea('LHA')
RecLock('LHA',.F.)
LHA->LHA_NUMORC := SUA->UA_NUM
MsUnLock()
DbSkip()
End
For _nX := 1 To Len(_aItens)
RecLock('SUB',.T.)
If Empty(_cItem)
_cItem := '01'
Else
_cItem := SomaIt(_cItem)
EndIf
SUB->UB_FILIAL := _aItens[_nX,1]
SUB->UB_ITEM := _cItem
SUB->UB_NUM := _aItens[_nX,3]
SUB->UB_PRODUTO:= _aItens[_nX,4]
SUB->UB_DESCRI := _aItens[_nX,5]
SUB->UB_QUANT := _aItens[_nX,6]
SUB->UB_VRUNIT := _aItens[_nX,7]
SUB->UB_VLRITEM:= _aItens[_nX,8]
SUB->UB_VLRMIN := _aItens[_nX,9]
SUB->UB_VLRMAX := _aItens[_nX,23]
SUB->UB_UM := _aItens[_nX,10]
SUB->UB_DTENTRE:= _aItens[_nX,11]
SUB->UB_TES := _aItens[_nX,12]
SUB->UB_CF := _aItens[_nX,13]
SUB->UB_TABELA := _aItens[_nX,14]
SUB->UB_LOCAL := _aItens[_nX,15]
SUB->UB_BASEICM:= _aItens[_nX,18]
SUB->UB_PRCTAB := _aItens[_nX,19]
SUB->UB_PERCOM := _aItens[_nX,20]
SUB->UB_COMISSA:= _aItens[_nX,21]
SUB->UB_PCOVER := _aItens[_nX,27]
SUB->UB_VCOVER := _aItens[_nX,28]
SUB->UB_MKP := _aItens[_nX,29]
SUB->UB_RESU02 := _aItens[_nX,24]
SUB->UB_RESU08 := _aItens[_nX,25]
MsUnlock()
Next
If Len(_aPedOk) > 0
MsgBox(STR0024+SUA->UA_NUM,STR0025,'INFO') //'Orcamento criado com Sucesso! No. '###'Geracao de Orcamentos'
EndIf
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Rotina automatca de Atendimento
Tempo para a criação da página:0.109 segundos