Index: /trunk/ippScripts/scripts/register_imfile.pl
===================================================================
--- /trunk/ippScripts/scripts/register_imfile.pl	(revision 30239)
+++ /trunk/ippScripts/scripts/register_imfile.pl	(revision 30240)
@@ -39,4 +39,5 @@
 
 my ($cache, $exp_id, $tmp_class_id, $tmp_exp_name, $uri, $bytes, $md5sum, $dbname, $verbose, $no_update, $no_op, $logfile);
+my ($sunrise, $sunset);
 GetOptions(
     'caches'           => \$cache,
@@ -47,4 +48,6 @@
     'bytes=s'          => \$bytes,
     'md5sum=s'         => \$md5sum,
+    'sunrise=s'        => \$sunrise,
+    'sunset=s'         => \$sunset,
     'dbname|d=s'       => \$dbname,    # Database name
     'verbose'          => \$verbose,   # Print to stdout
@@ -65,4 +68,10 @@
     defined $uri;
 
+unless (defined($sunset)) {
+    $sunset = '03:30:00';
+}
+unless (defined($sunrise)) {
+    $sunrise = '17:30:00';
+}
 
 my $RECIPE = "REGISTER"; # Recipe to use for ppStats
@@ -181,4 +190,7 @@
 $command .= " -dbname $dbname" if defined $dbname;
 if (abs($burntoolStateCurrent) == $burntoolStateTarget) {
+    $command .= " -data_state full";
+}
+elsif (is_daytime($dateobs,$sunset,$sunrise)) {
     $command .= " -data_state full";
 }
@@ -361,4 +373,31 @@
 }
 
