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

📄 mpzh.cpp

📁 科思ERP部分源码及控件
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "mPzh.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)

TKSPzh *sdPzh;
//---------------------------------------------------------------------------
__fastcall TKSPzh::TKSPzh()
  :TKSMidBase()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSPzh::ValidHeadValues()
{
  AnsiString  m_PzhCode;
   AnsiString  b_PzhCode;
   m_PzhCode=GetMasterValue("PzhCode");
   b_PzhCode=GetMasterOldValue("PzhCode");

   if(m_PzhCode!=b_PzhCode)
   {
     Query->Close();
     Query->SQL->Clear();
     Query->SQL->Add("select * from sdPZH where PzhCode='"+m_PzhCode+"'");
     Query->Open();
     if(Query->RecordCount>0)
     {
        Query->Close();
        throw Exception("凭证的编号:'"+m_PzhCode+"'已经存在");
     }
     else
        Query->Close();
   }

   int m_PzhFj;
   m_PzhFj=GetMasterValue("PzhFj");
   if(m_PzhFj<0)
     throw Exception("附件原始单据的数目不能小于零");

   int m_PzhFrom;
   m_PzhFrom=GetMasterValue("PzhFrom");
   if(m_PzhFrom!=0 && m_PzhFrom!=1)
     throw Exception("凭证的来源取值只能为(1-手工录入,2-系统生成,3-转帐)");

   int m_PzhCheck;
   m_PzhCheck=GetMasterValue("PzhCheck");
   if(m_PzhCheck!=0 && m_PzhCheck!=1)
     throw Exception("凭证的审核标志只能为(0-未审核,1-已审核)");

   int m_PzhPost;
   m_PzhPost=GetMasterValue("PzhPost");
   if(m_PzhPost!=0 && m_PzhPost!=1)
     throw Exception("凭证的记帐标志只能为(0-未记帐,1-已记账)");
}
//---------------------------------------------------------------------------

