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

📄 returnstockcheck.cpp

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

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

void ReturnStockCheck::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     = sFrom_Code;
	textFromName->Text = sFrom_Name;
	textRetDate->Text  = sDeliver_ymd;
	textProdCode->Text = sProd_Code;
	textProdName->Text = sProd_Name;
	textQty->Text      = iQTY.ToString();
	textRank->Text     = sRank;
	textMemo->Text     = sMemo;
	txtstockLot->Text  = sFrom_LOT;
}

void ReturnStockCheck::SetReturnData(void)
{
	int iOriginCnt;
	int iDestCnt;
	bool bFlg = true;
	
	//查找处保留品半成品是不是有,有就Update,没有就insert
	iOriginCnt	= CheckOriginStock();
	//查找是保留品半成品是不是有,有就Update,没有就insert
	iDestCnt	= CheckDestStock();
	
	DB->blnBeginTrans();
	//Update Return_Data
	bFlg = bFlg && UpdateReturn();

	//Update or Insert Stock_Data
	//Origin
	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 ReturnStockCheck::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 = '",		sStock_Code, S"' and");
	strSQL = String::Concat(strSQL,		S"	PRODUCT_CODE = '",	sProd_Code, 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 = ",	Convert::ToString(iType),S" and ");
	strSQL = String::Concat(strSQL,		S"	LOT='",txtstockLot->Text,S"'");


	return DB->intSQL_Select(strSQL);
}

int ReturnStockCheck::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 = '",		sFrom_Code,S"' and");
	strSQL = String::Concat(strSQL,		S"	PRODUCT_CODE = '",	sProd_Code, 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 and "					);
	strSQL = String::Concat(strSQL,		S"	LOT='",txtstockLot->Text,S"'");
	
	return DB->intSQL_Select(strSQL);
}

bool ReturnStockCheck::UpdateReturn(void)
{
	
	String * strSQL ;
	strSQL = S"";

	strSQL = String::Concat(strSQL, S"update"																			);
	strSQL = String::Concat(strSQL, S"	RETURN_DATA "																	);
	strSQL = String::Concat(strSQL, S"set"																				);
	if(sMemo->get_Length() > 0){
		strSQL = String::Concat(strSQL, S"	RETURN_MEMO='",			sMemo,				S"',"							);
	}
	strSQL = String::Concat(strSQL, S"	SHIFT = '",					cShift,				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='",				sFrom_Code,			S"' and"						);
	strSQL = String::Concat(strSQL, S"	DESTINATION_CODE='",		sStock_Code,		S"' and"						);
	strSQL = String::Concat(strSQL, S"	PRODUCT_CODE='",			sProd_Code,			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"	RETURN_QTY=",				iQTY.ToString(),	S"  and"						);
	strSQL = String::Concat(strSQL, S" to_date(to_char(return_ymd,'yyyy/mm/dd hh24:mi'),'yyyy/mm/dd hh24:mi')= to_date('",sDeliver_ymd,S"','yyyy/mm/dd hh24:mi') and ");
	//strSQL = String::Concat(strSQL, S"	RETURN_YMD = to_date('",	sDeliver_ymd,		S"','yyyy/mm/dd hh24:mi') and"	);
	strSQL = String::Concat(strSQL, S"	STOCK_TYPE =",				iType.ToString()									);
	
//	DB->blnBeginTrans();

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

	return false;
}

bool ReturnStockCheck::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(iQTY),	S" ");
	strSQL = String::Concat(strSQL,		S"where"															);
	strSQL = String::Concat(strSQL,		S"	FACTORY_CODE='",	sFactory,	S"' and"						);
	strSQL = String::Concat(strSQL,		S"	STOCK_POS='",		sStock_Code,	S"' and"					);
	strSQL = String::Concat(strSQL,		S"	PRODUCT_CODE='",	sProd_Code,	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 =",		iType.ToString()							);
	
//	DB->blnBeginTrans();

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

	return false;
}

bool ReturnStockCheck::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"	'",	sStock_Code,				S"',"	);
	strSQL = String::Concat(strSQL,		S"	'",	sProd_Code,					S"',"	);
	strSQL = String::Concat(strSQL, 	S"	'", sRank,						S"',"	);
	strSQL = String::Concat(strSQL, 			Convert::ToString(iType),	S","	);
	strSQL = String::Concat(strSQL,				Convert::ToString(iQTY),	S","	);
	strSQL = String::Concat(strSQL,		S"'",sFrom_LOT,S"'"							);
	strSQL = String::Concat(strSQL,		S")"										);
	
//	DB->blnBeginTrans();


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

	return false;
}

bool ReturnStockCheck::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(iQTY),	S") "	);
	strSQL = String::Concat(strSQL,		S"where"															);
	strSQL = String::Concat(strSQL,		S"	FACTORY_CODE='",	sFactory,	 S"' and"						);
	strSQL = String::Concat(strSQL,		S"	STOCK_POS='",		sFrom_Code, S"' and"						);
	strSQL = String::Concat(strSQL,		S"	PRODUCT_CODE='",	sProd_Code,	 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"													);
	
//	DB->blnBeginTrans();

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

	return false;
}

bool ReturnStockCheck::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"	'",	sFrom_Code,					S"',"	);
	strSQL = String::Concat(strSQL,		S"	'",	sProd_Code,					S"',"	);
	strSQL = String::Concat(strSQL, 	S"	'", sRank,						S"',"	);
	strSQL = String::Concat(strSQL, 	S"2,"										);
	strSQL = String::Concat(strSQL,				Convert::ToString(iQTY),	S","	);
	strSQL = String::Concat(strSQL,		S"'sFrom_LOT'"								);
	strSQL = String::Concat(strSQL,		S")"										);
	
//	DB->blnBeginTrans();

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

	return false;
}

⌨️ 快捷键说明

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