⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mapnp.cpp

📁 科思ERP部分源码及控件
💻 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 + -