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

📄 poh.cpp

📁 速达开源ERP系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Poh.h"
#include "Pod.h"
#include "Func.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "GenBaseForm"
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"

TfrmPoh *frmPoh;
//---------------------------------------------------------------------------
__fastcall TfrmPoh::TfrmPoh(TComponent* Owner)
    : TGenBaseForm(Owner,euSdPoh,"")
{
 //传采购单号控件指针
  AutoCtl=sePohCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPoh::InitEditControl()
{
    ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(1,false,true,false,sePohCode,sePohCode->Name);
    ClientGroup->AddComponent(1,false,true,true,scPohSupply,scPohSupply->Name);
    ClientGroup->AddComponent(1,false,false,true,scPohTaxCode,scPohTaxCode->Name);

    ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,true,true,true,chkPodClose,chkPodClose->Name);
    ClientGroup->AddComponent(2,true,true,true,scPodStatus,scPodStatus->Name);
    ClientGroup->AddComponent(2,true,true,true,scPodType,scPodType->Name);
    ClientGroup->AddComponent(2,false,true,true,sePodGoods,sePodGoods->Name);
    ClientGroup->AddComponent(2,true,true,true,scPodFrom,scPodFrom->Name);
    ClientGroup->AddComponent(2,true,true,true,sePodAmt,sePodAmt->Name);
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
    ClientGroup->AddComponent(2,true,true,true,sePodFromCode,sePodFromCode->Name);
    ClientGroup->AddComponent(2,true,true,true,sePodFromLine,sePodFromLine->Name);
    ClientGroup->AddComponent(2,true,true,true,sePodSodLine,sePodSodLine->Name);
    //poh
    FillComboBox(scPohPmode,"SELECT PmodeCode,PmodeName FROM sdPmode order by PmodeCode","PmodeName","PmodeCode");
    FillComboBox(scPohTaxCode,"SELECT TaxCode,TaxName FROM sdTax order by TaxCode","TaxName","TaxCode");
    FillComboBox(scPohSettleMode,"SELECT SettleModeCode,SettleModeName FROM sdSettleMode order by SettleModeCode","SettleModeName","SettleModeCode");

    FillComboBox(scPohSupply,"SELECT SupplyCode,SupplyName,SupplyTaxCode,SupplyTaxNo FROM sdSupply  where supplycancel=0  order by SupplyCode",
                 "SupplyName","SupplyCode","SupplyTaxCode","SupplyTaxNo");
    FillComboBox(scPohTransMode,"SELECT TransModeCode,TransModeName FROM sdTransMode Order by TransModeCode","TransModeName","TransModeCode");
    FillComboBox(scPohDeliver,"SELECT DeliverCode,DeliverName FROM sdDeliver Order by DeliverCode","DeliverName","DeliverCode");
    FillEdit(sePohPsite,"SELECT distinct PsiteCode,PsiteName FROM sdPsite Order by PsiteCode","PsiteName","PsiteCode");
    AnsiString sSql;
    sSql =AnsiString("select currencycode,currencyname,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
    sSql+=" where currencycode*=ratecurrency and ";
    sSql+=" ratefmonth='"+g_sdPMonth+"'";
    FillEdit(sePohCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
    FillComboBox(scPohBuyer,"select UserCode,UserName from sdBuyer,sduser where UserCode=BuyerCode order by UserCode","UserName","UserCode");

    //pod
    FillEdit(sePodUnit,"SELECT UnitName memo,UnitCode,UnitRate FROM sdUnit Order by UnitCode","Memo","UnitCode","UnitRate");
    FillComboBox(scPodDept,"select deptname memo,deptcode from sddept order by deptCode","Memo","DeptCode");
    FillComboBox(scPodBatch,"SELECT BatchCode FROM sdBatch Order by BatchCode","BatchCode");
    FillEdit(sePodLoc,"SELECT LocName,LocCode FROM sdLoc where LocType=1 Order by LocCode","LocName","LocCode");

    scPodType->ClearAll();
    scPodType->AddItems("1-手工录入","1");
    scPodType->AddItems("2-系统生成","2");

    scPodFrom->ClearAll();
    scPodFrom->AddItems("1-常规需求","1");
    scPodFrom->AddItems("2-MRP需求","2");
    scPodFrom->AddItems("3-库存需求","3");

    scPodStatus->ClearAll();
    scPodStatus->AddItems("1-待审核","1");
    scPodStatus->AddItems("2-已确认","2");
    scPodStatus->AddItems("3-已下达","3");
    scPodStatus->AddItems("4-已关闭","4");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPoh::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
       if (! BringToNext)
       {
         sePohCode->Text ="";
         dePohDate->Text = g_sdCurDate;
         scPohPmode->Text ="";
         scPohPmode->ItemIndex=-1;
         sePohContract->Text ="";
         scPohSupply->ItemIndex=-1;
         scPohSettleMode->Text = "";
         scPohSettleMode->ItemIndex=-1;
         scPohDeliver->Text="";
         scPohDeliver->ItemIndex=-1;
         sePohPsite->ItemIndex=-1;
         chkPohClose->Checked=false;
         scPohTransMode->Text="";
         scPohTransMode->ItemIndex=-1;
         chkPohStop->Checked=false;
         scPohBuyer->LocateKey(g_sdUserCode);
         dePohSugDate->Text=g_sdCurDate ;
         sePohCurrency->ItemIndex=-1;
         sePohEnrate->Text ="1.00";
         scPohTaxCode->Text = "";
         scPohTaxCode->ItemIndex=-1;
         sePohPrePayAmt->Text="0.00";
         sePohPayTerm->Text ="0";
         sePohCarriage->Text="0.00";
         labPohUser->Caption=g_sdUserCode;
         chkPohCheck->Checked=false;
         labPohChecker->Caption="";
         chkPohCancel->Checked=false;
         labPohCanceler->Caption="";
         memPohDesc->Text="";
         //新增单据,工具栏使能
         SetCheckToolbarStatus(false);

       }
       sgPoh->RowCount=1;
    }
    else if (Section==2)
    {
        if (!BringToNext)
        {
            sePodLine->Text =AnsiString(comServer->ItemCount+1);
            sePodGoods->Text="";
            pv_GoodsCode="";
            sePodGoodsName->Text ="";
            sePodUnit->ItemIndex=-1;
            sePodConvRate->Text="1";
            sePodPrice->Text="0.00";
            sePodQty->Text="0.00";
            sePodAmt->Text="0.00";

            labPodDQty->Caption="0.00";
            labPodRQty->Caption="0.00";
            labPodBQty->Caption="0.00";
            labPodFQty->Caption="0.00";
            labPodEQty->Caption="0.00";
            labPodWQty->Caption="0.00";

            dePodRecDate->Text=g_sdCurDate;
            scPodType->ItemIndex=0;
            scPodFrom->ItemIndex=0;
            scPodStatus->ItemIndex=0;
            sePodFromCode->Text="";
            sePodFromLine->Text="0";
            chkPodClose->Checked = false;

            dePodReqDate->Text=g_sdCurDate;
            dePodSendDate->Text=g_sdCurDate;
            scPodDept->Text="";
            scPodDept->ItemIndex=-1;
            sePodLoc->ItemIndex=-1;
            scPodBatch->Text="";
            scPodBatch->ItemIndex=-1;
            sePodSo->Text="";
            sePodSodLine->Text="";
            memPodDesc->Text="";
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPoh::GetDataFromComObject(int Section)
{
    if (Section==1)
    {
        sePohCode->Text=GetHeadValue(fiPohCode);
        dePohDate->Text=GetHeadValue(fiPohDate);
        scPohPmode->LocateKey(GetHeadValue(fiPohPmode));
        scPohPmode->Text=scPohPmode->ItemData[cbItem1];

        sePohContract->Text=GetHeadValue(fiPohContract);

        scPohSupply->LocateKey(GetHeadValue(fiPohSupply));
        scPohSupplyClick(this);
        sePohCurrency->LocateKey(GetHeadValue(fiPohCurrency));

        scPohSettleMode->LocateKey(GetHeadValue(fiPohSettleMode));
        scPohDeliver->LocateKey(GetHeadValue(fiPohDeliver));
        scPohTransMode->LocateKey(GetHeadValue(fiPohTransMode));
        sePohPsite->LocateKey(GetHeadValue(fiPohPsite));

        chkPohClose->Checked=GetHeadValue(fiPohClose)=="1";
        chkPohStop->Checked=GetHeadValue(fiPohStop)=="1";

        labPohUser->Caption=GetHeadValue(fiPohUser);
        dePohSugDate->Text =GetHeadValue(fiPohSugDate);

        scPohBuyer->LocateKey(GetHeadValue(fiPohBuyer));

        sePohEnrate->Text=GetHeadValue(fiPohEnrate);

        scPohTaxCode->LocateKey(GetHeadValue(fiPohTaxCode));

        sePohPrePayAmt->Text=GetHeadValue(fiPohPrePayAmt);
        sePohPayTerm->Text=GetHeadValue(fiPohPayTerm);
        sePohCarriage->Text=GetHeadValue(fiPohCarriage);

        chkPohCheck->Checked=GetHeadValue(fiPohCheck)=="1";
        labPohChecker->Caption=GetHeadValue(fiPohChecker);
        chkPohCancel->Checked=GetHeadValue(fiPohCancel)=="1";
        labPohCanceler->Caption=GetHeadValue(fiPohCanceler);
        chkPohStop->Checked=GetHeadValue(fiPohStop)=="1";
        chkPohClose->Checked=GetHeadValue(fiPohClose)=="1";
        memPohDesc->Text=GetHeadValue(fiPohDesc);
        //根据审核、取消状态,设置工具栏
        if(GetHeadValue(fiPohCheck)=="1")
         SetCheckToolbarStatus(true);
        else
         SetCheckToolbarStatus(false);
        if(GetHeadValue(fiPohCancel)=="1")
         SetCancelToolbarStatus(true);
        else
         SetCancelToolbarStatus(false);
        //根据结清状态,设置工具栏
        if(GetHeadValue(fiPohClose)=="1")
         SetCloseToolbarStatus(true);
        else
         SetCloseToolbarStatus(false);
    }
    else
    {
        sePodLine->Text=GetDetailValue(fiPodLine);

        g_sdRsGoods->LocateByKey(WideString(GetDetailValue(fiPodGoods)));
        sePodGoods->Text = GetGoodsValue("GoodsCode");
        sePodGoodsName->Text = GetGoodsValue("GoodsName");
        sePodUnit->LocateKey(GetDetailValue(fiPodUnit));
        sePodConvRate->Text=GetDetailValue(fiPodConvRate);
        sePodQty->Text=GetDetailValue(fiPodQty);
        sePodPrice->Text=GetDetailValue(fiPodPrice);
        sePodAmt->Text=GetDetailValue(fiPodAmt);
        dePodRecDate->Text=GetDetailValue(fiPodRecDate);
        scPodType->LocateKey(GetDetailValue(fiPodType));
        scPodFrom->LocateKey(GetDetailValue(fiPodFrom));
        scPodStatus->LocateKey(GetDetailValue(fiPodStatus));
        sePodFromCode->Text=(GetDetailValue(fiPodFromCode));
        sePodFromLine->Text=(GetDetailValue(fiPodFromLine));
        chkPodClose->Checked=GetDetailValue(fiPodClose)=="1";
        dePodReqDate->Text=GetDetailValue(fiPodReqDate);
        dePodSendDate->Text=GetDetailValue(fiPodSendDate);
        scPodDept->LocateKey(GetDetailValue(fiPodDept));
        sePodLoc->LocateKey(GetDetailValue(fiPodLoc));
        scPodBatch->LocateKey(GetDetailValue(fiPodBatch));
        sePodSo->Text=GetDetailValue(fiPodSo);
        sePodSodLine->Text=GetDetailValue(fiPodSodLine);
        labPodDQty->Caption=GetDetailValue(fiPodDQty);
        labPodRQty->Caption=GetDetailValue(fiPodRQty);
        labPodBQty->Caption=GetDetailValue(fiPodBQty);
        labPodFQty->Caption=GetDetailValue(fiPodFQty);
        labPodEQty->Caption=GetDetailValue(fiPodEQty);
        labPodWQty->Caption=GetDetailValue(fiPodWQty);
        memPodDesc->Text=GetDetailValue(fiPodDesc);
        //根据结清状态,设置工具栏
        if(GetDetailValue(fiPodClose)=="1")
         SetCloseDetailStatus(true);
        else
         SetCloseDetailStatus(false);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPoh::SendDataToComObject(int Section)
{
    double FVal;
    if (Section==1)
    {
        SetHeadValue(fiPohCode,sePohCode->Text);
        SetHeadValue(fiPohDate,dePohDate->Text);
        SetHeadValue(fiPohPmode,scPohPmode->ItemData[cbItem2]);
        SetHeadValue(fiPohContract,sePohContract->Text);
        SetHeadValue(fiPohSupply,scPohSupply->ItemData[cbItem2]);
        SetHeadValue(fiPohSettleMode,scPohSettleMode->ItemData[cbItem2]);
        SetHeadValue(fiPohDeliver,scPohDeliver->ItemData[cbItem2]);
        SetHeadValue(fiPohTransMode,scPohTransMode->ItemData[cbItem2]);
        SetHeadValue(fiPohPsite,sePohPsite->ItemData[cbItem2]);

        SetHeadValue(fiPohBuyer,scPohBuyer->ItemData[1]);
        SetHeadValue(fiPohSugDate,dePohSugDate->Text);
        SetHeadValue(fiPohCurrency,sePohCurrency->ItemData[cbItem2]);
        if(sePohEnrate->Text == "")
         throw Exception("请输入货币汇率");
        SetHeadValue(fiPohEnrate,sePohEnrate->Text);
        SetHeadValue(fiPohTaxCode,scPohTaxCode->ItemData[cbItem2]);

        SetHeadValue(fiPohUser,labPohUser->Caption);
        if(sePohPayTerm->Text == "")
         sePohPayTerm->Text="0";
        SetHeadValue(fiPohPayTerm,sePohPayTerm->Text);
        if(sePohPrePayAmt->Text == "")
         sePohPrePayAmt->Text="0.00";
        SetHeadValue(fiPohPrePayAmt,sePohPrePayAmt->Text);
        if(sePohCarriage->Text == "")
         sePohCarriage->Text="0.00";
        SetHeadValue(fiPohCarriage,sePohCarriage->Text);
        SetHeadValue(fiPohDesc,memPohDesc->Text);

    }
    else
    {
        if(sePodQty->Text.IsEmpty())
          sePodQty->Text="0";
        if(sePodPrice->Text.IsEmpty())
          sePodPrice->Text="0";
        FVal=sePodQty->Text.ToDouble()*sePodPrice->Text.ToDouble();
        sePodAmt->Text=DataCarry(FVal,2,0);
        //给单行的采购单赋值
        SetDetailValue(fiPodCode,sePohCode->Text);
        if(sePodLine->Text == "")
         throw Exception("请输入采购单行号");
        SetDetailValue(fiPodLine,sePodLine->Text);
        SetDetailValue(fiPodGoods,sePodGoods->Text);
        SetDetailValue(fiPodLoc,sePodLoc->ItemData[cbItem2]);
        SetDetailValue(fiPodUnit,sePodUnit->ItemData[cbItem2]);
        if(sePodConvRate->Text == "")
         throw Exception("请输入单位转换系数");
        SetDetailValue(fiPodConvRate,sePodConvRate->Text);
        if(sePodQty->Text == "")
         throw Exception("请输入采购数量");

⌨️ 快捷键说明

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