Copy Job Templates     


{This script enables you create a Job Template in Ostendo by copying an existing Job template}

var

TheOldTemplate: String;

TheNewTemplate: String;

 

procedure InsertTemplateMaster(TheOldTemplateCode,TheNewTemplateCode:String);

var

TempQuery,TempQuery2: TpFIBQuery;

TempTrans,TempTrans2: TpFIBTransaction;

x: Integer;

insertSQL: String;

begin

TempTrans := TpFIBTransaction.Create(nil);

TempTrans2 := TpFIBTransaction.Create(nil);

TempQuery := TpFIBQuery.Create(nil);

TempQuery2 := TpFIBQuery.Create(nil);

try

begin

  TempTrans.DefaultDatabase := OstendoDB;

  TempTrans2.DefaultDatabase := OstendoDB;

  TempQuery.Database := OstendoDB;

  TempQuery.Transaction := TempTrans;

  TempQuery.Options := qoStartTransaction;

  TempQuery.SQL.Clear;

  TempQuery2.Database := OstendoDB;

  TempQuery2.Transaction := TempTrans2;

  TempQuery2.Options := qoStartTransaction + qoAutoCommit;

  TempQuery2.SQL.Clear;

  TempQuery.SQL.ADD('select TEMPLATECODE,TEMPLATEDESCRIPTION,TEMPLATESTATUS,TEMPLATENOTES,');

  TempQuery.SQL.ADD('CONFIGUREDBYTASK,TASKSEQUENCING from TEMPLATEMASTER where TEMPLATECODE = ''' + TheOldTemplateCode + '''');

  TempQuery.ExecQuery;

  While not(TempQuery.eof) do

  begin

    insertSQL := 'insert into TEMPLATEMASTER (TEMPLATECODE,TEMPLATEDESCRIPTION,TEMPLATESTATUS,TEMPLATENOTES,' +

                 'CONFIGUREDBYTASK,TASKSEQUENCING) values (' +

                 ':TEMPLATECODE,:TEMPLATEDESCRIPTION,:TEMPLATESTATUS,:TEMPLATENOTES,' +

                 ':CONFIGUREDBYTASK,:TASKSEQUENCING)';

    TempQuery2.SQL.ADD(insertSQL);

    TempQuery2.PN('TEMPLATECODE').asstring := TheNewTemplateCode;

    TempQuery2.PN('TEMPLATEDESCRIPTION').asstring := TempQuery.FN('TEMPLATEDESCRIPTION').asstring;

    TempQuery2.PN('TEMPLATESTATUS').asstring := TempQuery.FN('TEMPLATESTATUS').asstring;

    TempQuery2.PN('TEMPLATENOTES').asstring := TempQuery.FN('TEMPLATENOTES').asstring;

    TempQuery2.PN('CONFIGUREDBYTASK').asstring := TempQuery.FN('CONFIGUREDBYTASK').asstring;

    TempQuery2.PN('TASKSEQUENCING').asstring := TempQuery.FN('TASKSEQUENCING').asstring;

    TempQuery2.ExecQuery;

    TempQuery.next;

  end;

end;

finally

   TempTrans.Free;

   TempTrans2.Free;

   TempQuery.Close;

   TempQuery2.Close;

   TempQuery.Free;

   TempQuery2.Free;

end;

end;

 

procedure InsertTemplateTasks(TheOldTemplateCode,TheNewTemplateCode:String);

var

TempQuery,TempQuery2: TpFIBQuery;

TempTrans,TempTrans2: TpFIBTransaction;

x: Integer;

insertSQL: String;

begin

TempTrans := TpFIBTransaction.Create(nil);

TempTrans2 := TpFIBTransaction.Create(nil);

TempQuery := TpFIBQuery.Create(nil);

TempQuery2 := TpFIBQuery.Create(nil);

try

begin

  TempTrans.DefaultDatabase := OstendoDB;

  TempTrans2.DefaultDatabase := OstendoDB;

  TempQuery.Database := OstendoDB;

  TempQuery.Transaction := TempTrans;

  TempQuery.Options := qoStartTransaction;

  TempQuery.SQL.Clear;

  TempQuery2.Database := OstendoDB;

  TempQuery2.Transaction := TempTrans2;

  TempQuery2.Options := qoStartTransaction + qoAutoCommit;

  TempQuery.SQL.ADD('select TASKSEQUENCE,TASKNAME,TASKDESCRIPTION,TASKTOJOBLINES,');

  TempQuery.SQL.ADD('TASKBILLCODE,TASKBILLDESCRIPTION,TASKBILLUNIT,TASKBILLQTY,');

  TempQuery.SQL.ADD('TASKINSTRUCTIONS,TASKESTIMATEDDURATION,DURATIONSCALE,DEPARTMENTCODE');

  TempQuery.SQL.ADD(' from TEMPLATETASKS where TEMPLATECODE = ''' + TheOldTemplateCode + '''');

  TempQuery.ExecQuery;

  While not(TempQuery.eof) do

  begin

    InsertSQL := 'insert into TemplateTasks (TEMPLATECODE,TASKSEQUENCE,TASKNAME,TASKDESCRIPTION,TASKTOJOBLINES,' +

                 'TASKBILLCODE,TASKBILLDESCRIPTION,TASKBILLUNIT,TASKBILLQTY,' +

                 'TASKINSTRUCTIONS,TASKESTIMATEDDURATION,DURATIONSCALE,DEPARTMENTCODE) values (' +

                 ':TEMPLATECODE,:TASKSEQUENCE,:TASKNAME,:TASKDESCRIPTION,:TASKTOJOBLINES,' +

                 ':TASKBILLCODE,:TASKBILLDESCRIPTION,:TASKBILLUNIT,:TASKBILLQTY,' +

                 ':TASKINSTRUCTIONS,:TASKESTIMATEDDURATION,:DURATIONSCALE,:DEPARTMENTCODE)';

    TempQuery2.SQL.Clear;

    TempQuery2.SQL.ADD(insertSQL);

    TempQuery2.PN('TEMPLATECODE').asstring := TheNewTemplateCode;

    TempQuery2.PN('TASKSEQUENCE').asinteger := TempQuery.FN('TASKSEQUENCE').asinteger;

    TempQuery2.PN('TASKNAME').asstring := TempQuery.FN('TASKNAME').asstring;

    TempQuery2.PN('TASKDESCRIPTION').asstring := TempQuery.FN('TASKDESCRIPTION').asstring;

    TempQuery2.PN('TASKTOJOBLINES').asstring := TempQuery.FN('TASKTOJOBLINES').asstring;

    TempQuery2.PN('TASKBILLCODE').asstring := TempQuery.FN('TASKBILLCODE').asstring;

    TempQuery2.PN('TASKBILLDESCRIPTION').asstring := TempQuery.FN('TASKBILLDESCRIPTION').asstring;

    TempQuery2.PN('TASKBILLUNIT').asstring := TempQuery.FN('TASKBILLUNIT').asstring;

    TempQuery2.PN('TASKBILLQTY').value := TempQuery.FN('TASKBILLQTY').value;

    TempQuery2.PN('TASKINSTRUCTIONS').asstring := TempQuery.FN('TASKINSTRUCTIONS').asstring;

    TempQuery2.PN('TASKESTIMATEDDURATION').value := TempQuery.FN('TASKESTIMATEDDURATION').value;

    TempQuery2.PN('DURATIONSCALE').asstring := TempQuery.FN('DURATIONSCALE').asstring;

    TempQuery2.PN('DEPARTMENTCODE').asstring := TempQuery.FN('DEPARTMENTCODE').asstring;

    TempQuery2.ExecQuery;

    TempQuery.next;

  end;

end;

finally

   TempTrans.Free;

   TempTrans2.Free;

   TempQuery.Close;

   TempQuery2.Close;

   TempQuery.Free;

   TempQuery2.Free;

end;

end;

 

procedure InsertTemplateResources(TheOldTemplateCode,TheNewTemplateCode:String);

var

TempQuery,TempQuery2: TpFIBQuery;

TempTrans,TempTrans2: TpFIBTransaction;

x: Integer;

insertSQL: String;

begin

TempTrans := TpFIBTransaction.Create(nil);

TempTrans2 := TpFIBTransaction.Create(nil);

TempQuery := TpFIBQuery.Create(nil);

TempQuery2 := TpFIBQuery.Create(nil);

try

begin

  TempTrans.DefaultDatabase := OstendoDB;

  TempTrans2.DefaultDatabase := OstendoDB;

  TempQuery.Database := OstendoDB;

  TempQuery.Transaction := TempTrans;

  TempQuery.Options := qoStartTransaction;

  TempQuery.SQL.Clear;

  TempQuery2.Database := OstendoDB;

  TempQuery2.Transaction := TempTrans2;

  TempQuery2.Options := qoStartTransaction + qoAutoCommit;

  TempQuery.SQL.ADD('select TASKNAME,RESOURCETYPE, RESOURCENAME');

  TempQuery.SQL.ADD(' from TEMPLATERESOURCES where TEMPLATECODE = ''' + TheOldTemplateCode + '''');

  TempQuery.ExecQuery;

  While not(TempQuery.eof) do

  begin

    InsertSQL := 'insert into TEMPLATERESOURCES (TEMPLATECODE,TASKNAME,RESOURCETYPE, RESOURCENAME) values (' +

                 ':TEMPLATECODE,:TASKNAME,:RESOURCETYPE, :RESOURCENAME)';

    TempQuery2.SQL.Clear;

    TempQuery2.SQL.ADD(insertSQL);

    TempQuery2.PN('TEMPLATECODE').asstring := TheNewTemplateCode;

    TempQuery2.PN('TASKNAME').asstring := TempQuery.FN('TASKNAME').asstring;

    TempQuery2.PN('RESOURCETYPE').asstring := TempQuery.FN('RESOURCETYPE').asstring;

    TempQuery2.PN('RESOURCENAME').asstring := TempQuery.FN('RESOURCENAME').asstring;

    TempQuery2.ExecQuery;

    TempQuery.next;

  end;

end;

finally

   TempTrans.Free;

   TempTrans2.Free;

   TempQuery.Close;

   TempQuery2.Close;

   TempQuery.Free;

   TempQuery2.Free;

end;

end;

 

procedure InsertTemplateLines(TheOldTemplateCode,TheNewTemplateCode:String);

var

TempQuery,TempQuery2: TpFIBQuery;

TempTrans,TempTrans2: TpFIBTransaction;

x: Integer;

insertSQL: String;

begin

TempTrans := TpFIBTransaction.Create(nil);

TempTrans2 := TpFIBTransaction.Create(nil);

TempQuery := TpFIBQuery.Create(nil);

TempQuery2 := TpFIBQuery.Create(nil);

try

begin

  TempTrans.DefaultDatabase := OstendoDB;

  TempTrans2.DefaultDatabase := OstendoDB;

  TempQuery.Database := OstendoDB;

  TempQuery.Transaction := TempTrans;

  TempQuery.Options := qoStartTransaction;

  TempQuery.SQL.Clear;

  TempQuery2.Database := OstendoDB;

  TempQuery2.Transaction := TempTrans2;

  TempQuery2.Options := qoStartTransaction + qoAutoCommit;

  TempQuery.SQL.ADD('select TASKNAME,LINENUMBER,CODETYPE,LINECODE,LINEDESCRIPTION, LINEUNIT,');

  TempQuery.SQL.ADD('TEMPLATEQTY,LINENOTES ');

  TempQuery.SQL.ADD(' from TEMPLATELINES where TEMPLATECODE = ''' + TheOldTemplateCode + '''');

  TempQuery.ExecQuery;

  While not(TempQuery.eof) do

  begin

    InsertSQL := 'insert into TemplateLines (TEMPLATECODE,TASKNAME,LINENUMBER,CODETYPE,LINECODE,LINEDESCRIPTION, LINEUNIT,' +

                 'TEMPLATEQTY,LINENOTES) values (' +

                 ':TEMPLATECODE,:TASKNAME,:LINENUMBER,:CODETYPE,:LINECODE,:LINEDESCRIPTION, :LINEUNIT,' +

                 ':TEMPLATEQTY,:LINENOTES)';

    TempQuery2.SQL.Clear;

    TempQuery2.SQL.ADD(insertSQL);

    TempQuery2.PN('TEMPLATECODE').asstring := TheNewTemplateCode;

    TempQuery2.PN('TASKNAME').asstring := TempQuery.FN('TASKNAME').asstring;

    TempQuery2.PN('LINENUMBER').asinteger := TempQuery.FN('LINENUMBER').asinteger;

    TempQuery2.PN('CODETYPE').asstring := TempQuery.FN('CODETYPE').asstring;

    TempQuery2.PN('LINECODE').asstring := TempQuery.FN('LINECODE').asstring;

    TempQuery2.PN('LINEDESCRIPTION').asstring := TempQuery.FN('LINEDESCRIPTION').asstring;

    TempQuery2.PN('LINEUNIT').asstring := TempQuery.FN('LINEUNIT').asstring;

    TempQuery2.PN('TEMPLATEQTY').value := TempQuery.FN('TEMPLATEQTY').value;

    TempQuery2.PN('LINENOTES').asstring := TempQuery.FN('LINENOTES').asstring;

    TempQuery2.ExecQuery;

    TempQuery.next;

  end;

end;

finally

   TempTrans.Free;

   TempTrans2.Free;

   TempQuery.Close;

   TempQuery2.Close;

   TempQuery.Free;

   TempQuery2.Free;

end;

end;

 

begin

TheOldTemplate := AskMandatoryQuestionWithLookup('Old Template','Please select an Existing Template to Copy',1058);

TheNewTemplate := AskMandatoryQuestion('New Template','TEXT','Please Enter the New Template Code','');

 

InsertTemplateMaster(TheOldTemplate,TheNewTemplate);

InsertTemplateTasks(TheOldTemplate,TheNewTemplate);

InsertTemplateResources(TheOldTemplate,TheNewTemplate);

InsertTemplateLines(TheOldTemplate,TheNewTemplate);

end.