📄 mwo.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "mWo.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
TKSWo *sdWo;
//---------------------------------------------------------------------------
__fastcall TKSWo::TKSWo()
:TKSMidBase()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidHeadValues()
{
//工单号
ValidWoCode();
//状态
ValidWoStatus();
//类型
ValidWoType();
//物料消耗方式
ValidWoConsume();
//工艺跟踪方式
ValidWoTrace();
//加工件
ValidWoGoods();
//销售订单号
ValidWoSoCode();
//订单行号
ValidWoSodLine();
//工艺路线
ValidWoRoute();
//来源
ValidWoFrom();
//检验标志
ValidWoChkFlg();
//要求数量
ValidWoQty();
//完工数量
ValidWoCQty();
//合格数量
ValidWoEQty();
//废品数量
ValidWoWQty();
//返修数量
ValidWoRQty();
//次品数量
ValidWoSQty();
//日期
ValidWoDate();
//要求完成日期
ValidWoRdate();
//MRP日期
ValidWoMDate();
//开始日期
ValidWoSdate();
//结清
ValidWoClose();
//结清日期
ValidWoCloseDate();
//计量单位
ValidWoUnit();
//总工时
ValidWoTwt();
//人工费
ValidWoPamt();
//材料费
ValidWoMamt();
//制造费用
ValidWoEamt();
//备注
ValidWoDesc();
//操作员
ValidWoUser();
//系统时间
ValidWoSysDate();
//批号
ValidWoBatch();
//审核
ValidWoCheck();
//审核人
ValidWoChecker();
//审核日期
ValidWoCheckDate();
//取消
ValidWoCancel();
//取消日期
ValidWoCancelDate();
//生管人员
ValidWoProducter();
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoCode() //工单号
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoStatus() //状态
{
int m_WoStatus;
m_WoStatus=GetMasterValue("WoStatus");
if(m_WoStatus!=1 && m_WoStatus!=2 && m_WoStatus!=3 && m_WoStatus!=4 && m_WoStatus!=5)
throw Exception("加工单状态只能取值(1-预备,2-确认计划,3-待下达,4-已下达,5-已完工)!");
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoType() //类型
{
int m_WoType;
m_WoType=GetMasterValue("WoType");
if(m_WoType!=1 && m_WoType!=2 && m_WoType!=3 && m_WoType!=4 && m_WoType!=5)
throw Exception("加工单类型只能取值(1-常规加工,2-返工,3-改装,4-委外加工,5-副产品)!");
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoConsume() //物料消耗方式
{
int m_WoConsume;
m_WoConsume=GetMasterValue("WoConsume");
if(m_WoConsume!=1 && m_WoConsume!=2 && m_WoConsume!=3)
throw Exception("物料消耗方式只能取值(1-配套表,2-BOM表,3-不消耗)!");
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoTrace() //工艺跟踪方式
{
int m_WoTrace;
m_WoTrace=GetMasterValue("WoTrace");
if(m_WoTrace!=1 && m_WoTrace!=2 && m_WoTrace!=3)
throw Exception("跟踪标志只能取值(1-工艺路线,2-工单路线,3-不跟踪)!");
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoGoods() //加工件
{
AnsiString m_WoGoods;
AnsiString b_WoGoods;
m_WoGoods=GetMasterValue("WoGoods");
b_WoGoods=GetMasterOldValue("WoGoods");
if(m_WoGoods.UpperCase()!=b_WoGoods.UpperCase())
{
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("select GoodsCode,GoodsUnitCode,GoodsTrackSo,GoodsBatch From sdGoods Where (GoodsType=1 or GoodsType=2) and GoodsFrom=2 and GoodsCode='"+m_WoGoods+"'");
Query->Open();
if(Query->RecordCount==0)
{
Query->Close();
throw Exception("加工单的加工件编码:'"+m_WoGoods+"'不存在或不符合条件!");
}
}
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoSoCode() //销售订单号
{
AnsiString m_WoSoCode;
AnsiString b_WoSoCode;
m_WoSoCode=GetMasterValue("WoSoCode");
b_WoSoCode=GetMasterOldValue("WoSoCode");
if(!m_WoSoCode.IsEmpty())
{
if(m_WoSoCode.IsEmpty()==false)
{
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("select SohCode from sdSoh where SohCheck=1 and SohCancel=0 and SohClose=0 and SohCode='"+m_WoSoCode+"'");
Query->Open();
if(Query->RecordCount<=0)
{
Query->Close();
throw Exception("销售订单:"+m_WoSoCode+"不存在,或未审核,或已作废,或已结清!");
}
Query->Close();
}
}
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoSodLine() //订单行号
{
int m_WoSodLine;
int b_WoSodLine;
AnsiString m_WoSoCode;
m_WoSodLine=GetMasterValue("WoSodLine");
b_WoSodLine=GetMasterOldValue("WoSodLine");
m_WoSoCode=GetMasterValue("WoSoCode");
if(!m_WoSoCode.IsEmpty())
{
if(m_WoSodLine!=b_WoSodLine)
{
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("select SodLine,SodGoods from sdSod where SodCode='"+m_WoSoCode+"' and SodLine="+AnsiString(m_WoSodLine));
Query->Open();
if(Query->RecordCount<=0)
{
Query->Close();
throw Exception("订单号:'"+m_WoSoCode+"'的订单行号:'"+IntToStr(m_WoSodLine)+"'不存在!");
}
Query->Close();
}
}
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoRoute() //工艺路线
{
AnsiString m_WoRoute;
AnsiString b_WoRoute;
int m_WoTrace;
m_WoRoute=GetMasterValue("WoRoute");
m_WoTrace=GetMasterValue("WoTrace");
b_WoRoute=GetMasterOldValue("WoRoute");
if(m_WoTrace==1)
{
if(m_WoRoute.IsEmpty())
throw Exception("请输入工艺路线!");
}
if(!m_WoRoute.IsEmpty())
{
if(m_WoRoute.UpperCase()!=b_WoRoute.UpperCase())
{
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("select RoutehCode from sdRouteh where RoutehCancel=0 and RoutehCode='"+m_WoRoute+"'");
Query->Open();
if(Query->RecordCount<=0)
{
Query->Close();
throw Exception("工艺路线的代码:'"+m_WoRoute+"'不存在或已取消!");
}
Query->Close();
}
}
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoFrom() //来源
{
int m_WoFrom;
m_WoFrom=GetMasterValue("WoFrom");
if(m_WoFrom!=1 && m_WoFrom!=2 && m_WoFrom!=3)
throw Exception("加工单来源只能取值(1-手工录入,2-计划生成,3-返修单生成)!");
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoChkFlg() //检验标志
{
int m_WoChkFlg;
m_WoChkFlg=GetMasterValue("WoChkFlg");
if(m_WoChkFlg!=0 && m_WoChkFlg!=1)
throw Exception("质检标志只能取值(0-不需质检,1-需质检)!");
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoQty() //要求数量
{
double m_WoQty;
m_WoQty=GetMasterValue("WoQty");
if(m_WoQty<0 || m_WoQty==0)
throw Exception("加工的数量不能小于或等于0!");
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoCQty() //完工数量
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoEQty() //合格数量
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoWQty() //废品数量
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoRQty() //返修数量
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoSQty() //次品数量
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoDate() //日期
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoRdate() //要求完成日期
{
AnsiString m_WoRdate;
AnsiString m_WoSdate;
m_WoRdate=GetMasterValue("WoRdate");
m_WoSdate=GetMasterValue("WoSdate");
if(m_WoRdate<m_WoSdate)
throw Exception("要求完工日期"+m_WoRdate+"不能小于开始日期!"+m_WoSdate);
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoMDate() //MRP日期
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoSdate() //开始日期
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoClose() //结清
{
int m_WoClose;
m_WoClose=GetMasterValue("WoClose");
if(m_WoClose!=0 && m_WoClose!=1)
throw Exception("结清标志只能取值(0-未结清,1-已结清)!");
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoCloseDate() //结清日期
{
AnsiString m_WoCloseDate;
int m_WoClose;
m_WoCloseDate=GetMasterValue("WoCloseDate");
m_WoClose=GetMasterValue("WoClose");
if(m_WoClose==1)
{
if(m_WoCloseDate.IsEmpty())
throw Exception("结清日期不能为空!");
}
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoUnit() //计量单位
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoTwt() //总工时
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoPamt() //人工费
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoMamt() //材料费
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoEamt() //制造费用
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoDesc() //备注
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoUser() //操作员
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoSysDate() //系统时间
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoBatch() //批号
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoCheck() //审核
{
int m_WoCheck;
m_WoCheck=GetMasterValue("WoCheck");
if(m_WoCheck!=0 && m_WoCheck!=1)
throw Exception("审核标志只能取值(0-未审核,1-已审核.)");
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoChecker() //审核人
{
int m_WoCheck;
AnsiString m_WoChecker;
AnsiString b_WoChecker;
m_WoCheck=GetMasterValue("WoCheck");
m_WoChecker=GetMasterValue("WoChecker");
b_WoChecker=GetMasterOldValue("WoChecker");
if(m_WoCheck==1)
{
if(m_WoChecker!=b_WoChecker)
{
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("select ProducterCode from sdProducter where ProducterCode='"+m_WoChecker+"' and ProducterCheck=1");
Query->Open();
if(Query->RecordCount<=0)
{
Query->Close();
throw Exception("审核人:'"+m_WoChecker+"'无审核的权限或未定义!");
}
Query->Close();
}
}
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoCheckDate() //审核日期
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoCancel() //取消
{
int m_WoCancel;
m_WoCancel=GetMasterValue("WoCancel");
if(m_WoCancel!=0 && m_WoCancel!=1)
throw Exception("取消标志只能取值(0-正常,1-取消)!");
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoCancelDate() //取消日期
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::ValidWoProducter() //生管人员
{
}
//---------------------------------------------------------------------------
void __fastcall TKSWo::CmdExec(AnsiString Param)
{
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -