?? unit_returncheck.pas
字號:
unit Unit_ReturnCheck;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxExEdtr, Menus, StdCtrls, Buttons, dxDBTLCl, dxGrClms,
dxDBCtrl, dxDBGrid, dxTL, dxCntner, cxDBLabel, cxLabel, cxControls,
cxContainer, cxEdit, cxGroupBox, cxRadioGroup, ComCtrls, DB, Grids,
DBGrids;
type
TForm_ReturnCheck = class(TForm)
PC_ReturnCheck: TPageControl;
TS_PlanAttribute: TTabSheet;
RG_Plan: TcxRadioGroup;
RG_WeiSRD: TcxRadioGroup;
Label_CustName: TcxLabel;
DBLabel_ProductType: TcxDBLabel;
DBLabel_PEDate: TcxDBLabel;
Label_PlanDate: TcxLabel;
DBGrid_WeiSRD: TdxDBGrid;
DBGrid_WeiSRDColumn5: TdxDBGridColumn;
DBGrid_WeiSRDColumn1: TdxDBGridColumn;
DBGrid_WeiSRDID: TdxDBGridMaskColumn;
DBGrid_WeiSRDcCusCode: TdxDBGridColumn;
DBGrid_WeiSRDColumn4: TdxDBGridColumn;
DBGrid_WeiSRDColumn6: TdxDBGridColumn;
DBGrid_WeiSRDs: TdxDBGrid;
DBGrid_WeiSRDsSaleState: TdxDBGridCheckColumn;
DBGrid_WeiSRDsAutoID: TdxDBGridMaskColumn;
DBGrid_WeiSRDsID: TdxDBGridMaskColumn;
DBGrid_WeiSRDscInvCode: TdxDBGridColumn;
DBGrid_WeiSRDscInvName: TdxDBGridColumn;
DBGrid_WeiSRDsiQuantity: TdxDBGridMaskColumn;
DBGrid_WeiSRDsiUnitPrice: TdxDBGridMaskColumn;
DBGrid_WeiSRDsiMoney: TdxDBGridCurrencyColumn;
DBGrid_WeiSRDsState: TdxDBGridMaskColumn;
DBGrid_WeiSRDsiInvSCost: TdxDBGridMaskColumn;
DBGrid_WeiSRDsiInvSPrice: TdxDBGridMaskColumn;
cxDBLabel1: TcxDBLabel;
Bt_Ok: TBitBtn;
Bt_Cancel: TBitBtn;
PopupMenu_Return: TPopupMenu;
N1: TMenuItem;
PopupMenu_Returns: TPopupMenu;
Return01: TMenuItem;
Return2: TMenuItem;
Return03: TMenuItem;
Return04: TMenuItem;
Return05: TMenuItem;
Return06: TMenuItem;
cxDBLabel2: TcxDBLabel;
RB_WeiSRDs: TcxRadioGroup;
cxLabel1: TcxLabel;
cxLabel2: TcxLabel;
cxLabel3: TcxLabel;
cxLabel4: TcxLabel;
cxDBLabel3: TcxDBLabel;
cxDBLabel4: TcxDBLabel;
cxDBLabel5: TcxDBLabel;
cxDBLabel6: TcxDBLabel;
cxDBLabel7: TcxDBLabel;
Return02: TMenuItem;
procedure PopupMenu_ReturnsPopup(Sender: TObject);
procedure Return01Click(Sender: TObject);
procedure Bt_OkClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure DBGrid_WeiSRDsCustomDrawCell(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);
procedure Return02Click(Sender: TObject);
procedure Return03Click(Sender: TObject);
procedure Return04Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form_ReturnCheck: TForm_ReturnCheck;
DJID,ID:Integer;
implementation
uses Unit_Data;
{$R *.dfm}
procedure TForm_ReturnCheck.PopupMenu_ReturnsPopup(Sender: TObject);
begin
IF Form_Data.Table__WeiSRDs.FieldValues['iUnitPrice'] = 0 Then
Begin
Return01.Visible := True;
Return2.Visible := True;
Return02.Visible := True;
Return03.Visible := True;
Return04.Visible := True;
Return05.Visible := True;
Return06.Visible := False;
End Else
Begin
Return01.Visible := False;
Return2.Visible := False;
Return02.Visible := False;
Return03.Visible := False;
Return04.Visible := False;
Return05.Visible := False;
Return06.Visible := True;
End;
end;
procedure TForm_ReturnCheck.Return01Click(Sender: TObject);
Var
sCusCode,sInvCode,sCusName,sInvName,sCustType,sPrice,sRate,sInvSCost,sDJNo,sRetrun: String;
bLocate: Boolean;
Opt: TLocateOptions;
begin
IF Form_Data.Table_Manage.Lookup('MName',UserName,'M013') = 0 Then
Begin
Showmessage('你無權執行此項操作,請咨詢系統管理員!');
Exit;
End;
IF Form_Data.Table__WeiSRD.FieldByName('價格類別').AsString ='' Then sCustType := ''
Else sCustType := Form_Data.Table__WeiSRD.FieldValues['價格類別'];
ID:=Form_Data.Table__WeiSRDs.FieldValues['AutoID'];
IF (sCustType = '外省客戶') AND (Form_Data.Table__WeiSRDs.FieldValues['外省價'] <> 0) Then
sPrice := Form_Data.Table__WeiSRDs.FieldValues['外省價']
Else IF (sCustType = '弄懷客戶') AND (Form_Data.Table__WeiSRDs.FieldValues['弄懷價'] <> 0) Then
sPrice := Form_Data.Table__WeiSRDs.FieldValues['弄懷價']
Else
sPrice := Form_Data.Table__WeiSRDs.FieldValues['iInvSCost'];
sRate := floattostr(Round(strtofloat(sPrice)*100/Form_Data.Table__WeiSRDs.FieldValues['iInvSCost']*100)/100);
sInvSCost := Form_Data.Table__WeiSRDs.FieldValues['iInvSCost'];
sDJNo := '退單編號: ' + Form_Data.Table__WeiSRD.FieldByName('單據編號').AsString+' '+UserName;
Opt:= [LoPartialKey];
sCusCode := Form_Data.Table__WeiSRD.FieldValues['cCusCode'] ;
Form_Data.Table__SA_CusUprice.Active := False ;
Form_Data.Table__SA_CusUprice.Active := True ;
sInvCode := Form_Data.Table__WeiSRDs.FieldValues['cInvCode'] ;
bLocate := Form_Data.Table__SA_CusUprice.Locate('cCusCode;cInvCode',varArrayof([sCusCode,sInvCode]),[]);
sCusName := Form_Data.Table__WeiSRD.FieldByName('客戶名稱').AsString;
sInvName := Form_Data.Table__WeiSRDs.FieldByName('cInvName').AsString;
IF MessageDlg('請再確認: '+#13+#13+'你的作業將貨品的限制銷退功能關閉,詳細資料如下: '+#13+'客戶: ['+ sCusCode +'] '+ sCusName +#13+'貨品: ['+ sInvCode +'] '+ sInvName +#13+#13+#13+'[確定]請單擊 OK 按鈕,[取消]請單擊 Cancel 按鈕' ,mtInformation,[mbOK,mbCancel],0) = mrOk Then
Begin
IF bLocate = False Then
Begin
Form_Data.SQL.Close;
Form_Data.SQL.SQL.Clear;
Form_Data.SQL.SQL.Add('INSERT INTO SA_CusUPrice');
Form_Data.SQL.SQL.Add('(cCusCode, cInvCode, iInvSCost, iCusDisRate, iInvNowCost,cMemo)');
Form_Data.SQL.SQL.Add('VALUES ('''+ sCusCode +''','''+ sInvCode +''','+ sInvSCost +','+ sRate +','+ sPrice +','''+ sDJNo +''')');
Form_Data.SQl.ExecSQL;
Form_Data.Table__SA_CusUprice.Close;
Form_Data.Table__SA_CusUprice.Open;
With Form_Data.Table__WeiSRDs do
Begin
Form_Data.Table__WeiSRDs.Edit;
Form_Data.Table__WeiSRDs.FieldValues['iUnitPrice'] := sPrice;
Form_Data.Table__WeiSRDs.FieldValues['iMoney'] := Form_Data.Table__WeiSRDs.FieldValues['iUnitPrice']* Form_Data.Table__WeiSRDs.FieldValues['iQuantity'];
Form_Data.Table__WeiSRDs.Post;
end;
End Else Begin
//開啟失交報價
sRetrun := Form_Data.Table__SA_CusUprice.FieldByName('bRetrun').AsString ;
IF sRetrun = '0' Then
Showmessage('客戶報價資料庫已有指定價,狀態是限銷限退,如需修改請咨詢采銷部經理! ')
Else
Begin
IF MessageDlg('客戶報價資料庫已有指定價,狀態是限銷不限退,需要收退貨嗎?' ,mtInformation,[mbOK,mbCancel],0) = mrOk Then
Begin
With Form_Data.Table__WeiSRDs do
Begin
Form_Data.Table__WeiSRDs.Edit;
Form_Data.Table__WeiSRDs.FieldValues['iUnitPrice'] := sPrice;
Form_Data.Table__WeiSRDs.FieldValues['iMoney'] := Form_Data.Table__WeiSRDs.FieldValues['iUnitPrice']* Form_Data.Table__WeiSRDs.FieldValues['iQuantity'];
Form_Data.Table__WeiSRDs.Post;
end;
End;
End;
end;
Form_Data.Table__SA_CusUprice.Active := False ;
Form_Data.Table__SA_CusUprice.Active := True ;
Form_Data.Table__WeiSRDs.Active := False ;
Form_Data.Table__WeiSRDs.Active := True ;
Form_Data.Table__WeiSRDs.Locate('AutoID',ID,[]);
End Else Exit;
end;
procedure TForm_ReturnCheck.Bt_OkClick(Sender: TObject);
Var
ID,sInvName,sCusCode: String;
begin
IF Form_Data.Table_Manage.Lookup('MName',UserName,'M007') = 0 Then
Begin
Showmessage('你無權執行此項操作,請咨詢系統管理員!');
Exit;
End;
ID := Form_Data.Table__WeiSRDs.FieldByName('ID').AsString ;
sCusCode := Form_Data.Table__WeiSRDs.FieldByName('cCusCode').AsString;
Form_Data.SQL.Close;
Form_Data.SQL.SQL.Clear;
Form_Data.SQL.SQL.Add('UPDATE SO_SODetails ');
Form_Data.SQL.SQL.Add('SET iUnitPrice = SA_CusUprice.iInvNowCost,iMoney = iUnitPrice * SO_SODetails.iQuantity');
Form_Data.SQL.SQL.Add('FROM dbo.SO_SODetails INNER JOIN dbo.SA_CusUPrice ON dbo.SO_SODetails.cInvCode = dbo.SA_CusUPrice.cInvCode');
Form_Data.SQL.SQL.Add('WHERE (iQuotedPrice = 0 )');
Form_Data.SQL.SQL.Add('AND (ID = '+ ID +')');
Form_Data.SQL.SQL.Add('AND (SA_CusUprice.bRetrun = 1 )');
Form_Data.SQL.SQL.Add('AND (SA_CusUprice.cCusCode = '''+ sCusCode +''' )');
Form_Data.SQL.ExecSQL;
Form_Data.SQL.Close;
Form_Data.SQL.SQL.Clear;
Form_Data.SQL.SQL.Add('UPDATE SO_SODetails ');
Form_Data.SQL.SQL.Add('SET iQuotedPrice = iUnitPrice, ');
Form_Data.SQL.SQL.Add('iTaxUnitPrice = iUnitPrice, ');
Form_Data.SQL.SQL.Add('iNatUnitPrice = iUnitPrice, ');
Form_Data.SQL.SQL.Add('iMoney = iUnitPrice * SO_SODetails.iQuantity, ');
Form_Data.SQL.SQL.Add('iSum = iUnitPrice * SO_SODetails.iQuantity, ');
Form_Data.SQL.SQL.Add('iNatMoney = iUnitPrice * SO_SODetails.iQuantity, ');
Form_Data.SQL.SQL.Add('iNatSum = iUnitPrice * SO_SODetails.iQuantity ');
Form_Data.SQL.SQL.Add('Where (iUnitPrice <> 0 ) ');
Form_Data.SQL.SQL.Add('AND (iQuotedPrice = 0 ) ');
Form_Data.SQL.SQL.Add('AND (id = '+ ID +') ');
Form_Data.SQL.ExecSQL;
Form_Data.SQL.Close;
Form_Data.SQL.SQL.Clear;
Form_Data.SQL.SQL.Add('SELECT SO_SODetails.cInvCode, SO_SODetails.cInvName ');
Form_Data.SQL.SQL.Add('FROM dbo.SO_SODetails INNER JOIN dbo.SA_CusUPrice ON dbo.SO_SODetails.cInvCode = dbo.SA_CusUPrice.cInvCode ');
Form_Data.SQL.SQL.Add('WHERE (dbo.SO_SODetails.iQuotedPrice = 0) ');
Form_Data.SQL.SQL.Add('AND (SA_CusUprice.cCusCode = '''+ sCusCode +''' )');
Form_Data.SQL.SQL.Add('AND (ID = '+ ID +') ');
Form_Data.SQL.Open;
IF (Form_Data.SQL.RecordCount <> 0) Then
Begin
sInvName := '' ;
While Form_Data.SQL.Eof = False do
Begin
IF sInvName = '' Then sInvName := '''' + Form_Data.SQL.FieldValues['cInvName'] + ''''
Else sInvName := sInvName + ',''' + Form_Data.SQL.FieldValues['cInvName'] + '''';
Form_Data.SQL.Next;
end;
IF MessageDlg('以下貨品已限退,請及時退還給客戶!'+#13+#13+sInvName ,mtInformation,[mbOK,mbCancel],0) = mrOk Then
Begin
Form_Data.SQL.Close;
Form_Data.SQL.SQL.Clear;
Form_Data.SQL.SQL.Add('Delete SO_SODetails ');
Form_Data.SQL.SQL.Add('Where (iUnitPrice = 0 ) ');
Form_Data.SQL.SQL.Add('AND (id = '+ ID +') ');
Form_Data.SQL.SQL.Add('AND (cInvName IN ('+ sInvName +')) ');
Form_Data.SQL.ExecSQL;
End ELse Exit;
End;
Form_Data.SQL.Close;
Form_Data.SQL.SQL.Clear;
Form_Data.SQL.SQL.Add('UpDate SO_SODetails ');
Form_Data.SQL.SQL.Add('SET iQuantity = 0 - iQuantity ');
Form_Data.SQL.SQL.Add('Where (ID = '+ ID +') ');
Form_Data.SQL.SQL.Add('AND iQuantity > 0 ');
Form_Data.SQL.ExecSQL;
Form_Data.SQL.Close;
Form_Data.SQL.SQL.Clear;
Form_Data.SQL.SQL.Add('UPDATE SO_SOMain ');
Form_Data.SQL.SQL.Add('Set iStatus = ''1'', cVerifier = ''WG.''+'''+ UserName +'''');
Form_Data.SQL.SQL.Add('Where (id = '+ ID +') ');
Form_Data.SQL.ExecSQL;
Form_Data.Table__WeiSRD.Active := False ;
Form_Data.Table__WeiSRDs.Active := False ;
Form_Data.Table__WeiSRD.Active := True ;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -