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
95296f5f
Commit
95296f5f
authored
Jun 03, 2025
by
Cam Hayes
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Customers form is complete and linked with quickbooks
parent
45495f71
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
255 additions
and
86 deletions
+255
-86
AddCustomer.pas
kgOrdersClient/AddCustomer.pas
+35
-12
View.AddOrder.dfm
kgOrdersClient/View.AddOrder.dfm
+25
-6
View.AddOrder.pas
kgOrdersClient/View.AddOrder.pas
+3
-0
View.Customers.pas
kgOrdersClient/View.Customers.pas
+0
-1
View.SelectCustomer.dfm
kgOrdersClient/View.SelectCustomer.dfm
+32
-12
View.SelectCustomer.pas
kgOrdersClient/View.SelectCustomer.pas
+22
-9
Data.dfm
kgOrdersServer/Source/Data.dfm
+4
-2
Lookup.ServiceImpl.pas
kgOrdersServer/Source/Lookup.ServiceImpl.pas
+0
-0
qbAPI.dfm
kgOrdersServer/Source/qbAPI.dfm
+0
-0
qbAPI.pas
kgOrdersServer/Source/qbAPI.pas
+130
-40
kgOrdersServer.ini
kgOrdersServer/kgOrdersServer.ini
+4
-4
No files found.
kgOrdersClient/AddCustomer.pas
View file @
95296f5f
...
...
@@ -117,6 +117,7 @@ type
function
VerifyCustomer
():
boolean
;
function
VerifyAddress
():
boolean
;
procedure
Clear
();
procedure
ShowSelectCustomerForm
();
var
customerID
:
string
;
notification
:
string
;
...
...
@@ -134,7 +135,7 @@ implementation
{$R *.dfm}
uses
View
.
Main
,
View
.
Customers
;
uses
View
.
Main
,
View
.
Customers
,
View
.
SelectCustomer
;
procedure
TFViewAddCustomer
.
Clear
();
// Clears the shipping address fields.
...
...
@@ -148,6 +149,28 @@ begin
edtFirstLine
.
Text
:=
''
;
end
;
procedure
TFViewAddCustomer
.
ShowSelectCustomerForm
();
// displays the add order pop-up so the user can choose a customer
var
newform
:
TFSelectCustomer
;
begin
newform
:=
TFSelectCustomer
.
CreateNew
;
newform
.
Caption
:=
'Select Customer and Order Type'
;
newForm
.
Popup
:=
True
;
newForm
.
Border
:=
fbDialog
;
// used to manage Back button handling to close subform
window
.
location
.
hash
:=
'subform'
;
newform
.
ShowModal
(
procedure
(
AValue
:
TModalResult
)
begin
end
);
end
;
procedure
TFViewAddCustomer
.
DelAddress
;
// Deletes a shipping address.
var
...
...
@@ -210,7 +233,7 @@ end;
procedure
TFViewAddCustomer
.
btnAddClick
(
Sender
:
TObject
);
// Takes the user to the Add Customer Page.
begin
FViewMain
.
ViewAddCustomer
(
''
,
''
);
ShowSelectCustomerForm
(
);
end
;
procedure
TFViewAddCustomer
.
btnCancelClick
(
Sender
:
TObject
);
...
...
@@ -601,16 +624,16 @@ begin
memoAddressBlock
.
Text
:=
string
(
customer
[
'staff_fields_invoice_to'
]);
if
(
not
xdwdsShipTo
.
IsEmpty
)
then
begin
edtShippingAddress
.
Text
:=
xdwdsShipTo
.
FieldByName
(
'shipping_address
'
).
AsString
;
edtShippingCity
.
Text
:=
xdwdsShipTo
.
FieldByName
(
'city
'
).
AsString
;
edtShippingState
.
Text
:=
xdwdsShipTo
.
FieldByName
(
'state
'
).
AsString
;
edtShippingZip
.
Text
:=
xdwdsShipTo
.
FieldByName
(
'zip
'
).
AsString
;
edtShippingContact
.
Text
:=
xdwdsShipTo
.
FieldByName
(
'contact'
).
AsString
;
memoShipBlock
.
Text
:=
xdwdsShipTo
.
FieldByName
(
'ADDRESS'
).
AsString
;
edtFirstLine
.
Text
:=
memoShipBlock
.
Lines
[
0
];
end
;
edtShippingAddress
.
Text
:=
xdwdsShipTo
.
FieldByName
(
'shipping_address'
).
AsString
;
edtShippingCity
.
Text
:=
xdwdsShipTo
.
FieldByName
(
'city'
).
AsString
;
edtShippingState
.
Text
:=
xdwdsShipTo
.
FieldByName
(
'state
'
).
AsString
;
edtShippingZip
.
Text
:=
xdwdsShipTo
.
FieldByName
(
'zip
'
).
AsString
;
edtShippingContact
.
Text
:=
xdwdsShipTo
.
FieldByName
(
'contact
'
).
AsString
;
memoShipBlock
.
Text
:=
xdwdsShipTo
.
FieldByName
(
'ADDRESS
'
).
AsString
;
if
memoShipBlock
.
Lines
.
Count
>
0
then
edtFirstLine
.
Text
:=
memoShipBlock
.
Lines
[
0
]
else
edtFirstLine
.
Text
:=
''
;
end
;
...
...
kgOrdersClient/View.AddOrder.dfm
View file @
95296f5f
...
...
@@ -12,7 +12,7 @@ object FAddOrder: TFAddOrder
WidthPercent = 100.000000000000000000
end
object WebLabel2: TWebLabel
Left = 1
43
Left = 1
35
Top = 81
Width = 113
Height = 15
...
...
@@ -20,6 +20,15 @@ object FAddOrder: TFAddOrder
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object WebLabel3: TWebLabel
Left = 283
Top = 81
Width = 134
Height = 15
Caption = 'Selected Customer Name'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object edtSearch: TWebEdit
Left = 4
Top = 102
...
...
@@ -30,7 +39,7 @@ object FAddOrder: TFAddOrder
OnChange = edtSearchChange
end
object edtID: TWebEdit
Left = 1
43
Left = 1
35
Top = 102
Width = 142
Height = 22
...
...
@@ -220,8 +229,8 @@ object FAddOrder: TFAddOrder
OnClick = cbWebPlateClick
end
object btnCancel: TWebButton
Left =
436
Top = 10
5
Left =
542
Top = 10
1
Width = 96
Height = 25
Caption = 'Cancel'
...
...
@@ -231,8 +240,8 @@ object FAddOrder: TFAddOrder
OnClick = btnCancelClick
end
object btnConfirm: TWebButton
Left =
328
Top = 10
5
Left =
436
Top = 10
1
Width = 96
Height = 25
Caption = 'Select'
...
...
@@ -273,6 +282,16 @@ object FAddOrder: TFAddOrder
TabOrder = 1
WidthPercent = 100.000000000000000000
end
object edtName: TWebEdit
Left = 283
Top = 102
Width = 142
Height = 22
ChildOrder = 1
Enabled = False
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection
Left = 780
...
...
kgOrdersClient/View.AddOrder.pas
View file @
95296f5f
...
...
@@ -33,6 +33,8 @@ type
edtNotification
:
TWebEdit
;
xdwdsCustomersstaff_fields_invoice_to
:
TStringField
;
xdwdsCustomersCUSTOMER_ID
:
TIntegerField
;
WebLabel3
:
TWebLabel
;
edtName
:
TWebEdit
;
procedure
WebFormShow
(
Sender
:
TObject
);
procedure
edtSearchChange
(
Sender
:
TObject
);
procedure
cbCorrugatedPlateClick
(
Sender
:
TObject
);
...
...
@@ -185,6 +187,7 @@ end;
procedure
TFAddOrder
.
TMSFNCGrid1CellClick
(
Sender
:
TObject
;
ACol
,
ARow
:
Integer
);
begin
edtID
.
Text
:=
TMSFNCGrid1
.
Cells
[
1
,
ARow
];
edtName
.
Text
:=
TMSFNCGrid1
.
Cells
[
2
,
ARow
];
DBID
:=
TMSFNCGrid1
.
Cells
[
0
,
ARow
];
end
;
...
...
kgOrdersClient/View.Customers.pas
View file @
95296f5f
...
...
@@ -221,7 +221,6 @@ end;
procedure
TFViewCustomers
.
btnAddCustomerClick
(
Sender
:
TObject
);
begin
ShowSelectCustomerForm
();
//FViewMain.ViewAddCustomer(string(notification['CustomerID']), string(notification['status']));
end
;
procedure
TFViewCustomers
.
edtFilterChange
(
Sender
:
TObject
);
...
...
kgOrdersClient/View.SelectCustomer.dfm
View file @
95296f5f
...
...
@@ -13,7 +13,7 @@ object FSelectCustomer: TFSelectCustomer
WidthPercent = 100.000000000000000000
end
object WebLabel2: TWebLabel
Left =
143
Left =
279
Top = 81
Width = 134
Height = 15
...
...
@@ -21,6 +21,15 @@ object FSelectCustomer: TFSelectCustomer
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object WebLabel3: TWebLabel
Left = 131
Top = 81
Width = 113
Height = 15
Caption = 'Selected Customer ID'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object edtSearch: TWebEdit
Left = 4
Top = 102
...
...
@@ -30,8 +39,8 @@ object FSelectCustomer: TFSelectCustomer
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object edt
ID
: TWebEdit
Left =
143
object edt
Name
: TWebEdit
Left =
279
Top = 102
Width = 142
Height = 22
...
...
@@ -195,13 +204,11 @@ object FSelectCustomer: TFSelectCustomer
LeftCol = 0
ScrollMode = scmItemScrolling
DesignTimeSampleData = True
OnCellDblClick = TMSFNCGrid1CellDblClick
ExplicitLeft = 12
ExplicitTop = 185
OnCellClick = TMSFNCGrid1CellClick
end
object btnCancel: TWebButton
Left =
43
6
Top = 10
5
Left =
55
6
Top = 10
1
Width = 96
Height = 25
Caption = 'Cancel'
...
...
@@ -210,8 +217,8 @@ object FSelectCustomer: TFSelectCustomer
WidthPercent = 100.000000000000000000
end
object btnConfirm: TWebButton
Left =
328
Top = 10
5
Left =
440
Top = 10
1
Width = 96
Height = 25
Caption = 'Select'
...
...
@@ -241,10 +248,20 @@ object FSelectCustomer: TFSelectCustomer
TabOrder = 1
WidthPercent = 100.000000000000000000
end
object edtID: TWebEdit
Left = 131
Top = 102
Width = 142
Height = 22
ChildOrder = 1
Enabled = False
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection
Left =
56
0
Top =
61
Left =
63
0
Top =
47
end
object xdwdsCustomers: TXDataWebDataSet
Connection = DMConnection.ApiConnection
...
...
@@ -289,6 +306,9 @@ object FSelectCustomer: TFSelectCustomer
object xdwdsCustomersBillAddrZip: TStringField
FieldName = 'BillAddrZip'
end
object xdwdsCustomersInKGOrders: TBooleanField
FieldName = 'In KGOrders'
end
end
object wdsCustomers: TWebDataSource
DataSet = xdwdsCustomers
...
...
kgOrdersClient/View.SelectCustomer.pas
View file @
95296f5f
...
...
@@ -17,7 +17,7 @@ type
WebLabel1
:
TWebLabel
;
WebLabel2
:
TWebLabel
;
edtSearch
:
TWebEdit
;
edt
ID
:
TWebEdit
;
edt
Name
:
TWebEdit
;
TMSFNCGrid1
:
TTMSFNCGrid
;
btnCancel
:
TWebButton
;
btnConfirm
:
TWebButton
;
...
...
@@ -38,10 +38,14 @@ type
xdwdsCustomersBillAddrCity
:
TStringField
;
xdwdsCustomersBillAddrState
:
TStringField
;
xdwdsCustomersBillAddrZip
:
TStringField
;
WebLabel3
:
TWebLabel
;
edtID
:
TWebEdit
;
xdwdsCustomersInKGOrders
:
TBooleanField
;
procedure
WebFormCreate
(
Sender
:
TObject
);
procedure
WebFormShow
(
Sender
:
TObject
);
procedure
TMSFNCGrid1CellDblClick
(
Sender
:
TObject
;
ACol
,
ARow
:
Integer
);
procedure
btnConfirmClick
(
Sender
:
TObject
);
procedure
TMSFNCGrid1CellClick
(
Sender
:
TObject
;
ACol
,
ARow
:
Integer
);
private
{ Private declarations }
[
Async
]
procedure
GetCustomers
();
...
...
@@ -56,8 +60,7 @@ var
implementation
{$R *.dfm
}
{$R *.dfm}
uses
View
.
Main
;
...
...
@@ -83,7 +86,10 @@ begin
if
edtID
.
Text
=
''
then
edtNotification
.
Text
:=
'Please Select a Customer'
else
begin
xdwdsCustomers
.
Locate
(
'Id'
,
edtID
.
Text
,
[]);
SendCustomerToServer
();
end
;
end
;
[
async
]
procedure
TFSelectCustomer
.
getCustomers
();
...
...
@@ -124,9 +130,9 @@ begin
TMSFNCGrid1
.
ColumnCount
:=
4
;
TMSFNCGrid1
.
RowCount
:=
1
;
TMSFNCGrid1
.
Cells
[
0
,
0
]
:=
'Quickbooks ID'
;
TMSFNCGrid1
.
Cells
[
1
,
0
]
:=
'Customer
ID
'
;
TMSFNCGrid1
.
Cells
[
2
,
0
]
:=
'
Customer Name
'
;
TMSFNCGrid1
.
Cells
[
3
,
0
]
:=
'
Addres
s'
;
TMSFNCGrid1
.
Cells
[
1
,
0
]
:=
'Customer
Name
'
;
TMSFNCGrid1
.
Cells
[
2
,
0
]
:=
'
Address
'
;
TMSFNCGrid1
.
Cells
[
3
,
0
]
:=
'
In KGOrder
s'
;
// Populate the grid with data from the dataset
xdwdsCustomers
.
First
;
...
...
@@ -136,9 +142,9 @@ begin
begin
TMSFNCGrid1
.
RowCount
:=
RowIndex
+
1
;
TMSFNCGrid1
.
Cells
[
0
,
RowIndex
]
:=
xdwdsCustomers
.
FieldByName
(
'Id'
).
AsString
;
// TMSFNCGrid1.Cells[1, RowIndex] := xdwdsCustomers.FieldByName('SHORT_NAME
').AsString;
TMSFNCGrid1
.
Cells
[
2
,
RowIndex
]
:=
xdwdsCustomers
.
FieldByName
(
'
CompanyName
'
).
AsString
;
TMSFNCGrid1
.
Cells
[
3
,
RowIndex
]
:=
xdwdsCustomers
.
FieldByName
(
'
BillAddr
'
).
AsString
;
TMSFNCGrid1
.
Cells
[
1
,
RowIndex
]
:=
xdwdsCustomers
.
FieldByName
(
'CompanyName
'
).
AsString
;
TMSFNCGrid1
.
Cells
[
2
,
RowIndex
]
:=
xdwdsCustomers
.
FieldByName
(
'
BillAddr
'
).
AsString
;
TMSFNCGrid1
.
Cells
[
3
,
RowIndex
]
:=
xdwdsCustomers
.
FieldByName
(
'
In KGOrders
'
).
AsString
;
Inc
(
RowIndex
);
xdwdsCustomers
.
Next
;
end
;
...
...
@@ -148,6 +154,13 @@ begin
end
;
end
;
procedure
TFSelectCustomer
.
TMSFNCGrid1CellClick
(
Sender
:
TObject
;
ACol
,
ARow
:
Integer
);
begin
edtID
.
Text
:=
TMSFNCGrid1
.
Cells
[
0
,
ARow
];
edtName
.
Text
:=
TMSFNCGrid1
.
Cells
[
1
,
ARow
];
end
;
procedure
TFSelectCustomer
.
TMSFNCGrid1CellDblClick
(
Sender
:
TObject
;
ACol
,
ARow
:
Integer
);
begin
...
...
kgOrdersServer/Source/Data.dfm
View file @
95296f5f
...
...
@@ -43,6 +43,8 @@ object FData: TFData
Lines.Strings = (
'Memo1')
TabOrder = 1
ExplicitLeft = -2
ExplicitTop = 435
end
object DBAdvGrid1: TDBAdvGrid
Left = 6
...
...
@@ -1602,8 +1604,8 @@ object FData: TFData
object uqWeb: TUniQuery
SQL.Strings = (
'select * from web_plate_orders')
Left = 74
5
Top = 4
64
Left = 74
3
Top = 4
76
object uqWebORDER_ID: TIntegerField
FieldName = 'ORDER_ID'
Required = True
...
...
kgOrdersServer/Source/Lookup.ServiceImpl.pas
View file @
95296f5f
This diff is collapsed.
Click to expand it.
kgOrdersServer/Source/qbAPI.dfm
View file @
95296f5f
This diff is collapsed.
Click to expand it.
kgOrdersServer/Source/qbAPI.pas
View file @
95296f5f
...
...
@@ -23,13 +23,104 @@ type
asgData
:
TAdvStringGrid
;
Button3
:
TButton
;
Button4
:
TButton
;
Button5
:
TButton
;
uq
:
TUniQuery
;
uqORDER_ID
:
TIntegerField
;
uqCOMPANY_ID
:
TIntegerField
;
uqUSER_ID
:
TIntegerField
;
uqORDER_DATE
:
TDateTimeField
;
uqSTART_DATE
:
TDateField
;
uqEND_DATE
:
TDateField
;
uqORDER_STATUS
:
TStringField
;
uqSCHED_JSON
:
TStringField
;
uqstaff_fields_order_date
:
TDateField
;
uqstaff_fields_proof_date
:
TDateField
;
uqstaff_fields_ship_date
:
TDateField
;
uqstaff_fields_ship_via
:
TStringField
;
uqstaff_fields_price
:
TStringField
;
uqstaff_fields_invoice_to
:
TStringField
;
uqstaff_fields_invoice_attention
:
TStringField
;
uqstaff_fields_ship_to
:
TStringField
;
uqstaff_fields_ship_attention
:
TStringField
;
uqstaff_fields_po_number
:
TStringField
;
uqstaff_fields_job_name
:
TStringField
;
uqstaff_fields_art_due
:
TDateField
;
uqstaff_fields_plate_due
:
TDateField
;
uqplates_job_number
:
TStringField
;
uqsupplied_by_customer_b_w_or_co
:
TStringField
;
uqsupplied_by_customer_plates
:
TStringField
;
uqsupplied_by_customer_sample
:
TStringField
;
uqsupplied_by_customer_dimension
:
TStringField
;
uqsupplied_by_customer_other
:
TStringField
;
uqsupplied_by_customer_disk
:
TStringField
;
uqsupplied_by_customer_e_mail
:
TStringField
;
uqsupplied_by_customer_ftp
:
TStringField
;
uqplates_plate_material
:
TStringField
;
uqplates_thickness
:
TStringField
;
uqsupplied_by_customer_total_inc
:
TStringField
;
uqsupplied_by_customer_sheets_us
:
TStringField
;
uqsupplied_by_customer_initials
:
TStringField
;
uqproofing_pdf
:
TStringField
;
uqproofing_pdf_to
:
TStringField
;
uqproofing_pdf_date_1
:
TDateField
;
uqproofing_pdf_date_2
:
TDateField
;
uqproofing_pdf_date_3
:
TDateField
;
uqproofing_full_size_ink_jet_for
:
TStringField
;
uqproofing_ink_jet_to
:
TStringField
;
uqproofing_ink_jet_to_2
:
TStringField
;
uqproofing_ink_jet_date_1
:
TDateField
;
uqproofing_ink_jet_date_2
:
TDateField
;
uqproofing_ink_jet_date_3
:
TDateField
;
uqproofing_color_contract
:
TStringField
;
uqproofing_color_contrac_to
:
TStringField
;
uqproofing_color_contrac_date_1
:
TDateField
;
uqproofing_color_contrac_date_2
:
TDateField
;
uqproofing_digital_color_key
:
TStringField
;
uqproofing_digital_color_to
:
TStringField
;
uqproofing_digital_color_date_1
:
TDateField
;
uqquantity_and_colors_press_name
:
TStringField
;
uqquantity_and_colors_anilox_info
:
TStringField
;
uqplate_marks_microdots
:
TStringField
;
uqplate_marks_microdots_comments
:
TStringField
;
uqplate_marks_crosshairs
:
TStringField
;
uqplate_marks_crosshairs_comments
:
TStringField
;
uqplate_marks_color_bars
:
TStringField
;
uqplate_marks_color_bars_comments
:
TStringField
;
uqplate_marks_other
:
TStringField
;
uqplate_marks_other_comments
:
TStringField
;
uqprint_orientation_print_orient
:
TStringField
;
uqlayout_around
:
TStringField
;
uqlayout_accross
:
TStringField
;
uqlayout_surface_print
:
TStringField
;
uqlayout_reverse_print
:
TStringField
;
uqlayout_cylinder_repeat
:
TStringField
;
uqlayout_cutoff_dimension
:
TStringField
;
uqlayout_pitch
:
TStringField
;
uqlayout_teeth
:
TStringField
;
uqlayout_bleed
:
TStringField
;
uqlayout_cutback
:
TStringField
;
uqlayout_minimum_trap_dim
:
TStringField
;
uqlayout_maximum_trap_dim
:
TStringField
;
uqupc_size
:
TStringField
;
uqupc_bar_width_reduction
:
TStringField
;
uqquantity_and_colors_qty_colors
:
TStringField
;
uqgeneral_comments
:
TStringField
;
uqstaff_fields_quickbooks_item
:
TStringField
;
uqstaff_fields_quantity
:
TStringField
;
uqupc_distortion_percent
:
TStringField
;
uqupc_distortion_amount
:
TStringField
;
uqstaff_fields_art_location
:
TStringField
;
procedure
Button1Click
(
Sender
:
TObject
);
procedure
FormCreate
(
Sender
:
TObject
);
procedure
Button2Click
(
Sender
:
TObject
);
procedure
Button3Click
(
Sender
:
TObject
);
procedure
Button4Click
(
Sender
:
TObject
);
procedure
Button5Click
(
Sender
:
TObject
);
procedure
FormDestroy
(
Sender
:
TObject
);
private
{ Private declarations }
strict
private
ordersDB
:
TApiDatabase
;
httpReqTokenRefresh
:
TWebHttpRequest
;
var
...
...
@@ -51,7 +142,7 @@ var
implementation
uses
Common
.
Logging
;
Common
.
Logging
,
uLibrary
;
{$R *.dfm}
...
...
@@ -130,13 +221,13 @@ begin
restRequest
.
Execute
;
memo1
.
Lines
.
Add
(
restresponse
.
Content
);
//
memo1.Lines.Add(restresponse.Content);
jsValue
:=
restResponse
.
JSONValue
;
jsObj
:=
TJSONObject
(
jsValue
);
Memo2
.
Lines
.
Add
(
res
);
Memo
2
.
Lines
.
Add
(
jsObj
.
Format
(
2
)
);
//
Memo2.Lines.Add(res);
Memo
1
.
Lines
.
Add
(
jsObj
.
Format
(
2
)
);
// CustomerList := TJSONArray( TJSONObject( jsObj.GetValue('QueryResponse') ).GetValue('Customer')) ;
...
...
@@ -190,13 +281,13 @@ begin
restRequest
.
Execute
;
memo1
.
Lines
.
Add
(
restresponse
.
Content
);
//
memo1.Lines.Add(restresponse.Content);
jsValue
:=
restResponse
.
JSONValue
;
jsObj
:=
TJSONObject
(
jsValue
);
Memo2
.
Lines
.
Add
(
res
);
Memo
2
.
Lines
.
Add
(
jsObj
.
Format
(
2
)
);
//
Memo2.Lines.Add(res);
Memo
1
.
Lines
.
Add
(
jsObj
.
Format
(
2
)
);
//CustomerList := TJSONArray(restResponse.JSONValue);
// CustomerList := TJSONArray( TJSONObject( jsObj.GetValue('QueryResponse') ).GetValue('Customer')) ;
...
...
@@ -208,6 +299,27 @@ begin
restResponse
.
Free
;
end
;
procedure
TfQB
.
Button5Click
(
Sender
:
TObject
);
var
SQL
:
string
;
count
:
integer
;
begin
SQL
:=
'SELECT c.CUSTOMER_ID, c.SHORT_NAME, c.NAME FROM customers c '
+
'WHERE EXISTS (SELECT 1 FROM corrugated_plate_orders cpo WHERE cpo.COMPANY_ID = c.CUSTOMER_ID) '
+
'OR EXISTS (SELECT 1 FROM web_plate_orders wpo WHERE wpo.COMPANY_ID = c.CUSTOMER_ID) ORDER BY c.SHORT_NAME'
;
doQuery
(
ordersDB
.
UniQuery1
,
SQL
);
while
not
ordersDB
.
UniQuery1
.
Eof
do
begin
Memo2
.
Lines
.
Add
(
ordersDB
.
UniQuery1
.
FieldByName
(
'CUSTOMER_ID'
).
AsString
+
', '
+
ordersDB
.
UniQuery1
.
FieldByName
(
'SHORT_NAME'
).
AsString
+
', '
+
ordersDB
.
UniQuery1
.
FieldByName
(
'NAME'
).
AsString
);
OrdersDB
.
UniQuery1
.
Next
;
count
:=
count
+
1
;
end
;
Memo2
.
Lines
.
Add
(
'Showing '
+
IntToStr
(
count
)
+
' entries'
);
end
;
procedure
TfQB
.
getCustomers
();
var
restClient
:
TRESTClient
;
...
...
@@ -260,43 +372,13 @@ begin
jsValue
:=
restResponse
.
JSONValue
;
jsObj
:=
TJSONObject
(
jsValue
);
{
Memo2.Lines.Add(res);
Memo2.Lines.Add( jsObj.Format(2) );
}
Memo2
.
Lines
.
Add
(
res
);
Memo2
.
Lines
.
Add
(
jsObj
.
Format
(
2
)
);
//CustomerList := TJSONArray(restResponse.JSONValue);
CustomerList
:=
TJSONArray
(
TJSONObject
(
jsObj
.
GetValue
(
'QueryResponse'
)
).
GetValue
(
'Customer'
))
;
ModifiedList
:=
TJSONArray
.
Create
;
for
I
:=
0
to
CustomerList
.
Count
-
1
do
begin
Customer
:=
CustomerList
.
Items
[
I
]
as
TJSONObject
;
ParsedCustomer
:=
TJSONObject
.
Create
;
try
// Directly add values without cloning
ParsedCustomer
.
AddPair
(
'id'
,
Customer
.
GetValue
(
'Id'
));
ParsedCustomer
.
AddPair
(
'name'
,
Customer
.
GetValue
(
'DisplayName'
));
if
Customer
.
GetValue
(
'BillAddr'
)
<>
nil
then
begin
BillAddr
:=
Customer
.
GetValue
(
'BillAddr'
)
as
TJSONObject
;
ParsedCustomer
.
AddPair
(
'BillAddr_line1'
,
BillAddr
.
GetValue
(
'Line1'
,
''
));
ParsedCustomer
.
AddPair
(
'BillAddr_City'
,
BillAddr
.
GetValue
(
'City'
,
''
));
ParsedCustomer
.
AddPair
(
'BillAddr_State'
,
BillAddr
.
GetValue
(
'CountrySubDivisionCode'
,
''
));
ParsedCustomer
.
AddPair
(
'BillAddr_Zip'
,
BillAddr
.
GetValue
(
'PostalCode'
,
''
));
ParsedCustomer
.
AddPair
(
'BillAddr'
,
BillAddr
.
GetValue
(
'Line1'
,
''
)
+
', '
+
BillAddr
.
GetValue
(
'City'
,
''
)
+
', '
+
BillAddr
.
GetValue
(
'CountrySubDivisionCode'
,
''
)
+
' '
+
BillAddr
.
GetValue
(
'PostalCode'
,
''
)
);
end
;
except
ParsedCustomer
.
Free
;
raise
;
end
;
end
;
LoadJSONArray
(
ModifiedList
);
LoadJSONArray
(
CustomerList
);
restClient
.
Free
;
restRequest
.
Free
;
...
...
@@ -326,6 +408,8 @@ procedure TfQB.FormCreate(Sender: TObject);
var
iniFile
:
TIniFile
;
begin
inherited
;
ordersDB
:=
TApiDatabase
.
Create
(
nil
);
iniFile
:=
TIniFile
.
Create
(
ExtractFilePath
(
Application
.
ExeName
)
+
'kgOrdersServer.ini'
);
Client
:=
iniFile
.
ReadString
(
'Quickbooks'
,
'ClientID'
,
''
);
Secret
:=
iniFile
.
ReadString
(
'Quickbooks'
,
'ClientSecret'
,
''
);
...
...
@@ -333,6 +417,12 @@ begin
RefreshToken
:=
iniFile
.
ReadString
(
'Quickbooks'
,
'RefreshToken'
,
''
);
end
;
procedure
TfQB
.
FormDestroy
(
Sender
:
TObject
);
begin
ordersDB
.
Free
;
inherited
;
end
;
function
TfQB
.
RefreshAccessToken
:
string
;
// Refresh Token changes so make sure to save refresh token.
var
...
...
kgOrdersServer/kgOrdersServer.ini
View file @
95296f5f
...
...
@@ -2,7 +2,7 @@
MemoLogLevel
=
3
FileLogLevel
=
5
webClientVersion
=
0.9.2
LogFileNum
=
596
LogFileNum
=
621
[Database]
Server
=
192.168.159.131
...
...
@@ -17,6 +17,6 @@ Password=emsys01
CompanyID
=
9341454272655710
ClientID
=
ABgO14uvjh8XqLud7spQ8lkb98AUpcdA7HbyMJfCAtl65sQ5yy
ClientSecret
=
bQ06TRemHeAGFzVHRaTUvUoBU9jpU9itK6MOMgqN
RefreshToken
=
RT1-
208-H0-17567544350xgx6z1cqtacxchwp91p
AccessToken
=
eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwieC5vcmciOiJIMCJ9..
7j1C_IbyEFT7N_dCC4YUMg.PgS3pkfr9Ze_N2m-D-GlXCZOHoAcCyN0Oym1nJpozlVqoMmEr340Oc8Qr3mcvWVyv1OxWx0kiVJMPWZ-gHazOP80IypMLc7e9HZPYm0qYbwex_9JGIfZq0vQX1Y6oJQSTM9h-v_oGIN_5b7hFMLzVPCPLwXMcimXLqaXEN9b-AGX2La-FeahLDz6MmrGL-HoYB-4ZintdaxWE4NYXEg71HgecTrfkxbNlJQBziGQgnXVPmwuyqI0gJKGIL1w3X651nGcZMB_nuY0y__BPH2zOnzuibqGylOwr9ZuFXobkjgvtqllRE0JgMbCD28FArwnA_-BGsz_g6fueCvsI3ewd61tmTLyvW1IWoOoowKd5bicHQPal34KO16wORmM5_RzjCO522w_n94m9gK6JYQbS3Kn-8omnDIBZjwSBnz4mCXm-CTpexrLJRgk5h1f-lx3Ow1d9A_91qriqwNkKln35nUO4ivNvmIkDvqYMaPVXAs.LVOKao4eo0CZQ8sSO9nHoA
LastRefresh
=
5/2
3/2025 3:20:36 P
M
RefreshToken
=
RT1-
113-H0-1757255538seyqgsf5e04vo9schkoa
AccessToken
=
eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwieC5vcmciOiJIMCJ9..
Cqnj0xScf85NYKa6g4lanA.LN1AIU3ZlnDDbIMt-J4vl8V_gvcTfynSjGKYsmbhbfBJovq5IfZU4dHt6cqDAwUfnfOm42l-OpbwN9hWrZvUGlVx8x_3MA-vdtxIOByp7neq5vL2t4XcR5svPKIkX-CqlTsTb2ylBARiXehgk3tVHBysbHcnp0Ka0Ic_Waj64wQMYvE3Z-D19gCu-Xn9WFQwDICn8HSgJmHL2huLvRX-OrcxH6uERzLcQqRLsgT7fx9j68UWDW-KL_KRnzE43ieXlxXCwiCDnaF39Ei5iPHstnh19lGMgo1Z1mlF6tVZ9-8Z1prZutpiX8rzaPzS7Wdqo8pKtYaUqQZP6AGa6ZCqWR2BlF3y-R_FtheERNpafRiXWIDW68jOOrgp8QXc1uKA0sxDMjiLE7Bd0t9QAsIzln-0WiWIXFSlLGLimMd2oxxLoR7fpQvgB851I50b4S3V-c891WA8bHfuzScmjVwp40JxofhviFXwAevLNzRYvGkvIyz4oS9d6U6K_ZWKDB3iYxEgJzkFFwnfuPybWX7iNHwnmvFfAXz61jdaL9KRJM-lCChGuaQuv8_df9z_az_sbUtXJw2I8ivEppmDEQVxv49ZwzJlb6bFbqtnhy6ILO7_ecx3G1d4Utg-BrtgvzsR.oFJV6VBShL1-cERGZEqqkw
LastRefresh
=
5/2
8/2025 10:46:30 A
M
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