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
7f19b291
Commit
7f19b291
authored
Dec 05, 2024
by
Elias Sarraf
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/cam'
parents
e3cf4538
bfd278e3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
450 additions
and
209 deletions
+450
-209
View.Main.pas
kgOrdersClient/View.Main.pas
+3
-3
View.OrderEntryCorrugated.dfm
kgOrdersClient/View.OrderEntryCorrugated.dfm
+31
-14
View.OrderEntryCorrugated.html
kgOrdersClient/View.OrderEntryCorrugated.html
+0
-0
View.OrderEntryCorrugated.pas
kgOrdersClient/View.OrderEntryCorrugated.pas
+36
-6
View.OrderList.dfm
kgOrdersClient/View.OrderList.dfm
+206
-51
View.OrderList.pas
kgOrdersClient/View.OrderList.pas
+112
-120
View.Orders.pas
kgOrdersClient/View.Orders.pas
+15
-8
app.css
kgOrdersClient/template/css/app.css
+6
-1
Auth.Database.dfm
kgOrdersServer/Source/Auth.Database.dfm
+0
-1
Database.dfm
kgOrdersServer/Source/Database.dfm
+0
-1
Lookup.Service.pas
kgOrdersServer/Source/Lookup.Service.pas
+8
-1
Lookup.ServiceImpl.pas
kgOrdersServer/Source/Lookup.ServiceImpl.pas
+31
-1
kgOrdersServer.ini
kgOrdersServer/kgOrdersServer.ini
+2
-2
No files found.
kgOrdersClient/View.Main.pas
View file @
7f19b291
...
@@ -51,7 +51,7 @@ type
...
@@ -51,7 +51,7 @@ type
procedure
ShowForm
(
AFormClass
:
TWebFormClass
);
procedure
ShowForm
(
AFormClass
:
TWebFormClass
);
procedure
EditUser
(
Mode
,
Username
,
Password
,
Name
,
Status
,
Email
,
procedure
EditUser
(
Mode
,
Username
,
Password
,
Name
,
Status
,
Email
,
Access
,
Rights
,
Perspective
,
QB
:
string
);
Access
,
Rights
,
Perspective
,
QB
:
string
);
procedure
ViewOrderEntry
(
orderInfo
,
mode
:
string
);
procedure
ViewOrderEntry
(
orderInfo
,
customerInfo
,
mode
:
string
);
procedure
ViewOrders
(
info
:
string
);
procedure
ViewOrders
(
info
:
string
);
procedure
ShowUserForm
(
Info
:
string
);
procedure
ShowUserForm
(
Info
:
string
);
end
;
end
;
...
@@ -227,12 +227,12 @@ begin
...
@@ -227,12 +227,12 @@ begin
end
;
end
;
procedure
TFViewMain
.
ViewOrderEntry
(
orderInfo
,
mode
:
string
);
procedure
TFViewMain
.
ViewOrderEntry
(
orderInfo
,
customerInfo
,
mode
:
string
);
begin
begin
lblAppTitle
.
Caption
:=
'Koehler-Gibson Order Entry'
;
lblAppTitle
.
Caption
:=
'Koehler-Gibson Order Entry'
;
if
Assigned
(
FChildForm
)
then
if
Assigned
(
FChildForm
)
then
FChildForm
.
Free
;
FChildForm
.
Free
;
FChildForm
:=
TFOrderEntry
.
CreateForm
(
WebPanel1
.
ElementID
,
orderInfo
,
mode
);
FChildForm
:=
TFOrderEntry
.
CreateForm
(
WebPanel1
.
ElementID
,
orderInfo
,
customerInfo
,
mode
);
end
;
end
;
procedure
TFViewMain
.
ShowUserForm
(
Info
:
string
);
procedure
TFViewMain
.
ShowUserForm
(
Info
:
string
);
...
...
kgOrdersClient/View.OrderEntryCorrugated.dfm
View file @
7f19b291
...
@@ -239,13 +239,14 @@ object FOrderEntry: TFOrderEntry
...
@@ -239,13 +239,14 @@ object FOrderEntry: TFOrderEntry
object edtCompanyName: TWebDBEdit
object edtCompanyName: TWebDBEdit
Left = 24
Left = 24
Top = 92
Top = 92
Width =
121
Width =
260
Height = 22
Height = 22
AutoSize = True
AutoSize = True
ChildOrder = 79
ChildOrder = 79
ElementID = 'edtcompanyname'
ElementID = 'edtcompanyname'
HeightPercent = 100.000000000000000000
HeightPercent = 100.000000000000000000
MaxLength = 90
MaxLength = 90
WidthStyle = ssAuto
WidthPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
DataField = 'NAME'
DataField = 'NAME'
DataSource = WebDataSource1
DataSource = WebDataSource1
...
@@ -327,19 +328,6 @@ object FOrderEntry: TFOrderEntry
...
@@ -327,19 +328,6 @@ object FOrderEntry: TFOrderEntry
DataField = 'staff_fields_invoice_to'
DataField = 'staff_fields_invoice_to'
DataSource = WebDataSource1
DataSource = WebDataSource1
end
end
object edtShipTo: TWebDBEdit
Left = 26
Top = 430
Width = 121
Height = 22
AutoSize = True
ChildOrder = 79
ElementID = 'edtshipto'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
DataField = 'staff_fields_ship_to'
DataSource = WebDataSource1
end
object edtPONumber: TWebDBEdit
object edtPONumber: TWebDBEdit
Left = 26
Left = 26
Top = 458
Top = 458
...
@@ -965,6 +953,20 @@ object FOrderEntry: TFOrderEntry
...
@@ -965,6 +953,20 @@ object FOrderEntry: TFOrderEntry
HeightPercent = 100.000000000000000000
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
end
object WebDBComboBox1: TWebDBComboBox
Left = 26
Top = 430
Width = 145
Height = 22
ElementID = 'wcbshipto'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
ItemIndex = -1
DataField = 'staff_fields_ship_to'
DataSource = WebDataSource1
ListField = 'ADDRESS'
ListSource = wdsShipTo
end
object XDataWebClient1: TXDataWebClient
object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection
Connection = DMConnection.ApiConnection
Left = 244
Left = 244
...
@@ -1247,10 +1249,25 @@ object FOrderEntry: TFOrderEntry
...
@@ -1247,10 +1249,25 @@ object FOrderEntry: TFOrderEntry
object XDataWebDataSet1staff_fields_mount_due: TStringField
object XDataWebDataSet1staff_fields_mount_due: TStringField
FieldName = 'staff_fields_mount_due'
FieldName = 'staff_fields_mount_due'
end
end
object XDataWebDataSet1ADDRESS_LIST: TStringField
FieldName = 'ADDRESS_LIST'
end
end
end
object WebDataSource1: TWebDataSource
object WebDataSource1: TWebDataSource
DataSet = XDataWebDataSet1
DataSet = XDataWebDataSet1
Left = 216
Left = 216
Top = 104
Top = 104
end
end
object wdsShipTo: TWebDataSource
DataSet = xdwdsShipTo
Left = 212
Top = 436
end
object xdwdsShipTo: TXDataWebDataSet
Left = 192
Top = 486
object xdwdsShipToADDRESS: TStringField
FieldName = 'ADDRESS'
end
end
end
end
kgOrdersClient/View.OrderEntryCorrugated.html
View file @
7f19b291
This diff is collapsed.
Click to expand it.
kgOrdersClient/View.OrderEntryCorrugated.pas
View file @
7f19b291
...
@@ -38,7 +38,6 @@ type
...
@@ -38,7 +38,6 @@ type
edtQuantity
:
TWebDBEdit
;
edtQuantity
:
TWebDBEdit
;
edtPrice
:
TWebDBEdit
;
edtPrice
:
TWebDBEdit
;
edtInvoiceTo
:
TWebDBEdit
;
edtInvoiceTo
:
TWebDBEdit
;
edtShipTo
:
TWebDBEdit
;
edtPONumber
:
TWebDBEdit
;
edtPONumber
:
TWebDBEdit
;
edtJobName
:
TWebDBEdit
;
edtJobName
:
TWebDBEdit
;
edtQuickBooksItem
:
TWebDBEdit
;
edtQuickBooksItem
:
TWebDBEdit
;
...
@@ -182,11 +181,17 @@ type
...
@@ -182,11 +181,17 @@ type
cbStickyBak
:
TWebCheckBox
;
cbStickyBak
:
TWebCheckBox
;
cbLoose
:
TWebCheckBox
;
cbLoose
:
TWebCheckBox
;
cbExcaliburDie
:
TWebCheckBox
;
cbExcaliburDie
:
TWebCheckBox
;
XDataWebDataSet1ADDRESS_LIST
:
TStringField
;
wdsShipTo
:
TWebDataSource
;
xdwdsShipTo
:
TXDataWebDataSet
;
xdwdsShipToADDRESS
:
TStringField
;
WebDBComboBox1
:
TWebDBComboBox
;
procedure
WebFormCreate
(
Sender
:
TObject
);
procedure
WebFormCreate
(
Sender
:
TObject
);
procedure
HideNotification
();
procedure
HideNotification
();
procedure
ShowNotification
(
Notification
:
string
);
procedure
ShowNotification
(
Notification
:
string
);
procedure
WebFormShow
(
Sender
:
TObject
);
procedure
WebFormShow
(
Sender
:
TObject
);
[
async
]
procedure
getOrder
(
Order_ID
:
string
);
[
async
]
procedure
getOrder
(
Order_ID
:
string
);
[
async
]
procedure
getCustomer
(
customerID
:
string
);
procedure
tmrScrollTopTimer
(
Sender
:
TObject
);
procedure
tmrScrollTopTimer
(
Sender
:
TObject
);
procedure
WebButton1Click
(
Sender
:
TObject
);
procedure
WebButton1Click
(
Sender
:
TObject
);
procedure
addColorRow
(
num
,
Color
,
LPI
,
Size
:
string
);
procedure
addColorRow
(
num
,
Color
,
LPI
,
Size
:
string
);
...
@@ -197,10 +202,11 @@ type
...
@@ -197,10 +202,11 @@ type
FCurrentReportType
:
string
;
FCurrentReportType
:
string
;
FSelectProc
:
TSelectProc
;
FSelectProc
:
TSelectProc
;
orderID
:
string
;
orderID
:
string
;
customerID
:
string
;
mode
:
string
;
mode
:
string
;
//FJSONProc1: TJSONProc1;
//FJSONProc1: TJSONProc1;
public
public
class
function
CreateForm
(
AElementID
,
orderInfo
,
mode
:
string
):
TWebForm
;
class
function
CreateForm
(
AElementID
,
orderInfo
,
customerInfo
,
mode
:
string
):
TWebForm
;
end
;
end
;
var
var
...
@@ -333,7 +339,7 @@ begin
...
@@ -333,7 +339,7 @@ begin
[
orderJSON
.
ToString
]));
[
orderJSON
.
ToString
]));
end
;
end
;
class
function
TFOrderEntry
.
CreateForm
(
AElementID
,
orderInfo
,
mode
:
string
):
TWebForm
;
class
function
TFOrderEntry
.
CreateForm
(
AElementID
,
orderInfo
,
customerInfo
,
mode
:
string
):
TWebForm
;
var
var
localMode
:
string
;
localMode
:
string
;
begin
begin
...
@@ -344,6 +350,7 @@ begin
...
@@ -344,6 +350,7 @@ begin
with
TFOrderEntry
(
AForm
)
do
with
TFOrderEntry
(
AForm
)
do
begin
begin
HideNotification
;
HideNotification
;
TFOrderEntry
(
AForm
).
customerID
:=
customerInfo
;
TFOrderEntry
(
AForm
).
orderID
:=
orderInfo
;
TFOrderEntry
(
AForm
).
orderID
:=
orderInfo
;
TFOrderEntry
(
AForm
).
mode
:=
localMode
;
TFOrderEntry
(
AForm
).
mode
:=
localMode
;
console
.
log
(
TFOrderEntry
(
AForm
).
mode
);
console
.
log
(
TFOrderEntry
(
AForm
).
mode
);
...
@@ -362,7 +369,6 @@ begin
...
@@ -362,7 +369,6 @@ begin
const
newRow
=
document
.
createElement
(
'div'
);
const
newRow
=
document
.
createElement
(
'div'
);
newRow
.
className
=
'row mb-2'
;
newRow
.
className
=
'row mb-2'
;
// Labels and inputs
const
labels
=
[
'#'
,
'Color'
,
'LPI'
,
'Size'
];
const
labels
=
[
'#'
,
'Color'
,
'LPI'
,
'Size'
];
const
values
=
[
num
,
Color
,
LPI
,
Size
];
const
values
=
[
num
,
Color
,
LPI
,
Size
];
labels
.
forEach
((
label
,
index
)
=>
{
labels
.
forEach
((
label
,
index
)
=>
{
...
@@ -400,7 +406,6 @@ begin
...
@@ -400,7 +406,6 @@ begin
removeButtonCol
.
appendChild
(
removeButton
);
removeButtonCol
.
appendChild
(
removeButton
);
newRow
.
appendChild
(
removeButtonCol
);
newRow
.
appendChild
(
removeButtonCol
);
// Add the new row to the container
container
.
appendChild
(
newRow
);
container
.
appendChild
(
newRow
);
end
;
end
;
end
;
end
;
...
@@ -513,9 +518,34 @@ begin
...
@@ -513,9 +518,34 @@ begin
end
;
end
;
procedure
TFOrderEntry
.
getCustomer
(
customerID
:
string
);
var
xdcResponse
:
TXDataClientResponse
;
customer
:
TJSObject
;
address
:
string
;
begin
xdcResponse
:=
await
(
XDataWebClient1
.
RawInvokeAsync
(
'ILookupService.GetCustomer'
,
[
customerID
]));
customer
:=
TJSObject
(
xdcResponse
.
Result
);
XDataWebDataSet1
.
Close
;
XDataWebDataSet1
.
SetJsonData
(
customer
);
XDataWebDataSet1
.
Open
;
xdwdsShipTo
.
Close
;
xdwdsShipTo
.
SetJSONData
(
customer
[
'ADDRESS_LIST'
]);
xdwdsShipTo
.
Open
;
console
.
log
(
xdwdsShipToADDRESS
.
AsString
);
console
.
log
(
customer
[
'ADDRESS_LIST'
]);
end
;
procedure
TFOrderEntry
.
WebFormShow
(
Sender
:
TObject
);
procedure
TFOrderEntry
.
WebFormShow
(
Sender
:
TObject
);
begin
begin
getOrder
(
orderID
);
if
mode
<>
'ADD'
then
getOrder
(
orderID
)
else
getCustomer
(
customerID
);
console
.
log
(
customerID
);
HideNotification
();
HideNotification
();
end
;
end
;
...
...
kgOrdersClient/View.OrderList.dfm
View file @
7f19b291
...
@@ -31,21 +31,6 @@ object FOrderList: TFOrderList
...
@@ -31,21 +31,6 @@ object FOrderList: TFOrderList
HeightPercent = 100.000000000000000000
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
end
object edtSearch: TWebEdit
Left = 8
Top = 384
Width = 121
Height = 22
HelpType = htKeyword
ChildOrder = 8
ElementClassName = 'form-control'
ElementID = 'edtsearch'
ElementFont = efCSS
HeightStyle = ssAuto
HeightPercent = 100.000000000000000000
HideSelection = False
WidthPercent = 100.000000000000000000
end
object pnlMessage: TWebPanel
object pnlMessage: TWebPanel
Left = 370
Left = 370
Top = 558
Top = 558
...
@@ -58,7 +43,7 @@ object FOrderList: TFOrderList
...
@@ -58,7 +43,7 @@ object FOrderList: TFOrderList
ElementFont = efCSS
ElementFont = efCSS
ElementPosition = epRelative
ElementPosition = epRelative
Role = 'alert'
Role = 'alert'
TabOrder =
1
TabOrder =
0
object lblMessage: TWebLabel
object lblMessage: TWebLabel
Left = 28
Left = 28
Top = 9
Top = 9
...
@@ -89,40 +74,6 @@ object FOrderList: TFOrderList
...
@@ -89,40 +74,6 @@ object FOrderList: TFOrderList
WidthPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
end
end
end
object tblOrders: TWebDBTableControl
Left = 0
Top = 142
Width = 1016
Height = 289
ElementClassName = 'table'
ElementId = 'tbl_orders'
BorderColor = clSilver
ChildOrder = 5
ColHeader = False
ElementTableClassName = 'table table-striped table-hover table-bordered'
Options.ResizeColumns = True
OnClickCell = tblOrdersClickCell
Columns = <
item
DataField = 'ID'
Title = 'ID'
Width = 24
end
item
DataField = 'NAME'
Title = 'NAME'
Width = 100
end
item
DataField = 'SHORT_NAME'
Title = 'SHORT_NAME'
end
item
DataField = 'ADDRESS'
Title = 'ADDRESS'
end>
DataSource = wdsCustomers
end
object cbCorrugatedPlate: TWebCheckBox
object cbCorrugatedPlate: TWebCheckBox
Left = 190
Left = 190
Top = 26
Top = 26
...
@@ -180,7 +131,211 @@ object FOrderList: TFOrderList
...
@@ -180,7 +131,211 @@ object FOrderList: TFOrderList
HeightPercent = 100.000000000000000000
HeightPercent = 100.000000000000000000
Text = 'edtID'
Text = 'edtID'
WidthPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnChange = edtIDChange
OnClick = btnConfirmClick
end
object btnFilter: TWebButton
Left = 564
Top = 195
Width = 96
Height = 25
Caption = 'Filter'
ChildOrder = 9
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = btnFilterClick
end
object TMSFNCGrid1: TTMSFNCGrid
Left = 228
Top = 308
Width = 588
Height = 353
AdaptToStyle = True
ParentDoubleBuffered = False
DoubleBuffered = True
TabOrder = 7
DefaultRowHeight = 40.000000000000000000
FixedColumns = 0
ColumnCount = 0
RowCount = 1
Options.Bands.Enabled = True
Options.Editing.CalcFormat = '%g'
Options.Filtering.MultiColumn = True
Options.Grouping.CalcFormat = '%g'
Options.Grouping.GroupCountFormat = '(%d)'
Options.IO.XMLEncoding = 'ISO-8859-1'
Options.Mouse.ColumnSizing = True
Options.Mouse.ClickMargin = 0
Options.Mouse.ColumnSizeMargin = 6
Options.Mouse.RowSizing = True
Options.Mouse.RowSizeMargin = 6
Options.Mouse.FixedColumnSizing = True
Options.Mouse.FixedRowSizing = True
Columns = <
item
BorderWidth = 1
FixedFont.Charset = DEFAULT_CHARSET
FixedFont.Color = clWindowText
FixedFont.Height = -11
FixedFont.Name = 'Tahoma'
FixedFont.Style = []
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ID = ''
Width = 68.000000000000000000
end
item
BorderWidth = 1
FixedFont.Charset = DEFAULT_CHARSET
FixedFont.Color = clWindowText
FixedFont.Height = -11
FixedFont.Name = 'Tahoma'
FixedFont.Style = []
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ID = ''
Width = 68.000000000000000000
end
item
BorderWidth = 1
FixedFont.Charset = DEFAULT_CHARSET
FixedFont.Color = clWindowText
FixedFont.Height = -11
FixedFont.Name = 'Tahoma'
FixedFont.Style = []
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ID = ''
Width = 68.000000000000000000
end
item
BorderWidth = 1
FixedFont.Charset = DEFAULT_CHARSET
FixedFont.Color = clWindowText
FixedFont.Height = -11
FixedFont.Name = 'Tahoma'
FixedFont.Style = []
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ID = ''
Width = 68.000000000000000000
end
item
BorderWidth = 1
FixedFont.Charset = DEFAULT_CHARSET
FixedFont.Color = clWindowText
FixedFont.Height = -11
FixedFont.Name = 'Tahoma'
FixedFont.Style = []
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ID = ''
Width = 68.000000000000000000
end>
DefaultFont.Charset = DEFAULT_CHARSET
DefaultFont.Color = clBlack
DefaultFont.Height = -11
DefaultFont.Name = 'Segoe UI'
DefaultFont.Style = []
Stroke.Color = 15987699
TopRow = 1
Appearance.FixedLayout.Fill.Kind = gfkGradient
Appearance.FixedLayout.Fill.Color = 16382457
Appearance.FixedLayout.Fill.ColorTo = 16382457
Appearance.FixedLayout.Stroke.Color = 15987699
Appearance.FixedLayout.Font.Charset = DEFAULT_CHARSET
Appearance.FixedLayout.Font.Color = clBlack
Appearance.FixedLayout.Font.Height = -11
Appearance.FixedLayout.Font.Name = 'Tahoma'
Appearance.FixedLayout.Font.Style = [fsBold]
Appearance.NormalLayout.Fill.Color = -1
Appearance.NormalLayout.Stroke.Color = 15987699
Appearance.NormalLayout.Font.Charset = DEFAULT_CHARSET
Appearance.NormalLayout.Font.Color = clBlack
Appearance.NormalLayout.Font.Height = -11
Appearance.NormalLayout.Font.Name = 'Tahoma'
Appearance.NormalLayout.Font.Style = []
Appearance.GroupLayout.Fill.Kind = gfkGradient
Appearance.GroupLayout.Fill.Color = 15385233
Appearance.GroupLayout.Fill.ColorTo = 15385233
Appearance.GroupLayout.Stroke.Color = 15987699
Appearance.GroupLayout.Font.Charset = DEFAULT_CHARSET
Appearance.GroupLayout.Font.Color = clBlack
Appearance.GroupLayout.Font.Height = -11
Appearance.GroupLayout.Font.Name = 'Tahoma'
Appearance.GroupLayout.Font.Style = []
Appearance.SummaryLayout.Fill.Kind = gfkGradient
Appearance.SummaryLayout.Fill.Color = 15385233
Appearance.SummaryLayout.Fill.ColorTo = 15385233
Appearance.SummaryLayout.Stroke.Color = 15987699
Appearance.SummaryLayout.Font.Charset = DEFAULT_CHARSET
Appearance.SummaryLayout.Font.Color = clBlack
Appearance.SummaryLayout.Font.Height = -11
Appearance.SummaryLayout.Font.Name = 'Tahoma'
Appearance.SummaryLayout.Font.Style = []
Appearance.SelectedLayout.Fill.Kind = gfkGradient
Appearance.SelectedLayout.Fill.Color = 15385233
Appearance.SelectedLayout.Fill.ColorTo = 15385233
Appearance.SelectedLayout.Stroke.Color = 15987699
Appearance.SelectedLayout.Font.Charset = DEFAULT_CHARSET
Appearance.SelectedLayout.Font.Color = clBlack
Appearance.SelectedLayout.Font.Height = -11
Appearance.SelectedLayout.Font.Name = 'Tahoma'
Appearance.SelectedLayout.Font.Style = []
Appearance.FocusedLayout.Fill.Kind = gfkGradient
Appearance.FocusedLayout.Fill.Color = 15385233
Appearance.FocusedLayout.Fill.ColorTo = 15385233
Appearance.FocusedLayout.Stroke.Color = 15987699
Appearance.FocusedLayout.Font.Charset = DEFAULT_CHARSET
Appearance.FocusedLayout.Font.Color = clBlack
Appearance.FocusedLayout.Font.Height = -11
Appearance.FocusedLayout.Font.Name = 'Tahoma'
Appearance.FocusedLayout.Font.Style = []
Appearance.FixedSelectedLayout.Fill.Kind = gfkGradient
Appearance.FixedSelectedLayout.Fill.Color = 15385233
Appearance.FixedSelectedLayout.Fill.ColorTo = 15385233
Appearance.FixedSelectedLayout.Stroke.Color = 15987699
Appearance.FixedSelectedLayout.Font.Charset = DEFAULT_CHARSET
Appearance.FixedSelectedLayout.Font.Color = clBlack
Appearance.FixedSelectedLayout.Font.Height = -11
Appearance.FixedSelectedLayout.Font.Name = 'Tahoma'
Appearance.FixedSelectedLayout.Font.Style = []
Appearance.BandLayout.Fill.Color = clLightyellow
Appearance.BandLayout.Stroke.Color = 15987699
Appearance.BandLayout.Font.Charset = DEFAULT_CHARSET
Appearance.BandLayout.Font.Color = clWindowText
Appearance.BandLayout.Font.Height = -11
Appearance.BandLayout.Font.Name = 'Tahoma'
Appearance.BandLayout.Font.Style = []
Appearance.ProgressLayout.Color = 15385233
Appearance.ProgressLayout.Format = '%.0f%%'
LeftCol = 0
ScrollMode = scmItemScrolling
DesignTimeSampleData = True
end
object edtSearch: TWebEdit
Left = 437
Top = 198
Width = 121
Height = 22
ChildOrder = 8
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnChange = edtSearchChange
end
end
object XDataWebClient1: TXDataWebClient
object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection
Connection = DMConnection.ApiConnection
...
...
kgOrdersClient/View.OrderList.pas
View file @
7f19b291
...
@@ -3,42 +3,48 @@ unit View.OrderList;
...
@@ -3,42 +3,48 @@ unit View.OrderList;
interface
interface
uses
uses
System
.
SysUtils
,
System
.
Generics
.
Collections
,
System
.
Classes
,
JS
,
Web
,
WEBLib
.
Graphics
,
WEBLib
.
Controls
,
System
.
SysUtils
,
System
.
Classes
,
JS
,
Web
,
WEBLib
.
Graphics
,
WEBLib
.
Controls
,
WEBLib
.
Forms
,
WEBLib
.
Dialogs
,
WEBLib
.
Menus
,
WEBLib
.
ExtCtrls
,
WEBLib
.
StdCtrls
,
WEBLib
.
Forms
,
WEBLib
.
Dialogs
,
WEBLib
.
StdCtrls
,
XData
.
Web
.
Client
,
WEBLib
.
ExtCtrls
,
WEBLib
.
JSON
,
Auth
.
Service
,
XData
.
Web
.
Client
,
WebLib
.
Storage
,
Data
.
DB
,
XData
.
Web
.
Dataset
,
VCL
.
TMSFNCTypes
,
VCL
.
TMSFNCGrid
,
VCL
.
TMSFNCGridData
,
ConnectionModule
,
App
.
Types
,
Vcl
.
StdCtrls
,
Vcl
.
Controls
,
WEBLib
.
DBCtrls
,
VCL
.
TMSFNCUtils
,
VCL
.
TMSFNCGraphics
,
VCL
.
TMSFNCGraphicsTypes
,
Data
.
DB
,
XData
.
Web
.
JsonDataset
,
XData
.
Web
.
Dataset
,
WEBLib
.
DB
,
WEBLib
.
Grids
,
VCL
.
TMSFNCGridCell
,
VCL
.
TMSFNCGridOptions
,
VCL
.
TMSFNCCustomComponent
,
Vcl
.
Grids
;
VCL
.
TMSFNCCustomGrid
,
VCL
.
TMSFNCGridDatabaseAdapter
,
VCL
.
TMSFNCCustomControl
,
VCL
.
TMSFNCCustomScrollControl
,
WEBLib
.
DB
,
XData
.
Web
.
JsonDataset
,
Vcl
.
StdCtrls
,
Vcl
.
Controls
,
ConnectionModule
;
type
type
TFOrderList
=
class
(
TWebForm
)
TFOrderList
=
class
(
TWebForm
)
lblEntries
:
TWebLabel
;
lblEntries
:
TWebLabel
;
lblEntries2
:
TWebLabel
;
lblEntries2
:
TWebLabel
;
edtSearch
:
TWebEdit
;
edtSearch
:
TWebEdit
;
edtCompanyName
:
TWebEdit
;
edtID
:
TWebEdit
;
pnlMessage
:
TWebPanel
;
pnlMessage
:
TWebPanel
;
lblMessage
:
TWebLabel
;
lblMessage
:
TWebLabel
;
btnCloseNotification
:
TWebButton
;
btnCloseNotification
:
TWebButton
;
btnFilter
:
TWebButton
;
XDataWebClient1
:
TXDataWebClient
;
XDataWebClient1
:
TXDataWebClient
;
xdwdsCustomers
:
TXDataWebDataSet
;
wdsCustomers
:
TWebDataSource
;
wdsCustomers
:
TWebDataSource
;
xdwdsCustomers
:
TXDataWebDataSet
;
xdwdsCustomersID
:
TIntegerField
;
xdwdsCustomersID
:
TIntegerField
;
xdwdsCustomersNAME
:
TStringField
;
xdwdsCustomersNAME
:
TStringField
;
xdwdsCustomersSHORT_NAME
:
TStringField
;
xdwdsCustomersSHORT_NAME
:
TStringField
;
xdwdsCustomersADDRESS
:
TStringField
;
xdwdsCustomersADDRESS
:
TStringField
;
tblOrders
:
TWebDBTableControl
;
TMSFNCGrid1
:
TTMSFNCGrid
;
btnConfirm
:
TWebButton
;
cbCorrugatedPlate
:
TWebCheckBox
;
cbCorrugatedPlate
:
TWebCheckBox
;
cbWebPlate
:
TWebCheckBox
;
cbWebPlate
:
TWebCheckBox
;
btnConfirm
:
TWebButton
;
procedure
WebFormShow
(
Sender
:
TObject
)
;
edtCompanyName
:
TWebEdit
;
procedure
btnFilterClick
(
Sender
:
TObject
)
;
edtID
:
TWebEdit
;
procedure
cbCorrugatedPlateClick
(
Sender
:
TObject
)
;
procedure
edtIDChange
(
Sender
:
TObject
);
procedure
cbWebPlateClick
(
Sender
:
TObject
);
procedure
edtCompanyNameChange
(
Sender
:
TObject
);
procedure
btnConfirmClick
(
Sender
:
TObject
);
procedure
tblOrdersClickCell
(
Sender
:
TObject
;
ACol
,
ARow
:
Integer
);
procedure
edtSearchChange
(
Sender
:
TObject
);
private
private
[
async
]
procedure
GetCustomers
;
[
async
]
procedure
getCustomers
();
procedure
FilterDataset
;
procedure
PopulateGridManually
;
procedure
ApplyFilter
;
public
public
class
function
CreateForm
(
AElementID
:
string
):
TWebForm
;
end
;
end
;
var
var
...
@@ -48,142 +54,128 @@ implementation
...
@@ -48,142 +54,128 @@ implementation
{$R *.dfm}
{$R *.dfm}
{ TFOrderList }
procedure
TFOrderList
.
WebFormShow
(
Sender
:
TObject
);
class
function
TFOrderList
.
CreateForm
(
AElementID
:
string
):
TWebForm
;
begin
begin
Application
.
CreateForm
(
TFOrderList
,
AElementID
,
Result
,
getCustomers
();
// Fetch and populate the grid with customer data
procedure
(
AForm
:
TObject
)
begin
with
TFOrderList
(
AForm
)
do
begin
// Initialize or configure form properties as needed
console
.
log
(
'TFOrderList created and bound to ElementID:'
,
AElementID
);
GetCustomers
;
end
;
end
);
end
;
end
;
[
async
]
procedure
TFOrderList
.
edtCompanyNameChange
(
Sender
:
TObject
);
procedure
TFOrderList
.
getCustomers
();
var
xdcResponse
:
TXDataClientResponse
;
customerList
:
TJSObject
;
begin
begin
// FilterDataset;
// Fetch data from XData service
console
.
log
(
'Filtering data logic WIP'
);
xdcResponse
:=
await
(
XDataWebClient1
.
RawInvokeAsync
(
'ILookupService.GetCustomers'
,
[])
);
end
;
customerList
:=
TJSObject
(
xdcResponse
.
Result
)
;
procedure
TFOrderList
.
edtIDChange
(
Sender
:
TObject
);
// Load data into TXDataWebDataset
begin
xdwdsCustomers
.
Close
;
// FilterDataset;
xdwdsCustomers
.
SetJsonData
(
customerList
[
'data'
]);
console
.
log
(
'Filtering data logic WIP'
);
xdwdsCustomers
.
Open
;
// Manually populate the grid
PopulateGridManually
;
end
;
end
;
procedure
TFOrderList
.
GetCustomers
;
procedure
TFOrderList
.
PopulateGridManually
;
var
var
xdcResponse
:
TXDataClientResponse
;
RowIndex
:
Integer
;
ResponseObject
:
TJSObject
;
DataArray
:
TJSArray
;
begin
begin
TMSFNCGrid1
.
BeginUpdate
;
try
try
asm
TMSFNCGrid1
.
Clear
;
// Clear any existing data
startSpinner
();
end
;
// Fetch data from the server
xdcResponse
:=
await
(
XDataWebClient1
.
RawInvokeAsync
(
'ILookupService.GetCustomers'
,
[]));
// Log the raw JSON response to verify its structure
// Set up column headers
console
.
log
(
'Raw JSON Response:'
+
TJSJSON
.
stringify
(
xdcResponse
.
Result
));
TMSFNCGrid1
.
ColumnCount
:=
4
;
TMSFNCGrid1
.
RowCount
:=
1
;
TMSFNCGrid1
.
Cells
[
0
,
0
]
:=
'ID'
;
TMSFNCGrid1
.
Cells
[
1
,
0
]
:=
'Name'
;
TMSFNCGrid1
.
Cells
[
2
,
0
]
:=
'Short Name'
;
TMSFNCGrid1
.
Cells
[
3
,
0
]
:=
'Address'
;
//
Extract the "data" array from the JSON response
//
Populate the grid with data from the dataset
ResponseObject
:=
TJSObject
(
xdcResponse
.
Result
)
;
xdwdsCustomers
.
First
;
DataArray
:=
TJSArray
(
ResponseObject
[
'data'
])
;
RowIndex
:=
1
;
// Load the extracted array into the dataset
while
not
xdwdsCustomers
.
EOF
do
xdwdsCustomers
.
Close
;
begin
xdwdsCustomers
.
SetJsonData
(
DataArray
);
TMSFNCGrid1
.
RowCount
:=
RowIndex
+
1
;
xdwdsCustomers
.
Open
;
// Log record count and dataset status
TMSFNCGrid1
.
Cells
[
0
,
RowIndex
]
:=
xdwdsCustomers
.
FieldByName
(
'ID'
).
AsString
;
console
.
log
(
'Dataset Record Count: '
+
IntToStr
(
xdwdsCustomers
.
RecordCount
));
TMSFNCGrid1
.
Cells
[
1
,
RowIndex
]
:=
xdwdsCustomers
.
FieldByName
(
'NAME'
).
AsString
;
TMSFNCGrid1
.
Cells
[
2
,
RowIndex
]
:=
xdwdsCustomers
.
FieldByName
(
'SHORT_NAME'
).
AsString
;
TMSFNCGrid1
.
Cells
[
3
,
RowIndex
]
:=
xdwdsCustomers
.
FieldByName
(
'ADDRESS'
).
AsString
;
if
xdwdsCustomers
.
RecordCount
=
0
then
Inc
(
RowIndex
);
console
.
log
(
'Dataset is empty.'
)
xdwdsCustomers
.
Next
;
else
console
.
log
(
'Dataset loaded successfully with records.'
);
finally
asm
setTimeout
(
endSpinner
,
2000
);
end
;
end
;
// Auto-size columns
TMSFNCGrid1
.
AutoSizeColumns
;
finally
TMSFNCGrid1
.
EndUpdate
;
end
;
end
;
end
;
end
;
procedure
TFOrderList
.
ApplyFilter
;
var
fd
:
TTMSFNCGridFilterData
;
i
:
Integer
;
SearchText
:
string
;
begin
SearchText
:=
Trim
(
edtSearch
.
Text
);
// Remove any existing filters
TMSFNCGrid1
.
RemoveFilter
;
procedure
TFOrderList
.
tblOrdersClickCell
(
Sender
:
TObject
;
ACol
,
ARow
:
Integer
);
begin
asm
startSpinner
();
end
;
try
// Ensure the dataset is active and the row index is valid
if
xdwdsCustomers
.
Active
and
(
ARow
>=
0
)
and
(
ARow
<
xdwdsCustomers
.
RecordCount
)
then
begin
xdwdsCustomers
.
RecNo
:=
ARow
+
1
;
// Set the dataset to the selected row
// Populate the edit boxes with the dataset field values
TMSFNCGrid1
.
Filter
.
Clear
;
edtCompanyName
.
Text
:=
xdwdsCustomers
.
FieldByName
(
'NAME'
).
AsString
;
edtID
.
Text
:=
xdwdsCustomers
.
FieldByName
(
'ID'
).
AsString
;
console
.
log
(
'Row clicked: ARow='
+
IntToStr
(
ARow
)
+
', Company='
+
edtCompanyName
.
Text
+
', ID='
+
edtID
.
Text
);
// Add a filter for each column
end
;
for
i
:=
0
to
TMSFNCGrid1
.
ColumnCount
-
1
do
finally
begin
asm
fd
:=
TMSFNCGrid1
.
Filter
.
Add
;
setTimeout
(
endSpinner
,
2000
);
fd
.
Column
:=
i
;
end
;
fd
.
Condition
:=
'*'
+
SearchText
+
'*'
;
// Match text anywhere in the cell
fd
.
CaseSensitive
:=
False
;
// Make the filter case-insensitive
// Use foOR for "match any column" logic
if
i
>
0
then
fd
.
Operation
:=
foOR
else
fd
.
Operation
:=
foNONE
;
// First filter has no logical operation
end
;
end
;
end
;
// Apply the filters to the grid
TMSFNCGrid1
.
ApplyFilter
;
end
;
procedure
TFOrderList
.
FilterDataset
;
procedure
TFOrderList
.
btnFilterClick
(
Sender
:
TObject
);
var
FilterTextCompany
,
FilterTextID
:
string
;
FilterCondition
:
string
;
begin
begin
try
ApplyFilter
;
// Get the current filter inputs
end
;
FilterTextCompany
:=
Trim
(
edtCompanyName
.
Text
);
FilterTextID
:=
Trim
(
edtID
.
Text
);
// Build the filter condition
FilterCondition
:=
''
;
if
FilterTextCompany
<>
''
then
FilterCondition
:=
Format
(
'NAME LIKE ''%%%s%%'''
,
[
FilterTextCompany
]);
if
FilterTextID
<>
''
then
begin
if
FilterCondition
<>
''
then
FilterCondition
:=
FilterCondition
+
' AND '
;
FilterCondition
:=
FilterCondition
+
Format
(
'ID LIKE ''%%%s%%'''
,
[
FilterTextID
]);
end
;
// Apply the filter condition
procedure
TFOrderList
.
edtIDChange
(
Sender
:
TObject
);
xdwdsCustomers
.
Filtered
:=
False
;
// Disable existing filter
begin
xdwdsCustomers
.
Filter
:=
FilterCondition
;
// Set new filter
cbWebPlate
.
Checked
:=
False
;
xdwdsCustomers
.
Filtered
:=
True
;
// Enable filtering
end
;
console
.
log
(
'Filter applied:'
,
FilterCondition
);
procedure
TFOrderList
.
cbWebPlateClick
(
Sender
:
TObject
);
begin
cbCorrugatedPlate
.
Checked
:=
False
;
end
;
except
procedure
TFOrderList
.
btnConfirmClick
(
Sender
:
TObject
);
on
E
:
Exception
do
begin
begin
Close
;
// Handle any errors gracefully
console
.
error
(
'Error applying filter:'
,
E
.
Message
);
ShowMessage
(
'An error occurred while applying the filter. Please check your input.'
);
end
;
end
;
end
;
end
;
procedure
TFOrderList
.
edtSearchChange
(
Sender
:
TObject
);
begin
ApplyFilter
;
end
;
end
.
end
.
kgOrdersClient/View.Orders.pas
View file @
7f19b291
...
@@ -79,7 +79,7 @@ type
...
@@ -79,7 +79,7 @@ type
procedure
ClearTable
();
procedure
ClearTable
();
procedure
GeneratePagination
(
TotalPages
:
Integer
);
procedure
GeneratePagination
(
TotalPages
:
Integer
);
function
GenerateSearchOptions
():
string
;
function
GenerateSearchOptions
():
string
;
procedure
orderEntry
(
orderInfo
,
mode
:
string
);
procedure
orderEntry
(
orderInfo
,
customerInfo
,
mode
:
string
);
procedure
HideNotification
();
procedure
HideNotification
();
procedure
ShowNotification
(
Notification
:
string
);
procedure
ShowNotification
(
Notification
:
string
);
procedure
ShowOrderListForm
();
procedure
ShowOrderListForm
();
...
@@ -183,9 +183,16 @@ begin
...
@@ -183,9 +183,16 @@ begin
// Create the order list form, passing the ElementID
// Create the order list form, passing the ElementID
TFOrderList
.
CreateForm
(
pnlOrders
.
ElementID
);
TFOrderList
.
CreateForm
(
pnlOrders
.
ElementID
);
// Show the panel after the form is created
// used to manage Back button handling to close subform
if
Assigned
(
OrdersPanel
)
then
window
.
location
.
hash
:=
'subform'
;
OrdersPanel
.
style
.
setProperty
(
'display'
,
'block'
);
newform
.
ShowModal
(
procedure
(
AValue
:
TModalResult
)
begin
if
newForm
.
edtID
.
Text
<>
''
then
orderEntry
(
''
,
newForm
.
edtID
.
Text
,
'ADD'
);
end
);
end
;
end
;
...
@@ -212,7 +219,7 @@ begin
...
@@ -212,7 +219,7 @@ begin
NewRow
.
Attrs
[
'orderType'
]
:=
XDataWebDataSet1orderType
.
Value
;
NewRow
.
Attrs
[
'orderType'
]
:=
XDataWebDataSet1orderType
.
Value
;
NewRow
.
addEventListener
(
'click'
,
procedure
NewRow
.
addEventListener
(
'click'
,
procedure
begin
begin
orderEntry
(
NewRow
.
Attrs
[
'id'
],
'EDIT'
);
orderEntry
(
NewRow
.
Attrs
[
'id'
],
'
'
,
'
EDIT'
);
end
);
end
);
// Order ID Cell
// Order ID Cell
...
@@ -648,9 +655,9 @@ begin
...
@@ -648,9 +655,9 @@ begin
ShowOrderListForm
();
ShowOrderListForm
();
end
;
end
;
procedure
TFViewOrders
.
orderEntry
(
orderInfo
,
mode
:
string
);
procedure
TFViewOrders
.
orderEntry
(
orderInfo
,
customerInfo
,
mode
:
string
);
begin
begin
FViewMain
.
ViewOrderEntry
(
orderInfo
,
mode
);
FViewMain
.
ViewOrderEntry
(
orderInfo
,
customerInfo
,
mode
);
end
;
end
;
procedure
TFViewOrders
.
btnApplyClick
(
Sender
:
TObject
);
procedure
TFViewOrders
.
btnApplyClick
(
Sender
:
TObject
);
...
@@ -677,7 +684,7 @@ end;
...
@@ -677,7 +684,7 @@ end;
procedure
TFViewOrders
.
btnConfirmClick
(
Sender
:
TObject
);
procedure
TFViewOrders
.
btnConfirmClick
(
Sender
:
TObject
);
begin
begin
orderEntry
(
''
,
'ADD'
);
//
orderEntry('', 'ADD');
end
;
end
;
procedure
TFViewOrders
.
btnFiltersClick
(
Sender
:
TObject
);
procedure
TFViewOrders
.
btnFiltersClick
(
Sender
:
TObject
);
...
...
kgOrdersClient/template/css/app.css
View file @
7f19b291
...
@@ -7,7 +7,12 @@
...
@@ -7,7 +7,12 @@
background-color
:
#fff
;
background-color
:
#fff
;
}
}
input
[
type
=
"text"
]
{
min-width
:
50px
;
max-width
:
100%
;
width
:
auto
;
padding-left
:
5px
;
}
.card-header
{
.card-header
{
width
:
100%
;
width
:
100%
;
...
...
kgOrdersServer/Source/Auth.Database.dfm
View file @
7f19b291
...
@@ -22,7 +22,6 @@ object AuthDatabase: TAuthDatabase
...
@@ -22,7 +22,6 @@ object AuthDatabase: TAuthDatabase
SpecificOptions.Strings = (
SpecificOptions.Strings = (
'PostgreSQL.Schema=envoy')
'PostgreSQL.Schema=envoy')
Username = 'root'
Username = 'root'
Server = '192.168.75.133'
LoginPrompt = False
LoginPrompt = False
Left = 69
Left = 69
Top = 131
Top = 131
...
...
kgOrdersServer/Source/Database.dfm
View file @
7f19b291
...
@@ -8,7 +8,6 @@ object FDatabaseModule: TFDatabaseModule
...
@@ -8,7 +8,6 @@ object FDatabaseModule: TFDatabaseModule
SpecificOptions.Strings = (
SpecificOptions.Strings = (
'PostgreSQL.Schema=envoy')
'PostgreSQL.Schema=envoy')
Username = 'root'
Username = 'root'
Server = '192.168.75.133'
LoginPrompt = False
LoginPrompt = False
Left = 75
Left = 75
Top = 139
Top = 139
...
...
kgOrdersServer/Source/Lookup.Service.pas
View file @
7f19b291
...
@@ -84,12 +84,18 @@ type
...
@@ -84,12 +84,18 @@ type
data
:
TList
<
TOrderItem
>;
data
:
TList
<
TOrderItem
>;
end
;
end
;
TAddressItem
=
class
Public
ADDRESS
:
string
;
end
;
TCustomerItem
=
class
TCustomerItem
=
class
Public
Public
NAME
:
string
;
NAME
:
string
;
ID
:
integer
;
ID
:
integer
;
SHORT_NAME
:
string
;
SHORT_NAME
:
string
;
ADDRESS
:
string
;
staff_fields_invoice_to
:
string
;
ADDRESS_LIST
:
TList
<
TAddressItem
>;
end
;
end
;
TCustomerList
=
class
TCustomerList
=
class
...
@@ -202,6 +208,7 @@ type
...
@@ -202,6 +208,7 @@ type
[
HttpGet
]
function
GetOrders
(
searchOptions
:
string
):
TOrderList
;
[
HttpGet
]
function
GetOrders
(
searchOptions
:
string
):
TOrderList
;
[
HttpGet
]
function
GetOrder
(
orderInfo
:
string
):
TFullOrder
;
[
HttpGet
]
function
GetOrder
(
orderInfo
:
string
):
TFullOrder
;
[
HttpGet
]
function
GetCustomers
():
TCustomerList
;
[
HttpGet
]
function
GetCustomers
():
TCustomerList
;
[
HttpGet
]
function
GetCustomer
(
ID
:
string
):
TCustomerItem
;
function
AddUser
(
userInfo
:
string
):
string
;
function
AddUser
(
userInfo
:
string
):
string
;
function
AddItem
(
itemInfo
:
string
):
string
;
function
AddItem
(
itemInfo
:
string
):
string
;
...
...
kgOrdersServer/Source/Lookup.ServiceImpl.pas
View file @
7f19b291
...
@@ -26,6 +26,7 @@ type
...
@@ -26,6 +26,7 @@ type
function
GetOrders
(
searchOptions
:
string
):
TOrderList
;
function
GetOrders
(
searchOptions
:
string
):
TOrderList
;
function
GetOrder
(
orderInfo
:
string
):
TFullOrder
;
function
GetOrder
(
orderInfo
:
string
):
TFullOrder
;
function
GetCustomers
():
TCustomerList
;
function
GetCustomers
():
TCustomerList
;
function
GetCustomer
(
ID
:
string
):
TCustomerItem
;
function
EditUser
(
const
editOptions
:
string
):
string
;
function
EditUser
(
const
editOptions
:
string
):
string
;
function
Search
(
phoneNum
:
string
):
TOrderList
;
function
Search
(
phoneNum
:
string
):
TOrderList
;
function
AddUser
(
userInfo
:
string
):
string
;
function
AddUser
(
userInfo
:
string
):
string
;
...
@@ -80,7 +81,7 @@ begin
...
@@ -80,7 +81,7 @@ begin
customer
.
NAME
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'NAME'
).
AsString
;
customer
.
NAME
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'NAME'
).
AsString
;
customer
.
ID
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'CUSTOMER_ID'
).
AsInteger
;
customer
.
ID
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'CUSTOMER_ID'
).
AsInteger
;
customer
.
SHORT_NAME
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'SHORT_NAME'
).
AsString
;
customer
.
SHORT_NAME
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'SHORT_NAME'
).
AsString
;
customer
.
ADDRESs
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'BILL_ADDRESS'
).
AsString
+
customer
.
staff_fields_invoice_to
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'BILL_ADDRESS'
).
AsString
+
', '
+
ordersDB
.
UniQuery1
.
FieldByName
(
'BILL_CITY'
).
AsString
+
', '
+
ordersDB
.
UniQuery1
.
FieldByName
(
'BILL_CITY'
).
AsString
+
' '
+
ordersDB
.
UniQuery1
.
FieldByName
(
'BILL_ZIP'
).
AsString
;
' '
+
ordersDB
.
UniQuery1
.
FieldByName
(
'BILL_ZIP'
).
AsString
;
result
.
data
.
Add
(
customer
);
result
.
data
.
Add
(
customer
);
...
@@ -90,6 +91,35 @@ begin
...
@@ -90,6 +91,35 @@ begin
ordersDB
.
UniQuery1
.
Close
;
ordersDB
.
UniQuery1
.
Close
;
end
;
end
;
function
TLookupService
.
GetCustomer
(
ID
:
string
):
TCustomerItem
;
var
SQL
:
string
;
ADDRESS
:
TAddressItem
;
begin
SQL
:=
'SELECT c.NAME, c.SHORT_NAME, c.BILL_ADDRESS_BLOCK, s.ship_block FROM customers c JOIN customers_ship s ON c.CUSTOMER_ID = s.customer_id WHERE c.CUSTOMER_ID = '
+
ID
;
doQuery
(
ordersDB
.
UniQuery1
,
SQL
);
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
.
ID
:=
StrToInt
(
ID
);
result
.
SHORT_NAME
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'SHORT_NAME'
).
AsString
;
result
.
staff_fields_invoice_to
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'BILL_ADDRESS_BLOCK'
).
AsString
;
while
not
ordersDB
.
UniQuery1
.
Eof
do
begin
ADDRESS
:=
TAddressItem
.
Create
;
TXDataOperationContext
.
Current
.
Handler
.
ManagedObjects
.
Add
(
ADDRESS
);
ADDRESS
.
ADDRESS
:=
ordersDB
.
UniQuery1
.
FieldByName
(
'ship_block'
).
AsString
;
result
.
ADDRESS_LIST
.
Add
(
ADDRESS
);
ordersDB
.
UniQuery1
.
Next
;
end
;
ordersDB
.
UniQuery1
.
Close
;
end
;
function
TLookupService
.
Search
(
phoneNum
:
string
):
TOrderList
;
function
TLookupService
.
Search
(
phoneNum
:
string
):
TOrderList
;
// Searchs the database for a specific from phone number then returns a list of
// Searchs the database for a specific from phone number then returns a list of
// calls from said number
// calls from said number
...
...
kgOrdersServer/kgOrdersServer.ini
View file @
7f19b291
[Options]
[Options]
LogFileNum
=
2
26
LogFileNum
=
2
34
UpdateTimerLength
=
0
UpdateTimerLength
=
0
[Database]
[Database]
--Server
=
192.168.159.132
--Server
=
192.168.159.132
--Server
=
192.168.102.129
--Server
=
192.168.102.129
Server
=
192.168.
75.133
Server
=
192.168.
102.130
[Twilio]
[Twilio]
AccountSID
=
AC37aeef9c36a2cccbaecbadafc172b2ff
AccountSID
=
AC37aeef9c36a2cccbaecbadafc172b2ff
...
...
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