unit tipos_impuestos;

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,Vcl.StdCtrls, Vcl.DBCtrls, Vcl.Mask,
  Vcl.ComCtrls, Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls, datos,
    Data.DB;

type
  Tftipos_impuestos = class(TForm)
    Panel13: TPanel;
    Panel17: TPanel;
    DBGrid3: TDBGrid;
    Panel7: TPanel;
    btAcancelar: TButton;
    btAmodificar: TButton;
    btAborrar: TButton;
    btAnuevo: TButton;
    btAguardar: TButton;
    dsqimpuestos: TDataSource;
    qimpuestos: TFDQuery;
    qimpuestosid: TIntegerField;
    qimpuestosdescripcion: TWideStringField;
    qimpuestostipo: TIntegerField;
    qimpuestostipo_req: TFloatField;
    qaux: TFDQuery;
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure btAnuevoClick(Sender: TObject);
    procedure dsqimpuestosStateChange(Sender: TObject);
    procedure btAborrarClick(Sender: TObject);
    procedure btAmodificarClick(Sender: TObject);
    procedure btAguardarClick(Sender: TObject);
    procedure btAcancelarClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ftipos_impuestos: Tftipos_impuestos;

implementation

{$R *.dfm}

procedure Tftipos_impuestos.btAborrarClick(Sender: TObject);
begin
   qimpuestos.delete;
end;

procedure Tftipos_impuestos.btAcancelarClick(Sender: TObject);
begin
   qimpuestos.cancel;
end;

procedure Tftipos_impuestos.btAguardarClick(Sender: TObject);
begin
   qimpuestos.post;
end;

procedure Tftipos_impuestos.btAmodificarClick(Sender: TObject);
begin
   qimpuestos.edit;
end;

procedure Tftipos_impuestos.btAnuevoClick(Sender: TObject);
begin
   qaux.sql.clear;
   qaux.SQL.Add('select max(id)+1 from tipos_iva');
   qaux.Open;
   qimpuestos.append;
   dbgrid3.setfocus;
   qimpuestosid.Value:=qaux.Fields[0].AsInteger;
end;

procedure Tftipos_impuestos.dsqimpuestosStateChange(Sender: TObject);
begin
if qimpuestos.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 Tftipos_impuestos.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if (activecontrol is tdbgrid) then
    begin
        if Key = 13 then Key :=9;
    end;
end;

procedure Tftipos_impuestos.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 tdbedit) then
        begin
           if  (activecontrol as tdbedit).Field.DataType in [ftfloat,ftCurrency,ftbcd,ftfmtbcd] then key:=','
        end;
        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 Tftipos_impuestos.FormShow(Sender: TObject);
begin
    qimpuestos.Close;
    qimpuestos.Open;
end;

end.
