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

📄 pmhdl.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
  {
    if(value.IsEmpty())
      throw Exception("系统生成单据行时必须记录请购单号");
    if(value!=m_PodFromCode)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select * from sdRpoh where RpohCode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<1)
      {
        m_Query->Close();
        throw Exception("请购单:"+value+"不存在");
      }
      m_Query->Close();
      m_PodFromCode=value;
    }
  }
  else
    m_PodFromCode="";
}
//---------------------------------------------------------------------------
void __fastcall TsdPod::SetPodFromLine(int value)
{
  if(m_PodType==2)
  {
    if(m_PodFromCode.IsEmpty())
      throw Exception("系统生成单据行时必须记录请购单号");
    if(value!=m_PodFromLine)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select * from sdRpod where RpodCode='"+m_PodFromCode+"' and RpodLine="+AnsiString(value));
      m_Query->Open();
      if(m_Query->RecordCount<1)
      {
        m_Query->Close();
        throw Exception("请购单行:"+AnsiString(value)+"不存在");
      }
      m_Query->Close();
      m_PodFromLine=value;
    }
  }
  else
    m_PodFromLine=0;
}
//---------------------------------------------------------------------------

void __fastcall TsdPod::SetPodStatus(int value)
{
    //备用
    if(value!=1 && value!=2 && value!=3 && value!=4 )
      throw Exception("行状态只能取值1-待审核 2-已确认 3-已下达 4-已关闭");
    m_PodStatus = value;
}
//---------------------------------------------------------------------------

void __fastcall TsdPod::SetPodLoc(AnsiString value)
{
    if(value.Length()>18)
      throw Exception("需求货位编码长度不能大于18");
    if(value.IsEmpty()==false && value!=PodLoc)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select loccode from sdloc where loccode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("货位'"+value+"'未定义");
      }
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select lgloccode from sdlg where lgstate=1 and lgloccode='"+value+"' and lggoodscode='"+m_PodGoods+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("货位'"+value+"'中未定义物料'"+m_PodGoods+"'或不能使用");
      }
    }
    m_PodLoc = value;
}
//---------------------------------------------------------------------------

void __fastcall TsdPod::SetPodDept(AnsiString value)
{
    if(value.Length()>18)
      throw Exception("部门编码长度不能大于18");
    if(value.IsEmpty()==false && value!=m_PodDept)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select Deptcode from sdDept where Deptcode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("部门编码:"+value+"未定义");
      }
      m_Query->Close();
    }
    m_PodDept = value;
}
//---------------------------------------------------------------------------

void __fastcall TsdPod::SetPodReqDate(AnsiString value)
{
    if(m_PodRecDate.IsEmpty())
      throw Exception("交货日期不能为空");
    if(value.IsEmpty())
      throw Exception("需求日期不能为空");
    if(Validate(value)<Validate(m_PodRecDate))
      throw Exception("需求日期必须在交货日期之后");
    m_PodReqDate = Validate(value);
}
//---------------------------------------------------------------------------

void __fastcall TsdPod::SetPodRecDate(AnsiString value)
{
    if(m_PodSendDate.IsEmpty())
      throw Exception("发货日期不能为空");
    if(value.IsEmpty())
      throw Exception("交货日期不能为空");
    if(Validate(value)<Validate(m_PodSendDate))
      throw Exception("交货日期必须在发货日期之后");
    m_PodRecDate = Validate(value);
}
//---------------------------------------------------------------------------
void __fastcall TsdPod::SetPodSendDate(AnsiString value)
{
    if(value.IsEmpty())
      throw Exception("发货日期不能为空");
    m_PodSendDate = Validate(value);
}
//---------------------------------------------------------------------------

void __fastcall TsdPod::SetPodDesc(AnsiString value)
{
    if(value.Length()>40)
      throw Exception("备注长度不能大于40");
    m_PodDesc = value;
}
//---------------------------------------------------------------------------

void __fastcall TsdPod::SetPodBatch(AnsiString value)
{
    int FBatch;
    if(m_PodGoods.IsEmpty())
      throw Exception("采购物料不能为空");
    if(value.Length()>18)
      throw Exception("批号长度不能大于18");
    if(value.IsEmpty()==false && value!=m_PodBatch)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select Batchcode from sdBatch where Batchcode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("批号'"+value+"'未定义");
      }
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select goodsbatch from sdgoods where goodscode='"+m_PodGoods+"'");
      m_Query->Open();
      if(m_Query->RecordCount<1)
      {
        m_Query->Close();
        throw Exception("采购物料:"+m_PodGoods+"在物料主文件中没找到");
      }
      FBatch=m_Query->FieldValues["GoodsBatch"];
      m_Query->Close();
      if(FBatch!=1)
        throw Exception("当前物料不能进行批次管理");
    }
    m_PodBatch = value;
}
//---------------------------------------------------------------------------

void __fastcall TsdPod::SetPodSo(AnsiString value)
{
    int FSod;
    if(m_PodGoods.IsEmpty())
      throw Exception("采购物料不能为空");
    if(value.Length()>18)
      throw Exception("销售订单号长度能大于18");
    if(value.IsEmpty()==false && value!=m_PodSo)
    {
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select SohCode from sdSoh where Sohcode='"+value+"'");
      m_Query->Open();
      if(m_Query->RecordCount<=0)
      {
        m_Query->Close();
        throw Exception("销售订单'"+value+"'未定义");
      }
      m_Query->Close();
      m_Query->SQL->Clear();
      m_Query->SQL->Add("select GoodsTrackSo from sdgoods where goodscode='"+m_PodGoods+"'");
      m_Query->Open();
      if(m_Query->RecordCount<1)
      {
        m_Query->Close();
        throw Exception("物料:"+m_PodGoods+"在物料主文件中未找到");
      }
      FSod=m_Query->FieldValues["GoodsTrackSo"];
      m_Query->Close();
      if(FSod!=1)
        throw Exception("当前物料不能进行订单跟踪");
    }
    m_PodSo = value;
}

void __fastcall TsdPod::SetPodSodLine(int value)
{
    if(m_PodSo.IsEmpty()==false)
    {
      if(value<1)
        throw Exception("订单行号不能小于1");
      else
      {
        m_Query->Close();
        m_Query->SQL->Clear();
        m_Query->SQL->Add("select Sodcode from sdSod where Sodcode='"+m_PodSo+"' and SodLine="+value);
        m_Query->Open();
        if(m_Query->RecordCount<=0)
        {
          m_Query->Close();
          throw Exception("订单行:'"+AnsiString(value)+"'未定义");
        }
        m_Query->Close();
      }
    }
    m_PodSodLine = value;
}
//---------------------------------------------------------------------------

void __fastcall TsdPod::SetPodClose(int value)
{
  if(value!=0 && value!=1)
    throw Exception("结清标志只能取值0-未结清 1-已结清");
  m_PodClose=value;
}

void __fastcall TsdPod::SetPodCloseDate(AnsiString value)
{
    if(value.IsEmpty()==false)
      m_PodCloseDate=Validate(value);
    else
      m_PodCloseDate="";
}


AnsiString TsdPod::GetFieldValue(euPod sdFieldName)
{
    switch(sdFieldName)
    {
      case fiPodLine:
        return  AnsiString(PodLine);
      case fiPodCode:
        return  PodCode;
      case fiPodGoods:
        return PodGoods;
      case fiPodUnit:
        return PodUnit;
      case fiPodConvRate:
        return AnsiString(PodConvRate);
      case fiPodQty:
        return AnsiString(PodQty);
      case fiPodPrice:
        return AnsiString(PodPrice);
      case fiPodAmt:
        return AnsiString(PodAmt);
      case fiPodType:
        return AnsiString(PodType);
      case fiPodFrom:
        return AnsiString(PodFrom);
      case fiPodFromCode:
        return PodFromCode;
      case fiPodFromLine:
        return PodFromLine;
      case fiPodDQty:
        return PodDQty;
      case fiPodRQty:
        return PodRQty;
      case fiPodBQty:
        return PodBQty;
      case fiPodWQty:
        return PodWQty;
      case fiPodFQty:
        return PodFQty;
      case fiPodEQty:
        return PodEQty;
      case fiPodStatus:
        return AnsiString(PodStatus);
      case fiPodLoc:
        return PodLoc;
      case fiPodDept:
        return PodDept;
      case fiPodBatch:
        return PodBatch;
      case fiPodSendDate:
        return PodSendDate;
      case fiPodReqDate:
        return PodReqDate;
      case fiPodRecDate:
        return PodRecDate;
      case fiPodDesc:
        return PodDesc;
      case fiPodClose:
        return AnsiString(PodClose);
      case fiPodCloseDate:
        return PodCloseDate;
      case fiPodSo:
        return PodSo;
      case fiPodSodLine:
        return AnsiString(PodSodLine);
      default:
        throw Exception("当前未定义可取值");
    }
}



AnsiString TsdPod::GetOldFieldValue(euPod sdFieldName)
{
    switch(sdFieldName)
    {
      case fiPodLine:
        return  AnsiString(b_PodLine);
      case fiPodCode:
        return  b_PodCode;
      case fiPodGoods:
        return b_PodGoods;
      case fiPodUnit:
        return b_PodUnit;
      case fiPodConvRate:
        return AnsiString(b_PodConvRate);
      case fiPodQty:
        return AnsiString(b_PodQty);
      case fiPodPrice:
        return AnsiString(b_PodPrice);
      case fiPodAmt:
        return AnsiString(b_PodAmt);
      case fiPodType:
        return AnsiString(b_PodType);
      case fiPodFrom:
        return AnsiString(b_PodFrom);
      case fiPodFromCode:
        return b_PodFromCode;
      case fiPodFromLine:
        return b_PodFromLine;
      case fiPodDQty:
        return b_PodDQty;
      case fiPodRQty:
        return b_PodRQty;
      case fiPodBQty:
        return b_PodBQty;
      case fiPodWQty:
        return b_PodWQty;
      case fiPodFQty:
        return b_PodFQty;
      case fiPodEQty:
        return b_PodEQty;
      case fiPodStatus:
        return AnsiString(b_PodStatus);
      case fiPodLoc:
        return b_PodLoc;
      case fiPodDept:
        return b_PodDept;
      case fiPodBatch:
        return b_PodBatch;
      case fiPodSendDate:
        return b_PodSendDate;
      case fiPodReqDate:
        return b_PodReqDate;
      case fiPodRecDate:
        return b_PodRecDate;
      case fiPodDesc:
        return b_PodDesc;
      case fiPodClose:
        return AnsiString(b_PodClose);
      case fiPodCloseDate:
        return b_PodCloseDate;
      case fiPodSo:
        return b_PodSo;
      case fiPodSodLine:
        return AnsiString(b_PodSodLine);
      default:
        throw Exception("当前未定义可取值");
    }
}

//---------------------------------------------------------------------------

void TsdPod::SetFieldValue(euPod sdFieldName, AnsiString Value)
{
    switch(sdFieldName)
    {
      case fiPodLine:
        PodLine=Value.ToInt();
        break;
      case fiPodCode:
        PodCode=Value;
        break;
      case fiPodGoods:
        PodGoods=Value;
        break;
      case fiPodUnit:
        PodUnit=Value;
        break;
      case fiPodConvRate:
        PodConvRate=Value.ToD

⌨️ 快捷键说明

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