// Скрипт генерирует новых контрагентов для дисконтной системы


var Form :TForm;
    Lab :TLabel;
    EditCnt :TEdit;
    EditFirstBarcode :TEdit;
    Bevel,Bevel1 :Tbevel;
    Button1 :Tbutton;
    Button2 :tButton;

    crd1,crd2 :integer;

    CNT :integer;
    Barcode :double;
    maxid :integer;

    i :integer;

    table :TTAble;
begin


  Form := Tform.create(nil);
  try
    begin // создаем форму

      Form.Caption := 'Генерация клиентов дисконтной системы';
      Form.BorderStyle := bsDialog;
      Form.Width := 350;
      Form.Height := 200;
      Form.position := poScreenCenter;
      Form.Font.name := 'Tahoma';


      Bevel := tbevel.create(form);
      Bevel.Shape := bsTopLine;
      Bevel.Height := 4;
      Bevel.align := alTop;
      bevel.parent := Form;


      Lab := TLabel.create(form); // удалять не нужно, Form его owner, сам удалит
      Lab.caption := 'Укажите количество карточек:';
      Lab.Top := 20;
      Lab.Left := 10;
      Lab.parent := Form;

      EditCNT := TEdit.create(form);
      EditCNT.left := Lab.left + lab.width + 10;
      EditCNT.top := Lab.top;
      EditCNT.width := 50;
      EditCNT.parent := form;


      crd1 := Lab.top + lab.height;
      crd2 := Lab.left;

      Lab := TLabel.create(Form);
      Lab.caption := 'Укажите первый штрихкод:';
      Lab.top := crd1 + 10;
      Lab.left := crd2;
      Lab.parent := Form;

      crd1 := Lab.top+ lab.height;


      EditFirstBarcode := TEdit.create(form);
      EditFirstBarcode.left := Editcnt.left;
      EditFirstbarcode.top := Lab.top;
      EditFirstBarcode.width := 100;
      EditFirstBarcode.parent := form;


      Lab := TLabel.create(Form);
      Lab.caption := '(не более 12 символов)';
      Lab.top := crd1 + 5;
      Lab.left := crd2;
      Lab.parent := Form;


      crd1 := Lab.top+ lab.height;


      Bevel1 := TBevel.create(Form);
      Bevel1.shape := bsTopLine;
      Bevel1.Height := 4;
      Bevel1.Width := Form.clientWidth - 30;
      Bevel1.Left := (Form.ClientWidth - Bevel1.Width) div 2;
      Bevel1.Top := crd1 + 20;
      Bevel1.parent := Form;

      Button1 := Tbutton.create(Form);
      Button1.Caption := 'Старт';
      Button1.Width := 70;
      Button1.ModalResult := mrOk;
      Button1.Top := Bevel1.Top + 13;
      button1.Default := true;
      Button1.Parent := Form;


      Button2 := Tbutton.create(Form);
      Button2.Caption := 'Отмена';
      Button2.Width := 70;
      Button2.ModalResult := mrCancel;
      Button2.Top := Button1.top;
      Button2.left := Form.ClientWidth - Button2.Width - 35;
      Button2.Cancel := true;
      Button2.Parent := Form;

      Button1.left := Button2.left - Button1.width - 5;


      Form.clientHeight := Button1.Top + Button1.height + 15;

    end;

    if Form.ShowModal = mrOk
    then begin
      cnt := strtointprotected(Editcnt.text);
      //bvmessage(inttostr(cnt));
      barcode := strtofloatprotected(EditFirstBarcode.text);
      //bvmessage(floattostr(barcode));

      with TMyWait.create('Идет создание клиентов') do
      try
        table := ttable.create(nil);
        try
          table.databasename := 'dbkassa';
          table.tablename := 'agents.db';
          table.open;
          table.last;
          maxid := table.fieldbyname('id').asinteger;

          for i := 1 to cnt do begin
            table.append;
            maxid := maxid +1;
            table.fieldbyname('id').asinteger := maxid;
            table.fieldbyname('name').asstring := 'Клиент дисконтной программы';
            table.fieldbyname('iscashklient').asinteger := 1;
            table.fieldbyname('barcode').asstring := floattostr(barcode);
            table.fieldbyname('comment').asstring := 'auto generated';
            barcode := barcode + 1;
            table.post;
          end;
        finally
          table.free;
        end;
      finally
        free
      end;

      CreateHInt('Операция завершена');

    end;
  finally
    Form.free;
  end;


end.
