📄 stockcheck.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 + -