JessLilly.com Jess Lilly's home page
Home
Jess Lilly
Jess' Portfolio
Carin Palsrok-Lilly
Amos
Our journeys
Computer info
Links to our friends
Other Links
Contact info

 

// Jess Lilly: Removed all comments, blank lines, includes, 
// try catch blocks, and sensitive information.
void UplEDI944WorkUnit::createEDI944File() {
	SqlSelect workSQL( 
		"SELECT * "
		"FROM uploads "
		"where status = 'RDY' "
		"and task in ('IMR','IMRS') " );
	AsTransaction trans;
	AsRow uploadRecord;
	while ( true ) {
		uploadRecord = workSQL.exec( NOTFOUND_OK );
		if ( !uploadRecord.valid() ) {
			break;
		}
		else {
			trans.begin();
			_filePtr = fopen( getOutputFile().c_str(), "ab");
			_transactionSequence = 0;
			_receiptNumber = genSeqNumber("IBO");
			writeEDI944Header( uploadRecord );
			loopRCVDUploads( uploadRecord );
			fclose(_filePtr);
			string system_cmd ("/bin/mv -f " + _tempFile + " " + _outputFile);
			if (system(system_cmd.c_str()) != 0L) {
				LOGERR << "Failed to rename file.\nSystem command: <" + system_cmd + ">.";
			}
			trans.commit(); 
		}
	}
}
void UplEDI944WorkUnit::loopRCVDUploads( const AsRow & headerUploadRecord ) {
	SqlSelect loopRCVDSQL( 
		"SELECT group_code, order_num, order_type, line_num, part_num, hold_code, sum(quantity) qty, "
			"lot_code, user_code, package_code, sum(weight) wgt, "
		"FROM uploads "
		"where status = 'RDY' "
		"and task = 'RCVD' "
		"and order_num = '" + (string)headerUploadRecord["order_num"] + "' "
		"and order_type = '" + (string)headerUploadRecord["order_type"] + "' "
		"group by "
			"group_code, order_num, order_type, line_num, part_num, hold_code, "
			"lot_code, user_code, package_code, "
		"order by line_num, lot_code, user_code " );
	for ( loopRCVDSQL.exec( NOTFOUND_OK ); loopRCVDSQL.valid(); 
		loopRCVDSQL.fetch() ) {
		AsRow detailuploadRecord = loopRCVDSQL.getCurrent();
		writeEDI944Detail( detailuploadRecord );
	}
}
void UplEDI944WorkUnit::writeEDI944Header( const AsRow & uploadRecord ) {
	_transactionSequence++;
	fprintf(_filePtr,"%-20s", ((string)uploadRecord["order_type"]).c_str());
	fprintf(_filePtr,"%-14s",_currentDate.c_str());
	fprintf(_filePtr,"%8d", _transactionSequence);
	fprintf(_filePtr,"%-20s", string("RCPT      0004001003").c_str());
	fprintf(_filePtr,"%-12s", _receiptNumber.c_str());
	fprintf(_filePtr,"%-12s", string(" ").c_str());
	fprintf(_filePtr,"%-4s", ((string)uploadRecord["group_code"]).substr(0,4).c_str());
	fprintf(_filePtr,"%-30s", ((string)uploadRecord["order_num"]).c_str());
	// ...
	fprintf(_filePtr,"\n");
}
void UplEDI944WorkUnit::writeEDI944Detail( const AsRow & uploadRecord ) {
	// ...
	fprintf(_filePtr,"%-30s", ((string)uploadRecord["part_num"]).c_str());
	// ...
	fprintf(_filePtr,"%10d", (long)uploadRecord["qty"]);
	// ...
	fprintf(_filePtr,"\n");
}
 

JessLilly.com  Home