⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stockcheck.cpp

📁 这是一个工厂的生产线的仓库管理.有计划,实绩,库存等
💻 CPP
字号:
#include "StdAfx.h"
#include "StockCheck.h"

using namespace FAP;
using namespace System;
using namespace System::Globalization;

void StockCheck::InitSystem(void)
{
	//Get DateTime & Set Text
	DateTime dt;
  
	dt = DateTime::Now;
	textChkDate->Text = dt.ToString(L"yyyy/MM/dd HH:mm", DateTimeFormatInfo::InvariantInfo);

	textFrom->Text     = sD_CD;
	textFromName->Text = sD_Name;
	textDelDate->Text  = sDeliver_ymd;
	textDest->Text     = sS_CD;
	textDestName->Text = sS_Name;
	textProdCode->Text = sP_CD;
	textProdName->Text = sP_Name;
	textQty->Text      = iD_QTY.ToString();
	textRank->Text     = sRank;
	txtLot->Text	   = sLot;
	textBox3->Text	   =srowid1;

	if(iNew != 0){
		//New Data
		textFrom->ReadOnly		= false;
		textDelDate->ReadOnly   = false;
		textDest->ReadOnly		= false;
		textProdCode->ReadOnly	= false;
		textQty->ReadOnly		= false;
	}
}

void StockCheck::SetDeliverStockData()
{
	int iOriginCnt;
	int iDestCnt;
	bool bFlg = true;
	
	//Search Stock_Data
	iOriginCnt	= CheckOriginStock();
	iDestCnt	= CheckDestStock();
	
	DB->blnBeginTrans();
	//Update or Insert Deliver_Data
	if(iNew == 0){
		bFlg = bFlg && UpdateDeliver();
	} else {
		bFlg = bFlg && InsertDeliver();
	}

	//Update or Insert Stock_Data
	//Origin

	//add by kasenhoo@051129
	//update stock_data where lot is null

	if (!blnUpdateLotNull())
	{	
		DB->blnRollBack();
		return;
	}


	if(iOriginCnt > 0){
		bFlg = bFlg && UpdateOriginStock();
	} else {
		bFlg = bFlg && InsertOriginStock();
	}
	
	//Dest
	if(iDestCnt > 0){
		bFlg = bFlg && UpdateDestStock();
	} else {
		bFlg = bFlg && InsertDestStock();
	}
	
	//Commit
	if(bFlg == true){
		DB->blnCommit();
	} else {
		DB->blnRollBack();
	}
}

int StockCheck::CheckOriginStock(void)
{
	
	String * strSQL ;
	strSQL = S"";

	strSQL = String::Concat(strSQL,		S"select"									);
	strSQL = String::Concat(strSQL,		S"	count (*) as STOCK_CNT "				);
	strSQL = String::Concat(strSQL,		S"from"										);
	strSQL = String::Concat(strSQL,		S"	STOCK_DATA "							);
	strSQL = String::Concat(strSQL,		S"where"									);
	strSQL = String::Concat(strSQL,		S"	FACTORY_CODE = '", sFactory, S"' and"	);
	strSQL = String::Concat(strSQL,		S"	STOCK_POS = '", sD_CD, S"' and"			);
	strSQL = String::Concat(strSQL,		S"	PRODUCT_CODE = '", sP_CD, S"' and"		);
	if(sRank->get_Length() <= 0){
		strSQL = String::Concat(strSQL, S"	RANK is null and"						);
	} else {
		strSQL = String::Concat(strSQL, S"	RANK = '", sRank, S"' and"				);
	}
	strSQL = String::Concat(strSQL,		S"	STOCK_TYPE <> 2  "					);

	//if (iSAP ==0) {
	
		if(sLot->get_Length() <= 0){
			strSQL = String::Concat(strSQL, S" and LOT is null"							);
		} else {
			strSQL = String::Concat(strSQL, S" and	LOT = '", sLot, S"'"					);
		}
	//}


	return DB->intSQL_Select(strSQL);
}

int StockCheck::CheckDestStock(void)
{
	String * strSQL ;
	strSQL = S"";

	strSQL = String::Concat(strSQL,		S"select"									);
	strSQL = String::Concat(strSQL,		S"	count (*) as STOCK_CNT "				);
	strSQL = String::Concat(strSQL,		S"from"										);
	strSQL = String::Concat(strSQL,		S"	STOCK_DATA "							);
	strSQL = String::Concat(strSQL,		S"where"									);
	strSQL = String::Concat(strSQL,		S"	FACTORY_CODE = '", sFactory, S"' and"	);
	strSQL = String::Concat(strSQL,		S"	STOCK_POS = '", sS_CD, S"' and"			);
	strSQL = String::Concat(strSQL,		S"	PRODUCT_CODE = '", sP_CD, S"' "		);
	
	

	if(sRank->get_Length() <= 0){
		strSQL = String::Concat(strSQL, S" and	RANK is null "						);
	} else {
		strSQL = String::Concat(strSQL, S" and	RANK = '", sRank, S"' "				);
	}

	strSQL = String::Concat(strSQL,		S" and	STOCK_TYPE <> 2  "					);

	//if (iSAP ==0) {

		if(sLot->get_Length() <= 0){
			strSQL = String::Concat(strSQL, S" and LOT is null"							);
		} else {
			strSQL = String::Concat(strSQL, S"	and LOT = '", sLot, S"'"					);
		}
	//}
	
	return DB->intSQL_Select(strSQL);
}

bool StockCheck::UpdateDeliver(void)
{
	
	String * strSQL ;
	strSQL = S"";

	strSQL = String::Concat(strSQL, S"update"																		);
	strSQL = String::Concat(strSQL, S"	DELIVER_DATA "																);
	strSQL = String::Concat(strSQL, S"set"																			);
	strSQL = String::Concat(strSQL, S"	RANK='",					sRank,				S"',"						);
	strSQL = String::Concat(strSQL, S"	STOCK_YMD = to_date('",		sStock_ymd,			S"','yyyy/mm/dd hh24:mi') "	);
	strSQL = String::Concat(strSQL, S"where"																		);
	strSQL = String::Concat(strSQL, S"	FACTORY_CODE='",			sFactory,			S"' and"					);
	strSQL = String::Concat(strSQL, S"	ORIGIN_CODE='",				sD_CD,				S"' and"					);
	strSQL = String::Concat(strSQL, S"	DESTINATION_CODE='",		sS_CD,				S"' and"					);
	strSQL = String::Concat(strSQL, S"	PRODUCT_CODE='",			sP_CD,				S"' and"					);
	strSQL = String::Concat(strSQL, S"	DELIVER_QTY=",				iD_QTY.ToString(),	S"  and"					);
	strSQL = String::Concat(strSQL, S"	DELIVER_YMD = to_date('",	sDeliver_ymd,		S"','yyyy/mm/dd hh24:mi') and "	);
	strSQL = String::Concat(strSQL, S"   rowid='",					srowid1,			S"' and "					);
	if(sLot->get_Length() <= 0){
		strSQL = String::Concat(strSQL, S" 	LOT is null"							);
	} else {
		strSQL = String::Concat(strSQL, S" 	LOT = '", sLot, S"'"					);
	}

	/*  Add by KasenHOo @ 2005/11/29   */
	strSQL = String::Concat(strSQL, S" and STOCK_YMD is null");
	/*  End by KasenHOo @ 2005/11/29   */


	//DB->blnBeginTrans();

	if (DB->blnSQL_Execute(strSQL)) {
		try{
			return true;
		}
		catch (...) {
			return false;
		}
	} 

	return false;
}

