Index: trunk/ippScripts/scripts/night_report.pl
===================================================================
--- trunk/ippScripts/scripts/night_report.pl	(revision 40444)
+++ trunk/ippScripts/scripts/night_report.pl	(revision 40461)
@@ -64,4 +64,65 @@
     }
     # print "Reference exp_id: $refExpID\n";
+}
+
+# check the status of summit exposures:
+if (1) { 
+    if ($verbose) { print "Exposures at summit:\n"; }
+
+    $summitSkipped = 0;
+    $summitPending = 0;
+
+#   my $query = "SELECT exp_name, exp_type, fault, state, count(*)";
+    my $query = "SELECT exp_type, fault, state, count(*)";
+    $query .= " FROM summitExp";
+    $query .= " LEFT JOIN pzDownloadExp USING (summit_id)";
+    $query .= " WHERE dateobs like '$date%'";
+    $query .= " AND (state != 'drop' or state IS NULL)";
+    $query .= " AND fault != 1042";
+    $query .= " GROUP BY exp_type, fault, state";
+
+#    print "$query\n";
+#    die;
+
+    my $result = &mysql_select ($query);
+
+    if ($verbose) { printf "%8s %15s %6s %4s\n", "exp_type", "fault", "state", "N(exp)"; }
+    while (@row = $result->fetchrow_array()) {
+	if ($verbose) { printf "%8s %15s %6s %4d\n", $row[0], $row[1], $row[2], $row[3]; }
+	if ($row[2] eq "run") {
+	    $summitPending += $row[3];
+	}
+	if ($row[2] eq "") {
+	    $summitSkipped += $row[3];
+	}
+    }
+    if ($summitSkipped || $summitPending) { print "*** WARNING: $summitSkipped skipped rawExp, $summitPending incomplete rawExp ***\n\n"; } else { if ($verbose) { print "\n"; }}
+}
+
+# check for exposures not sent to chip:
+if ($verbose2) {
+
+    my $query = "SELECT summitExp.exp_name, exp_type, fault, state";
+    $query .= " FROM summitExp";
+    $query .= " LEFT JOIN pzDownloadExp USING (summit_id)";
+    $query .= " WHERE dateobs like '$date%'";
+#   $query .= " AND (state != 'drop' or state IS NULL)";
+    $query .= " AND fault != 1042";
+    $query .= " AND state IS NULL";
+
+    print "$query\n";
+
+    my $result = &mysql_select ($query);
+
+    $doHeader = 1; 
+    while (@row = $result->fetchrow_array()) {
+	if ($doHeader) {
+	    print "OBJECT Exposures NOT sent to chipRun:\n";
+	    printf "%11s %15s %14s %14s\n", "exp_name", "exp_type", "fault", "state";
+	    $doHeader = 0;
+	}
+	printf "%11s %15s %14s %14s\n", $row[0], $row[1], $row[2], $row[3];
+    }
+    if (! $doHeader) { print "\n"; }
 }
 
