0% found this document useful (0 votes)
3 views5 pages

AcertoCAGED

Uploaded by

Edmundo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views5 pages

AcertoCAGED

Uploaded by

Edmundo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include "AcertoCAGED.h"
#include "Functions.h"
#include "FunctionsConsulta.h"
#include "DMCadastro.h"
#include "DMConsulta.h"
#include "DMFolha.h"
#include "DMFuncionario.h"
#include "DMReciboPagamento.h"
#include "Parametros.h"
#include "LEMan.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "LEditInteger"
#pragma link "LMaskEdit"
#pragma link "LDBGrid"
#pragma link "LProgressBar"
#pragma link "LCheckBox"
#pragma link "LClientDataSet"
#pragma link "LDataSetProvider"
#pragma link "LSQLDataSet"
#pragma resource "*.dfm"
TFmAcertoCAGED *FmAcertoCAGED;
//---------------------------------------------------------------------------
__fastcall TFmAcertoCAGED::TFmAcertoCAGED(TComponent* Owner): TForm(Owner)
{
EditEmpresa->Text = DM->EstabelecimentoCodigo->Text;
LbCompetencia->Caption = Competencia.NomeMesAno;

/*
unsigned short parMes = Competencia.Mes;
unsigned short parAno = Competencia.Ano;

::IncrementaMes( parMes, parAno );

// AnoMes->Text = ::StrZero( parAno, 4 ) + ::StrZero( parMes, 2 );


*/

Edit->Text = DM->DirectoryCAGED;
}
//---------------------------------------------------------------------------
void __fastcall TFmAcertoCAGED::EditEmpresaDblClick(TObject *Sender)
{
F1Empresa(EditEmpresa);
}
//---------------------------------------------------------------------------
void __fastcall TFmAcertoCAGED::EditEmpresaExit(TObject *Sender)
{
if( ! DM->Estabelecimento->ChkCod( EditEmpresa->AsInteger ) )
{
EditEmpresa->SetFocus();
return;
}
}
//---------------------------------------------------------------------------
void __fastcall TFmAcertoCAGED::PnEmpresaExit(TObject *Sender)
{
Fun->OnNewRecord = NULL;

//--------- Seleciona os funcion�rios admitidos e demitidos


Fun->Close();
SQLFun->CommandText = "SELECT * FROM GETCAGED( :DTINI, :DTFIM )";
SQLFun->ParamByName("DTINI")->AsDate = Competencia.DtInicio;
SQLFun->ParamByName("DTFIM")->AsDate = Competencia.DtFim;
Fun->Open();

//--------- Seleciona Total de Funcion�rio


Caged->Close();
SQLCaged->CommandText = "SELECT * FROM GETTOTALCAGED( :DTINI, :DTFIM )";
SQLCaged->ParamByName("DTINI")->AsDate = Competencia.DtInicio;
SQLCaged->ParamByName("DTFIM")->AsDate = Competencia.DtFim;
Caged->Open();

::SetRelation( Fun, "ESTABELECIMENTO", DM->DSEstabelecimento, "CODIGO" );


::SetRelation( Caged, "ESTABELECIMENTO", DM->DSEstabelecimento, "CODIGO" );

Fun->OnNewRecord = FunNewRecord;
}
//---------------------------------------------------------------------------
void __fastcall TFmAcertoCAGED::BtnProcessarClick(TObject *Sender)
{
Edit->Text = DM->DirectoryCAGED;

String dirOLD = GetCurrentDir();


String fileCAGED = Edit->Text + "A" + Competencia.CAno + ".M" +
Competencia.CMes;
LFile* file = new LFile( fileCAGED );

try
{
Screen->Cursor = crHourGlass;

String ccc;

double remuneracao;
TDate dtInicio, dtFinal;

int sequencial = 0;
int tRegistroB = 0;
int tRegistroX = 0;

char tipoccc;
char tipoAlteracao;

Edit->Text = fileCAGED;
Edit->SelectAll();
Edit->CopyToClipboard();

file->CreateW();

if( ! file->IsOpen() )
throw Exception("Erro de grava��o do CAGED");

//--------------------- Registro Tipo A Dados do Estabelecimento


Respons�vel pela informa��o
sequencial = 0;
CagedRegistroA( file, Competencia.AnoMes, '1', sequencial );

if( ! ::IsEmpty( DM->EstabelecimentoCCCA->Text ) ) ccc = DM-


>EstabelecimentoCCCA->Text;
else ccc = DM-
>EstabelecimentoCCC->Text;

//--------------------- Identifica��o Empresa


if( ccc.Length() == 14 ) tipoccc = '1';
else if( ccc.Length() == 12 ) tipoccc = '2';
else if( ccc.Length() == 11 ) tipoccc = '3';
//---------------------

CagedRegistroB( file, ccc, tipoccc, sequencial, tRegistroB, ( Caged-


>FieldByName("SALDOINICIO")->AsInteger ) );

//--------------------- Registro Tipo C Dados de movimentacao do


empregado
for( Fun->First(); ! Fun->Eof; Fun->Next() )
{
if( ! FunInclusao->AsInteger && ! FunExclusao->AsInteger )
continue;

remuneracao = 0.;

dtInicio = FunDtAdmissao->AsDateTime;
dtFinal = FunDtRescisao->AsDateTime;

if( ! ::IsEmpty( FunDtTransferencia->AsDateTime )


&& ::IsEmpty( FunDtRescisao->AsDateTime ) )
dtInicio = FunDtTransferencia->AsDateTime;

if( dtInicio < Competencia.DtInicio && ::IsEmpty(dtFinal) )


continue;

if( (dtInicio > Competencia.DtFim ) || ( dtFinal <


Competencia.DtInicio && !::IsEmpty(dtFinal) ) )
continue;

if(FunTipoRemuneracao->Text == "5" ) remuneracao =


FunVLRSALARIOCONTRATUAL->AsFloat * FunHorasMes->AsFloat;
else remuneracao
= FunVLRSALARIOCONTRATUAL->AsFloat;

if( FunExclusao->AsInteger ) tipoAlteracao = '1';


else if( FunInclusao->AsInteger ) tipoAlteracao = '2';

//------ Admiss�o
if( ::Right( ::DDMMAAAA(FunDtAdmissao->AsDateTime), 6 ) ==
Competencia.MesAno )
CagedRegistroX( file, ccc, tipoccc, tipoAlteracao, true,
remuneracao, sequencial, tRegistroX );

//------ Entrada por Transfer�ncia


if( ::Right( ::DDMMAAAA(FunDtTransferencia->AsDateTime), 6 ) ==
Competencia.MesAno )
CagedRegistroX( file, ccc, tipoccc, tipoAlteracao, true,
remuneracao, sequencial, tRegistroX );
//------ Rescis�o
if( ::Right( ::DDMMAAAA(FunDtRescisao->AsDateTime), 6 ) ==
Competencia.MesAno )
CagedRegistroX( file, ccc, tipoccc, tipoAlteracao, false,
remuneracao, sequencial, tRegistroX );
}

file->Seek( 138 );
file->Write( ::StrZero( tRegistroB, 5 ) );
file->Write( ::StrZero( tRegistroX, 5 ) );

file->Close();

if( AcessarACI->Checked && tRegistroX )


AcessarAplicacao("CAGED");
}
__finally
{
delete file;

Screen->Cursor = crDefault;
SetCurrentDir(dirOLD);
}
}
//---------------------------------------------------------------------------
void __fastcall TFmAcertoCAGED::CagedRegistroX( LFile* file, String ccc, char
tipoccc, char tipoAlteracao, bool isAdmissao, double vrSalarioContratual, int&
sequencial, int& tRegistroX )
{
//--------------------- Registro Tipo X Acerto
tRegistroX++;

file->Write( "X");
file->Write( tipoccc );
file->Write( ::Left(ccc, 14) );
file->Write( ::StrZero( ++sequencial, 5 ) );
file->Write( ::Left( FunPISPASEP->Text, 11) );
file->Write( ::Left( FunSexo->Text, 1 ) );
file->Write( ::DDMMAAAA( FunDtNascimento->AsDateTime ) );
file->Write( ::Left( FunGrauInstrucao->Text, 2 ) );
file->Write( ::Space(4) );
file->Write( ::String100(vrSalarioContratual, 8 ) );
file->Write( ::Left(FunHORASSEMANA->Text, 2) );

if( ::IsEmpty( FunDtTransferencia->AsDateTime ) ) file-


>Write( ::DDMMAAAA(FunDtAdmissao->AsDateTime) );
else file-
>Write( ::DDMMAAAA(FunDtTransferencia->AsDateTime) );

if( isAdmissao )
{
file->Write( ::Left(FunAdmissaoCAGED->AsString, 2) );
file->Write( "99" );
}
else
{
file->Write( ::Left(FunRescisaoCAGED->AsString, 2) );
file->Write( ::StrZero( ::Day( FunDtRescisao->AsDateTime ), 2 ) );
}

file->Write( ::Left(FunNome->Text,40) );
file->Write( ::Right(::AllTrim(FunNCTPS->Text), 8) );
file->Write( ::Right(FunSCTPS->Text, 4) );

file->Write( tipoAlteracao );
file->Write( Competencia.MesAno );

file->Write( ::Left(FunCor->Text,1) );

if(FunTipoDeficiencia->Text == "0") file->Write( "2" );


else file->Write( "1" );

file->Write( ::Left(FunCBO2002->Text, 6 ) );

if( FunCategoria->Text == "07" ) file->Write( "1" );


else file->Write( "2" );

file->Write( ::Left(FunUFCTPS->Text, 2) );

if( FunTipoDeficiencia->Text != "0" ) file-


>Write( ::Left(FunTipoDeficiencia->Text, 1 ) );
else file-
>Write( ::Space(1));

file->Write( ::Left(FunCPF->Text,11) );
file->Write( ::Left(FunCEP->Text,8) );

file->Write( ::Space(10));
file->Put(13);
file->Put(10);
//--------------------- Fim Registro Tipo X
}
//---------------------------------------------------------------------------
void __fastcall TFmAcertoCAGED::FunNewRecord(TDataSet *DataSet)
{
Fun->Cancel();
}
//---------------------------------------------------------------------------
void __fastcall TFmAcertoCAGED::FormKeyUp(TObject *Sender, WORD &Key, TShiftState
Shift)
{
if(Key == VK_F8)
{
Fun->Close();
PnEmpresa->Enabled = true;
EditEmpresa->SetFocus();
}
else if (Key == VK_ESCAPE)
{
Close();
}
}
//---------------------------------------------------------------------------

You might also like