浏览代码

合并3.1.5代码,并解决冲突。
所有编译版本的dpr,均以3.1.5的为准。
其中在线审批在master上,进度条相关在3.1.5上,关于这两点的合并,须验证。

MaiXinRong 9 年之前
父节点
当前提交
eef80e7e20

+ 1 - 13
DataModules/BillsCompileDm.pas

@@ -889,11 +889,7 @@ begin
         MisTotalPrice.AsFloat := TotalPriceRoundTo(MisQuantity.AsFloat * Price.AsFloat);
 
       SetFloatValue(Quantity, QuantityRoundTo(
-<<<<<<< HEAD
-          OrgQuantity.AsFloat + MisQuantity.AsFloat + OthQuantity.AsFloat));
-=======
-          OrgQuantity.AsFloat + MisQuantity.AsFloat + OthQuantity.AsFloat));        
->>>>>>> 3.1.5
+          OrgQuantity.AsFloat + MisQuantity.AsFloat + OthQuantity.AsFloat)); 
 
       // 金额与修改前不一样,则向父项增量
       if MisTotalPrice.AsFloat <> CacheMisTP then
@@ -931,11 +927,7 @@ begin
         OrgTotalPrice.AsFloat := TotalPriceRoundTo(OrgQuantity.AsFloat * Price.AsFloat);
 
       SetFloatValue(Quantity, QuantityRoundTo(
-<<<<<<< HEAD
           OrgQuantity.AsFloat + MisQuantity.AsFloat + OthQuantity.AsFloat));
-=======
-          OrgQuantity.AsFloat + MisQuantity.AsFloat + OthQuantity.AsFloat));        
->>>>>>> 3.1.5
 
       // 金额与修改前不一样,则向父项增量
       if CacheOrgTP <> OrgTotalPrice.AsFloat then
@@ -973,11 +965,7 @@ begin
         OthTotalPrice.AsFloat := TotalPriceRoundTo(OthQuantity.AsFloat * Price.AsFloat);
 
       SetFloatValue(Quantity, QuantityRoundTo(
-<<<<<<< HEAD
           OrgQuantity.AsFloat + MisQuantity.AsFloat + OthQuantity.AsFloat));
-=======
-          OrgQuantity.AsFloat + MisQuantity.AsFloat + OthQuantity.AsFloat));        
->>>>>>> 3.1.5
 
       // 金额与修改前不一样,则向父项增量
       if OthTotalPrice.AsFloat <> CacheOthTP then

+ 1 - 13
DataModules/BillsMeasureDm.pas

