#! perl
########################################################################
# COPYRIGHT - VIX IP PTY LTD ("VIX"). ALL RIGHTS RESERVED.
#
# Module name   : jats.sh
# Module type   : Makefile system
# Compiler(s)   : n/a
# Environment(s): jats
#
# Description   : Extract package built times ( not the length of time it took to build it ).
#                 Calc delta from previous package as a very rought estimate of the built time
#
#
# Usage:
#
# Version   Who      Date        Description
#
#......................................................................#

require 5.006_001;
use strict;
use warnings;
use JatsError;
use JatsSystem;
use Getopt::Long;
use Pod::Usage;                             # required for help support
use JatsRmApi;
use JatsVersionUtils;

use DBI;

my $VERSION = "1.2.3";                      # Update this
my $opt_verbose = 1;
my $opt_help = 0;
my $opt_manual;
my $opt_rtag_id;
my $RM_DB;

#
#   Package information
#
my %Package;
my %Dnr;
my @StrayPackages;

#-------------------------------------------------------------------------------
# Function        : Main Entry
#
# Description     :
#
# Inputs          :
#
# Returns         :
#
my $result = GetOptions (
                "help+"         => \$opt_help,          # flag, multiple use allowed
                "manual"        => \$opt_manual,        # flag
                "verbose+"      => \$opt_verbose,       # flag
                );

#
#   Process help and manual options
#
pod2usage(-verbose => 0, -message => "Version: $VERSION")  if ($opt_help == 1  || ! $result);
pod2usage(-verbose => 1)  if ($opt_help == 2 );
pod2usage(-verbose => 2)  if ($opt_manual || ($opt_help > 2));


my %data;

ErrorConfig( 'name'    =>'PLAY22' );
getStuffedEntried();

exit;


sub  getStuffedEntried
{
    my $foundDetails = 0;
    my (@row);

    # if we are not or cannot connect then return 0 as we have not found anything
    connectRM( \$RM_DB);

    # First get details from pv_id

    my $m_sqlstr = "select RELEASE_MANAGER.PACKAGE_VERSIONS.PV_ID, ".
                          "RELEASE_MANAGER.PACKAGES.PKG_NAME, ".
                          "RELEASE_MANAGER.PACKAGE_VERSIONS.PKG_VERSION, ".
                          "RELEASE_MANAGER.PACKAGE_METRICS.CREATED_STAMP,".
                          "TRUNC (86400*(SYSDATE - RELEASE_MANAGER.PACKAGE_METRICS.CREATED_STAMP))".
                    " from RELEASE_MANAGER.PACKAGE_VERSIONS, RELEASE_MANAGER.PACKAGES, RELEASE_MANAGER.PACKAGE_METRICS " .
                    " where RELEASE_MANAGER.PACKAGE_VERSIONS.PV_ID = RELEASE_MANAGER.PACKAGE_METRICS.PV_ID".
                     " and RELEASE_MANAGER.PACKAGES.PKG_ID = RELEASE_MANAGER.PACKAGE_VERSIONS.PKG_ID".
                     " order by RELEASE_MANAGER.PACKAGE_METRICS.CREATED_STAMP DESC";
    my $sth = $RM_DB->prepare($m_sqlstr);
    if ( defined($sth) )
    {
        if ( $sth->execute( ) )
        {
            if ( $sth->rows )
            {
                my $last = 0;
                while ( @row = $sth->fetchrow_array )
                {
                    my $delta =  $last - $row[4];
                    $last = $row[4];
                    my $ds = $delta % 60;
                    my $dm = ($delta / 60) % 60;
                    my $dh = $delta / 60 / 60;


                    printf "%5d:%2.2d:%2.2d : %25s : %s %s\n", $dh,$dm,$ds, $row[3], $row[1], $row[2];
#print "Data: @row\n";
                }
            }
            else
            {
                Error ("No data extracted");
            }
            $sth->finish();
        }
        else
        {
            Error ("May be an execute error", $m_sqlstr, $sth->errstr());
        }
    }
    else
    {
        Error("Prepare failure" );
    }
}

