📄 mapnp.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "mApnp.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
TKSApnp *sdApnp;
//---------------------------------------------------------------------------
__fastcall TKSApnp::TKSApnp()
:TKSMidBase()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidMasterField(int FieldNo)
{
switch(FieldNo)
{
case 1: //票据号
ValidApnpCode();
break;
case 2: //月份
ValidApnpFmonth();
break;
case 3: //日期
ValidApnpDate();
break;
case 4: //票据类型
ValidApnpCant();
break;
case 5: //受票方(供应商)
ValidApnpSupply();
break;
case 6: //币种
ValidApnpCurrency();
break;
case 7: //汇率
ValidApnpEnrate();
break;
case 8: //票面金额
ValidApnpAmt();
break;
case 9: //未到期利率
ValidApnpUiRate();
break;
case 10: //到期利率
ValidApnpEiRate();
break;
case 11: //签发日期
ValidApnpSdate();
break;
case 12: //到期日期
ValidApnpEdate();
break;
case 13: //期限
ValidApnpTerm();
break;
case 14: //核销金额
ValidApnpCAmt();
break;
case 15: //备注
ValidApnpDesc();
break;
case 16: //状态
ValidApnpState();
break;
case 17: //操作员
ValidApnpUser();
break;
case 18: //审核标志
ValidApnpCheck();
break;
case 19: //审核人
ValidApnpChecker();
break;
case 20: //审核日期
ValidApnpCheckDate();
break;
case 21: //系统日期
ValidApnpSysDate();
break;
}
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpCode() //票据号
{
AnsiString m_ApnpCode;
AnsiString b_ApnpCode;
m_ApnpCode=GetMasterValue("ApnpCode");
b_ApnpCode=GetMasterOldValue("ApnpCode");
if (m_ApnpCode.IsEmpty() )
throw Exception("票据号不能为空!");
if(m_ApnpCode.Length()>18)
throw Exception("票据号长度不能大于18!");
if (m_ApnpCode!=b_ApnpCode)
{
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("SELECT ApnpCODE FROM SDApnp WHERE ApnpCODE='" +m_ApnpCode+"'");
Query->Open();
if(Query->RecordCount>0)
{
Query->Close();
throw Exception("票据号'"+m_ApnpCode+"'已存在!");
}
Query->Close();
}
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpFmonth() //月份
{
AnsiString m_ApnpFmonth;
AnsiString b_ApnpFmonth;
m_ApnpFmonth=GetMasterValue("ApnpFmonth");
b_ApnpFmonth=GetMasterOldValue("ApnpFmonth");
if(m_ApnpFmonth.IsEmpty())
throw Exception("财务月份不能为空!");
if(m_ApnpFmonth!=b_ApnpFmonth)
{
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("select fcmonth from sdfc where fcmonth='"+m_ApnpFmonth+"'");
Query->Open();
if(Query->RecordCount<=0)
{
Query->Close();
throw Exception("财务月份:"+m_ApnpFmonth+"未定义");
}
Query->Close();
}
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpDate() //日期
{
AnsiString m_ApnpDate;
m_ApnpDate=GetMasterValue("ApnpDate");
if(m_ApnpDate.IsEmpty())
throw Exception("票据日期不能为空!");
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpCant() //票据类型
{
AnsiString m_ApnpCant;
AnsiString b_ApnpCant;
m_ApnpCant=GetMasterValue("ApnpCant");
b_ApnpCant=GetMasterOldValue("ApnpCant");
if(m_ApnpCant.IsEmpty())
throw Exception("票据类型不能为空!");
if(m_ApnpCant.Length()>18)
throw Exception("票据类型长度不能大于18!");
if(m_ApnpCant!=b_ApnpCant)
{
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("select Cantcode from sdCant where Cantcode='"+m_ApnpCant+"'");
Query->Open();
if(Query->RecordCount<=0)
{
Query->Close();
throw Exception("票据类型'"+m_ApnpCant+"'未定义!");
}
Query->Close();
}
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpSupply() //受票方(供应商)
{
AnsiString m_ApnpSupply;
AnsiString b_ApnpSupply;
m_ApnpSupply=GetMasterValue("ApnpSupply");
b_ApnpSupply=GetMasterOldValue("ApnpSupply");
if(m_ApnpSupply.IsEmpty())
throw Exception("供应商编码不能为空!");
if(m_ApnpSupply.Length()>18)
throw Exception("供应商编码长度不能大于18!");
if(m_ApnpSupply!=b_ApnpSupply)
{
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("select supplycode from sdsupply where supplycode='"+m_ApnpSupply+"'");
Query->Open();
if(Query->RecordCount<=0)
{
Query->Close();
throw Exception("供应商'"+m_ApnpSupply+"'未定义!");
}
Query->Close();
}
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpCurrency() //币种
{
AnsiString m_ApnpCurrency;
AnsiString b_ApnpCurrency;
m_ApnpCurrency=GetMasterValue("ApnpCurrency");
b_ApnpCurrency=GetMasterOldValue("ApnpCurrency");
if(m_ApnpCurrency.IsEmpty())
throw Exception("货币代码不能为空!");
if(m_ApnpCurrency.Length()>18)
throw Exception("货币代码长度不能大于18!");
if(m_ApnpCurrency!=b_ApnpCurrency)
{
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("select currencycode from sdcurrency where currencycode='"+m_ApnpCurrency+"'");
Query->Open();
if(Query->RecordCount<=0)
{
Query->Close();
throw Exception("货币编码'"+m_ApnpCurrency+"'未定义!");
}
Query->Close();
}
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpEnrate() //汇率
{
double m_ApnpEnrate;
AnsiString m_ApnpCurrency;
m_ApnpCurrency=GetMasterValue("ApnpCurrency");
m_ApnpEnrate=GetMasterValue("ApnpEnrate");
if(m_ApnpEnrate<=0)
throw Exception("汇率不能小于等于零!");
if(m_ApnpCurrency.IsEmpty())
throw Exception("币种代码不能为空!");
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("select currencycode from sdCurrency where currencylocal=1");
Query->Open();
if(Query->RecordCount<=0)
{
Query->Close();
throw Exception("本币未定义!");
}
Query->Close();
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpAmt() //票面金额
{
double m_ApnpAmt;
m_ApnpAmt=GetMasterValue("ApnpAmt");
if(m_ApnpAmt<0)
throw Exception("金额不能小于零!");
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpUiRate() //未到期利率
{
double m_ApnpUiRate;
m_ApnpUiRate=GetMasterValue("ApnpUiRate");
if(m_ApnpUiRate<0||m_ApnpUiRate>1)
throw Exception("未到期利率不能小于零大于1!");
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpEiRate() //到期利率
{
double m_ApnpEiRate;
m_ApnpEiRate=GetMasterValue("ApnpEiRate");
if(m_ApnpEiRate<0||m_ApnpEiRate>1)
throw Exception("到期利率不能小于零大于1!");
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpSdate() //签发日期
{
AnsiString m_ApnpSdate;
m_ApnpSdate=GetMasterValue("ApnpSdate");
if(m_ApnpSdate.IsEmpty())
throw Exception("签发日期不能为空!");
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpEdate() //到期日期
{
AnsiString m_ApnpEdate;
AnsiString m_ApnpSdate;
m_ApnpSdate=GetMasterValue("ApnpSdate");
m_ApnpEdate=GetMasterValue("ApnpEdate");
if(m_ApnpEdate.IsEmpty())
throw Exception("到期日期不能为空!");
if(m_ApnpSdate.IsEmpty())
throw Exception("签发日期不能为空!");
if(StrToDate(m_ApnpSdate) > StrToDate(m_ApnpEdate))
throw Exception("到期日期不能早于签发日期");
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpTerm() //期限
{
int m_ApnpTerm;
m_ApnpTerm=GetMasterValue("ApnpTerm");
if(m_ApnpTerm<0)
throw Exception("期限不能小于零!");
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpCAmt() //核销金额
{
double m_ApnpCAmt;
m_ApnpCAmt=GetMasterValue("ApnpCAmt");
if(m_ApnpCAmt<0)
throw Exception("核销金额不能小于零!");
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpDesc() //备注
{
AnsiString m_ApnpDesc;
m_ApnpDesc=GetMasterValue("ApnpDesc");
if(m_ApnpDesc.Length()>40)
throw Exception("备注长度不能大于40!");
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpState() //状态
{
int m_ApnpState;
m_ApnpState=GetMasterValue("ApnpState");
if(m_ApnpState!=1&&m_ApnpState!=2)
throw Exception("状态只能取值:1-状态一 2-状态二!");
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpUser() //操作员
{
/*
AnsiString m_ApnpUser;
AnsiString b_ApnpUser;
m_ApnpUser=GetMasterValue("ApnpUser");
b_ApnpUser=GetMasterOldValue("ApnpUser");
if(m_ApnpUser.IsEmpty())
throw Exception("操作员不能为空!");
if(m_ApnpUser.Length()>18)
throw Exception("操作员长度不能大于18!");
if(m_ApnpUser!=b_ApnpUser)
{
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("select usercode from sduser where usercode='"+m_ApnpUser+"'");
Query->Open();
if(Query->RecordCount<=0)
{
Query->Close();
throw Exception("操作员:"+m_ApnpUser+"未定义!");
}
Query->Close();
}
*/
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpCheck() //审核标志
{
int m_ApnpCheck;
m_ApnpCheck=GetMasterValue("ApnpCheck");
if(m_ApnpCheck!=0 && m_ApnpCheck!=1)
throw Exception("审核标志只能取值: 0-未审核 1-已审核!");
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpChecker() //审核人
{
AnsiString m_ApnpChecker;
int m_ApnpCheck;
m_ApnpChecker=GetMasterValue("ApnpChecker");
m_ApnpCheck=GetMasterValue("ApnpCheck");
if(m_ApnpCheck==1)
{
if(m_ApnpChecker.IsEmpty())
throw Exception("审核员编码不能为空!");
if(m_ApnpChecker.Length()>18)
throw Exception("审核员长度不能大于18!");
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("select purserCode from sdpurser where purserCheck=1 and pursercode='"+m_ApnpChecker+"'");
Query->Open();
if(Query->RecordCount<=0)
{
Query->Close();
throw Exception("审核员:"+m_ApnpChecker+"未定义或没有审核权限!");
}
Query->Close();
}
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpCheckDate() //审核日期
{
AnsiString m_ApnpCheckDate;
int m_ApnpCheck;
m_ApnpCheckDate=GetMasterValue("ApnpCheckDate");
m_ApnpCheck=GetMasterValue("ApnpCheck");
if(m_ApnpCheck==1)
{
if(m_ApnpCheckDate.IsEmpty())
throw Exception("审核日期不能为空!");
}
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::ValidApnpSysDate() //系统日期
{
}
//---------------------------------------------------------------------------
void __fastcall TKSApnp::CmdExec(AnsiString Param)
{
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -