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
344aa169
Commit
344aa169
authored
Jul 17, 2025
by
emsys
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Made Changes to the way we retrieve info for an empty order and a customer
parent
ca4825e6
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
149 additions
and
122 deletions
+149
-122
AddCustomer.dfm
kgOrdersClient/AddCustomer.dfm
+1
-1
AddCustomer.pas
kgOrdersClient/AddCustomer.pas
+11
-5
View.OrderEntryCuttingDie.dfm
kgOrdersClient/View.OrderEntryCuttingDie.dfm
+48
-41
View.OrderEntryCuttingDie.pas
kgOrdersClient/View.OrderEntryCuttingDie.pas
+41
-44
View.OrderEntryWeb.dfm
kgOrdersClient/View.OrderEntryWeb.dfm
+1
-0
Lookup.Service.pas
kgOrdersServer/Source/Lookup.Service.pas
+18
-3
Lookup.ServiceImpl.pas
kgOrdersServer/Source/Lookup.ServiceImpl.pas
+27
-26
kgOrdersServer.ini
kgOrdersServer/kgOrdersServer.ini
+2
-2
No files found.
kgOrdersClient/AddCustomer.dfm
View file @
344aa169
...
@@ -6,7 +6,7 @@ object FViewAddCustomer: TFViewAddCustomer
...
@@ -6,7 +6,7 @@ object FViewAddCustomer: TFViewAddCustomer
object lblFormState: TWebLabel
object lblFormState: TWebLabel
Left = 19
Left = 19
Top = 578
Top = 578
Width =
79
Width =
3
Height = 15
Height = 15
ElementID = 'lbl_form_state'
ElementID = 'lbl_form_state'
HeightPercent = 100.000000000000000000
HeightPercent = 100.000000000000000000
...
...
kgOrdersClient/AddCustomer.pas
View file @
344aa169
...
@@ -505,16 +505,14 @@ procedure TFViewAddCustomer.GetCustomer;
...
@@ -505,16 +505,14 @@ procedure TFViewAddCustomer.GetCustomer;
// Retrieves a customer for a given CustomerID.
// Retrieves a customer for a given CustomerID.
var
var
xdcResponse
:
TXDataClientResponse
;
xdcResponse
:
TXDataClientResponse
;
customer
:
TJSObject
;
customer
,
RepUsers
:
TJSObject
;
items
:
TJSObject
;
items
:
TJSObject
;
ship_block
:
TStringList
;
ship_block
:
TStringList
;
begin
begin
xdcResponse
:=
await
(
XDataWebClient1
.
RawInvokeAsync
(
'ILookupService.GetCustomer'
,
[
customerID
]));
xdcResponse
:=
await
(
XDataWebClient1
.
RawInvokeAsync
(
'ILookupService.GetCustomer'
,
[
customerID
]));
customer
:=
TJSObject
(
xdcResponse
.
Result
);
customer
:=
TJSObject
(
xdcResponse
.
Result
);
xdwdsUsers
.
Close
;
xdwdsUsers
.
SetJSONData
(
customer
[
'USERS'
]);
xdwdsUsers
.
Open
;
XDataWebDataSet1
.
Close
;
XDataWebDataSet1
.
Close
;
XDataWebDataSet1
.
SetJsonData
(
customer
);
XDataWebDataSet1
.
SetJsonData
(
customer
);
...
@@ -530,7 +528,7 @@ begin
...
@@ -530,7 +528,7 @@ begin
dtpEndDate
.
Date
:=
XDataWebDataSet1
.
FieldByName
(
'End_DATE'
).
AsDateTime
;
dtpEndDate
.
Date
:=
XDataWebDataSet1
.
FieldByName
(
'End_DATE'
).
AsDateTime
;
xdwdsShipTo
.
Close
;
xdwdsShipTo
.
Close
;
xdwdsShipTo
.
SetJSONData
(
customer
[
'ADDRESS_LIST'
]);
xdwdsShipTo
.
SetJSONData
(
customer
[
'
SHIPPING_
ADDRESS_LIST'
]);
xdwdsShipTo
.
Open
;
xdwdsShipTo
.
Open
;
memoAddressBlock
.
Text
:=
string
(
customer
[
'staff_fields_invoice_to'
]);
memoAddressBlock
.
Text
:=
string
(
customer
[
'staff_fields_invoice_to'
]);
...
@@ -545,6 +543,14 @@ begin
...
@@ -545,6 +543,14 @@ begin
edtFirstLine
.
Text
:=
memoShipBlock
.
Lines
[
0
]
edtFirstLine
.
Text
:=
memoShipBlock
.
Lines
[
0
]
else
else
edtFirstLine
.
Text
:=
''
;
edtFirstLine
.
Text
:=
''
;
xdcResponse
:=
await
(
XDataWebClient1
.
RawInvokeAsync
(
'ILookupService.GetRepUsers'
,
[]));
RepUsers
:=
TJSObject
(
xdcResponse
.
Result
);
console
.
log
(
RepUsers
);
xdwdsUsers
.
Close
;
xdwdsUsers
.
SetJSONData
(
RepUsers
[
'value'
]);
xdwdsUsers
.
Open
;
end
;
end
;
procedure
TFViewAddCustomer
.
tmrReturnTimer
(
Sender
:
TObject
);
procedure
TFViewAddCustomer
.
tmrReturnTimer
(
Sender
:
TObject
);
...
...
kgOrdersClient/View.OrderEntryCuttingDie.dfm
View file @
344aa169
...
@@ -67,45 +67,6 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
...
@@ -67,45 +67,6 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
DataField = 'QB_ORDER_NUM'
DataField = 'QB_ORDER_NUM'
DataSource = wdsOrder
DataSource = wdsOrder
end
end
object dtpOrderDate: TWebDateTimePicker
Left = 22
Top = 218
Width = 170
Height = 22
ElementID = 'dtporderdate'
BorderStyle = bsSingle
ChildOrder = 4
Color = clWhite
Date = 45638.529943136570000000
Role = ''
Text = ''
end
object dtpProofDate: TWebDateTimePicker
Left = 22
Top = 250
Width = 170
Height = 22
ElementID = 'dtpproofdate'
BorderStyle = bsSingle
ChildOrder = 4
Color = clWhite
Date = 45638.529943136570000000
Role = ''
Text = ''
end
object dtpShipDate: TWebDateTimePicker
Left = 22
Top = 282
Width = 170
Height = 22
ElementID = 'dtpshipdate'
BorderStyle = bsSingle
ChildOrder = 4
Color = clWhite
Date = 45638.529943136570000000
Role = ''
Text = ''
end
object edtShipVia: TWebDBEdit
object edtShipVia: TWebDBEdit
Left = 24
Left = 24
Top = 314
Top = 314
...
@@ -373,7 +334,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
...
@@ -373,7 +334,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
DataField = 'ORDER_ID'
DataField = 'ORDER_ID'
DataSource = wdsOrder
DataSource = wdsOrder
end
end
object
WebButton1
: TWebButton
object
btnQB
: TWebButton
Left = 746
Left = 746
Top = 495
Top = 495
Width = 96
Width = 96
...
@@ -383,7 +344,52 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
...
@@ -383,7 +344,52 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
ElementID = 'btnsendtoqb'
ElementID = 'btnsendtoqb'
HeightPercent = 100.000000000000000000
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = WebButton1Click
OnClick = btnQBClick
end
object dtpOrderDate: TWebDBDateTimePicker
Left = 22
Top = 218
Width = 170
Height = 22
ElementID = 'dtporderdate'
BorderStyle = bsSingle
ChildOrder = 31
Color = clWhite
Date = 45855.535876481480000000
Role = ''
Text = ''
DataField = 'staff_fields_order_date'
DataSource = wdsOrder
end
object dtpProofDate: TWebDBDateTimePicker
Left = 24
Top = 250
Width = 170
Height = 22
ElementID = 'dtpproofdate'
BorderStyle = bsSingle
ChildOrder = 31
Color = clWhite
Date = 45855.535876481480000000
Role = ''
Text = ''
DataField = 'staff_fields_proof_date'
DataSource = wdsOrder
end
object dtpShipDate: TWebDBDateTimePicker
Left = 24
Top = 282
Width = 170
Height = 22
ElementID = 'dtpshipdate'
BorderStyle = bsSingle
ChildOrder = 31
Color = clWhite
Date = 45855.535876481480000000
Role = ''
Text = ''
DataField = 'staff_fields_ship_date'
DataSource = wdsOrder
end
end
object wdsOrder: TWebDataSource
object wdsOrder: TWebDataSource
AutoEdit = False
AutoEdit = False
...
@@ -392,6 +398,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
...
@@ -392,6 +398,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
Top = 86
Top = 86
end
end
object xdwdsOrder: TXDataWebDataSet
object xdwdsOrder: TXDataWebDataSet
OnCalcFields = xdwdsOrderCalcFields
Connection = DMConnection.ApiConnection
Connection = DMConnection.ApiConnection
Left = 422
Left = 422
Top = 28
Top = 28
...
...
kgOrdersClient/View.OrderEntryCuttingDie.pas
View file @
344aa169
...
@@ -31,9 +31,6 @@ type
...
@@ -31,9 +31,6 @@ type
edtCompanyAccountName
:
TWebDBEdit
;
edtCompanyAccountName
:
TWebDBEdit
;
edtQBOrderNum
:
TWebDBEdit
;
edtQBOrderNum
:
TWebDBEdit
;
WebLabel1
:
TWebLabel
;
WebLabel1
:
TWebLabel
;
dtpOrderDate
:
TWebDateTimePicker
;
dtpProofDate
:
TWebDateTimePicker
;
dtpShipDate
:
TWebDateTimePicker
;
edtShipVia
:
TWebDBEdit
;
edtShipVia
:
TWebDBEdit
;
edtQuantity
:
TWebDBEdit
;
edtQuantity
:
TWebDBEdit
;
edtPrice
:
TWebDBEdit
;
edtPrice
:
TWebDBEdit
;
...
@@ -74,12 +71,15 @@ type
...
@@ -74,12 +71,15 @@ type
xdwdsOrderORDER_ID
:
TIntegerField
;
xdwdsOrderORDER_ID
:
TIntegerField
;
edtOrderNum
:
TWebDBEdit
;
edtOrderNum
:
TWebDBEdit
;
xdwdsOrderIN_QB
:
TStringField
;
xdwdsOrderIN_QB
:
TStringField
;
WebButton1
:
TWebButton
;
btnQB
:
TWebButton
;
dtpOrderDate
:
TWebDBDateTimePicker
;
dtpProofDate
:
TWebDBDateTimePicker
;
dtpShipDate
:
TWebDBDateTimePicker
;
procedure
btnSaveClick
(
Sender
:
TObject
);
procedure
btnSaveClick
(
Sender
:
TObject
);
procedure
btnCancelClick
(
Sender
:
TObject
);
procedure
btnCancelClick
(
Sender
:
TObject
);
procedure
WebFormCreate
(
Sender
:
TObject
);
procedure
WebFormCreate
(
Sender
:
TObject
);
[
async
]
procedure
GetCuttingDieOrder
(
Order_ID
:
string
);
[
async
]
procedure
GetCuttingDieOrder
(
Order_ID
:
string
);
[
async
]
procedure
Get
Customer
(
customerID
:
string
);
[
async
]
procedure
Get
EmptyOrderInfo
(
customerID
:
string
);
[
async
]
procedure
AddCuttingDieOrder
(
orderJSON
:
TJSONObject
);
[
async
]
procedure
AddCuttingDieOrder
(
orderJSON
:
TJSONObject
);
procedure
btnPDFClick
(
Sender
:
TObject
);
procedure
btnPDFClick
(
Sender
:
TObject
);
[
async
]
procedure
GenerateReportPDF
;
[
async
]
procedure
GenerateReportPDF
;
...
@@ -96,7 +96,8 @@ type
...
@@ -96,7 +96,8 @@ type
procedure
WebButton2Click
(
Sender
:
TObject
);
procedure
WebButton2Click
(
Sender
:
TObject
);
procedure
ShowAddAddressForm
();
procedure
ShowAddAddressForm
();
[
async
]
procedure
SendAddressToServer
(
AddressJSON
:
TJSONObject
);
[
async
]
procedure
SendAddressToServer
(
AddressJSON
:
TJSONObject
);
procedure
WebButton1Click
(
Sender
:
TObject
);
procedure
btnQBClick
(
Sender
:
TObject
);
procedure
xdwdsOrderCalcFields
(
DataSet
:
TDataSet
);
private
private
FAgencyCode
:
string
;
FAgencyCode
:
string
;
FCurrentReportType
:
string
;
FCurrentReportType
:
string
;
...
@@ -145,7 +146,7 @@ end;
...
@@ -145,7 +146,7 @@ end;
begin
begin
if
mode
=
'ADD'
then
if
mode
=
'ADD'
then
begin
begin
await
(
get
Customer
(
customerID
));
await
(
get
EmptyOrderInfo
(
customerID
));
EditMode
;
EditMode
;
end
end
else
else
...
@@ -159,7 +160,7 @@ begin
...
@@ -159,7 +160,7 @@ begin
end
;
end
;
procedure
TFOrderEntryCuttingDie
.
WebButton1
Click
(
Sender
:
TObject
);
procedure
TFOrderEntryCuttingDie
.
btnQB
Click
(
Sender
:
TObject
);
begin
begin
ShowToast
(
'Sending Orders To QuickBooks is not yet Implemented'
,
'info'
);
ShowToast
(
'Sending Orders To QuickBooks is not yet Implemented'
,
'info'
);
end
;
end
;
...
@@ -303,9 +304,9 @@ begin
...
@@ -303,9 +304,9 @@ begin
xdwdsOrder
.
Edit
;
xdwdsOrder
.
Edit
;
//Convert all dates to strings because I was having less issues with that data type.
//Convert all dates to strings because I was having less issues with that data type.
xdwdsOrderstaff_fields_proof_date
.
Value
:=
DateTimeToStr
(
dtpProofDate
.
Date
);
{
xdwdsOrderstaff_fields_proof_date.Value := DateTimeToStr(dtpProofDate.Date);
xdwdsOrderstaff_fields_ship_date.Value := DateTimeToStr(dtpShipDate.Date);
xdwdsOrderstaff_fields_ship_date.Value := DateTimeToStr(dtpShipDate.Date);
xdwdsOrderstaff_fields_order_date
.
Value
:=
DateTimeToStr
(
dtpOrderDate
.
Date
);
xdwdsOrderstaff_fields_order_date.Value := DateTimeToStr(dtpOrderDate.Date);
}
xdwdsOrder
.
Post
;
xdwdsOrder
.
Post
;
xdwdsOrder
.
First
;
xdwdsOrder
.
First
;
...
@@ -333,8 +334,6 @@ begin
...
@@ -333,8 +334,6 @@ begin
xdwdsOrder
.
Next
;
xdwdsOrder
.
Next
;
end
;
end
;
console
.
log
(
orderJSON
);
orderJSON
.
AddPair
(
'mode'
,
mode
);
orderJSON
.
AddPair
(
'mode'
,
mode
);
AddCuttingDieOrder
(
orderJSON
);
AddCuttingDieOrder
(
orderJSON
);
...
@@ -356,10 +355,11 @@ end;
...
@@ -356,10 +355,11 @@ end;
procedure
TFOrderEntryCuttingDie
.
btnCopyClick
(
Sender
:
TObject
);
procedure
TFOrderEntryCuttingDie
.
btnCopyClick
(
Sender
:
TObject
);
begin
begin
mode
:=
'ADD'
;
mode
:=
'ADD'
;
dtpOrderDate
.
Date
:=
0
;
dtpProofDate
.
Date
:=
0
;
dtpShipDate
.
Date
:=
0
;
xdwdsOrder
.
Edit
;
xdwdsOrder
.
Edit
;
xdwdsOrder
.
FieldByName
(
'staff_fields_order_date'
).
AsDateTime
:=
0
;
xdwdsOrder
.
FieldByName
(
'staff_fields_proof_date'
).
AsDateTime
:=
0
;
xdwdsOrder
.
FieldByName
(
'staff_fields_ship_date'
).
AsDateTime
:=
0
;
xdwdsOrder
.
FieldByName
(
'ORDER_ID'
).
AsString
:=
''
;
xdwdsOrder
.
FieldByName
(
'ORDER_ID'
).
AsString
:=
''
;
xdwdsOrder
.
Post
;
xdwdsOrder
.
Post
;
ShowToast
(
'Success: Order Successfully Copied'
);
ShowToast
(
'Success: Order Successfully Copied'
);
...
@@ -507,8 +507,8 @@ begin
...
@@ -507,8 +507,8 @@ begin
if
confirmed
then
if
confirmed
then
begin
begin
FViewMain
.
change
:=
false
;
FViewMain
.
change
:=
false
;
if
OrderID
<>
''
then
if
xdwdsOrder
.
FieldByName
(
'ORDER_ID'
).
AsString
<>
''
then
FViewMain
.
ViewOrderEntryCuttingDie
(
OrderID
,
''
,
'EDIT'
,
'Failure: Changes Discarded'
)
FViewMain
.
ViewOrderEntryCuttingDie
(
xdwdsOrder
.
FieldByName
(
'ORDER_ID'
).
AsString
,
''
,
'EDIT'
,
'Failure: Changes Discarded'
)
else
else
FViewMain
.
ViewOrders
(
''
);
FViewMain
.
ViewOrders
(
''
);
end
;
end
;
...
@@ -529,6 +529,12 @@ begin
...
@@ -529,6 +529,12 @@ begin
end
;
end
;
procedure
TFOrderEntryCuttingDie
.
xdwdsOrderCalcFields
(
DataSet
:
TDataSet
);
begin
if
DataSet
.
FieldByName
(
'IN_QB'
).
IsNull
then
DataSet
.
FieldByName
(
'IN_QB'
).
AsBoolean
:=
False
;
end
;
procedure
TFOrderEntryCuttingDie
.
getCuttingDieOrder
(
Order_ID
:
string
);
procedure
TFOrderEntryCuttingDie
.
getCuttingDieOrder
(
Order_ID
:
string
);
// retrieves an order from the server then loads the info into the page
// retrieves an order from the server then loads the info into the page
var
var
...
@@ -549,20 +555,6 @@ begin
...
@@ -549,20 +555,6 @@ begin
xdwdsOrder
.
SetJsonData
(
order
);
xdwdsOrder
.
SetJsonData
(
order
);
xdwdsOrder
.
Open
;
xdwdsOrder
.
Open
;
// Dates need to be manually set
if
not
(
xdwdsOrderstaff_fields_order_date
.
AsString
=
''
)
then
dtpOrderDate
.
Date
:=
StrToDateTime
(
xdwdsOrderstaff_fields_order_date
.
Value
)
else
dtpOrderDate
.
Date
:=
0
;
if
not
(
xdwdsOrderstaff_fields_proof_date
.
AsString
=
''
)
then
dtpProofDate
.
Date
:=
StrToDateTime
(
xdwdsOrderstaff_fields_proof_date
.
AsString
)
else
dtpProofDate
.
Date
:=
0
;
if
not
(
xdwdsOrderstaff_fields_ship_date
.
AsString
=
''
)
then
dtpShipDate
.
Date
:=
StrToDateTime
(
xdwdsOrderstaff_fields_ship_date
.
AsString
)
else
dtpShipDate
.
Date
:=
0
;
xdwdsShipTo
.
Close
;
xdwdsShipTo
.
Close
;
xdwdsShipTo
.
SetJSONData
(
order
[
'ADDRESS_LIST'
]);
xdwdsShipTo
.
SetJSONData
(
order
[
'ADDRESS_LIST'
]);
xdwdsShipTo
.
Open
;
xdwdsShipTo
.
Open
;
...
@@ -581,37 +573,40 @@ begin
...
@@ -581,37 +573,40 @@ begin
end
;
end
;
procedure
TFOrderEntryCuttingDie
.
get
Customer
(
customerID
:
string
);
procedure
TFOrderEntryCuttingDie
.
get
EmptyOrderInfo
(
customerID
:
string
);
// gets a customer from the database then loads the appropiate fields
// gets a customer from the database then loads the appropiate fields
var
var
xdcResponse
:
TXDataClientResponse
;
xdcResponse
:
TXDataClientResponse
;
customer
:
TJSObject
;
customer
,
items
:
TJSObject
;
address
:
string
;
address
:
string
;
items
:
TJSObject
;
begin
begin
xdcResponse
:=
await
(
XDataWebClient1
.
RawInvokeAsync
(
'ILookupService.GetCustomer'
,
xdcResponse
:=
await
(
XDataWebClient1
.
RawInvokeAsync
(
'ILookupService.GetCustomer'
,
[
customerID
]));
[
customerID
]));
customer
:=
TJSObject
(
xdcResponse
.
Result
);
customer
:=
TJSObject
(
xdcResponse
.
Result
);
xdwdsOrder
.
Close
;
xdwdsOrder
.
Close
;
xdwdsOrder
.
SetJsonData
(
customer
);
xdwdsOrder
.
Open
;
xdwdsOrder
.
Open
;
xdwdsOrder
.
Edit
;
xdwdsOrder
.
Append
;
xdwdsOrder
.
FieldByName
(
'COMPANY_ID'
).
AsString
:=
customerID
;
xdwdsOrder
.
FieldByName
(
'NAME'
).
AsString
:=
string
(
customer
[
'NAME'
]);
xdwdsOrder
.
FieldByName
(
'SHORT_NAME'
).
AsString
:=
string
(
customer
[
'SHORT_NAME'
]);
xdwdsOrder
.
FieldByName
(
'staff_fields_invoice_to'
).
AsString
:=
string
(
customer
[
'staff_fields_invoice_to'
]);
xdwdsOrder
.
FieldByName
(
'COMPANY_ID'
).
AsString
:=
customerID
;
xdwdsOrderUSER_ID
.
AsString
:=
JS
.
toString
(
AuthService
.
TokenPayload
.
Properties
[
'user_id'
]);
xdwdsOrderUSER_ID
.
AsString
:=
JS
.
toString
(
AuthService
.
TokenPayload
.
Properties
[
'user_id'
]);
xdwdsOrder
.
Post
;
xdwdsOrder
.
Post
;
dtpOrderDate
.
Date
:=
0
;
dtpProofDate
.
Date
:=
0
;
dtpShipDate
.
Date
:=
0
;
xdwdsShipTo
.
Close
;
xdwdsShipTo
.
Close
;
xdwdsShipTo
.
SetJSONData
(
customer
[
'ADDRESS_LIST'
]);
xdwdsShipTo
.
SetJSONData
(
customer
[
'
SHIPPING_
ADDRESS_LIST'
]);
xdwdsShipTo
.
Open
;
xdwdsShipTo
.
Open
;
xdcResponse
:=
await
(
XDataWebClient1
.
RawInvokeAsync
(
'ILookupService.GetItems'
,
[
customerID
]));
items
:=
TJSObject
(
xdcResponse
.
Result
);
xdwdsQBItem
.
Close
;
xdwdsQBItem
.
Close
;
items
:=
TJSObject
(
customer
[
'ITEMS'
]);
xdwdsQBItem
.
SetJsonData
(
items
[
'data'
]);
xdwdsQBItem
.
SetJsonData
(
items
[
'data'
]);
xdwdsQBITEM
.
Open
;
xdwdsQBITEM
.
Open
;
end
;
end
;
...
@@ -637,6 +632,7 @@ begin
...
@@ -637,6 +632,7 @@ begin
btnCancel
.
Enabled
:=
True
;
btnCancel
.
Enabled
:=
True
;
btnEdit
.
Enabled
:=
false
;
btnEdit
.
Enabled
:=
false
;
btnAdd
.
Enabled
:=
false
;
btnAdd
.
Enabled
:=
false
;
btnQB
.
Enabled
:=
false
;
lblFormState
.
Caption
:=
'Edit Mode'
;
lblFormState
.
Caption
:=
'Edit Mode'
;
lblFormState
.
ElementHandle
.
classList
.
remove
(
'text-danger'
);
lblFormState
.
ElementHandle
.
classList
.
remove
(
'text-danger'
);
...
@@ -654,6 +650,7 @@ begin
...
@@ -654,6 +650,7 @@ begin
btnCancel
.
Enabled
:=
false
;
btnCancel
.
Enabled
:=
false
;
btnEdit
.
Enabled
:=
true
;
btnEdit
.
Enabled
:=
true
;
btnAdd
.
Enabled
:=
true
;
btnAdd
.
Enabled
:=
true
;
btnQB
.
Enabled
:=
true
;
FViewMain
.
change
:=
false
;
FViewMain
.
change
:=
false
;
lblFormState
.
Caption
:=
'View Mode'
;
lblFormState
.
Caption
:=
'View Mode'
;
...
...
kgOrdersClient/View.OrderEntryWeb.dfm
View file @
344aa169
...
@@ -513,6 +513,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
...
@@ -513,6 +513,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
WidthPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
DataField = 'proofing_pdf'
DataField = 'proofing_pdf'
DataSource = WebDataSource1
DataSource = WebDataSource1
ValueChecked = 'T'
end
end
object edtPDFTo: TWebDBEdit
object edtPDFTo: TWebDBEdit
Left = 444
Left = 444
...
...
kgOrdersServer/Source/Lookup.Service.pas
View file @
344aa169
...
@@ -118,6 +118,15 @@ type
...
@@ -118,6 +118,15 @@ type
ship_id
:
string
;
ship_id
:
string
;
end
;
end
;
TOrderCustomerInfoItem
=
class
public
NAME
:
string
;
CUSTOMER_ID
:
integer
;
SHORT_NAME
:
string
;
staff_fields_invoice_to
:
string
;
SHIPPING_ADDRESS_LIST
:
TList
<
TAddressItem
>;
end
;
TCustomerItem
=
class
TCustomerItem
=
class
Public
Public
NAME
:
string
;
NAME
:
string
;
...
@@ -135,9 +144,8 @@ type
...
@@ -135,9 +144,8 @@ type
QB_LIST_ID
:
string
;
QB_LIST_ID
:
string
;
FFAX
:
string
;
FFAX
:
string
;
REP_USER_ID
:
string
;
REP_USER_ID
:
string
;
ADDRESS_LIST
:
TList
<
TAddressItem
>;
SHIPPING_ADDRESS_LIST
:
TList
<
TAddressItem
>;
ITEMS
:
TItemList
;
REP_USERS
:
TList
<
TUserItem
>;
USERS
:
TList
<
TUserItem
>
end
;
end
;
TCustomerList
=
class
TCustomerList
=
class
...
@@ -379,6 +387,12 @@ type
...
@@ -379,6 +387,12 @@ type
general_special_instructions
:
string
;
general_special_instructions
:
string
;
end
;
end
;
TEmptyOrderInfo
=
class
public
CustomerInfo
:
TOrderCustomerInfoItem
;
ITEMS
:
TItemList
;
end
;
// These objects are only used for quickbooks estimates.
// These objects are only used for quickbooks estimates.
TRef
=
record
TRef
=
record
value
:
string
;
value
:
string
;
...
@@ -492,6 +506,7 @@ type
...
@@ -492,6 +506,7 @@ type
[
HttpGet
]
function
GenerateOrderCuttingPDF
(
orderID
:
string
):
string
;
[
HttpGet
]
function
GenerateOrderCuttingPDF
(
orderID
:
string
):
string
;
[
HttpGet
]
function
getQBCustomers
():
TJSONArray
;
[
HttpGet
]
function
getQBCustomers
():
TJSONArray
;
[
HttpGet
]
function
getQBItems
():
TJSONArray
;
[
HttpGet
]
function
getQBItems
():
TJSONArray
;
[
HttpGet
]
function
GetRepUsers
():
TList
<
TUserItem
>;
function
AddUser
(
userInfo
:
string
):
string
;
function
AddUser
(
userInfo
:
string
):
string
;
...
...
kgOrdersServer/Source/Lookup.ServiceImpl.pas
View file @
344aa169
...
@@ -22,7 +22,7 @@ uses
...
@@ -22,7 +22,7 @@ uses
iexProcEffects
,
frxDBSet
,
frxExportBaseDialog
,
frCoreClasses
,
rOrderList
,
rOrderCorrugated
,
Common
.
Logging
,
iexProcEffects
,
frxDBSet
,
frxExportBaseDialog
,
frCoreClasses
,
rOrderList
,
rOrderCorrugated
,
Common
.
Logging
,
DateUtils
,
REST
.
Client
,
REST
.
Types
,
WEBLib
.
REST
,
WEBLib
.
WebTools
,
System
.
Net
.
HttpClient
,
DateUtils
,
REST
.
Client
,
REST
.
Types
,
WEBLib
.
REST
,
WEBLib
.
WebTools
,
System
.
Net
.
HttpClient
,
System
.
Net
.
URLClient
,
System
.
Net
.
HttpClientComponent
,
System
.
netencoding
,
System
.
Net
.
URLClient
,
System
.
Net
.
HttpClientComponent
,
System
.
netencoding
,
IdHTTP
,
IdSSLOpenSSL
,
IdSSLOpenSSLHeaders
,
System
.
IniFiles
;
IdHTTP
,
IdSSLOpenSSL
,
IdSSLOpenSSLHeaders
,
System
.
IniFiles
,
System
.
Generics
.
Collections
;
type
type
...
@@ -41,6 +41,7 @@ type
...
@@ -41,6 +41,7 @@ type
function
GetCuttingDieOrder
(
orderInfo
:
string
):
TCuttingDie
;
function
GetCuttingDieOrder
(
orderInfo
:
string
):
TCuttingDie
;
function
GetQBCustomers
:
TJSONArray
;
function
GetQBCustomers
:
TJSONArray
;
function
GetQBItems
:
TJSONArray
;
function
GetQBItems
:
TJSONArray
;
function
GetRepUsers
():
TList
<
TUserItem
>;
function
EditUser
(
const
editOptions
:
string
):
string
;
function
EditUser
(
const
editOptions
:
string
):
string
;
...
@@ -84,7 +85,6 @@ type
...
@@ -84,7 +85,6 @@ type
implementation
implementation
uses
uses
System
.
Generics
.
Collections
,
XData
.
Sys
.
Exceptions
,
uLibrary
,
rOrderWeb
,
rOrderCutting
;
XData
.
Sys
.
Exceptions
,
uLibrary
,
rOrderWeb
,
rOrderCutting
;
...
@@ -92,17 +92,14 @@ procedure TLookupService.AfterConstruction;
...
@@ -92,17 +92,14 @@ procedure TLookupService.AfterConstruction;
begin
begin
inherited
;
inherited
;
ordersDB
:=
TApiDatabase
.
Create
(
nil
);
ordersDB
:=
TApiDatabase
.
Create
(
nil
);
end
;
end
;
procedure
TLookupService
.
BeforeDestruction
;
procedure
TLookupService
.
BeforeDestruction
;
begin
begin
ordersDB
.
Free
;
ordersDB
.
Free
;
inherited
;
inherited
;
end
;
end
;
function
TLookupService
.
DelShippingAddress
(
AddressID
,
CustomerID
:
string
):
TJSONObject
;
function
TLookupService
.
DelShippingAddress
(
AddressID
,
CustomerID
:
string
):
TJSONObject
;
var
var
SQL
:
string
;
SQL
:
string
;
...
@@ -209,7 +206,7 @@ end;
...
@@ -209,7 +206,7 @@ end;
function
TLookupService
.
GetCustomer
(
ID
:
string
):
TCustomerItem
;
function
TLookupService
.
GetCustomer
(
ID
:
string
):
TCustomerItem
;
// Gets one specific customer from the ID given by the client. This is used for
// Gets one specific customer from the ID given by the client. This is used for
// the
OrderEntry f
orms.
// the
AddCustomer form and Order Entry F
orms.
var
var
SQL
:
string
;
SQL
:
string
;
ADDRESS
:
TAddressItem
;
ADDRESS
:
TAddressItem
;
...
@@ -222,8 +219,7 @@ begin
...
@@ -222,8 +219,7 @@ begin
SQL
:=
'select * FROM customers c LEFT JOIN customers_ship s ON c.CUSTOMER_ID = s.customer_id WHERE c.CUSTOMER_ID = '
+
ID
;
SQL
:=
'select * FROM customers c LEFT JOIN customers_ship s ON c.CUSTOMER_ID = s.customer_id WHERE c.CUSTOMER_ID = '
+
ID
;
doQuery
(
ordersDB
.
UniQuery1
,
SQL
);
doQuery
(
ordersDB
.
UniQuery1
,
SQL
);
result
:=
TCustomerItem
.
Create
;
result
:=
TCustomerItem
.
Create
;
result
.
ADDRESS_LIST
:=
TList
<
TAddressItem
>.
Create
;
TXDataOperationContext
.
Current
.
Handler
.
ManagedObjects
.
Add
(
Result
.
ADDRESS_LIST
);
result
.
NAME
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'NAME'
).
AsString
;
result
.
NAME
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'NAME'
).
AsString
;
result
.
CUSTOMER_ID
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'CUSTOMER_ID'
).
AsInteger
;
result
.
CUSTOMER_ID
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'CUSTOMER_ID'
).
AsInteger
;
...
@@ -242,6 +238,8 @@ begin
...
@@ -242,6 +238,8 @@ begin
result
.
FFAX
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'FAX'
).
AsString
;
result
.
FFAX
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'FAX'
).
AsString
;
result
.
REP_USER_ID
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'REP_USER_ID'
).
AsString
;
result
.
REP_USER_ID
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'REP_USER_ID'
).
AsString
;
result
.
SHIPPING_ADDRESS_LIST
:=
TList
<
TAddressItem
>.
Create
;
TXDataOperationContext
.
Current
.
Handler
.
ManagedObjects
.
Add
(
Result
.
SHIPPING_ADDRESS_LIST
);
while
not
ordersDB
.
UniQuery1
.
Eof
do
while
not
ordersDB
.
UniQuery1
.
Eof
do
begin
begin
ADDRESS
:=
TAddressItem
.
Create
;
ADDRESS
:=
TAddressItem
.
Create
;
...
@@ -253,16 +251,27 @@ begin
...
@@ -253,16 +251,27 @@ begin
ADDRESS
.
zip
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'zip'
).
AsString
;
ADDRESS
.
zip
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'zip'
).
AsString
;
ADDRESS
.
contact
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'contact'
).
AsString
;
ADDRESS
.
contact
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'contact'
).
AsString
;
ADDRESS
.
ship_id
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'customer_ship_id'
).
AsString
;
ADDRESS
.
ship_id
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'customer_ship_id'
).
AsString
;
result
.
ADDRESS_LIST
.
Add
(
ADDRESS
);
result
.
SHIPPING_
ADDRESS_LIST
.
Add
(
ADDRESS
);
ordersDB
.
UniQuery1
.
Next
;
ordersDB
.
UniQuery1
.
Next
;
end
;
end
;
ordersDB
.
UniQuery1
.
Close
;
except
on
E
:
Exception
do
result
.
ITEMS
:=
GetItems
(
''
);
begin
Logger
.
Log
(
2
,
'Error in GetCustomer: '
+
E
.
Message
);
raise
EXDataHttpException
.
Create
(
500
,
'Unable to retrieve customer: A KG Orders database issue has occurred!'
);
end
;
end
;
end
;
function
TLookupService
.
GetRepUsers
:
TList
<
TUserItem
>;
// Gets a list of users that qualify to be reps for companies
var
USER
:
TUserItem
;
SQL
:
string
;
begin
SQL
:=
'SELECT USER_ID, NAME from users where QB_ID IS NOT NULL AND QB_ID <> '
+
quotedStr
(
''
);
SQL
:=
'SELECT USER_ID, NAME from users where QB_ID IS NOT NULL AND QB_ID <> '
+
quotedStr
(
''
);
result
.
USERS
:=
TList
<
TUserItem
>.
Create
;
result
:=
TList
<
TUserItem
>.
Create
;
doQuery
(
ordersDB
.
UniQuery1
,
SQL
);
doQuery
(
ordersDB
.
UniQuery1
,
SQL
);
while
not
ordersDB
.
UniQuery1
.
Eof
do
while
not
ordersDB
.
UniQuery1
.
Eof
do
begin
begin
...
@@ -270,20 +279,14 @@ begin
...
@@ -270,20 +279,14 @@ begin
TXDataOperationContext
.
Current
.
Handler
.
ManagedObjects
.
Add
(
USER
);
TXDataOperationContext
.
Current
.
Handler
.
ManagedObjects
.
Add
(
USER
);
USER
.
userID
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'USER_ID'
).
AsString
;
USER
.
userID
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'USER_ID'
).
AsString
;
USER
.
full_name
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'NAME'
).
AsString
;
USER
.
full_name
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'NAME'
).
AsString
;
result
.
USERS
.
Add
(
USER
);
result
.
Add
(
USER
);
ordersDB
.
UniQuery1
.
Next
;
ordersDB
.
UniQuery1
.
Next
;
end
;
end
;
except
on
E
:
Exception
do
begin
Logger
.
Log
(
2
,
'Error in GetCustomer: '
+
E
.
Message
);
raise
EXDataHttpException
.
Create
(
500
,
'Unable to retrieve customer: A KG Orders database issue has occurred!'
);
end
;
end
;
end
;
end
;
function
TLookupService
.
GenerateOrderListPDF
(
searchOptions
:
string
):
string
;
function
TLookupService
.
GenerateOrderListPDF
(
searchOptions
:
string
):
string
;
// Generates a PDF for the Order Page
var
var
SQL
:
string
;
SQL
:
string
;
rptOrderList
:
TrptOrderList
;
rptOrderList
:
TrptOrderList
;
...
@@ -2130,14 +2133,14 @@ begin
...
@@ -2130,14 +2133,14 @@ begin
DateFormat
.
DateSeparator
:=
'-'
;
DateFormat
.
DateSeparator
:=
'-'
;
JSONData
:=
TJSONObject
.
ParseJSONValue
(
orderInfo
)
as
TJSONObject
;
JSONData
:=
TJSONObject
.
ParseJSONValue
(
orderInfo
)
as
TJSONObject
;
if
JSONData
=
nil
then
if
JSONData
=
nil
then
raise
Exception
.
Create
(
'Invalid JSON format'
);
// If parsing fails, raise an exception
raise
Exception
.
Create
(
'Invalid JSON format'
);
mode
:=
JSONData
.
GetValue
<
string
>(
'mode'
);
mode
:=
JSONData
.
GetValue
<
string
>(
'mode'
);
AddToOrdersTable
(
mode
,
'web_plate'
,
JSONData
);
AddToOrdersTable
(
mode
,
'web_plate'
,
JSONData
);
if
mode
=
'ADD'
then
if
mode
=
'ADD'
then
begin
begin
ordersDB
.
UniQuery1
.
SQL
.
Text
:=
'SELECT LAST_INSERT_ID() AS OrderID'
;
// Use database's method to get the last inserted ID
ordersDB
.
UniQuery1
.
SQL
.
Text
:=
'SELECT LAST_INSERT_ID() AS OrderID'
;
ordersDB
.
UniQuery1
.
Open
;
ordersDB
.
UniQuery1
.
Open
;
ORDER_ID
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'OrderID'
).
AsInteger
;
ORDER_ID
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'OrderID'
).
AsInteger
;
end
;
end
;
...
@@ -2160,10 +2163,9 @@ begin
...
@@ -2160,10 +2163,9 @@ begin
for
Pair
in
JSONData
do
for
Pair
in
JSONData
do
begin
begin
Field
:=
ordersDB
.
UniQuery1
.
FindField
(
Pair
.
JsonString
.
Value
);
// Checks if the field exists in the dataset
Field
:=
ordersDB
.
UniQuery1
.
FindField
(
Pair
.
JsonString
.
Value
);
if
Assigned
(
Field
)
then
if
Assigned
(
Field
)
then
begin
begin
// handles any dates or datetimes
if
(
Field
is
TDateTimeField
)
then
if
(
Field
is
TDateTimeField
)
then
begin
begin
if
(
Pair
.
JsonValue
.
Value
=
''
)
or
(
Pair
.
JsonValue
.
Value
=
'null'
)
or
(
Pair
.
JsonValue
.
Value
=
'12/30/1899'
)
then
if
(
Pair
.
JsonValue
.
Value
=
''
)
or
(
Pair
.
JsonValue
.
Value
=
'null'
)
or
(
Pair
.
JsonValue
.
Value
=
'12/30/1899'
)
then
...
@@ -2178,7 +2180,6 @@ begin
...
@@ -2178,7 +2180,6 @@ begin
ordersDB
.
UniQuery1
.
FieldByName
(
'ORDER_ID'
).
AsInteger
:=
ORDER_ID
;
ordersDB
.
UniQuery1
.
FieldByName
(
'ORDER_ID'
).
AsInteger
:=
ORDER_ID
;
// Post the record to the database
ordersDB
.
UniQuery1
.
Post
;
ordersDB
.
UniQuery1
.
Post
;
if
(
JSONData
.
GetValue
<
string
>(
'staff_fields_proof_date'
)
<>
''
)
and
(
JSONData
.
GetValue
<
string
>(
'staff_fields_proof_date'
)
<>
'12/30/1899'
)
then
if
(
JSONData
.
GetValue
<
string
>(
'staff_fields_proof_date'
)
<>
''
)
and
(
JSONData
.
GetValue
<
string
>(
'staff_fields_proof_date'
)
<>
'12/30/1899'
)
then
...
...
kgOrdersServer/kgOrdersServer.ini
View file @
344aa169
...
@@ -2,10 +2,10 @@
...
@@ -2,10 +2,10 @@
MemoLogLevel
=
3
MemoLogLevel
=
3
FileLogLevel
=
5
FileLogLevel
=
5
webClientVersion
=
0.9.7
webClientVersion
=
0.9.7
LogFileNum
=
8
65
LogFileNum
=
8
73
[Database]
[Database]
Server
=
192.168.159.1
44
Server
=
192.168.159.1
58
--Server
=
192.168.102.130
--Server
=
192.168.102.130
--Server
=
192.168.75.133
--Server
=
192.168.75.133
Database
=
kg_order_entry
Database
=
kg_order_entry
...
...
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