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

📄 msoh.cpp

📁 科思ERP部分源码及控件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
     {
      Query->Close();
      throw Exception("您没有结清/反结清权限");
     }
  }
 }
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSohCancel()  //取消
{
   int m_SohCancel;
   m_SohCancel=GetMasterValue("SohCancel");
   int b_SohCancel;
   b_SohCancel=GetMasterOldValue("SohCancel");
  if(m_SohCancel!=0 && m_SohCancel!=1)
   throw Exception("取消标志只能为:0-未取消,1-取消");
  if(m_SohCancel!=b_SohCancel)
  {
  Query->Close();
  Query->SQL->Clear();
  Query->SQL->Add("Select SalerCode,SalerCheck,SalerCancel from sdSaler where SalerCode='"+GetMasterValue("SohUser")+"'");
  Query->Open();
  if(Query->RecordCount<1)
  {
   Query->Close();
     throw Exception("您没在销售员表中定义!");
   }
   else
   {
   if(Query->FieldValues["SalerCancel"]==0)
     {
      Query->Close();
      throw Exception("您没有取消/反取消权限");
     }
   }
  }
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSohCrCode()  //取消原因
{
/*   AnsiString  m_SohCrCode;
   AnsiString  b_SohCrCode;
   m_SohCrCode=ReturnNeedValue(GetMasterValue("SohCrCode"),"");
   b_SohCrCode=ReturnNeedValue(GetMasterOldValue("SohCrCode"),"");
    if(GetMasterValue("SohCancel")==1)
    {
      if(m_SohCrCode.IsEmpty())
        throw Exception("订单作废时,作废原因不能为空");
      if(m_SohCrCode.Length()>18)
        throw Exception("作废原因代码长度不能大于18");
      if(m_SohCrCode!=b_SohCrCode)
      {
        Query->Close();
        Query->SQL->Clear();
        Query->SQL->Add("select socrcode from sdsocr where socrcode='"+m_SohCrCode+"'");
        Query->Open();
        if(Query->RecordCount<=0)
        {
          Query->Close();
          throw Exception("取消原因代码:"+m_SohCrCode+"未定义");
        }
        Query->Close();
      }
    }
*/}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidDetailField(int FieldNo)
{
  switch(FieldNo)
  {
    case 1:
      ValidSodLine();
      break;
    case 2:
      ValidSodCode();
      break;
    case 3:
      ValidSodGoods();
      break;
    case 4:
      ValidSodUnit();
      break;
    case 5:
      ValidSodConv();
      break;
    case 6:
      ValidSodSptCode();
      break;
    case 7:
      ValidSodQty();
      break;
    case 8:
      ValidSodPrice();
      break;
    case 9:
      ValidSodAmt();
      break;
    case 10:
      ValidSodTaxAmt();
      break;
    case 11:
      ValidSodDisc();
      break;
    case 12:
      ValidSodDAmt();
      break;
    case 13:
      ValidSodDesc();
      break;
    case 14:
      ValidSodSendDate();
      break;
    case 15:
      ValidSodRecDate();
      break;
    case 16:
      ValidSodSQty();
      break;
    case 17:
      ValidSodPQty();
      break;
    case 18:
      ValidSodBQty();
      break;
    case 19:
      ValidSodFQty();
      break;
    case 20:
      ValidSodEQty();
      break;
    case 21:
      ValidSodPoCode();
      break;
    case 22:
      ValidSodState();
      break;
    case 23:
      ValidSodClose();
      break;
    case 24:
      ValidSodCloseDate();
      break;
  }
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodLine()
{
   int m_SodLine;
   int b_SodLine;
   m_SodLine=ReturnNeedValue(GetDetailValue("SodLine"),0);
    if(m_SodLine<=0)
      throw Exception("行号不能小于零!");
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodCode()
{
   AnsiString  m_SodCode;
   m_SodCode=ReturnNeedValue(GetDetailValue("SodCode"),"");
    if(m_SodCode.IsEmpty())
      throw Exception("订单号不能为空");
    if(m_SodCode.Length()>18)
      throw Exception("订单号长度不能大于18");
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodGoods()
{
   AnsiString  m_SodGoods;
   AnsiString  b_SodGoods;
   m_SodGoods=ReturnNeedValue(GetDetailValue("SodGoods"),"");
   b_SodGoods=ReturnNeedValue(GetDetailOldValue("SodGoods"),"");
    if(m_SodGoods.IsEmpty())
       throw Exception("销售订单的货物编码不能为空!");
    if(m_SodGoods.Length()>18)
      throw Exception("物料编码长度不能大于18");
    if(m_SodGoods != b_SodGoods)
    {
      Query->Close();
      Query->SQL->Clear();
      Query->SQL->Add("select GoodsCode,GoodsUnitCode,GoodsMunit,GoodsSale,GoodsCancel from sdGoods where GoodsCode='"+m_SodGoods+"'");
      Query->Open();
      if(Query->RecordCount<=0)
      {
        Query->Close();
        throw Exception("该物料编码:'"+m_SodGoods+"'不存在!");
      }
      else
      {
        if(Query->FieldValues["GoodsCancel"]==1)
        {
          Query->Close();
          throw Exception("该货品'"+m_SodGoods+"'已取消");
        }
        if(Query->FieldValues["GoodsSale"]==0)
        {
          Query->Close();
          throw Exception("该货品'"+m_SodGoods+"'不可销售");
        }
        Query->Close();
      }
      Query->Close();
      Query->SQL->Clear();
      Query->SQL->Add("select sgdcode from sdsgd where sgdclientcode='"+GetMasterValue("SohClient")+"' and sgdgoodscode='"+m_SodGoods+"'");
      Query->Open();
      if(Query->RecordCount<1)
      {
        Query->Close();
        throw Exception("客户物料未定义");
      }
      Query->Close();
    }
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodUnit()
{
   AnsiString  m_SodUnit;
   AnsiString  b_SodUnit;
   AnsiString m_SodGoods=ReturnNeedValue(GetDetailValue("SodGoods"),"");
   m_SodUnit=ReturnNeedValue(GetDetailValue("SodUnit"),"");
   b_SodUnit=ReturnNeedValue(GetDetailOldValue("SodUnit"),"");
    if(m_SodUnit.IsEmpty())
      throw Exception("计量单位不能为空");
    if(m_SodUnit.Length()>18)
      throw Exception("计量单位长度不能大于18");
    if(m_SodGoods.IsEmpty())
      throw Exception("销售物料不能为空");
    if(m_SodUnit!=b_SodUnit)
    {
      Query->Close();
      Query->SQL->Clear();
      Query->SQL->Add("Select Unitcode from sdUnit where Unitcode='"+m_SodUnit+"'");
      Query->Open();
      if(Query->RecordCount<=0)
      {
        Query->Close();
        throw Exception("计量单位:"+m_SodUnit+"不存在");
      }
      Query->Close();
      Query->SQL->Clear();
      Query->SQL->Add("select goodsunitcode,goodsmunit from sdgoods where goodscode='"+m_SodGoods+"'");
      Query->Open();
      if(Query->RecordCount<1)
      {
        Query->Close();
        throw Exception("当前物料未在物料主文件中定义");
      }
      if(Query->FieldValues["GoodsMunit"]==0)
      {
//        b_SodUnit=Query->FieldValues["GoodsUnitCode"];
//        SetDetailValue("SodConv",1);
      }
      Query->Close();
    }
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodConv()
{
  double m_SodConv;
  double b_SodConv;
     AnsiString m_SodGoods=ReturnNeedValue(GetDetailValue("SodGoods"),"");
   m_SodConv=ReturnNeedValue(GetDetailValue("SodConv"),0);
   b_SodConv=ReturnNeedValue(GetDetailOldValue("SodConv"),0);
    if(m_SodConv<=0)
      throw Exception("换算系数不能小于零");
    if(m_SodGoods.IsEmpty())
      throw Exception("销售物料不能为空");
    if(m_SodConv!=b_SodConv)
    {
      Query->Close();
      Query->SQL->Clear();
      Query->SQL->Add("select goodsunitcode,goodsmunit from sdgoods where goodscode='"+m_SodGoods+"'");
      Query->Open();
      if(Query->RecordCount<1)
      {
        Query->Close();
        throw Exception("当前物料未在物料主文件中定义");
      }
      if(Query->FieldValues["GoodsMunit"]==0)
      {
//        SetDetailValue("SodUnit",Query->FieldValues["GoodsUnitCode"]);
//        SetDetailValue("SodConv",1);
      }
    }
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodSptCode()
{
/*   AnsiString  m_SodSptCode;
   AnsiString  b_SodSptCode;
   m_SodSptCode=ReturnNeedValue(GetDetailValue("SodSptCode"),"");
   b_SodSptCode=ReturnNeedValue(GetDetailOldValue("SodSptCode"),"");
    if(m_SodSptCode.IsEmpty())
      throw Exception("价格类型不能为空");
    if(m_SodSptCode.Length()>18)
      throw Exception("价格类型长度不能大于18");
    if(m_SodSptCode.IsEmpty()==false && m_SodSptCode!=b_SodSptCode)
    {
      Query->Close();
      Query->SQL->Clear();
      Query->SQL->Add("select sptcode from sdspt where sptcode='"+m_SodSptCode+"'");
      Query->Open();
      if(Query->RecordCount<=0)
      {
        Query->Close();
        throw Exception("价格类型代码:"+m_SodSptCode+"未定义");
      }
      Query->Close();
    }
*/}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodQty()
{
  double m_SodQty;
   m_SodQty=GetDetailValue("SodQty");
   AnsiString m_SodGoods=ReturnNeedValue(GetDetailValue("SodGoods"),0);
    if(m_SodQty<=0)
       throw Exception("销售订单行的数量不能小于等于零.");
    if(m_SodGoods.IsEmpty())
      throw Exception("销售物料不能为空");
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodPrice()
{
  double m_SodPrice;
   AnsiString m_SodGoods=ReturnNeedValue(GetDetailValue("SodGoods"),"");
   m_SodPrice=ReturnNeedValue(GetDetailValue("SodPrice"),0);
    if(m_SodPrice<0)
       throw Exception("销售订单行的单价不能小于零.");
    if(m_SodGoods.IsEmpty())
      throw Exception("销售物料不能为空");
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodAmt()
{
  double m_SodAmt;
   m_SodAmt=ReturnNeedValue(GetDetailValue("SodAmt"),0);
    if(m_SodAmt<=0)
      throw Exception("销售金额不能小于零");
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodTaxAmt()
{
  double m_SodTaxAmt;
   m_SodTaxAmt=ReturnNeedValue(GetDetailValue("SodTaxAmt"),-1);
    if(m_SodTaxAmt<0)
      throw Exception("销售税额不能小于零");
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodDisc()
{
  double m_SodDisc;
   m_SodDisc=ReturnNeedValue(GetDetailValue("SodDisc"),-1);
    if(m_SodDisc<0||m_SodDisc>1)
      throw Exception("折扣率应该在[0,1]之间");
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodDAmt()
{
  double m_SodDAmt;
   m_SodDAmt=ReturnNeedValue(GetDetailValue("SodDAmt"),-1);
    if(m_SodDAmt<0)
      throw Exception("折扣额不能小于零");
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodDesc()
{
   AnsiString  m_SodDesc;
   AnsiString  b_SodDesc;
   m_SodDesc=ReturnNeedValue(GetDetailValue("SodDesc"),"");
   b_SodDesc=ReturnNeedValue(GetDetailOldValue("SodDesc"),"");
    if(m_SodDesc.Length()>40)
      throw Exception("备注长度不能大于40");
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodSendDate()
{
   AnsiString  m_SodSendDate;
   m_SodSendDate=ReturnNeedValue(GetDetailValue("SodSendDate"),"");
    if(m_SodSendDate.IsEmpty())
      throw Exception("预计发货日不能为空");
    if(StrToDate(m_SodSendDate)<StrToDate(GetMasterValue("SohDate")))
      throw Exception("预计发货日期不能小于开单日期");
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodRecDate()
{
   AnsiString  m_SodRecDate;
   m_SodRecDate=ReturnNeedValue(GetDetailValue("SodRecDate"),"");
    if(m_SodRecDate.IsEmpty())
      throw Exception("交货日期不能为空");
    if(StrToDate(m_SodRecDate)<StrToDate(GetMasterValue("SohDate")))
      throw Exception("交货日期不能小于开单日期");
    if(StrToDate(m_SodRecDate)<StrToDate(GetDetailValue("SodSendDate")))
      throw Exception("交货日期不能小于预计发货日期");
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodSQty()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodPQty()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodBQty()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodFQty()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodEQty()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodPoCode()
{
   AnsiString  m_SodPoCode;
   AnsiString  b_SodPoCode;
   m_SodPoCode=ReturnNeedValue(GetDetailValue("SodPoCode"),"");
   b_SodPoCode=ReturnNeedValue(GetDetailOldValue("SodPoCode"),"");
    if(m_SodPoCode.Length()>18)
      throw Exception("采购订单长度不能大于18");
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodState()
{
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodClose()
{
 /*  int m_SodClose;
   m_SodClose=GetDetailValue("SodClose");
    if(m_SodClose!=0 && m_SodClose!=1)
      throw Exception("结清标志只能取值0-未结清 1-已结清");*/
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::ValidSodCloseDate()
{
/*   AnsiString  m_SodCloseDate;
   int m_SodClose=GetDetailValue("SodClose");
   m_SodCloseDate=GetDetailValue("SodCloseDate");
    if(m_SodClose==1)
    {
      if(m_SodCloseDate.IsEmpty())
        throw Exception("结清日期不能为空");
    }*/
}
//---------------------------------------------------------------------------
void __fastcall TKSSoh::CmdExec(AnsiString Param)
{

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


⌨️ 快捷键说明

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