331 lines
13 KiB
C++
331 lines
13 KiB
C++
//---------------------------------------------------------------------------
|
|
#include <vcl.h>
|
|
#include <io.h>
|
|
#pragma hdrstop
|
|
|
|
#include "Herm.h"
|
|
//---------------------------------------------------------------------------
|
|
#pragma package(smart_init)
|
|
#pragma resource "*.dfm"
|
|
TGestionHnos *GestionHnos;
|
|
//---------------------------------------------------------------------------
|
|
__fastcall TGestionHnos::TGestionHnos(TComponent* Owner)
|
|
: TForm(Owner)
|
|
{
|
|
Width = 640; Height = 480;
|
|
// SelIndex->ItemIndex = 0;
|
|
|
|
TbInsignias->Active = true;
|
|
TbInsignias->Filter = "CtoVirgen = False";
|
|
TbInsignias->Filtered = true;
|
|
|
|
TbBusqHnos->ReadOnly = true;
|
|
TbBusqHnos->Active = true;
|
|
|
|
TbCuotaFam->Active = true;
|
|
|
|
TbHermUPDATING = false;
|
|
TbHerm->Active = true;
|
|
DsHerm->AutoEdit = false;
|
|
|
|
PageControl1->ActivePage = TabSheet1;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TGestionHnos::TbHermBeforeOpen(TDataSet *DataSet)
|
|
{
|
|
if ( access( (TbHerm -> TableName).c_str(), 0 ) != 0 )
|
|
{
|
|
// Usamos la propiedad FielDefs para definir
|
|
// las columnas que contendrá la tabla
|
|
TbHerm -> FieldDefs -> Clear();
|
|
|
|
/********************\
|
|
|* Datos Básicos *|
|
|
\********************/
|
|
TbHerm -> FieldDefs -> Add("idHerm", ftAutoInc, 0, false );
|
|
|
|
|
|
//-------
|
|
TbHerm -> FieldDefs -> Add("Borrado", ftBoolean, 0, false );
|
|
TbHerm -> FieldDefs -> Add("FechaBorrado", ftDate, 0, false );
|
|
//-------
|
|
|
|
TbHerm -> FieldDefs -> Add("HnoHna", ftBoolean, 0, false );
|
|
TbHerm -> FieldDefs -> Add("NumHno", ftInteger, 0, false );
|
|
|
|
TbHerm -> FieldDefs -> Add("Nombre", ftString, 15, false );
|
|
TbHerm -> FieldDefs -> Add("Apellido1", ftString, 15, false );
|
|
TbHerm -> FieldDefs -> Add("Apellido2", ftString, 15, false );
|
|
TbHerm -> FieldDefs -> Add("DNI", ftString, 15, false );
|
|
|
|
TbHerm -> FieldDefs -> Add("Direccion", ftString, 40, false );
|
|
TbHerm -> FieldDefs -> Add("Num", ftString, 3, false );
|
|
TbHerm -> FieldDefs -> Add("Piso", ftString, 3, false );
|
|
TbHerm -> FieldDefs -> Add("CodPostal", ftInteger, 0, false );
|
|
TbHerm -> FieldDefs -> Add("Poblacion", ftString, 15, false );
|
|
TbHerm -> FieldDefs -> Add("Provincia", ftString, 15, false );
|
|
TbHerm -> FieldDefs -> Add("Telefono1", ftString, 15, false );
|
|
TbHerm -> FieldDefs -> Add("Telefono2", ftString, 15, false );
|
|
TbHerm -> FieldDefs -> Add("e-mail", ftString, 30, false );
|
|
TbHerm -> FieldDefs -> Add("FechaNacimiento", ftDate, 0, false );
|
|
TbHerm -> FieldDefs -> Add("Antiguedad", ftDate, 0, false );
|
|
|
|
TbHerm -> FieldDefs -> Add("idInsignia", ftInteger, 0, false );
|
|
TbHerm -> FieldDefs -> Add("NumTunica", ftInteger, 0, false );
|
|
|
|
TbHerm -> FieldDefs -> Add("Comentario", ftMemo, 256, false );
|
|
|
|
TbHerm -> FieldDefs -> Add("idHermCF", ftInteger, 0, false );
|
|
TbHerm -> FieldDefs -> Add("CuotaFamiliar", ftBoolean, 0, false );
|
|
TbHerm -> FieldDefs -> Add("RecibeNotificaciones", ftBoolean, 0, false );
|
|
TbHerm -> FieldDefs -> Add("PuedeVotar", ftBoolean, 0, false );
|
|
TbHerm -> FieldDefs -> Add("TunicaHermandad", ftBoolean, 0, false );
|
|
TbHerm -> FieldDefs -> Add("RealizoPenitencia", ftBoolean, 0, false );
|
|
TbHerm -> FieldDefs -> Add("CristoVirgen", ftBoolean, 0, false );
|
|
TbHerm -> FieldDefs -> Add("Reserva", ftBoolean, 0, false );
|
|
TbHerm -> FieldDefs -> Add("FA2", ftBoolean, 0, false );
|
|
|
|
TbHerm -> IndexDefs-> Clear();
|
|
|
|
TIndexOptions MyIndexOptions;
|
|
MyIndexOptions << ixPrimary << ixUnique;
|
|
TbHerm->IndexDefs->Add("Primary", "idHerm", MyIndexOptions);
|
|
TbHerm->IndexDefs->Add("NumHno", "NumHno", TIndexOptions() << ixCaseInsensitive << ixUnique );
|
|
TbHerm->IndexDefs->Add("DNI", "DNI", TIndexOptions() << ixCaseInsensitive);
|
|
TbHerm->IndexDefs->Add("Nombre", "Nombre;Apellido1;Apellido2", TIndexOptions() << ixCaseInsensitive);
|
|
TbHerm->IndexDefs->Add("IdxDireccion", "Direccion;Num;Piso", TIndexOptions() << ixCaseInsensitive );
|
|
TbHerm->IndexDefs->Add("Apellido1", "Apellido1;Apellido2;Nombre", TIndexOptions() << ixCaseInsensitive);
|
|
TbHerm->IndexDefs->Add("Apellido2", "Apellido2;Apellido1;Nombre", TIndexOptions() << ixCaseInsensitive);
|
|
TbHerm->IndexDefs->Add("Telefono1", "Telefono1", TIndexOptions() << ixCaseInsensitive);
|
|
TbHerm->IndexDefs->Add("Telefono2", "Telefono2", TIndexOptions() << ixCaseInsensitive);
|
|
|
|
// Creamos la base...
|
|
TbHerm -> CreateTable();
|
|
}
|
|
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TGestionHnos::TbInsigniasCtoBeforeOpen(TDataSet *DataSet)
|
|
{
|
|
if ( access( (TbInsignias -> TableName).c_str(), 0 ) != 0 )
|
|
{
|
|
// Usamos la propiedad FielDefs para definir
|
|
// las columnas que contendrá la tabla
|
|
TbInsignias -> FieldDefs -> Clear();
|
|
|
|
/********************\
|
|
|* Datos Básicos *|
|
|
\********************/
|
|
TbInsignias -> FieldDefs -> Add("idInsignia", ftAutoInc, 0, false );
|
|
TbInsignias -> FieldDefs -> Add("CtoVirgen", ftBoolean, 0, false );
|
|
TbInsignias -> FieldDefs -> Add("Insignia", ftString, 30, false );
|
|
TbInsignias -> FieldDefs -> Add("Suplemento", ftCurrency, 0, false );
|
|
|
|
TbInsignias -> IndexDefs-> Clear();
|
|
|
|
|
|
// Creamos la base...
|
|
TbInsignias -> CreateTable();
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TGestionHnos::SpeedButton1Click(TObject *Sender)
|
|
{
|
|
Close();
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TGestionHnos::TbHermCalcFields(TDataSet *DataSet)
|
|
{
|
|
TbHerm->FieldByName("Apellidos")->AsString = TbHerm->FieldByName("Apellido1")->AsString + " " + TbHerm->FieldByName("Apellido2")->AsString;
|
|
TbHerm->FieldByName("Direccion_Compl")->AsString = TbHerm->FieldByName("Direccion")->AsString +
|
|
((TbHerm->FieldByName("Num")->AsString).IsEmpty() ? AnsiString(", ") : AnsiString(", nº"+TbHerm->FieldByName("Num")->AsString)) +
|
|
((TbHerm->FieldByName("Num")->AsString).IsEmpty() ? AnsiString(".") : AnsiString(", Piso "+TbHerm->FieldByName("Piso")->AsString)) ;
|
|
if ( TbHerm->FieldByName("CuotaFamiliar")->AsBoolean &&
|
|
TbBusqHnos->Locate( "idHerm",
|
|
TbHerm->FieldByName("idHermCF")->AsInteger,
|
|
TLocateOptions() << loCaseInsensitive << loPartialKey ) )
|
|
TbHerm->FieldByName("DatosTitularCuotaFam")->AsString = TbBusqHnos->FieldByName("NumHno")->AsString + ", " +
|
|
TbBusqHnos->FieldByName("Nombre")->AsString + " " +
|
|
TbBusqHnos->FieldByName("Apellido1")->AsString + " " +
|
|
TbBusqHnos->FieldByName("Apellido2")->AsString;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TGestionHnos::SelIndexChange(TObject *Sender)
|
|
{
|
|
TbBusqHnos->IndexFieldNames = SelIndex->Items->Strings[SelIndex->ItemIndex];
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TGestionHnos::BuscadorKeyUp(TObject *Sender, WORD &Key,
|
|
TShiftState Shift)
|
|
{
|
|
if ( SelIndex->ItemIndex != -1 )
|
|
TbBusqHnos->Locate( SelIndex->Items->Strings[SelIndex->ItemIndex], Buscador->Text, TLocateOptions() << loCaseInsensitive << loPartialKey );
|
|
else
|
|
ShowMessage( "Seleccione un CAMPO, por el que BUSCAR" );
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TGestionHnos::DsHermDataChange(TObject *Sender, TField *Field)
|
|
{
|
|
if ( TbHermUPDATING ) return;
|
|
|
|
|
|
if ( TbHermBorrado->AsBoolean )
|
|
{
|
|
TabSheet2->Font->Style = TFontStyles()<< fsStrikeOut;
|
|
UnLockClick(0);
|
|
} else
|
|
TabSheet2->Font->Style = TFontStyles();
|
|
|
|
TbHermUPDATING = true;
|
|
CtoVirgen->ItemIndex = TbHerm->FieldByName("CristoVirgen")->AsBoolean;
|
|
|
|
TbInsignias->Filter = "CtoVirgen = " + (CtoVirgen->ItemIndex ? AnsiString("True") : AnsiString("False"));
|
|
TbInsignias->Filtered = true;
|
|
|
|
NTunica->Visible = TbHerm->FieldByName("TunicaHermandad")->AsBoolean;
|
|
|
|
if ( TbHerm->FieldByName("CuotaFamiliar")->AsBoolean )
|
|
{
|
|
DatosTitularCF->Visible = true;
|
|
if ( ! TbHerm->FieldByName("idHermCF")->AsString.IsEmpty() )
|
|
{
|
|
BeneficiariosCF->Enabled = true;
|
|
BeneficiariosCF->Visible = true;
|
|
TbCuotaFam->Filter = "idHermCF = " + TbHerm->FieldByName("idHermCF")->AsString;
|
|
TbCuotaFam->Filtered = true;
|
|
} else {
|
|
BeneficiariosCF->Enabled = false;
|
|
BeneficiariosCF->Visible = false;
|
|
}
|
|
} else {
|
|
BeneficiariosCF->Enabled = false;
|
|
BeneficiariosCF->Visible = false;
|
|
DatosTitularCF->Visible = false;
|
|
}
|
|
TbHermUPDATING = false;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TGestionHnos::CtoVirgenClick(TObject *Sender)
|
|
{
|
|
if ( DsHerm->AutoEdit && !TbHermUPDATING)
|
|
{
|
|
TbHermUPDATING = true;
|
|
|
|
TbHerm->Edit();
|
|
TbHerm->FieldByName("CristoVirgen")->AsBoolean = CtoVirgen->ItemIndex;
|
|
TbHerm->Post();
|
|
|
|
TbInsignias->Filter = "CtoVirgen = " + (CtoVirgen->ItemIndex ? AnsiString("True") : AnsiString("False"));
|
|
TbInsignias->Filtered = true;
|
|
|
|
TbHermUPDATING = false;
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TGestionHnos::LockClick(TObject *Sender)
|
|
{
|
|
if ( TbHermBorrado->AsBoolean ) return;
|
|
|
|
DsHerm->AutoEdit = true;
|
|
Unlock->Visible = true;
|
|
CtoVirgen->Enabled = true;
|
|
DBLookupComboBox1->Enabled = true;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TGestionHnos::UnLockClick(TObject *Sender)
|
|
{
|
|
if ( TbHerm->State == dsEdit || TbHerm->State == dsInsert )
|
|
TbHerm->Post();
|
|
DsHerm->AutoEdit = false;
|
|
Unlock->Visible = false;
|
|
CtoVirgen->Enabled = false;
|
|
DBLookupComboBox1->Enabled = false;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TGestionHnos::DBGrid1DblClick(TObject *Sender)
|
|
{
|
|
if ( AsignandoTitular->Visible )
|
|
AsignandoTitularClick( 0 );
|
|
else
|
|
TbHerm->GotoCurrent( TbBusqHnos );
|
|
|
|
PageControl1->ActivePage = TabSheet2;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TGestionHnos::SpeedButton3Click(TObject *Sender)
|
|
{
|
|
AsignandoTitular->Visible = true;
|
|
PageControl1->ActivePage = TabSheet1;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TGestionHnos::AsignandoTitularClick(TObject *Sender)
|
|
{
|
|
AsignandoTitular->Visible = false;
|
|
|
|
if ( DsHerm->AutoEdit && !TbHermUPDATING)
|
|
{
|
|
int idHerm = TbBusqHnos->FieldByName("idHerm")->AsInteger;
|
|
TbHerm->Edit();
|
|
TbHerm->FieldByName("idHermCF")->AsInteger = idHerm;
|
|
TbHerm->Post();
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TGestionHnos::TbHermNewRecord(TDataSet *DataSet)
|
|
{
|
|
TbHerm->FieldByName("Antiguedad")->AsDateTime = TDateTime::CurrentDate();
|
|
TbHerm->FieldByName("NumHno")->AsInteger = (UltimoHno + 1);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TGestionHnos::PageControl1Change(TObject *Sender)
|
|
{
|
|
AsignandoTitular->Visible = false;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TGestionHnos::TbBusqHnosCalcFields(TDataSet *DataSet)
|
|
{
|
|
TbBusqHnos->FieldByName("Apellidos")->AsString = TbBusqHnos->FieldByName("Apellido1")->AsString + " " + TbBusqHnos->FieldByName("Apellido2")->AsString;
|
|
TbBusqHnos->FieldByName("Direccion_Compl")->AsString = TbBusqHnos->FieldByName("Direccion")->AsString +
|
|
((TbBusqHnos->FieldByName("Num")->AsString).IsEmpty() ? AnsiString(", ") : AnsiString(", nº"+TbBusqHnos->FieldByName("Num")->AsString)) +
|
|
((TbBusqHnos->FieldByName("Num")->AsString).IsEmpty() ? AnsiString(".") : AnsiString(", Piso "+TbBusqHnos->FieldByName("Piso")->AsString)) ;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TGestionHnos::TbHermBeforeDelete(TDataSet *DataSet)
|
|
{
|
|
if (MessageDlg("¿ Borrar al Hermano: " + TbHermNumHno->AsString +" ?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0) == mrYes)
|
|
{
|
|
TbHerm->Edit();
|
|
TbHerm->FieldByName("Borrado")->AsBoolean = true;
|
|
TbHerm->Post();
|
|
|
|
UnLockClick(0);
|
|
}
|
|
Abort();
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
|
void __fastcall TGestionHnos::TbHermBeforeInsert(TDataSet *DataSet)
|
|
{
|
|
TbHerm->Last();
|
|
UltimoHno = TbHerm->FieldByName("NumHno")->AsInteger;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TGestionHnos::DBNavigator1Click(TObject *Sender,
|
|
TNavigateBtn Button)
|
|
{
|
|
PageControl1->ActivePage = TabSheet2;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|