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

📄 mfachg.cpp

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