@@ -488,11 +488,7 @@ procedure TBillsMeasureData.sdvBillsMeasureNeedLookupRecord(
     begin 
       if ANode.Rec.CalcType.AsInteger <> 0 then
         ANode.Rec.CalcType.AsInteger := 0;
-<<<<<<< HEAD
-        
-=======
 
->>>>>>> 3.1.5
       if CheckNumeric(ANewText) then
         APhaseRec.ValueByName(AType + 'Quantity').AsFloat := QuantityRoundTo(StrToFloatDef(ANewText, 0))
       else
@@ -505,11 +501,7 @@ procedure TBillsMeasureData.sdvBillsMeasureNeedLookupRecord(
   end;
 
   procedure SetTotalPriceRec(ANode: TBillsIDTreeNode; APhaseRec: TsdDataRecord; const AType: string);
-<<<<<<< HEAD
-  begin 
-=======
-  begin  
->>>>>>> 3.1.5
+  begin
     if ANode.Rec.CalcType.AsInteger <> 1 then
       ANode.Rec.CalcType.AsInteger := 1;
     APhaseRec.ValueByName(AType + 'Flag').AsInteger := 2;
@@ -593,11 +585,7 @@ begin
 
   if CheckNeedAddPhaseRecord(vNode) then
   begin
-<<<<<<< HEAD
     if (Pos('Quantity', AColumn.FieldName) > 0) or (Pos('TotalPrice', AColumn.FieldName) > 0) then
-=======
-    if(Pos('Quantity', AColumn.FieldName) > 0) or (Pos('TotalPrice', AColumn.FieldName) > 0) then
->>>>>>> 3.1.5
       if HasCardinalNum(ANewText) then
         raise Exception.Create('¹«Ê½²»¿ÉÊäÈë²ÎÊý');
     NewRec := StageData.AddStageRecord(ARecord.ValueByName('ID').AsInteger);

+ 0 - 12
Dprs/Pro/Measure.dof

@@ -115,11 +115,7 @@ AutoIncBuild=1
 MajorVer=3
 MinorVer=1
 Release=5
-<<<<<<< HEAD
-Build=214
-=======
 Build=3002
->>>>>>> 3.1.5
 Debug=0
 PreRelease=0
 Special=0
@@ -130,21 +126,13 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=纵横结算决算计量一体化专业版
-<<<<<<< HEAD
-FileVersion=3.1.5.214
-=======
 FileVersion=3.1.5.3002
->>>>>>> 3.1.5
 InternalName=
 LegalCopyright=版权所有(C)珠海纵横创新软件有限公司2003-2016
 LegalTrademarks=Measure
 OriginalFilename=
 ProductName=纵横公路工程结算决算一体化软件
-<<<<<<< HEAD
-ProductVersion=3.1.5.2
-=======
 ProductVersion=3.1.5.3
->>>>>>> 3.1.5
 [Excluded Packages]
 C:\Program Files (x86)\Borland\Delphi7\Lib\3F\Developer Express Inc\ExpressEditors Library 5\Delphi 7\Bin\dclcxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
 C:\Program Files (x86)\Borland\Delphi7\Lib\3F\Developer Express Inc\ExpressEditors Library 5\Delphi 7\Bin\dclcxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.

+ 0 - 12
Dprs/Pro/Measure_Cloud.dof

@@ -115,11 +115,7 @@ AutoIncBuild=1
 MajorVer=3
 MinorVer=1
 Release=5
-<<<<<<< HEAD
-Build=212
-=======
 Build=3002
->>>>>>> 3.1.5
 Debug=0
 PreRelease=0
 Special=0
@@ -130,21 +126,13 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=纵横结算决算计量一体化云版
-<<<<<<< HEAD
-FileVersion=3.1.5.212
-=======
 FileVersion=3.1.5.3002
->>>>>>> 3.1.5
 InternalName=
 LegalCopyright=版权所有(C)珠海纵横创新软件有限公司2003-2016
 LegalTrademarks=Measure
 OriginalFilename=
 ProductName=纵横公路工程结算决算一体化软件
-<<<<<<< HEAD
-ProductVersion=3.1.5.2
-=======
 ProductVersion=3.1.5.3
->>>>>>> 3.1.5
 [Excluded Packages]
 C:\Program Files (x86)\Borland\Delphi7\Lib\3F\Developer Express Inc\ExpressEditors Library 5\Delphi 7\Bin\dclcxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
 C:\Program Files (x86)\Borland\Delphi7\Lib\3F\Developer Express Inc\ExpressEditors Library 5\Delphi 7\Bin\dclcxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.

+ 0 - 13
Dprs/Pro/Measure_Cloud.dpr

@@ -146,19 +146,10 @@ uses
   DetailExcelImport in '..\..\Units\DetailExcelImport.pas',
   mProgressProFrm in '..\..\Forms\mProgressProFrm.pas' {ProgressProForm},
   rmHaBaiCustomizedDm in '..\..\DataModules\ReportMemoryDm\rmHaBaiCustomizedDm.pas' {rmHaBaiCustomizedData: TDataModule},
-<<<<<<< HEAD
-=======
-  BillsPasteSelectFrm in '..\..\Forms\BillsPasteSelectFrm.pas' {BillsPasteSelectForm},
-  GclBillsGatherModel in '..\..\Units\GclBillsGatherModel.pas',
->>>>>>> 3.1.5
   ProjectGLDm in '..\..\DataModules\ProjectGLDm.pas' {ProjectGLData: TDataModule},
   PriceMarginBillsDm in '..\..\DataModules\PriceMarginBillsDm.pas' {PriceMarginBillsData: TDataModule},
   GclBillsGatherModel in '..\..\Units\GclBillsGatherModel.pas',
   DetailGLDm in '..\..\DataModules\DetailGLDm.pas' {DetailGLData: TDataModule},
-<<<<<<< HEAD
-  PriceMarginBillsFme in '..\..\Frames\PriceMarginBillsFme.pas' {PriceMarginBillsFrame: TFrame},
-=======
->>>>>>> 3.1.5
   PriceMarginFme in '..\..\Frames\PriceMarginFme.pas' {PriceMarginFrame: TFrame},
   ProjectGLFme in '..\..\Frames\ProjectGLFme.pas' {ProjectGLFrame: TFrame},
   SelectDetailGLsFrm in '..\..\Forms\SelectDetailGLsFrm.pas' {SelectDetailGLsForm},
@@ -186,12 +177,8 @@ uses
   tpSelectTenderDm in '..\..\TenderPartition\tpSelectTenderDm.pas' {tpSelectTenderData: TDataModule},
   tpSelectTenderNode in '..\..\TenderPartition\tpSelectTenderNode.pas',
   tpSelectTendersFrm in '..\..\TenderPartition\tpSelectTendersFrm.pas' {SelectTendersForm},
-<<<<<<< HEAD
-  tpTrialPegInputFrm in '..\..\TenderPartition\tpTrialPegInputFrm.pas' {TrialPegInputForm};
-=======
   tpTrialPegInputFrm in '..\..\TenderPartition\tpTrialPegInputFrm.pas' {TrialPegInputForm},
   PriceMarginBillsFme in '..\..\Frames\PriceMarginBillsFme.pas' {PriceMarginBillsFrame: TFrame};
->>>>>>> 3.1.5
 
 {$R *.res}
 

+ 0 - 12
Dprs/Pro/Measure_GuangDong.dof

@@ -115,11 +115,7 @@ AutoIncBuild=1
 MajorVer=3
 MinorVer=1
 Release=5
-<<<<<<< HEAD
-Build=213
-=======
 Build=3002
->>>>>>> 3.1.5
 Debug=0
 PreRelease=0
 Special=0
@@ -130,21 +126,13 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=纵横结算决算计量一体化广东专业版
-<<<<<<< HEAD
-FileVersion=3.1.5.213
-=======
 FileVersion=3.1.5.3002
->>>>>>> 3.1.5
 InternalName=
 LegalCopyright=版权所有(C)珠海纵横创新软件有限公司2003-2016
 LegalTrademarks=Measure
 OriginalFilename=
 ProductName=纵横公路工程结算决算一体化软件
-<<<<<<< HEAD
-ProductVersion=3.1.5.2
-=======
 ProductVersion=3.1.5.3
->>>>>>> 3.1.5
 [Excluded Packages]
 C:\Program Files (x86)\Borland\Delphi7\Lib\3F\Developer Express Inc\ExpressEditors Library 5\Delphi 7\Bin\dclcxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
 C:\Program Files (x86)\Borland\Delphi7\Lib\3F\Developer Express Inc\ExpressEditors Library 5\Delphi 7\Bin\dclcxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.

+ 0 - 12
Dprs/Pro/Measure_GuangDong_Cloud.dof

@@ -115,11 +115,7 @@ AutoIncBuild=1
 MajorVer=3
 MinorVer=1
 Release=5
-<<<<<<< HEAD
-Build=212
-=======
 Build=3002
->>>>>>> 3.1.5
 Debug=0
 PreRelease=0
 Special=0
@@ -130,21 +126,13 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=纵横结算决算计量一体化广东云版
-<<<<<<< HEAD
-FileVersion=3.1.5.212
-=======
 FileVersion=3.1.5.3002
->>>>>>> 3.1.5
 InternalName=
 LegalCopyright=版权所有(C)珠海纵横创新软件有限公司2003-2016
 LegalTrademarks=Measure
 OriginalFilename=
 ProductName=纵横公路工程结算决算一体化软件
-<<<<<<< HEAD
-ProductVersion=3.1.5.2
-=======
 ProductVersion=3.1.5.3
->>>>>>> 3.1.5
 [Excluded Packages]
 C:\Program Files (x86)\Borland\Delphi7\Lib\3F\Developer Express Inc\ExpressEditors Library 5\Delphi 7\Bin\dclcxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
 C:\Program Files (x86)\Borland\Delphi7\Lib\3F\Developer Express Inc\ExpressEditors Library 5\Delphi 7\Bin\dclcxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.

+ 0 - 12
Dprs/Pro/Measure_GuangDong_TZ.dof

@@ -115,11 +115,7 @@ AutoIncBuild=0
 MajorVer=3
 MinorVer=1
 Release=5
-<<<<<<< HEAD
-Build=210
-=======
 Build=3002
->>>>>>> 3.1.5
 Debug=0
 PreRelease=0
 Special=0
@@ -130,21 +126,13 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=纵横0号台账广东专业版
-<<<<<<< HEAD
-FileVersion=3.1.5.210
-=======
 FileVersion=3.1.5.3002
->>>>>>> 3.1.5
 InternalName=
 LegalCopyright=版权所有(C)珠海纵横创新软件有限公司2003-2016
 LegalTrademarks=Measure
 OriginalFilename=
 ProductName=纵横公路工程结算决算一体化软件
-<<<<<<< HEAD
-ProductVersion=3.1.5.2
-=======
 ProductVersion=3.1.5.3
->>>>>>> 3.1.5
 Comments=
 [Excluded Packages]
 C:\Program Files (x86)\Borland\Delphi7\Lib\3F\Developer Express Inc\ExpressEditors Library 5\Delphi 7\Bin\dclcxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.

+ 0 - 12
Dprs/Pro/Measure_TZ.dof

@@ -115,11 +115,7 @@ AutoIncBuild=1
 MajorVer=3
 MinorVer=1
 Release=5
-<<<<<<< HEAD
-Build=211
-=======
 Build=3002
->>>>>>> 3.1.5
 Debug=0
 PreRelease=0
 Special=0
@@ -130,21 +126,13 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=纵横0号台账专业版
-<<<<<<< HEAD
-FileVersion=3.1.5.211
-=======
 FileVersion=3.1.5.3002
->>>>>>> 3.1.5
 InternalName=
 LegalCopyright=版权所有(C)珠海纵横创新软件有限公司2003-2016
 LegalTrademarks=Measure
 OriginalFilename=
 ProductName=纵横公路工程结算决算一体化软件
-<<<<<<< HEAD
-ProductVersion=3.1.5.2
-=======
 ProductVersion=3.1.5.3
->>>>>>> 3.1.5
 [Excluded Packages]
 C:\Program Files (x86)\Borland\Delphi7\Lib\3F\Developer Express Inc\ExpressEditors Library 5\Delphi 7\Bin\dclcxEditorsVCLD7.bpl=ExpressEditors Library 5 (VCL Edition) by Developer Express Inc.
 C:\Program Files (x86)\Borland\Delphi7\Lib\3F\Developer Express Inc\ExpressEditors Library 5\Delphi 7\Bin\dclcxExtEditorsVCLD7.bpl=ExpressExtendedEditors Library 5 (VCL Edition) by Developer Express Inc.

+ 0 - 5
Dprs/Trail/Measure.dof

@@ -114,13 +114,8 @@ IncludeVerInfo=1
 AutoIncBuild=1
 MajorVer=3
 MinorVer=1
-<<<<<<< HEAD
-Release=3
-Build=3027
-=======
 Release=5
 Build=3002
->>>>>>> 3.1.5
 Debug=0
 PreRelease=0
 Special=0

+ 0 - 11
Dprs/Trail/Measure_GuangDong.dof

@@ -114,13 +114,8 @@ IncludeVerInfo=1
 AutoIncBuild=1
 MajorVer=3
 MinorVer=1
-<<<<<<< HEAD
-Release=3
-Build=3027
-=======
 Release=5
 Build=3002
->>>>>>> 3.1.5
 Debug=0
 PreRelease=0
 Special=0
@@ -131,15 +126,9 @@ CodePage=936
 [Version Info Keys]
 CompanyName=珠海纵横创新软件有限公司
 FileDescription=纵横结算决算计量一体化广东学习版
-<<<<<<< HEAD
-FileVersion=3.1.3.3027
-InternalName=Measure
-LegalCopyright=版权所有(C) 珠海纵横创新软件有限公司 2003-2014。保留所有权利。
-=======
 FileVersion=3.1.5.3002
 InternalName=
 LegalCopyright=版权所有(C)珠海纵横创新软件有限公司2003-2016
->>>>>>> 3.1.5
 LegalTrademarks=Measure
 OriginalFilename=
 ProductName=纵横结算决算计量一体化软件

+ 1 - 1
Forms/FindUserFrm.pas

@@ -152,7 +152,7 @@ begin
     btnAdd.Enabled := False;
     btnAdd.Caption := 'Ìí¼Ó³É¹¦';
     vOwner := TCheckerFrame(TOrderCheckerFrame(Owner).Owner);
-    vOwner.AddNewChecker(cftChecker, StrToInt(UserArr[4]), UserArr[1], UserArr[2], UserArr[3], PicPath, '', csNotBegin);
+    vOwner.AddNewChecker(cftChecker, StrToInt(UserArr[4]), UserArr[1], UserArr[2], UserArr[3], PicPath, '', csNotBegin, '', -1);
     vOwner.RepairOrder;
     vOwner.RepairDelete(True);
   end;

+ 0 - 4
Frames/BillsCompileFme.pas

@@ -68,11 +68,7 @@ type
     procedure actnImportGclBillsToXmjExecute(Sender: TObject);
     procedure actnImportPlaneFxBillsToXmjExecute(Sender: TObject);
     procedure zgBillsCompileCellTextChanged(Sender: TObject; Col,
-<<<<<<< HEAD
-      Row: Integer);    
-=======
       Row: Integer);
->>>>>>> 3.1.5
   private
     FBillsCompileData: TBillsCompileData;
     FShowIDField: Boolean;

+ 8 - 6
Frames/CheckerFme.pas

@@ -47,7 +47,8 @@ type
     procedure Init;
     // 审核人的名字、职位、公司、图像
     procedure AddNewChecker(AType: TCheckerFrameType; AID: Integer; AName,
-      ARole, ACompany, AImagePath, ACheckerMemo: string; ACheckStatus: TCheckStatus);
+      ARole, ACompany, AImagePath, ACheckerMemo: string; ACheckStatus: TCheckStatus;
+      ACheckeTime: string; ACheckeOnLine: Integer);
     function InCheckerList(ACheckerID: Integer): Boolean;
     function HasNormalChecker: Boolean;        // 有普通审核人就返回True(光有业主不算)
     function HasChecker: Boolean;              // 列表不为空即返回True(光Add也算)
@@ -70,12 +71,13 @@ uses FindUserFrm, PHPWebDm, ProjectData, CslJson, ConstUnit, ProjectFme;
 {$R *.dfm}
 
 procedure TCheckerFrame.AddNewChecker(AType: TCheckerFrameType; AID: Integer;
-  AName, ARole, ACompany, AImagePath, ACheckerMemo: string; ACheckStatus: TCheckStatus);
+  AName, ARole, ACompany, AImagePath, ACheckerMemo: string; ACheckStatus: TCheckStatus;
+  ACheckeTime: string; ACheckeOnLine: Integer);
 var vChecker: TOrderCheckerFrame;
 begin
   vChecker := TOrderCheckerFrame.Create(Self);
   vChecker.Owner := Self;
-  vChecker.Init(AType, AID, AName, ARole, ACompany, AImagePath, ACheckerMemo, ACheckStatus);
+  vChecker.Init(AType, AID, AName, ARole, ACompany, AImagePath, ACheckerMemo, ACheckStatus, ACheckeTime, ACheckeOnLine);
 
   sbChecker.Height := sbChecker.Height + vChecker.Height;
   vChecker.Parent := sbChecker;
@@ -172,15 +174,15 @@ begin
          因为无法得知当前项目是数据库中已存在的最新一期还是仅存于本地尚末入库
          的最新一期。改由添加的位置给出提示}
          if (TProjectData(ProjectData).PhaseIndex > 0) and (not TProjectFrame(Owner).IsUped) then
