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

📄 unit_invmanage.pas

📁 用友ERP功能扩展
💻 PAS
📖 第 1 页 / 共 3 页
字号:
    cxLabel18: TcxLabel;
    cxDBLabel18: TcxDBLabel;
    cxLabel19: TcxLabel;
    cxDBLabel19: TcxDBLabel;
    cxDBLabel20: TcxDBLabel;
    dxDBGrid9: TdxDBGrid;
    dxDBGridMaskColumn79: TdxDBGridMaskColumn;
    dxDBGridColumn77: TdxDBGridColumn;
    dxDBGridColumn78: TdxDBGridColumn;
    dxDBGridMaskColumn80: TdxDBGridMaskColumn;
    dxDBGridMaskColumn81: TdxDBGridMaskColumn;
    dxDBGrid10: TdxDBGrid;
    dxDBGridDateColumn10: TdxDBGridDateColumn;
    dxDBGridMaskColumn82: TdxDBGridMaskColumn;
    dxDBGridMaskColumn83: TdxDBGridMaskColumn;
    dxDBGridCurrencyColumn2: TdxDBGridCurrencyColumn;
    dxDBGridCurrencyColumn3: TdxDBGridCurrencyColumn;
    dxDBGridColumn79: TdxDBGridColumn;
    dxDBGridMaskColumn84: TdxDBGridMaskColumn;
    dxDBGridMaskColumn85: TdxDBGridMaskColumn;
    GroupBox1: TGroupBox;
    LCB_PriceType: TcxLookupComboBox;
    cxLabel20: TcxLabel;
    cxLabel21: TcxLabel;
    cxTextEdit1: TcxTextEdit;
    BitBtn2: TBitBtn;
    cxLabel22: TcxLabel;
    cxTextEdit2: TcxTextEdit;
    Checkbox1: TCheckBox;
    cxTabSheet1: TcxTabSheet;
    DBChart1: TDBChart;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    N8: TMenuItem;
    N11: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N12: TMenuItem;
    XPMenu1: TXPMenu;
    dxDBGrid8cCusCode: TdxDBGridColumn;
    dxDBGrid8cCusAbbname: TdxDBGridColumn;
    dxDBGrid8cInvCode: TdxDBGridColumn;
    dxDBGrid8cInvName: TdxDBGridColumn;
    dxDBGrid8dEndDate: TdxDBGridColumn;
    dxDBGrid8dStartDate: TdxDBGridColumn;
    dxDBGrid8State: TdxDBGridMaskColumn;
    dxDBGrid8Retrun: TdxDBGridMaskColumn;
    dxDBGrid8iInvnowCost: TdxDBGridCurrencyColumn;
    dxDBGrid8PriceGroup: TdxDBGridColumn;
    dxDBGrid8AutoID: TdxDBGridMaskColumn;
    dxDBGrid8cmemo: TdxDBGridColumn;
    procedure LCB_ProductCodePropertiesChange(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure cxTabSheet1Show(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form_Inventory: TForm_Inventory;

implementation
uses  Unit_Data;

{$R *.dfm}

procedure TForm_Inventory.LCB_ProductCodePropertiesChange(Sender: TObject);
begin
    IF LCB_ProductCode.Text <> '' Then
    Begin
        Form_Data.Table__Inventory.Locate('cInvCode',LCB_ProductCode.Text,[]);
    End;
end;

procedure TForm_Inventory.CheckBox1Click(Sender: TObject);
begin
    IF Form_Data.Table_Manage.Lookup('MName',UserName,'M011') = 0 Then
    Begin
        Showmessage('你无权执行此项操作,请咨询系统管理员!');
        Exit;
    End;
  GroupBox1.Visible := Checkbox1.Checked;
end;

procedure TForm_Inventory.BitBtn1Click(Sender: TObject);
Var
    sPriceNo,sInvCode,sInvName,sNewPrice,sOldPrice,sPriceMemo,sWsPrice,sNwsPrice,sCbPrice,sMemo: String;
    iTypeID: Integer;
begin
    IF (LCB_PriceType.Text = '') OR (cxTextEdit1.Text = '') OR (cxTextEdit2.Text = '') Then
    Begin
        Showmessage('信息提供不完整,无法进行修改作业! ');
        Exit;
    End;
    sInvCode := Form_Data.Table__Inventory.FieldByName('cInvCode').AsString;
    sInvName := Form_Data.Table__Inventory.FieldByName('cInvName').AsString;
    sWsPrice := Form_Data.Table__Inventory.FieldByName('iInvLSCost').AsString;
    sCbPrice := Form_Data.Table__Inventory.FieldByName('iInvSPrice').AsString;
    sNwsPrice:= FormatFloat('#',(StrToFloat(sCbPrice) * 1.05 * 100000));
    IF StrToInt(Copy(sNwsPrice,Length(sNwsPrice)-3,4)) = 0 Then sNwsPrice := FloatToStr(StrToInt(Copy(sNwsPrice,1,Length(sNwsPrice)-4))/10)
    Else IF StrToInt(Copy(sNwsPrice,Length(sNwsPrice)-3,4)) < 5000  Then sNwsPrice := FloatToStr((StrToInt(Copy(sNwsPrice,1,Length(sNwsPrice)-4))+0.5)/10)
    Else sNwsPrice := FloatToStr((StrToInt(Copy(sNwsPrice,1,Length(sNwsPrice)-4))+1)/10);
    iTypeID  := Form_Data.tPriceType.Lookup('PriceTName',LCB_PriceType.Text,'PriceTCode');
    sNewPrice:= cxTextEdit1.Text;
    sPriceMemo:=cxTextEdit2.Text;
    If (StrToFloat(sNwsPrice) > StrToFloat(sNewPrice)) Then sNwsPrice := sNewPrice ;
    IF MessageDlg('提示: '+#13+'是否要调整以下款号的相关价格:'+#13+#13+'['+ sInvCode+']'+#13+sInvName +#13,mtInformation,[mbOK,mbCancel],0) = mrOk Then
    Begin
        IF iTypeID = 1 Then Begin
            sOldPrice := Form_Data.Table__Inventory.FieldByName('iInvSPrice').AsString;
            sMemo     := FormatDatetime('YYYY/MM/DD',Now())+ ' 采购价由 '+ sOldPrice +' 元调至 '+ sNewPrice +' 元';
            // SQL 语法 更新库存货资料成本价
            Form_Data.SQL.Close;
            Form_Data.SQL.SQL.Clear;
            Form_Data.SQL.SQL.Add('UPDATE Inventory ');
            Form_Data.SQL.SQL.Add('SET  iInvSPrice = '''+ sNewPrice +''', ');
            Form_Data.SQL.SQL.Add('      iInvNCost = '''+ sNewPrice +''', ');
            Form_Data.SQL.SQL.Add('   cInvDefine13 = '''+ sNewPrice +''', ');
            Form_Data.SQL.SQL.Add('    cInvDefine7 = '''+ sMemo +'''');
            Form_Data.SQL.SQL.Add('WHERE (cInvCode = '''+ sInvCode +''' )');
            Form_Data.SQL.ExecSQL;
            Form_Data.SQL.Close;
            Form_Data.SQL.SQL.Clear;
            Form_Data.SQL.SQL.Add('INSERT INTO a__Price');
            Form_Data.SQL.SQL.Add('(cInvCode, PriceTCode,OldPrice,NewPrice,bCust,Maker,PriceMemo)');
            Form_Data.SQL.SQL.Add('VALUES ('''+ sInvCode +''','+ IntToStr(iTypeID) +','+ sOldPrice +','+ sNewPrice +',0,'''+ UserName +''','''+ sPriceMemo +''')');
            Form_Data.SQl.ExecSQL;

        End Else IF iTypeID = 2 Then Begin
            sOldPrice := Form_Data.Table__Inventory.FieldByName('iInvSCost').AsString;
            sMemo     := FormatDatetime('YYYY/MM/DD',Now())+ ' 批发价由 '+ sOldPrice +' 元调至 '+ sNewPrice +' 元';
            // SQL 语法 更新库存货资料成本价
            Form_Data.SQL.Close;
            Form_Data.SQL.SQL.Clear;
            Form_Data.SQL.SQL.Add('UPDATE Inventory ');
            Form_Data.SQL.SQL.Add('SET   iInvSCost = '''+ sNewPrice +''', ');
            Form_Data.SQL.SQL.Add('    cInvDefine14 = '''+ sNewPrice +''', ');
            Form_Data.SQL.SQL.Add('    cInvDefine7 = '''+ sMemo +'''');
            Form_Data.SQL.SQL.Add('WHERE (cInvCode = '''+ sInvCode +''' )');
            Form_Data.SQL.ExecSQL;

            Form_Data.SQL.Close;
            Form_Data.SQL.SQL.Clear;
            Form_Data.SQL.SQL.Add('UPDATE SA_CusUPrice');
            Form_Data.SQL.SQL.Add('SET iInvSCost = '''+ sNewPrice +'''');
            Form_Data.SQL.SQL.Add('WHERE cInvCode = '''+ sInvCode +'''');
            Form_Data.SQL.ExecSQL;

            Form_Data.SQL.Close;
            Form_Data.SQL.SQL.Clear;
            Form_Data.SQL.SQL.Add('INSERT INTO a__Price');
            Form_Data.SQL.SQL.Add('(cInvCode, PriceTCode,OldPrice,NewPrice,Maker,PriceMemo)');
            Form_Data.SQL.SQL.Add('VALUES ('''+ sInvCode +''','+ IntToStr(iTypeID) +','+ sOldPrice +','+ sNewPrice +','''+ UserName +''','''+ sPriceMemo +''')');
            Form_Data.SQl.ExecSQL;

            Form_Data.SQL.Close;
            Form_Data.SQL.SQL.Clear;
            Form_Data.SQL.SQL.Add('SELECT PriceNo FROM a__Price');
            Form_Data.SQL.SQL.Add('WHERE (cInvCode ='''+ sInvCode +''')');
            Form_Data.SQL.SQL.Add('AND (PriceTCode ='+ IntToStr(iTypeID) +')');
            Form_Data.SQL.SQL.Add('AND (OldPrice   ='+ sOldPrice +')');
            Form_Data.SQL.SQL.Add('AND (NewPrice   ='+ sNewPrice +')');
            Form_Data.SQL.SQL.Add('AND (Maker      = '''+ UserName +''')');
            Form_Data.SQL.SQL.Add('AND (PriceMemo  = '''+ sPriceMemo +''')');
            Form_Data.SQL.Open;
            IF (Form_Data.SQL.RecordCount <> 1) Then
            Begin
                Showmessage('调价记录增加不成功!');
                Exit ;
            End Else Begin
                sPriceNO := Form_Data.SQL.FieldValues['PriceNO'];
            End;

            IF Form_Data.Table__Inventory.Lookup('cInvCode',sInvCode,'cInvCCode') <> '1080' Then
            Begin
                Form_Data.SQL.Close;
                Form_Data.SQL.SQL.Clear;
                Form_Data.SQL.SQL.Add('UPDATE SA_InvUPrice');
                Form_Data.SQL.SQL.Add('SET iUPrice1 = '+ sNewPrice +'');
                Form_Data.SQL.SQL.Add('WHERE cInvCode = '''+ sInvCode +'''');
                Form_Data.SQL.ExecSQL;
            End;

            IF MessageDlg('提示: '+#13+'是否要连带修改 客户指定价'+#13+#13+#13+'指定外省价: '+ sNwsPrice,mtInformation,[mbOK,mbCancel],0) = mrOk Then
            Begin
                IF (StrToFloat(sNewPrice) <= StrToFloat(scbPrice)) Then     //低于成本降价处理
                Begin
                    Form_Data.SQL.Close;
                    Form_Data.SQL.SQL.Clear;
                    Form_Data.SQL.SQL.Add('INSERT INTO a__Prices');
                    Form_Data.SQL.SQL.Add('(PriceNO, cCusCode,OldPrice,NewPrice,dPrice,dMoney)');
                    Form_Data.SQL.SQL.Add('SELECT '+ sPriceNo +' AS PriceNO,');
                    Form_Data.SQL.SQL.Add('       SA_CusUPrice.cCusCode,');
                    Form_Data.SQL.SQL.Add('       SA_CusUPrice.iInvNowCost AS OldPrice,');
                    Form_Data.SQL.SQL.Add('       '+ sNewPrice +' AS NewPrice,');
                    Form_Data.SQL.SQL.Add('       '+ sNewPrice +'- SA_CusUPrice.iInvNowCost AS dPrice,');
                    Form_Data.SQL.SQL.Add('       0 AS dMoney');
                    Form_Data.SQL.SQL.Add('FROM SA_CusUPrice INNER JOIN Customer ON SA_CusUPrice.cCusCode = Customer.cCusCode');
                    Form_Data.SQL.SQL.Add('WHERE cInvCode = '''+ sInvCode +'''');
                    Form_Data.SQL.ExecSQL;

                    Form_Data.SQL.Close;
                    Form_Data.SQL.SQL.Clear;
                    Form_Data.SQL.SQL.Add('UPDATE SA_CusUPrice');
                    Form_Data.SQL.SQL.Add('SET iCusDisRate = 100,iInvNowCost = '''+ sNewPrice +'''');
                    Form_Data.SQL.SQL.Add('FROM SA_CusUPrice INNER JOIN Customer ON SA_CusUPrice.cCusCode = Customer.cCusCode');
                    Form_Data.SQL.SQL.Add('WHERE cInvCode = '''+ sInvCode +'''');
                    Form_Data.SQL.ExecSQL;
                End Else
                Begin
                    Form_Data.SQL.Close;
                    Form_Data.SQL.SQL.Clear;
                    Form_Data.SQL.SQL.Add('INSERT INTO a__Prices');
                    Form_Data.SQL.SQL.Add('(PriceNO, cCusCode,OldPrice,NewPrice,dPrice,dMoney)');
                    Form_Data.SQL.SQL.Add('SELECT '+ sPriceNo +' AS PriceNO,');
                    Form_Data.SQL.SQL.Add('       SA_CusUPrice.cCusCode,');
                    Form_Data.SQL.SQL.Add('       SA_CusUPrice.iInvNowCost AS OldPrice,');
                    Form_Data.SQL.SQL.Add('       '+ sNewPrice +' AS NewPrice,');
                    Form_Data.SQL.SQL.Add('       '+ sNewPrice +'- SA_CusUPrice.iInvNowCost AS dPrice,');
                    Form_Data.SQL.SQL.Add('       0 AS dMoney');
                    Form_Data.SQL.SQL.Add('FROM SA_CusUPrice INNER JOIN Customer ON SA_CusUPrice.cCusCode = Customer.cCusCode');
                    Form_Data.SQL.SQL.Add('WHERE cInvCode = '''+ sInvCode +''' AND cCusDefine1 = ''一般客户''');
                    Form_Data.SQL.ExecSQL;

                    Form_Data.SQL.Close;
                    Form_Data.SQL.SQL.Clear;
                    Form_Data.SQL.SQL.Add('UPDATE SA_CusUPrice');
                    Form_Data.SQL.SQL.Add('SET iCusDisRate = 100,iInvNowCost = '''+ sNewPrice +'''');
                    Form_Data.SQL.SQL.Add('FROM SA_CusUPrice INNER JOIN Customer ON SA_CusUPrice.cCusCode = Customer.cCusCode');
                    Form_Data.SQL.SQL.Add('WHERE cInvCode = '''+ sInvCode +''' AND cCusDefine1 = ''一般客户''');
                    Form_Data.SQL.ExecSQL;

                    IF ( sWsPrice = '0') Then
                    Begin
                        Form_Data.SQL.Close;
                        Form_Data.SQL.SQL.Clear;
                        Form_Data.SQL.SQL.Add('INSERT INTO a__Prices');
                        Form_Data.SQL.SQL.Add('(PriceNO, cCusCode,OldPrice,NewPrice,dPrice,dMoney)');
                        Form_Data.SQL.SQL.Add('SELECT '+ sPriceNo +' AS PriceNO,');
                        Form_Data.SQL.SQL.Add('       SA_CusUPrice.cCusCode,');
                        Form_Data.SQL.SQL.Add('       SA_CusUPrice.iInvNowCost AS OldPrice,');
                        Form_Data.SQL.SQL.Add('       '+ sNwsPrice +' AS NewPrice,');
                        Form_Data.SQL.SQL.Add('       '+ sNewPrice +'- SA_CusUPrice.iInvNowCost AS dPrice,');
                        Form_Data.SQL.SQL.Add('       0 AS dMoney');
                        Form_Data.SQL.SQL.Add('FROM SA_CusUPrice INNER JOIN Customer ON SA_CusUPrice.cCusCode = Customer.cCusCode');
                        Form_Data.SQL.SQL.Add('WHERE cInvCode = '''+ sInvCode +''' AND cCusDefine1 = ''外省客户''');
                        Form_Data.SQl.ExecSQL;
                        Form_Data.SQL.Close;
                        Form_Data.SQL.SQL.Clear;
                        Form_Data.SQL.SQL.Add('UPDATE SA_CusUPrice');
                        Form_Data.SQL.SQL.Add('SET iCusDisRate = '''+ sNwsPrice +'''/iInvSCost,iInvNowCost = '''+ sNwsPrice +'''');
                        Form_Data.SQL.SQL.Add('FROM SA_CusUPrice INNER JOIN Customer ON SA_CusUPrice.cCusCode = Customer.cCusCode');
                        Form_Data.SQL.SQL.Add('WHERE cInvCode = '''+ sInvCode +''' AND cCusDefine1 = ''外省客户''');

⌨️ 快捷键说明

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