📄 apmhdl.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#define _YW_SDERP_DLL
#include "APmhdl.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//**************************************
// TsdApivd 应付发票明细
//**************************************
void __fastcall TsdApivd:: SetApivdCode(AnsiString value)
{
if (value.IsEmpty() )
throw Exception("发票号不能为空!");
if(value.Length()>18)
throw Exception("发票号长度不能大于18!");
m_ApivdCode=value;
}
void __fastcall TsdApivd:: SetApivdLine(int value)
{
if(value!=m_ApivdLine)
if(FindKey(AnsiString(value)))
throw Exception("行号已存在");
m_ApivdLine=value;
}
void __fastcall TsdApivd:: SetApivdAplt(AnsiString value)
{
if (value.IsEmpty() )
throw Exception("行类型不能为空!");
if(value.Length()>18)
throw Exception("行类型长度不能大于18!");
if (value!=m_ApivdAplt)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT ApltCODE FROM SDAplt WHERE ApltCODE='" +value+"'");
m_Query->Open();
if(m_Query->RecordCount<1)
{
m_Query->Close();
throw Exception("行类型'"+value+"'未定义!");
}
m_Query->Close();
}
m_ApivdAplt=value;
}
void __fastcall TsdApivd:: SetApivdFrom(int value)
{
if (value!=1 && value!=2)
throw Exception("来源只能取值: 1-手工 2-生成!");
m_ApivdFrom=value;
}
void __fastcall TsdApivd:: SetApivdDocType(int value)
{
if (value!=1 && value!=2)
throw Exception("单据类型只能取值: 1-收货单 2-退货单!");
m_ApivdDocType=value;
}
void __fastcall TsdApivd:: SetApivdDocCode(AnsiString value)
{
if(m_ApivdFrom==2)
{
if(value.IsEmpty())
throw Exception("单据号不能为空!");
if(value.Length()>18)
throw Exception("单据号长度不能大于18!");
if(value!=m_ApivdDocCode)
{
if(m_ApivdDocType==1)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select PrechCode from sdPrech WHERE PrechCheck=1 and PrechCode='" +value+"'");
m_Query->Open();
if(m_Query->RecordCount<1)
{
m_Query->Close();
throw Exception("收货单'"+value+"'未定义或未审核!");
}
}
else
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select PrethCode from sdPreth WHERE PrethCheck=1 and PrethCode='" +value+"'");
m_Query->Open();
if(m_Query->RecordCount<1)
{
m_Query->Close();
throw Exception("退货单'"+value+"'未定义或未审核!");
}
}
m_Query->Close();
}
}
m_ApivdDocCode=value;
}
void __fastcall TsdApivd:: SetApivdDocLine(int value)
{
if(m_ApivdDocCode!="")
{
if (value!=m_ApivdDocLine)
{
if(m_ApivdDocType==1)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select PrecdCode from sdPrecd WHERE PrecdCode='"+m_ApivdDocCode+"' and PrecdLine='" +AnsiString(value)+"'");
m_Query->Open();
if(m_Query->RecordCount<1)
{
m_Query->Close();
throw Exception("收货单'"+m_ApivdDocCode+"'的行号'"+AnsiString(value)+"'未定义!");
}
}
else
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select PretdCode from sdPretd WHERE PretdCode='"+m_ApivdDocCode+"' and PretdLine='" +AnsiString(value)+"'");
m_Query->Open();
if(m_Query->RecordCount<1)
{
m_Query->Close();
throw Exception("退货单'"+m_ApivdDocCode+"'的行号'"+AnsiString(value)+"'未定义!");
}
}
m_Query->Close();
}
}
m_ApivdDocLine=value;
}
void __fastcall TsdApivd:: SetApivdGoods(AnsiString value)
{
if(m_ApivdFrom==2)
{
if (value!=m_ApivdGoods)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select Goodscode from sdgoods where goodscode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<1)
{
m_Query->Close();
throw Exception("物料:"+value+"未定义!");
}
m_Query->Close();
}
}
m_ApivdGoods=value;
}
void __fastcall TsdApivd:: SetApivdUnit(AnsiString value)
{
if (value.IsEmpty())
throw Exception("计量单位代码不能为空!");
if(value.Length()>18)
throw Exception("计量单位代码长度不能大于18!");
if (value!=m_ApivdAplt)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("SELECT unitCODE FROM SDunit WHERE unitCODE='" +value+"'");
m_Query->Open();
if(m_Query->RecordCount<1)
{
m_Query->Close();
throw Exception("计量单位代码'"+value+"'未定义!");
}
m_Query->Close();
}
m_ApivdUnit=value;
}
void __fastcall TsdApivd:: SetApivdQty(double value)
{
if(value<0)
throw Exception("数量不能小于零!");
m_ApivdQty=value;
}
void __fastcall TsdApivd:: SetApivdPrice(double value)
{
if(value<0)
throw Exception("单价不能小于零!");
m_ApivdPrice=value;
}
void __fastcall TsdApivd:: SetApivdDRate(double value)
{
if(value<0)
throw Exception("折扣率不能小于零!");
if(value>1 )
throw Exception("折扣率不能大于1!");
m_ApivdDRate=value;
}
void __fastcall TsdApivd:: SetApivdDAmt(double value)
{
if(value<0 )
throw Exception("折扣额不能小于零!");
m_ApivdDAmt=value;
}
void __fastcall TsdApivd:: SetApivdTaxCode(AnsiString value)
{
if(value.Length()>18)
throw Exception("税码长度不能大于18!");
if(value!=m_ApivdTaxCode)
{
m_Query->Close();
m_Query->SQL->Clear();
m_Query->SQL->Add("select taxcode from sdtax where taxcode='"+value+"'");
m_Query->Open();
if(m_Query->RecordCount<=0)
{
m_Query->Close();
throw Exception("税码'"+value+"'未定义!");
}
m_Query->Close();
}
m_ApivdTaxCode=value;
}
void __fastcall TsdApivd:: SetApivdTRate(double value)
{
if(value<0)
throw Exception("税率不能小于零!");
m_ApivdTRate=value;
}
void __fastcall TsdApivd:: SetApivdTAmt(double value)
{
if(value<0)
throw Exception("税额不能小于零!");
m_ApivdTAmt=value;
}
void __fastcall TsdApivd:: SetApivdNAmt(double value)
{
if(value<0)
throw Exception("净额不能小于零!");
m_ApivdNAmt=value;
}
void __fastcall TsdApivd:: SetApivdAmt(double value)
{
if(value<0)
throw Exception("总额不能小于零!");
m_ApivdAmt=value;
}
void __fastcall TsdApivd:: SetApivdCAmt(double value)
{
if(value<0)
throw Exception("核销金额不能小于零!");
m_ApivdCAmt=value;
}
void __fastcall TsdApivd:: SetApivdState(int value)
{
if(value!=1&&value!=2)
throw Exception("状态只能为 1-状态一 2-状态二!");
m_ApivdState=value;
}
void __fastcall TsdApivd:: SetApivdDesc(AnsiString value)
{
if(value.Length()>40)
throw Exception("备注长度不能大于40!");
m_ApivdDesc=value;
}
void __fastcall TsdApivd:: SetApivdRAmt(double value)
{
if(value<0)
throw Exception("红冲金额不能小于零!");
m_ApivdRAmt=value;
}
//---------------------------------------------------------------------------
AnsiString TsdApivd::GetFieldValue(euApivd sdFieldName)
{
switch(sdFieldName)
{
case fiApivdCode:
return ApivdCode;
case fiApivdLine:
return ApivdLine;
case fiApivdAplt:
return ApivdAplt;
case fiApivdFrom:
return ApivdFrom;
case fiApivdDocType:
return ApivdDocType;
case fiApivdDocCode:
return ApivdDocCode;
case fiApivdDocLine:
return ApivdDocLine;
case fiApivdGoods:
return ApivdGoods;
case fiApivdUnit:
return ApivdUnit;
case fiApivdQty:
return ApivdQty;
case fiApivdPrice:
return ApivdPrice;
case fiApivdDRate:
return ApivdDRate;
case fiApivdDAmt:
return ApivdDAmt;
case fiApivdTaxCode:
return ApivdTaxCode;
case fiApivdTRate:
return ApivdTRate;
case fiApivdTAmt:
return ApivdTAmt;
case fiApivdNAmt:
return ApivdNAmt;
case fiApivdAmt:
return ApivdAmt;
case fiApivdCAmt:
return ApivdCAmt;
case fiApivdState:
return ApivdState;
case fiApivdDesc:
return ApivdDesc;
case fiApivdRAmt:
return ApivdRAmt;
default:
throw Exception("当前字段未定义可取值");
}
}
//---------------------------------------------------------------------------
AnsiString TsdApivd::GetOldFieldValue(euApivd sdFieldName)
{
switch(sdFieldName)
{
case fiApivdCode:
return b_ApivdCode;
case fiApivdLine:
return b_ApivdLine;
case fiApivdAplt:
return b_ApivdAplt;
case fiApivdFrom:
return b_ApivdFrom;
case fiApivdDocType:
return b_ApivdDocType;
case fiApivdDocCode:
return b_ApivdDocCode;
case fiApivdDocLine:
return b_ApivdDocLine;
case fiApivdGoods:
return b_ApivdGoods;
case fiApivdUnit:
return b_ApivdUnit;
case fiApivdQty:
return b_ApivdQty;
case fiApivdPrice:
return b_ApivdPrice;
case fiApivdDRate:
return b_ApivdDRate;
case fiApivdDAmt:
return b_ApivdDAmt;
case fiApivdTaxCode:
return b_ApivdTaxCode;
case fiApivdTRate:
return b_ApivdTRate;
case fiApivdTAmt:
return b_ApivdTAmt;
case fiApivdNAmt:
return b_ApivdNAmt;
case fiApivdAmt:
return b_ApivdAmt;
case fiApivdCAmt:
return b_ApivdCAmt;
case fiApivdState:
return b_ApivdState;
case fiApivdDesc:
return b_ApivdDesc;
case fiApivdRAmt:
return b_ApivdRAmt;
default:
throw Exception("当前字段未定义可取值");
}
}
//---------------------------------------------------------------------------
void TsdApivd::SetFieldValue(euApivd sdFieldName, AnsiString value)
{
value=Trim(value);
switch(sdFieldName)
{
case fiApivdCode:
ApivdCode=value;
break;
case fiApivdLine:
ApivdLine=value.ToInt();
break;
case fiApivdAplt:
ApivdAplt=value;
break;
case fiApivdFrom:
ApivdFrom=value.ToInt();
break;
case fiApivdDocType:
ApivdDocType=value.ToInt();
break;
case fiApivdDocCode:
ApivdDocCode=value;
break;
case fiApivdDocLine:
ApivdDocLine=value.ToInt();
break;
case fiApivdGoods:
ApivdGoods=value;
break;
case fiApivdUnit:
ApivdUnit=value;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -