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

📄 salesorderunit.pas

📁 用友系统二次开发 存货管理 客户管理 订货审核 退货审核 铺货计划 调货计划
💻 PAS
📖 第 1 页 / 共 2 页
字号:


procedure TfrmSaleOrder.QueryPlanStateWXExecute(Sender: TObject);
var
  sInvCode,sPlanNo : String;
begin
    sInvCode := rights(Rights(List_SelectSaleWX.Items.Strings[List_SelectSaleWX.ItemIndex]));
    sPlanNo  := lefts(List_SelectSaleWX.Items.Strings[List_SelectSaleWX.ItemIndex]);
    PlanStateList (sInvCode,sPlanNo);
end;

procedure TfrmSaleOrder.QueryPlanStateNKExecute(Sender: TObject);
var
  sInvCode,sPlanNo : String;
begin
    sInvCode := rights(Rights(List_SelectSaleNK.Items.Strings[List_SelectSaleNK.ItemIndex]));
    sPlanNo  := lefts(List_SelectSaleNK.Items.Strings[List_SelectSaleNK.ItemIndex]);
    PlanStateList (sInvCode,sPlanNo);
end;

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


procedure TfrmSaleOrder.PlanStateList(sInvCode,sPlanNo:string);
var
  sqltext : String;
begin
    Sqltext :='exec _PM_P_PlanCusState '''+ sInvCode +''','''+ sPlanNo +''',0';
    List_CustALL.Items.Clear ;
    List_CustALL.Items.Add('所有计划客户: ') ;
    List_CustALL.items.AddStrings(GetList(Sqltext));

    Sqltext :='exec _PM_P_PlanCusState '''+ sInvCode +''','''+ sPlanNo +''',1';
    List_CustYX.Items.Clear ;
    List_CustYX.Items.Add('计划内已销客户: ') ;
    List_CustYX.items.AddStrings(GetList(Sqltext));

    Sqltext :='exec _PM_P_PlanCusState '''+ sInvCode +''','''+ sPlanNo +''',2';
    List_CustWX.Items.Clear ;
    List_CustWX.Items.Add('未计划已销客户: ') ;
    List_CustWX.items.AddStrings(GetList(Sqltext));

    Sqltext :='exec _PM_P_PlanCusState '''+ sInvCode +''','''+  sPlanNo +''',3';
    List_CustMX.Items.Clear ;
    List_CustMX.Items.Add('计划内未销客户: ') ;
    List_CustMX.items.AddStrings(GetList(Sqltext));

    RzGroup7.Caption := '计划状态:     '+ sInvCode +'   '+ sPlanNo +'   '+
                        inttostr(List_CustAll.Items.count - 1 )+' [ '+
                        inttostr(List_CustYX.Items.count - 1 )+' + '+
                        inttostr(List_CustMX.Items.count - 1 )+' ] '+
                        inttostr(List_CustWX.Items.count - 1 );

end;

procedure TfrmSaleOrder.AddSaleOrder(sInvCode:string);
var
    iQty ,i: integer;
    ssoid: String;
begin
    ssoid := soid.Text ;
    if DataSet_SO.Locate('商品代码',sInvCode,[]) then begin
        showmessage('本单中已有此款,不能加铺!') ;
        exit ;
    end;

    for i:=1 to VLedit.RowCount-1 do
    begin
        if VLEDit.Keys[i] = sInvCode then
        begin
            showmessage('已加此款,不能重复!') ;
            exit;
        end;
    end;

    try
        iQty :=strtoint(inputbox('加铺新款','请输入齐色齐码各包数: ','3'));
    except
        showmessage('铺货数量输入错误,请重新输入!') ;
        exit ;
    end;

    try
        VLEdit.InsertRow(sInvCode,inttostr(iQty),True);

    except
        showmessage('加铺失败,请重新加铺!') ;
        exit ;
    end;
end;

procedure TfrmSaleOrder.TranMenuPopup(Sender: TObject);
begin
    if RzGroup3.Opened then begin
        AddWX.Visible := True ;
        QueryWX.Visible := AddWX.Visible ;
        delsaleplanWX.Visible := AddWX.Visible ;
        AddNK.Visible := False ;
        QueryNK.Visible := AddNK.Visible ;
        delsaleplanNK.Visible := AddNK.Visible ;

    end else if RzGroup5.Opened then begin
        AddWX.Visible := False ;
        QueryWX.Visible := AddWX.Visible ;
        delsaleplanWX.Visible := AddWX.Visible ;
        AddNK.Visible := True ;
        QueryNK.Visible := AddNK.Visible ;
        delsaleplanNK.Visible := AddNK.Visible ;
    end;
end;

procedure TfrmSaleOrder.DelSalePlan(sCusCode,sPlanNo:string);
begin
    Try
        with dm.sql do begin
           commandtext := 'execute _PM_P_DelCusPlan '''+sCusCode+''','''+
                          sPlanNO +'''';

           execute ;
           showmessage('清除成功!')
        end;

    except
      showmessage('清除失败!')
    end;
end;

procedure TfrmSaleOrder.DelSalePlansWXExecute(Sender: TObject);
var
  sCusCode,sPlanNo : String;
begin
    if Not dm.tbPower.FieldValues['M302_3'] then begin
      showmessage('无权执行,请咨询系统管理员!');
      exit;
    end;

    sCusCode := DataSet_SO.fieldbyName('客户代码').Asstring;
    sPlanNo  := lefts(List_SelectSalewx.Items.Strings[List_SelectSalewx.ItemIndex]);
    DelSalePlan (sCusCode,sPlanNo);
    List_SelectSalewx.DeleteSelected;
end;

procedure TfrmSaleOrder.DelSalePlansNKExecute(Sender: TObject);
var
  sCusCode,sPlanNo : String;
begin
    sCusCode := DataSet_SO.fieldbyName('客户代码').Asstring;
    sPlanNo  := lefts(List_SelectSalenk.Items.Strings[List_SelectSalenk.ItemIndex]);
    DelSalePlan (sCusCode,sPlanNo);
    List_SelectSalenk.DeleteSelected;
end;

procedure TfrmSaleOrder.QuerySO(SO:string);
var
    sitem:string;
    i:integer;
begin
    Try
        with DataSet_SO do begin
            close ;
            commandText := 'execute _PM_V_SaleOrder_Query '''+SO+'''';
            open ;
            if RecordCount = 0 then begin
                showmessage('查询无结果,无此单据或此单已审核!');
                exit;
            end;


            if VLEdit.RowCount>=2 then
            begin
                VLEdit.InsertRow('','',False);
                for i:=VLEdit.RowCount-1 downto 2 do
                begin
                VLEdit.DeleteRow(i);
                end;
            end;

            List_ForbidSaleProd.Clear ;
            List_SSProd.Clear;
            List_AcceptSaleProd.Clear ;
            while not eof do begin
                sitem:= fieldByName('商品代码').AsString+' - '+
                        fieldByName('商品名称').AsString+' - '+
                        fieldByName('销售状态').AsString;
                if FieldByName('销').AsBoolean then List_AcceptSaleProd.AddItem(sitem)
                    else begin if fieldByName('销售状态').AsString= '11.限销限退[无记录状态]' then
                          List_ForbidSaleProd.AddItem(sitem)
                          else List_SSProd.AddItem(sitem);
                    end;
                next ;
            end;
            first ;
          end;
       except
            showmessage('订单查询失败!');
            Exit;
       end;

end;

procedure TfrmSaleOrder.List_SODblClick(Sender: TObject);
var
  sqltext:string;
begin
    QuerySO(Lefts(List_SO.Items.Strings[List_SO.ItemIndex]));
    List_SelectSaleWX.Items.Clear ;
    List_SelectSaleNK.Items.Clear ;
    List_CustALL.Items.Clear ;
    List_CustYX.Items.Clear ;
    List_CustWX.Items.Clear ;
    List_CustMX.Items.Clear ;
    RzGroup7.Caption :=     '计划状态:     0  [  0  +  0  ]  +  0' ;

            with DataSet_SO do begin
            if MessageDlg('选择: '+#13+'本张单是内裤单吗?'+#13,mtInformation,[mbYes,mbNo],0) = mrYes Then Begin

                Sqltext :='execute _PM_P_CustInvState_Query 2,9,'''+ fieldByName('客户代码').AsString +''',''''';
                List_SelectSaleNK.Items.Clear ;
                List_SelectSaleNK.items.AddStrings(GetList(Sqltext));

                Sqltext :='execute _PM_P_CustInvState_Query 2,1,'''+ fieldByName('客户代码').AsString +''',''''';
                List_CusPHNK.Items.Clear ;
                List_CusPHNK.items.AddStrings(GetList(Sqltext));

                Sqltext :='execute _PM_P_CustInvState_Query 2,0,'''+ fieldByName('客户代码').AsString +''',''''';
                List_CusDHNK.Items.Clear ;
                List_CusDHNK.items.AddStrings(GetList(Sqltext));

                RzGroup6.Caption := '内裤近期铺货 '+ IntToStr(List_CusPHNK.Items.Count)+' 款, 调货 '+
                                   IntToStr(List_CusDHNK.Items.Count)+' 款';

                RzGroup3.Visible := False ;
                RzGroup4.Visible := RzGroup3.Visible ;
                RzGroup5.Visible := True ;
                RzGroup6.Visible := RzGroup5.Visible ;

            end else begin
                Sqltext :='execute _PM_P_CustInvState_Query 1,9,'''+ fieldByName('客户代码').AsString +''',''''';
                List_SelectSaleWX.Items.Clear ;
                List_SelectSaleWX.items.AddStrings(GetList(Sqltext));

                Sqltext :='execute _PM_P_CustInvState_Query 1,1,'''+ fieldByName('客户代码').AsString +''',''''';
                List_CusPHWX.Items.Clear ;
                List_CusPHWX.items.AddStrings(GetList(Sqltext));

                Sqltext :='execute _PM_P_CustInvState_Query 1,0,'''+ fieldByName('客户代码').AsString +''',''''';
                List_CusDHWX.Items.Clear ;
                List_CusDHWX.items.AddStrings(GetList(Sqltext));

                RzGroup4.Caption := '文胸近期铺货 '+ IntToStr(List_CusPHWX.Items.Count)+' 款, 调货 '+
                                    IntToStr(List_CusDHWX.Items.Count)+' 款';

                RzGroup3.Visible := True ;
                RzGroup4.Visible := RzGroup3.Visible ;
                RzGroup5.Visible := False ;
                RzGroup6.Visible := RzGroup5.Visible ;
            end;
        end;

