Definir Numero nStatusProcesso; Definir alfa aMensagemProcesso; Definir Numero nStatusRegistro; Definir alfa aMensagemRegistro; Definir alfa xCursorPrin; Definir Alfa aRespostaSID; Definir Alfa aGeraSolicitacaoCompra; Definir Alfa aMsgErroSql; Definir Alfa aIntegraEPIcomHCM; Definir Alfa bAchouMovimentoEstoque; Definir Data vdDatNul; Definir Alfa xCursorEqp; Definir Alfa xCursorOpe; Definir Alfa aSql_R034Fun_NomFun; Definir Cursor Cur_E906Ope; Definir Numero nParam_CodEmp; Definir Numero nParam_CodFil; Definir Alfa aParam_CodEmp; Definir Alfa aParam_CodFil; Definir Numero nQtdReqRecebidos; Definir Numero nReqRecebida_Numeme; Definir Numero nReqRecebida_Seqeme; Definir Data dReqRecebida_Datmov; Definir Numero nReqRecebida_QtdAtd; Definir Alfa aReqRecebida_CodDep; Definir Alfa aReqRecebida_CodTns; Definir Numero nReqRecebida_NroCra; Definir Alfa aReqRecebida_ObsMov; Definir Alfa aReqRecebida_CodEqp; Definir Alfa aReqRecebida_Numeme; Definir Alfa aReqRecebida_Seqeme; Definir Alfa aReqRecebida_Datmov; Definir Alfa aReqRecebida_QtdAtd; Definir Numero nSql_E210mvp_Codemp; Definir Alfa aSql_E210mvp_Codpro; Definir Alfa aSql_E210mvp_Codder; Definir Alfa aSql_E210mvp_Coddep; Definir Data dSql_E210mvp_Datmov; Definir Numero nSql_E210mvp_Seqmov; Definir Numero nSql_E210mvp_Numeme; Definir Numero nSql_E210mvp_Seqeme; Definir Numero nSql_E207eme_Codemp; Definir Numero nSql_E207eme_Numeme; Definir Numero nSql_E207eme_Seqeme; Definir Numero nSql_E207eme_Fileme; Definir Alfa aSql_E207eme_Codtns; Definir Alfa aSql_E207eme_Codpro; Definir Alfa aSql_E207eme_Codder; Definir Alfa aSql_E207eme_Codser; Definir Alfa aSql_E207eme_Coddep; Definir Alfa aSql_E210est_Coddep; Definir Alfa aSql_E207eme_Ccures; Definir Numero nSql_E210est_Qtdest; Definir Alfa aSql_E075pro_Codfam; Definir Alfa aSql_E075pro_Codagc; Definir Numero nSql_R096epi_Codepi; Definir Alfa aSql_R096epi_Desepi; Definir Numero nSql_R096die_Numemp; Definir Numero nSql_R096die_Tipcol; Definir Numero nSql_R096die_Numcad; Definir Numero nSql_R096die_Codepi; Definir Data dSql_R096die_Datent; Definir Alfa aSql_E103eqp_Codeqp; Definir Funcao IniciaProcessamento(); Definir Funcao MontaResposta(); Definir Funcao PosicionaEmpresaFilial(); Definir Funcao IniciaLeituraRequisicoesReq(); Definir Funcao AtenderReqViaSid(); Definir Funcao AddRequisicaoResult(); Definir Funcao CarregaDadosRequisicao(); Definir Funcao CarregaMovimentoGerado(); Definir Funcao AtualizaMovimentoGerado(); Definir Funcao IniciaGeracaoSolCompra(); Definir Funcao GerarSolicitacaoCompra(); Definir Funcao LigaSolicitacaoComReq(); Definir Funcao IniciaValidacaoEntregaEPI(); Definir Funcao ValidaOperador(); Definir Funcao ValidaFuncionarioHCM(); Definir Funcao ValidaCadastroEPIHCM(); Definir Funcao ValidaEPIJaEntregueFunc(); Definir Funcao IntegraBaixaEPIcomHCM(); Definir Funcao CheckEquipamento(); Definir Funcao CheckOperador(); Definir interno.com.senior.g5.co.ger.sid.executar WS_AcaoSID; Definir interno.Com.senior.g5.co.mcm.est.geracaosolicitacaocompra.GerarSolicitacaoCompra WsGerarSol; IniciaProcessamento(); @------------------------------------------------------------------------------@ @----Função para iniciar a distribuição do processamento das informações-------@ @------------------------------------------------------------------------------@ Funcao IniciaProcessamento();{ nQtdReqAtendidasSucesso=0; nQtdReqAtendidasErro =0; aGeraSolicitacaoCompra = "N"; nStatusProcesso=1; aMensagemProcesso="Processamento realizado com sucesso."; nParam_CodFil = atenderRequisicoes.codfil; nParam_CodEmp = atenderRequisicoes.codemp; Intparaalfa(nParam_CodFil,aParam_CodFil); Intparaalfa(nParam_CodEmp,aParam_CodEmp); Se((nParam_CodFil=0) ou (nParam_CodEmp=0)){ nStatusProcesso=0; aMensagemProcesso="Não recebido os parâmetros de Empresa ou Filial para iniciar o processamento"; } nReqRecebida_QtdLinhas = atenderRequisicoes.Requisicoes.qtdLinhas; Se((nReqRecebida_QtdLinhas=0) e (nStatusProcesso=1)){ nStatusProcesso=0; aMensagemProcesso="Não recebido nenhuma requisição para atender."; } Se(nStatusProcesso=1){ PosicionaEmpresaFilial(); } Se(nStatusProcesso=1){ IniciaLeituraRequisicoesReq(); } MontaResposta(); } @--Função que devolve o resultado do processamento dos dados de entrada--------@ Funcao MontaResposta();{ Se(nStatusProcesso=2){ aMensagemProcesso = "Ocorreram erros no processamento das Requisições, consulte o resultado para mais detalhes."; } atenderRequisicoes.StatusProcesso = nStatusProcesso; atenderRequisicoes.MensagemProcesso = aMensagemProcesso; } Funcao PosicionaEmpresaFilial();{ WS_AcaoSID.SID.CriarLinha(); WS_AcaoSID.SID.Param ="ACAO=SID.SRV.ALTEMPFIL"; WS_AcaoSID.SID.CriarLinha(); WS_AcaoSID.SID.Param ="CODEMP="+aParam_CodEmp; WS_AcaoSID.SID.CriarLinha(); WS_AcaoSID.SID.Param ="CODFIL="+aParam_CodFil; WS_AcaoSID.ModoExecucao =1; WS_AcaoSID.Executar(); aRespostaSID = WS_AcaoSID.Resultado; Se(aRespostaSID<>"OK"){ nStatusProcesso = 0; aMensagemProcesso = aRespostaSID; } } Funcao IniciaLeituraRequisicoesReq();{ para (i =0 ; i < nReqRecebida_QtdLinhas ; i++ ) { atenderRequisicoes.Requisicoes.LinhaAtual = i; nReqRecebida_Numeme = atenderRequisicoes.Requisicoes.Numeme; nReqRecebida_Seqeme = atenderRequisicoes.Requisicoes.Seqeme; dReqRecebida_Datmov = atenderRequisicoes.Requisicoes.Datmov; nReqRecebida_QtdAtd = atenderRequisicoes.Requisicoes.QtdAtd; aReqRecebida_CodDep = atenderRequisicoes.Requisicoes.CodDep; aReqRecebida_Codtns = atenderRequisicoes.Requisicoes.CodTns; nReqRecebida_QtdCpr = atenderRequisicoes.Requisicoes.QtdCpr; nReqRecebida_NroCra = atenderRequisicoes.Requisicoes.NroCra; aReqRecebida_ObsMov = atenderRequisicoes.Requisicoes.ObsMov; aReqRecebida_CodEqp = atenderRequisicoes.Requisicoes.CodEqp; LimpaEspacos(aReqRecebida_CodDep); LimpaEspacos(aReqRecebida_Codtns); LimpaEspacos(aReqRecebida_CodEqp); nStatusRegistro = 1; aMensagemRegistro = "Requisição atendida com sucesso."; Se((nReqRecebida_QtdAtd =0) e (nReqRecebida_QtdCpr=0)){ nStatusRegistro = 0; aMensagemRegistro = "Quantidade a ser atendida e ou comprada não informada"; } intparaalfa(nReqRecebida_Numeme,aReqRecebida_Numeme); intparaalfa(nReqRecebida_Seqeme,aReqRecebida_Seqeme); decimalparaalfa(nReqRecebida_QtdAtd,aReqRecebida_QtdAtd); ConverteMascara(3, dReqRecebida_Datmov, aReqRecebida_Datmov,"DD/MM/YYYY"); Se(aReqRecebida_Codtns=""){ aReqRecebida_Codtns = "90252"; } CarregaDadosRequisicao(); aIntegraEPIcomHCM = "N"; Se((aSql_E075pro_Codfam="9008") e (aSql_E075pro_Codagc="CEPI") e (aReqRecebida_Codtns="90250")){ IniciaValidacaoEntregaEPI(); } Se((nStatusRegistro = 1) e (nReqRecebida_QtdAtd>0)){ bAchouMovimentoEstoque="N"; AtenderReqViaSid(); Se((nStatusRegistro = 1)){ CarregaMovimentoGerado(); } Se((nStatusRegistro = 1) e (aIntegraEPIcomHCM = "S") e (bAchouMovimentoEstoque="S")){ IntegraBaixaEPIcomHCM(); } } /* Náo Gerar mais a Solicitacao Se(nReqRecebida_QtdCpr>0){ nFilSol=0; nNumSol=0; nSeqSol=0; IniciaGeracaoSolCompra(); } */ AddRequisicaoResult(); } } Funcao CarregaDadosRequisicao();{ SQL_Criar(xCursorPrin); SQL_UsarAbrangencia(xCursorPrin,0); SQL_UsarSQLSenior2(xCursorPrin,0); SQL_DefinirComando(xCursorPrin,"select\ e207eme.codemp as e207eme_codemp,\ e207eme.numeme as e207eme_numeme,\ e207eme.seqeme as e207eme_seqeme,\ e207eme.fileme as e207eme_fileme,\ e207eme.codtns as e207eme_codtns,\ e207eme.codpro as e207eme_codpro,\ e207eme.codder as e207eme_codder,\ e207eme.codser as e207eme_codser,\ e207eme.coddep as e207eme_coddep, \ e207eme.ccures as e207eme_ccures,\ e210est.coddep as e210est_coddep,\ e210est.qtdest as e210est_qtdest,\ e075pro.codfam as e075pro_codfam,\ e075pro.codagc as e075pro_codagc \ from e207eme \ inner join e075pro \ on e075pro.codemp = e207eme.codemp \ and e075pro.codpro = e207eme.codpro \ inner join e210est \ on e210est.codemp = e207eme.codemp \ and e210est.codpro = e207eme.codpro \ and e210est.codder = e207eme.codder \ and e210est.sitest = 'A' \ inner join e205dep \ on e205dep.codemp = e210est.codemp \ and e205dep.coddep = e210est.coddep \ and e205dep.usu_tipestapp=2 \ where e207eme.codemp = :nParam_CodEmp\ and e207eme.numeme = :nReqRecebida_Numeme\ and e207eme.seqeme = :nReqRecebida_Seqeme \ order by e210est.qtdest desc "); SQL_DefinirInteiro(xCursorPrin,"nParam_CodEmp",nParam_CodEmp); SQL_DefinirInteiro(xCursorPrin,"nReqRecebida_Numeme",nReqRecebida_Numeme); SQL_DefinirInteiro(xCursorPrin,"nReqRecebida_Seqeme",nReqRecebida_Seqeme); SQL_AbrirCursor (xCursorPrin); nEncontrouRequisicao=0; Enquanto(SQL_EOF(xCursorPrin)=0){ nEncontrouRequisicao++; SQL_RetornarInteiro (xCursorPrin,"E207eme_Codemp",nSql_E207eme_Codemp); SQL_RetornarInteiro (xCursorPrin,"E207eme_Numeme",nSql_E207eme_Numeme); SQL_RetornarInteiro (xCursorPrin,"E207eme_Seqeme",nSql_E207eme_Seqeme); SQL_RetornarInteiro (xCursorPrin,"E207eme_Fileme",nSql_E207eme_Fileme); SQL_RetornarAlfa (xCursorPrin,"E207eme_Codtns",aSql_E207eme_Codtns); SQL_RetornarAlfa (xCursorPrin,"E207eme_Codpro",aSql_E207eme_Codpro); SQL_RetornarAlfa (xCursorPrin,"E207eme_Codder",aSql_E207eme_Codder); SQL_RetornarAlfa (xCursorPrin,"E207eme_Codser",aSql_E207eme_Codser); SQL_RetornarAlfa (xCursorPrin,"E207eme_Coddep",aSql_E207eme_Coddep); SQL_RetornarAlfa (xCursorPrin,"E207eme_Ccures",aSql_E207eme_Ccures); SQL_RetornarAlfa (xCursorPrin,"E210est_Coddep",aSql_E210est_Coddep); SQL_RetornarFlutuante(xCursorPrin,"E210est_Qtdest",nSql_E210est_Qtdest); SQL_RetornarAlfa (xCursorPrin,"E075pro_Codfam",aSql_E075pro_Codfam); SQL_RetornarAlfa (xCursorPrin,"E075pro_Codagc",aSql_E075pro_Codagc); Se(aReqRecebida_CodDep=""){ aReqRecebida_CodDep = aSql_E210est_Coddep; } Pare; SQL_Proximo(xCursorPrin); } SQL_FecharCursor(xCursorPrin); SQL_Destruir(xCursorPrin); } Funcao AtenderReqViaSid();{ WS_AcaoSID.SID.CriarLinha(); WS_AcaoSID.SID.Param ="ACAO=SID.Est.AtenderRequisicao"; WS_AcaoSID.SID.CriarLinha(); WS_AcaoSID.SID.Param ="numEme="+aReqRecebida_NumEme; WS_AcaoSID.SID.CriarLinha(); WS_AcaoSID.SID.Param ="seqEme="+aReqRecebida_Seqeme; WS_AcaoSID.SID.CriarLinha(); WS_AcaoSID.SID.Param ="qtdAtd="+aReqRecebida_QtdAtd; WS_AcaoSID.SID.CriarLinha(); WS_AcaoSID.SID.Param ="CodTns="+aReqRecebida_CodTns; WS_AcaoSID.SID.CriarLinha(); WS_AcaoSID.SID.Param ="DatMov="+aReqRecebida_DatMov; LimpaEspacos(aReqRecebida_CodDep); Se(aReqRecebida_CodDep<>""){ WS_AcaoSID.SID.CriarLinha(); WS_AcaoSID.SID.Param ="codDep="+aReqRecebida_CodDep; } LimpaEspacos(aReqRecebida_ObsMov); Se(aReqRecebida_ObsMov<>""){ WS_AcaoSID.SID.CriarLinha(); WS_AcaoSID.SID.Param ="obsMov="+aReqRecebida_ObsMov; } WS_AcaoSID.ModoExecucao = 1; WS_AcaoSID.Executar(); aRespostaSID = WS_AcaoSID.Resultado; Se(aRespostaSID<>"OK"){ nStatusRegistro = 0; aMensagemRegistro = aRespostaSID; } } Funcao CarregaMovimentoGerado();{ SQL_Criar(xCursorPrin); SQL_UsarAbrangencia(xCursorPrin,0); SQL_UsarSQLSenior2(xCursorPrin,0); SQL_DefinirComando(xCursorPrin,"SELECT \ e210mvp.codemp as e210mvp_codemp,\ e210mvp.codpro as e210mvp_codpro,\ e210mvp.codder as e210mvp_codder,\ e210mvp.coddep as e210mvp_coddep,\ e210mvp.datmov as e210mvp_datmov,\ e210mvp.seqmov as e210mvp_seqmov,\ e210mvp.numeme as e210mvp_numeme,\ e210mvp.seqeme as e210mvp_seqeme \ from e210mvp \ where e210mvp.codemp = :nSql_E207eme_Codemp \ and e210mvp.codpro = :aSql_E207eme_Codpro \ and e210mvp.codder = :aSql_E207eme_Codder \ and e210mvp.numeme = :nSql_E207eme_Numeme \ and e210mvp.seqeme = :nSql_E207eme_Seqeme"); SQL_DefinirInteiro(xCursorPrin,"nSql_E207eme_Codemp",nSql_E207eme_Codemp); SQL_DefinirInteiro(xCursorPrin,"nSql_E207eme_Numeme",nSql_E207eme_Numeme); SQL_DefinirInteiro(xCursorPrin,"nSql_E207eme_Seqeme",nSql_E207eme_Seqeme); SQL_DefinirAlfa (xCursorPrin,"aSql_E207eme_Codpro",aSql_E207eme_Codpro); SQL_DefinirAlfa (xCursorPrin,"aSql_E207eme_Codder",aSql_E207eme_Codder); SQL_AbrirCursor (xCursorPrin); Se(SQL_EOF(xCursorPrin)=0){ SQL_RetornarInteiro (xCursorPrin,"E210mvp_Codemp",nSql_E210mvp_Codemp); SQL_RetornarAlfa (xCursorPrin,"E210mvp_Codpro",aSql_E210mvp_Codpro); SQL_RetornarAlfa (xCursorPrin,"E210mvp_Codder",aSql_E210mvp_Codder); SQL_RetornarAlfa (xCursorPrin,"E210mvp_Coddep",aSql_E210mvp_Coddep); SQL_RetornarData (xCursorPrin,"E210mvp_Datmov",dSql_E210mvp_Datmov); SQL_RetornarInteiro (xCursorPrin,"E210mvp_Seqmov",nSql_E210mvp_Seqmov); SQL_RetornarInteiro (xCursorPrin,"E210mvp_Numeme",nSql_E210mvp_Numeme); SQL_RetornarInteiro (xCursorPrin,"E210mvp_Seqeme",nSql_E210mvp_Seqeme); bAchouMovimentoEstoque="S"; AtualizaMovimentoGerado(); } SQL_FecharCursor(xCursorPrin); SQL_Destruir(xCursorPrin); } Funcao AtualizaMovimentoGerado();{ aSql_E103eqp_Codeqp=""; nSql_E906ope_Numcad=0; Se(nReqRecebida_NroCra<>0){ CheckOperador(); } Se(aReqRecebida_CodEqp<>""){ CheckEquipamento(); } CopiarAlfa(aReqRecebida_ObsMov,1,250); ExecSqlEx ("update e210mvp set \ motmvp =:aReqRecebida_ObsMov, \ usu_codeqp=:aSql_E103eqp_Codeqp, \ usu_codopr=:nSql_E906ope_Numcad \ where codemp = :nSql_E210mvp_Codemp \ and codpro = :aSql_E210mvp_Codpro \ and codder = :aSql_E210mvp_Codder \ and coddep = :aSql_E210mvp_Coddep \ and datmov = :dSql_E210mvp_Datmov \ and seqmov = :nSql_E210mvp_Seqmov",xError,aMsgErroSql); } Funcao CheckEquipamento();{ SQL_Criar(xCursorEqp); SQL_UsarAbrangencia(xCursorEqp, 0); SQL_UsarSQLSenior2(xCursorEqp,0); SQL_DefinirComando(xCursorEqp,"select \ E103eqp.codemp as E103eqp_Codemp,\ E103eqp.codeqp as E103eqp_Codeqp,\ E103eqp.deseqp as E103eqp_Deseqp,\ E103eqp.codccu as E103eqp_codccu,\ E103eqp.codcre as E103eqp_codcre \ from E103eqp \ where E103eqp.codemp = :nParam_CodEmp \ and E103eqp.codeqp = :aReqRecebida_CodEqp "); SQL_DefinirInteiro(xCursorEqp,"nParam_CodEmp",nParam_CodEmp); SQL_DefinirAlfa (xCursorEqp,"aReqRecebida_CodEqp",aReqRecebida_CodEqp); SQL_AbrirCursor (xCursorEqp); SQL_AbrirCursor(xCursorEqp); Se(SQL_EOF(xCursorEqp) = 0) { SQL_RetornarInteiro (xCursorEqp,"E103eqp_Codemp",nSql_E103eqp_Codemp); SQL_RetornarAlfa (xCursorEqp,"E103eqp_Codeqp",aSql_E103eqp_Codeqp); } SQL_FecharCursor(xCursorEqp); SQL_Destruir(xCursorEqp); } Funcao CheckOperador();{ SQL_Criar(xCursorOpe); SQL_UsarAbrangencia(xCursorOpe, 0); SQL_UsarSQLSenior2(xCursorOpe,0); SQL_DefinirComando(xCursorOpe,"select \ e906ope.numcad as e906ope_numcad\ from e906ope \ where e906ope.codemp = :nParam_CodEmp \ and e906ope.numcad = :nReqRecebida_NroCra "); SQL_DefinirInteiro(xCursorOpe,"nParam_CodEmp",nParam_CodEmp); SQL_DefinirInteiro(xCursorOpe,"nReqRecebida_NroCra",nReqRecebida_NroCra); SQL_AbrirCursor (xCursorOpe); SQL_AbrirCursor(xCursorOpe); Se(SQL_EOF(xCursorOpe) = 0) { SQL_RetornarInteiro (xCursorOpe,"E906ope_Numcad",nSql_E906ope_Numcad); } SQL_FecharCursor(xCursorOpe); SQL_Destruir(xCursorOpe); } Funcao AddRequisicaoResult();{ atenderRequisicoes.RequisicoesResult.CriarLinha(); atenderRequisicoes.RequisicoesResult.NumEme = nReqRecebida_Numeme; atenderRequisicoes.RequisicoesResult.SeqEme = nReqRecebida_Seqeme; atenderRequisicoes.RequisicoesResult.StatusRegistro = nStatusRegistro; atenderRequisicoes.RequisicoesResult.MensagemRegistro = aMensagemRegistro; atenderRequisicoes.RequisicoesResult.FilSol = nFilSol; atenderRequisicoes.RequisicoesResult.NumSol = nNumSol; atenderRequisicoes.RequisicoesResult.SeqSol = nSeqSol; Se(nStatusRegistro=1){ nQtdReqAtendidasSucesso++; }senao { nQtdReqAtendidasErro++; Se(nQtdReqAtendidasSucesso=0){ nStatusProcesso =0; aMensagemProcesso =aMensagemRegistro; }senao { Se(nQtdReqAtendidasErro=1){ aMensagemProcesso =aMensagemRegistro; }senao { aMensagemProcesso = aMensagemProcesso + " " + aMensagemRegistro; } nStatusProcesso =2; } } } Funcao IniciaGeracaoSolCompra();{ WsGerarSol.codEmp = nParam_CodEmp; WsGerarSol.codFil = nParam_CodFil; WsGerarSol.itensProduto.CriarLinha(); WsGerarSol.itensProduto.CodPro = aSql_E207eme_Codpro; WsGerarSol.itensProduto.CodDer = aSql_E207eme_Codder; WsGerarSol.itensProduto.CodDep = aReqRecebida_CodDep; WsGerarSol.itensProduto.qtdSol = nReqRecebida_QtdCpr; WsGerarSol.itensProduto.ccuRes = aSql_E207eme_Ccures; WsGerarSol.itensProduto.codTns = "91401"; GerarSolicitacaoCompra(); } Funcao GerarSolicitacaoCompra();{ WsGerarSol.ModoExecucao = 2; WsGerarSol.Executar(); Se(WsGerarSol.ErroExecucao <> ""){ nStatusProcesso =0; aMensagemProcesso =WsGerarSol.ErroExecucao; }senao { Se(WsGerarSol.tipoRetorno <> 1){ nStatusProcesso =0; aMensagemProcesso =WsGerarSol.mensagemRetorno + " " + WsGerarSol.retornoSolicitacao.msgRet; }senao { nEmpSol = WsGerarSol.retornoSolicitacao.codEmp; nFilSol = WsGerarSol.retornoSolicitacao.filSol; nNumSol = WsGerarSol.retornoSolicitacao.numSol; nSeqSol = WsGerarSol.retornoSolicitacao.seqSol; Se((nEmpSol<>0) e (nFilSol<>0) e (nNumSol<>0) e (nSeqSol<>0)){ LigaSolicitacaoComReq(); } } } } Funcao LigaSolicitacaoComReq();{ ExecSqlEx ("update e405sol set numeme=:nReqRecebida_Numeme, seqeme=:nReqRecebida_Seqeme\ where codemp = :nEmpSol \ and filsol = :nFilSol \ and numsol = :nNumSol \ and seqsol = :nSeqSol ",xError,aMsgErroSql); Se(xError<>0){ nStatusProcesso=0; aMensagemProcesso="Ocorreu erro ao Atualizado dados da tabela e405sol. Erro Técnico:" + aMsgErroSql ; } } Funcao IniciaValidacaoEntregaEPI();{ Se(nReqRecebida_NroCra=0){ nStatusRegistro = 0; aMensagemRegistro = "Produto classificado como EPI deverá ser identificado o funcionário que foi entregue."; } Se(nStatusRegistro = 1){ ValidaOperador(); } Se(nStatusRegistro = 1){ ValidaFuncionarioHCM(); } Se(nStatusRegistro = 1){ ValidaCadastroEPIHCM(); } Se(nStatusRegistro = 1){ ValidaEPIJaEntregueFunc(); } Se(nStatusRegistro = 1){ aIntegraEPIcomHCM = "S"; } } Funcao ValidaOperador();{ Cur_E906Ope.Sql"Select SitOpe from e906ope where NumCad = :nReqRecebida_NroCra and codemp =:nParam_CodEmp" Cur_E906ope.AbrirCursor(); Se(Cur_e906ope.Achou){ Se(Cur_E906ope.Sitope <>"A"){ nStatusRegistro = 0; aMensagemRegistro = "Atenção!Operador Informado esta Inativo."; } } Cur_E906ope.FecharCursor(); } Funcao ValidaFuncionarioHCM();{ @01 - De 1 até 4.999; de 10.000 até 15.000;@ vNumEmp = 1; VTipCol = 1; @02 - De 5.000 até 9.999; de 15.000 até 19.999;@ Se (((nReqRecebida_NroCra >= 5000) e (nReqRecebida_NroCra < 10000)) ou ((nReqRecebida_NroCra >= 15000) e (nReqRecebida_NroCra < 20000))){ vNumEmp = 2; } @03 - De 20.000 até 24.999;@ Se ((nReqRecebida_NroCra >= 20000) e (nReqRecebida_NroCra < 25000)){ vNumEmp = 3; } @04 - De 25.000 até 29.999;@ Se ((nReqRecebida_NroCra >= 25000) e (nReqRecebida_NroCra < 30000)){ vNumEmp = 4; } @05 - De 35.000 até 39.999;@ Se ((nReqRecebida_NroCra >= 35000) e (nReqRecebida_NroCra < 40000)){ vNumEmp = 5; } @08 - De 50.000 até 54.999;@ Se ((nReqRecebida_NroCra >= 50000) e (nReqRecebida_NroCra < 55000)){ vNumEmp = 8; } @11 - De 80.000 até 84.999;@ Se ((nReqRecebida_NroCra >= 80000) e (nReqRecebida_NroCra < 85000)){ vNumEmp = 11; } @16 - De 25.000 até 29.999;@ Se ((nReqRecebida_NroCra >= 95000) e (nReqRecebida_NroCra < 95999)) { vNumEmp = 16; } @999 - De 199.000 até 200.000@ Se (((nReqRecebida_NroCra >= 199000) e (nReqRecebida_NroCra < 200500)) ou ((nReqRecebida_NroCra >= 96000) e (nReqRecebida_NroCra < 99999))){ vNumEmp = 999; } SQL_Criar(xCursorPrin); SQL_UsarAbrangencia(xCursorPrin,0); SQL_UsarSQLSenior2(xCursorPrin,0); SQL_DefinirComando(xCursorPrin,"SELECT \ numemp R034Fun_codemp, \ tipcol R034Fun_TipCol, \ numcad R034Fun_numcad, \ nomfun R034Fun_nomfun, \ numcad R034Fun_nrocra \ FROM VETORH.r034fun \ where (R034Fun.numemp = :vNumEmp)\ and (R034Fun.TipCol = :VTipCol) \ and (R034Fun.numcad = :nReqRecebida_NroCra)"); SQL_DefinirInteiro(xCursorPrin,"vNumEmp",vNumEmp); SQL_DefinirInteiro(xCursorPrin,"VTipCol",VTipCol); SQL_DefinirInteiro(xCursorPrin,"nReqRecebida_NroCra",nReqRecebida_NroCra); SQL_AbrirCursor (xCursorPrin); Se(SQL_EOF(xCursorPrin)=0){ SQL_RetornarInteiro (xCursorPrin,"R034Fun_Codemp",nSql_R034Fun_Codemp); SQL_RetornarInteiro (xCursorPrin,"R034Fun_TipCol",nSql_R034Fun_TipCol); SQL_RetornarInteiro (xCursorPrin,"R034Fun_NumCad",nSql_R034Fun_NumCad); SQL_RetornarInteiro (xCursorPrin,"R034Fun_nrocra",nSql_R034Fun_NroCra); SQL_RetornarAlfa (xCursorPrin,"R034Fun_nomfun",aSql_R034Fun_NomFun); } senao { nStatusRegistro = 0; aMensagemRegistro = "Esse operador não esta cadastro no VETORH. Entre em contato com o Rh!"; } SQL_FecharCursor(xCursorPrin); SQL_Destruir(xCursorPrin); } Funcao ValidaCadastroEPIHCM();{ DeixaNumeros(aSql_E207eme_Codpro); LimpaEspacos(aSql_E207eme_Codpro); AlfaParaInt(aSql_E207eme_Codpro,nSql_R096epi_Codepi); SQL_Criar(xCursorPrin); SQL_UsarAbrangencia(xCursorPrin,0); SQL_UsarSQLSenior2(xCursorPrin,0); SQL_DefinirComando(xCursorPrin,"SELECT \ r096epi.codepi as r096epi_codepi,\ r096epi.desepi as r096epi_desepi \ from VETORH.r096epi \ where r096epi.codepi = :nSql_R096epi_Codepi "); SQL_DefinirInteiro(xCursorPrin,"nSql_R096epi_Codepi", nSql_R096epi_Codepi); SQL_AbrirCursor (xCursorPrin); Se(SQL_EOF(xCursorPrin)=0){ SQL_RetornarInteiro (xCursorPrin,"R096epi_Codepi",nSql_R096epi_Codepi); SQL_RetornarAlfa (xCursorPrin,"R096epi_Desepi",aSql_R096epi_Desepi); } senao { nStatusRegistro = 0; aMensagemRegistro = "Esse produto não esta cadastro no VETORH. Entre em contato com o Rh!"; } SQL_FecharCursor(xCursorPrin); SQL_Destruir(xCursorPrin); } Funcao ValidaEPIJaEntregueFunc();{ SQL_Criar(xCursorPrin); SQL_UsarAbrangencia(xCursorPrin,0); SQL_UsarSQLSenior2(xCursorPrin,0); SQL_DefinirComando(xCursorPrin,"SELECT \ r096die.numemp as r096die_numemp,\ r096die.tipcol as r096die_tipcol,\ r096die.numcad as r096die_numcad,\ r096die.codepi as r096die_codepi,\ r096die.datent as r096die_datent \ from VETORH.r096die \ where (r096die.numemp = :nSql_R034Fun_Codemp) \ and (r096die.codepi = :nSql_R096epi_Codepi) \ and (r096die.TipCol = :nSql_R034Fun_TipCol) \ and (r096die.numcad = :nSql_R034Fun_NumCad) \ and (r096die.DatEnt = :dReqRecebida_Datmov)" ); SQL_DefinirInteiro(xCursorPrin,"nSql_R034Fun_Codemp",nSql_R034Fun_Codemp); SQL_DefinirInteiro(xCursorPrin,"nSql_R034Fun_TipCol",nSql_R034Fun_TipCol); SQL_DefinirInteiro(xCursorPrin,"nSql_R034Fun_NumCad",nSql_R034Fun_NumCad); SQL_DefinirInteiro(xCursorPrin,"nSql_R096epi_Codepi",nSql_R096epi_Codepi); SQL_DefinirData (xCursorPrin,"dReqRecebida_Datmov",dReqRecebida_Datmov); SQL_AbrirCursor (xCursorPrin); Se(SQL_EOF(xCursorPrin)=0){ SQL_RetornarInteiro (xCursorPrin,"R096die_Numemp",nSql_R096die_Numemp); SQL_RetornarInteiro (xCursorPrin,"R096die_Tipcol",nSql_R096die_Tipcol); SQL_RetornarInteiro (xCursorPrin,"R096die_Numcad",nSql_R096die_Numcad); SQL_RetornarInteiro (xCursorPrin,"R096die_Codepi",nSql_R096die_Codepi); SQL_RetornarData (xCursorPrin,"R096die_Datent",dSql_R096die_Datent); nStatusRegistro = 0; aMensagemRegistro = "Já houve entrega desse EPI para esse operador hoje!"; } SQL_FecharCursor(xCursorPrin); SQL_Destruir(xCursorPrin); } Funcao IntegraBaixaEPIcomHCM();{ ExecSQLEx ("INSERT INTO VETORH.R096DIE \ (NUMEMP, \ TIPCOL, \ NUMCAD, \ CODEPI, \ DATENT, \ SEQDIE, \ MEDEPI, \ QTDENT, \ DATDEV, \ QTDDEV, \ QTDDAN, \ INSUSO, \ CODMTV, \ OBSDIS, \ ASSPRO, \ CODUSU, \ NUMLOT, \ CODOEM, \ CERAPR, \ REGCRI \ ) VALUES ( \ :nSql_R034Fun_Codemp,\ :nSql_R034Fun_TipCol,\ :nSql_R034Fun_NumCad,\ :nSql_R096epi_Codepi,\ :dSql_E210mvp_Datmov,\ :nSql_E210mvp_Seqmov,\ '000',\ :nReqRecebida_QtdAtd,\ :vdDatNul,\ 0,\ 0,\ 'S',\ 2,\ 'Gerado via atendimento a Requisição no Sapiens',\ 'S',\ 70,\ 0,\ 0,\ ' ',\ ' ')",xError,aMsgErroSql); Se(xError<>0){ nStatusProcesso=0; aMensagemProcesso="Ocorreu erro ao gerar a entrega do EPI no RH. Erro Técnico:" + aMsgErroSql ; } }