22 Dez 2015 15:20
//-> By João Santos - São Paulo - Brazil - kmt_karinha@pop.com.br - 23/11/06
//-> Participação Especial, Vailton Renato - renato@kssoftware.com.br
#Include "FiveWin.Ch"
STATIC oDlgRelog, oTimerRelog, lDesliga := .F., oWnd, oTimerPorta
STATIC oFnt, oSaida
//---------------------------------------------------------------------------//
FUNCTION RELOGIO()
LOCAL oBrush
LOCAL dDataDia
SET DATE BRIT
SET CENTURY ON
SET EPOCH TO YEAR( DATE() ) - 30
SET EXCLUSIVE OFF
SET MULTIPLE OFF
dDataDia := DTOC( DATE() )
DEFINE BRUSH oBrush RESOURCE "LOGO2" //-> PEGA A BITMAP DO ARQUIVO.RES(LOGO.BMP)
DEFINE FONT oFnt NAME "Arial" SIZE 08, 20 BOLD
DEFINE DIALOG oDlgRelog FROM 3, 3 TO 20, 50 ;
TITLE ( OemToAnsi( "Gerenciador do Rel¢gio do Sistema - " + ;
"Data: " + dDataDia ) ) ;
BRUSH oBrush TRANSPARENT ;
STYLE nOR( DS_MODALFRAME )
oDlgRelog:lHelpIcon := .F.
@ 005, 010 BUTTON oSaida PROMPT "&Finalizar" OF oDlgRelog ;
SIZE 70, 14 ;
ACTION ( oDlgRelog:End ) CANCEL
oSaida:cToolTip := ( OemToAnsi( "Finalizar Gerenciador do Rel¢gio " ) )
SET FONT OF oSaida TO oFnt
ACTIVATE DIALOG oDlgRelog CENTERED RESIZE16 ;
ON INIT( ACIONA_TIMER( oWnd ) )
IF lDesliga //-> Se For .T., Desligar o TIMER.
oTimerRelog:DeActivate()
oTimerPorta:DeActivate()
ENDIF
oFnt:End()
oBrush:End()
Release All
RETURN NIL
STATIC FUNCTION ACIONA_TIMER( oWnd )
DEFINE TIMER oTimerPorta INTERVAL 50 OF oDlgRelog ;
ACTION ACIONA_RELOGIO( oWnd )
ACTIVATE TIMER oTimerPorta
RETURN NIL
//---------------------------------------------------------------------------//
STATIC FUNCTION ACIONA_RELOGIO( oWnd )
LOCAL oFont
DEFINE FONT oFont NAME "Arial" SIZE 0, -70 BOLD //-> Fonte Para o Relogio
DEFINE FONT oFnt NAME "Arial" SIZE 08, 20 BOLD //-> Fonte Para o BotÆo
//-> Timer Que Ativa o Rel¢gio em Qualquer Lugar do Sistema
DEFINE TIMER oTimerRelog INTERVAL 50 ;
ACTION ExibeRelogio()
ACTIVATE TIMER oTimerRelog
//-> Fonte do Rel¢gio
SET FONT OF oDlgRelog TO oFont
SET FONT OF oSaida TO oFnt
oFont:End()
lDesliga := .T. //-> Para Desligar o Timer do Rel¢gio
oTimerPorta:DeActivate()
RETURN NIL
//-> Para NÆo Pintar a Tela do Windows, By Vailton Renato - 23/11/2006
STATIC FUNCTION ExibeRelogio()
IF ISWINDOWVISIBLE( oDlgRelog:hWnd )
oDlgRelog:Say( 3, 07, TIME(), ;
CLR_YELLOW, CLR_BLACK,, .F. )
// .T. Esquerda - .F. Direita da Dialog.
ENDIF
RETURN NIL
//-> FIM DO PROGRAMA <-------------------------------------------------------//
22 Dez 2015 15:31
23 Dez 2015 09:32
23 Dez 2015 09:46
CANCEL
23 Dez 2015 11:11
23 Dez 2015 11:18
23 Dez 2015 14:32
// Aqui é a chamada do botão buscar
//quando mando buscar ou cancelo a tela de busca a tela abre novamente
METHOD BuildButtons() CLASS CadFuncionarios
LOCAL i,x,y,spc,coluna:=1,tBotoes:=::nBotoes
::aBotoes:=array(::nBotoes)
::nColunas:=5
x := ::xBrw:nTop + ::xBrw:nHeight + 20
y := ::xBrw:nLeft + 10
spc := ((::xBrw:nWidth - 10)/::nColunas)
// espaçamento mínimo é 84
DO WHILE (spc < 84)
::nColunas-=1
spc := ((::xBrw:nWidth - 10)/::nColunas)
ENDDO
@ x, y BUTTON ::aBotoes[1] PROMPT "&Incluir" OF ::oChild SIZE 80,22 PIXEL ACTION ::IncOuAlt(.T.) CANCEL
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[2] PROMPT "&Alterar" OF ::oChild SIZE 80,22 PIXEL WHEN (.NOT. ::vazio) ACTION ::IncOuAlt(.F.) CANCEL
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
// aqui a chamda da tela de busca
@ x, y BUTTON ::aBotoes[3] PROMPT "&Buscar" OF ::oChild SIZE 80,22 PIXEL WHEN (.NOT. ::vazio) ACTION ::InitSrch() CANCEL
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[4] PROMPT "E&xcluir" OF ::oChild SIZE 80,22 PIXEL WHEN (.NOT. ::vazio) ACTION ::RemoveItem() CANCEL
IF tBotoes!=nil .AND. tBotoes > 5
tBotoes-=5
//msginfo("Produzir espaço para os outros "+cValToStr(tBotoes,'99')+" botões")
FOR i:=1 TO tBotoes
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
NEXT
ENDIF
IF (::nBotoes>5)
::BuildMoreButtons()
ENDIF
// mantendo o botão de sair à direita
IF coluna>=::nColunas
x+=42
ELSE
y:=((::xBrw:nLeft + ::xBrw:nWidth)-spc)
ENDIF
@ x, y BUTTON ::aBotoes[::nBotoes] PROMPT "&Sair" OF ::oChild SIZE 80,22 PIXEL ACTION ::oChild:end()
x+=42
IF ::oChild:nHeight < x
x+=20
::oChild:nHeight(x)
ENDIF
return nil
//aqui é a tela de busca
METHOD InitSrch() CLASS CadFuncionarios
LOCAL ametOrd := {"Nome", "Código", "Pis"} // Incluido por Gilberto
SELE 1
DEFINE DIALOG dlgBusca RESOURCE "#1244" TITLE "Buscar funcionário"
::campo := "Nome"
::valor := ""
REDEFINE SAY ID 4001
//REDEFINE COMBOBOX ::gcampo VAR ::campo ITEMS {"Código", "Nome", "PIS"} ID 4005 VALID ::setIndex2() OF dlgBusca
REDEFINE GET ::gvalor VAR ::valor ID 4003 OF dlgBusca
REDEFINE COMBOBOX ::gcampo VAR ::campo ITEMS ametOrd ID 4005 VALID ::setIndex2() OF dlgBusca
REDEFINE BUTTON ID IDOK OF dlgBusca ACTION (::Srch(), dlgBusca:End()) CANCEL
REDEFINE BUTTON ID IDCANCEL OF dlgBusca ACTION dlgBusca:End() CANCEL
ordsetfocus(2) // 2 ///
::gvalor:setfocus()
ACTIVATE DIALOG dlgBusca CENTERED //ON INIT // gilberto em outubro / 2013)
RETURN
23 Dez 2015 15:02
// Aqui é a chamada do botão buscar
//quando mando buscar ou cancelo a tela de busca a tela abre novamente
METHOD BuildButtons() CLASS CadFuncionarios
LOCAL i,x,y,spc,coluna:=1,tBotoes:=::nBotoes
::aBotoes:=array(::nBotoes)
::nColunas:=5
x := ::xBrw:nTop + ::xBrw:nHeight + 20
y := ::xBrw:nLeft + 10
spc := ((::xBrw:nWidth - 10)/::nColunas)
// espaçamento mínimo é 84
WHILE (spc < 84)
::nColunas-=1
spc := ((::xBrw:nWidth - 10)/::nColunas)
SYSREFRESH()
ENDDO
@ x, y BUTTON ::aBotoes[1] PROMPT "&Incluir" OF ::oChild SIZE 80,22 PIXEL ;
ACTION( ::IncOuAlt(.T.) ) CANCEL
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[2] PROMPT "&Alterar" OF ::oChild SIZE 80,22 PIXEL ;
WHEN ( .NOT. ::vazio ) ;
ACTION( ::IncOuAlt(.F.) ) CANCEL
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
// aqui a chamda da tela de busca
@ x, y BUTTON ::aBotoes[3] PROMPT "&Buscar" OF ::oChild SIZE 80,22 PIXEL ;
WHEN (.NOT. ::vazio) ;
ACTION( ::InitSrch() ) CANCEL
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[4] PROMPT "E&xcluir" OF ::oChild SIZE 80,22 PIXEL ;
WHEN (.NOT. ::vazio) ;
ACTION( ::RemoveItem() ) CANCEL
IF tBotoes!=nil .AND. tBotoes > 5
tBotoes-=5
//msginfo("Produzir espaço para os outros "+cValToStr(tBotoes,'99')+" botões")
FOR i:=1 TO tBotoes
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
NEXT
ENDIF
IF (::nBotoes>5)
::BuildMoreButtons() //??? VERIFIQUE SE ESTA CORRETO
ENDIF
// mantendo o botão de sair à direita
IF coluna>=::nColunas
x+=42
ELSE
y:=((::xBrw:nLeft + ::xBrw:nWidth)-spc)
ENDIF
// Voce colocou CANCEL em todos, menos no que deveria, que e o de SAIDA.
@ x, y BUTTON ::aBotoes[::nBotoes] PROMPT "&Sair" OF ::oChild SIZE 80,22 ;
PIXEL ;
ACTION( ::oChild:end() ) CANCEL
x+=42
IF ::oChild:nHeight < x
x+=20
::oChild:nHeight(x)
ENDIF
return nil
//aqui é a tela de busca
METHOD InitSrch() CLASS CadFuncionarios
LOCAL ametOrd := {"Nome", "Código", "Pis"} // Incluido por Gilberto
SELE 1
DEFINE DIALOG dlgBusca RESOURCE "#1244" TITLE "Buscar funcionário"
::campo := "Nome"
::valor := ""
REDEFINE SAY ID 4001
//REDEFINE COMBOBOX ::gcampo VAR ::campo ITEMS {"Código", "Nome", "PIS"} ID 4005 VALID ::setIndex2() OF dlgBusca
REDEFINE GET ::gvalor VAR ::valor ID 4003 OF dlgBusca UPDATE //??
REDEFINE COMBOBOX ::gcampo VAR ::campo ITEMS ametOrd ID 4005 ;
VALID( ::setIndex2() ) OF dlgBusca // ESSE VALID RETORNA .T. ou .F.??
REDEFINE BUTTON ID IDOK OF dlgBusca ;
ACTION ( ( ::Srch() ), dlgBusca:End() ) CANCEL // MUDE ASSIM
REDEFINE BUTTON ID IDCANCEL OF dlgBusca ACTION( dlgBusca:End() ) CANCEL
ordsetfocus(2) // 2 /// ???? O QUE E ISSO?? FAZ O QUE VEJA SE NAO TIRA O FOCO DO DIALOGO
::gvalor:setfocus()
ACTIVATE DIALOG dlgBusca CENTERED //ON INIT // gilberto em outubro / 2013)
RETURN NIL //???? nil MESMO?
23 Dez 2015 15:23
23 Dez 2015 15:33
03 Mai 2016 11:48
//----------------------------------------------------------------------------//
METHOD BuildMoreButtons() CLASS CadFuncionarios
LOCAL i,x,y,spc,coluna:=1
x := ::xBrw:nTop + ::xBrw:nHeight + 20
y := ::xBrw:nLeft + 10
spc := ((::xBrw:nWidth - 10)/::nColunas)
// espaçamento mínimo é 84
DO WHILE (spc < 84)
::nColunas-=1
spc := ((::xBrw:nWidth - 10)/::nColunas)
ENDDO
FOR i:=1 TO 4
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
NEXT
@ x, y BUTTON ::aBotoes[5] PROMPT "&Rescisão" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION ::Rescisao()
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[6] PROMPT "&Ferias" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION CadFuncFerias():New(::oChild)
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[7] PROMPT "Fi&cha" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION IF ( MsgSimNao("Imprime a Ficha?", " Confirmação"), RelFichaFuncionario():New(), )
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[8] PROMPT "Afas&tamento" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION CadFuncAfast():New(::oChild)
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[9] PROMPT "&Modalidade" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION ::Modalidade()
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[10] PROMPT "&Outros Vínculos" OF ::oChild SIZE 80,22 PIXEL WHEN .NOT. ::vazio ACTION ::OUTVINC()
y+=spc
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
@ x, y BUTTON ::aBotoes[11] PROMPT "&Visualizar Ativos" OF ::oChild SIZE 90,22 PIXEL ACTION ::filtrar()
y+=spc+15
coluna+=1
IF coluna>::nColunas
y:=::xBrw:nLeft + 10
coluna:=1
x+=42
ENDIF
::xBrw:SetFocus()
return
//-------------------------------------------------------------------------------------------------
METHOD Rescisao() CLASS CadFuncionarios
local resDlg, btok, aCodSaq, gRESVERBAdesc1, cRESVERBAdesc1, gRESVERBAdesc2,;
cRESVERBAdesc2, gRESVERBAdesc3, cRESVERBAdesc3
::bancos:Abrir(14)
::InicializaRescisao()
DEFINE DIALOG resDlg RESOURCE "#1035" OF ::oChild TITLE "Rescisão"
REDEFINE SAY ID 4007 OF resDlg
REDEFINE SAY ID 4004 OF resDlg
REDEFINE SAY ID 4006 OF resDlg
REDEFINE SAY ID 4010 OF resDlg
REDEFINE SAY ID 4012 OF resDlg
REDEFINE SAY ID 4014 OF resDlg
REDEFINE SAY ID 4016 OF resDlg
REDEFINE SAY ID 4027 OF resDlg
REDEFINE GET ::gDEMISSAO VAR ::cDEMISSAO ID 4008 OF resDlg;
VALID EMPTY(::cDEMISSAO) .OR. ::cDEMISSAO>=::cADMISSAO
REDEFINE GET ::gRESVERBA VAR ::cRESVERBA ID 4003 OF resDlg;
pict "999999" VALID grupok("1", ::cRESVERBA, @cRESVERBAdesc1, @gRESVERBAdesc1)
REDEFINE BUTTONBMP ::bGetVerba ID 4019 OF resDlg BITMAP "#7002";
ACTION (JSFltpr():New(resDlg,::gRESVERBA), IF(::gRESVERBA:lValid(), ::gRESCODSAC:setFocus(), ::gRESVERBA:setFocus()))
REDEFINE SAY gRESVERBAdesc1 VAR cRESVERBAdesc1 ID 4002 OF resDlg
grupok("1", ::cRESVERBA, @cRESVERBAdesc1, @gRESVERBAdesc1)
REDEFINE GET ::gCODMOV VAR ::cCODMOV ID 4005 OF resDlg;
VALID ::checkCODMOV()
REDEFINE BUTTONBMP ::bGetCODMOV ID 4020 OF resDlg BITMAP "#7002";
ACTION (JSFltbmv():New(resDlg, "Movimento SEFIP", ::gCODMOV), IF(::gCODMOV:lValid(), ::gRSCDESL:setFocus(), ::gCODMOV:setFocus()))
REDEFINE SAY ::gDescCODMOV VAR ::cDescCODMOV ID 4024 OF resDlg
RSCDESLArray = RSCDESLGetArray()
REDEFINE GET ::gRSCDESL VAR ::cRSCDESL ID 4009 OF resDlg;
PICT "99" VALID ::chkRSCDESL()
REDEFINE BUTTONBMP ::bGetRSCDESL ID 4021 OF resDlg BITMAP "#7002";
ACTION (JanSeletor():New(resDlg, ::gRSCDESL, 760, 300, "Informações do Desligamento", RSCDESLArray), if(::gRSCDESL:lValid(),;
::gcoddemcag:SetFocus(),::gRSCDESL:SetFocus()) )
REDEFINE SAY ::gDescRSCDESL VAR ::cDescRSCDESL ID 4025 OF resDlg
REDEFINE GET ::gcoddemcag VAR ::ccoddemcag ID 4011 OF resDlg;
PICT "99" VALID ( ::checkCoddemcag() .and. ::DtCagedDem() )
REDEFINE BUTTONBMP ::bGetCAGED ID 4022 OF resDlg BITMAP "#7002";
ACTION ( demiscagok(@resDlg, @::gcoddemcag), if(::gcoddemcag:lValid(),;
::grepoevaga:SetFocus(),::gcoddemcag:SetFocus()) )
REDEFINE SAY ::gdesccoddemcag VAR ::cdesccoddemcag ID 4026 OF resDlg
REDEFINE GET ::gRESCODSAC VAR ::cRESCODSAC ID 4013 OF resDlg;
PICT "99" VALID ::ChkCodSaq()
aCodSaq:= {"01 - Dispensa sem justa causa",;
"02 - Dispensa com culpa recíproca ou força maior",;
"03 - Extinção da empresa",;
"04 - Extinção do contrato de trabalho p/prazo determinado",;
"05 - Aposentadoria",;
"06 - Suspensão do trabalho avulso por período igual ou superior a 90 dias",;
"07 - Afastamento de trabalhador avulso portuário",;
"10 - Rescisão com indenização (não optante)",;
"23 - Falecimento do titular da conta",;
"26 - Rescisão s/ pgto. de indenização ou fim de prazo prescricional (Reclamação trabalhista)",;
"27 - Pagamento do depósito de que trata o art. 73 do regulamento do FGTS",;
"50 - Complemento de atualização monetária inferior a R$100,00",;
"70 - Idade igual ou superior a setenta anos",;
"80 - Portador de SIDA/AIDS",;
"81 - Neoplasia Maligna",;
"86 - Sem crédito de depósito por 3 anos, com afastamento a partir de 14/07/90",;
"87 - Sem crédito de depósito por 3 anos, com afastamento até 13/07/90",;
"88 - Determinação judicial"}
REDEFINE BUTTONBMP bCodsaq ID 4001 OF resDlg BITMAP "#7002" ;
ACTION (JanSeletor():New(resDlg,::gRESCODSAC,590, 350,"Saques FGTS",aCodSaq), IF(::gRESCODSAC:lValid(), ::gCODMOV:setFocus(), ::gRESCODSAC:setFocus()))
REDEFINE SAY ::gDescRESCODSAC VAR ::cDescRESCODSAC ID 4023 OF resDlg
REDEFINE GET ::gMULTAFGTS VAR ::cMULTAFGTS ID 4015 OF resDlg;
PICT "@EZ 99,999.99" VALID ::cMULTAFGTS>=0
REDEFINE GET ::gDtCagedD VAR ::cDtCagedD ID 4028 OF resDlg pict "99/99/9999" when(::ccoddemcag = "80") valid(::DtCagedDem()) //Data Caged Demissao
REDEFINE CHECKBOX ::grepoevaga VAR ::crepoevaga ID 4017 OF resDlg
REDEFINE BUTTON btok ID IDOK OF resDlg ACTION ::SalvarRescisao(resDlg) WHEN(::ValidCagedDem())
REDEFINE BUTTON ID 4018 OF resDlg ACTION ::RestauraRescisao()
REDEFINE BUTTON ID IDCANCEL ACTION ::oDlg:End() CANCEL
::gCODMOV:lValid()
::gRSCDESL:lValid()
::gcoddemcag:lValid()
::gRESCODSAC:lValid()
::DtCagedDem()
resDlg:bLostFocus := {|| ::bancos:Fechar(14)}
ACTIVATE DIALOG resDlg CENTERED
return
03 Mai 2016 12:38
::gCODMOV:lValid()
::gRSCDESL:lValid()
::gcoddemcag:lValid()
::gRESCODSAC:lValid()
::DtCagedDem()
resDlg:bLostFocus := {|| ::bancos:Fechar(14)}
ACTIVATE DIALOG resDlg CENTERED
03 Mai 2016 15:57
METHOD lValid() CLASS TComboBox
local lRet := .t.
if ValType( ::bValid ) == "B"
lRet = Eval( ::bValid, ::oGet, Self )
endif
return lRet
//-------------------------------------------------------------------
METHOD DtCagedDem() CLASS CadFuncionarios
//desabilita ou habilita caso condição seja atendida
::gcoddemcag:Refresh()
IF ::ccoddemcag = "80" .and. !EMPTY(::cDtCagedD)
::cDEMISSAO:= ::cDtCagedD
::gDEMISSAO:Refresh()
::gMULTAFGTS:Disable()
::gRESVERBA:Disable()
::gRESCODSAC:Disable()
::bGetVerba:Disable()
bCodsaq:Disable()
ELSE
::gMULTAFGTS:Enable()
::gRESVERBA:Enable()
::gRESCODSAC:Enable()
::bGetVerba:Enable()
bCodsaq:Enable()
ENDIF
RETURN .T.
resDlg:bLostFocus := {|| ::bancos:Fechar(14)}
03 Mai 2016 16:56
04 Mai 2016 09:37