unit FCLIENTES;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DBCtrls, StdCtrls, Buttons, ExtCtrls, Menus, Mask, db, DBTables;

type
  TCLIENTES = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    BSalir: TBitBtn;
    Menu: TMainMenu;
    clientes1: TMenuItem;
    BAltas: TButton;
    BConsultas: TButton;
    BBajas: TButton;
    BModificaciones: TButton;
    PDatos: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label6: TLabel;
    Label5: TLabel;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    Label4: TLabel;
    DBEdit6: TDBEdit;
    Label9: TLabel;
    DBEdit7: TDBEdit;
    Label8: TLabel;
    DBEdit8: TDBEdit;
    DSCLIENTES: TDataSource;
    BListado: TButton;
    ALTAS1: TMenuItem;
    BAJAS1: TMenuItem;
    CONSULTAS1: TMenuItem;
    MODIFICACIONES1: TMenuItem;
    LISTADO1: TMenuItem;
    N1: TMenuItem;
    SALIR1: TMenuItem;
    REGISTRO1: TMenuItem;
    PRIMERO1: TMenuItem;
    ANTERIOR1: TMenuItem;
    SIGUIENTE1: TMenuItem;
    ULTIMO1: TMenuItem;
    DBNavigator1: TDBNavigator;
    Label7: TLabel;
    DBEdit10: TDBEdit;
    Label10: TLabel;
    DBEdit9: TDBEdit;
    DBText1: TDBText;
    DBEdit11: TDBEdit;
    Label11: TLabel;
    MAS_FORMAS_PAGO: TTable;
    DSMASFORMASPAGO: TDataSource;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure BAltasClick(Sender: TObject);
    procedure BConsultasClick(Sender: TObject);
    procedure BBajasClick(Sender: TObject);
    procedure BModificacionesClick(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure BSalirClick(Sender: TObject);
    procedure DSCLIENTESStateChange(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BListadoClick(Sender: TObject);
    procedure REGISTRO1Click(Sender: TObject);
    procedure PRIMERO1Click(Sender: TObject);
    procedure ANTERIOR1Click(Sender: TObject);
    procedure SIGUIENTE1Click(Sender: TObject);
    procedure ULTIMO1Click(Sender: TObject);
    procedure clientes1Click(Sender: TObject);
    procedure DBEdit9KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    procedure EstadoBotones;
  public
    { Public declarations }
  end;

var
  CLIENTES: TCLIENTES;

implementation

uses DATOS, FDLGCLIENTE, RUTINAS, DLGFORMASPAGO, LIST_CLIENTES;

{$R *.DFM}

procedure TCLIENTES.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    dm.DBH.closedatasets;
    listado_clientes.free;
end;

procedure TCLIENTES.FormShow(Sender: TObject);
begin
    dlgcliente:=TDlgCliente.create(nil);
    listado_clientes:=TLISTADO_CLIENTES.create(nil);
    dm.clientes.open;
    EstadoBotones;
end;

procedure TCLIENTES.BAltasClick(Sender: TObject);
begin
DM.FORMASPAGO.OPEN;
fdlgformaspago:=TFDLGFORMASPAGO.create(nil);
    dm.clientes.append;
    dbedit1.setfocus;
end;

procedure TCLIENTES.BConsultasClick(Sender: TObject);
var posaux:TBookmark;
begin
    posaux:=dm.clientes.getbookmark;
    if DlgCliente.Showmodal<> mrok then dm.clientes.gotobookmark(posaux);
    dm.clientes.freebookmark(posaux);
end;


procedure TCLIENTES.BBajasClick(Sender: TObject);
begin
    if (dm.clientes.recordcount>0) or (dm.clientes.state in [dsedit,dsinsert]) then dm.clientes.delete;
end;

procedure TCLIENTES.BModificacionesClick(Sender: TObject);
begin
fdlgformaspago:=TFDLGFORMASPAGO.create(nil);
    if dm.clientes.recordcount>0 then
    begin
        dm.clientes.edit;
        dbedit1.setfocus;
    end;
end;

procedure TCLIENTES.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if ActiveControl=nil then
    begin
        Perform(WM_NextDLGCtl, 0, 0);
        key:=#0;
    end;

    if (key = #13) and not (ActiveControl is TButton) then
    begin
        if uppercase(activecontrol.name)='DBEDIT8' then dm.clientes.post;
        Perform(WM_NextDLGCtl, 0, 0);
        key:=#0;
    end;

    if not (activeControl is TDBEdit) then
    begin
       if uppercase(key)='A' then if BAltas.enabled then BAltas.click;
       if uppercase(key)='B' then if BBajas.enabled then BBajas.click;
       if uppercase(key)='C' then if BConsultas.enabled then BConsultas.click;
       if uppercase(key)='M' then if BModificaciones.enabled then BModificaciones.click;
       if uppercase(key)='L' then if BListado.enabled then BListado.click;
    end;

    if (key = #27) and not (dm.clientes.state in [dsedit,dsinsert]) then close;

    if (key = #27) and not (ActiveControl is TButton) then
        if dm.clientes.state in [dsedit,dsinsert] then dm.clientes.post;

end;

procedure TCLIENTES.BSalirClick(Sender: TObject);
begin
    close;
end;

procedure TCLIENTES.DSCLIENTESStateChange(Sender: TObject);
begin
    PDatos.enabled:=dm.clientes.state in [dsedit,dsinsert];
    EstadoBotones;
end;

procedure TCLIENTES.EstadoBotones;
begin
    BAltas.enabled:=dm.clientes.state=dsbrowse;
    BListado.enabled:=dm.clientes.state=dsbrowse;
    BConsultas.enabled:=dm.clientes.state=dsbrowse;
    BModificaciones.enabled:=dm.clientes.state=dsbrowse;
    BBajas.enabled:=dm.clientes.state=dsbrowse;
end;

procedure TCLIENTES.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if key=38 then CambiarControl(Self,false);
    if key=40 then CambiarControl(Self,true);
end;

procedure TCLIENTES.BListadoClick(Sender: TObject);
begin

     listado_clientes.q_datos.open;
     listado_clientes.q_clientes.open;
     listado_clientes.preview;
     listado_clientes.q_datos.close;
     listado_clientes.q_clientes.close;
end;

procedure TCLIENTES.REGISTRO1Click(Sender: TObject);
begin
    primero1.enabled:=dm.clientes.bof=false;
    anterior1.enabled:=primero1.enabled;
    siguiente1.enabled:=dm.clientes.eof=false;
    ultimo1.enabled:=siguiente1.enabled;
end;

procedure TCLIENTES.PRIMERO1Click(Sender: TObject);
begin
   dm.clientes.first;
end;

procedure TCLIENTES.ANTERIOR1Click(Sender: TObject);
begin
    dm.clientes.Prior;
end;

procedure TCLIENTES.SIGUIENTE1Click(Sender: TObject);
begin
    dm.clientes.next;
end;

procedure TCLIENTES.ULTIMO1Click(Sender: TObject);
begin
    dm.clientes.last;
end;

procedure TCLIENTES.clientes1Click(Sender: TObject);
begin
    altas1.enabled:=baltas.enabled;
    bajas1.enabled:=bbajas.enabled;
    consultas1.enabled:=bconsultas.enabled;
    modificaciones1.enabled:=bmodificaciones.enabled;
    listado1.enabled:=blistado.enabled;
end;



procedure TCLIENTES.DBEdit9KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
// ojo revisarlo, y hacerlo con la nueva forma de pago
{    if key=112 then
    begin
        FDlgFormasPago.codigo:=dm.clientesid_forma_pago.asstring;

        if FDlgFormasPago.Showmodal=mrok then
        begin
            dm.clientesid_forma_pago.asstring:=FDlgFormasPago.codigo;
            perform(wm_nextdlgctl,0,0);
        end;
    end;
}
end;


end.
