EXECAUTO OFIOM030 - Requisição de Serviços

Produto:

Protheus

Versões:

Todas

Ocorrência:

Rotina Automática - OFIOM030 Requisição de Serviços (Execauto)

Ambiente:

SIGAOFI - Oficina

Descrição:Rotina automática que permite a requisição de serviços (apontamento não está contemplado).
Parâmetros:
NomeTipoDescriçãoConteúdo Default
ExpC1CaractereParâmetro de uso interno da TOTVS.
ExpL1LógicoParâmetro de uso interno da TOTVS.
ExpA1ArrayArray contendo os dados do cabeçalho da Requisição de Serviços.
ExpA2

Array

Array contendo os itens da Requisição de Serviços.
ExpN1NuméricoOpção desejada: 2-Inclusão (opção Requisitar); 3-Alteração (opção Alterar).

Passo a passo:

//Requisição de Serviço - Opções Requisitar (2) e Alterar (3)

#include "Protheus.ch"

User Function TST030REQ()

Local cSQL := ""
Local aParamBox := {}
Local aRetParam := {}
Local aCabVO4 := {}
Local aAuxIteVO4 := {}
Local aIteVO4 := {}
Local lRetExec := .t.
Local nOpcAviso

Private lMSHelpAuto
Private lMsErroAuto

AADD(aParamBox,{1,"OS" ,"00000052" ,"@!" ,"","","",20,.T.}) // 1
AADD(aParamBox,{1,"Tipo de Tempo" ,"CS " ,"@!" ,"","","",20,.T.}) // 2
AADD(aParamBox,{1,"Grupo Servico" ,"01" ,"@!" ,"","","",40,.T.}) // 3
AADD(aParamBox,{1,"Servico" ,"10-020-018 " ,"@!" ,"","","",40,.T.}) // 4
AADD(aParamBox,{1,"Tipo de Servico" ,"SRI" ,"@!" ,"","","",20,.f.}) // 5
AADD(aParamBox,{1,"Tempo Padrao" ,0 ,"@R 999:99" ,"","","",20,.f.}) // 6
AADD(aParamBox,{1,"Secao" ,"MEC" ,"@!" ,"","","",20,.f.}) // 7
AADD(aParamBox,{1,"Valor Fixo" ,0 ,"@E 9999.99" ,"","","",20,.f.}) // 8
AADD(aParamBox,{1,"Valor Venda" ,0 ,"@E 9999.99" ,"","","",20,.f.}) // 9
aRetParam := {}
If !ParamBox(aParamBox,"ExecAuto Req. Servico",@aRetParam,,,,,,,,.f.)
lRetExec := .f.
EndIf

If lRetExec
DbSelectArea("VO1")
VO1->(dbSetOrder(1))
VO1->(dbSeek( xFilial("VO1") + aRetParam[1] ))

cSQL := "SELECT COUNT(*) "
cSQL += "FROM " + RetSQLName("VO4") + " VO4 "
cSQL += "WHERE VO4.VO4_FILIAL = '" + xFilial("VO4") + "' "
cSQL += "AND VO4.VO4_NUMOSV = '" + aRetParam[1] + "' "
cSQL += "AND VO4.VO4_TIPTEM = '" + aRetParam[2] + "' "
cSQL += "AND VO4.VO4_CODSER = '" + aRetParam[4] + "' "
cSQL += "AND VO4.D_E_L_E_T_ = ' ' "

nOpcAviso := Aviso("Escolha a opção", "Selecione o que deseja fazer:", { "Requisição", "Alteração", "Fechar" }, 1)

If nOpcAviso == 1 // Requisicao
If FM_SQL(cSQL) > 0 // O servico esta requisitado, vamos excluir a linha e incluir uma nova
AADD(aAuxIteVO4, { "LINPOS" , "VO4_TIPTEM+VO4_CODSER",aRetParam[2] , aRetParam[4] })
// Deleta a linha na aCols
AADD(aAuxIteVO4, { "AUTDELETA" , "S" , NIL } )
AADD( aIteVO4 , aClone( aAuxIteVO4 ) )
EndIf
aAuxIteVO4 := {}
// Inclui a linha no aCols
AADD(aAuxIteVO4, { "VO4_NUMOSV" , VO1->VO1_NUMOSV , nil } )
AADD(aAuxIteVO4, { "VO4_TIPTEM" , aRetParam[2] , nil } )
AADD(aAuxIteVO4, { "VO4_GRUSER" , aRetParam[3] , nil } )
AADD(aAuxIteVO4, { "VO4_CODSER" , aRetParam[4] , nil } )
AADD(aAuxIteVO4, { "VO4_TIPSER" , aRetParam[5] , nil } )
If aRetParam[6] <> 0
AADD(aAuxIteVO4, { "VO4_TEMPAD" , aRetParam[6] , nil } )
EndIf
AADD(aAuxIteVO4, { "VO4_CODSEC" , aRetParam[7] , nil } )
If aRetParam[8] <> 0
AADD(aAuxIteVO4, { "VO4_VALSER" , aRetParam[8] , nil } )
EndIf
If aRetParam[9] <> 0 .AND. aRetParam[5] == 'TER'
AADD(aAuxIteVO4, { "VO4_VALCUS" , aRetParam[9] , nil } )
AADD(aAuxIteVO4, { "VO4_VALVEN" , aRetParam[9] , nil } )
EndIf
AADD( aIteVO4 , aClone( aAuxIteVO4 ) )

lMSHelpAuto := .t.
lMsErroAuto := .f.

MSExecAuto({|x,y,z| OFIOM030(,,x,y,z)},{},aIteVO4,2)

If lMsErroAuto
DisarmTransaction()
RollbackSx8()
MsUnlockAll()
MostraErro()
lRetExec := .f.
Endif

ElseIf nOpcAviso == 2 // Alteracao
If FM_SQL(cSQL) > 0 // O servico foi localizado, vamos altera-lo

aAdd(aCabVO4 ,{"NUMOSV" , VO1->VO1_NUMOSV , Nil })
aAdd(aCabVO4 ,{"TIPTEM" , aRetParam[2] , Nil }) // Tipo de Tempo Novo
//AADD(aCabVO4 , { "FATPAR" , , NIL } )
//AADD(aCabVO4 , { "LOJA " , , NIL } )
//AADD(aCabVO4 , { "DEPINT" , , NIL } )
//AADD(aCabVO4 , { "DEPGAR" , , NIL } )
AADD(aCabVO4 , { "TIPSER" , "SRT" , NIL } ) // Tipo de Servico Novo

AADD(aAuxIteVO4, { "VO4_NUMOSV" , VO1->VO1_NUMOSV , nil } )
AADD(aAuxIteVO4, { "VO4_TIPTEM" , aRetParam[2] , nil } )
AADD(aAuxIteVO4, { "VO4_CODSER" , aRetParam[4] , nil } )
AADD( aIteVO4 , aClone( aAuxIteVO4 ) )

MSExecAuto({|x,y,z| OFIOM030(,,x,y,z)},aCabVO4,aIteVO4,3)

If lMsErroAuto
DisarmTransaction()
RollbackSx8()
MsUnlockAll()
MostraErro()
lRetExec := .f.
Endif

Else // O servico nao foi localizado na OS, impossivel alterar
ConOut("O servico nao foi localizado na OS, impossivel alterar")
lRetExec := .f.
EndIf
EndIf
EndIf

Return lRetExec

Observações:

Não há.