📄 mfachg.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "mFaChg.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
TKSFaChg *sdFaChg;
//---------------------------------------------------------------------------
__fastcall TKSFaChg::TKSFaChg()
:TKSMidBase()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSFaChg::ValidHeadValues()
{
AnsiString m_FaChgCode;
AnsiString b_FaChgCode;
m_FaChgCode=GetMasterValue("FaChgCode");
b_FaChgCode=GetMasterOldValue("FaChgCode");
if(m_FaChgCode.IsEmpty())
throw Exception("变动单号不能为空");
if(m_FaChgCode.Length()>18)
throw Exception("变动单号长度不能大于18");
AnsiString m_FaChgDate;
m_FaChgDate=GetMasterValue("FaChgDate");
if(m_FaChgDate.IsEmpty())
throw Exception("变动日期不能为空");
if(m_FaChgDate.Length()>10)
throw Exception("变动日期长度不能大于10");
int m_FaChgType;
m_FaChgType=GetMasterValue("FaChgType");
if(m_FaChgType!=1&&m_FaChgType!=2&&m_FaChgType!=3&&m_FaChgType!=4&&m_FaChgType!=5&&m_FaChgType!=6&&m_FaChgType!=7&&m_FaChgType!=8)
throw Exception("变动类型未定义");
AnsiString m_FaChgFMonth;
AnsiString b_FaChgFMonth;
m_FaChgFMonth=GetMasterValue("FaChgFMonth");
b_FaChgFMonth=GetMasterOldValue("FaChgFMonth");
if (m_FaChgFMonth.IsEmpty())
throw Exception("财务月份不能为空");
if(m_FaChgFMonth.Length()>18)
throw Exception("财务月份长度不能超过18");
AnsiString m_FaChgFadn;
AnsiString b_FaChgFadn;
m_FaChgFadn=GetMasterValue("FaChgFadn");
m_FaChgType=GetMasterValue("FaChgType");
b_FaChgFadn=GetMasterOldValue("FaChgFadn");
if (m_FaChgFadn.IsEmpty())
throw Exception("设备编码不能为空");
if(m_FaChgFadn.Length()>18)
throw Exception("设备编码长度不能超过18");
if (m_FaChgFadn!=b_FaChgFadn)
{
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("SELECT fadncode,fadnfadm FROM sdfadn where (fadnDec=0 and fadnDiscard=0) and fadncode='"+m_FaChgFadn+"'");
Query->Open();
if(Query->RecordCount<1 )
{
Query->Close();
throw Exception("设备编码 '" +m_FaChgFadn+"'未定义或已报废、减少");
}
else
{ //工作量设备才能变动工作量
AnsiString TempFadm=Query->FieldValues["fadnfadm"];
if(m_FaChgType==7)
{
if(TempFadm!="101")
throw Exception("设备 '" +m_FaChgFadn+"'不是使用工作量折旧法!");
}
if(m_FaChgType==6)
{ //非工作量设备才能变动使用年限
if(TempFadm=="101")
throw Exception("设备 '" +m_FaChgFadn+"'是使用工作量折旧法!");
}
Query->Close();
}
Query->Close();
//未审核设备不能变动同种类型
Query->SQL->Clear();
Query->SQL->Add("SELECT FACHGCODE FROM sdfachg where FACHGCHECK = 0 and FACHGTYPE="+AnsiString(m_FaChgType)+" and FACHGFADN='"+m_FaChgFadn+"'");
Query->Open();
if(Query->RecordCount>0 )
{
Query->Close();
throw Exception("设备 '" +m_FaChgFadn+"' 已存在同种变动单");
}
Query->Close();
}
AnsiString m_FaChgDesc;
m_FaChgDesc=GetMasterValue("FaChgDesc");
if (m_FaChgDesc.IsEmpty())
throw Exception("变动原因不能为空");
if(m_FaChgDesc.Length()>40)
throw Exception("变动原因长度不能大于40");
double m_FaChgOOVal;
m_FaChgOOVal=GetMasterValue("FaChgOOVal");
m_FaChgType=GetMasterValue("FaChgType");
if(m_FaChgType==1||m_FaChgType==2)
{
if(m_FaChgOOVal<0)
throw Exception("变动前原值不能小于零");
}
double m_FaChgNOVal;
m_FaChgType=GetMasterValue("FaChgType");
m_FaChgFadn=GetMasterValue("FaChgFadn");
m_FaChgNOVal=GetMasterValue("FaChgNOVal");
m_FaChgOOVal=GetMasterValue("FaChgOOVal");
if(m_FaChgType==1||m_FaChgType==2)
{
if(m_FaChgNOVal<=0)
throw Exception("变动后原值必须大于零");
if(m_FaChgType==1)
{
if(m_FaChgOOVal>=m_FaChgNOVal)
throw Exception("变动后原值必须大于变动前原值");
}
if(m_FaChgType==2)
{
if(m_FaChgOOVal<=m_FaChgNOVal)
throw Exception("变动后原值必须小于变动前原值");
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("SELECT fadnEval,FadnDVal FROM sdfadn where fadncode='"+m_FaChgFadn+"'");
Query->Open();
AnsiString TempEval=Query->FieldValues["fadnEval"];
AnsiString TempDval=Query->FieldValues["fadnDval"];
if(m_FaChgNOVal<(TempEval.ToDouble()+TempDval.ToDouble()))
throw Exception("原值不能小于净残值+累计折旧");
}
}
AnsiString m_FaChgOFadm;
AnsiString b_FaChgOFadm;
m_FaChgOFadm=GetMasterValue("FaChgOFadm");
b_FaChgOFadm=GetMasterOldValue("FaChgOFadm");
m_FaChgType=GetMasterValue("FaChgType");
if(m_FaChgType==5)
{
if (m_FaChgOFadm.IsEmpty())
throw Exception("折旧方法不能为空!");
if(m_FaChgOFadm.Length()>18)
throw Exception("折旧方法长度不能超过18");
}
AnsiString m_FaChgNFadm;
AnsiString b_FaChgNFadm;
m_FaChgNFadm=GetMasterValue("FaChgNFadm");
b_FaChgNFadm=GetMasterOldValue("FaChgNFadm");
m_FaChgOFadm=GetMasterValue("FaChgOFadm");
m_FaChgType=GetMasterValue("FaChgType");
if(m_FaChgType==5)
{
if(m_FaChgNFadm.IsEmpty())
throw Exception("折旧方法不能为空!");
if(m_FaChgNFadm.Length()>18)
throw Exception("折旧方法长度不能超过18");
if(m_FaChgOFadm==m_FaChgNFadm)
throw Exception("变动前折旧方法不能和变动后折旧方法相同!");
}
double m_FaChgODVal;
m_FaChgODVal=GetMasterValue("FaChgODVal");
m_FaChgType=GetMasterValue("FaChgType");
if(m_FaChgType==3||m_FaChgType==4)
{
if (m_FaChgODVal<0)
throw Exception("变动前累计折旧不能小于零");
}
double m_FaChgNDVal;
m_FaChgType=GetMasterValue("FaChgType");
m_FaChgFadn=GetMasterValue("FaChgFadn");
m_FaChgNDVal=GetMasterValue("FaChgNDVal");
m_FaChgODVal=GetMasterValue("FaChgODVal");
if(m_FaChgType==3||m_FaChgType==4)
{
if(m_FaChgNDVal<0)
throw Exception("变动后累计折旧不能小于零");
if(m_FaChgType==3)
throw Exception("变动后累计折旧不能小于等于变动前累计折旧");
if(m_FaChgType==4)
{
if(m_FaChgODVal<=m_FaChgNDVal)
throw Exception("变动后累计折旧不能大于等于变动前累计折旧");
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("SELECT fadnOval,FadnEVal FROM sdfadn where fadncode='"+m_FaChgFadn+"'");
Query->Open();
AnsiString TempOval=Query->FieldValues["fadnOval"];
AnsiString TempEval=Query->FieldValues["fadnEval"];
if(m_FaChgNDVal>(TempOval.ToDouble()-TempEval.ToDouble()))
throw Exception("累计折旧不能大于原值-净残值");
}
}
int m_FaChgOPeriod;
m_FaChgOPeriod=GetMasterValue("FaChgOPeriod");
m_FaChgType=GetMasterValue("FaChgType");
if(m_FaChgType==8)
{
if (m_FaChgOPeriod<0)
throw Exception("变动前使用年限不能小于零");
}
int m_FaChgNPeriod;
m_FaChgNPeriod=GetMasterValue("FaChgNPeriod");
m_FaChgOPeriod=GetMasterValue("FaChgOPeriod");
m_FaChgType=GetMasterValue("FaChgType");
if(m_FaChgType==6)
{
if (m_FaChgNPeriod<0)
throw Exception("变动后使用年限不能小于零");
if (m_FaChgNPeriod==m_FaChgOPeriod)
throw Exception("变动后使用年限不能等于变动前使用年限");
}
double m_FaChgOWork;
m_FaChgOWork=GetMasterValue("FaChgOWork");
m_FaChgType=GetMasterValue("FaChgType");
if(m_FaChgType==7)
{
if (m_FaChgOWork<0)
throw Exception("变动前工作总量不能小于零");
}
double m_FaChgNWork;
m_FaChgNWork=GetMasterValue("FaChgNWork");
m_FaChgOWork=GetMasterValue("FaChgOWork");
m_FaChgType=GetMasterValue("FaChgType");
if(m_FaChgType==7)
{
if (m_FaChgNWork<0)
throw Exception("变动后工作总量不能小于零");
if (m_FaChgNWork==m_FaChgOWork)
throw Exception("变动后工作总量不能等于变动前工作总量");
}
double m_FaChgONVal;
m_FaChgONVal=GetMasterValue("FaChgONVal");
m_FaChgType=GetMasterValue("FaChgType");
if(m_FaChgType==8)
{
if (m_FaChgONVal<0)
throw Exception("变动前净残值不能小于零");
}
double m_FaChgNNVal;
m_FaChgFadn=GetMasterValue("FaChgFadn");
m_FaChgNNVal=GetMasterValue("FaChgNNVal");
m_FaChgONVal=GetMasterValue("FaChgONVal");
m_FaChgType=GetMasterValue("FaChgType");
if(m_FaChgType==8)
{
if(m_FaChgNNVal<0)
throw Exception("变动后净残值不能小于零");
if(m_FaChgNNVal==m_FaChgONVal)
throw Exception("变动后净残值不能等于变动前净残值");
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("SELECT FadnPVal,fadnDval FROM sdfadn where fadncode='"+m_FaChgFadn+"'");
Query->Open();
AnsiString TempOval=Query->FieldValues["FadnPVal"];
AnsiString TempDval=Query->FieldValues["fadnDval"];
if(m_FaChgNNVal>(TempOval.ToDouble()-TempDval.ToDouble()))
throw Exception("净残值不能大于最初原值-累计折旧");
}
int m_FaChgCheck;
m_FaChgCheck=GetMasterValue("FaChgCheck");
if(m_FaChgCheck!=0 && m_FaChgCheck!=1)
throw Exception("审核标志只能取值0-未审核1-已审");
AnsiString m_FaChgCheckDate;
m_FaChgCheckDate=GetMasterValue("FaChgCheckDate");
m_FaChgCheck=GetMasterValue("FaChgCheck");
if(m_FaChgCheck==1)
{
if(m_FaChgCheckDate.IsEmpty())
throw Exception("审核日期不能为空");
}
AnsiString m_FaChgOGlkm;
m_FaChgOGlkm=GetMasterValue("FaChgOGlkm");
if(!m_FaChgOGlkm.IsEmpty())
{
if(m_FaChgOGlkm.Length()>18)
throw Exception("科目编码长不能大于18");
{
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("select * from sdGlkm where glkmcode='"+m_FaChgOGlkm+"' and glkmmx=1");
Query->Open();
if(Query->RecordCount<=0)
{
Query->Close();
throw Exception("科目编码不存在或不是明细科目");
}
Query->Close();
}
}
int m_FaChgPost;
m_FaChgPost=GetMasterValue("FaChgPost");
if(m_FaChgPost!=0&&m_FaChgPost!=1)
throw Exception("制凭证标志只能取 0-不制凭证 1-制凭证");
}
//---------------------------------------------------------------------------
void __fastcall TKSFaChg::CmdExec(AnsiString Param)
{
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -