亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ordcomm.pas.svn-base

?? 這是一個功能齊全的,代碼完整的ERP企業信息管理系統,現在上傳和大家分享
?? SVN-BASE
?? 第 1 頁 / 共 3 頁
字號:
unit OrdComm;

interface

uses
  Classes, SysUtils, Controls, Windows, Forms, ComCtrls, CommCtrl, DBGrids,
  Messages, Graphics, ADODB, ActiveX, SYSDATA, Dialogs, atScript, CommFun,
  atPascal, Variants, StdCtrls, DB;

//取得銷售價格和總額折扣函數:
procedure GetSalePrice(AOrderInfo:TOrderInfo; var APriceInfo:TPriceInfo);
//取得特殊價格及總額折扣
function GetSpecPrice(ASpecNo:Integer;AOrderInfo:TOrderInfo;var APriceInfo:TPriceInfo):Boolean;
//取得特價記錄的設置信息 并 檢驗是否符合條件
function CheckSpecInfo(ASpecNo,AItemClass,ACustClass,ACustGrade,ASaleGrade:Integer;AOrderInfo:TOrderInfo;var ASpecInfo:TSpecInfo):Boolean;

//切分字符串
procedure SplitString(s: string; Separator: char;Terms: TStringList);
//替換變量
function ReplaceVariable(AString, AAddre, ACompany, ACurrency,APlace,APayment:string;ATotal,ADiscount:Double): string;
//取得條款信息
procedure GetTerm(AAddre, ACompany, ACurrency,APlace,APayment: string;ATotal,ADiscount:Double;var Terms: TStringList);
//去掉S中的回車返行符
procedure StrTruncateCRLF(var S: string);
//取得所有客戶分類列表
procedure GetAllCustClass(ADataSet: TADODataSet; AcbClass: TComboBox);
//報價單生成銷售定單
procedure CreateOrder(ACode:String);
//銷售定單生成采購定單
procedure CreatePurchase(ACode:String);

//加入銷售產品
procedure AddItemLine(AOrderInfo:TOrderInfo;AItemInfo:TItemInfo;ADataSet:TADODataSet;AType:String='UPD');

//取得所有任務類別
procedure GetAllSellsClass(AcbClass:TComboBox);
//取得有銷售類別及其所有子類的電腦編號
function GetChildSell(ATasClass:string):string;

//更新報價單的狀態,當銷售定單刪除時,刪除前調用
//AOrder:銷售單號
procedure UpdataOrd500(AOrder:String);


implementation

uses PurComm;

//取得標準價格
function GetStandardOrdPrice(AOrderInfo:TOrderInfo):Double;
var
  AUnitRate,ARate,APrice:Double;
begin
  //1.取得計量單位換算率
  AUnitRate:=GetUnitRate(AOrderInfo.CustNo,AOrderInfo.ItemNo,AOrderInfo.UnitNo);
  
  //2.取得幣別彙率
  ARate:=GetCurrencyRate(AOrderInfo.CurrNo);

  //3.取得價格
  //3A.取得需求幣別的價格
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select top 1 O130_004 from ORD130,GLD100');
  SYSDM.qryQuery.SQL.Add('where O130_002=G100_001 and O130_001='+IntToStr(AOrderInfo.ItemNo));
  SYSDM.qryQuery.SQL.Add(' and O130_003<='+GetDateString(AOrderInfo.OrderDate));
  SYSDM.qryQuery.SQL.Add(' and G100_001='+IntToStr(AOrderInfo.CurrNo));
  SYSDM.qryQuery.SQL.Add('order by O130_003 desc');
  SYSDM.qryQuery.Open;
  if not SYSDM.qryQuery.IsEmpty then
  begin
    APrice:=SYSDM.qryQuery.FieldByName('O130_004').AsFloat;
    ARate:=1;
  end else
  //3B.取得本位幣的價格,并換算成需求的幣別價格,即價格=本位幣價格/幣別匯率
  begin
    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('select top 1 O130_004 from ORD130,GLD100');
    SYSDM.qryQuery.SQL.Add('where O130_002=G100_001 and O130_001='+IntToStr(AOrderInfo.ItemNo));
    SYSDM.qryQuery.SQL.Add(' and O130_003<='+GetDateString(AOrderInfo.OrderDate));
    SYSDM.qryQuery.SQL.Add(' and G100_002='+''''+ACurrID+'''');
    SYSDM.qryQuery.SQL.Add('order by O130_003 desc');
    SYSDM.qryQuery.Open;
    APrice:=SYSDM.qryQuery.FieldByName('O130_004').AsFloat;
  end;
  
  //4.計算價格
  APrice:=APrice*AUnitRate;
  APrice:=APrice/ARate;
  Result:=APrice;
end;

//AType:類型 0=料品分類,1=客戶分類,2=地區
function IsInclude(AParent,AChild,AType:Integer):Boolean;
var
  AStringList:TStringList;
begin
  AStringList:=TStringList.Create;
  AStringList.Add(IntToStr(AParent));
  case AType of
    0:GetChild(IntToStr(AParent),'INV120','I120_004','I120_001',AStringList);
    1:GetChild(IntToStr(AParent),'ORD110','O110_003','O110_001',AStringList);
    2:GetChild(IntToStr(AParent),'ORD120','O120_003','O120_001',AStringList);
  end;
  Result:=AStringList.IndexOf(IntToStr(AChild))<>-1;
  AStringList.Free;
end;

//取得所有上級類別
//AType:類型 0=料品分類,1=客戶分類,2=地區
procedure GetParentNo(AChild,AType:Integer; var AStringList:TStringList);
begin
  AStringList.Add(IntToStr(AChild));
  case AType of
    0:GetAllParent(IntToStr(AChild),'INV120','I120_004','I120_001',AStringList);
    1:GetAllParent(IntToStr(AChild),'ORD110','O110_003','O110_001',AStringList);
    2:GetAllParent(IntToStr(AChild),'ORD120','O120_003','O120_001',AStringList);
  end;
end;

//取得特價記錄的設置信息 并 檢驗是否符合條件
function CheckSpecInfo(ASpecNo,AItemClass,ACustClass,ACustGrade,ASaleGrade:Integer;AOrderInfo:TOrderInfo;var ASpecInfo:TSpecInfo):Boolean;
begin
  Result:=False;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select * from ORD140A where O140A_001='+IntToStr(ASpecNo));
  SYSDM.qryQuery.Open;
  if SYSDM.qryQuery.IsEmpty then Exit;
  ASpecInfo.AType:=SYSDM.qryQuery.FieldByName('O140A_004').AsInteger;
  ASpecInfo.AFromDate:=SYSDM.qryQuery.FieldByName('O140A_005').AsDateTime;
  ASpecInfo.AToDate:=SYSDM.qryQuery.FieldByName('O140A_006').AsDateTime;
  ASpecInfo.ACurr:=SYSDM.qryQuery.FieldByName('O140A_007').AsString;
  ASpecInfo.AIsSum:=SYSDM.qryQuery.FieldByName('O140A_008').AsBoolean;
  ASpecInfo.AItemNo:=SYSDM.qryQuery.FieldByName('O140A_011').AsInteger;
  ASpecInfo.AItemClass:=SYSDM.qryQuery.FieldByName('O140A_012').AsInteger;
  ASpecInfo.ACustNo:=SYSDM.qryQuery.FieldByName('O140A_013').AsInteger;
  ASpecInfo.ACustClass:=SYSDM.qryQuery.FieldByName('O140A_014').AsInteger;
  ASpecInfo.ACustGrade:=SYSDM.qryQuery.FieldByName('O140A_015').AsInteger;
  ASpecInfo.ASaleNo:=SYSDM.qryQuery.FieldByName('O140A_016').AsInteger;
  ASpecInfo.ASaleGrade:=SYSDM.qryQuery.FieldByName('O140A_017').AsInteger;
  ASpecInfo.ARegionNo:=SYSDM.qryQuery.FieldByName('O140A_018').AsInteger;
  ASpecInfo.AIsSame:=SYSDM.qryQuery.FieldByName('O140A_019').AsBoolean;
  ASpecInfo.ARange:=SYSDM.qryQuery.FieldByName('O140A_020').AsInteger;
  ASpecInfo.AAmtType:=SYSDM.qryQuery.FieldByName('O140A_021').AsInteger;

  //日期在生效和失效范圍內
  if (AOrderInfo.OrderDate<ASpecInfo.AFromDate) or (AOrderInfo.OrderDate>ASpecInfo.AToDate) then Exit;
  //幣別編號(幣別相符,或為空)
  if (ASpecInfo.ACurr<>'') and (ASpecInfo.ACurr<>IntToStr(AOrderInfo.CurrNo)) then Exit;
  //料品編號(料品相符,或為空)
  if (ASpecInfo.AItemNo<>0) and (ASpecInfo.AItemNo<>AOrderInfo.ItemNo) then Exit;
  //料品分類(料品分類相符,或為空,或屬于其子類)
  if (ASpecInfo.AItemClass<>0) and (ASpecInfo.AItemClass<>AItemClass) and (not IsInclude(ASpecInfo.AItemClass,AItemClass,0)) then Exit;
  //客戶編號(客戶相符,或為空)
  if (ASpecInfo.ACustNo<>0) and (ASpecInfo.ACustNo<>AOrderInfo.CustNo) then Exit;
  //客戶分類(客戶分類相符,或為空,或屬于其子類)
  if (ASpecInfo.ACustClass<>0) and (ASpecInfo.ACustClass<>ACustClass) and (not IsInclude(ASpecInfo.ACustClass,ACustClass,1)) then Exit;
  //客戶級別(客戶級別相符,或為空)
  if (ASpecInfo.ACustGrade<>0) and (ASpecInfo.ACustGrade<>ACustGrade) then Exit;
  //銷售員號(銷售員相符,或為空)
  if (ASpecInfo.ASaleNo<>0) and (ASpecInfo.ASaleNo<>AOrderInfo.SaleNo) then Exit;
  //銷售員級別(銷售員級別相符,或為空)
  if (ASpecInfo.ASaleGrade<>0) and (ASpecInfo.ASaleGrade<>ASaleGrade) then Exit;
  //交貨地區(交貨地區相符,或為空,或屬于其子類)
  if (ASpecInfo.ARegionNo<>0) and (ASpecInfo.ARegionNo<>AOrderInfo.RegionNo) and (not IsInclude(ASpecInfo.ARegionNo,AOrderInfo.RegionNo,2)) then Exit;
  Result:=True;
end;

//取得特殊價格及總額折扣
function GetSpecPrice(ASpecNo:Integer;AOrderInfo:TOrderInfo;var APriceInfo:TPriceInfo):Boolean;
var
  ASpecInfo:TSpecInfo;
  AItemClass,ACustClass,ACustGrade,ASaleGrade,ANo,I:Integer;
  AValue,Amount:Double;
  AStringList:TStringList;
  AIsExists:Boolean;
begin
  Result:=False;
  //1.取得料品分類、客戶分類、客戶級別、銷售員級別
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select I150_005 from INV150 where I150_001='+IntToStr(AOrderInfo.ItemNo));
  SYSDM.qryQuery.Open;
  AItemClass:=SYSDM.qryQuery.Fields[0].AsInteger;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select O150_010,O150_041 from ORD150 where O150_001='+IntToStr(AOrderInfo.CustNo));
  SYSDM.qryQuery.Open;
  ACustClass:=SYSDM.qryQuery.Fields[0].AsInteger;
  ACustGrade:=SYSDM.qryQuery.Fields[1].AsInteger;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select H150_024 from HRM150 where H150_001='+IntToStr(AOrderInfo.SaleNo));
  SYSDM.qryQuery.Open;
  ASaleGrade:=SYSDM.qryQuery.Fields[0].AsInteger;

  //2.取得特價記錄的設置信息 并 檢驗是否符合條件
  if not CheckSpecInfo(ASpecNo,AItemClass,ACustClass,ACustGrade,ASaleGrade,AOrderInfo,ASpecInfo) then Exit;
  APriceInfo.IsBySum:=ASpecInfo.AIsSum;

  Amount:=0;
  case ASpecInfo.AAmtType of
    0:Amount:=AOrderInfo.LineSumAmt;  //0=銷售總額=定單行銷售總額
    1:Amount:=AOrderInfo.LineSumAmt-AOrderInfo.LineDisAmt;  //1=定單總額=定單行銷售總額-定單行總折扣額
    2:Amount:=AOrderInfo.LineSumAmt-AOrderInfo.LineDisAmt+AOrderInfo.ChargeAmt;  //2=應收總額=定單總額+特殊費用
    3:Amount:=AOrderInfo.LineSumAmt-AOrderInfo.LineDisAmt-AOrderInfo.OrdDisAmt;  //3=折后總額=定單總額-定單總折扣額
    4:Amount:=AOrderInfo.LineSumAmt-AOrderInfo.LineDisAmt+AOrderInfo.ChargeAmt-AOrderInfo.OrdDisAmt;  //4=凈應收額=定單總額+特殊費用-定單總折扣額
  end;
  APriceInfo.Amount:=Amount;

  //3.依據特價類型計算其數量或金額
  AValue:=0;
  case ASpecInfo.AType of
    0:AValue:=AOrderInfo.OrderQty;  //0=基于數量的折扣率
    1:AValue:=AOrderInfo.OrderQty;  //1=基于數量的價格
    2:AValue:=AOrderInfo.OrderQty*APriceInfo.StdPrice;  //2=基于金額的折扣率
    3:AValue:=AOrderInfo.OrderQty*APriceInfo.StdPrice;  //3=基于金額的價格
  end;
  if ASpecInfo.AIsSum then AValue:=Amount;

  //4.取得應用對象的編號
  ANo:=0;
  case ASpecInfo.ARange of
    0:ANo:=AOrderInfo.ItemNo;  //0=料品編號
    1:ANo:=AItemClass;  //1=料品分類
    2:ANo:=AOrderInfo.CustNo;  //2=客戶編號
    3:ANo:=ACustClass;  //3=客戶分類
    4:ANo:=ACustGrade;  //4=客戶級別
    5:ANo:=AOrderInfo.SaleNo;  //5=銷售員號
    6:ANo:=ASaleGrade;  //6=銷售員級別
    7:ANo:=AOrderInfo.RegionNo;  //7=交貨地區
  end;

  //5.取得所有上級類別的編號
  AStringList:=TStringList.Create;
  case ASpecInfo.ARange of
    1:GetParentNo(ANo,0,AStringList);
    3:GetParentNo(ANo,1,AStringList);
    7:GetParentNo(ANo,2,AStringList);
  else
    AStringList.Add(IntToStr(ANo));
  end;

  //取得適用范圍的編號
  AIsExists:=False;
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select * from ORD140B where O140B_001='+IntToStr(ASpecNo));
  SYSDM.qryQuery.Open;
  if not SYSDM.qryQuery.IsEmpty then
  begin
    //按級別一級一級向上查找
    for I:=0 to AStringList.Count-1 do
    begin
      if SYSDM.qryQuery.Locate('O140B_003',AStringList[I],[]) then
      begin
        ANo:=SYSDM.qryQuery.FieldByName('O140B_003').AsInteger;
        AIsExists:=True;
        Break;
      end;
    end;
  end;

  if (not SYSDM.qryQuery.IsEmpty) and (not AIsExists) then Exit;
  if (SYSDM.qryQuery.IsEmpty) or (ASpecInfo.AIsSame) then ANo:=0;

  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('select * from ORD140C where O140C_001='+IntToStr(ASpecNo)+' and O140C_002='+IntToStr(ANo)+' order by O140C_003 desc');
  SYSDM.qryQuery.Open;
  while not SYSDM.qryQuery.Eof do
  begin
    if AValue>=SYSDM.qryQuery.FieldByName('O140C_003').Value then
    begin
      if ASpecInfo.AIsSum then  //總額折扣
      begin
        case ASpecInfo.AType of
          0://0=基于數量的折扣率
            begin
              APriceInfo.DisAmt:=Amount*SYSDM.qryQuery.FieldByName('O140C_004').Value;
              APriceInfo.OrdPrice:=Amount*SYSDM.qryQuery.FieldByName('O140C_004').Value;
            end;
          1://1=基于數量的價格
            begin
              APriceInfo.DisAmt:=SYSDM.qryQuery.FieldByName('O140C_004').Value;
              APriceInfo.OrdPrice:=SYSDM.qryQuery.FieldByName('O140C_004').Value;
            end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产女人18水真多18精品一级做 | 7777女厕盗摄久久久| 国产综合久久久久影院| 青草国产精品久久久久久| 午夜精品在线看| 日本伊人精品一区二区三区观看方式| 亚洲国产中文字幕在线视频综合| 一个色在线综合| 午夜电影久久久| 久久99国产乱子伦精品免费| 六月丁香婷婷色狠狠久久| 久久99国产精品免费| 国产精品一区二区免费不卡 | 久久久久久久电影| 国产三区在线成人av| 亚洲欧洲日韩av| 亚洲h精品动漫在线观看| 日韩不卡一区二区三区| 精品一区二区成人精品| 国产91在线观看| 91日韩在线专区| 欧美人妖巨大在线| 国产日韩欧美不卡在线| 亚洲欧美日韩国产另类专区 | 欧美一区二区视频在线观看2022| 欧美成人精品二区三区99精品| 久久久99精品久久| 一区二区三区不卡视频| 久久99精品久久久久久| 99国产精品久久久| 日韩视频一区在线观看| 欧美国产激情一区二区三区蜜月 | 26uuu国产在线精品一区二区| 国产精品免费丝袜| 日韩精品福利网| av在线一区二区三区| 欧美另类久久久品| 国产精品蜜臀av| 日韩精品成人一区二区在线| 成人免费视频播放| 538prom精品视频线放| 国产精品久久久久久久久搜平片 | 一区二区三区在线免费播放| 男女性色大片免费观看一区二区| 不卡的电影网站| 欧美va亚洲va香蕉在线| 亚洲免费大片在线观看| 国产一区二区伦理片| 欧美三级电影一区| 欧美国产丝袜视频| 精品一区精品二区高清| 欧美视频一二三区| 国产精品国产三级国产普通话三级 | 日韩专区在线视频| 91麻豆免费看| 欧美国产国产综合| 韩国成人在线视频| 欧美妇女性影城| 亚洲一区二区三区精品在线| 波多野结衣在线一区| 日韩一级片在线播放| 亚洲国产成人av好男人在线观看| av在线不卡网| 国产精品乱人伦中文| 国产老肥熟一区二区三区| 欧美本精品男人aⅴ天堂| 天堂资源在线中文精品| 欧洲一区二区三区在线| 亚洲同性gay激情无套| 波多野洁衣一区| 国产精品女上位| 99久久婷婷国产综合精品| 国产调教视频一区| 国产成人综合自拍| 久久久噜噜噜久噜久久综合| 狠狠久久亚洲欧美| 久久久久9999亚洲精品| 风间由美一区二区av101| 久久九九影视网| 99久久久精品| 一区二区三区四区中文字幕| 色偷偷久久人人79超碰人人澡| 亚洲日本护士毛茸茸| 色综合一个色综合| 亚洲小少妇裸体bbw| 91精品国产综合久久久久| 青青草97国产精品免费观看无弹窗版| 日韩精品中文字幕一区二区三区| 蜜臂av日日欢夜夜爽一区| 精品国产1区二区| 成人亚洲精品久久久久软件| 中文字幕在线不卡视频| 欧美亚洲禁片免费| 免费人成在线不卡| 日本一区二区在线不卡| 91亚洲资源网| 日本成人在线不卡视频| 国产亚洲欧美日韩俺去了| 不卡的电影网站| 日本欧美一区二区三区乱码| 久久人人超碰精品| 色哟哟日韩精品| 麻豆精品视频在线观看视频| 国产亚洲人成网站| 欧美中文字幕一区| 精品一区二区影视| 亚洲伦理在线免费看| 日韩三级在线观看| 99久久国产综合精品色伊| 青草av.久久免费一区| 中文字幕在线一区免费| 91精品国产综合久久久蜜臀粉嫩| 高清免费成人av| 日韩av中文字幕一区二区三区| 日本一区二区三区免费乱视频| 在线观看网站黄不卡| 国产精品一区二区久激情瑜伽| 亚洲欧美一区二区三区久本道91 | 久久久综合视频| 欧美视频在线一区二区三区| 国产一区二区三区日韩| 一片黄亚洲嫩模| 国产精品美女久久久久久久久| 欧美久久久久久久久中文字幕| 国产精品一区二区黑丝| 奇米精品一区二区三区在线观看一| 国产精品久久久久久久久免费相片 | 色偷偷久久人人79超碰人人澡| 激情六月婷婷综合| 天堂资源在线中文精品| 亚洲免费毛片网站| 国产精品黄色在线观看| 精品国产免费一区二区三区四区| 欧美又粗又大又爽| 99免费精品视频| 国产精品18久久久| 精品一区二区三区久久| 美洲天堂一区二卡三卡四卡视频| 一区二区三区高清| 亚洲精品中文字幕在线观看| 国产精品你懂的| 国产精品免费av| 中文字幕乱码亚洲精品一区| 精品久久久久久久久久久久久久久久久| 欧美网站一区二区| 欧美在线制服丝袜| 日本精品一级二级| 色噜噜偷拍精品综合在线| 99久久伊人网影院| 成人激情小说乱人伦| 豆国产96在线|亚洲| 成人一区二区三区视频在线观看| 国产传媒日韩欧美成人| 成人综合激情网| 粉嫩av亚洲一区二区图片| 成人黄色大片在线观看| 97久久精品人人做人人爽50路| 99精品欧美一区| 欧美性感一区二区三区| 欧美色视频一区| 欧美高清你懂得| 26uuu久久天堂性欧美| 国产区在线观看成人精品| 中文字幕精品一区二区精品绿巨人| 国产精品欧美精品| 亚洲激情五月婷婷| 亚洲bdsm女犯bdsm网站| 免费在线看成人av| 激情偷乱视频一区二区三区| 国产麻豆视频一区| www.成人在线| 欧美色涩在线第一页| 日韩欧美在线观看一区二区三区| 精品女同一区二区| 中文字幕乱码久久午夜不卡| 一区二区三区四区蜜桃| 天堂一区二区在线| 国产很黄免费观看久久| 91麻豆精品一区二区三区| 欧美日韩国产区一| 久久久久久亚洲综合| 亚洲精品欧美综合四区| 日韩av网站免费在线| 国产**成人网毛片九色 | 日韩福利视频导航| 国产乱一区二区| 欧洲人成人精品| 欧美精品一区二区在线观看| 亚洲视频资源在线| 久久精品国产99国产精品| kk眼镜猥琐国模调教系列一区二区| 欧美日韩激情在线| 国产天堂亚洲国产碰碰| 天堂午夜影视日韩欧美一区二区| 国产98色在线|日韩| 欧美一区二区成人| 亚洲欧美欧美一区二区三区| 精品一区中文字幕| 欧美日本国产视频| 一区二区三区日韩精品视频|