unit fImportarPresenciaPin;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Bde.DBTables, Vcl.Grids,
  Vcl.DBGrids, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.ExtCtrls, ZAbstractRODataset,
  ZAbstractDataset, ZDataset;

type
  TImportardesdePresenciaPin = class(TForm)
    BDPRESENCIAPIN: TDatabase;
    qmarcajes: TQuery;
    DSPIN_MARCAJES: TDataSource;
    qmarcajesPersona: TIntegerField;
    qmarcajesFecha: TDateField;
    qmarcajesHora: TTimeField;
    qmarcajesTerminal: TIntegerField;
    qmarcajesModificado: TBooleanField;
    qmarcajesModoIdentificacion: TIntegerField;
    qmarcajesDNI: TStringField;
    qmarcajesnombre: TStringField;
    qtrabajadores: TZQuery;
    Panel1: TPanel;
    fdesde: TDateTimePicker;
    fhasta: TDateTimePicker;
    Label1: TLabel;
    Label2: TLabel;
    Panel2: TPanel;
    DBGrid3: TDBGrid;
    Label3: TLabel;
    Button1: TButton;
    qticados: TZQuery;
    qticadosid: TLargeintField;
    qticadoside: TSmallintField;
    qticadosfecha: TDateField;
    qticadosidt: TIntegerField;
    qticadosTRABAJADOR: TWideStringField;
    qticadosENTRADA_REAL: TTimeField;
    qticadosSALIDA_REAL: TTimeField;
    qtrabajadoreside: TIntegerField;
    qtrabajadoresid: TSmallintField;
    qtrabajadoresnif: TWideStringField;
    qtrabajadoresnombre: TWideStringField;
    procedure FormShow(Sender: TObject);
    procedure fdesdeChange(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ImportardesdePresenciaPin: TImportardesdePresenciaPin;

implementation

{$R *.dfm}

uses datos;

procedure TImportardesdePresenciaPin.Button1Click(Sender: TObject);
begin

      qmarcajes.First;
      while not qmarcajes.Eof do
      begin
        qtrabajadores.Close;
        qtrabajadores.Prepare;
        qtrabajadores.ParamByName('NIF').AsString:=qmarcajesdni.AsString;
        qtrabajadores.ParamByName('EMPRESA').Asinteger:=dm.tempresaid.asinteger;
        qtrabajadores.Open;
        if qtrabajadores.RecordCount>0 then
        begin
           qticados.Close;
           qticados.Prepare;
           qticados.ParamByName('EMPRESA').AsInteger:=dm.tempresaid.AsInteger;
           qticados.ParamByName('trabajador').AsInteger:=qtrabajadoresid.AsInteger;
           qticados.ParamByName('FECHA').AsDatetime:=qmarcajesfecha.AsDateTime;
           qticados.Open;
           if qticados.RecordCount=0 then
           begin
             qticados.Append;
             qticadoside.Value:=dm.tempresaid.AsInteger;
             qticadosfecha.Value:=qmarcajesfecha.AsDateTime;
             qticadosidt.Value:=qtrabajadoresid.AsInteger;
             qticadostrabajador.Value:=qtrabajadoresnombre.AsString;
             qticadosentrada_real.value:=qmarcajeshora.Asdatetime;
             qticados.Post;
           end else
           begin
              qticados.Edit;
              qticadossalida_real.Value:=qmarcajeshora.AsDateTime;
              qticados.Post;
           end;

        end;
        qmarcajes.Next;
      end;


end;

procedure TImportardesdePresenciaPin.fdesdeChange(Sender: TObject);
begin
    qmarcajes.Close;
    qmarcajes.Prepare;
    qmarcajes.ParamByName('DESDE').AsDate:=fdesde.Date;
    qmarcajes.ParamByName('HASTA').AsDate:=fhasta.Date;
    qmarcajes.Open;

end;

procedure TImportardesdePresenciaPin.FormShow(Sender: TObject);
begin
   fdesde.Date:=date;
   fhasta.Date:=date;
    try
        CopyFileEx('e:\db\marcajes.db','c:\agrigest\datos\presenciapin\marcajes.db', nil, nil, nil, 0);
        CopyFileEx('e:\db\marcajes.px','c:\agrigest\datos\presenciapin\marcajes.px', nil, nil, nil, 0);
        CopyFileEx('e:\db\personal.db','c:\agrigest\datos\presenciapin\personal.db', nil, nil, nil, 0);
        CopyFileEx('e:\db\personal.mb','c:\agrigest\datos\presenciapin\personal.mb', nil, nil, nil, 0);
        CopyFileEx('e:\db\personal.px','c:\agrigest\datos\presenciapin\personal.px', nil, nil, nil, 0);

    finally

    end;
end;

end.