void __fastcall TKSPzh::ValidItemValues()
{
   int m_PzdLine;
   m_PzdLine=GetDetailValue("PzdLine");
   if(m_PzdLine<=0)
     throw Exception("凭证的行号不能小于和等于零");


   double m_PzdDir;
   m_PzdDir=GetDetailValue("PzdDir");
   if(m_PzdDir!=-1 && m_PzdDir!=1)
     throw Exception("科目的方向只能取值(1-借方,-1-贷方)");

   AnsiString  m_PzdCurrency;
   m_PzdCurrency=GetDetailValue("PzdCurrency");
   if(vGlkmWb==1 && m_PzdCurrency.IsEmpty())
     throw Exception("当凭证的科目需要外币核算时,外币的币种不能为空");

   double m_PzdRate;
   m_PzdRate=GetDetailValue("PzdRate");
   if(m_PzdRate<=0)
     throw Exception("币种的汇率不能小于和等于零");

   AnsiString  m_PzdUnit;
   AnsiString  b_PzdUnit;
   if(vGlkmSl==1)
   {
      m_PzdUnit=GetDetailValue("PzdUnit");
      if(m_PzdUnit.IsEmpty())
         throw Exception("当凭证科目有数量核算属性时,计量单位不能为空");
   }

   double m_PzdQty;
   if(vGlkmSl==1)
   {
     m_PzdQty=GetDetailValue("PzdQty");
     if(m_PzdQty<=0)
        throw Exception("当凭证科目有数量核算属性时,数量的大小不能小于等于零");
   }

   double m_PzdPrice;
   if(vGlkmSl==1)
   {
     m_PzdPrice=GetDetailValue("PzdPrice");
     if(m_PzdPrice<0)
        throw Exception("当凭证科目有数量核算属性时,单价的大小不能小于零");
   }

    AnsiString  m_PzdSupply;
   AnsiString  b_PzdSupply;
   if(vGlkmSupply==1)
   {
     m_PzdSupply=GetDetailValue("PzdSupply");
     b_PzdSupply=GetDetailOldValue("PzdSupply");
     if(m_PzdSupply.IsEmpty())
       throw Exception("当凭证科目有供应商往来属性时,供应商不能为空");
   }

   AnsiString  m_PzdClient;
   AnsiString  b_PzdClient;
   if(vGlkmClient==1)
   {
     m_PzdClient=GetDetailValue("PzdClient");
     b_PzdClient=GetDetailOldValue("PzdClient");
     if(m_PzdClient.IsEmpty())
       throw Exception("当凭证科目有客户往来属性时,客户不能为空");
   }

   AnsiString  m_PzdEmployee;
   AnsiString  b_PzdEmployee;
   if(vGlkmHuman==1)
   {
     m_PzdEmployee=GetDetailValue("PzdEmployee");
     b_PzdEmployee=GetDetailOldValue("PzdEmployee");
     if(m_PzdEmployee.IsEmpty())
       throw Exception("当凭证科目有个人往来属性时,个人资料不能为空");
     
   }

   AnsiString  m_PzdProject;
   AnsiString  b_PzdProject;
   if(vGlkmProject==1)
   {
     m_PzdProject=GetDetailValue("PzdProject");
     b_PzdProject=GetDetailOldValue("PzdProject");
     if(m_PzdProject.IsEmpty())
       throw Exception("当凭证科目有项目核算属性时,项目资料不能为空");

   }

   AnsiString  m_PzdCc;
   AnsiString  b_PzdCc;
   if(vGlkmCc==1)
   {
     m_PzdCc=GetDetailValue("PzdCc");
     b_PzdCc=GetDetailOldValue("PzdCc");
     if(m_PzdCc.IsEmpty())
       throw Exception("当凭证科目有成本中心核算属性时,成本中心不能为空");

   }
    AnsiString  m_PzdSettleMode;
   AnsiString  b_PzdSettleMode;
   if(vGlkmBank==1)
   {
     m_PzdSettleMode=GetDetailValue("PzdSettleMode");
     b_PzdSettleMode=GetDetailOldValue("PzdSettleMode");
     if(m_PzdSettleMode.IsEmpty())
       throw Exception("当科目有银行帐属性时,结算方式不能为空");

   }

   AnsiString  m_PzdSettleNo;
   AnsiString  b_PzdSettleNo;
   if(vGlkmBank==1)
   {
     m_PzdSettleNo=GetDetailValue("PzdSettleNo");
     b_PzdSettleNo=GetDetailOldValue("PzdSettleNo");
     if(m_PzdSettleNo.IsEmpty())
         throw Exception("当科目有银行帐/客户往来/供应商往来的属性时,结算单据号不能为空");
   }

   AnsiString  m_PzdDept;
   AnsiString  b_PzdDept;
   if(vGlkmHuman==1 || vGlkmDept==1)
   {
     m_PzdDept=GetDetailValue("PzdDept");
     b_PzdDept=GetDetailOldValue("PzdDept");
     if(m_PzdDept.IsEmpty())
       throw Exception("当凭证有部门核算/个人核算的属性时,部门编码不能为空");

   }

    AnsiString  m_PzdGlkm;
    AnsiString  b_PzdGlkm;
    m_PzdGlkm=GetDetailValue("PzdGlkm");
    if(m_PzdGlkm.IsEmpty())
      throw Exception("凭证的科目不能为空");
    Query->Close();
    Query->SQL->Clear();
    Query->SQL->Add("select * from sdGlKm where GlKmCode='"+m_PzdGlkm+"' and GlkmNoUse=0 and GlkmMx=1");
    Query->Open();
    if(Query->RecordCount==0)
    {
      Query->Close();
      throw Exception("科目:'"+m_PzdGlkm+"'对应的资料不存在,或不可用,或非明细科目");
    }
    else
    {
      vGlkmWb=Query->FieldValues["GlkmWb"];
      vGlkmSl=Query->FieldValues["GlkmSl"];
      vGlkmBank=Query->FieldValues["GlkmBank"];
      vGlkmDept=Query->FieldValues["GlkmDept"];
      vGlkmHuman=Query->FieldValues["GlkmHuman"];
      vGlkmClient=Query->FieldValues["GlkmClient"];
      vGlkmSupply=Query->FieldValues["GlkmSupply"];
      vGlkmProject=Query->FieldValues["GlkmProject"];
      Query->Close();
    }
}
//---------------------------------------------------------------------------
void __fastcall TKSPzh::CmdExec(AnsiString Param)
{

}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -