unit SetTrackNum;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls, DM;

type
  TfrmUpdateTrackNum = class(TForm)
    GroupBox1: TGroupBox;
    txtTrackName: TEdit;
    btnSet: TBitBtn;
    btnCancel: TBitBtn;
    lb_primary: TLabel;
    procedure btnCancelClick(Sender: TObject);
    procedure btnSetClick(Sender: TObject);
    procedure SetTrack();
    procedure InsertToSetTrackingNum();
    procedure UpdateTrack();
    procedure selectTTNO();
    procedure AutoPrime();
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    ttno:Integer;
    tracktype:String;
  end;

var
  frmUpdateTrackNum: TfrmUpdateTrackNum;

implementation

uses Particulars, Main, ViewSetTrackingNumber, jvuib, jvuiblib;

{$R *.dfm}

procedure TfrmUpdateTrackNum.btnCancelClick(Sender: TObject);
begin
      if MessageDlg('Cancel?',mtConfirmation,[mbYes,mbNo],0)= mrYes then begin
      end

end;

procedure TfrmUpdateTrackNum.btnSetClick(Sender: TObject);
begin
        if (btnSet.Caption='&Add')then begin
            SetTrack();
            selectTTNO();
            InsertToSetTrackingNum();
        end
        else
            UpdateTrack();
end;

procedure TfrmUpdateTrackNum.SetTrack();
begin
AutoPrime();
      if (txtTrackName.Text='')then begin
          MessageDlg('Field required',mtError,[mbOK],0);
          txtTrackName.SetFocus;
      end
      else if (Trim(UpperCase(txtTrackName.Text))= tracktype)then begin
          MessageDlg('Tracking name already exist',mtError,[mbOK],0);
          txtTrackName.SetFocus;
      end
      else begin
          if MessageDlg('Save new Track Name?',mtConfirmation,[mbYes,mbNo],0)=mrYes then begin
            if DModule.TR.InTransaction then
              DModule.TR.Commit;
                DModule.TR.StartTransaction;
                DModule.QR.SQL.Clear;
                DModule.QR.SQL.Add('INSERT INTO TRACKINGTYPE');
                DModule.QR.SQL.Add('(TTNO,TT_TYPE, DATEADDED, ADDEDBY)');
                DModule.QR.SQL.Add(' VALUES (:a, :b, :c, :d) ');
                DModule.QR.Params.AsInteger[0] := sample;
                DModule.QR.Params.AsString[1] := trim(UpperCase(txtTrackName.Text));
                DModule.QR.Params.AsString[2] := DateToStr(Now);
                DModule.QR.Params.AsString[3] := UpperCase(frmMain.fullname);
                DModule.QR.Prepare;
                DModule.QR.open();
                  MessageDlg('Successfully saved',mtInformation,[mbOK],0);
            if DModule.TR.InTransaction then
                DModule.TR.Commit;

          frmViewSetTrackingNumber.LoadTrackCMB();
        end
        else begin
            MessageDlg('Nothing saved',mtInformation,[mbOK],0);
        end
    end
end;
procedure TfrmUpdateTrackNum.selectTTNO();
begin
AutoPrime();
      if DModule.TR.InTransaction then
        DModule.TR.Commit;

        DModule.TR.StartTransaction;
        DModule.QR.SQL.Clear();
        DModule.QR.SQL.Add('SELECT *');
        DModule.QR.SQL.Add('FROM TRACKINGTYPE WHERE TTNO=:a');
          DModule.QR.Params.AsInteger[0]:=StrToInt(lb_primary.Caption);
        DModule.QR.Prepare;
        DModule.QR.Open();
        ttno:=DModule.QR.Fields.AsInteger[0];
        tracktype:=DModule.QR.Fields.AsString[1];


    if DModule.TR.InTransaction then
        DModule.TR.Commit;
end;
procedure TfrmUpdateTrackNum.InsertToSetTrackingNum();
begin
AutoPrime();
     if DModule.TR.InTransaction then
        DModule.TR.Commit;

        DModule.TR.StartTransaction;
        DModule.QR.SQL.Clear;
        DModule.QR.SQL.Add('INSERT INTO SETTRACKINGNUM');
        DModule.QR.SQL.Add('(SETCODE,TRACKTYPE, SETDATE, SETBY, TTNO)');
        DModule.QR.SQL.Add(' VALUES (:a, :b, :c, :d, :e) ');
        DModule.QR.Params.AsInteger[0] := sample;
        DModule.QR.Params.AsString[1] := trim(UpperCase(txtTrackName.Text));
        DModule.QR.Params.AsString[2] := DateToStr(Now);
        DModule.QR.Params.AsString[3] := UpperCase(frmMain.fullname);
        DModule.QR.Params.AsInteger[4] := ttno;
        DModule.QR.Prepare;
        DModule.QR.open();
          MessageDlg('Successfully saved',mtInformation,[mbOK],0);
        if DModule.TR.InTransaction then
          DModule.TR.Commit;
          txtTrackName.Text:='';
          
          frmViewSetTrackingNumber.LoadTrackCMB();
          frmViewSetTrackingNumber.loadTrackContain();
end;

procedure TfrmUpdateTrackNum.UpdateTrack();
begin
    if MessageDlg('Save changes?',mtConfirmation,[mbYes,mbNo],0)=mrYes then begin
      if DModule.TR.InTransaction then
         DModule.TR.Commit;
            DModule.QR.SQL.Clear;
            DModule.QR.SQL.Add('UPDATE TRACKINGNUM SET TT_TYPE=:A WHERE TTNO=:F');
            DModule.QR.Params.AsString[0] := trim(UpperCase(txtTrackName.Text));
            DModule.QR.Prepare;
            DModule.QR.Open();

            MessageDlg('Changes saved',mtInformation,[mbOK],0);

      if DModule.TR.InTransaction then
         DModule.TR.Commit;
    end
    else
        MessageDlg('Nothing save',mtInformation,[mbOK],0);
end;



procedure TfrmUpdateTrackNum.AutoPrime();
    var a:integer;
begin
a:=1;
 if DModule.TR.InTransaction then
        DModule.TR.Commit;
    DModule.QR.SQL.Clear();
    DModule.QR.SQL.Add('SELECT TTNO');
    DModule.QR.SQL.Add('FROM TRACKINGTYPE');
    DModule.QR.Prepare;
    DModule.QR.Open();
   if DModule.QR.Fields.Eof then
    sample:=a
      else begin
       DModule.QR.SQL.Clear;
        DModule.QR.SQL.Add('SELECT MAX(TTNO) FROM TRACKINGTYPE');
        DModule.QR.Prepare;
        DModule.QR.Open();
        sample := DModule.QR.Fields.AsInteger[0] + 1;
        end;
         if DModule.TR.InTransaction then
       DModule.TR.Commit;
end;
procedure TfrmUpdateTrackNum.FormShow(Sender: TObject);
begin
AutoPrime();
      lb_primary.Caption:=IntToStr(ttno);
end;

end.