end;

procedure TfrmSaleOrder.FormShow(Sender: TObject);
begin
    List_SO.Items := GetList('execute _PM_P_LoadItem '''',9');
end;

procedure TfrmSaleOrder.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 TfrmSaleOrder.DelSalePlannkClick(Sender: TObject);
begin
    if Not dm.tbPower.FieldValues['M302_3'] then begin
      showmessage('无权执行,请咨询系统管理员!');
      exit;
    end;
end;

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

procedure TfrmSaleOrder.N3Click(Sender: TObject);
begin
    List_SO.Items := GetList('execute _PM_P_LoadItem '''',9');
end;

procedure TfrmSaleOrder.dxDBGrid1DblClick(Sender: TObject);
var
  cinvcode : string ;
  i : integer;
begin
    if ((DataSet_SO.IsEmpty) OR (Not DataSet_SO.FieldByName('商品代码').IsNull))  then
    begin
      dxDBGrid1.Cursor := crHourGlass;
      cinvcode := DataSet_SO.fieldByName('商品代码').AsString;
      DataSet_Details.close ;
      DataSet_Details.CommandText :='_GetPlanar ''SO'','''+cInvCode+''','''+SOID.text +'''';
      DataSet_Details.Open ;
      for i := 0 to DBG_Details.ColumnCount-1 do
      begin
         DBG_Details.Columns[i].Width := 48 ;
         DBG_Details.Columns[i].HeaderAlignment := taCenter ;
         DBG_Details.Columns[0].Width := 72 ;
      end;
      DataSet_INV.close ;
      DataSet_INV.CommandText :='_GetPlanar ''KC'','''+cInvCode+''',''''';
      DataSet_INV.Open ;
      for i := 0 to DBG_INV.ColumnCount-1 do
      begin
         DBG_INV.Columns[i].Width := 48 ;
         DBG_INV.Columns[i].HeaderAlignment := taCenter ;
         DBG_INV.Columns[0].Width := 72 ;
      end;
      dxDBGrid1.cursor := crHandPoint;
    end else
    begin
      DataSet_Details.close ;
      DataSet_INV.close ;
    end;
end;

end.

⌨️ 快捷键说明

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