rendered paste body#!/usr/bin/perl
# Basic Includes
use 5.6.1;
#use strict;
use warnings;
use Getopt::Long;
use Date::Calc qw(:all);
# GUI Includes
use Tk;
use Tk::NoteBook;
# DB Includes
use DBI qw(:sql_types);
use vars qw( @stores $filename $noopen $db $techemail );
my $DataBlock;
sub CreateMainGUI {
# Create MainWindow & Notebook
my $ParentWindow = MainWindow->new();
my $ParentNotebook = $ParentWindow->NoteBook()->pack( -fill=>'both', -expand=>1 );
# Store the GUI in our Datablock
$DataBlock->{'GUI'}->{'ParentWindow'} = $ParentWindow;
$DataBlock->{'GUI'}->{'ParentNotebook'} = $ParentNotebook;
# Set the window Size
$ParentWindow->geometry( "800x600+112+84" );
$ParentWindow->minsize( qw(640 480) );
$ParentWindow->maxsize( qw(1024 768) );
$ParentWindow->configure(-title=>"TechCentral - Ruscomp Edition");
$DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'} =
$ParentNotebook->add( "Tab_Home", -label=>"Home", -createcmd=>\&CreateGUI_HomeTab );
#my $tab2 = $ParentNotebook->add( "Tab-Settings", -label=>"Settings", -raisecmd=>\&getCurrentTime);
#my $tab3 = $ParentNotebook->add( "Tab-OpenOrderReport", -label=>"Open Order Report", -state=>'disabled' );
#my $tab4 = $ParentNotebook->add( "Tab-OrderSearchEntry", -label=>"Order Search", -state=>'disabled' );
#my $tab4 = $ParentNotebook->add( "Tab-OrderSearchResults", -label=>"Order Search Results", -state=>'disabled' );
$DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Label( -textvariable=>\$starttime )->pack( -expand=>1 );
#$tab2->Label( -textvariable=>\$raisetime )->pack( -expand=>1 );
#$tab3->Button( -text=>'Quit', -command=>sub{ exit; } )->pack( -expand=>1 );
}
CreateMainGUI();
MainLoop;
sub CreateGUI_HomeTab {
my $HomeTabGrid = $DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Frame()->pack ( -side => 'top' ) ;
#
# Page Generation
##############################
## Create New Ticket Button
$DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Button(
-text=>'Create New Ticket',
-command=>sub{
$DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'} =
$DataBlock->{'GUI'}->{'ParentNotebook'}->add(
"Tab-NewOrder",
-label=>"New Order",
-raisecmd=>\&getCurrentTime #ToDo: Fix this entry
);
},
-state=>'disabled',
)->grid(-column => 2, -row => 2);
##############################
## Create Order Search Button
$DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Button(
-text=>'Order Search',
-command=>sub{
$DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'} =
$DataBlock->{'GUI'}->{'ParentNotebook'}->add(
"Tab-OrderSearch",
-label=>"Order Search",
-raisecmd=>\&getCurrentTime #ToDo: Fix this entry
);
},
-state=>'disabled'
)->grid(-column => 2, -row => 4);
##############################
## Create Open Order Report Button
$DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Button(
-text=>'Open Order Report',
-command=>sub{
$DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'} =
$DataBlock->{'GUI'}->{'ParentNotebook'}->add(
"Tab-OOReport",
-label=>"New Order",
-raisecmd=>\&getCurrentTime #ToDo: Fix this entry
);
},
-state=>'disabled'
)->grid(-column => 2, -row => 6);
##############################
## Create Statistics Button
$DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Button(
-text=>'Statistics',
-command=>sub{
$DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'} =
$DataBlock->{'GUI'}->{'ParentNotebook'}->add(
"Tab-Statistics",
-label=>"Statistics",
-raisecmd=>\&getCurrentTime #ToDo: Fix this entry
);
},
-state=>'disabled'
)->grid(-column => 2, -row => 8);
##############################
## Create Settings Button
$DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Button(
-text=>'Settings',
-command=>sub{
$DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Settings'} =
$DataBlock->{'GUI'}->{'ParentNotebook'}->add(
"Tab-Settings",
-label=>"Settings",
-raisecmd=>\&CreateGUI_SettingsTab
);
}
)->grid(-column => 2, -row => 10);
##############################
## Quit Program
$DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Home'}->Button( -text=>'Quit', -command=>sub{ exit; } )->grid(-column => 2, -row => 12);
}
sub CreateGUI_SettingsTab {
##############################
## Save Settings
$DataBlock->{'GUI'}->{'NotebookTabs'}->{'Tab_Settings'}->Button(
-text=>'Save Settings',
-command=>sub{
# Save settings here.
$DataBlock->{'GUI'}->{'ParentNotebook'}->delete('Tab-Settings');
},
)->pack( -expand=>1 );
}
sub getStartTime {
$starttime = "Started at " . localtime;
}
sub getCurrentTime {
$raisetime = " Last raised at " . localtime;
$DataBlock->{'GUI'}->{'ParentNotebook'}->pageconfigure( "Sheet 3", -state=>'normal' );
}