bool StockCheck::InsertDeliver(void)
{
	
	String * strSQL;

	strSQL = S"";
	strSQL = String::Concat(strSQL, S"insert into"												);
	strSQL = String::Concat(strSQL, S"	DELIVER_DATA "											);
	strSQL = String::Concat(strSQL, S"("														);
	strSQL = String::Concat(strSQL, S"	FACTORY_CODE,"											);
	strSQL = String::Concat(strSQL, S"	ORIGIN_CODE,"											);
	strSQL = String::Concat(strSQL, S"	DESTINATION_CODE,"										);
	strSQL = String::Concat(strSQL, S"	PRODUCT_CODE,"											);
	strSQL = String::Concat(strSQL, S"	RANK,"													);
	strSQL = String::Concat(strSQL, S"	DELIVER_QTY,"											);
	strSQL = String::Concat(strSQL, S"	PARTS_DIV,"												);
	strSQL = String::Concat(strSQL, S"	DELIVER_YMD,"											);
	strSQL = String::Concat(strSQL, S"	STOCK_YMD,"												);
	strSQL = String::Concat(strSQL, S"	SHIFT,"													);
	strSQL = String::Concat(strSQL, S"	LOT "													);
	strSQL = String::Concat(strSQL, S")"														);
	strSQL = String::Concat(strSQL, S" values "													);
	strSQL = String::Concat(strSQL, S"("														);
	strSQL = String::Concat(strSQL, S"	'",		sFactory,			S"',"						);
	strSQL = String::Concat(strSQL, S"	'",		sD_CD,				S"',"						);
	strSQL = String::Concat(strSQL, S"	'",		sS_CD,				S"',"						);
	strSQL = String::Concat(strSQL, S"	'",		sP_CD,				S"',"						);
	strSQL = String::Concat(strSQL, S"	'",		sRank,				S"',"						);
	strSQL = String::Concat(strSQL,				iD_QTY.ToString(),	S" ,"						);
	strSQL = String::Concat(strSQL, S"	0,"														);
	strSQL = String::Concat(strSQL, S"	to_date('", sDeliver_ymd,   S"','yyyy/mm/dd hh24:mi'),"	);
	strSQL = String::Concat(strSQL, S"	to_date('", sStock_ymd,		S"','yyyy/mm/dd hh24:mi'),"	);
	strSQL = String::Concat(strSQL, S"	'",		cShift->Trim(),				S"',"						);
	strSQL = String::Concat(strSQL,	S"	'",		sLot,				S"'"						);
	strSQL = String::Concat(strSQL, S")"														);
	
	//DB->blnBeginTrans();


	if (DB->blnSQL_Execute(strSQL)) {
		try{
			return true;
		}
		catch (...) {
			return false;
		}
	} 

	return false;
}

bool StockCheck::UpdateOriginStock(void)
{
	String * strSQL ;

	strSQL = S"";
	strSQL = String::Concat(strSQL,		S"update"															);
	strSQL = String::Concat(strSQL,		S"	STOCK_DATA "													);
	strSQL = String::Concat(strSQL,		S"set"																);
	strSQL = String::Concat(strSQL,		S"	STOCK_QTY = STOCK_QTY + (-1)*",	Convert::ToString(iD_QTY),	S" ");
	strSQL = String::Concat(strSQL,		S"where"															);
	strSQL = String::Concat(strSQL,		S"	FACTORY_CODE='",	sFactory,	S"' and"						);
	strSQL = String::Concat(strSQL,		S"	STOCK_POS='",		sD_CD,		S"' and"						);
	strSQL = String::Concat(strSQL,		S"	PRODUCT_CODE='",	sP_CD,		S"' and"						);
	if(sRank->get_Length() <= 0){
		strSQL = String::Concat(strSQL, S"	RANK is null and"												);
	} else {
		strSQL = String::Concat(strSQL, S"	RANK = '", 			sRank,		S"' and"						);
	}
	strSQL = String::Concat(strSQL,		S"	STOCK_TYPE <> 2  "											);
	
	//if (iSAP==0){
		if(sLot->get_Length() <= 0){
			strSQL = String::Concat(strSQL, S" and	LOT is null"							);
		} else {
			strSQL = String::Concat(strSQL, S" and	LOT = '", sLot, S"'"					);
		}
	//}
	
	//DB->blnBeginTrans();

	if (DB->blnSQL_Execute(strSQL)) {
		try{
			return true;
		}
		catch (...) {
			return false;
		}
	} 

	return false;
}

