#!/apps/remdev/ars/ars/perl -w
#
# Test Remedy WebService
#
use Env;
use Win32;
use SOAP::Lite;
#trace=>'all';
#+trace => [ transport => \&SOAP_log ];
 
sub SOAP_log {
    # Assume Transport Logging Only
    my ($in) = @_;
    my $doubleLF = chr(10).chr(10);
    my $singleLF = chr(10);
    my($sName,$sVal) = split(/=/,$in,2);    
 
    while( my ($k, $v) = each %$in ) {
      if ( $k eq "_content" ) {
         $sVal = "$sName\n".$v;
         $sVal =~ s/$doubleLF/$singleLF/g;
         write_log ( $sVal );
      }
    }
 }
 
sub write_log {
#  my $arLogFile=$ENV{'ARCONFIGDIR'}."/tmp/fred_Remedy_SOAP.log";
   my $arLogFile="Remedy_SOAP.log";
   my($message) = @_;
 
   $message="$message";
 
   chop(my $date = `date +'%a %b %e %Y %T'`);
   my $messagehead = "<PERL> <TID: 0> <RPC ID: 0> <Queue: 0> <Client-RPC: 0> <USER: perl> /* $date */ ";
 
   warn "Could not open logfile: $arLogFile\n" unless (open (LOGFILE, ">>$arLogFile"));
   print LOGFILE "$messagehead $message\n";
   warn "Could not close logfile: $arLogFile\n" unless (close (LOGFILE));
}
 
sub get_assignedtome {
	
my $USERNAME  = "username-goes-here";
my $PASSWORD  = "password-goes-here";
 
my $arServer = "ars-server-goes-here";
my $arwebServer = "midtier-server-goes-here";
my $ServiceName  = "webservice-name-goes-here";

my $RemedyURL    = "http://".$arwebServer."/arsys/services/ARService?server=".$arServer."&webService=".$ServiceName;
my $RemedyNS     = "urn:".$ServiceName;
 
my $Win32loginname = Win32::LoginName();
#print "'Assignee Login ID' = \"$Win32loginname\"";
#my $qualification = "'Incident Number' = \"INC000001294141\"";
my $qualification = "'Assignee Login ID' = \"Demo\"";
#my $qualification = "'Assignee Login ID' = \"$Win32loginname\"";
#my $qualification = "'Assignee' = \"Bob User\"";
#my $qualification = "'7' = \"Resolved\"";
#my $qualification = "1=1";
 
my $soap = SOAP::Lite
    -> proxy($RemedyURL)
    -> ns($RemedyNS,'ns1')
    -> autotype(0)
    -> readable(1);
 
my $som = $soap->HelpDesk_QueryList_Service(
#my $som = $soap->OpGetList(
       SOAP::Header->name('AuthenticationInfo' => \SOAP::Header->value(
       SOAP::Header->name('userName' => $USERNAME),
       SOAP::Header->name('password' => $PASSWORD) )),
                 SOAP::Data->name('Qualification'   => $qualification ));

# check to see if we got a fault back. If we did then print it. If we
#did not then get the fields that we want.

if ($som->fault){
print "Fault :", $som->faultstring, "\n";
print "Faultcode :",$som->faultcode, "\n";
print "Faultdetail :", %{$som->faultdetail}, "\n";
}else{
	
	
  # add this to get a full array of the results
  my @params = $som->paramsout;

  #$output = "sdsdsd";
  $rowcounter = 0;
  
  # Process each of the records
  
#  foreach $entry ($som->valueof('//HelpDesk_QueryList_ServiceResponse/getListValues')){
#    foreach $field (keys (%{$entry})){
#   print $field, " : ", ${%{$entry}}{$field},"\n";
#    }
#    print "\n";
    
#    $rowcounter = $rowcounter + 1;
#}

my $results = "";

   #foreach my $row(@params) {
   foreach my $row ($som->valueof('//HelpDesk_QueryList_ServiceResponse/getListValues')){
	
     $results = $results."<tr><td>".$row->{'Incident_Number'}."</td><td>".$row->{'Status'}."</td><td>".$row->{'Summary'}."</td><td>".$row->{'Priority'}."</td></tr>";
     #print("<tr><td>".$row->{'Incident_Number'}."</td><td>");
     #print($row->{'Status'}."</td><td>");
     #print($row->{'Summary'}."</td><td>");
     #print($row->{'Priority'}."</td></tr>");
     #print($row->{'Assignee'}."\n");
      
      #$output = ($row->{'Incident_Number'}."</td><td>".{'Summary'}."</td><td>".{'Priority'}."</td></tr>");
        #$output = $output.($row->{'Incident_Number'}."</td><td>");
      #print($row->{'Status7'}."\n");
      #print($row->{'Create_Date'}."\n")
      
     $rowcounter = $rowcounter + 1;
    }

return $results;

}



} #end of get_assignedtome

$output = get_assignedtome();

#print Win32::LoginName(), "\n";
#print "Record count = ",$rowcounter;


print "Content-type: text/html\n\n";

print <<ENDHTML;
<html>

<head>

</style>
<title>Remedy Incidents - Assigned to Me</title>
</head>
<BODY style="align:center">
<h3>Remedy Incidents - Assigned to Me</h3>

<table>
<tr>
<td>Incident #</td>
<td>Status</td>
<td>Summary</td>
<td>Priority</td>
</tr>
$output
</table>
<br>

</BODY>
</html>

ENDHTML
;

