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

📄 smhdl.cpp

📁 邮 电 公 司 erp源码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
      this->m_SohSaler           =p->m_SohSaler;
      this->m_SohContract        =p->m_SohContract;
      this->m_SohCurrency        =p->m_SohCurrency;
      this->m_SohEnrate          =p->m_SohEnrate;
      this->m_SohTaxCode         =p->m_SohTaxCode;
      this->m_SohSettleMode      =p->m_SohSettleMode;
      this->m_SohDeliver         =p->m_SohDeliver;
      this->m_SohSsite           =p->m_SohSsite;
      this->m_SohTransMode       =p->m_SohTransMode;
      this->m_SohPayTrans        =p->m_SohPayTrans;
      this->m_SohDj              =p->m_SohDj;
      this->m_SohCancel          =p->m_SohCancel;
      this->m_SohCrCode          =p->m_SohCrCode;
      this->m_SohCancelDate      =p->m_SohCancelDate;
      this->m_SohCheck           =p->m_SohCheck;
      this->m_SohChecker         =p->m_SohChecker;
      this->m_SohCheckDate       =p->m_SohCheckDate;
      this->m_SohClose           =p->m_SohClose;
      this->m_SohUser            =p->m_SohUser;
      this->m_SohDesc            =p->m_SohDesc;
      this->m_SohSysDate         =p->m_SohSysDate;

      if(this->CurStatus==3)
      {
        this->b_sdSod              =p->b_sdSod;
        this->b_SohCode            =p->b_SohCode;
        this->b_SohType            =p->b_SohType;
        this->b_SohDate            =p->b_SohDate;
        this->b_SohClient          =p->b_SohClient;
        this->b_SohSaler           =p->b_SohSaler;
        this->b_SohContract        =p->b_SohContract;
        this->b_SohCurrency        =p->b_SohCurrency;
        this->b_SohEnrate          =p->b_SohEnrate;
        this->b_SohTaxCode         =p->b_SohTaxCode;
        this->b_SohSettleMode      =p->b_SohSettleMode;
        this->b_SohDeliver         =p->b_SohDeliver;
        this->b_SohSsite           =p->b_SohSsite;
        this->b_SohTransMode       =p->b_SohTransMode;
        this->b_SohPayTrans        =p->b_SohPayTrans;
        this->b_SohDj              =p->b_SohDj;
        this->b_SohCancel          =p->b_SohCancel;
        this->b_SohCrCode          =p->b_SohCrCode;
        this->b_SohCancelDate      =p->b_SohCancelDate;
        this->b_SohCheck           =p->b_SohCheck;
        this->b_SohChecker         =p->b_SohChecker;
        this->b_SohCheckDate       =p->b_SohCheckDate;
        this->b_SohClose           =p->b_SohClose;
        this->b_SohUser            =p->b_SohUser;
        this->b_SohDesc            =p->b_SohDesc;
        this->b_SohSysDate         =p->b_SohSysDate;
      }
      else
        this->BackupValue();
 }
//---------------------------------------------------------------------------
void TsdSoh::AssignValue()
{
       TsdSoh *p=(TsdSoh*)Records(CurRecNo);
       Assign(p);
}
//---------------------------------------------------------------------------
AnsiString TsdSoh::GetItemValue(euSod FieldName)
{
    return m_sdSod->GetFieldValue(FieldName);
}
//---------------------------------------------------------------------------
void TsdSoh::SetItemValue(euSod FieldName, AnsiString Value)
{
    m_sdSod->SetFieldValue(FieldName,Value);
}
//---------------------------------------------------------------------------
int __fastcall TsdSoh::GetItemCount()
{
    if(m_sdSod)
      return m_sdSod->Count;
    else
      return 0;
}
//---------------------------------------------------------------------------
int __fastcall TsdSoh::GetCurItemNo()
{
    return m_sdSod->CurRecNo;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TsdSoh::GetItemBookMark()
{
    return m_sdSod->BookMark;
}
//--------------------------------------------------------------------------
void TsdSoh::AddToObject()
{
    TsdSod *p=new TsdSod();
    p->Assign(m_sdSod);
    if(m_sdSod->FindKey(m_sdSod->GetOldFieldValue(fiSodLine)))
      m_sdSod->ChangeRecord((void *)p,p->GetFieldValue(fiSodLine),m_sdSod->GetOldFieldValue(fiSodLine));
    else
      m_sdSod->AddRecord((void *)p,p->GetFieldValue(fiSodLine));
}
//--------------------------------------------------------------------------
bool TsdSoh::LocateItemByIndex(int Index)
{
    return m_sdSod->LocateByIndex(Index);
}
//--------------------------------------------------------------------------
bool TsdSoh::LocateItemByKey(AnsiString Key)
{
    return m_sdSod->LocateByKey(Key);
}
//--------------------------------------------------------------------------
void TsdSoh::NewDetail()
{
    m_sdSod=new TsdSod(DataComm);
    m_sdSod->sdParent=this;
}
//--------------------------------------------------------------------------
void TsdSoh::DeleteDetail()
{
    delete m_sdSod;
    m_sdSod=NULL;
}
//--------------------------------------------------------------------------
 void TsdSoh::CancelItem()
{
    m_sdSod->Cancel();
}
//--------------------------------------------------------------------------
void TsdSoh::EditItem()
{
   m_sdSod->Edit();
  if(CurStatus==1)
   {
    SetActionID(6);
   }
}
//--------------------------------------------------------------------------
char __fastcall TsdSoh::GetCurItemStatus()
{
  return m_sdSod->CurStatus;
}
//--------------------------------------------------------------------------

void TsdSoh::DeleteItem()
{
  if(CurStatus==2||CurStatus==5)
    m_sdSod->DeleteRecord(m_sdSod->Key);
  else
    m_sdSod->Delete();
}
//--------------------------------------------------------------------------
void TsdSoh::RemoveItem()
{
  if(CurStatus==2||CurStatus==5)
    m_sdSod->RemoveRecord(m_sdSod->Index);
  else
    m_sdSod->Delete();
}
//--------------------------------------------------------------------------
void TsdSoh::ClearItem()
{
   int iCount;
   if(CurStatus==2)
     m_sdSod->ClearRecord();
   else
   {
     iCount=m_sdSod->Count;
     for(int i=0;i<iCount;i++)
     {
       m_sdSod->LocateByIndex(0);
       m_sdSod->Delete();
     }
   }
}
//--------------------------------------------------------------------------
void TsdSoh::AddItem()
{
    m_sdSod->AddNew();
    if(CurStatus!=2)
          SetActionID(5);
}
//--------------------------------------------------------------------------
void TsdSoh::Delete()
{
    if(CurStatus!=1)
      throw Exception("当前状态不能进行删除操作!");
    if(m_SohCode.IsEmpty()==true)
      throw Exception("当前没有记录可以删除!");
    m_StoredProc->Close();
    m_StoredProc->ProcedureName="sdSoh_Delete";
    m_StoredProc->Parameters->Clear();
    m_StoredProc->Parameters->CreateParameter("@W_SohCode",ftString,pdInput,18,b_SohCode);
    m_StoredProc->ExecProc();
    m_StoredProc->Close();
    DeleteDetail();
    DeleteRecord(this->b_SohCode);
}
//--------------------------------------------------------------------------

void TsdSoh::Update()
{
  if(CurStatus==0||CurStatus==1)
    throw Exception("当前不是编辑状态,不能进行存盘操作!");
  if(m_SohCode.IsEmpty()==true)
    throw Exception("销售订单单号不能为空!");
  if(ItemCount<=0)
    throw Exception("销售订单没有定义明细字段");
    m_StoredProc->Close();
  switch(CurStatus)
  {
    case 2:
    case 4:
        m_StoredProc->ProcedureName="sdSoh_Insert";
        m_StoredProc->Parameters->Clear();
        m_StoredProc->Parameters->CreateParameter("@SohCode",ftString,pdInputOutput,18,m_SohCode);
        m_StoredProc->Parameters->CreateParameter("@SohType",ftInteger,pdInput,1,m_SohType);
        m_StoredProc->Parameters->CreateParameter("@SohDate",ftString,pdInput,10,m_SohDate);
        m_StoredProc->Parameters->CreateParameter("@SohSaler",ftString,pdInput,18,m_SohSaler);
        m_StoredProc->Parameters->CreateParameter("@SohClient",ftString,pdInput,18,m_SohClient);
        m_StoredProc->Parameters->CreateParameter("@SohContract",ftString,pdInput,18,m_SohContract);
        m_StoredProc->Parameters->CreateParameter("@SohCurrency",ftString,pdInput,18,m_SohCurrency);
        m_StoredProc->Parameters->CreateParameter("@SohEnrate",ftFloat,pdInput,12,m_SohEnrate);
        m_StoredProc->Parameters->CreateParameter("@SohTaxCode",ftString,pdInput,18,m_SohTaxCode);
        m_StoredProc->Parameters->CreateParameter("@SohSettleMode",ftString,pdInput,18,m_SohSettleMode);
        m_StoredProc->Parameters->CreateParameter("@SohPayTrans",ftInteger,pdInput,1,m_SohPayTrans);
        m_StoredProc->Parameters->CreateParameter("@SohDj",ftFloat,pdInput,12,m_SohDj);
        m_StoredProc->Parameters->CreateParameter("@SohDesc",ftString,pdInput,40,m_SohDesc);
        m_StoredProc->Parameters->CreateParameter("@SohCrCode",ftString,pdInput,18,m_SohCrCode);
        m_StoredProc->Parameters->CreateParameter("@SohUser",ftString,pdInput,18,m_SohUser);
        m_StoredProc->Parameters->CreateParameter("@SohSysDate",ftString,pdOutput,30,m_SohSysDate);
        m_StoredProc->Parameters->CreateParameter("@SohSsite",ftString,pdInput,18,m_SohSsite);
        m_StoredProc->Parameters->CreateParameter("@SohDeliver",ftString,pdInput,18,m_SohDeliver);
        m_StoredProc->Parameters->CreateParameter("@SohTransMode",ftString,pdInput,18,m_SohTransMode);

        m_StoredProc->ExecProc();
        m_SohCode=m_StoredProc->Parameters->ParamValues["@SohCode"];
        m_SohSysDate=m_StoredProc->Parameters->ParamValues["@SohSysDate"];

        for(int i=0;i<ItemCount;i++)
        {
            LocateItemByIndex(i);
            m_sdSod->SetFieldValue(fiSodCode,m_SohCode);
            AddToObject();
            m_sdSod->Update();
        }
        break;
    case 3:
        m_StoredProc->ProcedureName="sdSoh_Update";
        m_StoredProc->Parameters->Clear();

        m_StoredProc->Parameters->CreateParameter("@W_SohCode",ftString,pdInput,18,b_SohCode);
        m_StoredProc->Parameters->CreateParameter("@SohType",ftInteger,pdInput,1,m_SohType);
        m_StoredProc->Parameters->CreateParameter("@SohDate",ftString,pdInput,10,m_SohDate);
        m_StoredProc->Parameters->CreateParameter("@SohSaler",ftString,pdInput,18,m_SohSaler);
        m_StoredProc->Parameters->CreateParameter("@SohClient",ftString,pdInput,18,m_SohClient);
        m_StoredProc->Parameters->CreateParameter("@SohContract",ftString,pdInput,18,m_SohContract);
        m_StoredProc->Parameters->CreateParameter("@SohCurrency",ftString,pdInput,18,m_SohCurrency);
        m_StoredProc->Parameters->CreateParameter("@SohEnrate",ftFloat,pdInput,12,m_SohEnrate);
        m_StoredProc->Parameters->CreateParameter("@SohTaxCode",ftString,pdInput,18,m_SohTaxCode);
        m_StoredProc->Parameters->CreateParameter("@SohSettleMode",ftString,pdInput,18,m_SohSettleMode);
        m_StoredProc->Parameters->CreateParameter("@SohPayTrans",ftInteger,pdInput,1,m_SohPayTrans);
        m_StoredProc->Parameters->CreateParameter("@SohDj",ftFloat,pdInput,12,m_SohDj);
        m_StoredProc->Parameters->CreateParameter("@SohDesc",ftString,pdInput,40,m_SohDesc);
        m_StoredProc->Parameters->CreateParameter("@SohCrCode",ftString,pdInput,18,m_SohCrCode);
        m_StoredProc->Parameters->CreateParameter("@SohUser",ftString,pdInput,18,m_SohUser);
        m_StoredProc->Parameters->CreateParameter("@SohSysDate",ftString,pdOutput,30,m_SohSysDate);
        m_StoredProc->Parameters->CreateParameter("@SohSsite",ftString,pdInput,18,m_SohSsite);
        m_StoredProc->Parameters->CreateParameter("@SohDeliver",ftString,pdInput,18,m_SohDeliver);
        m_StoredProc->Parameters->CreateParameter("@SohTransMode",ftString,pdInput,18,m_SohTransMode);

       m_StoredProc->ExecProc();
       m_SohSysDate=m_StoredProc->Parameters->ParamValues["@SohSysDate"];

      break;
    case 5:
    case 6:
//    case 7:
        for(int i=0;i<ItemCount;i++)
          {
            LocateItemByIndex(i);
            if(m_sdSod->CurStatus==2||m_sdSod->CurStatus==3)
               m_sdSod->Update();
           }
        break;
    }
    m_StoredProc->Close();
    TsdSoh *p=new TsdSoh();
  if(CurStatus==2)
    {
    SetActionID(1);
    p->Assign(this);
    AddRecord((void *)p,p->SohCode);
    }
  else
    {
    SetActionID(1);
    p->Assign(this);
    ChangeRecord((void *)p,p->SohCode,this->b_SohCode);
    }
}

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

bool TsdSoh::Find(AnsiString WhereStr)
{
  AnsiString m_SqlStr;
  if(WhereStr.IsEmpty()==true)
    throw Exception("查找表达式不能为空");
    m_SqlStr="select * from sdSoh where "+WhereStr;
    m_Query->Close();
    m_Query->SQL->Clear();
    m_Query->SQL->Add(m_SqlStr);
    m_Query->Open();
  if(m_Query->RecordCount!=1)
  {
    m_Query->Close();
    return false;
  }
  else
  {
    BatchLetValue();
    m_sdSod->FilterString=" SodCode='"+m_SohCode+"'";
    m_sdSod->OrderString=" SodLine ";
    m_sdSod->Query();
    m_Query->Close();
    return true;
  }
}
void TsdSoh::Check(int IsCheck)
{
  if(this->Count>0)
  {
    try
    {
      m_StoredProc->Close();
      m_StoredProc->ProcedureName="sdSoh_Check";
      m_StoredProc->Parameters->Clear();
      if(IsCheck==1)
      {
        SohCheck=1;
        m_SohCheckDate=g_sdCurDate;
        m_SohChecker=g_sdUserCode;
        m_StoredProc->Parameters->CreateParameter("@W_SohCode",ftString,pdInput,18,b_SohCode);
        m_StoredProc->Parameters->CreateParameter("@SohCheck",ftInteger,pdInput,1,m_SohCheck);
        m_StoredProc->Parameters->CreateParameter("@SohChecker",ftString,pdInput,18,m_SohChecker);
        m_StoredProc->Parameters->CreateParameter("@SohCheckDate",ftString,pdInput,10,m_SohCheckDate);
        m_StoredProc->ExecProc();
      }
      else
      {
        SohCheck=0;
        m_SohChecker="";
        m_SohCheckDate="";
        m_StoredProc->Parameters->CreateParameter("@W_SohCode",ftString,pdInput,18,m_SohCode);
        m_StoredProc->Parameters->CreateParameter("@SohCheck",ftInteger,pdInput,1,0);
        m_StoredProc->Parameters->CreateParameter("@SohChecker",ftString,pdInput,18,AnsiString(""));
        m_StoredProc->Parameters->CreateParameter("@SohCheckDate",ftString,pdInput,10,AnsiString(""));
        m_StoredProc->ExecProc();
      }
      TsdSoh *p=(TsdSoh*)Records(CurRecNo);
      p->Assign(this);
      BackupValue();
    }
    catch(Exception &e)
    {
      m_SohCheck=b_SohCheck;
      m_SohChecker=b_SohChecker;
      m_SohCheckDate=b_SohCheckDate;
      throw Exception(e.Message);
    }
  }
  else
    throw Exception("没有单据可以审核");
}


void TsdSoh::Revoke(int IsRevoke)
{
  if(this->Count>0)
  {
  try{
     m_StoredProc->Close();
     m_StoredProc->ProcedureName="sdSoh_Revoke";
     m_StoredProc->Parameters->Clear();
    if(IsRevoke==1)
    {
      SohCancel=1;
      m_SohCancelDate=g_sdCurDate;
      m_StoredProc->Parameters->CreateParameter("@W_SohCode",ftString,pdInput,18,b_SohCode);
      m_StoredProc->Parameters->CreateParameter("@SohCancel",ftInteger,pdInput,1,m_SohCancel);
      m_StoredProc->Parameters->CreateParameter("@SohCancelDate",ftString,pdInput,10,m_SohCancelDate);
      m_StoredProc->ExecProc();
    }
    else
    {
      SohCancel=0;
      m_SohCancelDate="";

⌨️ 快捷键说明

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