Regra por processo 7 - Inserir Histórico de Cargo

Exemplo:

<div class="Code"><p>@ Regra para ser associada aos processos: 007-Inserir Histórico de Cargo e 756-Inserir Histórico de Posto - Trabalha em conjunto com o processo 888@</p><p>Definir Alfa xComandoSelectReservas;<br></br>Definir Alfa xCursorSelectReservas;<br></br>Definir Alfa xComandoSelectRequisitos;<br></br>Definir Alfa xCursorSelectRequisitos;<br></br>Definir Alfa xComandoDeleteReservas;<br></br>Definir Alfa xCursorDeleteReservas;<br></br>Definir Data xDatRes;<br></br>Definir Alfa xPosTra;<br></br>Definir Alfa xCodCar;</p><p>Se (vExecucaoRegra = 1) @ Se a regra estiver sendo executada após incluir histórico @<br></br>Inicio<br></br> Se (R000RPP.CodPro = 7) @ Inclusão de histórico de cargo @<br></br> Inicio<br></br> xNumEmp = R038HCA.NumEmp;<br></br> xTipCol = R038HCA.TipCol;<br></br> xNumCad = R038HCA.NumCad;<br></br> Fim<br></br> Senao<br></br> Se (R000RPP.CodPro = 756) @ Inclusão de histórico de posto de trabalho @<br></br> Inicio<br></br> xNumEmp = R038HPO.NumEmp;<br></br> xTipCol = R038HPO.TipCol;<br></br> xNumCad = R038HPO.NumCad;<br></br> Fim</p><p> xComandoSelectReservas = "SELECT * \<br></br> FROM R132RPA \<br></br> WHERE NUMEMP = :NumEmp \<br></br> AND TIPCOL = :TipCol \<br></br> AND NUMCAD = :NumCad \<br></br> AND (TMACUA = 0 OR TMACUA IS NULL) \<br></br> AND (CODEVN = 0 OR TMACUA IS NULL) \<br></br> AND ORIRES = 9";</p><p> xComandoSelectRequisitos = "SELECT * \<br></br> FROM R145COL \<br></br> WHERE NUMEMP = :NumEmp \<br></br> AND TIPCOL = :TipCol \<br></br> AND NUMCAD = :NumCad \<br></br> AND DATLNT = :DatLnt";</p><p> xComandoDeleteReservas = "DELETE FROM R132RPA \<br></br> WHERE CODCUA = :CodCua \<br></br> AND NUMEMP = :NumEmp \<br></br> AND TIPCOL = :TipCol \<br></br> AND NUMCAD = :NumCad \<br></br> AND DATRES = :DatRes";</p><p> SQL_Criar(xCursorSelectReservas);<br></br> SQL_DefinirComando(xCursorSelectReservas, xComandoSelectReservas);<br></br> SQL_DefinirInteiro(xCursorSelectReservas, "NumEmp", xNumEmp);<br></br> SQL_DefinirInteiro(xCursorSelectReservas, "TipCol", xTipCol);<br></br> SQL_DefinirInteiro(xCursorSelectReservas, "NumCad", xNumCad);<br></br></p><p> SQL_AbrirCursor(xCursorSelectReservas);<br></br> Se (SQL_EOF(xCursorSelectReservas) = 0)<br></br> Inicio<br></br> SQL_Criar(xCursorSelectRequisitos);<br></br> SQL_DefinirComando(xCursorSelectRequisitos, xComandoSelectRequisitos);</p><p> SQL_Criar(xCursorDeleteReservas);<br></br> SQL_DefinirComando(xCursorDeleteReservas, xComandoDeleteReservas);</p><p> Enquanto (SQL_EOF(xCursorSelectReservas) = 0)<br></br> Inicio<br></br> SQL_RetornarData(xCursorSelectReservas, "DatRes", xDatRes);<br></br> SQL_RetornarInteiro(xCursorSelectReservas, "CodCua", xCodCua);</p><p> SQL_DefinirInteiro(xCursorSelectRequisitos, "NumEmp", xNumEmp);<br></br> SQL_DefinirInteiro(xCursorSelectRequisitos, "TipCol", xTipCol);<br></br> SQL_DefinirInteiro(xCursorSelectRequisitos, "NumCad", xNumCad);<br></br> SQL_DefinirData(xCursorSelectRequisitos, "DatLnt", xDatRes);<br></br> SQL_AbrirCursor(xCursorSelectRequisitos);<br></br> Se (SQL_EOF(xCursorSelectRequisitos) = 0)<br></br> Inicio<br></br> @ Busca o posto de trabalho e cargo do colaborador na data do processamento do LNT @<br></br> SQL_RetornarInteiro(xCursorSelectRequisitos, "EstPos", xEstPos);<br></br> SQL_RetornarAlfa(xCursorSelectRequisitos, "PosTra", xPosTra);<br></br> SQL_RetornarInteiro(xCursorSelectRequisitos, "EstCar", xEstCar);<br></br> SQL_RetornarAlfa(xCursorSelectRequisitos, "CodCar", xCodCar);</p><p> Se (R000RPP.CodPro = 7)<br></br> Inicio<br></br> Se ((R038HCA.EstCar &#x3C;> xEstCar) ou (R038HCA.CodCar &#x3C;> xCodCar))<br></br> Inicio<br></br> @ Exclui a reserva caso o novo cargo for diferente do cargo na data do processamento do LNT @<br></br> SQL_DefinirInteiro(xCursorDeleteReservas, "CodCua", xCodCua);<br></br> SQL_DefinirInteiro(xCursorDeleteReservas, "NumEmp", xNumEmp);<br></br> SQL_DefinirInteiro(xCursorDeleteReservas, "TipCol", xTipCol);<br></br> SQL_DefinirInteiro(xCursorDeleteReservas, "NumCad", xNumCad);<br></br> SQL_DefinirData(xCursorDeleteReservas, "DatRes", xDatRes);<br></br> SQL_AbrirCursor(xCursorDeleteReservas);<br></br> SQL_FecharCursor(xCursorDeleteReservas);<br></br> Fim<br></br> Fim<br></br> Senao<br></br> Se (R000RPP.CodPro = 756)<br></br> Inicio<br></br> Se ((R038HPO.EstPos &#x3C;> xEstPos) ou (R038HPO.PosTra &#x3C;> xPosTra))<br></br> Inicio<br></br> @ Exclui a reserva caso o novo posto de trabalho for diferente do posto na data do processamento do LNT @<br></br> SQL_DefinirInteiro(xCursorDeleteReservas, "CodCua", xCodCua);<br></br> SQL_DefinirInteiro(xCursorDeleteReservas, "NumEmp", xNumEmp);<br></br> SQL_DefinirInteiro(xCursorDeleteReservas, "TipCol", xTipCol);<br></br> SQL_DefinirInteiro(xCursorDeleteReservas, "NumCad", xNumCad);<br></br> SQL_DefinirData(xCursorDeleteReservas, "DatRes", xDatRes);<br></br> SQL_AbrirCursor(xCursorDeleteReservas);<br></br> SQL_FecharCursor(xCursorDeleteReservas);<br></br> Fim<br></br> Fim<br></br> Fim<br></br> SQL_FecharCursor(xCursorSelectRequisitos);</p><p> SQL_Proximo(xCursorSelectReservas);<br></br> Fim</p><p> SQL_Destruir(xCursorDeleteReservas);<br></br> SQL_Destruir(xCursorSelectRequisitos);<br></br> Fim</p><p> SQL_FecharCursor(xCursorSelectReservas);<br></br> SQL_Destruir(xCursorSelectReservas);<br></br>Fim</p></div>

Disponível para os Módulos: Administração de Pessoal; Treinamento.

Este artigo ajudou você?