distribute.awk


	 BEGIN {
	 	 doScatter = arg_doScatter
	 	 bukectDates[0]  = "2005-09-09"; bukectNames[0] = "ON";
	 	 bukectDates[1]  = "2005-09-12"; bukectNames[1] = "TN";
	 	 bukectDates[2]  = "2005-10-12"; bukectNames[2] = "1M";
	 	 bukectDates[3]  = "2005-11-14"; bukectNames[3] = "2M";
	 	 bukectDates[4]  = "2005-12-12"; bukectNames[4] = "3M";
	 	 bukectDates[5]  = "2006-03-13"; bukectNames[5] = "6M";
	 	 bukectDates[6]  = "2006-06-12"; bukectNames[6] = "9M";
	 	 bukectDates[7]  = "2006-09-12"; bukectNames[7] = "12M";
	 	 bukectDates[8]  = "2007-09-12"; bukectNames[8] = "2Y";
	 	 bukectDates[9]  = "2008-09-12"; bukectNames[9] = "3Y";
	 	 bukectDates[10] = "2009-09-14"; bukectNames[10]= "4Y";
	 	 bukectDates[11] = "2010-09-13"; bukectNames[11]= "5Y";
	 	 bukectDates[12] = "2011-09-12"; bukectNames[12]= "6Y";
	 	 bukectDates[13] = "2012-09-12"; bukectNames[13]= "7Y";
	 	 bukectDates[14] = "2013-09-12"; bukectNames[14]= "8Y";
	 	 bukectDates[15] = "2014-09-12"; bukectNames[15]= "9Y";
	 	 bukectDates[16] = "2015-09-14"; bukectNames[16]= "10Y";
	
	        taskNo = 0;
	        processedRow = 0;
	      }
	
	      #{ if (NR > 10000) { exit; } }
	      { if( doScatter=="YES" ) {
	          taskNo = ((NR-1) % 4500) + 1;
	        }
	        else if( doScatter=="NO" )
	        { # 529984 / 4500 = 117.774222...
	          if( ((NR<=118872) && (NR%117)==1 ) ||
	              ((NR>118872) && ((NR-118872)%118)==1 ) ) {
	            taskNo++;
	          }
	        }
	
	        for( i=0; i<=16; i++) {
	          if( (bukectDates[i]<$4) && (i<16 && $4<bukectDates[i+1]) ) {
	            key1 = "taskNo" taskNo " " $2 " " $3 " " bukectNames[i];
	            key2 = "taskNo" taskNo " " $2 " " $3 " " bukectNames[i+1];
	            bukectCounts[key1]++;
	            bukectCounts[key2]++;
	
	            printf("%i %i %s %s %s %s %i %s %i \n",
	                   taskNo, NR, $2, $3, $4, bukectNames[i],bukectCounts[key], bukectNames[i+1], bukectCounts[key2]);
	
	            processedRow++;
	            break;
	          }
	          else if( ($4==bukectDates[i]) || (i==0 && $4<bukectDates[i]) || (i==16 && $4>bukectDates[i]) ) {
	            key = "taskNo" taskNo " " $2 " " $3 " " bukectNames[i];
	            bukectCounts[key]++;
	
	            printf("%i %i %s %s %s %s %i \n", taskNo, NR, $2, $3, $4,	bukectNames[i], bukectCounts[key]);
	
	            processedRow++;
	            break;
	          }
	        }
	      }
	
	      END {
	        for( x in bukectCounts ) {
	          printf("%s %i \n", x, bukectCounts[x]);
	        }
	
	        printf("processedRow %s \n", processedRow);
	      }