Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
kgOrders
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Cam Hayes
kgOrders
Commits
32d4033d
Commit
32d4033d
authored
Mar 30, 2026
by
Cam Hayes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Got QB ID to be unique and fixed the error modal to hide the spinner and remain on the form
parent
151f60b4
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
107 additions
and
110 deletions
+107
-110
Utils.pas
kgOrdersClient/Utils.pas
+3
-1
View.Customer.Add.html
kgOrdersClient/View.Customer.Add.html
+2
-2
View.Customer.Select.dfm
kgOrdersClient/View.Customer.Select.dfm
+22
-22
View.Customer.Select.pas
kgOrdersClient/View.Customer.Select.pas
+3
-0
View.Customers.dfm
kgOrdersClient/View.Customers.dfm
+12
-12
View.Customers.pas
kgOrdersClient/View.Customers.pas
+0
-3
View.Item.Add.pas
kgOrdersClient/View.Item.Add.pas
+3
-0
View.Items.pas
kgOrdersClient/View.Items.pas
+1
-10
View.Main.html
kgOrdersClient/View.Main.html
+1
-1
View.OrderEntryCorrugated.pas
kgOrdersClient/View.OrderEntryCorrugated.pas
+0
-8
View.OrderEntryCuttingDie.pas
kgOrdersClient/View.OrderEntryCuttingDie.pas
+0
-8
View.OrderEntryWeb.pas
kgOrdersClient/View.OrderEntryWeb.pas
+0
-8
View.QBInfo.dfm
kgOrdersClient/View.QBInfo.dfm
+12
-12
View.QBInfo.pas
kgOrdersClient/View.QBInfo.pas
+3
-0
View.User.Add.pas
kgOrdersClient/View.User.Add.pas
+6
-0
Auth.ServiceImpl.pas
kgOrdersServer/Source/Auth.ServiceImpl.pas
+0
-9
Lookup.ServiceImpl.pas
kgOrdersServer/Source/Lookup.ServiceImpl.pas
+39
-9
Main.pas
kgOrdersServer/Source/Main.pas
+0
-5
No files found.
kgOrdersClient/Utils.pas
View file @
32d4033d
...
...
@@ -91,6 +91,7 @@ end;
procedure
ShowErrorModal
(
msg
:
string
);
begin
HideSpinner
(
'spinner'
);
asm
var
modal
=
document
.
getElementById
(
'main_errormodal'
);
var
label
=
document
.
getElementById
(
'main_lblmodal_body'
);
...
...
@@ -106,7 +107,8 @@ begin
// Bind hard reload to button
if
(
reloadBtn
)
{
reloadBtn.onclick = function () {
window.location.reload(true); // hard reload, bypass cache
//window.location.reload(true); // hard reload, bypass cache
bsModal.hide();
}
;
}
...
...
kgOrdersClient/View.Customer.Add.html
View file @
32d4033d
...
...
@@ -61,10 +61,10 @@
</div>
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Territory
:
</label>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Representative
:
</label>
<input
id=
"edtrepuser"
type=
"text"
class=
"form-control"
style=
"width: 150px"
/>
<div
class=
"invalid-feedback"
id=
"territorywarning"
style=
"font-size: 15px;"
>
Territory
not found in kgOrders
Representative
not found in kgOrders
</div>
</div>
</div>
...
...
kgOrdersClient/View.Customer.Select.dfm
View file @
32d4033d
...
...
@@ -9,8 +9,8 @@ object FSelectCustomer: TFSelectCustomer
Width = 95
Height = 15
Caption = 'Search Customers'
HeightPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
WidthPercent = 100.00000000000000000
0
end
object WebLabel2: TWebLabel
Left = 279
...
...
@@ -18,8 +18,8 @@ object FSelectCustomer: TFSelectCustomer
Width = 134
Height = 15
Caption = 'Selected Customer Name'
HeightPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
WidthPercent = 100.00000000000000000
0
end
object WebLabel3: TWebLabel
Left = 131
...
...
@@ -27,8 +27,8 @@ object FSelectCustomer: TFSelectCustomer
Width = 113
Height = 15
Caption = 'Selected Customer ID'
HeightPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
WidthPercent = 100.00000000000000000
0
end
object edtSearch: TWebEdit
Left = 4
...
...
@@ -36,8 +36,8 @@ object FSelectCustomer: TFSelectCustomer
Width = 121
Height = 22
ChildOrder = 2
HeightPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
WidthPercent = 100.00000000000000000
0
OnChange = edtSearchChange
end
object edtName: TWebEdit
...
...
@@ -47,8 +47,8 @@ object FSelectCustomer: TFSelectCustomer
Height = 22
ChildOrder = 1
Enabled = False
HeightPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
WidthPercent = 100.00000000000000000
0
end
object TMSFNCGrid1: TTMSFNCGrid
Left = 0
...
...
@@ -59,7 +59,7 @@ object FSelectCustomer: TFSelectCustomer
ParentDoubleBuffered = False
DoubleBuffered = True
TabOrder = 2
DefaultRowHeight = 40.00000000000000000
DefaultRowHeight = 40.00000000000000000
0
FixedColumns = 0
ColumnCount = 4
Options.Bands.Enabled = True
...
...
@@ -85,7 +85,7 @@ object FSelectCustomer: TFSelectCustomer
Font.Name = 'Segoe UI'
Font.Style = []
ID = ''
Width = 90.00000000000000000
Width = 90.00000000000000000
0
end
item
BorderWidth = 1
...
...
@@ -100,7 +100,7 @@ object FSelectCustomer: TFSelectCustomer
Font.Name = 'Segoe UI'
Font.Style = []
ID = ''
Width = 150.00000000000000000
Width = 150.00000000000000000
0
end
item
BorderWidth = 1
...
...
@@ -115,7 +115,7 @@ object FSelectCustomer: TFSelectCustomer
Font.Name = 'Segoe UI'
Font.Style = []
ID = ''
Width = 400.00000000000000000
Width = 400.00000000000000000
0
end
item
BorderWidth = 1
...
...
@@ -130,7 +130,7 @@ object FSelectCustomer: TFSelectCustomer
Font.Name = 'Segoe UI'
Font.Style = []
ID = ''
Width = 106.00000000000000000
Width = 106.00000000000000000
0
end
item
BorderWidth = 1
...
...
@@ -145,7 +145,7 @@ object FSelectCustomer: TFSelectCustomer
Font.Name = 'Segoe UI'
Font.Style = []
ID = ''
Width = 1.00000000000000000
Width = 1.00000000000000000
0
end>
DefaultFont.Charset = DEFAULT_CHARSET
DefaultFont.Color = clWindowText
...
...
@@ -215,8 +215,8 @@ object FSelectCustomer: TFSelectCustomer
Height = 25
Caption = 'Cancel'
ChildOrder = 5
HeightPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
WidthPercent = 100.00000000000000000
0
OnClick = btnCancelClick
end
object btnConfirm: TWebButton
...
...
@@ -226,8 +226,8 @@ object FSelectCustomer: TFSelectCustomer
Height = 25
Caption = 'Select'
ChildOrder = 5
HeightPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
WidthPercent = 100.00000000000000000
0
OnClick = btnConfirmClick
end
object edtID: TWebEdit
...
...
@@ -237,8 +237,8 @@ object FSelectCustomer: TFSelectCustomer
Height = 22
ChildOrder = 1
Enabled = False
HeightPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
WidthPercent = 100.00000000000000000
0
end
object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection
...
...
kgOrdersClient/View.Customer.Select.pas
View file @
32d4033d
...
...
@@ -125,8 +125,11 @@ begin
PopulateGridManually
;
except
on
E
:
EXDataClientRequestException
do
begin
Close
();
Utils
.
ShowErrorModal
(
E
.
ErrorResult
.
ErrorMessage
);
end
;
end
;
end
;
...
...
kgOrdersClient/View.Customers.dfm
View file @
32d4033d
...
...
@@ -13,8 +13,8 @@ object FViewCustomers: TFViewCustomers
ElementID = 'lblentries'
ElementFont = efCSS
HeightStyle = ssAuto
HeightPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
WidthPercent = 100.00000000000000000
0
end
object btnAddCustomer: TWebButton
Left = 12
...
...
@@ -26,10 +26,10 @@ object FViewCustomers: TFViewCustomers
ElementID = 'btnaddcustomer'
ElementFont = efCSS
HeightStyle = ssAuto
HeightPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
TabOrder = 6
TabStop = False
WidthPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
0
OnClick = btnAddCustomerClick
end
object wcbPageSize: TWebComboBox
...
...
@@ -41,9 +41,9 @@ object FViewCustomers: TFViewCustomers
ElementID = 'wcbpagesize'
ElementFont = efCSS
HeightStyle = ssAuto
HeightPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
Text = '50'
WidthPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
0
OnChange = wcbPageSizeChange
ItemIndex = -1
Items.Strings = (
...
...
@@ -66,8 +66,8 @@ object FViewCustomers: TFViewCustomers
Height = 15
Caption = 'Message'
ElementID = 'view.login.message.label'
HeightPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
WidthPercent = 100.00000000000000000
0
end
object btnCloseNotification: TWebButton
Left = 96
...
...
@@ -76,8 +76,8 @@ object FViewCustomers: TFViewCustomers
Height = 25
ChildOrder = 1
ElementID = 'view.login.message.button'
HeightPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
WidthPercent = 100.00000000000000000
0
end
end
object wdbtcCustomers: TWebDBTableControl
...
...
@@ -139,8 +139,8 @@ object FViewCustomers: TFViewCustomers
Height = 22
ChildOrder = 5
ElementID = 'edtfilter'
HeightPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
WidthPercent = 100.00000000000000000
0
OnChange = edtFilterChange
end
object XDataWebClient1: TXDataWebClient
...
...
kgOrdersClient/View.Customers.pas
View file @
32d4033d
...
...
@@ -177,10 +177,7 @@ end;
procedure
TFViewCustomers
.
btnAddCustomerClick
(
Sender
:
TObject
);
begin
if
AuthService
.
TokenPayload
.
Properties
[
'qb_enabled'
]
then
ShowSelectCustomerForm
()
else
ShowNotificationModal
(
'QuickBooks interface is not currently active'
);
end
;
procedure
TFViewCustomers
.
edtFilterChange
(
Sender
:
TObject
);
...
...
kgOrdersClient/View.Item.Add.pas
View file @
32d4033d
...
...
@@ -123,8 +123,11 @@ begin
//Utils.HideSpinner('spinner');
except
on
E
:
EXDataClientRequestException
do
begin
Close
();
Utils
.
ShowErrorModal
(
E
.
ErrorResult
.
ErrorMessage
);
end
;
end
;
Utils
.
HideSpinner
(
'spinner'
);
end
;
...
...
kgOrdersClient/View.Items.pas
View file @
32d4033d
...
...
@@ -442,8 +442,6 @@ var
itemOptions
:
string
;
newform
:
TFViewAddItem
;
begin
if
AuthService
.
TokenPayload
.
Properties
[
'qb_enabled'
]
then
begin
newform
:=
TFViewAddItem
.
CreateNew
;
newform
.
Caption
:=
'Select Item to Add'
;
...
...
@@ -472,9 +470,7 @@ begin
end
;
end
);
end
else
ShowNotificationModal
(
'QuickBooks interface is not currently active.'
);
end
end
;
procedure
TFViewItems
.
btnCancelClick
(
Sender
:
TObject
);
...
...
@@ -511,12 +507,7 @@ var
itemOptions
:
string
;
newform
:
TFViewAddItem
;
begin
if
AuthService
.
TokenPayload
.
Properties
[
'qb_enabled'
]
then
begin
UpdateItem
();
end
else
ShowNotificationModal
(
'QuickBooks interface is not currently active.'
);
end
;
procedure
TFViewItems
.
UpdateItem
();
...
...
kgOrdersClient/View.Main.html
View file @
32d4033d
...
...
@@ -95,7 +95,7 @@
Please contact EMSystems to solve the issue.
</div>
<div
class=
"modal-footer justify-content-center"
>
<button
type=
"button"
id=
"btn_modal_restart"
class=
"btn btn-primary"
>
Back to Orders
</button>
<button
type=
"button"
id=
"btn_modal_restart"
class=
"btn btn-primary"
>
Close
</button>
</div>
</div>
</div>
...
...
kgOrdersClient/View.OrderEntryCorrugated.pas
View file @
32d4033d
...
...
@@ -391,14 +391,6 @@ var
orderJSON
:
TJSONObject
;
qbEnabled
:
boolean
;
begin
qbEnabled
:=
boolean
(
AuthService
.
TokenPayload
.
Properties
[
'qb_enabled'
]);
if
not
qbEnabled
then
begin
ShowToast
(
'QB interface not currently active'
,
'info'
);
Exit
;
end
;
if
JS
.
toString
(
AuthService
.
TokenPayload
.
Properties
[
'user_qb_id'
])
<>
''
then
begin
if
(
VerifyQBOrder
()
)
then
...
...
kgOrdersClient/View.OrderEntryCuttingDie.pas
View file @
32d4033d
...
...
@@ -195,14 +195,6 @@ var
orderJSON
:
TJSONObject
;
qbEnabled
:
boolean
;
begin
qbEnabled
:=
boolean
(
AuthService
.
TokenPayload
.
Properties
[
'qb_enabled'
]);
if
not
qbEnabled
then
begin
ShowToast
(
'QB interface not currently active'
,
'info'
);
Exit
;
end
;
if
JS
.
toString
(
AuthService
.
TokenPayload
.
Properties
[
'user_qb_id'
])
<>
''
then
begin
if
(
VerifyQBOrder
()
)
then
...
...
kgOrdersClient/View.OrderEntryWeb.pas
View file @
32d4033d
...
...
@@ -455,14 +455,6 @@ var
orderJSON
:
TJSONObject
;
qbEnabled
:
boolean
;
begin
qbEnabled
:=
boolean
(
AuthService
.
TokenPayload
.
Properties
[
'qb_enabled'
]);
if
not
qbEnabled
then
begin
ShowToast
(
'QB interface not currently active'
,
'info'
);
Exit
;
end
;
if
JS
.
toString
(
AuthService
.
TokenPayload
.
Properties
[
'user_qb_id'
])
<>
''
then
begin
if
(
VerifyQBOrder
()
)
then
...
...
kgOrdersClient/View.QBInfo.dfm
View file @
32d4033d
...
...
@@ -13,9 +13,9 @@ object FQBInfo: TFQBInfo
Font.Height = -24
Font.Name = 'Segoe UI'
Font.Style = []
HeightPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
ParentFont = False
WidthPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
0
end
object lblCompanyName: TWebLabel
Left = 16
...
...
@@ -28,9 +28,9 @@ object FQBInfo: TFQBInfo
Font.Height = -16
Font.Name = 'Segoe UI'
Font.Style = []
HeightPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
ParentFont = False
WidthPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
0
end
object lblCompanyID: TWebLabel
Left = 15
...
...
@@ -43,9 +43,9 @@ object FQBInfo: TFQBInfo
Font.Height = -16
Font.Name = 'Segoe UI'
Font.Style = []
HeightPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
ParentFont = False
WidthPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
0
end
object lblLastRefresh: TWebLabel
Left = 16
...
...
@@ -58,9 +58,9 @@ object FQBInfo: TFQBInfo
Font.Height = -16
Font.Name = 'Segoe UI'
Font.Style = []
HeightPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
ParentFont = False
WidthPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
0
end
object btnLinkToQB: TWebButton
Left = 235
...
...
@@ -69,8 +69,8 @@ object FQBInfo: TFQBInfo
Height = 25
Caption = 'Link to QB'
ChildOrder = 3
HeightPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
WidthPercent = 100.00000000000000000
0
OnClick = btnLinkToQBClick
end
object btnClose: TWebButton
...
...
@@ -80,8 +80,8 @@ object FQBInfo: TFQBInfo
Height = 25
Caption = 'Close'
ChildOrder = 3
HeightPercent = 100.00000000000000000
WidthPercent = 100.00000000000000000
HeightPercent = 100.00000000000000000
0
WidthPercent = 100.00000000000000000
0
OnClick = btnCloseClick
end
object XDataWebClient1: TXDataWebClient
...
...
kgOrdersClient/View.QBInfo.pas
View file @
32d4033d
...
...
@@ -86,8 +86,11 @@ begin
except
on
E
:
EXDataClientRequestException
do
begin
Close
();
Utils
.
ShowErrorModal
(
E
.
ErrorResult
.
ErrorMessage
);
end
;
end
;
end
;
procedure
TFQBInfo
.
GetQBLink
();
...
...
kgOrdersClient/View.User.Add.pas
View file @
32d4033d
...
...
@@ -99,6 +99,9 @@ begin
xdcResponse
:=
await
(
XDataWebClient1
.
RawInvokeAsync
(
'ILookupService.AddUser'
,
[
userInfo
]));
responseString
:=
TJSObject
(
xdcResponse
.
Result
);
Info
:=
string
(
responseString
[
'value'
]);
if
Info
.
ToLower
.
Contains
(
'failure'
)
then
ShowToast
(
Info
)
else
FViewMain
.
ShowUserForm
(
Info
);
except
on
E
:
EXDataClientRequestException
do
...
...
@@ -129,6 +132,9 @@ begin
[
editOptions
]));
responseString
:=
TJSObject
(
xdcResponse
.
Result
);
Info
:=
string
(
responseString
[
'value'
]);
if
Info
.
ToLower
.
Contains
(
'failure'
)
then
ShowToast
(
Info
)
else
FViewMain
.
ShowUserForm
(
Info
);
except
on
E
:
EXDataClientRequestException
do
...
...
kgOrdersServer/Source/Auth.ServiceImpl.pas
View file @
32d4033d
...
...
@@ -127,14 +127,6 @@ begin
raise
EXDataHttpUnauthorized
.
Create
(
'User not active!'
);
end
;
iniFile
:=
TIniFile
.
Create
(
ChangeFileExt
(
ParamStr
(
0
),
'.ini'
));
try
qbEnabled
:=
iniFile
.
ReadBool
(
'Quickbooks'
,
'Enabled'
,
true
);
finally
iniFile
.
Free
;
end
;
JWT
:=
TJWT
.
Create
;
try
JWT
.
Claims
.
JWTId
:=
LowerCase
(
Copy
(
TUtils
.
GuidToVariant
(
TUtils
.
NewGuid
),
2
,
36
));
...
...
@@ -147,7 +139,6 @@ begin
JWT
.
Claims
.
SetClaimOfType
<
string
>(
'user_email'
,
authDB
.
uq
.
FieldByName
(
'EMAIL'
).
AsString
);
JWT
.
Claims
.
SetClaimOfType
<
string
>(
'user_qb_id'
,
authDB
.
uq
.
FieldByName
(
'QB_ID'
).
AsString
);
JWT
.
Claims
.
SetClaimOfType
<
string
>(
'user_access_type'
,
authDB
.
uq
.
FieldByName
(
'ACCESS_TYPE'
).
AsString
);
JWT
.
Claims
.
SetClaimOfType
<
boolean
>(
'qb_enabled'
,
qbEnabled
);
Result
:=
TJOSE
.
SHA256CompactToken
(
serverConfig
.
jwtTokenSecret
,
JWT
);
finally
...
...
kgOrdersServer/Source/Lookup.ServiceImpl.pas
View file @
32d4033d
...
...
@@ -961,19 +961,16 @@ end;
function
TLookupService
.
GenerateOrderCorrugatedPDF
(
orderID
:
string
):
string
;
var
SQL
:
string
;
rptOrderCorrugated
:
TrptOrderCorrugated
;
// Local instance of the report
rptOrderCorrugated
:
TrptOrderCorrugated
;
begin
rptOrderCorrugated
:=
TrptOrderCorrugated
.
Create
(
nil
);
logger
.
Log
(
3
,
'TLookupService.GenerateOrderCorrugatedPDF'
);
try
try
// Generate SQL query for a single order
SQL
:=
'SELECT * FROM corrugated_plate_orders c join orders o on c.ORDER_ID = o.ORDER_ID WHERE c.ORDER_ID = '
+
orderID
;
// Prepare the report with the query
Result
:=
rptOrderCorrugated
.
PrepareReport
(
SQL
);
// Optionally log success
Logger
.
Log
(
3
,
'PDF Report successfully generated for order ID: '
+
orderID
);
except
on
E
:
Exception
do
...
...
@@ -1876,6 +1873,7 @@ var
newUser
:
string
;
hashString
:
string
;
hashPW
:
string
;
unique
:
boolean
;
begin
logger
.
log
(
3
,
'TLookupService.EditUser'
);
params
:=
TStringList
.
Create
;
...
...
@@ -1894,6 +1892,17 @@ begin
QB
:=
params
.
Values
[
'QB'
];
newUser
:=
params
.
Values
[
'newuser'
];
SQL
:=
'select USER_ID, USER_NAME from users where QB_ID = '
+
quotedStr
(
QB
);
logger
.
Log
(
5
,
'Retrieving customer with SQL: '
+
SQL
);
doQuery
(
OrdersDB
.
UniQuery1
,
SQL
);
if
(
(
OrdersDB
.
UniQuery1
.
IsEmpty
)
or
(
OrdersDB
.
UniQuery1
.
FieldByName
(
'USER_NAME'
).
AsString
=
user
)
)
then
unique
:=
true
else
unique
:=
false
;
if
unique
then
begin
SQL
:=
'select * from users where USER_NAME = '
+
QuotedStr
(
user
);
doQuery
(
ordersDB
.
UniQuery1
,
SQL
);
...
...
@@ -1942,6 +1951,12 @@ begin
logger
.
Log
(
4
,
'User Successfully Edited'
);
end
;
ordersDB
.
UniQuery1
.
Close
;
end
else
begin
Result
:=
'Failure: QB ID Must Be Unique'
;
logger
.
Log
(
3
,
'Failure: Company Account Name Must Be Unique'
);
end
;
finally
params
.
Free
;
end
;
...
...
@@ -2264,6 +2279,7 @@ var
SQL
:
string
;
rightsInt
:
Integer
;
params
:
TStringList
;
unique
:
boolean
;
begin
logger
.
Log
(
3
,
'TLookupService.AddUser'
);
params
:=
TStringList
.
Create
;
...
...
@@ -2283,6 +2299,17 @@ begin
perspective
:=
params
.
Values
[
'perspective'
];
QB
:=
params
.
Values
[
'QB'
];
SQL
:=
'select USER_ID, USER_NAME from users where QB_ID = '
+
quotedStr
(
QB
);
logger
.
Log
(
5
,
'Retrieving customer with SQL: '
+
SQL
);
doQuery
(
OrdersDB
.
UniQuery1
,
SQL
);
if
(
(
OrdersDB
.
UniQuery1
.
IsEmpty
)
or
(
OrdersDB
.
UniQuery1
.
FieldByName
(
'USER_NAME'
).
AsString
=
user
)
)
then
unique
:=
true
else
unique
:=
false
;
if
unique
then
begin
SQL
:=
'SELECT * FROM users WHERE USER_NAME = '
+
QuotedStr
(
user
.
ToLower
);
ordersDB
.
UniQuery1
.
Close
;
ordersDB
.
UniQuery1
.
SQL
.
Text
:=
SQL
;
...
...
@@ -2316,7 +2343,9 @@ begin
end
else
Result
:=
'Failure: Username already taken'
;
end
else
Result
:=
'Failure: QB ID Must Be Unique'
;
logger
.
Log
(
4
,
Result
);
except
on
E
:
Exception
do
...
...
@@ -2837,7 +2866,7 @@ var
I
:
integer
;
SQL
:
string
;
begin
logger
.
Log
(
3
,
'TLookupService.GetQBCustomers'
);
logger
.
Log
(
3
,
'TLookupService.GetQBCustomers
- start
'
);
Result
:=
TQBCustomerList
.
Create
;
iniFile
:=
TIniFile
.
Create
(
ExtractFilePath
(
Application
.
ExeName
)
+
'kgOrdersServer.ini'
);
restClient
:=
TRESTClient
.
Create
(
nil
);
...
...
@@ -3135,7 +3164,7 @@ begin
on
E
:
Exception
do
begin
Logger
.
Log
(
2
,
'Error in getQBCustomer: '
+
E
.
Message
);
raise
EXDataHttpException
.
Create
(
500
,
'Unable to retrieve QuickBooks Customer
s
: A QuickBooks interface error has occurred!'
);
raise
EXDataHttpException
.
Create
(
500
,
'Unable to retrieve QuickBooks Customer: A QuickBooks interface error has occurred!'
);
end
;
end
;
finally
...
...
@@ -3581,7 +3610,7 @@ begin
on
E
:
Exception
do
begin
Logger
.
Log
(
2
,
'Error in UpdateCustomer: '
+
E
.
Message
);
raise
EXDataHttpException
.
Create
(
500
,
'Unable to
retrieve QuickBooks Customers
: A QuickBooks interface error has occurred!'
);
raise
EXDataHttpException
.
Create
(
500
,
'Unable to
update QuickBooks Customer
: A QuickBooks interface error has occurred!'
);
end
;
end
;
finally
...
...
@@ -3800,8 +3829,9 @@ begin
except
on
E
:
Exception
do
begin
logger
.
Log
(
1
,
'Error in Import QBCustomer: '
+
E
.
Message
);
Result
:=
TJSONObject
.
Create
;
Result
.
AddPair
(
'error'
,
E
.
Message
);
Result
.
AddPair
(
'error'
,
'Error importing QB Customer! A QuickBooks interface error has occured!'
);
end
;
end
;
end
;
...
...
kgOrdersServer/Source/Main.pas
View file @
32d4033d
...
...
@@ -193,11 +193,6 @@ begin
Logger
.
Log
(
1
,
'----Database->Password: xxxxxxxx'
);
Logger
.
Log
(
1
,
'---Quickbooks---'
);
iniStr
:=
IniFile
.
ReadString
(
'Quickbooks'
,
'Enabled'
,
''
);
if
iniStr
.
IsEmpty
then
Logger
.
Log
(
1
,
'--Quickbooks->Enabled: Entry not found - default: true'
)
else
Logger
.
Log
(
1
,
'--Quickbooks->Enabled: '
+
iniStr
);
iniStr
:=
IniFile
.
ReadString
(
'Quickbooks'
,
'CompanyID'
,
''
);
if
iniStr
.
IsEmpty
then
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment