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

📄 returnorderunit.pas

📁 用友系统二次开发 存货管理 客户管理 订货审核 退货审核 铺货计划 调货计划
💻 PAS
📖 第 1 页 / 共 2 页
字号:
        with dm.sql do begin
                 commandText := 'execute _PM_P_ReturnOrder_Check :a,:b,:c ';
                 Parameters.ParamByName('a').Value := ROID.Text;
                 Parameters.ParamByName('b').Value := FrmLogin.LandingUser;
                 Parameters.ParamByName('c').Value := sInvText;
              execute ;
        end;
        showmessage('退货单 '+rOID.Text+' 审核成功!');
        with DataSet_RO do begin
              close ;
              commandText := 'execute _PM_V_ReturnOrder_Query '''+ sroid +'''';
              open ;
              while not eof do begin
                  sitem:= fieldByName('商品代码').AsString+' - '+
                          fieldByName('商品名称').AsString;
                  if FieldByName('退').AsBoolean then
                      List_AcceptSaleProd.AddItem(sitem)
                  else List_ForbidSaleProd.AddItem(sitem);
                  next ;
              end;
              first ;
        end;

    except
        showmessage('订单审核失败,请重新审核!');
        exit ;
    end;
end;
procedure TfrmReturnOrder.DataSet_ROAfterClose(DataSet: TDataSet);
begin
    List_ForbidSaleProd.Clear ;
    List_superpowerReturn.Clear ;
    List_AcceptSaleProd.Clear ;
end;

procedure TfrmReturnOrder.DataSet_ROAfterOpen(DataSet: TDataSet);
begin
  if DataSet_RO.fieldbyName('审核').Asstring <> '' then begin
       Bt_Accept.enabled := False ;
       Bt_Add.enabled := True ;
       Bt_Accept.Caption := '审核人: ' + DataSet_RO.fieldbyName('审核').Asstring ;
  end else begin
       Bt_Accept.enabled := True ;
       Bt_Add.enabled := False ;
       Bt_Accept.Caption := '审  核' ;
  end;

end;

procedure TfrmReturnOrder.List_RODblClick(Sender: TObject);
begin
    QueryRO(Lefts(List_RO.Items.Strings[List_RO.ItemIndex]));
end;

procedure TfrmReturnOrder.dxDBGrid1CustomDrawCell(Sender: TObject;
  ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
  AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
  var AText: String; var AColor: TColor; AFont: TFont;
  var AAlignment: TAlignment; var ADone: Boolean);
begin
    if (dxDBGrid1.DataSource.DataSet.Active) AND
    (dxDBGrid1.DataSource.DataSet.Fields.Fields[9].AsString <>
    dxDBGrid1.DataSource.DataSet.Fields.Fields[13].AsString) then  begin
        dxDBGrid1.Canvas.Font.Color := clRED;
        end;
end;

procedure TfrmReturnOrder.List_ForbidSaleProdClick(Sender: TObject);
begin
    if Not dm.tbPower.FieldValues['M303_2'] then begin
      showmessage('无权执行,请咨询系统管理员!');
      exit;
    end;
end;

procedure TfrmReturnOrder.UpdateListClick(Sender: TObject);
begin
    List_RO.Items := GetList('execute _PM_P_LoadItem '''',10');
    List_DL.Items := GetList('execute _PM_P_LoadItem '''',4');
end;

procedure TfrmReturnOrder.FormShow(Sender: TObject);
begin
    List_RO.Items := GetList('execute _PM_P_LoadItem '''',10');
    List_DL.Items := GetList('execute _PM_P_LoadItem '''',4');
end;

procedure TfrmReturnOrder.Bt_AddClick(Sender: TObject);
var
    ro :string;
    sNewID,sOldID :string;
begin
    if Not dm.tbPower.FieldValues['M303_3'] then begin
      showmessage('无权执行,请咨询系统管理员!');
      exit;
    end;

    if DataSet_RO.fieldbyName('审核').Asstring <> '' then begin

        ro :=inputbox('汇入订单','请输入汇入订单编号:','');

        if Getlist('select top 1 ID from SO_SOMain where cSOCode = '''+ ROID.Text +'''').Count = 1 then
            sOldID := Getlist('select top 1 ID from SO_SOMain where cSOCode = '''+ ROID.Text +'''').Strings[0];
        if Getlist('select top 1 ID from SO_SOMain where cSOCode = '''+ RO +'''').Count = 1 then
            sNewID := Getlist('select top 1 ID from SO_SOMain where cSOCode = '''+ RO +'''').Strings[0];

        if ( sNewID <> '' ) and ( sOldID <> '' ) then
        begin
            if MessageDlg('确认要汇入吗? '+#13+#13+#13+#13+#13,mtCustom,[mbYES,mbNO],0) = mrYES Then begin
            try
            with dm.sql do begin
                    commandtext :=  'update SO_SODetails '+
                                    'set ID = ''' + sNewID + '''' +
                                    'where ID = ''' + sOldID + '''';
                    execute;
                    QueryRO(RO);
                    showmessage('汇入成功!');
                end;
            except
                showmessage('汇入失败!');
                exit;
            end;
            end;
        end else begin
            showmessage('订单编号不能为空!');
            Exit;
        end;
    end;

end;

procedure TfrmReturnOrder.Button1Click(Sender: TObject);
var
  cDLCode : string;
  Sqltext : string;
begin
    cDLCode :=inputbox('汇入订单','请输入汇入订单编号:','');
    if Getlist('SELECT TOP 1 DLID FROM DispatchList where (bReturnFlag = 1 AND cDLCode = '''+ cDLCode +''')').Count = 1 then
    begin
        Label1.Caption := cDLCode ;
        Label2.Caption := Getlist('SELECT C.cCusCode + '' - '' + C.cCusAbbName FROM DispatchList AS D INNER JOIN Customer AS C ON D.cCusCode = C.cCusCode WHERE (D.cDLCode = '''+ cDLCode +''')').Strings[0];
        Label3.Caption := Getlist('SELECT TOP 1 Convert(nvarchar(10),dDate,121) FROM DispatchList where cDLCode = '''+ cDLCode +'''').Strings[0];
        Sqltext := 'SELECT D.cDLCode+'' - ''+Convert(nvarchar(10),D.dDate,121)+'' - ''+C.cCusCode '+
                   'FROM (SELECT cCusCode FROM DispatchList AS M WHERE (cDLCode = '''+ cDLCode +''')) AS C INNER JOIN DispatchList AS D ON C.cCusCode = D.cCusCode '+
                   'WHERE  (bReturnFlag = 1) AND (Not cVerifier is null) AND (D.dDate > GETDATE() - 2) AND ( D.cDLCode <> '''+ cDLCode +''') ';
        DLList.Items := GetList(Sqltext);
    end else begin
        Showmessage('无此退货单,或此单为发货单!');
        Label1.Caption := '' ;
        Label2.Caption := '' ;
        Label3.Caption := '' ;
    end;


end;

procedure TfrmReturnOrder.Button2Click(Sender: TObject);
var
    i , j : integer;
    sInvText,sInvname,sqltext : string;
begin

    j := 0 ;

    with DLList.Items do begin
        for i := 0 to Count - 1 do begin
            if DLList.Checked[i] then begin
                j := j + 1 ;
                if sInvText = '' then begin
                    sInvText := ''''+lefts(Strings[i])+'''' ;
                    sInvName := lefts(Strings[i]);
                end else begin
                    sInvText := sInvText+','''+ lefts(Strings[i])+'''' ;
                    sInvName := sInvname + #13 + lefts(Strings[i]);
                end;
            end;
        end;
    end;

    if j = 0 then begin
        showmessage('没有可以汇总的单退货!');
        exit ;
    end;

    if MessageDlg('以下单据确定要汇总吗? '+#13+#13+sInvName+#13+#13+#13,mtCustom,[mbOK,mbCancel],0) = mrOk Then begin
        try
            With dm.sql do begin
                CommandText := 'EP_AujudTotal :a,:b ';
                Parameters.ParamByName('a').Value := Getlist('SELECT TOP 1 DLID FROM DispatchList where cDLCode = '''+ Label1.Caption +'''').Strings[0] ;
                Parameters.ParamByName('b').Value := sInvText ;
                execute;
                Sqltext := 'SELECT D.cDLCode+'' - ''+Convert(nvarchar(10),D.dDate,121)+'' - ''+C.cCusCode '+
                          'FROM (SELECT cCusCode FROM DispatchList AS M WHERE (cDLCode = '''+ Label1.Caption +''')) AS C INNER JOIN DispatchList AS D ON C.cCusCode = D.cCusCode '+
                          'WHERE  (bReturnFlag = 1) AND (Not cVerifier is null) AND (D.dDate > GETDATE() - 2) AND ( D.cDLCode <> '''+ Label1.Caption +''') ';
                DLList.Items := GetList(Sqltext);
                List_DL.Items := GetList('execute _PM_P_LoadItem '''',4');
                showmessage('汇入成功!');
            end;
        except
            exit ;
        end;
    end;

