📄 productresultinput.cpp
字号:
}
strSQL = S"";
strSQL = String::Concat(S"select count(*) as countnumber from parts_composition_byorder where order_no='",strlot,S"'");
dRowTmp = DBbTmp->dRowSQL_Select(strSQL);
try
{
if (0>=(Convert::ToInt32(dRowTmp->Item[S"countnumber"]->ToString())))
{
return false;
}
else
{
return true;
}
}
catch (...)
{
return false;
}
}
//Insert Product result data into product_result_data & stock_data
bool FAP::ProductResultInput::blnInstProData(String *strProCode,
String * strRank,
Single intNum,
String *strOrder
)
{
//Insert into product_result _data
DateTime dteTmp ;
String * strSQL ;
int intTmp;
dteTmp = DateTime::Now;
strSQL = S"update product_result_data set PRODUCT_QTY = PRODUCT_QTY + ";
strSQL = String::Concat(strSQL,intNum.ToString());
strSQL = String::Concat(strSQL,S" where FACTORY_CODE = '",infClsRstInput->strFactoryCode,S"'");
strSQL = String::Concat(strSQL,S" and LINE_CODE = '",txtLine->Text,S"'");
strSQL = String::Concat(strSQL,S" and PROCESS_NO = '",txtProcess->Text,S"'");
strSQL = String::Concat(strSQL,S" and PRODUCT_CODE = '",txtProCode->Text,S"'");
strSQL = String::Concat(strSQL,S" and shift = '",txtTeam->Text,S"'");
strSQL = String::Concat(strSQL,S" and ymd = to_date('",txtProDate->Text,S"','YYYY-MM-DD')");
if (strRank->get_Length()>0){
strSQL = String::Concat(strSQL,S" and rank = '",strRank,S"'");
}
strSQL = String::Concat(strSQL,S" and LOT = '",strOrder,S"'");
if (!DBBRstInExec->blnSQL_Execute(strSQL,&intTmp)){
//DBBRstInput->blnRollBack();
return false;
}
if (intTmp <=0) {
strSQL = S"insert into PRODUCT_RESULT_DATA values ";
strSQL = String::Concat(strSQL,S"('",infClsRstInput->strFactoryCode,S"',");
strSQL = String::Concat(strSQL,S"'",txtLine->Text,S"',");
strSQL = String::Concat(strSQL,S"'",txtProcess->Text,S"',");
strSQL = String::Concat(strSQL,S"'",txtProCode->Text,S"',");
strSQL = String::Concat(strSQL,S"'",strRank,S"',");
strSQL = String::Concat(strSQL,intNum.ToString(),S",");
strSQL = String::Concat(strSQL,S"0,");
dteTmp = *__try_cast<DateTime*>(Convert::ChangeType(txtProDate->Text->ToString(), __typeof(DateTime)));
strSQL = String::Concat(strSQL,S"to_date('",String::Format("{0:yyyy-MM-dd}",__box( dteTmp)),S"','yyyy-MM-dd'),");
strSQL = String::Concat(strSQL,S"'",txtTeam->Text,S"',");
strSQL = String::Concat(strSQL,S"'",infClsRstInput->intGroup.ToString(),S"',");
strSQL = String::Concat(strSQL, strOrder,S",");
strSQL = String::Concat(strSQL,S"to_date('",String::Format("{0:yyyy-MM-dd}",__box(DateTime::Today)) ,S"','yyyy-MM-dd'))");
if (!DBBRstInExec->blnSQL_Execute(strSQL)){
//DBBRstInput->blnRollBack();
return false;
}
}
intTmp = 0;
//insert into stock_data
strSQL = S"update stock_data set stock_qty = stock_qty + ";
strSQL = String::Concat(strSQL,intNum.ToString());
strSQL = String::Concat(strSQL,S" where FACTORY_CODE = '",infClsRstInput->strFactoryCode,S"'");
strSQL = String::Concat(strSQL,S" and STOCK_POS = '",infClsRstInput->strProcess,S"'");
strSQL = String::Concat(strSQL,S" and PRODUCT_CODE = '",strProCode,S"'");
if (strRank->get_Length()>0){
strSQL = String::Concat(strSQL,S" and rank = '",strRank,S"'");
}
strSQL = String::Concat(strSQL,S" and LOT = '",strOrder,S"'");
if (!DBBRstInExec->blnSQL_Execute(strSQL,&intTmp)){
//DBBRstInput->blnRollBack();
return false;
}
/*FACTORY_CODE
STOck_POS
PRODUCT_CODE
RANK
STOCK_TYPE
STOCK_QTY
LOT*/
if (intTmp <=0) {
strSQL = S"insert into stock_data(FACTORY_CODE,STOck_POS,PRODUCT_CODE,RANK,STOCK_QTY,STOCK_TYPE,LOT) values ";
strSQL = String::Concat(strSQL,S"('",infClsRstInput->strFactoryCode,S"',");
strSQL = String::Concat(strSQL,S"'",infClsRstInput->strProcess,S"',");
strSQL = String::Concat(strSQL,S"'",strProCode,S"',");
strSQL = String::Concat(strSQL,S"'",strRank,S"',");
strSQL = String::Concat(strSQL,intNum.ToString(),S",");
strSQL = String::Concat(strSQL,S"1,");
strSQL = String::Concat(strSQL,S"'", strOrder,S"')");
if (!DBBRstInExec->blnSQL_Execute(strSQL)){
//DBBRstInput->blnRollBack();
return false;
}
}
return true;
}
/********************************************************************
created : KasenHOo @ Eleplan
Name : blnInstStockData
Date : 2005/11/16
In : ?
Out : ?
Update : YeFeng @ 2006/4/10
*********************************************************************/
bool FAP::ProductResultInput::blnInstStockData(String *strProCode,
String *strRank,
Single intNum,
String *strLot)
{
int intUptRcrds;
String * strSQL;
bool blnInst;
Single intNumbac;
// add by kasenhoo @ 051128
//int intUptNum;
DataSet * dSetTmp;
DataTable *dTableTmp ;
intNumbac = intNum;
//找查原材料在仓库里面还有没有
strSQL = S"select * from stock_data where PRODUCT_CODE = '";
strSQL = String::Concat(strSQL,strProCode,S"' and STOCK_POS = '",infClsRstInput->strProcess,S"'");
strSQL = String::Concat(strSQL,S" and FACTORY_CODE = '",infClsRstInput->strFactoryCode,S"'");
if (!(strRank->Trim()->CompareTo(S"")==0))
strSQL = String::Concat(strSQL,S" and rank = '",strRank,S"'" );
strSQL = String::Concat(strSQL,S" and trim(lot) is not null and lot<>'-1000000' and STOCK_TYPE = 0 and STOCK_QTY>0 ");
strSQL = String::Concat(strSQL, S" order by lot asc");
DBBRstInput->blnCnnOpen();
dSetTmp = DBBRstInput->dSetSQL_Select(strSQL,S"TEMP",0);
DBBRstInput->blnCnnClose();
//Get Table
dTableTmp = dSetTmp->Tables->Item[S"TEMP"];
System::Collections::IEnumerator* emnFapRow = dTableTmp->Rows->GetEnumerator();
emnFapRow->Reset();
//Get All Chile Part
while (emnFapRow->MoveNext())
{
DataRow *dRowTmp = __try_cast<DataRow*>(emnFapRow->Current);
Single intCutNum = Convert::ToSingle(dRowTmp->Item[S"stock_qty"]);
//dRowTmp->BeginEdit();
//用需要消的库存减去已有的库存
//如果intuptnum》0,说明已有库存不够
//如果<0, 说明库存够的
intNum = intNum - intCutNum;
//没有原材料的情况下
if (intNum >= 0){
strSQL = S"update stock_data set stock_qty = 0 ";
}
else{
//有原材料的情况下
strSQL = S"update stock_data set stock_qty = stock_qty - ";
strSQL = String::Concat(strSQL,intNumbac.ToString());
}
strSQL =String::Concat( strSQL,S" where PRODUCT_CODE = '");
strSQL = String::Concat(strSQL,strProCode,S"' and STOCK_POS = '",infClsRstInput->strProcess,S"'");
strSQL = String::Concat(strSQL,S" and FACTORY_CODE = '",infClsRstInput->strFactoryCode,S"' and STOCK_TYPE = 0 ");
if (!(strRank->Trim()->CompareTo(S"")==0))
strSQL = String::Concat(strSQL,S" and rank = '",strRank,S"'" );
if (Convert::ToString(dRowTmp->Item[S"lot"])->CompareTo(S"")>0)
strSQL = String::Concat(strSQL, S" and lot = '",Convert::ToString(dRowTmp->Item[S"lot"]),S"'");
if (!DBBRstInExec->blnSQL_Execute(strSQL))
return false;
//dRowTmp->EndEdit();
//dRowTmp->AcceptChanges();
if (intNum >= 0)
{
strSQL = S"insert into f_result_note (order_no,product_code,parts_no,parts_code,product_qty,parts_qty) values ";
strSQL = String::Concat(strSQL,S" (");
strSQL = String::Concat(strSQL, S"'",strLot,S"',");
strSQL = String::Concat(strSQL, S"'",txtProCode->Text,S"',");
strSQL = String::Concat(strSQL, S"'",dRowTmp->Item[S"lot"]->ToString(),S"',");
strSQL = String::Concat(strSQL, S"'",strProCode,S"',");
strSQL = String::Concat(strSQL, txtQuantity->Text,S",");
strSQL = String::Concat(strSQL, Convert::ToString(intCutNum),S")");
}
else
{
strSQL = S"insert into f_result_note (order_no,product_code,parts_no,parts_code,product_qty,parts_qty) values ";
strSQL = String::Concat(strSQL,S" (");
strSQL = String::Concat(strSQL, S"'",strLot,S"',");
strSQL = String::Concat(strSQL, S"'",txtProCode->Text,S"',");
strSQL = String::Concat(strSQL, S"'",dRowTmp->Item[S"lot"]->ToString(),S"',");
strSQL = String::Concat(strSQL, S"'",strProCode,S"',");
strSQL = String::Concat(strSQL, txtQuantity->Text,S",");
strSQL = String::Concat(strSQL, Convert::ToString(intCutNum - (intNum * -1)),S")");
}
blnInst = DBBRstInExec->blnSQL_Execute(strSQL);
if (!blnInst)
return false;
if (intNum<=0){
break;
}
}
//减去原材料的库存
if (intNum > 0){
strSQL = S"update stock_data set stock_qty = stock_qty - ";
strSQL = String::Concat(strSQL, intNum.ToString());
strSQL = String::Concat( strSQL,S" where PRODUCT_CODE = '");
strSQL = String::Concat(strSQL,strProCode,S"' and STOCK_POS = '",infClsRstInput->strProcess,S"'");
strSQL = String::Concat(strSQL,S" and FACTORY_CODE = '",infClsRstInput->strFactoryCode,S"' and STOCK_TYPE = 0");
if (!(strRank->Trim()->CompareTo(S"")==0))
strSQL = String::Concat(strSQL,S" and rank = '",strRank,S"'" );
strSQL = String::Concat(strSQL, S" and trim(lot) is not null and lot='-1000000'");
if (!DBBRstInExec->blnSQL_Execute(strSQL,&intUptRcrds))
return false;
strSQL = S"insert into f_result_note (order_no,product_code,parts_no,parts_code,product_qty,parts_qty) values ";
strSQL = String::Concat(strSQL,S" (");
strSQL = String::Concat(strSQL, S"'",strLot,S"',");
strSQL = String::Concat(strSQL, S"'",txtProCode->Text,S"',");
strSQL = String::Concat(strSQL, S"'",S"-1000000",S"',");
strSQL = String::Concat(strSQL, S"'",strProCode,S"',");
strSQL = String::Concat(strSQL, txtQuantity->Text,S",");
strSQL = String::Concat(strSQL, intNum.ToString(),S")");
blnInst = DBBRstInExec->blnSQL_Execute(strSQL);
if (!blnInst)
return false;
//更新不成功的话,执行新增操作
if (intUptRcrds <= 0){
strSQL = S"insert into stock_data (FACTORY_CODE,STOCK_POS,PRODUCT_CODE,RANK,STOCK_TYPE,STOCK_QTY,LOT) values ";
strSQL = String::Concat(strSQL,S" (");
strSQL = String::Concat(strSQL, S"'",infClsRstInput->strFactoryCode,S"',");
strSQL = String::Concat(strSQL, S"'",infClsRstInput->strProcess,S"',");
strSQL = String::Concat(strSQL, S"'",strProCode,S"',");
strSQL = String::Concat(strSQL, S"'",strRank,S"',");
strSQL = String::Concat(strSQL, S"0,");
strSQL = String::Concat(strSQL, S"-",intNum.ToString(),S",");
strSQL = String::Concat(strSQL, S"'-1000000')");
blnInst = DBBRstInExec->blnSQL_Execute(strSQL);
if (!blnInst)
return false;
}
}
// strSQL = S"update stock_data set STOCK_QTY = STOCK_QTY + ";
// strSQL = String::Concat(strSQL, intNum.ToString());
// strSQL = String::Concat(strSQL,S" where PRODUCT_CODE = '",strProCode->Trim(),S"'");
// strSQL = String::Concat(strSQL,S" and STOCK_TYPE = 1");
// strSQL = String::Concat(strSQL,S" and STOCK_POS = '", infClsRstInput->strProcess,S"'");
// strSQL = String::Concat(strSQL,S" and lot = '", strLot ,S"'");
//
// if (!(strRank->Trim()->CompareTo(S"")==0))
// strSQL = String::Concat(strSQL,S" and rank = '",strRank,S"'" );
//
// blnInst = DBBRstInput->blnSQL_Execute(strSQL,&intUptRcrds);
//
// if (!blnInst)
// return false;
// if (intUptRcrds == 0) {
// strSQL = S"insert into stock_data (FACTORY_CODE,STORE_POS,PRODUCT_CODE,RANK,STOCK_TYPE,STOCK_QTY,LOT) values ";
// strSQL = String::Concat(strSQL,S" (");
// strSQL = String::Concat(strSQL, S"'",infClsRstInput->strFactoryCode,S"',");
// strSQL = String::Concat(strSQL, S"'",infClsRstInput->strProcess,S"',");
// strSQL = String::Concat(strSQL, S"'",strProCode,S"',");
// strSQL = String::Concat(strSQL, S"'",strRank,S"',");
// strSQL = String::Concat(strSQL, S"1,");
// strSQL = String::Concat(strSQL, intNum.ToString(),S",");
// strSQL = String::Concat(strSQL,S"'", strLot,S"'");
//
// strSQL = String::Concat(strSQL,S" )");
// }
// else
// {
// return true;
// }
return true;
}
/********************************************************************
created : KasenHOo @ Eleplan
Name : dtblGetProcessPro
Date : 2005/12/01
In : ?
Out : ?
Update : ?
Note : Get Product of each process
*********************************************************************/
DataTable * FAP::ProductResultInput::dtblGetProcessPro(infClass *infTmp,
DBBase * dBTMP)
{
String * strSQL;
DataTable *dtblTmp;
DataSet * dsetTmp;
/*OleDbDataReader *dReadTmp;*/
strSQL = S"select PRODUCT_NO from process_pro where factory_no = ";
strSQL = String::Concat(strSQL,S"'",infTmp->strFactoryCode,S"'");
strSQL = String::Concat(strSQL,S" and Line_no = '",infTmp->strLine,S"'");
strSQL = String::Concat(strSQL,S" and process_no = '",infTmp->strProcess,S"'");
dBTMP->blnCnnOpen();
dsetTmp = dBTMP->dSetSQL_Select(strSQL,S"TMP",0);
dBTMP->blnCnnClose();
try
{
dtblTmp = dsetTmp->Tables->Item[S"TMP"];
}
catch (...) {
return NULL;
}
return dtblTmp;
}
String * FAP::ProductResultInput::fblnschedule(String * strproduct_code,String *strproduct_shift,DBBase * DBTmp)
{
String * strSQL;
DataRow * dRowTmp;
DateTime dteTmp ;
dteTmp = DateTime::Now;
strSQL = String::Concat(S" select lot from product_schedule where product_code='",strproduct_code,S"'");
strSQL = String::Concat(strSQL,S" and ymd = to_date('",dteTmp.ToString(S"yyyyMMdd"),S"','YYYY-MM-DD')");
strSQL = String::Concat(strSQL,S" and shift ='",strproduct_shift,S"'");
if (!DBTmp->blnCnnOpen()) {
MessageBox::Show(S"Open Oracle Error!! ",S"lot");
return S"";
}
dRowTmp = DBTmp->dRowSQL_Select(strSQL);
try
{
return dRowTmp->Item[S"lot"]->ToString();
}
catch (...) {
return S"";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -