//---------------------------------------------------------------------------
#include <vcl.h>
#include <stdio.h>
#pragma hdrstop

#include "InfoProveedores.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TInfoProv *InfoProv;
//---------------------------------------------------------------------------
__fastcall TInfoProv::TInfoProv(TComponent* Owner)
    : TForm(Owner)
{
 TbProv->Active = true;
 TbProv2Act->Active = true;
 TbAct->Active = true;
}
//---------------------------------------------------------------------------
void __fastcall TInfoProv::DsProvDataChange(TObject *Sender, TField *Field)
{
  char BarraEstado[80];

  // Indicador de FichaActual / Num.Fichas
  if ( DsProv -> DataSet -> RecNo > 0 )
   sprintf( BarraEstado, "%d / %d", DsProv -> DataSet -> RecNo, DsProv -> DataSet -> RecordCount );
  else
   sprintf( BarraEstado, "¿Nuevo? / %d", DsProv -> DataSet -> RecordCount );

  StatusBar1->Panels->Items[2]->Text = BarraEstado;
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::RB1Click(TObject *Sender)
{
 Edit1->SetFocus();
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::RB2Click(TObject *Sender)
{
 Edit2->SetFocus();
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::RB3Click(TObject *Sender)
{
 Edit3->SetFocus();
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::RB4Click(TObject *Sender)
{
 Edit4->SetFocus();
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::RB5Click(TObject *Sender)
{
 Edit5->SetFocus();
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::Edit1Enter(TObject *Sender)
{
 RB1->Checked = true;
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::Edit2Enter(TObject *Sender)
{
 RB2->Checked = true;
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::Edit3Enter(TObject *Sender)
{
 RB3->Checked = true;    
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::Edit4Enter(TObject *Sender)
{
 RB4->Checked = true;    
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::Edit5Enter(TObject *Sender)
{
 RB5->Checked = true;    
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::SpeedButton1Click(TObject *Sender)
{
 Close();
}
//---------------------------------------------------------------------------


void __fastcall TInfoProv::Edit1KeyPress(TObject *Sender, char &Key)
{
  Edit2->Text = "";
  Edit3->Text = "";
  Edit4->Text = "";
  Edit5->Text = "";
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::Edit2KeyPress(TObject *Sender, char &Key)
{
  Edit1->Text = "";
  Edit3->Text = "";
  Edit4->Text = "";
  Edit5->Text = "";
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::Edit3KeyPress(TObject *Sender, char &Key)
{
  Edit1->Text = "";
  Edit2->Text = "";
  Edit4->Text = "";
  Edit5->Text = "";
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::Edit4KeyPress(TObject *Sender, char &Key)
{
  Edit1->Text = "";
  Edit2->Text = "";
  Edit3->Text = "";
  Edit5->Text = "";
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::Edit5KeyPress(TObject *Sender, char &Key)
{
  Edit1->Text = "";
  Edit2->Text = "";
  Edit3->Text = "";
  Edit4->Text = "";
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::TabSheet2Enter(TObject *Sender)
{
 PageControl2->ActivePage = TabSheet4;
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::SpeedButton2Click(TObject *Sender)
{

  // Si no tiene ya esta actividad...
  if ( ! ( TbProv2Act -> Locate( "ID_ACTIVIDAD", TbAct->FieldByName( "ID_ACTIVIDAD" )->Value, TLocateOptions() << loCaseInsensitive ) ) )
      // Añadimos esta actividad al proveedor actualmente señalado...
      TbProv2Act -> InsertRecord( ARRAYOFCONST(
                  (
                   TbProv->FieldByName( "ID_PROVEEDOR" )->Value,
                   TbAct->FieldByName( "ID_ACTIVIDAD" )->Value
                  ) ) );
  else
       ShowMessage( "Este proveedor ya tiene asignada, la actividad que intenta agregar" );

}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::SpeedButton3Click(TObject *Sender)
{
 AnsiString MSG;

 MSG = "Seguro que desea eliminar la actividad de: \n"+TbProv2Act->FieldByName("NombreActividad")->AsString+"\n del proveedor actual: \n" + TbProv->FieldByName( "Nombre" )->AsString;
    switch( MessageDlg( MSG, mtWarning, TMsgDlgButtons() << mbNo << mbYes, 0 ) )
    {
     case mrYes:
        TbProv2Act->Delete();
        break;
     default:
        break;
    }
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::RefiltrarDatos(TObject *Sender)
{
  AnsiString Aqui, BuscarEsto;


  // SI no hay actividades seleccionadas
  // Tenemos que dejar las propiedades MAESTRO-DETALLE:
  //
  //                TbProv2Act ---> TbProv
  //




  // // Filter contendrá el 'multi-filtro' (Esto puede parecer un poco tosco), pero realmente funciona... ).


  //  ! NOTA: NO LLAMAR A ESTA FUNCION DESDE NINGUN SITIO SIN ASEGURARSE
  //  !       QUE EL OBJETO CONTIENE UN EDIT VALIDO...
  //  !

  if ( RB1->Checked ) Aqui = "ID_PROVEEDOR";
  if ( RB2->Checked ) Aqui = "Nombre";
  if ( RB3->Checked ) Aqui = "CIF";
  if ( RB4->Checked ) Aqui = "Direccion";
  if ( RB5->Checked ) Aqui = "CP";

  // Obtenemos el valor del campo concreto que esta señalado...
  BuscarEsto = ((TEdit *) Sender )->Text;

  { // Some non-indexed field.
      AnsiString BuscarCota;
      BuscarCota = BuscarEsto + "Z";

       TbProv->FilterOptions =  TbBusquedas->FilterOptions << foCaseInsensitive;

       TbProv->Filter = "( ([" + Aqui + "] >= '" + BuscarEsto + "') AND [" + Aqui + "] < '" + BuscarCota + "')";
       TbProv->Filtered = true;
  }

   TbBusquedas->Refresh();
}
//---------------------------------------------------------------------------

void __fastcall TInfoProv::SpeedButton4Click(TObject *Sender)
{
 if ( TbProv->Filtered )
 {
   SpeedButton4->Caption = "Pulse aqui para ACTIVAR FILTRO";
   TbProv->Filtered = false;

   TbProv2Act -> Active = false;
   TbProv2Act -> MasterSource = DsProv;
   TbProv2Act -> IndexFieldName = "ID_PROVEEDOR";
   TbProv2Act -> MasterFields = "ID_PROVEEDOR";
   TbProv2Act -> MasterSource = DsProv;


 } else {
   SpeedButton4->Caption = "Pulse aqui para DEJAR de FILTRAR"
   TbProv->Filtered = true;
 }
}
//---------------------------------------------------------------------------