📄 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 + -