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

📄 apmhdl.cpp

📁 科思ERP部分源码及控件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
//---------------------------------------------------------------------------
#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 + -