+sub is_daytime
+{
+    my $dateobs = shift;
+    my $sunset  = shift;
+    my $sunrise = shift;
+
+    my $date,$time;
+
+    if ($dateobs =~ /T/) {
+	($date,$time) = split /T/, $dateobs;
+    }
+    else {
+	($date,$time) = split / /, $dateobs;
+    }
+    my ($hour,$minute,$second) = split /\:/, $time; # /;
+    my ($ss_hour,$ss_minute,$ss_second) = split /\:/, $sunset; # /;
+    my ($sr_hour,$sr_minute,$sr_second) = split /\:/, $sunrise; # /;
+    
+    if (($hour >= $ss_hour)&&($minute >= $ss_minute)&&($second >= $ss_second)) {
+	if (($hour <= $sr_hour)&&($minute <= $sr_minute)&&($second <= $sr_second)) {
+	    return(1);
+	}
+    }
+    
+    return(0);
+}
+
 sub my_die_for_add
 {
Index: /trunk/ippTasks/register.pro
===================================================================
--- /trunk/ippTasks/register.pro	(revision 30239)
+++ /trunk/ippTasks/register.pro	(revision 30240)
@@ -102,4 +102,6 @@
 
 $valid_burntool_value = 14
+$sunrise = '17:30:00'
+$sunset  = '03:30:00'
 
 macro replace.survey.values
@@ -302,4 +304,5 @@
     # XXX register_imfile.pl differs from the standard script : it does not have an 'outroot' argument, and it does not take '--redirect'
     $run = register_imfile.pl --exp_id $EXP_ID --tmp_class_id $TMP_CLASS_ID --tmp_exp_name $TMP_EXP_NAME --uri $URI --logfile $logfile --bytes $BYTES --md5sum $MD5SUM
+    $run = $run --sunset $sunset --sunrise $sunrise
     add_standard_args run
 
@@ -544,9 +547,20 @@
   # select entried from the current DB; cycle to the next DB, if it exists
   task.exec
+     book npages nsData -var Npages
+     if ($Npages == 0) 
+       $today = `date -u +%Y-%m-%d`
+     else 
+       book getpage nsData $ns_datePAGE -var today
+       $ns_datePAGE ++
+       if ($ns_datePAGE >= $Npages) set ns_datePAGE = 0
+     end
+
     $run = regtool -pendingburntoolimfile
-    $today = `date -u +%Y-%m-%d`
+
 # debugging purposes
 #   $today = "2010-12-25"
-    $run = $run -date $today -valid_burntool $valid_burntool_value
+    $dateobs_begin = $today\T$sunset
+    $dateobs_end   = $today\T$sunrise
+    $run = $run -dateobs_begin $dateobs_begin -dateobs_end $dateobs_end -valid_burntool $valid_burntool_value
     if ($DB:n == 0)
       option DEFAULT
Index: /trunk/ippTools/share/regtool_checkburntoolimfile.sql
===================================================================
--- /trunk/ippTools/share/regtool_checkburntoolimfile.sql	(revision 30239)
+++ /trunk/ippTools/share/regtool_checkburntoolimfile.sql	(revision 30240)
@@ -16,16 +16,19 @@
        rawImfile.burntool_state AS burntool_state,
        rawImfile.class_id,
+       summitImfile.class_id AS summit_class_id,
        (pzDownloadExp.state = 'stop') AS is_downloaded,
        (rawImfile.burntool_state IS NOT NULL) AS is_registered
        FROM
-            summitExp
-            LEFT JOIN pzDownloadExp USING(exp_name)
-            LEFT JOIN newExp ON exp_name = tmp_exp_name
-            LEFT JOIN rawExp USING(exp_id, exp_name)
-            LEFT JOIN rawImfile USING(exp_name)
+       summitExp
+       JOIN summitImfile USING(exp_name)
+       LEFT JOIN pzDownloadExp USING(exp_name)
+       LEFT JOIN newExp ON summitExp.exp_name = tmp_exp_name
+       LEFT JOIN newImfile ON (summitImfile.class_id = newImfile.tmp_class_id AND newExp.exp_id = newImfile.exp_id)
+       LEFT JOIN rawExp ON rawExp.exp_id = newExp.exp_id
+       LEFT JOIN rawImfile ON (rawImfile.exp_id = rawExp.exp_id AND rawImfile.tmp_class_id = newImfile.tmp_class_id)
        WHERE
-             summitExp.dateobs >= '@DATE@T00:00:00'
-	     AND summitExp.dateobs <= '@DATE@T23:59:59'
-	     AND (rawImfile.class_id = '@CLASS_ID@' OR rawImfile.class_id IS NULL)
+             summitExp.dateobs >= '@DATEOBS_BEGIN@'
+	     AND summitExp.dateobs <= '@DATEOBS_END@'
+	     AND summitImfile.class_id = '@CLASS_ID@'
 	     AND (exp_name <= '@EXP_NAME@')                                                                     
 ORDER BY summitExp.dateobs
Index: /trunk/ippTools/share/regtool_pendingburntoolimfile.sql
===================================================================
--- /trunk/ippTools/share/regtool_pendingburntoolimfile.sql	(revision 30239)
+++ /trunk/ippTools/share/regtool_pendingburntoolimfile.sql	(revision 30240)
@@ -17,15 +17,17 @@
        rawImfile.burntool_state AS burntool_state,
        rawImfile.class_id,
+       summitImfile.class_id AS summit_class_id,
        (pzDownloadExp.state = 'stop') AS is_downloaded,
        (rawImfile.burntool_state IS NOT NULL) AS is_registered
        FROM
-            summitExp
-            LEFT JOIN pzDownloadExp USING(exp_name)
-            LEFT JOIN newExp ON exp_name = tmp_exp_name
-            LEFT JOIN newImfile USING(exp_id)
-            LEFT JOIN rawExp USING(exp_id, exp_name)
-            LEFT JOIN rawImfile ON (rawImfile.exp_name = newExp.tmp_exp_name AND rawImfile.tmp_class_id = newImfile.tmp_class_id)
+       summitExp
+       JOIN summitImfile USING(exp_name)
+       LEFT JOIN pzDownloadExp USING(exp_name)
+       LEFT JOIN newExp ON summitExp.exp_name = tmp_exp_name
+       LEFT JOIN newImfile ON (summitImfile.class_id = newImfile.tmp_class_id AND newExp.exp_id = newImfile.exp_id)
+       LEFT JOIN rawExp ON rawExp.exp_id = newExp.exp_id
+       LEFT JOIN rawImfile ON (rawImfile.exp_id = rawExp.exp_id AND rawImfile.tmp_class_id = newImfile.tmp_class_id)
        WHERE
-             summitExp.dateobs >= '@DATE@T00:00:00'
-             AND summitExp.dateobs <= '@DATE@T23:59:59'
-ORDER BY newImfile.tmp_class_id,summitExp.dateobs
+             summitExp.dateobs >= '@DATEOBS_BEGIN@'
+             AND summitExp.dateobs <= '@DATEOBS_END@'
+ORDER BY summitImfile.class_id,summitExp.dateobs
Index: /trunk/ippTools/src/regtool.c
===================================================================
--- /trunk/ippTools/src/regtool.c	(revision 30239)
+++ /trunk/ippTools/src/regtool.c	(revision 30240)
@@ -187,5 +187,6 @@
   PXOPT_LOOKUP_STR(exp_name, config->args, "-exp_name", true, false);
   PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false);