bool StockCheck::InsertOriginStock(void)
{
	String * strSQL ;

	strSQL = S"";
	strSQL = String::Concat(strSQL,		S"insert into"								);
	strSQL = String::Concat(strSQL,		S"	STOCK_DATA "							);
	strSQL = String::Concat(strSQL,		S"("										);
	strSQL = String::Concat(strSQL,		S"	FACTORY_CODE,"							);
	strSQL = String::Concat(strSQL,		S"	STOCK_POS,"								);
	strSQL = String::Concat(strSQL,		S"	PRODUCT_CODE,"							);
	strSQL = String::Concat(strSQL,		S"	RANK,"									);
	strSQL = String::Concat(strSQL,		S"	STOCK_TYPE,"							);
	strSQL = String::Concat(strSQL,		S"	STOCK_QTY,"								);
	strSQL = String::Concat(strSQL,		S"	LOT"									);
	strSQL = String::Concat(strSQL,		S")"										);
	strSQL = String::Concat(strSQL,		S"values"									);
	strSQL = String::Concat(strSQL,		S"("										);
	strSQL = String::Concat(strSQL,		S"	'",	sFactory,					S"',"	);
	strSQL = String::Concat(strSQL,		S"	'",	sD_CD,						S"',"	);
	strSQL = String::Concat(strSQL,		S"	'",	sP_CD,						S"',"	);
	strSQL = String::Concat(strSQL, 	S"	'", sRank,						S"',"	);
	strSQL = String::Concat(strSQL, 	S"	0,"										); //Stock Type
	strSQL = String::Concat(strSQL,				Convert::ToString(iD_QTY),	S","	);
	strSQL = String::Concat(strSQL, 	S"	'", sLot,						S"'"	);
	strSQL = String::Concat(strSQL,		S")"										);
	
	//DB->blnBeginTrans();


	if (DB->blnSQL_Execute(strSQL)) {
		try{
			return true;
		}
		catch (...) {
			return false;
		}
	} 

	return false;
}

bool StockCheck::UpdateDestStock(void)
{
	String * strSQL ;

	strSQL = S"";
	strSQL = String::Concat(strSQL,		S"update"															);
	strSQL = String::Concat(strSQL,		S"	STOCK_DATA "													);
	strSQL = String::Concat(strSQL,		S"set"																);
	strSQL = String::Concat(strSQL,		S"	STOCK_QTY = STOCK_QTY + (",	Convert::ToString(iD_QTY),	S") "	);
	strSQL = String::Concat(strSQL,		S"where"															);
	strSQL = String::Concat(strSQL,		S"	FACTORY_CODE='",	sFactory,	S"' and"						);
	strSQL = String::Concat(strSQL,		S"	STOCK_POS='",		sS_CD,		S"' and"						);
	strSQL = String::Concat(strSQL,		S"	PRODUCT_CODE='",	sP_CD,		S"' and"						);
	if(sRank->get_Length() <= 0){
		strSQL = String::Concat(strSQL, S"	RANK is null and"												);
	} else {
		strSQL = String::Concat(strSQL, S"	RANK = '", 			sRank,		S"' and"						);
	}
	strSQL = String::Concat(strSQL,		S"	STOCK_TYPE <> 2  "											);
	
	//if (iSAP == 0) {
		if(sLot->get_Length() <= 0){
			strSQL = String::Concat(strSQL, S" and	LOT is null"							);
		} else {
			strSQL = String::Concat(strSQL, S" and	LOT = '", sLot, S"'"					);
		}
	//}
	
	
	//DB->blnBeginTrans();

	if (DB->blnSQL_Execute(strSQL)) {
		try{
			return true;
		}
		catch (...) {
			return false;
		}
	} 

	return false;
}