-           AddNewChecker(cftAdd, -1, '', '', '', '', '', csNotBegin);
+           AddNewChecker(cftAdd, -1, '', '', '', '', '', csNotBegin, '', -1);
         end;
 
         AddNewChecker(cftOwner, StrToInt(sID),
-          vA[i, 0], vA[i, 2], vA[i, 1], sPicPath, vA[i, 6], vStatus);
+          vA[i, 0], vA[i, 2], vA[i, 1], sPicPath, vA[i, 6], vStatus, vA[i, 8], StrToInt(vA[i, 7]));
       end
       else
         AddNewChecker(cftChecker, StrToInt(vA[i, 4]),
-          vA[i, 0], vA[i, 2], vA[i, 1], sPicPath, vA[i, 6], vStatus);
+          vA[i, 0], vA[i, 2], vA[i, 1], sPicPath, vA[i, 6], vStatus, vA[i, 8], StrToInt(vA[i, 7]));
 
       vCM := TChecker.Create;
       vProj.Checkers.Add(StrToInt(vA[i, 4]), vA[i, 0], vA[i, 2], vA[i, 6]);

+ 7 - 0
Frames/OrderCheckerFme.dfm

@@ -384,6 +384,13 @@ object OrderCheckerFrame: TOrderCheckerFrame
       ParentShowHint = False
       ShowHint = True
     end
+    object lblOrderCheckerTime: TLabel
+      Left = 253
+      Top = 8
+      Width = 94
+      Height = 19
+      Caption = '['#26102#38388']['#32447#19979#23457#26680']'
+    end
     object btnDelete: TCslButton
       Left = 336
       Top = 30

+ 20 - 20
Frames/OrderCheckerFme.pas

@@ -43,6 +43,7 @@ type
     imgNotPass: TImage;
     btnDelete: TCslButton;
     lblOrderCheckerMemo: TLabel;
+    lblOrderCheckerTime: TLabel;
     procedure shpAddMouseDown(Sender: TObject; Button: TMouseButton;
       Shift: TShiftState; X, Y: Integer);
     procedure btnDeleteClick(Sender: TObject);
@@ -55,16 +56,19 @@ type
     FCheckStatus: TCheckStatus;
     FUserRole: string;
     FCheckerMemo: string;
+    FCheckedTime: string;
+    FCheckedOnline: Integer;
     procedure SetOrder(const Value: Integer);
     procedure SetCheckStatus(const Value: TCheckStatus);
     procedure SetCheckerMemo(const Value: string);
-    procedure SetCheckeTime(const Value: string);
+    procedure SetCheckedTime(const Value: string);
     procedure RightAlign(ALabel: TLabel);
     { Private declarations }
   public
     { Public declarations }
     procedure Init(AType: TCheckerFrameType; AID: Integer; AName, ARole,
-    ACompany, AImagePath, ACheckerMemo: string; ACheckStatus: TCheckStatus);
+    ACompany, AImagePath, ACheckerMemo: string; ACheckStatus: TCheckStatus;
+    ACheckedTime: string; ACheckedOnLine: Integer);
     function IsMe(AID: Integer; AName: string): string;
     function IsChecking: Boolean;
     function IsFinished: Boolean;
@@ -78,11 +82,8 @@ type
     property CheckerFrameType: TCheckerFrameType read FCheckerFrameType write FCheckerFrameType;   // 审核人类型
     property CheckStatus: TCheckStatus read FCheckStatus write SetCheckStatus;     // 审核状态
     property CheckerMemo: string read FCheckerMemo write SetCheckerMemo;           // 审核意见
-<<<<<<< HEAD
-    property CheckeTime: string read FCheckeTime write SetCheckeTime;
-    property CheckeOnLine: Integer read FCheckeOnLine write FCheckeOnLine;  // 0 线下审批(默认);1 线上审批。
-=======
->>>>>>> 3.1.5
+    property CheckedTime: string read FCheckedTime write SetCheckedTime;
+    property CheckedOnLine: Integer read FCheckedOnLine write FCheckedOnLine;  // 0 线下审批(默认);1 线上审批。
   end;
 
 implementation
@@ -95,8 +96,10 @@ uses FindUserFrm, CheckerFme, PHPWebDm, ProjectData, ProjectFme,
 { TOrderCheckerFrame }
 
 procedure TOrderCheckerFrame.Init(AType: TCheckerFrameType; AID: Integer;
-  AName, ARole, ACompany, AImagePath, ACheckerMemo: string; ACheckStatus: TCheckStatus);
+  AName, ARole, ACompany, AImagePath, ACheckerMemo: string;
+  ACheckStatus: TCheckStatus; ACheckedTime: string; ACheckedOnLine: Integer);
 var bAdd, bOwner: Boolean;
+  sOnLine: string;
 begin
   bAdd := AType = cftAdd;
   shpAdd.Visible := bAdd;
@@ -105,6 +108,8 @@ begin
   lblOrderCheckerName.Visible := not bAdd;
   lblOrderCheckerRole.Visible := not bAdd;
   lblOrderCheckerCompany.Visible := not bAdd;
+  lblOrderStatus.Visible := not bAdd;
+
   shpImage.Visible := not bAdd;
   lblOrderCheckerMemo.Visible := not bAdd;
   bOwner := AType = cftOwner;
@@ -114,7 +119,6 @@ begin
   CheckerFrameType := AType;
   CheckStatus := ACheckStatus;
 
-<<<<<<< HEAD
   lblOrderStatus.Visible := not bAdd;
   if lblOrderStatus.Visible then
     RightAlign(lblOrderStatus);
@@ -123,8 +127,6 @@ begin
   if lblOrderCheckerTime.Visible then
     RightAlign(lblOrderCheckerTime);
 
-=======
->>>>>>> 3.1.5
   case AType of
     cftChecker, cftOwner:
     begin
@@ -136,20 +138,17 @@ begin
       lblOrderCheckerRole.Caption := ARole;
       lblOrderCheckerCompany.Caption := ACompany;
 
-<<<<<<< HEAD
       if CheckStatus in [csFinished, csNotPass] then
       begin
-        CheckeOnLine := ACheckeOnLine;
-        if ACheckeOnLine = 0 then
+        CheckedOnLine := ACheckedOnLine;
+        if ACheckedOnLine = 0 then
           sOnLine := '线下审核'
-        else if ACheckeOnLine = 1 then
+        else if ACheckedOnLine = 1 then
           sOnLine := '线上审核';
 
-        CheckeTime := Format('[%s][%s]', [ACheckeTime, sOnLine]);
+        CheckedTime := Format('[%s][%s]', [ACheckedTime, sOnLine]);
       end;
 
-=======
->>>>>>> 3.1.5
       CheckerMemo := RecoverCharsFromJson(ACheckerMemo);
       if FileExists(AImagePath) then
         imgOrderCheckerPic.Picture.LoadFromFile(AImagePath)
@@ -195,6 +194,7 @@ begin
   lblOrderStatus.Font.Color := vColor;
   lblLast.Font.Color := vColor;
   lblOrderCheckerMemo.Font.Color := vColor;
+  lblOrderCheckerTime.Font.Color := vColor;
 //  cxHintStyleController1.HintStyle.Color := clWindow;        气泡Hint,很帅,但是有Bug,频繁操作时会出错,废弃不用,可惜!
 //  cxHintStyleController1.HintStyle.Font.Color := vColor;
 
@@ -289,9 +289,9 @@ begin
 end;
 
 
-procedure TOrderCheckerFrame.SetCheckeTime(const Value: string);
+procedure TOrderCheckerFrame.SetCheckedTime(const Value: string);
 begin
-  FCheckeTime := Value;
+  FCheckedTime := Value;
 
   lblOrderCheckerTime.Caption := Value;
   lblOrderCheckerTime.Visible := (CheckStatus in [csFinished, csNotPass]);

+ 1 - 67
Frames/ProjectFme.pas

@@ -887,32 +887,7 @@ begin
       if Application.MessageBox(PChar(CheckersHint), '询问', MB_YESNO + MB_ICONQUESTION) = ID_No then
         Exit;
 
-<<<<<<< HEAD
       if not SaveAndExport(1) then Exit;
-=======
-      ProgressProCreate(100, '本地数据文件上传到云端');
-      ProjectData.Save;
-      ProgressProRun('保存本地数据。OK');
-
-      // 生成无锁文件
-      vRec := MainForm.ProjectManagerFrame.Rec(ProjectData.ProjectID);
-      vExportor := TTenderExport.Create(vRec, sAppFile_UnLock);
-      try
-        vExportor.Execute;
-      finally
-        vExportor.Free;
-      end;
-      ProgressProRun('生成无锁文件。OK');
-      ProgressProRun('生成检验文件...', 0);
-      if not ProjectData.SubmitProject(sAppFile) then
-        if not ProjectData.SubmitProject(sAppFile) then
-        begin
-          bNeedFreeEarlier := True;
-          WarningMessage('Sorry!待审核文件连续2次生成失败!如果重试后仍不能解决该问题,请联系纵横客服。', ProgressProHandle);
-          Exit;
-        end;
-      ProgressProRun('生成检验文件。OK', 10, pmtEdit);
->>>>>>> 3.1.5
     end
     else if ProjectData.CurUserIsChecker then
     begin
@@ -936,22 +911,7 @@ begin
           Exit;
       end;
 
-<<<<<<< HEAD
       if not SaveAndExport(1) then Exit;
-=======
-      ProgressProCreate(100, '本地数据文件上传到云端');
-      ProjectData.Save;
-      ProgressProRun('保存本地数据。OK');
-      ProgressProRun('生成检验文件...', 0);
-      if not ProjectData.SubmitProject(sAppFile) then
-        if not ProjectData.SubmitProject(sAppFile) then
-        begin
-          bNeedFreeEarlier := True;
-          WarningMessage('Sorry!待审核文件连续2次生成失败!如果重试后仍不能解决该问题,请联系纵横客服。', ProgressProHandle);
-          Exit;
-        end;
-      ProgressProRun('生成检验文件。OK', 10, pmtEdit);
->>>>>>> 3.1.5
     end
     else if ProjectData.CurUserIsOwner then
     begin
@@ -975,24 +935,7 @@ begin
           Exit;
       end;
 
-<<<<<<< HEAD
       if not SaveAndExport(2) then Exit;
-=======
-      ProgressProCreate(100, '本地数据文件上传到云端');
-      ProgressProRun('保存本地数据...', 0);
-      ProjectData.Save;
-      ProgressProRun('保存本地数据。OK', 10, pmtEdit);
-
-      ProgressProRun('生成检验文件...', 0);
-      if not ProjectData.ReplyProject(sAppFile) then
-        if not ProjectData.ReplyProject(sAppFile) then
-        begin
-          bNeedFreeEarlier := True;
-          WarningMessage('Sorry!批复文件连续2次生成失败!如果重试后仍不能解决该问题,请联系纵横客服。', ProgressProHandle);
-          Exit;
-        end;
-      ProgressProRun('生成检验文件。OK', 10, pmtEdit);
->>>>>>> 3.1.5
     end;
   finally
     vCF.Free;
@@ -1010,16 +953,7 @@ begin
     ProjectData.ExportJson_Common(sJsonFile_Common);
     ProgressProRun('生成汇总数据。OK', 10, pmtEdit);
 
-
-<<<<<<< HEAD
     ProgressProRun('生成并检验up数据包文件...', 0);
-=======
-    ProgressProRun('校验数据包...', 0);
-    if FileExists(sAppFile_UnLock) then    // 要在压缩前判断,压缩完会删除
-      iFile := 4
-    else
-      iFile := 3;
->>>>>>> 3.1.5
 
     sZipFile := PHPWeb.zip([sAppFile, sJsonFile_Bills, sJsonFile_Common]);
 
@@ -1069,7 +1003,7 @@ begin
               CheckerFrame.Me.CheckStatus := csNotPass;
 
             CheckerFrame.Me.CheckerMemo := sCheckerMemo;
-            CheckerFrame.Me.CheckeTime := Format('[%s][线下审核]',[DateToStr(Date)]);
+            CheckerFrame.Me.CheckedTime := Format('[%s][线下审核]',[DateToStr(Date)]);
           end;
         end;
 

+ 6 - 72
Frames/ProjectManagerFme.pas

@@ -170,13 +170,8 @@ implementation
 
 uses
   MainFrm, UtilMethods, ProjectCommands, Globals, ConfigDoc, ConstUnit,
-<<<<<<< HEAD
   WebNewTenderFrm, PHPWebDm, Math, mProgressFrm, ProgressHintFrm,
-  ShellAPI;
-=======
-  WebNewTenderFrm, PHPWebDm, Math, CslJson, mProgressFrm, ProgressHintFrm,
   ShellAPI, ProjectFme;
->>>>>>> 3.1.5
 
 {$R *.dfm}
 
@@ -262,26 +257,8 @@ var
     sSearchURL, sDownURL,
     sMD5_UnLock, sError, sLocalFile: string;
     iSearch, iFolderID, iSubFolderID: Integer;
-
-<<<<<<< HEAD
-    function HasWebBidInfo(AWebID: Integer): Boolean;
-    var vArr: array of string;
-      iResult: Integer;
-    begin
-      sSearchURL := Format('%stender/get/%d/exist', [PHPWeb.MeasureURL, AWebID]);
-      vArr := VarArrayOf(['id', 'name']);
-      iResult := PHPWeb.Search(sSearchURL, [''], [''], vArr);
-
-      if (iResult = 1) and (High(vArr) >= 0) then
-        Result := True
-      else
-        Result := False;
-    end;
-=======
     bLock, bCanImp: Boolean;
     vFileCheck: TTenderFileChecker;
-
->>>>>>> 3.1.5
   begin
     Result := False;
 
@@ -314,45 +291,7 @@ var
           case SearchFileOnline(sSearchURL, sDownURL, FWebFolder_OnLine, FWebSubFolder_OnLine, FWebBidName_OnLine, sMD5_UnLock, sError, iFolderID, iSubFolderID) of
             1:
             begin
-<<<<<<< HEAD
               if not FileDownAndReceive(sDownURL, 2) then Exit;
-=======
-              // 下载
-              sLocalFile := PHPWeb.UserPath + ExtractFileName(sDownURL);
-              if not PHPWeb.DownFile(sDownURL, sLocalFile) then
-              begin
-                sHint := '云端已找到原报上传的无锁文件,但因网络出错无法下载,本次操作已取消。请重试!';
-                Application.MessageBox(PChar(sHint), '警告', MB_OK + MB_ICONWARNING);
-                Exit;
-              end;
-
-
-              // 导入更新-------------------------------------------------------
-
-              // 导入前须检测无锁文件中仅含有原报数据
-              vFileCheck := TTenderFileChecker.Create;
-              try
-                // 有一期以上数据,且最新期数据审核状态为原报
-                bCanImp := vFileCheck.CheckFileValid(sLocalFile)
-                    and (vFileCheck.PhaseCount > 0) and (vFileCheck.AuditStatus = 0);
-                if not bCanImp then
-                begin
-                  Application.MessageBox(PChar('已从云端下载原报上传的无锁文件到本地,但文件有错误,禁止导入!请致电纵横服务人员以获取帮助。'), '警告', MB_OK + MB_ICONWARNING);
-                  Exit;
-                end;
-              finally
-                vFileCheck.Free;
-              end;
-
-              if not ImportFile(sLocalFile, sMD5) then
-              begin
-                Application.MessageBox(PChar('已从云端下载原报上传的无锁文件到本地,但导入失败!请重试。'), '警告', MB_OK + MB_ICONWARNING);
-                Exit;
-              end;
-              sHint := '【重要提示】:本期计量已重新开始,在本次上报完成前,请勿删除该标段或更换电脑。';
-              Application.MessageBox(PChar(sHint), '提示', MB_OK + MB_ICONINFORMATION);
-              // 导入更新---------------------------------↑↑↑↑↑↑↑↑↑↑↑
->>>>>>> 3.1.5
             end;
 
             0, -1:
@@ -1087,7 +1026,7 @@ var
     sPicPath := PHPWeb.UserPath + '1_' + AArr[0] + '.jpg';
     PHPWeb.DownFile(AArr[4], sPicPath);
     vChecker.Init(AType, StrToInt(AArr[0]), AArr[1], AArr[3],
-      AArr[2], sPicPath, AArr[6], TCheckStatus(StrToInt(AArr[5])-1));
+      AArr[2], sPicPath, AArr[6], TCheckStatus(StrToInt(AArr[5])-1), AArr[8], StrToInt(AArr[7]));
     vChecker.Name := 'ProjectOrderFrame' + AArr[0];
   end;
 
@@ -1098,20 +1037,16 @@ var
       TOrderCheckerFrame(sbChecker.Controls[k]).Order := k + 1;
   end;
 
-<<<<<<< HEAD
   procedure ShowProjectCheckers;
   var i, j, n: Integer;
     vOwner: array of string;  // 业主信息
-=======
-  procedure RefreshProjectCheckers;
-  var i, j: Integer;
-    vOwner: array[0..6] of string;    // 业主信息
->>>>>>> 3.1.5
   begin
     FCheckerList.Clear;
     sbChecker.Height := 0;
     FCurPos := 0;
 
+    n := Length(vCArr[Low(vCArr)]);
+    SetLength(vOwner, n);
     sbChecker.VertScrollBar.Range := 0;
     for i := Low(vCArr) to High(vCArr) do
     begin
@@ -1120,7 +1055,7 @@ var
 
       if StrToInt(vCArr[i, 0]) = FWebOwnerID then
       begin
-        for j := 0 to 6 do
+        for j := 0 to n - 1 do
           vOwner[j] := vCArr[i, j];
 
         Continue;
@@ -1759,7 +1694,6 @@ begin
   end;
 end;
 
-<<<<<<< HEAD
 function TProjectManagerFrame.FileDownAndReceive(ADownURL: string; AReceiveKind: Integer): Boolean;
 var sLocalFile, sHint: string;
   bCanImp: Boolean;
@@ -1872,7 +1806,8 @@ begin
         ABegin := 1;
     end;
   end;
-=======
+end;
+
 procedure TProjectManagerFrame.actnExportUpdate(Sender: TObject);
 begin
   TAction(Sender).Enabled := Assigned(stdProjects.IDTree.Selected);
@@ -1882,7 +1817,6 @@ procedure TProjectManagerFrame.actnOpenBackupFolderUpdate(Sender: TObject);
 begin
   TAction(Sender).Enabled := Assigned(stdProjects.IDTree.Selected) and
     (stdProjects.IDTree.Selected.Rec.ValueByName('Type').AsInteger = 1);
->>>>>>> 3.1.5
 end;
 
 end.

+ 17 - 7
Units/PhaseData.pas

@@ -108,11 +108,18 @@ begin
 end;
 
 procedure TPhaseData.CreateNewAuditData;
+var
+  iAuditCount: Integer;
 begin
-  FPhaseProperty.AuditCount := FPhaseProperty.AuditCount + 1;
-  CopyPreStageData;
-  StageIndex := FPhaseProperty.AuditCount;
-  PhasePayData.UpdateDataForNewAudit;
+  try
+    iAuditCount := FPhaseProperty.AuditCount;
+    FPhaseProperty.AuditCount := iAuditCount + 1;
+    CopyPreStageData;
+    StageIndex := FPhaseProperty.AuditCount;
+    PhasePayData.UpdateDataForNewAudit;
+  except
+    FPhaseProperty.AuditCount := iAuditCount;
+  end;
 end;
 
 destructor TPhaseData.Destroy;
@@ -281,9 +288,12 @@ procedure TPhaseData.CheckAuditCount;
 var
   iAuditCount: Integer;
 begin
-  iAuditCount := GetRealAuditCount;
-  if iAuditCount <> FPhaseProperty.AuditCount then
-    FPhaseProperty.AuditCount := iAuditCount;
+  if FPhaseProperty.AuditCount = 0 then
+  begin
+    iAuditCount := GetRealAuditCount;
+    if iAuditCount <> FPhaseProperty.AuditCount then
+      FPhaseProperty.AuditCount := iAuditCount;
+  end;
 end;
 
 function TPhaseData.GetIsLastStage: Boolean;