-  PXOPT_LOOKUP_STR(date,     config->args, "-date", true, false);
+  PXOPT_LOOKUP_STR(dateobs_begin,     config->args, "-dateobs_begin", true, false);
+  PXOPT_LOOKUP_STR(dateobs_end,     config->args, "-dateobs_end", true, false);
   PXOPT_LOOKUP_S32(valid_burntool, config->args, "-valid_burntool", true, false);
   // optional
@@ -202,7 +203,11 @@
   query = rep;
 
+  // convert regular class_id format to summitImfile.class_id format
+  psStringSubstitute(&class_id,"ota","XY");
+  
   psStringSubstitute(&query,exp_name,"@EXP_NAME@");
   psStringSubstitute(&query,class_id,"@CLASS_ID@");
-  psStringSubstitute(&query,date,"@DATE@");
+  psStringSubstitute(&query,dateobs_begin,"@DATEOBS_BEGIN@");
+  psStringSubstitute(&query,dateobs_end,"@DATEOBS_END@");
 
   fprintf(stderr,"%s",query);
@@ -284,5 +289,6 @@
 
   // required
-  PXOPT_LOOKUP_STR(date,     config->args, "-date", true, false);
+  PXOPT_LOOKUP_STR(dateobs_begin,     config->args, "-dateobs_begin", true, false);
+  PXOPT_LOOKUP_STR(dateobs_end,     config->args, "-dateobs_end", true, false);
   PXOPT_LOOKUP_S32(valid_burntool, config->args, "-valid_burntool", true, false);
   // optional
@@ -298,5 +304,6 @@
   query = rep;
 
-  psStringSubstitute(&query,date,"@DATE@");
+  psStringSubstitute(&query,dateobs_begin,"@DATEOBS_BEGIN@");
+  psStringSubstitute(&query,dateobs_end,"@DATEOBS_END@");
 
   // fprintf(stderr,"%s",query);
@@ -344,5 +351,5 @@
 
     bool status = false;
-    char *tmp_id = psMetadataLookupStr(&status,row,"tmp_class_id");
+    char *tmp_id = psMetadataLookupStr(&status,row,"summit_class_id");
     if (!status) {
         // fprintf (stderr, "incomplete on %s\n", psMetadataLookupStr(NULL,row,"exp_name"));
@@ -355,5 +362,4 @@
     this_class_id = psStringCopy(tmp_id);
 
-    psStringSubstitute(&this_class_id,"XY","ota");
     psMetadataAddStr(row,PS_LIST_TAIL,"this_class_id",PS_META_REPLACE,"",this_class_id);
 
Index: /trunk/ippTools/src/regtoolConfig.c
===================================================================
--- /trunk/ippTools/src/regtoolConfig.c	(revision 30239)
+++ /trunk/ippTools/src/regtoolConfig.c	(revision 30240)
@@ -57,5 +57,6 @@
     ADD_OPT(Str,  checkburntoolimfileArgs, "-exp_name",       "define the exp_name (required)",         NULL);
     ADD_OPT(Str,  checkburntoolimfileArgs, "-class_id",       "define class ID (required)",         NULL);
-    ADD_OPT(Str,  checkburntoolimfileArgs, "-date",           "select the date to process (required)", NULL);
+    ADD_OPT(Str,  checkburntoolimfileArgs, "-dateobs_begin",  "set the earliest summit dateobs to consider (required)", NULL);
+    ADD_OPT(Str,  checkburntoolimfileArgs, "-dateobs_end",    "set the latest summit dateobs to consider (required)", NULL);
     ADD_OPT(S32,  checkburntoolimfileArgs, "-valid_burntool", "define the good burntool value (required)", 0);
     ADD_OPT(Str,  checkburntoolimfileArgs, "-inst",           "define the camera name",     NULL);
@@ -65,5 +66,6 @@
     // -pendingburntoolimfile
     psMetadata *pendingburntoolimfileArgs = psMetadataAlloc();
-    ADD_OPT(Str,  pendingburntoolimfileArgs, "-date",           "select the date to process (required)", NULL);
+    ADD_OPT(Str,  pendingburntoolimfileArgs, "-dateobs_begin",  "set the earliest summit dateobs to consider (required)", NULL);
+    ADD_OPT(Str,  pendingburntoolimfileArgs, "-dateobs_end",    "set the latest summit dateobs to consider (required)", NULL);
     ADD_OPT(S32,  pendingburntoolimfileArgs, "-valid_burntool", "define the good burntool value (required)", 0);
     ADD_OPT(Bool, pendingburntoolimfileArgs, "-simple",    "use the simple output format",          false);
