Função: TMKA271 - Rotina automática dos atendimentos do Call Center
Abrangências: | Microsiga Protheus 12 |
Versões: | Todas |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
Compatível às Bases de Dados: | Todos |
Descrição:
Rotina automática para geração de atendimentos no módulo de Call Center
Programa Fonte:
TMKA271.PRW
Sintaxe:
TMKA271 - Rotina automática atendimentos ( [ ] )
Retorno: Nil (Nulo)
Observações
cRotina : Indica as rotinas de atendimento. 1-Telemarketing 2- Televendas 3-Telecobrança
Exemplos
#INCLUDE 'Protheus.ch' #INCLUDE "TBICONN.CH" User Function MyTmkA271(cRotina) Local aCabec := {} Local aItens := {} Local aLinha := {} Local nX := 0 Local nY := 0 Local lOk := .T. Local cEndc := "" Local cEnde := "" Local cBairroc := "" Local cBairroe := "" Local cMunc := "" Local cMune := "" Local cCepc := "" Local cCepe := "" Local cEstc := "" Local cEste := "" Local cCod := "" Local cLoja := "" Local cAtend := "" Local nDesconto := 0 Local nFrete := 0 Local nDespesa := 0 Local lAlterar := .T. DEFAULT cRotina := "3" //Indica as rotinas de atendimento. 1-Telemarketing 2- Televendas 3-Telecobrança PRIVATE lMsErroAuto := .F. //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //| Abertura do ambiente | //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ConOut(Repl("-",80)) ConOut(PadC("Teste de Inclusao de Atendimento" ,80)) PREPARE ENVIRONMENT EMPRESA "01" FILIAL "00" USER "USUARIO" PASSWORD "SENHA" MODULO "TMK" TABLES "SUA","SUB","SUC","SUD","SB1","SA1","SUS","SE4","AC8","SA4","SU7" //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //| Verificacao do ambiente para teste para Televendas | //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ If cRotina == "2" DbSelectArea("SB1") DbSetOrder(1) If !DbSeek(xFilial("SB1")+"PA001") lOk := .F. ConOut("Cadastrar produto: PA001") Endif DbSelectArea("SF4") DbSetOrder(1) If !DbSeek(xFilial("SF4")+"501") lOk := .F. ConOut("Cadastrar TES: 501") Endif DbSelectArea("SE4") DbSetOrder(1) If !DbSeek(xFilial("SE4")+"001") lOk := .F. ConOut("Cadastrar condicao de pagamento: 001") Endif If !SB1->(DbSeek(xFilial("SB1")+"PA002")) lOk := .F. ConOut("Cadastrar produto: PA002") Endif Endif DbSelectArea("SA1") DbSetOrder(1) If !SA1->(DbSeek(xFilial("SA1")+"00000101")) lOk := .F. ConOut("Cadastrar cliente: 00000101") Else cCod :=SA1->A1_COD cLoja :=SA1->A1_LOJA cEndc :=SA1->A1_ENDCOB cBairroc :=SA1->A1_BAIRROC cMunc :=SA1->A1_MUNC cCepc :=SA1->A1_CEPC cEstc :=SA1->A1_ESTC cEnde :=SA1->A1_ENDENT cBairroe :=SA1->A1_BAIRROE cMune :=SA1->A1_MUNE cEste :=SA1->A1_ESTE nDesconto :=10 nFrete :=20 nDespesa :=30 Endif Do Case Case cRotina == "2" //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Incluir atendimentos do televendas ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ConOut("Inicio: " +Time()) For nY := 1 To 1 aCabec := {} aItens := {} AADD(aCabec,{"UA_CLIENTE" ,cCod ,Nil}) AADD(aCabec,{"UA_LOJA" ,cLoja ,Nil}) AADD(aCabec,{"UA_OPERADO" ,"000001" ,Nil}) //Codigo do Operador AADD(aCabec,{"UA_OPER" ,"2" ,Nil}) //1-Faturamento 2-Orcamento 3-Atendimento AADD(aCabec,{"UA_TMK" ,"1" ,Nil}) //1-Ativo 2-Receptivo AADD(aCabec,{"UA_CONDPG" ,"001" ,Nil}) //Condicao de Pagamento AADD(aCabec,{"UA_TRANSP" ,"000001" ,Nil}) //Transportadora AADD(aCabec,{"UA_ENDCOB" ,cEndc ,Nil}) AADD(aCabec,{"UA_BAIRROC" ,cBairroc ,Nil}) AADD(aCabec,{"UA_MUNC" ,cMunc ,Nil}) AADD(aCabec,{"UA_CEPC" ,cCepc ,Nil}) AADD(aCabec,{"UA_ESTC" ,cEstc ,Nil}) AADD(aCabec,{"UA_ENDENT" ,cEnde ,Nil}) AADD(aCabec,{"UA_BAIRROE" ,cBairroe ,Nil}) AADD(aCabec,{"UA_MUNE" ,cMune ,Nil}) AADD(aCabec,{"UA_CEPE" ,cCepe ,Nil}) AADD(aCabec,{"UA_ESTE" ,cEste ,Nil}) AADD(aCabec,{"UA_PROSPEC" ,.F. ,Nil}) AADD(aCabec,{"UA_DESCONT" ,nDesconto ,Nil}) AADD(aCabec,{"UA_FRETE" ,nFrete ,Nil}) AADD(aCabec,{"UA_DESPESA" ,nDespesa ,Nil}) For nX := 1 To 5 aLinha := {} aadd(aLinha,{"UB_ITEM" ,StrZero(nX,2) ,Nil}) aadd(aLinha,{"UB_PRODUTO" ,SB1->B1_COD ,Nil}) aadd(aLinha,{"UB_QUANT" ,2 ,Nil}) aadd(aLinha,{"UB_VRUNIT" ,50 ,Nil}) aadd(aLinha,{"UB_TES" ,"501" ,Nil}) aadd(aItens,aLinha) Next nX Next nY Case cRotina == "3" //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Incluir atendimentos do telecobranca ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ConOut("Inicio: " + Time()) For nY := 1 To 1 aCabec := {} aItens := {} AADD(aCabec,{"ACF_CLIENT" ,cCod ,Nil}) //Codigo do cliente AADD(aCabec,{"ACF_LOJA" ,cLoja ,Nil}) //Codigo da loja AADD(aCabec,{"ACF_OPERAD" ,"000002" ,Nil}) //Codigo do Operador AADD(aCabec,{"ACF_OPERA" ,"2" ,Nil}) //Ligacao - 1-Receptivo 2-Ativo AADD(aCabec,{"ACF_CODCON" ,"000001" ,Nil}) //1-Ativo 2-Receptivo AADD(aCabec,{"ACF_STATUS" ,"2" ,Nil}) //Status do Atendimento 1-Atendimento 2-Cobranca 3-Encerrado AADD(aCabec,{"ACF_MOTIVO" ,"000001" ,Nil}) //Ocorrencia AADD(aCabec,{"ACF_PENDEN" ,dDatabase ,Nil}) //Data de Retorno AADD(aCabec,{"ACF_HRPEND" ,"20:00" ,Nil}) //Hora de Retorno AADD(aCabec,{"ACF_OBS " ,"Testes" ,Nil}) //Observacao DbSelectArea("SK1") DbSetOrder(4) If DbSeek(xFilial("SK1")+ cCod + cLoja) While !SK1->(Eof()) .AND. xFilial("SK1") == SK1->K1_FILIAL .AND. ; ( cCod + cLoja ) == (SK1->K1_CLIENTE + K1_LOJA) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Inserir o array de Itens obrigatoriamente na sequencia abaixo. ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ aLinha := {} aadd(aLinha,{"ACG_PREFIX" ,SK1->K1_PREFIXO ,Nil}) aadd(aLinha,{"ACG_PARCEL" ,SK1->K1_PARCELA ,Nil}) aadd(aLinha,{"ACG_TIPO " ,SK1->K1_TIPO ,Nil}) aadd(aLinha,{"ACG_FILORI" ,SK1->K1_FILORIG ,Nil}) aadd(aLinha,{"ACG_TITULO" ,SK1->K1_NUM ,Nil}) aadd(aLinha,{"ACG_STATUS" ,"2" ,Nil})//Negociado aadd(aItens,aLinha) SK1->(Dbskip()) End Endif Next nY EndCase //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //| Executa a chamada da rotina de atendimento CALL CENTER | //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ TMKA271(aCabec,aItens,3,cRotina) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Exibe se foi feita a inclusao ou se retornou erro³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ If !lMsErroAuto ConOut("Atendimento incluído com sucesso! ") Else ConOut("Erro na inclusão!") Mostraerro() DisarmTransaction() Break Endif ConOut("Fim : "+Time()) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Alteracao de atendimentos ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ If lAlterar Do Case //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Alteracao de atendimentos televendas ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Case cRotina == "2" DbSelectArea("SUA") DbSetOrder(1) DbSeek(xFilial("SUA")+"000001") DbSelectArea("SUB") DbSetOrder(1) DbSeek(xFilial("SUB")+"000001") DbSelectArea("SB1") DbSetOrder(1) DbSeek(xFilial("SB1")+SUB->UB_PRODUTO) aCabec := {} aItens := {} AADD(aCabec,{"UA_NUM" ,SUA->UA_NUM ,Nil}) AADD(aCabec,{"UA_CLIENTE" ,SUA->UA_CLIENTE,Nil}) AADD(aCabec,{"UA_LOJA" ,SUA->UA_LOJA ,Nil}) AADD(aCabec,{"UA_OPERADO" ,"000001" ,Nil}) //Codigo do Operador AADD(aCabec,{"UA_OPER" ,"2" ,Nil}) //1-Faturamento 2-Orcamento 3-Atendimento AADD(aCabec,{"UA_TMK" ,"1" ,Nil}) //1-Ativo 2-Receptivo AADD(aCabec,{"UA_CONDPG" ,"001" ,Nil}) //Condicao de Pagamento AADD(aCabec,{"UA_TRANSP" ,"000001" ,Nil}) //Transportadora For nX := 1 To 1 aLinha := {} aadd(aLinha,{"LINPOS","UB_ITEM" ,"01"}) aadd(aLinha,{"AUTDELETA","N" ,Nil}) aadd(aLinha,{"UB_PRODUTO" ,SUB->UB_PRODUTO,Nil}) aadd(aLinha,{"UB_QUANT" ,3 ,Nil}) aadd(aLinha,{"UB_VRUNIT" ,50 ,Nil}) aadd(aLinha,{"UB_TES" ,"501" ,Nil}) aadd(aItens,aLinha) Next nX //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Alteracao de atendimentos telecobranca³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Case cRotina == "3" cAtend := "000023" DbSelectArea("ACF") DbSetOrder(1) DbSeek(xFilial("ACF")+cAtend) aCabec := {} aItens := {} AADD(aCabec,{"ACF_CODIGO" ,cAtend ,Nil}) //Codigo do Atendimento para alteracao AADD(aCabec,{"ACF_CLIENT" ,cCod ,Nil}) //Codigo do cliente AADD(aCabec,{"ACF_LOJA" ,cLoja ,Nil}) //Codigo da loja AADD(aCabec,{"ACF_OPERAD" ,"000002" ,Nil}) //Codigo do Operador AADD(aCabec,{"ACF_OPERA" ,"1" ,Nil}) //Ligacao - 1-Ativo 2-Receptivo AADD(aCabec,{"ACF_CODCON" ,"000001" ,Nil}) //1-Ativo 2-Receptivo AADD(aCabec,{"ACF_STATUS" ,"3" ,Nil}) //Status do Atendimento 1-Atendimento 2-Cobranca 3-Encerrado AADD(aCabec,{"ACF_MOTIVO" ,"000001" ,Nil}) //Ocorrencia AADD(aCabec,{"ACF_PENDEN" ,dDatabase ,Nil}) //Data de Retorno AADD(aCabec,{"ACF_HRPEND" ,"20:00" ,Nil}) //Hora de Retorno AADD(aCabec,{"ACF_CODENC" ,"000001" ,Nil}) //Codigo do Encerramento AADD(aCabec,{"ACF_OBSMOT" ,"Observação do Encerramento" ,Nil}) DbSelectArea("ACG") DbSetOrder(1) DbSeek(xFilial("ACG")+cAtend) While !ACG->(Eof()) .AND. xFilial("ACG") == ACG->ACG_FILIAL .AND. ; ACG->ACG_CODIGO == cAtend aLinha := {} aadd(aLinha,{"AUTDELETA","N" ,Nil}) aadd(aLinha,{"ACG_PREFIX" ,ACG->ACG_PREFIX ,Nil}) //Prefixo do titulo aadd(aLinha,{"ACG_PARCEL" ,ACG->ACG_PARCEL ,Nil}) //Parcela do titulo aadd(aLinha,{"ACG_TIPO " ,ACG->ACG_TIPO ,Nil}) //Tipo do Titulo aadd(aLinha,{"ACG_FILORI" ,ACG->ACG_FILORI ,Nil}) //Filial de Origem aadd(aLinha,{"ACG_TITULO" ,ACG->ACG_TITULO ,Nil}) //Numero do Titulo aadd(aLinha,{"ACG_STATUS" ,"1" ,Nil}) //Status do Titulo. 1-Pago 2-Negociado aadd(aItens,aLinha) ACG->(Dbskip()) End EndCase //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Exibe se foi feita a alteracao ou se retornou erro³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ConOut(PadC("Teste de alteracao" ,80)) ConOut("Inicio: " +Time()) TMKA271(aCabec,aItens,4,cRotina) If !lMsErroAuto ConOut("Alterado com sucesso! "+cAtend) Else ConOut("Erro na alteracao!") Mostraerro() DisarmTransaction() Break Endif ConOut("Fim : "+Time()) ConOut(Repl("-",80)) Endif RESET ENVIRONMENT Return(.T.)
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
Array of Record |
Função: TMKA271 - Rotina automática dos atendimentos do Call Center
Abrangências: | Microsiga Protheus 12 |
Versões: | Todas |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
Compatível às Bases de Dados: | Todos |
Rotina automática para geração de atendimentos no módulo de Call Center
Programa Fonte:
TMKA271.PRW
Sintaxe:
TMKA271 - Rotina automática atendimentos ( [ ] )
Retorno: Nil (Nulo)
Observações
cRotina : Indica as rotinas de atendimento. 1-Telemarketing 2- Televendas 3-Telecobrança
Exemplos
#INCLUDE 'Protheus.ch' #INCLUDE "TBICONN.CH" User Function MyTmkA271(cRotina) Local aCabec := {} Local aItens := {} Local aLinha := {} Local nX := 0 Local nY := 0 Local lOk := .T. Local cEndc := "" Local cEnde := "" Local cBairroc := "" Local cBairroe := "" Local cMunc := "" Local cMune := "" Local cCepc := "" Local cCepe := "" Local cEstc := "" Local cEste := "" Local cCod := "" Local cLoja := "" Local cAtend := "" Local nDesconto := 0 Local nFrete := 0 Local nDespesa := 0 Local lAlterar := .T. DEFAULT cRotina := "3" //Indica as rotinas de atendimento. 1-Telemarketing 2- Televendas 3-Telecobrança PRIVATE lMsErroAuto := .F. //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //| Abertura do ambiente | //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ConOut(Repl("-",80)) ConOut(PadC("Teste de Inclusao de Atendimento" ,80)) PREPARE ENVIRONMENT EMPRESA "01" FILIAL "00" USER "USUARIO" PASSWORD "SENHA" MODULO "TMK" TABLES "SUA","SUB","SUC","SUD","SB1","SA1","SUS","SE4","AC8","SA4","SU7" //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //| Verificacao do ambiente para teste para Televendas | //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ If cRotina == "2" DbSelectArea("SB1") DbSetOrder(1) If !DbSeek(xFilial("SB1")+"PA001") lOk := .F. ConOut("Cadastrar produto: PA001") Endif DbSelectArea("SF4") DbSetOrder(1) If !DbSeek(xFilial("SF4")+"501") lOk := .F. ConOut("Cadastrar TES: 501") Endif DbSelectArea("SE4") DbSetOrder(1) If !DbSeek(xFilial("SE4")+"001") lOk := .F. ConOut("Cadastrar condicao de pagamento: 001") Endif If !SB1->(DbSeek(xFilial("SB1")+"PA002")) lOk := .F. ConOut("Cadastrar produto: PA002") Endif Endif DbSelectArea("SA1") DbSetOrder(1) If !SA1->(DbSeek(xFilial("SA1")+"00000101")) lOk := .F. ConOut("Cadastrar cliente: 00000101") Else cCod :=SA1->A1_COD cLoja :=SA1->A1_LOJA cEndc :=SA1->A1_ENDCOB cBairroc :=SA1->A1_BAIRROC cMunc :=SA1->A1_MUNC cCepc :=SA1->A1_CEPC cEstc :=SA1->A1_ESTC cEnde :=SA1->A1_ENDENT cBairroe :=SA1->A1_BAIRROE cMune :=SA1->A1_MUNE cEste :=SA1->A1_ESTE nDesconto :=10 nFrete :=20 nDespesa :=30 Endif Do Case Case cRotina == "2" //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Incluir atendimentos do televendas ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ConOut("Inicio: " +Time()) For nY := 1 To 1 aCabec := {} aItens := {} AADD(aCabec,{"UA_CLIENTE" ,cCod ,Nil}) AADD(aCabec,{"UA_LOJA" ,cLoja ,Nil}) AADD(aCabec,{"UA_OPERADO" ,"000001" ,Nil}) //Codigo do Operador AADD(aCabec,{"UA_OPER" ,"2" ,Nil}) //1-Faturamento 2-Orcamento 3-Atendimento AADD(aCabec,{"UA_TMK" ,"1" ,Nil}) //1-Ativo 2-Receptivo AADD(aCabec,{"UA_CONDPG" ,"001" ,Nil}) //Condicao de Pagamento AADD(aCabec,{"UA_TRANSP" ,"000001" ,Nil}) //Transportadora AADD(aCabec,{"UA_ENDCOB" ,cEndc ,Nil}) AADD(aCabec,{"UA_BAIRROC" ,cBairroc ,Nil}) AADD(aCabec,{"UA_MUNC" ,cMunc ,Nil}) AADD(aCabec,{"UA_CEPC" ,cCepc ,Nil}) AADD(aCabec,{"UA_ESTC" ,cEstc ,Nil}) AADD(aCabec,{"UA_ENDENT" ,cEnde ,Nil}) AADD(aCabec,{"UA_BAIRROE" ,cBairroe ,Nil}) AADD(aCabec,{"UA_MUNE" ,cMune ,Nil}) AADD(aCabec,{"UA_CEPE" ,cCepe ,Nil}) AADD(aCabec,{"UA_ESTE" ,cEste ,Nil}) AADD(aCabec,{"UA_PROSPEC" ,.F. ,Nil}) AADD(aCabec,{"UA_DESCONT" ,nDesconto ,Nil}) AADD(aCabec,{"UA_FRETE" ,nFrete ,Nil}) AADD(aCabec,{"UA_DESPESA" ,nDespesa ,Nil}) For nX := 1 To 5 aLinha := {} aadd(aLinha,{"UB_ITEM" ,StrZero(nX,2) ,Nil}) aadd(aLinha,{"UB_PRODUTO" ,SB1->B1_COD ,Nil}) aadd(aLinha,{"UB_QUANT" ,2 ,Nil}) aadd(aLinha,{"UB_VRUNIT" ,50 ,Nil}) aadd(aLinha,{"UB_TES" ,"501" ,Nil}) aadd(aItens,aLinha) Next nX Next nY Case cRotina == "3" //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Incluir atendimentos do telecobranca ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ConOut("Inicio: " + Time()) For nY := 1 To 1 aCabec := {} aItens := {} AADD(aCabec,{"ACF_CLIENT" ,cCod ,Nil}) //Codigo do cliente AADD(aCabec,{"ACF_LOJA" ,cLoja ,Nil}) //Codigo da loja AADD(aCabec,{"ACF_OPERAD" ,"000002" ,Nil}) //Codigo do Operador AADD(aCabec,{"ACF_OPERA" ,"2" ,Nil}) //Ligacao - 1-Receptivo 2-Ativo AADD(aCabec,{"ACF_CODCON" ,"000001" ,Nil}) //1-Ativo 2-Receptivo AADD(aCabec,{"ACF_STATUS" ,"2" ,Nil}) //Status do Atendimento 1-Atendimento 2-Cobranca 3-Encerrado AADD(aCabec,{"ACF_MOTIVO" ,"000001" ,Nil}) //Ocorrencia AADD(aCabec,{"ACF_PENDEN" ,dDatabase ,Nil}) //Data de Retorno AADD(aCabec,{"ACF_HRPEND" ,"20:00" ,Nil}) //Hora de Retorno AADD(aCabec,{"ACF_OBS " ,"Testes" ,Nil}) //Observacao DbSelectArea("SK1") DbSetOrder(4) If DbSeek(xFilial("SK1")+ cCod + cLoja) While !SK1->(Eof()) .AND. xFilial("SK1") == SK1->K1_FILIAL .AND. ; ( cCod + cLoja ) == (SK1->K1_CLIENTE + K1_LOJA) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Inserir o array de Itens obrigatoriamente na sequencia abaixo. ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ aLinha := {} aadd(aLinha,{"ACG_PREFIX" ,SK1->K1_PREFIXO ,Nil}) aadd(aLinha,{"ACG_PARCEL" ,SK1->K1_PARCELA ,Nil}) aadd(aLinha,{"ACG_TIPO " ,SK1->K1_TIPO ,Nil}) aadd(aLinha,{"ACG_FILORI" ,SK1->K1_FILORIG ,Nil}) aadd(aLinha,{"ACG_TITULO" ,SK1->K1_NUM ,Nil}) aadd(aLinha,{"ACG_STATUS" ,"2" ,Nil})//Negociado aadd(aItens,aLinha) SK1->(Dbskip()) End Endif Next nY EndCase //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //| Executa a chamada da rotina de atendimento CALL CENTER | //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ TMKA271(aCabec,aItens,3,cRotina) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Exibe se foi feita a inclusao ou se retornou erro³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ If !lMsErroAuto ConOut("Atendimento incluído com sucesso! ") Else ConOut("Erro na inclusão!") Mostraerro() DisarmTransaction() Break Endif ConOut("Fim : "+Time()) //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Alteracao de atendimentos ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ If lAlterar Do Case //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Alteracao de atendimentos televendas ³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Case cRotina == "2" DbSelectArea("SUA") DbSetOrder(1) DbSeek(xFilial("SUA")+"000001") DbSelectArea("SUB") DbSetOrder(1) DbSeek(xFilial("SUB")+"000001") DbSelectArea("SB1") DbSetOrder(1) DbSeek(xFilial("SB1")+SUB->UB_PRODUTO) aCabec := {} aItens := {} AADD(aCabec,{"UA_NUM" ,SUA->UA_NUM ,Nil}) AADD(aCabec,{"UA_CLIENTE" ,SUA->UA_CLIENTE,Nil}) AADD(aCabec,{"UA_LOJA" ,SUA->UA_LOJA ,Nil}) AADD(aCabec,{"UA_OPERADO" ,"000001" ,Nil}) //Codigo do Operador AADD(aCabec,{"UA_OPER" ,"2" ,Nil}) //1-Faturamento 2-Orcamento 3-Atendimento AADD(aCabec,{"UA_TMK" ,"1" ,Nil}) //1-Ativo 2-Receptivo AADD(aCabec,{"UA_CONDPG" ,"001" ,Nil}) //Condicao de Pagamento AADD(aCabec,{"UA_TRANSP" ,"000001" ,Nil}) //Transportadora For nX := 1 To 1 aLinha := {} aadd(aLinha,{"LINPOS","UB_ITEM" ,"01"}) aadd(aLinha,{"AUTDELETA","N" ,Nil}) aadd(aLinha,{"UB_PRODUTO" ,SUB->UB_PRODUTO,Nil}) aadd(aLinha,{"UB_QUANT" ,3 ,Nil}) aadd(aLinha,{"UB_VRUNIT" ,50 ,Nil}) aadd(aLinha,{"UB_TES" ,"501" ,Nil}) aadd(aItens,aLinha) Next nX //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Alteracao de atendimentos telecobranca³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Case cRotina == "3" cAtend := "000023" DbSelectArea("ACF") DbSetOrder(1) DbSeek(xFilial("ACF")+cAtend) aCabec := {} aItens := {} AADD(aCabec,{"ACF_CODIGO" ,cAtend ,Nil}) //Codigo do Atendimento para alteracao AADD(aCabec,{"ACF_CLIENT" ,cCod ,Nil}) //Codigo do cliente AADD(aCabec,{"ACF_LOJA" ,cLoja ,Nil}) //Codigo da loja AADD(aCabec,{"ACF_OPERAD" ,"000002" ,Nil}) //Codigo do Operador AADD(aCabec,{"ACF_OPERA" ,"1" ,Nil}) //Ligacao - 1-Ativo 2-Receptivo AADD(aCabec,{"ACF_CODCON" ,"000001" ,Nil}) //1-Ativo 2-Receptivo AADD(aCabec,{"ACF_STATUS" ,"3" ,Nil}) //Status do Atendimento 1-Atendimento 2-Cobranca 3-Encerrado AADD(aCabec,{"ACF_MOTIVO" ,"000001" ,Nil}) //Ocorrencia AADD(aCabec,{"ACF_PENDEN" ,dDatabase ,Nil}) //Data de Retorno AADD(aCabec,{"ACF_HRPEND" ,"20:00" ,Nil}) //Hora de Retorno AADD(aCabec,{"ACF_CODENC" ,"000001" ,Nil}) //Codigo do Encerramento AADD(aCabec,{"ACF_OBSMOT" ,"Observação do Encerramento" ,Nil}) DbSelectArea("ACG") DbSetOrder(1) DbSeek(xFilial("ACG")+cAtend) While !ACG->(Eof()) .AND. xFilial("ACG") == ACG->ACG_FILIAL .AND. ; ACG->ACG_CODIGO == cAtend aLinha := {} aadd(aLinha,{"AUTDELETA","N" ,Nil}) aadd(aLinha,{"ACG_PREFIX" ,ACG->ACG_PREFIX ,Nil}) //Prefixo do titulo aadd(aLinha,{"ACG_PARCEL" ,ACG->ACG_PARCEL ,Nil}) //Parcela do titulo aadd(aLinha,{"ACG_TIPO " ,ACG->ACG_TIPO ,Nil}) //Tipo do Titulo aadd(aLinha,{"ACG_FILORI" ,ACG->ACG_FILORI ,Nil}) //Filial de Origem aadd(aLinha,{"ACG_TITULO" ,ACG->ACG_TITULO ,Nil}) //Numero do Titulo aadd(aLinha,{"ACG_STATUS" ,"1" ,Nil}) //Status do Titulo. 1-Pago 2-Negociado aadd(aItens,aLinha) ACG->(Dbskip()) End EndCase //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ //³Exibe se foi feita a alteracao ou se retornou erro³ //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ConOut(PadC("Teste de alteracao" ,80)) ConOut("Inicio: " +Time()) TMKA271(aCabec,aItens,4,cRotina) If !lMsErroAuto ConOut("Alterado com sucesso! "+cAtend) Else ConOut("Erro na alteracao!") Mostraerro() DisarmTransaction() Break Endif ConOut("Fim : "+Time()) ConOut(Repl("-",80)) Endif RESET ENVIRONMENT Return(.T.)
Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
Array of Record |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas