Commit 48c932ec by Cam Hayes

Merge remote-tracking branch 'origin/master' into cam

parents 7068c939 34c1f5e2
......@@ -19,7 +19,7 @@ type
FUnauthorizedAccessProc: TUnauthorizedAccessProc;
public
const clientVersion = '0.9.11';
const clientVersion = '0.9.12';
procedure InitApp(SuccessProc: TSuccessProc;
UnauthorizedAccessProc: TUnauthorizedAccessProc);
procedure SetClientConfig(Callback: TVersionCheckCallback);
......
......@@ -107,8 +107,6 @@ begin
end;
procedure TFViewMain.lblCustomersClick(Sender: TObject);
begin
if ( not ( change ) ) then
......@@ -121,18 +119,20 @@ begin
ShowToast('Please Save or Cancel your changes', 'danger');
end;
procedure TFViewMain.lblHomeClick(Sender: TObject);
begin
if ( not ( change ) ) then
begin
ShowForm(TFViewHome);
lblAppTitle.Caption := 'Koehler-Gibson Home';
lblAppTitle.Caption := 'Koehler-Gibson webApp';
setActive('Home');
end
else
ShowToast('Please Save or Cancel your changes', 'danger');
end;
procedure TFViewMain.lblordersClick(Sender: TObject);
begin
if ( not ( change ) ) then
......@@ -145,6 +145,7 @@ begin
ShowToast('Please Save or Cancel your changes', 'danger');
end;
procedure TFViewMain.lblUsersClick(Sender: TObject);
begin
if ( not ( change ) ) then
......@@ -157,6 +158,7 @@ begin
ShowToast('Please Save or Cancel your changes', 'danger');
end;
procedure TFViewMain.lblItemsListClick(Sender: TObject);
begin
if ( not ( change ) ) then
......@@ -171,6 +173,7 @@ begin
ShowToast('Please Save or Cancel your changes', 'danger');
end;
procedure TFViewMain.setActive(page: string);
var
links: TJSNodeList;
......@@ -189,6 +192,7 @@ begin
end;
end;
procedure TFViewMain.mnuLogoutClick(Sender: TObject);
begin
ConfirmLogout;
......@@ -223,7 +227,7 @@ begin
setActive('User Profile');
end;
//needs to be changed
function TFViewMain.GetUserInfo: string;
var
userStr: string;
......@@ -261,11 +265,13 @@ begin
Application.CreateForm(AFormClass, WebPanel1.ElementID, FChildForm);
end;
procedure TFViewMain.ViewCustomerList(info: string);
begin
end;
procedure TFViewMain.EditUser(Mode, Username, Password, Name, Status, Email,
Access, Rights, QB: string);
begin
......@@ -291,6 +297,7 @@ begin
FChildForm := TFOrderEntryCorrugated.CreateForm(WebPanel1.ElementID, orderInfo, customerInfo, mode, info);
end;
procedure TFViewMain.ViewOrderEntryWeb(orderInfo, customerInfo, mode, info: string);
begin
lblAppTitle.Caption := 'Koehler-Gibson Order Entry';
......@@ -299,6 +306,7 @@ begin
FChildForm := TFOrderEntryWeb.CreateForm(WebPanel1.ElementID, orderInfo, customerInfo, mode, info);
end;
procedure TFViewMain.ViewOrderEntryCuttingDie(orderInfo, customerInfo, mode, info: string);
begin
lblAppTitle.Caption := 'Koehler-Gibson Order Entry';
......@@ -307,6 +315,7 @@ begin
FChildForm := TFOrderEntryCuttingDie.CreateForm(WebPanel1.ElementID, orderInfo, customerInfo, mode, info);
end;
procedure TFViewMain.ViewAddCustomer(customerInfo: string; info: string);
begin
lblAppTitle.Caption := 'Koehler-Gibson Add Customer';
......@@ -315,6 +324,7 @@ begin
FChildForm := TFViewAddCustomer.CreateForm(WebPanel1.ElementID, customerInfo, info);
end;
procedure TFViewMain.ShowUserForm(Info: string);
begin
if Assigned(FChildForm) then
......@@ -322,4 +332,5 @@ begin
FChildForm := TFViewUsers.CreateForm(WebPanel1.ElementID, Info);
end;
end.
......@@ -7,6 +7,7 @@ object FSetStatus: TFSetStatus
Top = 61
Width = 38
Height = 14
Anchors = [akTop, akRight]
Caption = 'Status:'
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
......@@ -67,6 +68,7 @@ object FSetStatus: TFSetStatus
Top = 196
Width = 51
Height = 14
Anchors = [akTop, akRight]
Caption = 'Ship Due:'
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
......@@ -82,6 +84,7 @@ object FSetStatus: TFSetStatus
Top = 168
Width = 62
Height = 14
Anchors = [akTop, akRight]
Caption = 'Mount Due:'
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
......@@ -97,6 +100,7 @@ object FSetStatus: TFSetStatus
Top = 140
Width = 54
Height = 14
Anchors = [akTop, akRight]
Caption = 'Plate Due:'
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
......@@ -112,6 +116,7 @@ object FSetStatus: TFSetStatus
Top = 112
Width = 44
Height = 14
Anchors = [akTop, akRight]
Caption = 'Art Due:'
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
......@@ -127,6 +132,7 @@ object FSetStatus: TFSetStatus
Top = 80
Width = 145
Height = 22
Anchors = [akTop, akRight]
ElementClassName = 'custom-select'
ElementID = 'wlc_status'
HeightPercent = 100.000000000000000000
......@@ -154,6 +160,7 @@ object FSetStatus: TFSetStatus
Top = 235
Width = 96
Height = 25
Anchors = [akTop, akRight]
Caption = 'Save'
ChildOrder = 7
ElementClassName = 'btn btn-secondary'
......@@ -170,6 +177,7 @@ object FSetStatus: TFSetStatus
Top = 235
Width = 96
Height = 25
Anchors = [akTop, akRight]
Caption = 'Cancel'
ChildOrder = 7
ElementClassName = 'btn btn-secondary'
......@@ -210,6 +218,7 @@ object FSetStatus: TFSetStatus
Height = 22
HelpType = htKeyword
TabStop = False
Anchors = [akLeft, akTop, akRight]
ChildOrder = 8
ElementClassName = 'form-control'
ElementFont = efCSS
......@@ -230,6 +239,7 @@ object FSetStatus: TFSetStatus
Top = 192
Width = 145
Height = 22
Anchors = [akTop, akRight]
BorderStyle = bsSingle
ChildOrder = 1
Color = clWhite
......@@ -242,6 +252,7 @@ object FSetStatus: TFSetStatus
Top = 164
Width = 145
Height = 22
Anchors = [akTop, akRight]
BorderStyle = bsSingle
ChildOrder = 1
Color = clWhite
......@@ -254,6 +265,7 @@ object FSetStatus: TFSetStatus
Top = 136
Width = 145
Height = 22
Anchors = [akTop, akRight]
BorderStyle = bsSingle
ChildOrder = 1
Color = clWhite
......@@ -266,6 +278,7 @@ object FSetStatus: TFSetStatus
Top = 108
Width = 145
Height = 22
Anchors = [akTop, akRight]
BorderStyle = bsSingle
ChildOrder = 1
Color = clWhite
......
......@@ -56,6 +56,7 @@ begin
Close;
end;
function TFSetStatus.Verify: Boolean;
var
input: TJSHTMLElement;
......@@ -103,11 +104,13 @@ begin
end;
end;
procedure TFSetStatus.dtpDateChange(Sender: TObject);
begin
SetDueDates();
end;
procedure TFSetStatus.WebFormShow(Sender: TObject);
var
ItemsToRemove: TStringList;
......@@ -166,6 +169,7 @@ begin
SetDueDates();
end;
procedure TFSetStatus.SetDueDates();
begin
if OrderType = 'corrugated plate' then
......@@ -242,6 +246,7 @@ begin
end;
end;
function TFSetStatus.GetNextDate(CurrDate: TDateTime): TDateTime;
var
DOW: integer;
......@@ -257,4 +262,5 @@ begin
console.log(CurrDate);
end;
end.
\ No newline at end of file
......@@ -139,18 +139,19 @@ uses
procedure TApiDatabase.DataModuleCreate(Sender: TObject);
begin
Logger.Log( 1, 'TApiDatabase.DataModuleCreate' );
Logger.Log( 5, 'TApiDatabase.DataModuleCreate' );
LoadDatabaseSettings( ucKG, 'kgOrdersServer.ini' );
try
ucKG.Connect;
except
on E: Exception do
begin
Logger.Log(2, '--TApiDatabase.DataModuleCreate -Error connecting to database: ' + E.Message);
Logger.Log( 1, '--TApiDatabase.DataModuleCreate -Error connecting to database: ' + E.Message );
end;
end;
end;
class procedure TApiDatabase.ExecSQL(const SQL: string);
var
DB: TApiDatabase;
......@@ -164,9 +165,11 @@ begin
end;
end;
procedure TApiDatabase.uqUsersCalcFields(DataSet: TDataSet);
begin
uqUsersREPRESENTATIVE.AsString := uqUsersNAME.AsString + '(' + uqUsersSTATUS.AsString + ')';
end;
end.
......@@ -49,21 +49,23 @@ uses
procedure TAuthDatabase.DataModuleCreate(Sender: TObject);
begin
Logger.Log( 1, 'TAuthDatabase.DataModuleCreate' );
Logger.Log( 5, 'TAuthDatabase.DataModuleCreate' );
LoadDatabaseSettings( ucKG, 'kgOrdersServer.ini' );
try
ucKG.Connect;
except
on E: Exception do
begin
Logger.Log(2, '--TAuthDatabase.DataModuleCreate -Error connecting to database: ' + E.Message);
Logger.Log( 1, '--TAuthDatabase.DataModuleCreate -Error connecting to database: ' + E.Message );
end;
end;
end;
procedure TAuthDatabase.DataModuleDestroy(Sender: TObject);
begin
ucKG.Connected := false;
Logger.Log( 5, 'TAuthDatabase.DataModuleDestroy' );
end;
......
......@@ -65,10 +65,10 @@ begin
Logger.Log(1, '-- webAppFolder: ' + serverConfig.webAppFolder + IfThen(serverConfig.webAppFolder = 'static', ' [default]', ' [from config]'));
Logger.Log(1, '-- serverConfig.reportsFolder: ' + serverConfig.reportsFolder);
if not DirectoryExists(serverConfig.reportsFolder + 'reports\') then
if not DirectoryExists(serverConfig.reportsFolder) then
begin
ForceDirectories(serverConfig.reportsFolder + 'reports\');
Logger.Log(1, '-- Reports directory created: ' + serverConfig.reportsFolder + 'reports\');
ForceDirectories(serverConfig.reportsFolder);
Logger.Log(1, '-- Reports directory created: ' + serverConfig.reportsFolder);
end;
Logger.Log(1, '--LoadServerConfig - end');
......@@ -85,11 +85,11 @@ begin
adminPassword := 'whatisthisusedfor';
jwtTokenSecret := 'super_secret0123super_secret4567';
webAppFolder := 'static';
reportsFolder := 'static\';
reportsFolder := 'static\reports\';
ServerConfigStr := Bcl.Json.TJson.Serialize(ServerConfig);
Logger.Log(1, '--ServerConfigSerialize: ' + ServerConfigStr);
Logger.Log(1, '--TServerConfig.Create - end');
end;
end.
......@@ -116,11 +116,11 @@ begin
procedure(Resp: THttpServerResponse)
begin
if (Resp.StatusCode >= 400) and (Resp.StatusCode <= 499) then
FLogger.Log(5, Format('%d %s on %s', [Resp.StatusCode, Resp.StatusReason, RequestLogMessage]));
FLogger.Log(3, Format('%d %s on %s', [Resp.StatusCode, Resp.StatusReason, RequestLogMessage]));
end
);
RequestLogMessage := GetNewHttpRequestLog(Context.Request).GetMessage;
FLogger.Log(5, RequestLogMessage);
FLogger.Log(3, RequestLogMessage);
Next(Context);
end;
......
// Implementation of the Lookup Service interface used to send information
// to the client. Very overcrowded. Probably should move SQL functions to new
// file.
// Authors:
// Authors:
// Cameron Hayes
// Mac Stephens
// Elias Sarraf
......@@ -253,19 +250,18 @@ begin
estimateJSON.AddPair('ShipDate', ordersDB.UniQuery1.FieldByName('staff_fields_ship_date').AsString)
end;
logger.Log(5, 'estimateJSON finished construction');
//logger.Log(5, 'estimateJSON finished construction');
restClient.BaseURL := 'https://sandbox-quickbooks.api.intuit.com';
restRequest.Client := restClient;
restRequest.Response := restResponse;
if iniFile.ReadString('Quickbooks', 'LastRefresh', '') = '' then
LastRefresh := 0
else
LastRefresh := StrToDateTime(iniFile.ReadString('Quickbooks', 'LastRefresh', ''));
LastRefresh := 0
else
LastRefresh := StrToDateTime(iniFile.ReadString('Quickbooks', 'LastRefresh', ''));
if MinutesBetween(Now, LastRefresh) > 58 then
RefreshAccessToken();
......@@ -347,6 +343,7 @@ begin
end;
end;
procedure TLookupService.AfterConstruction;
begin
inherited;
......@@ -361,12 +358,14 @@ begin
end;
end;
procedure TLookupService.BeforeDestruction;
begin
ordersDB.Free;
inherited;
end;
function TLookupService.DelShippingAddress(AddressID, CustomerID: string): TJSONObject;
var
SQL: string;
......@@ -545,6 +544,7 @@ begin
end;
end;
function TLookupService.GetRepUsers: TList<TUserItem>;
// Gets a list of users that qualify to be reps for companies
var
......@@ -643,8 +643,6 @@ begin
mode := JSONData.GetValue<string>('mode');
CustomerID := JSONData.GetValue<string>('customer_id');
if mode = 'ADD' then
SQL := 'select * from customers_ship where customer_id = 0 and customer_id <> 0'
else
......@@ -718,6 +716,7 @@ begin
end;
end;
function TLookupService.AddCustomer(customerInfo: string): TJSONObject;
var
JSONData: TJSONObject;
......@@ -772,7 +771,6 @@ begin
unique := true
else
unique := false;
end;
if unique then
......@@ -837,6 +835,7 @@ begin
end;
end;
function TLookupService.GenerateOrderCorrugatedPDF(orderID: string): string;
var
SQL: string;
......@@ -866,6 +865,7 @@ begin
end;
end;
function TLookupService.GenerateOrderWebPDF(orderID: string): string;
var
SQL: string;
......@@ -896,6 +896,7 @@ begin
end;
end;
function TLookupService.GenerateOrderCuttingPDF(orderID: string): string;
var
SQL: string;
......@@ -925,6 +926,7 @@ begin
end;
end;
function TLookupService.generateSubQuery(currStatus: string): string;
// Generates the subquery in order to retrieve all the status due/done dates
// This must be a subquery because there are at most 5 different entries which
......@@ -940,6 +942,7 @@ begin
quotedStr(currStatus) + ' order by os.STATUS_TIMESTAMP desc LIMIT 1) AS ' + currStatus + '_DONE, ';
end;
function TLookupService.generateStatusSelectSQL(statusTableShort: string; statusTableLong: string; startDate: string; endDate: string; statusType: string): string;
// Generates the SQL query to figure out whether or not an entry exists within
// a given time frame.
......@@ -965,6 +968,7 @@ begin
result := result + ' AND STATUS_DATE IS NOT NULL)';
end;
function TLookupService.createStatusSearchInfo(params: TStringList; statusNum: string): TStatusSearchInfo;
// Takes all the status info received from the client and puts it into an object
// for convenience and to make it easier to expand. Returns said object.
......@@ -1023,6 +1027,7 @@ begin
end;
end;
function TLookupService.generateStatusWhereSQL(status: TStatusSearchInfo): string;
// Generates the where SQL for each status to apply the filters used from the
// clients search.
......@@ -1062,6 +1067,7 @@ begin
end;
end;
function TLookupService.generateOrdersSQL(searchOptions: string): TSQLQuery;
// Generates the orderSQL to retrieve entries specified by the search recieved
// from the client.
......@@ -1172,6 +1178,7 @@ begin
end;
end;
function TLookupService.getColorCount(colors: string): string;
// Colors are stored in a JSON in the database so this function parses the
// stringified JSON and returns the count of colors.
......@@ -2266,7 +2273,7 @@ begin
Result.AddPair('msg', 'Success: Item successfully edited');
end
else
result.AddPair('msg', 'Failure: Item does not exist');
Result.AddPair('msg', 'Failure: Item does not exist');
logger.Log(4, result.GetValue('msg').Value);
end;
......
......@@ -66,6 +66,7 @@ begin
end);
end;
procedure TFMain.btnDataClick(Sender: TObject);
begin
FData := TFData.Create( self );
......@@ -73,11 +74,13 @@ begin
FData.Free;
end;
procedure TFMain.btnExitClick(Sender: TObject);
begin
Close;
end;
procedure TFMain.btnQBClick(Sender: TObject);
begin
FQB := TfQB.Create( self );
......@@ -85,6 +88,7 @@ begin
FQB.Free;
end;
procedure TFMain.btnAuthSwaggerUIClick(Sender: TObject);
begin
ShellExecute(Handle, 'open', PChar(TSparkleUtils.CombineUrlFast(AuthServerModule.XDataServer.BaseUrl, 'swaggerui')), nil, nil, SW_SHOWNORMAL);
......@@ -95,6 +99,7 @@ begin
ShellExecute(Handle, 'open', PChar(TSparkleUtils.CombineUrlFast(ApiServerModule.XDataServer.BaseUrl, 'swaggerui')), nil, nil, SW_SHOWNORMAL);
end;
procedure TFMain.initTimerTimer(Sender: TObject);
begin
initTimer.Enabled := False;
......@@ -104,6 +109,7 @@ begin
StartServers;
end;
procedure TFMain.StartServers;
// Reads from the ini file to figure out what IP the database is located at and
// whether or not Twilio automatic updates should be enabled
......@@ -144,7 +150,7 @@ begin
else
Logger.Log( 1, '--Settings->LogFileNum: ' + IntToStr(StrToInt(iniStr) - 1) );
iniStr := iniFile.ReadString( 'Settings', 'WebClientVersion', '' );
iniStr := iniFile.ReadString( 'Settings', 'webClientVersion', '' );
if iniStr.IsEmpty then
Logger.Log( 1, '--Settings->WebClientVersion: Entry not found - ERROR: ini entry required!!!')
else
......@@ -235,6 +241,7 @@ begin
UpdateGUI;
end;
procedure TFMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ServerConfig.Free;
......@@ -243,6 +250,7 @@ begin
AppServerModule.Free;
end;
procedure TFMain.UpdateGUI;
begin
if AuthServerModule.SparkleHttpSysDispatcher.Active then
......@@ -256,4 +264,5 @@ begin
memoInfo.Lines.Add( 'ApiServer stopped' );
end;
end.
......@@ -133,18 +133,18 @@ implementation
{$R *.dfm}
uses
uLibrary, Common.Config, XData.Sys.Exceptions;
uLibrary, Common.Config;
procedure TrptOrderCorrugated.DataModuleCreate(Sender: TObject);
begin
Logger.Log( 1, 'TAuthDatabase.DataModuleCreate' );
Logger.Log( 5, 'TrptOrderCorrugated.DataModuleCreate' );
LoadDatabaseSettings( ucKG, 'kgOrdersServer.ini' );
try
ucKG.Connect;
except
on E: Exception do
begin
Logger.Log(2, '--TrptOrderList.DataModuleCreate -Error connecting to database: ' + E.Message);
Logger.Log( 1, '--TrptOrderCorrugated.DataModuleCreate -Error connecting to database: ' + E.Message );
end;
end;
end;
......@@ -158,7 +158,7 @@ var
colorsString: string;
i: Integer;
begin
logger.Log(5, 'Adding Color Rows');
logger.Log( 5, 'TrptOrderCorrugated.PopulateColorTable' );
colorsString := uqOrderCorrugated.FieldByName('colors_colors').AsString;
colorsObject := TJSONObject.ParseJSONValue(colorsString) as TJSONObject;
......@@ -181,30 +181,27 @@ end;
function TrptOrderCorrugated.PrepareReport(SQL: string): string;
begin
Logger.Log(5, 'Generated SQL for Prepare Report: ' + SQL);
Logger.Log( 5, 'TrptOrderCorrugated.PrepareReport - SQL: ' + SQL );
doQuery(uqOrderCorrugated, SQL);
if ( string( uqOrderCorrugated.FieldByName('colors_colors').AsString ) ) <> '' then
begin
PopulateColorTable();
end;
result := GeneratePDF;
Logger.Log(5, 'Report preparation complete.');
end;
function TrptOrderCorrugated.GeneratePDF: string;
var
ReportDir, ReportFileName: string;
reportsDir, reportFileName: string;
reportURL: string;
begin
ReportDir := ServerConfig.reportsFolder;
reportURL := 'reports/' + FormatDateTime('yyyymmdd_hhnnss', Now) + '.pdf';
reportsDir := ServerConfig.reportsFolder;
reportFileName := FormatDateTime('yyyymmdd_hhnnss', Now) + '.pdf';
reportURL := 'reports\' + reportFilename;
ReportFileName := reportDir + reportUrl;
frxPDFExport1.FileName := ReportFileName;
frxPDFExport1.FileName := reportsDir + reportFileName;
frxPDFExport1.ShowDialog := False;
try
frxOrderCorrugated.PrepareReport;
......@@ -216,9 +213,9 @@ begin
end;
Logger.Log(5, 'PDF saved to: ' + ReportFileName);
Logger.Log( 4, 'TrptOrderCorrugated.GeneratePDF - PDF saved to: ' + reportFileName );
result := reportURL;
end;
end.
......@@ -60,7 +60,7 @@ var
implementation
uses
uLibrary, Common.Config, XData.Sys.Exceptions;
uLibrary, Common.Config;
{%CLASSGROUP 'Vcl.Controls.TControl'}
......@@ -68,41 +68,38 @@ uses
procedure TrptOrderCutting.DataModuleCreate(Sender: TObject);
begin
Logger.Log( 1, 'TAuthDatabase.DataModuleCreate' );
Logger.Log( 5, 'TrptOrderCutting.DataModuleCreate' );
LoadDatabaseSettings( ucKG, 'kgOrdersServer.ini' );
try
ucKG.Connect;
except
on E: Exception do
begin
Logger.Log(2, '--TrptOrderList.DataModuleCreate -Error connecting to database: ' + E.Message);
Logger.Log( 1, '--TrptOrderCutting.DataModuleCreate -Error connecting to database: ' + E.Message );
end;
end;
end;
function TrptOrderCutting.PrepareReport(SQL: string): string;
begin
Logger.Log(3, 'Generated SQL for Prepare Report: ' + SQL);
Logger.Log( 5, 'TrptOrderCutting.PrepareReport - SQL: ' + SQL );
doQuery(uqOrderCutting, SQL);
result := GeneratePDF;
Logger.Log(5, 'Report preparation complete.');
end;
function TrptOrderCutting.GeneratePDF: string;
var
ReportDir, ReportFileName: string;
reportsDir, reportFileName: string;
reportURL: string;
begin
ReportDir := ServerConfig.reportsFolder;
reportURL := 'reports\' + FormatDateTime('yyyymmdd_hhnnss', Now) + '.pdf';
ReportFileName := reportDir + reportUrl;
reportsDir := ServerConfig.reportsFolder;
reportFileName := FormatDateTime('yyyymmdd_hhnnss', Now) + '.pdf';
reportURL := 'reports\' + reportFilename;
frxPDFExport1.FileName := ReportFileName;
frxPDFExport1.FileName := reportsDir + reportFileName;
frxPDFExport1.ShowDialog := False;
try
frxOrderCutting.PrepareReport;
......@@ -112,7 +109,7 @@ begin
frxOrderCutting.Clear; // Clears the report to avoid memory bloat
end;
Logger.Log(5, 'PDF saved to: ' + ReportFileName);
Logger.Log( 4, 'TrptOrderWeb.GeneratePDF - PDF saved to: ' + reportFileName );
result := reportURL;
end;
......
......@@ -59,7 +59,7 @@ var
implementation
uses
uLibrary, Common.Config, XData.Sys.Exceptions;
uLibrary, Common.Config;
{%CLASSGROUP 'Vcl.Controls.TControl'}
......@@ -67,14 +67,14 @@ uses
procedure TrptOrderList.DataModuleCreate(Sender: TObject);
begin
Logger.Log( 1, 'TAuthDatabase.DataModuleCreate' );
Logger.Log( 5, 'TrptOrderList.DataModuleCreate' );
LoadDatabaseSettings( ucKG, 'kgOrdersServer.ini' );
try
ucKG.Connect;
except
on E: Exception do
begin
Logger.Log(2, '--TrptOrderList.DataModuleCreate -Error connecting to database: ' + E.Message);
Logger.Log( 1, '--TrptOrderList.DataModuleCreate -Error connecting to database: ' + E.Message );
end;
end;
end;
......@@ -104,15 +104,12 @@ begin
uqOrdersORDER_DATE.AsDateTime := RecodeSecond(uqOrdersORDER_DATE.AsDateTime, 0);
uqOrders.Post;
//FormatDateTime('yyyy-mm-dd hh:nn', myDate);
result := GeneratePDF;
Logger.Log(5, 'Report preparation complete.');
end;
procedure TrptOrderList.uqOrdersCalcFields(DataSet: TDataSet);
var
ColorType: string;
......@@ -140,7 +137,7 @@ begin
jsonStr := uqColors.FieldByName(ColorType).AsString;
DataSet.FieldByName('COLORS').AsString := getColorCount(jsonStr);
finally
uqColors.Close; // Ensure it is closed
uqColors.Close;
end;
if uqOrdersORDER_DATE.AsString <> '' then
......@@ -174,7 +171,7 @@ begin
uqOrdersNEW_SHIP_DONE.AsString := '';
end;
//create new field called color count
function TrptOrderList.getColorCount(colors: string): string;
var
colorObject: TJSONObject;
......@@ -194,18 +191,17 @@ begin
end;
end;
function TrptOrderList.GeneratePDF: string;
var
ReportDir, ReportFileName: string;
reportsDir, reportFileName: string;
reportURL: string;
begin
ReportDir := ServerConfig.reportsFolder;
reportsDir := ServerConfig.reportsFolder;
reportFileName := FormatDateTime('yyyymmdd_hhnnss', Now) + '.pdf';
reportURL := 'reports\' + reportFilename;
reportURL := 'reports/' + FormatDateTime('yyyymmdd_hhnnss', Now) + '.pdf';
ReportFileName := reportDir + reportUrl;
frxPDFExport1.FileName := ReportFileName;
frxPDFExport1.FileName := reportsDir + reportFileName;
frxPDFExport1.ShowDialog := False;
try
frxOrderList.PrepareReport;
......@@ -215,9 +211,10 @@ begin
frxOrderList.Clear; // Clears the report to avoid memory bloat
end;
Logger.Log(5, 'PDF saved to: ' + ReportFileName);
Logger.Log( 4, 'TrptOrderList.GeneratePDF - PDF saved to: ' + reportFileName );
result := reportURL;
end;
end.
......@@ -132,18 +132,18 @@ implementation
{$R *.dfm}
uses
uLibrary, Common.Config, XData.Sys.Exceptions;
uLibrary, Common.Config;
procedure TrptOrderWeb.DataModuleCreate(Sender: TObject);
begin
Logger.Log( 1, 'TAuthDatabase.DataModuleCreate' );
Logger.Log( 5, 'TrptOrderWeb.DataModuleCreate' );
LoadDatabaseSettings( ucKG, 'kgOrdersServer.ini' );
try
ucKG.Connect;
except
on E: Exception do
begin
Logger.Log(2, '--TrptOrderList.DataModuleCreate -Error connecting to database: ' + E.Message);
Logger.Log( 1, '--TrptOrderWeb.DataModuleCreate -Error connecting to database: ' + E.Message );
end;
end;
end;
......@@ -157,7 +157,7 @@ var
colorsString: string;
i: Integer;
begin
logger.Log(5, 'Adding Color Rows');
logger.Log( 5, 'TrptOrderWeb.PopulateColorTable' );
colorsString := uqOrderWeb.FieldByName('quantity_and_colors_qty_colors').AsString;
colorsObject := TJSONObject.ParseJSONValue(colorsString) as TJSONObject;
......@@ -180,7 +180,7 @@ end;
function TrptOrderWeb.PrepareReport(SQL: string): string;
begin
Logger.Log(3, 'Generated SQL for Prepare Report: ' + SQL);
Logger.Log( 5, 'TrptOrderWeb.PrepareReport - SQL: ' + SQL );
doQuery(uqOrderWeb, SQL);
if ( string( uqOrderWeb.FieldByName('quantity_and_colors_qty_colors').AsString ) ) <> '' then
......@@ -188,23 +188,19 @@ begin
PopulateColorTable();
end;
result := GeneratePDF;
Logger.Log(3, 'Report preparation complete.');
end;
function TrptOrderWeb.GeneratePDF: string;
var
ReportDir, ReportFileName: string;
reportsDir, reportFileName: string;
reportURL: string;
begin
ReportDir := ServerConfig.reportsFolder;
reportURL := 'reports\' + FormatDateTime('yyyymmdd_hhnnss', Now) + '.pdf';
ReportFileName := reportDir + reportUrl;
reportsDir := ServerConfig.reportsFolder;
reportFileName := FormatDateTime('yyyymmdd_hhnnss', Now) + '.pdf';
reportURL := 'reports\' + reportFilename;
frxPDFExport1.FileName := ReportFileName;
frxPDFExport1.FileName := reportsDir + reportFileName;
frxPDFExport1.ShowDialog := False;
try
frxOrderWeb.PrepareReport;
......@@ -213,7 +209,7 @@ begin
frxOrderWeb.Clear; // Clears the report to avoid memory bloat
end;
Logger.Log(5, 'PDF saved to: ' + ReportFileName);
Logger.Log( 4, 'TrptOrderWeb.GeneratePDF - PDF saved to: ' + reportFileName );
result := reportURL;
end;
......
[Settings]
MemoLogLevel=5
FileLogLevel=5
webClientVersion=0.9.11
LogFileNum=205
webClientVersion=0.9.12
LogFileNum=106
[Database]
--Server=192.168.116.132
Server=192.168.116.132
--Server=192.168.102.129
--Server=192.168.75.133
Server=192.168.159.10
--Server=192.168.159.10
--Database=kg_order_entry
--Username=root
--Password=emsys01
......
......@@ -3,5 +3,5 @@
"jwtTokenSecret": "super_secret0123super_secret4567",
"adminPassword": "whatisthisusedfor",
"webAppFolder": "static",
"reportsFolder": ".\\static\\"
"reportsFolder": ".\\static\\reports\\"
}
\ No newline at end of file
......@@ -114,10 +114,10 @@
<VerInfo_Locale>1033</VerInfo_Locale>
<DCC_ExeOutput>.\bin</DCC_ExeOutput>
<DCC_UnitSearchPath>C:\RADTOOLS\FastMM4;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
<VerInfo_Keys>CompanyName=EM Systems;FileDescription=$(MSBuildProjectName);FileVersion=0.9.11.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=0.9.11;Comments=</VerInfo_Keys>
<VerInfo_Keys>CompanyName=EM Systems;FileDescription=$(MSBuildProjectName);FileVersion=0.9.12.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=0.9.11;Comments=</VerInfo_Keys>
<VerInfo_MajorVer>0</VerInfo_MajorVer>
<VerInfo_MinorVer>9</VerInfo_MinorVer>
<VerInfo_Release>11</VerInfo_Release>
<VerInfo_Release>12</VerInfo_Release>
</PropertyGroup>
<PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
<AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment