|
@@ -134,7 +134,7 @@ type
|
|
|
function CheckBGLUsed(ABGID: Integer): Boolean;
|
|
|
|
|
|
function LocateBGL(const ACode: string): Boolean;
|
|
|
- function LocateBGBills(ABGID: Integer; const AB_Code: string): Boolean;
|
|
|
+ function LocateBGBills(ABGID: Integer; const AB_Code, AName, AUnit: string; APrice: Double): Boolean;
|
|
|
function GetTotalPrice: Double;
|
|
|
function GetEndTotalPrice(AEndPhase: Integer): Double;
|
|
|
public
|
|
@@ -391,7 +391,7 @@ var
|
|
|
begin
|
|
|
for I := 0 to ABGLInfo.Count - 1 do
|
|
|
if LocateBGL(ABGLInfo.Codes[I]) and
|
|
|
- LocateBGBills(cdsBGLID.AsInteger, ABGLInfo.B_Code) then
|
|
|
+ LocateBGBills(cdsBGLID.AsInteger, ABGLInfo.B_Code, ABGLInfo.Name, ABGLInfo.Units, ABGLInfo.Price) then
|
|
|
begin
|
|
|
cdsBGBills.Edit;
|
|
|
fNum := QuantityRoundTo(StrToFloatDef(ABGLInfo.Nums[I], 0));
|
|
@@ -670,14 +670,17 @@ begin
|
|
|
end;
|
|
|
|
|
|
function TBGLData.LocateBGBills(ABGID: Integer;
|
|
|
- const AB_Code: string): Boolean;
|
|
|
+ const AB_Code, AName, AUnit: string; APrice: Double): Boolean;
|
|
|
begin
|
|
|
Result := False;
|
|
|
cdsBGBills.First;
|
|
|
while (not cdsBGBills.Eof) do
|
|
|
begin
|
|
|
if (cdsBGBillsBGID.AsInteger = ABGID) and
|
|
|
- SameText(cdsBGBillsB_Code.AsString, AB_Code) then
|
|
|
+ SameText(cdsBGBillsB_Code.AsString, AB_Code) and
|
|
|
+ SameText(cdsBGBillsName.AsString, AName) and
|
|
|
+ SameText(cdsBGBillsUnits.AsString, AUnit) and
|
|
|
+ (PriceRoundTo(cdsBGBillsPrice.AsFloat - APrice) = 0) then
|
|
|
begin
|
|
|
Result := True;
|
|
|
Break;
|