end;

procedure TfrmReturnOrder.List_DLDblClick(Sender: TObject);
var
  cDLCode : string;
  Sqltext : string;
begin
    cDLCode := Lefts(List_DL.Items.Strings[List_DL.ItemIndex]);
    if Getlist('SELECT TOP 1 DLID FROM DispatchList where (bReturnFlag = 1 AND cDLCode = '''+ cDLCode +''')').Count = 1 then
    begin
        Label1.Caption := cDLCode ;
        Label2.Caption := Getlist('SELECT C.cCusCode + '' - '' + C.cCusAbbName FROM DispatchList AS D INNER JOIN Customer AS C ON D.cCusCode = C.cCusCode WHERE (D.cDLCode = '''+ cDLCode +''')').Strings[0];
        Label3.Caption := Getlist('SELECT TOP 1 Convert(nvarchar(10),dDate,121) FROM DispatchList where cDLCode = '''+ cDLCode +'''').Strings[0];
        Sqltext := 'SELECT D.cDLCode+'' - ''+Convert(nvarchar(10),D.dDate,121)+'' - ''+C.cCusCode '+
                   'FROM (SELECT cCusCode FROM DispatchList AS M WHERE (cDLCode = '''+ cDLCode +''')) AS C INNER JOIN DispatchList AS D ON C.cCusCode = D.cCusCode '+
                   'WHERE (bReturnFlag = 1) AND (Not cVerifier is null) AND (D.dDate > GETDATE() - 2) AND ( D.cDLCode <> '''+ cDLCode +''') ';
        DLList.Items := GetList(Sqltext);
    end else begin
        Showmessage('无此退货单,或此单为发货单!');
        Label1.Caption := '' ;
        Label2.Caption := '' ;
        Label3.Caption := '' ;

    end;
end;


end.

⌨️ 快捷键说明

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