?? unit_invmanage.pas
字號:
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 + -