@@ -263,17 +324,17 @@
 	# printf "%8s %15s : ", $row[0], $row[1]; # c, count(*)
 	if ($row[0] == 1) {
-	    if ($row[1] == 1) { $verb = "chunk has"; } else { $verb = "chunks have"; }
-	    printf "%3d %-11s 1 visit  (visit A       in comments), no WWdiffs\n", $row[1], $verb;
+	    if ($row[1] == 1) { $verb = "quad has"; } else { $verb = "quads have"; }
+	    printf "%3d %-11s 1 visit, no WWdiffs\n", $row[1], $verb;
 	} elsif ($row[0] == 2) {
-	    if ($row[1] == 1) { $verb = "chunk has"; } else { $verb = "chunks have"; }
-	    printf "%3d %-11s 2 visits (visit A/B     in comment), expect $row[1] WWdiff(s)\n", $row[1], $verb;
+	    if ($row[1] == 1) { $verb = "quad has"; } else { $verb = "quads have"; }
+	    printf "%3d %-11s 2 visits, expect $row[1] WWdiff(s)\n", $row[1], $verb;
 	    $diffExpect += $row[1];
 	} elsif ($row[0] == 3) {
-	    if ($row[1] == 1) { $verb = "chunk has"; } else { $verb = "chunks have"; }
-	    printf "%3d %-11s 3 visits (visit A/B/C   in comment), expect 2 * %d = %d WWdiffs\n", $row[1], $verb,  $row[1],  2 * $row[1];
+	    if ($row[1] == 1) { $verb = "quad has"; } else { $verb = "quads have"; }
+	    printf "%3d %-11s 3 visits, expect %d WWdiffs (2 per quad)\n", $row[1], $verb,  2 * $row[1];
 	    $diffExpect += $row[1]*2;
 	} elsif ($row[0] == 4) {
-	    if ($row[1] == 1) { $verb = "chunk has"; } else { $verb = "chunks have"; }
-	    printf "%3d %-11s 4 visits (visit A/B/C/D in comment), expect 2 * %d = %d WWdiffs\n", $row[1], $verb,  $row[1],  2 * $row[1];
+	    if ($row[1] == 1) { $verb = "quad has"; } else { $verb = "quads have"; }
+	    printf "%3d %-11s 4 visits, expect %d WWdiffs (2 per quad)\n", $row[1], $verb,  2 * $row[1];
 	    $diffExpect += $row[1]*2;
 	} else {
@@ -284,4 +345,64 @@
     print " * $diffExpect diffRuns expected *\n";
     if ($verbose) { print "\n"; }
+}
+
+# List chunks with duplicate visits
+{
+    # my $result = &mysql_select ("");
+#   my $query = "SELECT Nvisit, count(*) FROM";
+#    $query .= " (";
+    $query .= "   SELECT object, filter, chunk, Nexp_in_chunk FROM";
+    $query .= "   (";
+    $query .= "     SELECT object, filter, substr(comment, 1, position(' ' in comment)) as chunk, count(*) as Nexp_in_chunk";
+    $query .= "     FROM rawExp";
+    $query .= "     LEFT JOIN chipRun using (exp_id)";
+    $query .= "     LEFT JOIN camRun using (chip_id)";
+    $query .= "     LEFT JOIN camProcessedExp using (cam_id)";
+    $query .= "     WHERE dateobs LIKE '$date%'";
+    $query .= "     AND exp_id > $refExpID"; #REF
+    $query .= "     AND exp_type = 'OBJECT'";
+    $query .= "     AND obs_mode NOT LIKE 'ENGINEERING'";
+    $query .= "     AND obs_mode like '%SS%'";
+    $query .= "     AND rawExp.comment like '%visit%'";
+    $query .= "     AND (camProcessedExp.quality IS NULL or camProcessedExp.quality = 0)";
+    $query .= "     GROUP BY comment, filter, substr(comment, 1, position(' ' in comment))";
+    $query .= "   ) AS tableChunks where (Nexp_in_chunk > 1)";
+#    $query .= " ) AS tableVisits GROUP BY Nvisit";
+
+    my $result = &mysql_select ($query);
+
+    $doHeader = 1; 
+    while (@row = $result->fetchrow_array()) {
+	if ($doHeader) {
+	    print "chunks with duplicate visits:\n";
+	    printf "%11s %15s %14s %5s\n", "object", "filter", "chunk", "Nexp in chunk";
+	    $doHeader = 0;
+	}
+	printf "%11s %15s %14s %5s\n", $row[0], $row[1], $row[2], $row[3];
+    }
+    if (! $doHeader) { print "\n"; }
+}
+
+# List exposures which may be used for WWdiffs
+if (0) {
+    print "List exposures for WWdiffs excluding camRuns with bad quality:\n";
+
+    # my $result = &mysql_select ("");
+    my $query = "";
+    $query .= "     SELECT exp_name, object, filter, substr(comment, 1, position(' ' in comment)) as chunk";
+    $query .= "     FROM rawExp";
+    $query .= "     LEFT JOIN chipRun using (exp_id)";
+    $query .= "     LEFT JOIN camRun using (chip_id)";
+    $query .= "     LEFT JOIN camProcessedExp using (cam_id)";
+    $query .= "     WHERE dateobs LIKE '$date%'";
+    $query .= "     AND exp_id > $refExpID"; #REF
+    $query .= "     AND exp_type = 'OBJECT'";
+    $query .= "     AND obs_mode NOT LIKE 'ENGINEERING'";
+    $query .= "     AND obs_mode like '%SS%'";
+    $query .= "     AND rawExp.comment like '%visit%'";
+    $query .= "     AND (camProcessedExp.quality IS NULL or camProcessedExp.quality = 0)";
+
+    my $result = &mysql_select ($query);
+    &mysql_dump_result ($result);
 }
 
@@ -484,11 +605,13 @@
 # check for unpublished solar-system exposures
 {
-    my $query = "SELECT expall.exp_name, expall.dateobs, expall.comment, exppub.pubstate from";
+    my $query = "SELECT expall.exp_name, expall.dateobs, expall.comment, expall.warp_id, exppub.diff_id, exppub.pubstate from";
     $query .= "  (";
-    $query .= "    SELECT exp_name, comment, dateobs";
+    $query .= "    SELECT exp_name, comment, dateobs, warp_id";
     $query .= "    FROM rawExp";
     $query .= "    JOIN chipRun using (exp_id)";
     $query .= "    JOIN camRun using (chip_id)";
     $query .= "    JOIN camProcessedExp using (cam_id)";
+    $query .= "    JOIN fakeRun using (cam_id)";
+    $query .= "    JOIN warpRun using (fake_id)";
     $query .= "    WHERE dateobs like '$date%'";
     $query .= "    AND exp_id > $refExpID"; #REF
@@ -498,5 +621,5 @@
     $query .= "  LEFT JOIN";
     $query .= "  (";
-    $query .= "    SELECT exp_name, publishRun.state as pubstate";
+    $query .= "    SELECT exp_name, warpRun.warp_id, diffRun.diff_id, publishRun.state as pubstate";
     $query .= "    FROM diffRun";
     $query .= "    JOIN diffInputSkyfile using (diff_id)";
@@ -524,8 +647,10 @@
 	if ($doHeader) {
 	    print "Unpublished Solar System Exposures ( obs_mode like %SS% ) with good camera quality :\n";
-	    printf "%12s %-19s | %-16s\n", "exp_name", "dateobs", "comment";
+	    printf "%12s %12s %12s | %-19s | %-16s\n", "exp_name", "warp_id", "diff_id", "dateobs", "comment";
 	    $doHeader = 0;
 	}
-	printf "%12s %-19s | %-16s\n", $row[0], $row[1], $row[2]
+	if ($row[3] eq "") { $row[3] = "NULL"; }
+	if ($row[4] eq "") { $row[4] = "NULL"; }
+	printf "%12s %12s %12s | %-19s | %-16s\n", $row[0], $row[3], $row[4], $row[1], $row[2]
     }
 }
