unit cuentasbancarias;

interface

uses
  FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Stan.Async, FireDAC.DApt, FireDAC.Comp.DataSet, FireDAC.Comp.Client, uFireDacHelper,
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, 
    Vcl.Grids, Vcl.DBGrids, Vcl.StdCtrls, Vcl.ExtCtrls;

type
  Tfcuentas_bancarias = class(TForm)
    Panel7: TPanel;
    btAcancelar: TButton;
    btAmodificar: TButton;
    btAborrar: TButton;
    btAnuevo: TButton;
    btAguardar: TButton;
    Panel1: TPanel;
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    Panel3: TPanel;
    Panel4: TPanel;
    DBGrid2: TDBGrid;
    dsqcuentasbancarias: TDataSource;
    qaux: TFDQuery;
    qcuentas_bancarias: TFDQuery;
    qcuentas_bancariaside: TIntegerField;
    qcuentas_bancariasid: TIntegerField;
    qcuentas_bancariasbanco: TWideStringField;
    qcuentas_bancariascciban: TWideStringField;
    qcuentas_bancariasccentidad: TWideStringField;
    qcuentas_bancariasccoficina: TWideStringField;
    qcuentas_bancariasccdc: TWideStringField;
    qcuentas_bancariascccc: TWideStringField;
    qempresas: TFDQuery;
    qempresasid: TIntegerField;
    qempresascif: TWideStringField;
    qempresasnombre: TWideStringField;
    qempresasdireccion: TWideStringField;
    qempresascodpost: TWideStringField;
    qempresaspoblacion: TWideStringField;
    qempresasprovincia: TWideStringField;
    qempresasemail: TWideStringField;
    qempresastelefono1: TWideStringField;
    qempresastelefono2: TWideStringField;
    qempresascontacto: TWideStringField;
    qempresascontingenciacomfij: TFloatField;
    qempresassalariobasedia: TFloatField;
    qempresascontingenciasdia: TFloatField;
    qempresasirpf: TFloatField;
    qempresasdesempleo: TFloatField;
    qempresasformacion: TFloatField;
    qempresascontingencias: TFloatField;
    qempresasirpf2: TFloatField;
    qempresasdesempleo2: TFloatField;
    qempresasformacion2: TFloatField;
    qempresascontingencias2: TFloatField;
    qempresascc_iban: TWideStringField;
    qempresascc_entidad: TWideStringField;
    qempresascc_oficina: TWideStringField;
    qempresascc_dc: TWideStringField;
    qempresascc_cc: TWideStringField;
    qempresasajusteentrada: TIntegerField;
    qempresasajustesalida: TIntegerField;
    qempresasporcbloqueo: TIntegerField;
    qempresasactive: TIntegerField;
    qempresasult_envio: TIntegerField;
    qempresasregistro_sanitario: TWideStringField;
    qempresascoste_kg_gen: TFloatField;
    qempresasporc_segsocial: TFloatField;
    qempresasprecio_venta_desperdicios: TFloatField;
    qempresasvercodtrazabilidad: TIntegerField;
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure btAnuevoClick(Sender: TObject);
    procedure btAborrarClick(Sender: TObject);
    procedure btAmodificarClick(Sender: TObject);
    procedure btAguardarClick(Sender: TObject);
    procedure btAcancelarClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure qcuentas_bancariasBeforePost(DataSet: TDataSet);
    procedure dsqcuentasbancariasStateChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fcuentas_bancarias: Tfcuentas_bancarias;

implementation

{$R *.dfm}

procedure Tfcuentas_bancarias.btAborrarClick(Sender: TObject);
begin
   qcuentas_bancarias.Delete;
end;

procedure Tfcuentas_bancarias.btAcancelarClick(Sender: TObject);
begin
   qcuentas_bancarias.cancel;
end;

procedure Tfcuentas_bancarias.btAguardarClick(Sender: TObject);
begin
   qcuentas_bancariaside.Value:=qempresasid.asinteger;
   qcuentas_bancarias.post;
end;

procedure Tfcuentas_bancarias.btAmodificarClick(Sender: TObject);
begin
    qcuentas_bancarias.edit
end;

procedure Tfcuentas_bancarias.btAnuevoClick(Sender: TObject);
begin
   qaux.Close;
   qaux.sql.clear;
   qaux.SQL.Add('select max(id)+1 from cuentas_bancarias');
   qaux.Open;
   qcuentas_bancarias.append;
   if qaux.Fields[0].AsInteger<0 then qcuentas_bancariasid.Value:=0 else qcuentas_bancariasid.Value:=qaux.Fields[0].AsInteger;
   dbgrid1.setfocus;

end;

procedure Tfcuentas_bancarias.dsqcuentasbancariasStateChange(Sender: TObject);
begin
  if qcuentas_bancarias.State in [dsedit,dsinsert] then
  begin
      btanuevo.Enabled:=false;
      btamodificar.Enabled:=false;
      btaborrar.Enabled:=false;
      btacancelar.Enabled:=true;
      btaguardar.Enabled:=true;
  end else
  begin
      btanuevo.Enabled:=true;
      btamodificar.Enabled:=true;
      btaborrar.Enabled:=true;
      btacancelar.Enabled:=false;
      btaguardar.Enabled:=false;
  end;
end;

procedure Tfcuentas_bancarias.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if (activecontrol is tdbgrid) then
    begin
        if Key = 13 then Key :=9;
    end;
end;

procedure Tfcuentas_bancarias.FormKeyPress(Sender: TObject; var Key: Char);
var formatos:tformatsettings;
punto:string;
begin
    GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT, formatos);
    punto:=formatos.DecimalSeparator;
    if punto=',' then
    begin
        key:=upcase(key);
        if (key='.') and (activecontrol is tdbgrid) then
        begin
            key:=','
        end;
    end;
    if (activecontrol is tdbgrid) then
    begin
        if Key = #13 then Key :=#9;
    end;

    if (key=#13) then
    begin
        Perform(WM_NextDLGCtl,0,0);
        key:=#0;
    end;
end;

procedure Tfcuentas_bancarias.FormShow(Sender: TObject);
begin
    qcuentas_bancarias.Open;
    qempresas.open;
end;

procedure Tfcuentas_bancarias.qcuentas_bancariasBeforePost(DataSet: TDataSet);
begin
    qcuentas_bancariaside.Value:=qempresasid.AsInteger;
end;

end.