bool StockCheck::InsertDestStock(void)
{
	String * strSQL ;

	strSQL = S"";
	strSQL = String::Concat(strSQL,		S"insert into"								);
	strSQL = String::Concat(strSQL,		S"	STOCK_DATA "							);
	strSQL = String::Concat(strSQL,		S"("										);
	strSQL = String::Concat(strSQL,		S"	FACTORY_CODE,"							);
	strSQL = String::Concat(strSQL,		S"	STOCK_POS,"								);
	strSQL = String::Concat(strSQL,		S"	PRODUCT_CODE,"							);
	strSQL = String::Concat(strSQL,		S"	RANK,"									);
	strSQL = String::Concat(strSQL,		S"	STOCK_TYPE,"							);
	strSQL = String::Concat(strSQL,		S"	STOCK_QTY,"								);
	strSQL = String::Concat(strSQL,		S"	LOT"									);
	strSQL = String::Concat(strSQL,		S")"										);
	strSQL = String::Concat(strSQL,		S"values"									);
	strSQL = String::Concat(strSQL,		S"("										);
	strSQL = String::Concat(strSQL,		S"	'",	sFactory,					S"',"	);
	strSQL = String::Concat(strSQL,		S"	'",	sS_CD,						S"',"	);
	strSQL = String::Concat(strSQL,		S"	'",	sP_CD,						S"',"	);
	strSQL = String::Concat(strSQL, 	S"	'", sRank,						S"',"	);
	strSQL = String::Concat(strSQL, 	S"	0,"										); //Stock Type
	strSQL = String::Concat(strSQL,				Convert::ToString(iD_QTY),	S","	);
	strSQL = String::Concat(strSQL,		S"	'", sLot,						S"'"	);
	strSQL = String::Concat(strSQL,		S")"										);
	
	//DB->blnBeginTrans();

	if (DB->blnSQL_Execute(strSQL)) {
		try{
			return true;
		}
		catch (...) {
			return false;
		}
	} 

	return false;
}

/********************************************************************
	created     :	KasenHOo @ Eleplan
    Name        :   blnUpdateLotNull
	Date		:   2005/11/29
	In			:   null
	Out			:   bool
	Update		:   ?
	Note		:   update stock_data 
*********************************************************************/

bool StockCheck::blnUpdateLotNull(){
	String * strSQL;
	//bool blnRtn;

	strSQL = S"update stock_data ";
	strSQL = String::Concat(strSQL,S" set stock_qty = stock_qty + ",iD_QTY.ToString());
	strSQL = String::Concat(strSQL,		S" where "									);
	strSQL = String::Concat(strSQL,		S"	FACTORY_CODE='",	sFactory,	S"' and");
	strSQL = String::Concat(strSQL,		S"	STOCK_POS='",		sS_CD,		S"' and");
	strSQL = String::Concat(strSQL,		S"	PRODUCT_CODE='",	sP_CD,		S"' and");
	if(sRank->get_Length() <= 0){
		strSQL = String::Concat(strSQL, S"	RANK is null and"						);
	} else {
		strSQL = String::Concat(strSQL, S"	RANK = '", 			sRank,		S"' and");
	}
	strSQL = String::Concat(strSQL,		S"	STOCK_TYPE <> 2  "						);

	strSQL = String::Concat(strSQL, S" and	trim(LOT) is null"						);

	strSQL = String::Concat(strSQL, S" and stock_qty < 0"							);


	if (DB->blnSQL_Execute(strSQL)) {
		try{
			return true;
		}
		catch (...) {
			return false;
		}
	} 

	return false;


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -