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
dfe97fe5
Commit
dfe97fe5
authored
May 01, 2025
by
Mac Stephens
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/cam3'
parents
d00a993f
4fbdce5d
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1137 additions
and
371 deletions
+1137
-371
View.AddOrder.dfm
kgOrdersClient/View.AddOrder.dfm
+25
-25
View.AddOrder.pas
kgOrdersClient/View.AddOrder.pas
+20
-5
View.Main.pas
kgOrdersClient/View.Main.pas
+56
-23
View.OrderEntryCorrugated.dfm
kgOrdersClient/View.OrderEntryCorrugated.dfm
+35
-4
View.OrderEntryCorrugated.html
kgOrdersClient/View.OrderEntryCorrugated.html
+60
-37
View.OrderEntryCorrugated.pas
kgOrdersClient/View.OrderEntryCorrugated.pas
+211
-55
View.OrderEntryCuttingDie.dfm
kgOrdersClient/View.OrderEntryCuttingDie.dfm
+46
-16
View.OrderEntryCuttingDie.html
kgOrdersClient/View.OrderEntryCuttingDie.html
+70
-24
View.OrderEntryCuttingDie.pas
kgOrdersClient/View.OrderEntryCuttingDie.pas
+208
-45
View.OrderEntryWeb.dfm
kgOrdersClient/View.OrderEntryWeb.dfm
+43
-2
View.OrderEntryWeb.html
kgOrdersClient/View.OrderEntryWeb.html
+72
-24
View.OrderEntryWeb.pas
kgOrdersClient/View.OrderEntryWeb.pas
+176
-35
View.Orders.pas
kgOrdersClient/View.Orders.pas
+67
-26
View.Search.dfm
kgOrdersClient/View.Search.dfm
+2
-2
View.Search.pas
kgOrdersClient/View.Search.pas
+1
-6
app.css
kgOrdersClient/css/app.css
+8
-0
Common.Config.pas
kgOrdersServer/Source/Common.Config.pas
+35
-40
Lookup.ServiceImpl.pas
kgOrdersServer/Source/Lookup.ServiceImpl.pas
+1
-1
kgOrdersServer.ini
kgOrdersServer/kgOrdersServer.ini
+1
-1
20250424_110143.pdf
kgOrdersServer/static/20250424_110143.pdf
+0
-0
No files found.
kgOrdersClient/View.AddOrder.dfm
View file @
dfe97fe5
...
...
@@ -3,8 +3,8 @@ object FAddOrder: TFAddOrder
Height = 477
OnShow = WebFormShow
object WebLabel1: TWebLabel
Left =
33
4
Top =
56
Left = 4
Top =
81
Width = 35
Height = 15
Caption = 'Search'
...
...
@@ -12,17 +12,17 @@ object FAddOrder: TFAddOrder
WidthPercent = 100.000000000000000000
end
object WebLabel2: TWebLabel
Left =
461
Top =
56
Width =
58
Left =
143
Top =
81
Width =
113
Height = 15
Caption = 'Selected ID'
Caption = 'Selected
Company
ID'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object edtSearch: TWebEdit
Left =
33
4
Top =
8
2
Left = 4
Top =
10
2
Width = 121
Height = 22
HeightPercent = 100.000000000000000000
...
...
@@ -30,8 +30,8 @@ object FAddOrder: TFAddOrder
OnChange = edtSearchChange
end
object edtID: TWebEdit
Left =
461
Top =
8
2
Left =
143
Top =
10
2
Width = 142
Height = 22
ChildOrder = 1
...
...
@@ -41,9 +41,9 @@ object FAddOrder: TFAddOrder
end
object TMSFNCGrid1: TTMSFNCGrid
Left = 0
Top = 1
46
Top = 1
60
Width = 871
Height = 3
31
Height = 3
17
Align = alBottom
ParentDoubleBuffered = False
DoubleBuffered = True
...
...
@@ -198,18 +198,19 @@ object FAddOrder: TFAddOrder
end
object cbCorrugatedPlate: TWebCheckBox
Left = 4
Top =
83
Top =
49
Width = 113
Height = 22
Caption = 'Corrugated Plate'
ChildOrder = 3
ElementID = 'cbcorrugatedplate'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = cbCorrugatedPlateClick
end
object cbWebPlate: TWebCheckBox
Left = 1
28
Top =
83
Left = 1
34
Top =
49
Width = 83
Height = 22
Caption = 'Web Plate'
...
...
@@ -219,8 +220,8 @@ object FAddOrder: TFAddOrder
OnClick = cbWebPlateClick
end
object btnCancel: TWebButton
Left =
740
Top =
81
Left =
436
Top =
105
Width = 96
Height = 25
Caption = 'Cancel'
...
...
@@ -230,19 +231,19 @@ object FAddOrder: TFAddOrder
OnClick = btnCancelClick
end
object btnConfirm: TWebButton
Left =
622
Top =
81
Left =
328
Top =
105
Width = 96
Height = 25
Caption = '
Confirm
'
Caption = '
Select
'
ChildOrder = 5
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = btnConfirmClick
end
object cbCuttingDie: TWebCheckBox
Left = 23
1
Top =
83
Left = 23
9
Top =
49
Width = 83
Height = 22
Caption = 'Cutting Die'
...
...
@@ -259,12 +260,11 @@ object FAddOrder: TFAddOrder
HelpType = htKeyword
TabStop = False
ChildOrder = 8
ElementClassName = 'form-control'
ElementFont = efCSS
Enabled = False
Font.Charset = ANSI_CHARSET
Font.Color = cl
Black
Font.Height = -
8
Font.Color = cl
Red
Font.Height = -
13
Font.Name = 'Arial'
Font.Style = []
HeightPercent = 100.000000000000000000
...
...
kgOrdersClient/View.AddOrder.pas
View file @
dfe97fe5
...
...
@@ -67,13 +67,28 @@ end;
procedure
TFAddOrder
.
btnConfirmClick
(
Sender
:
TObject
);
begin
confirm
:=
true
;
edtNotification
.
ElementHandle
.
style
.
setProperty
(
'color'
,
'#8B0000'
,
'important'
);
if
(
(
not
cbCorrugatedPlate
.
Checked
)
and
(
not
cbWebPlate
.
Checked
)
and
(
not
cbCuttingDie
.
Checked
)
)
then
edtNotification
.
Text
:=
'Please Select an Order Type'
else
if
edtID
.
Text
=
''
then
edtNotification
.
Text
:=
'Please Select a Customer'
else
begin
confirm
:=
true
;
edtNotification
.
Text
:=
'Please Select an Order Type'
;
confirm
:=
false
;
end
;
if
edtID
.
Text
=
''
then
begin
edtNotification
.
Text
:=
'Please Select a Customer'
;
confirm
:=
false
;
end
;
if
(
(
not
cbCorrugatedPlate
.
Checked
)
and
(
not
cbWebPlate
.
Checked
)
and
(
not
cbCuttingDie
.
Checked
)
and
(
edtID
.
Text
=
''
))
then
begin
edtNotification
.
Text
:=
'Please Select an Order Type and a Customer'
;
confirm
:=
false
;
end
;
if
confirm
=
true
then
begin
Close
;
end
;
end
;
...
...
kgOrdersClient/View.Main.pas
View file @
dfe97fe5
...
...
@@ -52,13 +52,14 @@ type
procedure
ShowForm
(
AFormClass
:
TWebFormClass
);
procedure
EditUser
(
Mode
,
Username
,
Password
,
Name
,
Status
,
Email
,
Access
,
Rights
,
Perspective
,
QB
:
string
);
procedure
ViewOrderEntryCorrugated
(
orderInfo
,
customerInfo
,
mode
:
string
);
procedure
ViewOrderEntryWeb
(
orderInfo
,
customerInfo
,
mode
:
string
);
procedure
ViewOrderEntryCuttingDie
(
orderInfo
,
customerInfo
,
mode
:
string
);
procedure
ViewOrderEntryCorrugated
(
orderInfo
,
customerInfo
,
mode
,
info
:
string
);
procedure
ViewOrderEntryWeb
(
orderInfo
,
customerInfo
,
mode
,
info
:
string
);
procedure
ViewOrderEntryCuttingDie
(
orderInfo
,
customerInfo
,
mode
,
info
:
string
);
procedure
ViewOrders
(
info
:
string
);
procedure
ShowUserForm
(
Info
:
string
);
var
search
:
string
;
change
:
boolean
;
end
;
var
...
...
@@ -89,6 +90,7 @@ begin
userName
:=
JS
.
toString
(
AuthService
.
TokenPayload
.
Properties
[
'user_name'
]);
lblUsername
.
Caption
:=
' '
+
userName
.
ToLower
+
' '
;
FChildForm
:=
nil
;
change
:=
false
;
if
(
not
(
JS
.
toBoolean
(
AuthService
.
TokenPayload
.
Properties
[
'user_admin'
])))
then
lblUsers
.
Visible
:=
false
;
...
...
@@ -106,43 +108,74 @@ end;
procedure
TFViewMain
.
lblCustomersClick
(
Sender
:
TObject
);
begin
if
(
not
(
change
)
)
then
begin
//ShowForm(TFViewCustomers);
lblAppTitle
.
Caption
:=
'Koehler-Gibson Customers'
;
setActive
(
'Customers'
);
end
else
ShowMessage
(
'Please Save or Cancel your changes'
);
end
;
procedure
TFViewMain
.
lblHomeClick
(
Sender
:
TObject
);
begin
ShowForm
(
TFViewHome
);
lblAppTitle
.
Caption
:=
'Koehler-Gibson Home'
;
//setActive('Home');
if
(
not
(
change
)
)
then
begin
ShowForm
(
TFViewHome
);
lblAppTitle
.
Caption
:=
'Koehler-Gibson Home'
;
//setActive('Home');
end
else
ShowMessage
(
'Please Save or Cancel your changes'
);
end
;
procedure
TFViewMain
.
lblordersClick
(
Sender
:
TObject
);
begin
ShowForm
(
TFViewOrders
);
lblAppTitle
.
Caption
:=
'Koehler-Gibson Orders'
;
setActive
(
'Orders'
);
console
.
log
(
change
);
if
(
not
(
change
)
)
then
begin
ShowForm
(
TFViewOrders
);
lblAppTitle
.
Caption
:=
'Koehler-Gibson Orders'
;
setActive
(
'Orders'
);
end
else
ShowMessage
(
'Please Save or Cancel your changes'
);
end
;
procedure
TFViewMain
.
lblQuickbooksClick
(
Sender
:
TObject
);
begin
//ShowForm(TFViewQuickbooks);
lblAppTitle
.
Caption
:=
'Koehler-Gibson QuickBooks'
;
setActive
(
'QuickBooks'
);
if
(
not
(
change
)
)
then
begin
//ShowForm(TFViewQuickbooks);
lblAppTitle
.
Caption
:=
'Koehler-Gibson QuickBooks'
;
setActive
(
'QuickBooks'
);
end
else
ShowMessage
(
'Please Save or Cancel your changes'
);
end
;
procedure
TFViewMain
.
lblUsersClick
(
Sender
:
TObject
);
begin
ShowForm
(
TFViewUsers
);
lblAppTitle
.
Caption
:=
'Koehler-Gibson Users'
;
if
(
not
(
change
)
)
then
begin
ShowForm
(
TFViewUsers
);
lblAppTitle
.
Caption
:=
'Koehler-Gibson Users'
;
end
else
ShowMessage
(
'Please Save or Cancel your changes'
);
end
;
procedure
TFViewMain
.
lblItemsListClick
(
Sender
:
TObject
);
begin
ShowForm
(
TFViewItems
);
lblAppTitle
.
Caption
:=
'Koehler-Gibson Items'
;
setActive
(
'Items'
);
if
(
not
(
change
)
)
then
begin
ShowForm
(
TFViewItems
);
lblAppTitle
.
Caption
:=
'Koehler-Gibson Items'
;
setActive
(
'Items'
);
end
else
ShowMessage
(
'Please Save or Cancel your changes'
);
end
;
procedure
TFViewMain
.
setActive
(
page
:
string
);
...
...
@@ -236,28 +269,28 @@ begin
end
;
procedure
TFViewMain
.
ViewOrderEntryCorrugated
(
orderInfo
,
customerInfo
,
mode
:
string
);
procedure
TFViewMain
.
ViewOrderEntryCorrugated
(
orderInfo
,
customerInfo
,
mode
,
info
:
string
);
begin
lblAppTitle
.
Caption
:=
'Koehler-Gibson Order Entry'
;
if
Assigned
(
FChildForm
)
then
FChildForm
.
Free
;
FChildForm
:=
TFOrderEntryCorrugated
.
CreateForm
(
WebPanel1
.
ElementID
,
orderInfo
,
customerInfo
,
mode
);
FChildForm
:=
TFOrderEntryCorrugated
.
CreateForm
(
WebPanel1
.
ElementID
,
orderInfo
,
customerInfo
,
mode
,
info
);
end
;
procedure
TFViewMain
.
ViewOrderEntryWeb
(
orderInfo
,
customerInfo
,
mode
:
string
);
procedure
TFViewMain
.
ViewOrderEntryWeb
(
orderInfo
,
customerInfo
,
mode
,
info
:
string
);
begin
lblAppTitle
.
Caption
:=
'Koehler-Gibson Order Entry'
;
if
Assigned
(
FChildForm
)
then
FChildForm
.
Free
;
FChildForm
:=
TFOrderEntryWeb
.
CreateForm
(
WebPanel1
.
ElementID
,
orderInfo
,
customerInfo
,
mode
);
FChildForm
:=
TFOrderEntryWeb
.
CreateForm
(
WebPanel1
.
ElementID
,
orderInfo
,
customerInfo
,
mode
,
info
);
end
;
procedure
TFViewMain
.
ViewOrderEntryCuttingDie
(
orderInfo
,
customerInfo
,
mode
:
string
);
procedure
TFViewMain
.
ViewOrderEntryCuttingDie
(
orderInfo
,
customerInfo
,
mode
,
info
:
string
);
begin
lblAppTitle
.
Caption
:=
'Koehler-Gibson Order Entry'
;
if
Assigned
(
FChildForm
)
then
FChildForm
.
Free
;
FChildForm
:=
TFOrderEntryCuttingDie
.
CreateForm
(
WebPanel1
.
ElementID
,
orderInfo
,
customerInfo
,
mode
);
FChildForm
:=
TFOrderEntryCuttingDie
.
CreateForm
(
WebPanel1
.
ElementID
,
orderInfo
,
customerInfo
,
mode
,
info
);
end
;
procedure
TFViewMain
.
ShowUserForm
(
Info
:
string
);
...
...
kgOrdersClient/View.OrderEntryCorrugated.dfm
View file @
dfe97fe5
...
...
@@ -147,6 +147,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ElementPosition = epRelative
Role = 'null'
Text = ''
OnChange = dtpOrderDateChange
end
object dtpProofDate: TWebDateTimePicker
Left = 22
...
...
@@ -161,6 +162,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ElementPosition = epRelative
Role = 'null'
Text = ''
OnChange = dtpProofDateChange
end
object dtpShipDate: TWebDateTimePicker
Left = 22
...
...
@@ -175,6 +177,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ElementPosition = epRelative
Role = 'null'
Text = ''
OnChange = dtpShipDateChange
end
object dtpArtDue: TWebDateTimePicker
Left = 24
...
...
@@ -203,6 +206,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ElementPosition = epRelative
Role = 'null'
Text = ''
OnChange = dtpPlateDueChange
end
object dtpMountDue: TWebDateTimePicker
Left = 24
...
...
@@ -217,6 +221,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ElementPosition = epRelative
Role = 'null'
Text = ''
OnChange = dtpMountDueChange
end
object WebButton1: TWebButton
Left = 658
...
...
@@ -245,6 +250,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ElementPosition = epRelative
Role = 'null'
Text = ''
OnChange = dtpApprovedDateChange
end
object edtCompanyName: TWebDBEdit
Left = 18
...
...
@@ -857,7 +863,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
DataField = 'general_special_instructions'
DataSource = WebDataSource1
end
object btn
Confirm
: TWebButton
object btn
Save
: TWebButton
Left = 526
Top = 560
Width = 96
...
...
@@ -869,7 +875,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
HeightPercent = 100.000000000000000000
Role = 'null'
WidthPercent = 100.000000000000000000
OnClick = btn
Confirm
Click
OnClick = btn
Save
Click
end
object cbRefArtAPDF: TWebCheckBox
Left = 316
...
...
@@ -1196,6 +1202,30 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
WidthPercent = 100.000000000000000000
OnClick = btn_confirm_deleteClick
end
object btnEdit: TWebButton
Left = 1202
Top = 560
Width = 96
Height = 25
Caption = 'Edit'
ChildOrder = 83
ElementID = 'btnedit'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = btnEditClick
end
object btnAdd: TWebButton
Left = 1202
Top = 520
Width = 96
Height = 25
Caption = 'Add'
ChildOrder = 84
ElementID = 'btnadd'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = btnAddClick
end
object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection
Left = 1014
...
...
@@ -1208,6 +1238,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 256
end
object XDataWebDataSet1: TXDataWebDataSet
AfterEdit = XDataWebDataSet1AfterEdit
Connection = DMConnection.ApiConnection
Left = 1060
Top = 182
...
...
@@ -1505,11 +1536,11 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
end
object wdsShipTo: TWebDataSource
DataSet = xdwdsShipTo
OnDataChange = wdsShipToDataChange
Left = 1090
Top = 124
end
object xdwdsShipTo: TXDataWebDataSet
AfterEdit = xdwdsShipToAfterEdit
Left = 1096
Top = 40
object xdwdsShipToADDRESS: TStringField
...
...
@@ -1518,11 +1549,11 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
end
object wdsQBItem: TWebDataSource
DataSet = xdwdsQBItem
OnDataChange = wdsQBItemDataChange
Left = 1172
Top = 128
end
object xdwdsQBItem: TXDataWebDataSet
AfterEdit = xdwdsQBItemAfterEdit
Left = 1174
Top = 38
object xdwdsQBItemname: TStringField
...
...
kgOrdersClient/View.OrderEntryCorrugated.html
View file @
dfe97fe5
<nav
class=
"navbar navbar-expand navbar-light bg-light sticky-top"
style=
"z-index: 100;"
>
<div
class=
"container-fluid ps-0"
>
<div
id=
"view.login.message"
class=
"alert alert-danger"
style=
"padding: 0.25rem 0.5rem; font-size: 0.875rem; line-height: 1.5; display: flex; align-items: center; margin: 0 0 0 60px; height: 32px; width: 400px;"
>
<button
id=
"view.login.message.button"
type=
"button"
class=
"btn-close"
aria-label=
"Close"
></button>
<span
id=
"view.login.message.label"
></span>
</div>
<ul
class=
"navbar-nav me-auto ps-2"
>
<li
class=
"nav-item pe-2"
>
<button
id=
"btnadd"
class=
"btn btn-primary btn-sm"
>
Add
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btnedit"
class=
"btn btn-primary btn-sm"
>
Edit
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btncopy"
class=
"btn btn-primary btn-sm"
>
Copy
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btndelete"
class=
"btn btn-danger btn-sm"
>
Delete
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btnpdf"
class=
"btn btn-primary btn-sm"
>
PDF
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btnconfirm"
class=
"btn btn-success btn-sm"
>
Save
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btncancel"
class=
"btn btn-danger btn-sm"
>
Cancel
</button>
</li>
<li
class=
"nav-item"
>
<button
id=
"btnclose"
class=
"btn btn-primary btn-sm"
>
Close
</button>
</li>
</ul>
</div>
</nav>
<div
class=
"row mx-5"
>
<div
class=
"col-12 col-md-8"
>
<!-- Alert Section -->
<div
class=
"row"
>
<div
class=
col-sm
>
<div
id=
"view.login.message"
class=
"alert alert-danger"
>
<button
id=
"view.login.message.button"
type=
"button"
class=
"btn-close"
aria-label=
"Close"
></button>
<span
id=
"view.login.message.label"
></span>
</div>
</div>
</div>
</div>
<h4
class=
"custom-h4 mt-3"
>
Company
</h4>
<hr
class=
"custom-hr"
>
<div
class=
"row"
>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
class=
"form-label mt-2"
>
Company Name:
</label>
<input
id=
"edtcompanyname"
type=
"text"
class=
"form-control"
style=
"width: 300px;"
/>
<input
id=
"edtcompanyname"
type=
"text"
class=
"form-control"
style=
"width: 300px;"
required
/>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide a Company Name.
</div>
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
class=
"form-label mt-2"
>
Account Company Name:
</label>
<input
id=
"edtaccountcompanyname"
type=
"text"
class=
"form-control"
style=
"width: 150px"
/>
<input
id=
"edtaccountcompanyname"
type=
"text"
class=
"form-control"
style=
"width: 150px"
required
/>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide a Company Account Name.
</div>
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
class=
"form-label mt-2"
>
In Quickbooks?:
</label>
...
...
@@ -36,7 +69,10 @@
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Order Date:
</label>
<input
class=
"form-control input-sm"
id=
"dtporderdate"
type=
"date"
>
<input
class=
"form-control input-sm"
id=
"dtporderdate"
type=
"date"
required
>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide an Order Date.
</div>
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Proof Date:
</label>
...
...
@@ -60,11 +96,17 @@
</div>
<div>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Invoice To:
</label>
<input
id=
"edtinvoiceto"
class=
"form-control input-sm"
/>
<input
id=
"edtinvoiceto"
class=
"form-control input-sm"
required
/>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide an Invoice Address.
</div>
</div>
<div>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Ship To:
</label>
<select
id=
"wcbshipto"
class=
'form-select'
></select>
<select
id=
"wcbshipto"
class=
'form-select'
required
></select>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide a Ship To Address.
</div>
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
PO Number:
</label>
...
...
@@ -300,32 +342,13 @@
</div>
<h4
class=
"custom-h4 mt-3"
>
General
</h4>
<hr
class=
"custom-hr"
>
<div
class=
"row"
>
<div
class=
"row
pb-3
"
>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label"
>
Special Instructions
</label>
<textarea
id=
"edtspecialinstructions"
class=
"form-control"
style=
" width: 500px; height: 150px;"
></textarea>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-auto"
>
<button
id=
"btnconfirm"
class=
"btn btn-primary btn-sm float-end my-2"
>
Confirm
</button>
</div>
<div
class=
"col-auto"
>
<button
id=
"btncancel"
class=
"btn btn-primary btn-sm float-end my-2"
>
Cancel
</button>
</div>
<div
class=
"col-auto"
>
<button
id=
"btncopy"
class=
"btn btn-primary btn-sm float-end my-2"
>
Copy
</button>
</div>
<div
class=
"col-auto"
>
<button
id=
"btnpdf"
class=
"btn btn-primary btn-sm float-end my-2"
>
PDF
</button>
</div>
<div
class=
"col-auto"
>
<button
id=
"btndelete"
class=
"btn btn-primary btn-sm float-end my-2"
>
Delete
</button>
</div>
<div
class=
"col-auto"
>
<button
id=
"btnclose"
class=
"btn btn-primary btn-sm float-end my-2"
>
Close
</button>
</div>
</div>
</div>
<div
class=
"modal fade"
id=
"confirmation_modal"
tabindex=
"-1"
aria-labelledby=
"confirmation_modal_label"
aria-hidden=
"true"
>
...
...
@@ -335,11 +358,11 @@
<h5
class=
"modal-title"
id=
"confirmation_modal_label"
>
Confirm
</h5>
<button
type=
"button"
class=
"btn-close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
></button>
</div>
<div
class=
"modal-body"
>
<div
class=
"modal-body"
id=
"modal_body"
>
Are you sure you want to delete this order?
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-secondary"
data-bs-dismiss=
"modal"
>
Cancel
</button>
<button
type=
"button"
class=
"btn btn-secondary"
data-bs-dismiss=
"modal"
id=
'btn_confirm_cancel'
>
Cancel
</button>
<button
type=
"button"
class=
"btn btn-primary"
data-bs-dismiss=
"modal"
id=
"btn_confirm_delete"
>
Delete
</button>
</div>
</div>
...
...
kgOrdersClient/View.OrderEntryCorrugated.pas
View file @
dfe97fe5
...
...
@@ -77,7 +77,7 @@ type
tmrScrollTop
:
TWebTimer
;
XDataWebDataSet1
:
TXDataWebDataSet
;
WebDataSource1
:
TWebDataSource
;
btn
Confirm
:
TWebButton
;
btn
Save
:
TWebButton
;
XDataWebDataSet1ORDER_ID
:
TIntegerField
;
XDataWebDataSet1COMPANY_ID
:
TIntegerField
;
XDataWebDataSet1USER_ID
:
TIntegerField
;
...
...
@@ -200,6 +200,8 @@ type
edtOrderNum
:
TWebEdit
;
btn_confirm_delete
:
TWebButton
;
tmrReturn
:
TWebTimer
;
btnEdit
:
TWebButton
;
btnAdd
:
TWebButton
;
procedure
WebFormCreate
(
Sender
:
TObject
);
procedure
HideNotification
();
procedure
ShowNotification
(
Notification
:
string
);
...
...
@@ -209,7 +211,7 @@ type
procedure
tmrScrollTopTimer
(
Sender
:
TObject
);
procedure
WebButton1Click
(
Sender
:
TObject
);
procedure
addColorRow
(
num
,
Color
,
LPI
,
Size
:
string
);
procedure
btn
Confirm
Click
(
Sender
:
TObject
);
procedure
btn
Save
Click
(
Sender
:
TObject
);
[
async
]
procedure
AddCorrugatedOrder
(
orderJSON
:
TJSONObject
);
[
async
]
procedure
GenerateReportPDF
;
[
async
]
procedure
DelOrder
();
...
...
@@ -220,11 +222,22 @@ type
procedure
btnCloseClick
(
Sender
:
TObject
);
procedure
btnCloseNotificationClick
(
Sender
:
TObject
);
procedure
btnDeleteClick
(
Sender
:
TObject
);
procedure
wdsShipToDataChange
(
Sender
:
TObject
;
Field
:
TField
);
procedure
wdsQBItemDataChange
(
Sender
:
TObject
;
Field
:
TField
);
procedure
btn_confirm_deleteClick
(
Sender
:
TObject
);
procedure
tmrReturnTimer
(
Sender
:
TObject
);
function
VerifyOrder
():
boolean
;
procedure
XDataWebDataSet1AfterEdit
(
DataSet
:
TDataSet
);
procedure
xdwdsShipToAfterEdit
(
DataSet
:
TDataSet
);
procedure
dtpApprovedDateChange
(
Sender
:
TObject
);
procedure
dtpMountDueChange
(
Sender
:
TObject
);
procedure
dtpPlateDueChange
(
Sender
:
TObject
);
procedure
dtpShipDateChange
(
Sender
:
TObject
);
procedure
dtpProofDateChange
(
Sender
:
TObject
);
procedure
dtpOrderDateChange
(
Sender
:
TObject
);
procedure
EditMode
();
procedure
btnEditClick
(
Sender
:
TObject
);
procedure
btnAddClick
(
Sender
:
TObject
);
procedure
xdwdsQBItemAfterEdit
(
DataSet
:
TDataSet
);
procedure
ViewMode
();
private
FAgencyCode
:
string
;
FCurrentReportType
:
string
;
...
...
@@ -232,9 +245,11 @@ type
orderID
:
string
;
customerID
:
string
;
mode
:
string
;
changed
:
boolean
;
notification
:
string
;
//FJSONProc1: TJSONProc1;
public
class
function
CreateForm
(
AElementID
,
orderInfo
,
customerInfo
,
mode
:
string
):
TWebForm
;
class
function
CreateForm
(
AElementID
,
orderInfo
,
customerInfo
,
mode
,
info
:
string
):
TWebForm
;
end
;
var
...
...
@@ -245,7 +260,7 @@ implementation
{$R *.dfm}
uses
View
.
Home
,
View
.
Main
;
View
.
Home
,
View
.
Main
,
View
.
AddOrder
;
procedure
TFOrderEntryCorrugated
.
sendOrderToServer
();
var
...
...
@@ -389,51 +404,69 @@ begin
end
;
procedure
TFOrderEntryCorrugated
.
btn
Confirm
Click
(
Sender
:
TObject
);
procedure
TFOrderEntryCorrugated
.
btn
Save
Click
(
Sender
:
TObject
);
// Converts all the information on the page into a JSON to then send to the server
begin
if
VerifyOrder
()
then
begin
sendOrderToServer
();
btnPDF
.
Enabled
:=
true
;
btnDelete
.
Enabled
:=
true
;
ViewMode
();
end
;
window
.
scrollTo
(
0
,
0
);
end
;
function
TFOrderEntryCorrugated
.
VerifyOrder
:
Boolean
;
var
input
:
TJSHTMLInputElement
;
begin
result
:=
true
;
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'edtcompanyname'
));
if
edtCompanyName
.
Text
=
''
then
begin
showNotification
(
'Failure:Orders Must Have a Company Name'
);
window
.
scrollTo
(
0
,
0
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'edtaccountcompanyname'
));
if
edtCompanyAccountName
.
Text
=
''
then
begin
showNotification
(
'Failure:Orders Must Have a Company Account Name'
);
window
.
scrollTo
(
0
,
0
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'edtinvoiceto'
));
if
edtInvoiceTo
.
Text
=
''
then
begin
showNotification
(
'Failure:Orders Must Have an Invoice Address'
);
window
.
scrollTo
(
0
,
0
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'wcbshipto'
));
if
WebDBComboBox1
.
Text
=
''
then
begin
showNotification
(
'Failure:Orders Must Have a Billing Address'
);
window
.
scrollTo
(
0
,
0
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'dtporderdate'
));
if
dtpOrderDate
.
Date
=
0
then
begin
showNotification
(
'Failure:Orders Must Have an Order Date'
);
window
.
scrollTo
(
0
,
0
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
end
;
procedure
TFOrderEntryCorrugated
.
btnCopyClick
(
Sender
:
TObject
);
...
...
@@ -448,14 +481,16 @@ begin
dtpShipDate
.
Date
:=
0
;
dtpApprovedDate
.
Date
:=
0
;
edtOrderNum
.
Text
:=
''
;
btnPDF
.
Enabled
:=
False
;
btnDelete
.
Enabled
:=
False
;
EditMode
();
ShowNotification
(
'Success:Order Successfully Copied'
);
window
.
scrollTo
(
0
,
0
);
end
;
procedure
TFOrderEntryCorrugated
.
btnDeleteClick
(
Sender
:
TObject
);
begin
document
.
getElementById
(
'modal_body'
).
innerHTML
:=
'Are you sure you want to delete this order?'
;
document
.
getElementById
(
'btn_confirm_cancel'
).
innerText
:=
'Cancel'
;
document
.
getElementById
(
'btn_confirm_delete'
).
innerText
:=
'Delete'
;
asm
var
confirmationModal
=
new
bootstrap
.
Modal
(
document
.
getElementById
(
'confirmation_modal'
),
{
keyboard: false }
);
...
...
@@ -463,6 +498,11 @@ begin
end
;
end
;
procedure
TFOrderEntryCorrugated
.
btnEditClick
(
Sender
:
TObject
);
begin
EditMode
();
end
;
procedure
TFOrderEntryCorrugated
.
btnPDFClick
(
Sender
:
TObject
);
begin
if
mode
=
'EDIT'
then
...
...
@@ -473,14 +513,27 @@ end;
procedure
TFOrderEntryCorrugated
.
btn_confirm_deleteClick
(
Sender
:
TObject
);
begin
asm
var
confirmationModal
=
new
bootstrap
.
Modal
(
document
.
getElementById
(
'confirmation_modal'
),
{
keyboard: false }
);
confirmationModal
.
hide
();
startSpinner
();
if
document
.
getElementById
(
'btn_confirm_delete'
).
innerText
=
'Yes'
then
begin
FViewMain
.
change
:=
false
;
if
OrderID
<>
''
then
begin
FViewMain
.
ViewOrderEntryCorrugated
(
OrderID
,
''
,
'EDIT'
,
'Failure:Changes Discarded'
);
end
else
FViewMain
.
ViewOrders
(
''
);
end
else
begin
asm
var
confirmationModal
=
new
bootstrap
.
Modal
(
document
.
getElementById
(
'confirmation_modal'
),
{
keyboard: false }
);
confirmationModal
.
hide
();
startSpinner
();
end
;
delOrder
();
tmrReturn
.
Enabled
:=
true
;
end
;
delOrder
();
tmrReturn
.
Enabled
:=
true
;
end
;
[
async
]
procedure
TFOrderEntryCorrugated
.
GenerateReportPDF
;
...
...
@@ -492,7 +545,6 @@ var
begin
// Call the server method to generate the PDF
console
.
log
(
orderID
);
xdcResponse
:=
await
(
XDataWebClient1
.
RawInvokeAsync
(
'ILookupService.GenerateOrderCorrugatedPDF'
,
[
orderID
]));
jsObject
:=
JS
.
TJSObject
(
xdcResponse
.
Result
);
pdfURL
:=
JS
.
toString
(
jsObject
.
Properties
[
'value'
]);
...
...
@@ -523,7 +575,7 @@ begin
[
OrderID
,
'corrugated'
,
JS
.
toString
(
AuthService
.
TokenPayload
.
Properties
[
'user_id'
])]));
end
;
class
function
TFOrderEntryCorrugated
.
CreateForm
(
AElementID
,
orderInfo
,
customerInfo
,
mode
:
string
):
TWebForm
;
class
function
TFOrderEntryCorrugated
.
CreateForm
(
AElementID
,
orderInfo
,
customerInfo
,
mode
,
info
:
string
):
TWebForm
;
var
localMode
:
string
;
begin
...
...
@@ -533,10 +585,10 @@ begin
begin
with
TFOrderEntryCorrugated
(
AForm
)
do
begin
HideNotification
;
TFOrderEntryCorrugated
(
AForm
).
customerID
:=
customerInfo
;
TFOrderEntryCorrugated
(
AForm
).
orderID
:=
orderInfo
;
TFOrderEntryCorrugated
(
AForm
).
mode
:=
localMode
;
TFOrderEntryCorrugated
(
AForm
).
notification
:=
info
;
end
;
end
);
...
...
@@ -601,17 +653,53 @@ begin
addColorRow
(
''
,
''
,
''
,
''
);
end
;
procedure
TFOrderEntryCorrugated
.
btnAddClick
(
Sender
:
TObject
);
var
newform
:
TFAddOrder
;
orderType
:
string
;
begin
newform
:=
TFAddOrder
.
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
if
newform
.
confirm
then
begin
if
newform
.
cbCorrugatedPlate
.
Checked
then
orderType
:=
'corrugated'
else
if
newform
.
cbWebPlate
.
Checked
then
orderType
:=
'web'
else
orderType
:=
'cutting'
;
if
orderType
=
'corrugated'
then
FViewMain
.
ViewOrderEntryCorrugated
(
''
,
newForm
.
DBID
,
'ADD'
,
''
)
else
if
orderType
=
'web'
then
FViewMain
.
ViewOrderEntryWeb
(
''
,
newForm
.
DBID
,
'ADD'
,
''
)
else
FViewMain
.
ViewOrderEntryCuttingDie
(
''
,
newForm
.
DBID
,
'ADD'
,
''
);
end
;
end
);
end
;
procedure
TFOrderEntryCorrugated
.
btnCancelClick
(
Sender
:
TObject
);
begin
// need to get this button working properly edit version does not work correctly
if
mode
=
'EDIT'
then
begin
getOrder
(
OrderID
);
ShowNotification
(
'Failure:Changes Discarded'
);
end
else
FViewMain
.
ViewOrderEntryCorrugated
(
''
,
CustomerID
,
'ADD'
);
window
.
scrollTo
(
0
,
0
);
document
.
getElementById
(
'modal_body'
).
innerHTML
:=
'Are you sure you want to cancel all changes?'
;
document
.
getElementById
(
'btn_confirm_cancel'
).
innerText
:=
'No'
;
document
.
getElementById
(
'btn_confirm_delete'
).
innerText
:=
'Yes'
;
asm
var
confirmationModal
=
new
bootstrap
.
Modal
(
document
.
getElementById
(
'confirmation_modal'
),
{
keyboard: false }
);
confirmationModal
.
show
();
end
;
end
;
procedure
TFOrderEntryCorrugated
.
btnCloseClick
(
Sender
:
TObject
);
...
...
@@ -826,15 +914,37 @@ begin
if
mode
<>
'ADD'
then
begin
getOrder
(
orderID
);
ViewMode
();
end
else
begin
getCustomer
(
customerID
);
btnPDF
.
Enabled
:=
False
;
btnDelete
.
Enabled
:=
False
;
EditMode
();
end
;
edtOrderNum
.
Text
:=
OrderID
;
HideNotification
();
if
notification
=
''
then
begin
HideNotification
;
end
else
begin
ShowNotification
(
notification
);
end
;
end
;
procedure
TFOrderEntryCorrugated
.
XDataWebDataSet1AfterEdit
(
DataSet
:
TDataSet
);
begin
EditMode
();
end
;
procedure
TFOrderEntryCorrugated
.
xdwdsQBItemAfterEdit
(
DataSet
:
TDataSet
);
begin
EditMode
();
end
;
procedure
TFOrderEntryCorrugated
.
xdwdsShipToAfterEdit
(
DataSet
:
TDataSet
);
begin
EditMode
();
end
;
procedure
TFOrderEntryCorrugated
.
HideNotification
;
...
...
@@ -846,6 +956,7 @@ procedure TFOrderEntryCorrugated.ShowNotification(Notification: string);
var
splitNotification
:
TArray
<
string
>;
begin
console
.
log
(
notification
);
if
Notification
<>
''
then
begin
splitNotification
:=
Notification
.
Split
([
':'
]);
...
...
@@ -865,6 +976,7 @@ begin
messageDiv
.
classList
.
add
(
'alert-danger'
);
end
;
end
;
console
.
log
(
splitNotification
[
1
])
;
lblMessage
.
Caption
:=
splitNotification
[
1
];
pnlMessage
.
ElementHandle
.
hidden
:=
False
;
end
;
...
...
@@ -886,16 +998,60 @@ begin
window
.
scrollTo
(
0
,
0
);
end
;
procedure
TFOrderEntryCorrugated
.
wdsQBItemDataChange
(
Sender
:
TObject
;
Field
:
TField
);
procedure
TFOrderEntryCorrugated
.
EditMode
();
begin
FViewMain
.
change
:=
true
;
btnCopy
.
Enabled
:=
false
;
btnPDF
.
Enabled
:=
false
;
btnDelete
.
Enabled
:=
false
;
btnClose
.
Enabled
:=
false
;
btnSave
.
Enabled
:=
true
;
btnCancel
.
Enabled
:=
True
;
btnEdit
.
Enabled
:=
false
;
btnAdd
.
Enabled
:=
false
;
end
;
procedure
TFOrderEntryCorrugated
.
dtpApprovedDateChange
(
Sender
:
TObject
);
begin
EditMode
();
end
;
procedure
TFOrderEntryCorrugated
.
dtpMountDueChange
(
Sender
:
TObject
);
begin
EditMode
();
end
;
procedure
TFOrderEntryCorrugated
.
dtpOrderDateChange
(
Sender
:
TObject
);
begin
EditMode
();
end
;
procedure
TFOrderEntryCorrugated
.
dtpPlateDueChange
(
Sender
:
TObject
);
begin
EditMode
();
end
;
procedure
TFOrderEntryCorrugated
.
dtpProofDateChange
(
Sender
:
TObject
);
begin
EditMode
();
end
;
procedure
TFOrderEntryCorrugated
.
dtpShipDateChange
(
Sender
:
TObject
);
begin
console
.
log
(
'change'
);
EditMode
(
);
end
;
procedure
TFOrderEntryCorrugated
.
wdsShipToDataChange
(
Sender
:
TObject
;
Field
:
TField
);
procedure
TFOrderEntryCorrugated
.
ViewMode
;
begin
console
.
log
(
'change'
);
btnPDF
.
Enabled
:=
true
;
btnDelete
.
Enabled
:=
true
;
btnClose
.
Enabled
:=
true
;
btnCopy
.
Enabled
:=
true
;
btnSave
.
Enabled
:=
false
;
btnCancel
.
Enabled
:=
false
;
btnEdit
.
Enabled
:=
true
;
btnAdd
.
Enabled
:=
true
;
FViewMain
.
change
:=
false
;
end
;
initialization
...
...
kgOrdersClient/View.OrderEntryCuttingDie.dfm
View file @
dfe97fe5
...
...
@@ -70,6 +70,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object dtpProofDate: TWebDateTimePicker
Left = 22
...
...
@@ -83,6 +84,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object dtpShipDate: TWebDateTimePicker
Left = 22
...
...
@@ -96,6 +98,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object edtShipVia: TWebDBEdit
Left = 24
...
...
@@ -201,9 +204,9 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
DataField = 'general_special_instructions'
DataSource = WebDataSource1
end
object btn
Confirm
: TWebButton
Left = 5
6
6
Top =
53
8
object btn
Save
: TWebButton
Left = 5
2
6
Top =
41
8
Width = 96
Height = 25
Caption = 'Save'
...
...
@@ -211,11 +214,11 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
ElementID = 'btnconfirm'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = btn
Confirm
Click
OnClick = btn
Save
Click
end
object btnCancel: TWebButton
Left = 6
8
0
Top =
53
8
Left = 6
4
0
Top =
41
8
Width = 96
Height = 25
Caption = 'Cancel'
...
...
@@ -289,8 +292,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
ListSource = wdsQBItem
end
object btnPDF: TWebButton
Left = 7
8
2
Top =
53
7
Left = 7
4
2
Top =
41
7
Width = 96
Height = 25
Caption = 'PDF'
...
...
@@ -312,8 +315,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
WidthPercent = 100.000000000000000000
end
object btnDelete: TWebButton
Left = 5
7
4
Top =
57
8
Left = 5
3
4
Top =
45
8
Width = 96
Height = 25
Caption = 'Delete'
...
...
@@ -324,8 +327,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
OnClick = btnDeleteClick
end
object btnClose: TWebButton
Left = 6
8
4
Top =
57
3
Left = 6
4
4
Top =
45
3
Width = 96
Height = 25
Caption = 'Close'
...
...
@@ -336,8 +339,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
OnClick = btnCloseClick
end
object btn_confirm_delete: TWebButton
Left =
860
Top =
414
Left =
776
Top =
279
Width = 96
Height = 25
Caption = 'Delete'
...
...
@@ -348,8 +351,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
OnClick = btn_confirm_deleteClick
end
object btnCopy: TWebButton
Left = 7
8
6
Top =
57
3
Left = 7
4
6
Top =
45
3
Width = 96
Height = 25
Caption = 'Copy'
...
...
@@ -359,12 +362,37 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
WidthPercent = 100.000000000000000000
OnClick = btnCopyClick
end
object btnEdit: TWebButton
Left = 644
Top = 495
Width = 96
Height = 25
Caption = 'Edit'
ChildOrder = 78
ElementID = 'btnedit'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = btnEditClick
end
object btnAdd: TWebButton
Left = 532
Top = 495
Width = 96
Height = 25
Caption = 'Add'
ChildOrder = 78
ElementID = 'btnadd'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = btnAddClick
end
object WebDataSource1: TWebDataSource
DataSet = XDataWebDataSet1
Left = 22
Top = 10
end
object XDataWebDataSet1: TXDataWebDataSet
AfterEdit = XDataWebDataSet1AfterEdit
Connection = DMConnection.ApiConnection
Left = 90
Top = 20
...
...
@@ -446,6 +474,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
Top = 436
end
object xdwdsShipTo: TXDataWebDataSet
AfterEdit = xdwdsShipToAfterEdit
Left = 270
Top = 436
object xdwdsShipToADDRESS: TStringField
...
...
@@ -458,6 +487,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
Top = 554
end
object xdwdsQBItem: TXDataWebDataSet
AfterEdit = xdwdsQBItemAfterEdit
Left = 190
Top = 548
object xdwdsQBItemname: TStringField
...
...
kgOrdersClient/View.OrderEntryCuttingDie.html
View file @
dfe97fe5
<div
class=
"col-12 col-md-8"
>
<div
class=
"row"
>
<div
class=
col-sm
>
<div
class=
col-sm
>
<div
id=
"view.login.message"
class=
"alert alert-danger"
>
<button
id=
"view.login.message.button"
type=
"button"
class=
"btn-close"
aria-label=
"Close"
></button>
<span
id=
"view.login.message.label"
></span>
</div>
</div>
</div>
<nav
class=
"navbar navbar-expand navbar-light bg-light sticky-top"
style=
"z-index: 100;"
>
<div
class=
"container-fluid ps-0"
>
<div
id=
"view.login.message"
class=
"alert alert-danger"
style=
"padding: 0.25rem 0.5rem; font-size: 0.875rem; line-height: 1.5; display: flex; align-items: center; margin: 0 0 0 60px; height: 32px; width: 400px;"
>
<button
id=
"view.login.message.button"
type=
"button"
class=
"btn-close"
aria-label=
"Close"
></button>
<span
id=
"view.login.message.label"
></span>
</div>
<ul
class=
"navbar-nav me-auto ps-2"
>
<li
class=
"nav-item pe-2"
>
<button
id=
"btnadd"
class=
"btn btn-primary btn-sm"
>
Add
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btnedit"
class=
"btn btn-primary btn-sm"
>
Edit
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btncopy"
class=
"btn btn-primary btn-sm"
>
Copy
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btndelete"
class=
"btn btn-danger btn-sm"
>
Delete
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btnpdf"
class=
"btn btn-primary btn-sm"
>
PDF
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btnconfirm"
class=
"btn btn-success btn-sm"
>
Save
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btncancel"
class=
"btn btn-danger btn-sm"
>
Cancel
</button>
</li>
<li
class=
"nav-item"
>
<button
id=
"btnclose"
class=
"btn btn-secondary btn-sm"
>
Close
</button>
</li>
</ul>
</div>
</nav>
<div
class=
"row mx-5"
>
<h4
class=
"custom-h4 mt-3"
>
Company
</h4>
<hr
class=
"custom-hr"
>
<div
class=
"row"
>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
class=
"form-label mt-2"
>
Company Name:
</label>
<input
id=
"edtcompanyname"
type=
"text"
class=
"form-control"
style=
"width: 300px;"
/>
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
class=
"form-label mt-2"
>
Account Company Name:
</label>
<input
id=
"edtaccountcompanyname"
type=
"text"
class=
"form-control"
style=
"width: 150px"
/>
</div>
<label
for=
"wdbe_first_name"
class=
"form-label mt-2"
>
Company Name:
</label>
<input
id=
"edtcompanyname"
type=
"text"
class=
"form-control"
style=
"width: 300px;"
required
/>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide a Company Name.
</div>
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
class=
"form-label mt-2"
>
Account Company Name:
</label>
<input
id=
"edtaccountcompanyname"
type=
"text"
class=
"form-control"
style=
"width: 150px"
required
/>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide a Company Account Name.
</div>
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
class=
"form-label mt-2"
>
In Quickbooks?:
</label>
<input
id=
"edtinquickbooks"
type=
"text"
class=
"form-control"
style=
"width: 150px"
/>
...
...
@@ -33,9 +64,12 @@
<input
id=
"edtordernum"
class=
"form-control input-sm"
style=
"width: 100px"
/>
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Order Date:
</label>
<input
class=
"form-control input-sm"
id=
"dtporderdate"
type=
"date"
>
</div>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Order Date:
</label>
<input
class=
"form-control input-sm"
id=
"dtporderdate"
type=
"date"
required
>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide an Order Date.
</div>
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Proof Date:
</label>
<input
class=
"form-control input-sm"
id=
"dtpproofdate"
type=
"date"
>
...
...
@@ -58,11 +92,17 @@
</div>
<div>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Invoice To:
</label>
<input
id=
"edtinvoiceto"
class=
"form-control input-sm"
/>
<input
id=
"edtinvoiceto"
class=
"form-control input-sm"
required
/>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide an Invoice Address.
</div>
</div>
<div>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Ship To:
</label>
<select
id=
"wcbshipto"
class=
'form-select'
></select>
<select
id=
"wcbshipto"
class=
'form-select'
required
></select>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide a Ship To Address.
</div>
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
PO Number:
</label>
...
...
@@ -104,6 +144,12 @@
<div
class=
"col-auto"
>
<button
id=
"btnclose"
class=
"btn btn-primary btn-sm float-end my-2"
>
Close
</button>
</div>
<div
class=
"col-auto"
>
<button
id=
"btnedit"
class=
"btn btn-primary btn-sm float-end my-2"
>
Edit
</button>
</div>
<div
class=
"col-auto"
>
<button
id=
"btnadd"
class=
"btn btn-primary btn-sm float-end my-2"
>
Add
</button>
</div>
</div>
</div>
<div
class=
"modal fade"
id=
"confirmation_modal"
tabindex=
"-1"
aria-labelledby=
"confirmation_modal_label"
aria-hidden=
"true"
>
...
...
@@ -113,11 +159,11 @@
<h5
class=
"modal-title"
id=
"confirmation_modal_label"
>
Confirm
</h5>
<button
type=
"button"
class=
"btn-close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
></button>
</div>
<div
class=
"modal-body"
>
<div
class=
"modal-body"
id=
"modal_body"
>
Are you sure you want to delete this order?
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-secondary"
data-bs-dismiss=
"modal"
>
Cancel
</button>
<button
type=
"button"
class=
"btn btn-secondary"
data-bs-dismiss=
"modal"
id=
btn_confirm_cancel
>
Cancel
</button>
<button
type=
"button"
class=
"btn btn-primary"
data-bs-dismiss=
"modal"
id=
"btn_confirm_delete"
>
Delete
</button>
</div>
</div>
...
...
kgOrdersClient/View.OrderEntryCuttingDie.pas
View file @
dfe97fe5
...
...
@@ -50,7 +50,7 @@ type
xdwdsShipToADDRESS
:
TStringField
;
WebLabel9
:
TWebLabel
;
edtSpecialInstructions
:
TWebDBEdit
;
btn
Confirm
:
TWebButton
;
btn
Save
:
TWebButton
;
btnCancel
:
TWebButton
;
pnlMessage
:
TWebPanel
;
lblMessage
:
TWebLabel
;
...
...
@@ -71,7 +71,9 @@ type
btn_confirm_delete
:
TWebButton
;
btnCopy
:
TWebButton
;
tmrReturn
:
TWebTimer
;
procedure
btnConfirmClick
(
Sender
:
TObject
);
btnEdit
:
TWebButton
;
btnAdd
:
TWebButton
;
procedure
btnSaveClick
(
Sender
:
TObject
);
procedure
btnCancelClick
(
Sender
:
TObject
);
procedure
WebFormCreate
(
Sender
:
TObject
);
procedure
HideNotification
();
...
...
@@ -91,6 +93,14 @@ type
procedure
btnCopyClick
(
Sender
:
TObject
);
procedure
btn_confirm_deleteClick
(
Sender
:
TObject
);
procedure
tmrReturnTimer
(
Sender
:
TObject
);
procedure
btnAddClick
(
Sender
:
TObject
);
procedure
xdwdsShipToAfterEdit
(
DataSet
:
TDataSet
);
procedure
EditMode
();
procedure
xdwdsQBItemAfterEdit
(
DataSet
:
TDataSet
);
procedure
XDataWebDataSet1AfterEdit
(
DataSet
:
TDataSet
);
procedure
dtpOrderDateChange
(
Sender
:
TObject
);
procedure
btnEditClick
(
Sender
:
TObject
);
procedure
ViewMode
();
private
FAgencyCode
:
string
;
FCurrentReportType
:
string
;
...
...
@@ -98,8 +108,9 @@ type
orderID
:
string
;
customerID
:
string
;
mode
:
string
;
notification
:
string
;
public
class
function
CreateForm
(
AElementID
,
orderInfo
,
customerInfo
,
mode
:
string
):
TWebForm
;
class
function
CreateForm
(
AElementID
,
orderInfo
,
customerInfo
,
mode
,
info
:
string
):
TWebForm
;
end
;
var
...
...
@@ -110,41 +121,62 @@ implementation
{$R *.dfm}
uses
View
.
Home
,
View
.
Main
;
View
.
Home
,
View
.
Main
,
View
.
AddOrder
;
function
TFOrderEntryCuttingDie
.
VerifyOrder
:
Boolean
;
var
input
:
TJSHTMLInputElement
;
begin
result
:=
true
;
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'edtcompanyname'
));
if
edtCompanyName
.
Text
=
''
then
begin
showNotification
(
'Failure:Orders Must Have a Company Name'
);
window
.
scrollTo
(
0
,
0
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'edtaccountcompanyname'
));
if
edtCompanyAccountName
.
Text
=
''
then
begin
showNotification
(
'Failure:Orders Must Have a Company Account Name'
);
window
.
scrollTo
(
0
,
0
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'edtinvoiceto'
));
if
edtInvoiceTo
.
Text
=
''
then
begin
showNotification
(
'Failure:Orders Must Have an Invoice Address
'
);
window
.
scrollTo
(
0
,
0
);
console
.
log
(
'hot
'
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'wcbshipto'
));
if
wdbcbShipTo
.
Text
=
''
then
begin
showNotification
(
'Failure:Orders Must Have a Billing Address'
);
window
.
scrollTo
(
0
,
0
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'dtporderdate'
));
if
dtpOrderDate
.
Date
=
0
then
begin
showNotification
(
'Failure:Orders Must Have an Order Date'
);
window
.
scrollTo
(
0
,
0
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
end
;
procedure
TFOrderEntryCuttingDie
.
SendOrderToServer
;
...
...
@@ -204,35 +236,25 @@ begin
end
;
procedure
TFOrderEntryCuttingDie
.
btn
Confirm
Click
(
Sender
:
TObject
);
procedure
TFOrderEntryCuttingDie
.
btn
Save
Click
(
Sender
:
TObject
);
// Converts all the information on the page into a JSON to then send to the server
var
I
,
J
:
integer
;
orderJSON
:
TJSONObject
;
fieldNames
:
TStringList
;
itemList
:
TJSNodeList
;
header
,
value
:
string
;
Field
:
TField
;
Response
:
TXDataClientResponse
;
begin
if
VerifyOrder
()
then
begin
sendOrderToServer
();
btnPDF
.
Enabled
:=
true
;
btnDelete
.
Enabled
:=
true
;
ViewMode
();
end
;
window
.
scrollTo
(
0
,
0
);
end
;
procedure
TFOrderEntryCuttingDie
.
btnCopyClick
(
Sender
:
TObject
);
begin
mode
:=
'ADD'
;
mode
:=
'ADD'
;
dtpOrderDate
.
Date
:=
0
;
dtpProofDate
.
Date
:=
0
;
edtOrderNum
.
Text
:=
''
;
btnPDF
.
Enabled
:=
False
;
btnDelete
.
Enabled
:=
False
;
ShowNotification
(
'Success:Order Successfully Copied'
);
EditMode
();
window
.
scrollTo
(
0
,
0
);
end
;
...
...
@@ -244,6 +266,11 @@ begin
confirmationModal
.
show
();
end
;
end
;
procedure
TFOrderEntryCuttingDie
.
btnEditClick
(
Sender
:
TObject
);
begin
EditMode
();
end
;
procedure
TFOrderEntryCuttingDie
.
DelOrder
();
var
Response
:
TXDataClientResponse
;
...
...
@@ -259,14 +286,27 @@ end;
procedure
TFOrderEntryCuttingDie
.
btn_confirm_deleteClick
(
Sender
:
TObject
);
begin
asm
var
confirmationModal
=
new
bootstrap
.
Modal
(
document
.
getElementById
(
'confirmation_modal'
),
{
keyboard: false }
);
confirmationModal
.
hide
();
startSpinner
();
if
document
.
getElementById
(
'btn_confirm_delete'
).
innerText
=
'Yes'
then
begin
FViewMain
.
change
:=
false
;
if
OrderID
<>
''
then
begin
FViewMain
.
ViewOrderEntryCuttingDie
(
OrderID
,
''
,
'EDIT'
,
'Failure:Changes Discarded'
);
end
else
FViewMain
.
ViewOrders
(
''
);
end
else
begin
asm
var
confirmationModal
=
new
bootstrap
.
Modal
(
document
.
getElementById
(
'confirmation_modal'
),
{
keyboard: false }
);
confirmationModal
.
hide
();
startSpinner
();
end
;
delOrder
();
tmrReturn
.
Enabled
:=
true
;
end
;
delOrder
();
tmrReturn
.
Enabled
:=
true
;
end
;
[
async
]
procedure
TFOrderEntryCuttingDie
.
GenerateReportPDF
;
...
...
@@ -297,7 +337,7 @@ begin
[
orderJSON
.
ToString
]));
end
;
class
function
TFOrderEntryCuttingDie
.
CreateForm
(
AElementID
,
orderInfo
,
customerInfo
,
mode
:
string
):
TWebForm
;
class
function
TFOrderEntryCuttingDie
.
CreateForm
(
AElementID
,
orderInfo
,
customerInfo
,
mode
,
info
:
string
):
TWebForm
;
var
localMode
:
string
;
begin
...
...
@@ -311,15 +351,60 @@ begin
TFOrderEntryCuttingDie
(
AForm
).
customerID
:=
customerInfo
;
TFOrderEntryCuttingDie
(
AForm
).
orderID
:=
orderInfo
;
TFOrderEntryCuttingDie
(
AForm
).
mode
:=
localMode
;
TFOrderEntryCuttingDie
(
AForm
).
notification
:=
info
;
end
;
end
);
end
;
procedure
TFOrderEntryCuttingDie
.
btnAddClick
(
Sender
:
TObject
);
var
newform
:
TFAddOrder
;
orderType
:
string
;
begin
newform
:=
TFAddOrder
.
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
if
newform
.
confirm
then
begin
if
newform
.
cbCorrugatedPlate
.
Checked
then
orderType
:=
'corrugated'
else
if
newform
.
cbWebPlate
.
Checked
then
orderType
:=
'web'
else
orderType
:=
'cutting'
;
if
orderType
=
'corrugated'
then
FViewMain
.
ViewOrderEntryCorrugated
(
''
,
newForm
.
DBID
,
'ADD'
,
''
)
else
if
orderType
=
'web'
then
FViewMain
.
ViewOrderEntryWeb
(
''
,
newForm
.
DBID
,
'ADD'
,
''
)
else
FViewMain
.
ViewOrderEntryCuttingDie
(
''
,
newForm
.
DBID
,
'ADD'
,
''
);
end
;
end
);
end
;
procedure
TFOrderEntryCuttingDie
.
btnCancelClick
(
Sender
:
TObject
);
begin
//FViewMain.ViewOrders('');
document
.
getElementById
(
'modal_body'
).
innerHTML
:=
'Are you sure you want to cancel all changes?'
;
document
.
getElementById
(
'btn_confirm_cancel'
).
innerText
:=
'No'
;
document
.
getElementById
(
'btn_confirm_delete'
).
innerText
:=
'Yes'
;
asm
var
confirmationModal
=
new
bootstrap
.
Modal
(
document
.
getElementById
(
'confirmation_modal'
),
{
keyboard: false }
);
confirmationModal
.
show
();
end
;
end
;
procedure
TFOrderEntryCuttingDie
.
btnCloseClick
(
Sender
:
TObject
);
...
...
@@ -421,11 +506,24 @@ end;
procedure
TFOrderEntryCuttingDie
.
WebFormShow
(
Sender
:
TObject
);
begin
if
mode
<>
'ADD'
then
getCuttingDieOrder
(
orderID
)
begin
getCuttingDieOrder
(
orderID
);
ViewMode
();
end
else
begin
getCustomer
(
customerID
);
EditMode
();
end
;
edtOrderNum
.
Text
:=
OrderID
;
HideNotification
();
if
notification
=
''
then
begin
HideNotification
;
end
else
begin
ShowNotification
(
notification
);
end
;
end
;
procedure
TFOrderEntryCuttingDie
.
HideNotification
;
...
...
@@ -434,10 +532,29 @@ begin
end
;
procedure
TFOrderEntryCuttingDie
.
ShowNotification
(
Notification
:
string
);
var
splitNotification
:
TArray
<
string
>;
begin
if
Notification
<>
''
then
begin
lblMessage
.
Caption
:=
Notification
;
splitNotification
:=
Notification
.
Split
([
':'
]);
if
(
splitNotification
[
0
]
=
'Success'
)
then
begin
asm
var
messageDiv
=
document
.
getElementById
(
'view.login.message'
);
messageDiv
.
classList
.
remove
(
'alert-danger'
);
messageDiv
.
classList
.
add
(
'alert-success'
);
end
;
end
else
begin
asm
var
messageDiv
=
document
.
getElementById
(
'view.login.message'
);
messageDiv
.
classList
.
remove
(
'alert-success'
);
messageDiv
.
classList
.
add
(
'alert-danger'
);
end
;
end
;
lblMessage
.
Caption
:=
splitNotification
[
1
];
pnlMessage
.
ElementHandle
.
hidden
:=
False
;
end
;
end
;
...
...
@@ -458,6 +575,52 @@ begin
window
.
scrollTo
(
0
,
0
);
end
;
procedure
TFOrderEntryCuttingDie
.
EditMode
;
begin
FViewMain
.
change
:=
true
;
btnCopy
.
Enabled
:=
false
;
btnPDF
.
Enabled
:=
false
;
btnDelete
.
Enabled
:=
false
;
btnClose
.
Enabled
:=
false
;
btnSave
.
Enabled
:=
true
;
btnCancel
.
Enabled
:=
True
;
btnEdit
.
Enabled
:=
false
;
btnAdd
.
Enabled
:=
false
;
end
;
procedure
TFOrderEntryCuttingDie
.
xdwdsQBItemAfterEdit
(
DataSet
:
TDataSet
);
begin
EditMode
();
end
;
procedure
TFOrderEntryCuttingDie
.
xdwdsShipToAfterEdit
(
DataSet
:
TDataSet
);
begin
EditMode
();
end
;
procedure
TFOrderEntryCuttingDie
.
XDataWebDataSet1AfterEdit
(
DataSet
:
TDataSet
);
begin
EditMode
();
end
;
procedure
TFOrderEntryCuttingDie
.
dtpOrderDateChange
(
Sender
:
TObject
);
begin
EditMode
();
end
;
procedure
TFOrderEntryCuttingDie
.
ViewMode
;
begin
btnPDF
.
Enabled
:=
true
;
btnDelete
.
Enabled
:=
true
;
btnClose
.
Enabled
:=
true
;
btnCopy
.
Enabled
:=
true
;
btnSave
.
Enabled
:=
false
;
btnCancel
.
Enabled
:=
false
;
btnEdit
.
Enabled
:=
true
;
btnAdd
.
Enabled
:=
true
;
FViewMain
.
change
:=
false
;
end
;
initialization
RegisterClass
(
TFOrderEntryCuttingDie
);
...
...
kgOrdersClient/View.OrderEntryWeb.dfm
View file @
dfe97fe5
...
...
@@ -203,6 +203,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object dtpProofDate: TWebDateTimePicker
Left = 22
...
...
@@ -216,6 +217,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object dtpShipDate: TWebDateTimePicker
Left = 22
...
...
@@ -229,6 +231,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object dtpArtDue: TWebDateTimePicker
Left = 24
...
...
@@ -242,6 +245,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object dtpPlateDue: TWebDateTimePicker
Left = 24
...
...
@@ -255,6 +259,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object edtShipVia: TWebDBEdit
Left = 24
...
...
@@ -515,6 +520,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object dtpPDFDate3: TWebDateTimePicker
Left = 444
...
...
@@ -528,6 +534,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object dtpPDFDate2: TWebDateTimePicker
Left = 444
...
...
@@ -541,6 +548,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object cbInkJet: TWebDBCheckBox
Left = 444
...
...
@@ -593,6 +601,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object dtpInkJetDate3: TWebDateTimePicker
Left = 444
...
...
@@ -606,6 +615,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object dtpInkJetDate2: TWebDateTimePicker
Left = 444
...
...
@@ -619,6 +629,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object edtColorContrastTo: TWebDBEdit
Left = 444
...
...
@@ -645,6 +656,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object dtpColorContractDate2: TWebDateTimePicker
Left = 444
...
...
@@ -658,6 +670,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object edtDigitalColorTo: TWebDBEdit
Left = 444
...
...
@@ -697,6 +710,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000
Role = ''
Text = ''
OnChange = dtpOrderDateChange
end
object edtAniloxInfo: TWebDBEdit
Left = 634
...
...
@@ -1074,7 +1088,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
DataField = 'general_comments'
DataSource = WebDataSource1
end
object btn
Confirm
: TWebButton
object btn
Save
: TWebButton
Left = 649
Top = 568
Width = 96
...
...
@@ -1084,7 +1098,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
ElementID = 'btnconfirm'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = btn
Confirm
Click
OnClick = btn
Save
Click
end
object btnPDF: TWebButton
Left = 963
...
...
@@ -1246,6 +1260,30 @@ object FOrderEntryWeb: TFOrderEntryWeb
WidthPercent = 100.000000000000000000
OnClick = btn_confirm_deleteClick
end
object btnEdit: TWebButton
Left = 1165
Top = 560
Width = 96
Height = 25
Caption = 'Edit'
ChildOrder = 83
ElementID = 'btnedit'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = btnEditClick
end
object btnAdd: TWebButton
Left = 1165
Top = 520
Width = 96
Height = 25
Caption = 'Add'
ChildOrder = 84
ElementID = 'btnadd'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnClick = btnAddClick
end
object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection
Left = 160
...
...
@@ -1258,6 +1296,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Top = 8
end
object XDataWebDataSet1: TXDataWebDataSet
AfterEdit = XDataWebDataSet1AfterEdit
Connection = DMConnection.ApiConnection
Left = 90
Top = 20
...
...
@@ -1527,6 +1566,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Top = 436
end
object xdwdsShipTo: TXDataWebDataSet
AfterEdit = XDataWebDataSet1AfterEdit
Left = 208
Top = 398
object xdwdsShipToADDRESS: TStringField
...
...
@@ -1539,6 +1579,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Top = 518
end
object xdwdsQBItem: TXDataWebDataSet
AfterEdit = XDataWebDataSet1AfterEdit
Left = 200
Top = 512
object xdwdsQBItemname: TStringField
...
...
kgOrdersClient/View.OrderEntryWeb.html
View file @
dfe97fe5
<div
class=
"col-12 col-md-8"
>
<div
class=
"row"
>
<div
class=
col-sm
>
<div
id=
"view.login.message"
class=
"alert alert-danger"
>
<button
id=
"view.login.message.button"
type=
"button"
class=
"btn-close"
aria-label=
"Close"
></button>
<span
id=
"view.login.message.label"
></span>
</div>
</div>
<nav
class=
"navbar navbar-expand navbar-light bg-light sticky-top"
style=
"z-index: 100;"
>
<div
class=
"container-fluid ps-0"
>
<div
id=
"view.login.message"
class=
"alert alert-danger"
style=
"padding: 0.25rem 0.5rem; font-size: 0.875rem; line-height: 1.5; display: flex; align-items: center; margin: 0 0 0 60px; height: 32px; width: 400px;"
>
<button
id=
"view.login.message.button"
type=
"button"
class=
"btn-close"
aria-label=
"Close"
></button>
<span
id=
"view.login.message.label"
></span>
</div>
<ul
class=
"navbar-nav me-auto ps-2"
>
<li
class=
"nav-item pe-2"
>
<button
id=
"btnadd"
class=
"btn btn-primary btn-sm"
>
Add
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btnedit"
class=
"btn btn-primary btn-sm"
>
Edit
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btncopy"
class=
"btn btn-primary btn-sm"
>
Copy
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btndelete"
class=
"btn btn-danger btn-sm"
>
Delete
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btnpdf"
class=
"btn btn-primary btn-sm"
>
PDF
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btnconfirm"
class=
"btn btn-success btn-sm"
>
Save
</button>
</li>
<li
class=
"nav-item pe-2"
>
<button
id=
"btncancel"
class=
"btn btn-danger btn-sm"
>
Cancel
</button>
</li>
<li
class=
"nav-item"
>
<button
id=
"btnclose"
class=
"btn btn-secondary btn-sm"
>
Close
</button>
</li>
</ul>
</div>
</nav>
<div
class=
"row mx-5"
>
<h4
class=
"custom-h4 mt-3"
>
Company
</h4>
<hr
class=
"custom-hr"
>
<div
class=
"row"
>
<div
class=
"col-auto"
>
<label
class=
"form-label mt-2"
>
Company Name:
</label>
<input
id=
"edtcompanyname"
type=
"text"
class=
"form-control"
style=
"width: 300px;"
/>
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
class=
"form-label mt-2"
>
Account Company Name:
</label>
<input
id=
"edtaccountcompanyname"
type=
"text"
class=
"form-control"
style=
"width: 150px"
/>
</div>
<label
for=
"wdbe_first_name"
class=
"form-label mt-2"
>
Company Name:
</label>
<input
id=
"edtcompanyname"
type=
"text"
class=
"form-control"
style=
"width: 300px;"
required
/>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide a Company Name.
</div>
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
class=
"form-label mt-2"
>
Account Company Name:
</label>
<input
id=
"edtaccountcompanyname"
type=
"text"
class=
"form-control"
style=
"width: 150px"
required
/>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide a Company Account Name.
</div>
</div>
<div
class=
"col-auto"
>
<label
for=
"wdbe_first_name"
class=
"form-label mt-2"
>
In Quickbooks?:
</label>
<input
id=
"edtinquickbooks"
type=
"text"
class=
"form-control"
style=
"width: 150px"
/>
...
...
@@ -31,9 +64,12 @@
<input
id=
"edtordernum"
class=
"form-control input-sm"
style=
"width: 100px"
/>
</div>
<div
class=
"col-auto"
>
<label
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Order Date:
</label>
<input
class=
"form-control input-sm"
id=
"dtporderdate"
type=
"date"
>
</div>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Order Date:
</label>
<input
class=
"form-control input-sm"
id=
"dtporderdate"
type=
"date"
required
>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide an Order Date.
</div>
</div>
<div
class=
"col-auto"
>
<label
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Proof Date:
</label>
<input
class=
"form-control input-sm"
id=
"dtpproofdate"
type=
"date"
>
...
...
@@ -55,12 +91,18 @@
<input
id=
"edtprice"
class=
"form-control input-sm"
style=
"width: 100px"
type=
"number"
min=
"0"
/>
</div>
<div>
<label
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Invoice To:
</label>
<input
id=
"edtinvoiceto"
class=
"form-control input-sm"
/>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Invoice To:
</label>
<input
id=
"edtinvoiceto"
class=
"form-control input-sm"
required
/>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide an Invoice Address.
</div>
</div>
<div>
<label
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Ship To:
</label>
<select
id=
"wcbshipto"
class=
'form-select'
></select>
<label
for=
"wdbe_first_name"
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
Ship To:
</label>
<select
id=
"wcbshipto"
class=
'form-select'
required
></select>
<div
class=
"invalid-feedback"
style=
"font-size: 15px;"
>
Please Provide a Ship To Address.
</div>
</div>
<div
class=
"col-auto"
>
<label
style=
"font-weight: 700; font-size: 15px;"
class=
"form-label mt-2"
>
PO Number:
</label>
...
...
@@ -378,6 +420,12 @@
<div
class=
"col-auto"
>
<button
id=
"btnclose"
class=
"btn btn-primary btn-sm float-end my-2"
>
Close
</button>
</div>
<div
class=
"col-auto"
>
<button
id=
"btnedit"
class=
"btn btn-primary btn-sm float-end my-2"
>
Edit
</button>
</div>
<div
class=
"col-auto"
>
<button
id=
"btnadd"
class=
"btn btn-primary btn-sm float-end my-2"
>
Add
</button>
</div>
</div>
</div>
<div
class=
"modal fade"
id=
"confirmation_modal"
tabindex=
"-1"
aria-labelledby=
"confirmation_modal_label"
aria-hidden=
"true"
>
...
...
@@ -387,11 +435,11 @@
<h5
class=
"modal-title"
id=
"confirmation_modal_label"
>
Confirm
</h5>
<button
type=
"button"
class=
"btn-close"
data-bs-dismiss=
"modal"
aria-label=
"Close"
></button>
</div>
<div
class=
"modal-body"
>
<div
class=
"modal-body"
id=
"modal_body"
>
Are you sure you want to delete this order?
</div>
<div
class=
"modal-footer"
>
<button
type=
"button"
class=
"btn btn-secondary"
data-bs-dismiss=
"modal"
>
Cancel
</button>
<button
type=
"button"
class=
"btn btn-secondary"
data-bs-dismiss=
"modal"
id=
btn_confirm_cancel
>
Cancel
</button>
<button
type=
"button"
class=
"btn btn-primary"
data-bs-dismiss=
"modal"
id=
"btn_confirm_delete"
>
Delete
</button>
</div>
</div>
...
...
kgOrdersClient/View.OrderEntryWeb.pas
View file @
dfe97fe5
...
...
@@ -126,7 +126,7 @@ type
edtJobNumber
:
TWebDBEdit
;
WebLabel11
:
TWebLabel
;
Comments
:
TWebDBEdit
;
btn
Confirm
:
TWebButton
;
btn
Save
:
TWebButton
;
btnPDF
:
TWebButton
;
btnCancel
:
TWebButton
;
XDataWebDataSet1plates_job_number
:
TStringField
;
...
...
@@ -204,6 +204,8 @@ type
edtOrderNum
:
TWebEdit
;
btn_confirm_delete
:
TWebButton
;
tmrReturn
:
TWebTimer
;
btnEdit
:
TWebButton
;
btnAdd
:
TWebButton
;
procedure
WebFormCreate
(
Sender
:
TObject
);
procedure
HideNotification
();
procedure
ShowNotification
(
Notification
:
string
);
...
...
@@ -213,7 +215,7 @@ type
procedure
tmrScrollTopTimer
(
Sender
:
TObject
);
procedure
WebButton1Click
(
Sender
:
TObject
);
procedure
addColorRow
(
num
,
Color
,
LPI
,
Size
:
string
);
procedure
btn
Confirm
Click
(
Sender
:
TObject
);
procedure
btn
Save
Click
(
Sender
:
TObject
);
[
async
]
procedure
AddWebOrder
(
orderJSON
:
TJSONObject
);
procedure
btnCancelClick
(
Sender
:
TObject
);
procedure
btnPDFClick
(
Sender
:
TObject
);
...
...
@@ -227,6 +229,12 @@ type
procedure
tmrReturnTimer
(
Sender
:
TObject
);
procedure
btn_confirm_deleteClick
(
Sender
:
TObject
);
function
VerifyOrder
():
boolean
;
procedure
btnAddClick
(
Sender
:
TObject
);
procedure
btnEditClick
(
Sender
:
TObject
);
procedure
EditMode
();
procedure
XDataWebDataSet1AfterEdit
(
DataSet
:
TDataSet
);
procedure
dtpOrderDateChange
(
Sender
:
TObject
);
procedure
ViewMode
();
private
FAgencyCode
:
string
;
FCurrentReportType
:
string
;
...
...
@@ -234,9 +242,10 @@ type
orderID
:
string
;
customerID
:
string
;
mode
:
string
;
notification
:
string
;
//FJSONProc1: TJSONProc1;
public
class
function
CreateForm
(
AElementID
,
orderInfo
,
customerInfo
,
mode
:
string
):
TWebForm
;
class
function
CreateForm
(
AElementID
,
orderInfo
,
customerInfo
,
mode
,
info
:
string
):
TWebForm
;
end
;
var
...
...
@@ -247,52 +256,72 @@ implementation
{$R *.dfm}
uses
View
.
Home
,
View
.
Main
;
View
.
Home
,
View
.
Main
,
View
.
AddOrder
;
procedure
TFOrderEntryWeb
.
btn
Confirm
Click
(
Sender
:
TObject
);
procedure
TFOrderEntryWeb
.
btn
Save
Click
(
Sender
:
TObject
);
begin
if
VerifyOrder
()
then
begin
sendOrderToServer
();
btnPDF
.
Enabled
:=
true
;
btnDelete
.
Enabled
:=
true
;
ViewMode
();
end
;
window
.
scrollTo
(
0
,
0
);
end
;
function
TFOrderEntryWeb
.
VerifyOrder
:
Boolean
;
var
input
:
TJSHTMLInputElement
;
begin
result
:=
true
;
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'edtcompanyname'
));
if
edtCompanyName
.
Text
=
''
then
begin
showNotification
(
'Failure:Orders Must Have a Company Name'
);
window
.
scrollTo
(
0
,
0
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'edtaccountcompanyname'
));
if
edtCompanyAccountName
.
Text
=
''
then
begin
showNotification
(
'Failure:Orders Must Have a Company Account Name'
);
window
.
scrollTo
(
0
,
0
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'edtinvoiceto'
));
if
edtInvoiceTo
.
Text
=
''
then
begin
showNotification
(
'Failure:Orders Must Have an Invoice Address
'
);
window
.
scrollTo
(
0
,
0
);
console
.
log
(
'hot
'
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'wcbshipto'
));
if
WebDBComboBox1
.
Text
=
''
then
begin
showNotification
(
'Failure:Orders Must Have a Billing Address'
);
window
.
scrollTo
(
0
,
0
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
input
:=
TJSHTMLInputElement
(
document
.
getElementById
(
'dtporderdate'
));
if
dtpOrderDate
.
Date
=
0
then
begin
showNotification
(
'Failure:Orders Must Have an Order Date'
);
window
.
scrollTo
(
0
,
0
);
input
.
classList
.
add
(
'is-invalid'
);
result
:=
false
;
end
;
end
else
input
.
classList
.
remove
(
'is-invalid'
);
end
;
procedure
TFOrderEntryWeb
.
btnCopyClick
(
Sender
:
TObject
);
...
...
@@ -313,8 +342,7 @@ begin
dtpColorContractDate2
.
Date
:=
0
;
dtpDigitalColorDate
.
Date
:=
0
;
edtOrderNum
.
Text
:=
''
;
btnPDF
.
Enabled
:=
False
;
btnDelete
.
Enabled
:=
False
;
EditMode
();
ShowNotification
(
'Success:Order Successfully Copied'
);
window
.
scrollTo
(
0
,
0
);
end
;
...
...
@@ -328,6 +356,24 @@ begin
end
;
end
;
procedure
TFOrderEntryWeb
.
btnEditClick
(
Sender
:
TObject
);
begin
EditMode
();
end
;
procedure
TFOrderEntryWeb
.
EditMode
;
begin
FViewMain
.
change
:=
true
;
btnCopy
.
Enabled
:=
false
;
btnPDF
.
Enabled
:=
false
;
btnDelete
.
Enabled
:=
false
;
btnClose
.
Enabled
:=
false
;
btnSave
.
Enabled
:=
true
;
btnCancel
.
Enabled
:=
True
;
btnEdit
.
Enabled
:=
false
;
btnAdd
.
Enabled
:=
false
;
end
;
[
async
]
procedure
TFOrderEntryWeb
.
DelOrder
();
var
Response
:
TXDataClientResponse
;
...
...
@@ -336,6 +382,11 @@ begin
[
OrderID
,
'web'
,
JS
.
toString
(
AuthService
.
TokenPayload
.
Properties
[
'user_id'
])]));
end
;
procedure
TFOrderEntryWeb
.
dtpOrderDateChange
(
Sender
:
TObject
);
begin
EditMode
();
end
;
procedure
TFOrderEntryWeb
.
SendOrderToServer
();
// Converts all the information on the page into a JSON to then send to the server
var
...
...
@@ -433,14 +484,27 @@ end;
procedure
TFOrderEntryWeb
.
btn_confirm_deleteClick
(
Sender
:
TObject
);
begin
asm
var
confirmationModal
=
new
bootstrap
.
Modal
(
document
.
getElementById
(
'confirmation_modal'
),
{
keyboard: false }
);
confirmationModal
.
hide
();
startSpinner
();
if
document
.
getElementById
(
'btn_confirm_delete'
).
innerText
=
'Yes'
then
begin
FViewMain
.
change
:=
false
;
if
OrderID
<>
''
then
begin
FViewMain
.
ViewOrderEntryWeb
(
OrderID
,
''
,
'EDIT'
,
'Failure:Changes Discarded'
);
end
else
FViewMain
.
ViewOrders
(
''
);
end
else
begin
asm
var
confirmationModal
=
new
bootstrap
.
Modal
(
document
.
getElementById
(
'confirmation_modal'
),
{
keyboard: false }
);
confirmationModal
.
hide
();
startSpinner
();
end
;
delOrder
();
tmrReturn
.
Enabled
:=
true
;
end
;
delOrder
();
tmrReturn
.
Enabled
:=
true
;
end
;
procedure
TFOrderEntryWeb
.
GenerateReportPDF
;
...
...
@@ -472,7 +536,7 @@ begin
[
orderJSON
.
ToString
]));
end
;
class
function
TFOrderEntryWeb
.
CreateForm
(
AElementID
,
orderInfo
,
customerInfo
,
mode
:
string
):
TWebForm
;
class
function
TFOrderEntryWeb
.
CreateForm
(
AElementID
,
orderInfo
,
customerInfo
,
mode
,
info
:
string
):
TWebForm
;
var
localMode
:
string
;
begin
...
...
@@ -486,6 +550,7 @@ begin
TFOrderEntryWeb
(
AForm
).
customerID
:=
customerInfo
;
TFOrderEntryWeb
(
AForm
).
orderID
:=
orderInfo
;
TFOrderEntryWeb
(
AForm
).
mode
:=
localMode
;
TFOrderEntryWeb
(
AForm
).
notification
:=
info
;
end
;
end
);
...
...
@@ -550,9 +615,53 @@ begin
addColorRow
(
''
,
''
,
''
,
''
);
end
;
procedure
TFOrderEntryWeb
.
btnAddClick
(
Sender
:
TObject
);
var
newform
:
TFAddOrder
;
orderType
:
string
;
begin
newform
:=
TFAddOrder
.
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
if
newform
.
confirm
then
begin
if
newform
.
cbCorrugatedPlate
.
Checked
then
orderType
:=
'corrugated'
else
if
newform
.
cbWebPlate
.
Checked
then
orderType
:=
'web'
else
orderType
:=
'cutting'
;
if
orderType
=
'corrugated'
then
FViewMain
.
ViewOrderEntryCorrugated
(
''
,
newForm
.
DBID
,
'ADD'
,
''
)
else
if
orderType
=
'web'
then
FViewMain
.
ViewOrderEntryWeb
(
''
,
newForm
.
DBID
,
'ADD'
,
''
)
else
FViewMain
.
ViewOrderEntryCuttingDie
(
''
,
newForm
.
DBID
,
'ADD'
,
''
);
end
;
end
);
end
;
procedure
TFOrderEntryWeb
.
btnCancelClick
(
Sender
:
TObject
);
begin
//FViewMain.ViewOrders('');
document
.
getElementById
(
'modal_body'
).
innerHTML
:=
'Are you sure you want to cancel all changes?'
;
document
.
getElementById
(
'btn_confirm_cancel'
).
innerText
:=
'No'
;
document
.
getElementById
(
'btn_confirm_delete'
).
innerText
:=
'Yes'
;
asm
var
confirmationModal
=
new
bootstrap
.
Modal
(
document
.
getElementById
(
'confirmation_modal'
),
{
keyboard: false }
);
confirmationModal
.
show
();
end
;
end
;
procedure
TFOrderEntryWeb
.
btnCloseClick
(
Sender
:
TObject
);
...
...
@@ -743,11 +852,29 @@ end;
procedure
TFOrderEntryWeb
.
WebFormShow
(
Sender
:
TObject
);
begin
if
mode
<>
'ADD'
then
getOrder
(
orderID
)
begin
getOrder
(
orderID
);
ViewMode
();
end
else
begin
getCustomer
(
customerID
);
EditMode
();
end
;
edtOrderNum
.
Text
:=
OrderID
;
HideNotification
();
if
notification
=
''
then
begin
HideNotification
;
end
else
begin
ShowNotification
(
notification
);
end
;
end
;
procedure
TFOrderEntryWeb
.
XDataWebDataSet1AfterEdit
(
DataSet
:
TDataSet
);
begin
EditMode
();
end
;
procedure
TFOrderEntryWeb
.
HideNotification
;
...
...
@@ -799,5 +926,18 @@ begin
window
.
scrollTo
(
0
,
0
);
end
;
procedure
TFOrderEntryWeb
.
ViewMode
;
begin
btnPDF
.
Enabled
:=
true
;
btnDelete
.
Enabled
:=
true
;
btnClose
.
Enabled
:=
true
;
btnCopy
.
Enabled
:=
true
;
btnSave
.
Enabled
:=
false
;
btnCancel
.
Enabled
:=
false
;
btnEdit
.
Enabled
:=
true
;
btnAdd
.
Enabled
:=
true
;
FViewMain
.
change
:=
false
;
end
;
end
.
\ No newline at end of file
kgOrdersClient/View.Orders.pas
View file @
dfe97fe5
...
...
@@ -172,30 +172,70 @@ procedure TFViewOrders.WebFormCreate(Sender: TObject);
// PageSize: Number of entries per page.
var
today
:
TDateTime
;
params
:
TStringList
;
begin
DMConnection
.
ApiConnection
.
Connected
:=
True
;
PageNumber
:=
1
;
TotalPages
:=
1
;
// Initial total pages
//Status 1
startDate1
:=
FormatDateTime
(
'yyyy/mm/dd'
,
0
);
endDate1
:=
FormatDateTime
(
'yyyy/mm/dd'
,
0
);
filterType1
:=
''
;
null1
:=
false
;
//Status 2
startDate2
:=
FormatDateTime
(
'yyyy/mm/dd'
,
0
);
endDate2
:=
FormatDateTime
(
'yyyy/mm/dd'
,
0
);
filterType2
:=
''
;
null2
:=
false
;
orderType
:=
''
;
//today := TDateTime.Today;
wcbPageSize
.
Text
:=
'500'
;
PageSize
:=
500
;
wlcbOrderBy
.
DisplayText
:=
'Order Date'
;
OrderBy
:=
'o.ORDER_DATE DESC'
;
if
FViewMain
.
search
=
''
then
begin
//Status 1
startDate1
:=
FormatDateTime
(
'yyyy/mm/dd'
,
0
);
endDate1
:=
FormatDateTime
(
'yyyy/mm/dd'
,
0
);
filterType1
:=
''
;
null1
:=
false
;
//Status 2
startDate2
:=
FormatDateTime
(
'yyyy/mm/dd'
,
0
);
endDate2
:=
FormatDateTime
(
'yyyy/mm/dd'
,
0
);
filterType2
:=
''
;
null2
:=
false
;
orderType
:=
''
;
//today := TDateTime.Today;
wcbPageSize
.
Text
:=
'500'
;
PageSize
:=
500
;
wlcbOrderBy
.
DisplayText
:=
'Order Date'
;
OrderBy
:=
'o.ORDER_DATE DESC'
;
end
else
begin
params
:=
TStringList
.
Create
;
params
.
StrictDelimiter
:=
true
;
// parse the searchOptions
params
.
Delimiter
:=
'&'
;
params
.
DelimitedText
:=
FViewMain
.
search
;
PageNumber
:=
StrToInt
(
params
.
Values
[
'pagenumber'
]);
PageSize
:=
StrToInt
(
params
.
Values
[
'pagesize'
]);
wcbPageSize
.
Text
:=
IntToStr
(
PageSize
);
OrderBy
:=
params
.
Values
[
'orderby'
];
wlcbOrderBy
.
DisplayText
:=
OrderBy
;
orderType
:=
params
.
Values
[
'orderType'
].
ToLower
();
OrderID
:=
params
.
Values
[
'orderID'
];
companyID
:=
params
.
Values
[
'companyID'
];
jobName
:=
params
.
Values
[
'jobName'
];
// Status1
startDate1
:=
params
.
Values
[
'startDate1'
];
endDate1
:=
params
.
Values
[
'endDate1'
];
filterType1
:=
params
.
Values
[
'filterType1'
];
if
params
.
Values
[
'null1'
]
=
''
then
null1
:=
false
else
null1
:=
StrToBool
(
params
.
Values
[
'null1'
]);
// Status 2
startDate2
:=
params
.
Values
[
'startDate2'
];
endDate2
:=
params
.
Values
[
'endDate2'
];
filterType2
:=
params
.
Values
[
'filterType2'
];
if
params
.
Values
[
'null2'
]
=
''
then
null2
:=
false
else
null2
:=
StrToBool
(
params
.
Values
[
'null2'
]);
end
;
getOrders
(
GenerateSearchOptions
());
end
;
...
...
@@ -273,7 +313,7 @@ begin
newform
.
Caption
:=
'Input Search Options'
;
newForm
.
Popup
:=
True
;
newForm
.
Border
:=
fbDialog
;
newForm
.
searchOptions
:=
generateSearchOptions
()
;
newForm
.
searchOptions
:=
FViewMain
.
search
;
// used to manage Back button handling to close subform
window
.
location
.
hash
:=
'subform'
;
...
...
@@ -304,9 +344,10 @@ begin
companyID
:=
newform
.
DBID
;
orderType
:=
newform
.
wcbOrderType
.
Text
;
searchOptions
:=
generateSearchOptions
();
edtSearch
.
Text
:=
searchOptions
;
getOrders
(
searchOptions
);
FViewMain
.
search
:=
generateSearchOptions
();
//searchOptions := generateSearchOptions();
edtSearch
.
Text
:=
FViewMain
.
search
;
getOrders
(
FViewMain
.
search
);
end
;
end
);
...
...
@@ -664,11 +705,11 @@ end;
procedure
TFViewOrders
.
orderEntry
(
orderInfo
,
customerInfo
,
mode
,
orderType
:
string
);
begin
if
orderType
=
'corrugated'
then
FViewMain
.
ViewOrderEntryCorrugated
(
orderInfo
,
customerInfo
,
mode
)
FViewMain
.
ViewOrderEntryCorrugated
(
orderInfo
,
customerInfo
,
mode
,
''
)
else
if
orderType
=
'web'
then
FViewMain
.
ViewOrderEntryWeb
(
orderInfo
,
customerInfo
,
mode
)
FViewMain
.
ViewOrderEntryWeb
(
orderInfo
,
customerInfo
,
mode
,
''
)
else
FViewMain
.
ViewOrderEntryCuttingDie
(
orderInfo
,
customerInfo
,
mode
);
FViewMain
.
ViewOrderEntryCuttingDie
(
orderInfo
,
customerInfo
,
mode
,
''
);
end
;
procedure
TFViewOrders
.
btnCloseNotificationClick
(
Sender
:
TObject
);
...
...
kgOrdersClient/View.Search.dfm
View file @
dfe97fe5
...
...
@@ -350,7 +350,7 @@ object FSearch: TFSearch
Items.Strings = (
'Corrugated'
'Web'
'Cutting
D
ie'
'Cutting
d
ie'
'Any')
end
object wcbFilterType2: TWebComboBox
...
...
@@ -680,7 +680,7 @@ object FSearch: TFSearch
object edtCompanyName: TWebEdit
Left = 338
Top = 76
Width =
239
Width =
377
Height = 22
HelpType = htKeyword
TabStop = False
...
...
kgOrdersClient/View.Search.pas
View file @
dfe97fe5
...
...
@@ -116,7 +116,7 @@ begin
DateFormatSettings
:=
TFormatSettings
.
Create
;
DateFormatSettings
.
ShortDateFormat
:=
'yyyy/mm/dd'
;
console
.
log
(
UpperCase
(
Copy
(
params
.
Values
[
'orderType'
],
1
,
1
))
+
LowerCase
(
Copy
(
params
.
Values
[
'orderType'
],
2
,
MaxInt
)));
wcbOrderType
.
Text
:=
UpperCase
(
Copy
(
params
.
Values
[
'orderType'
],
1
,
1
))
+
LowerCase
(
Copy
(
params
.
Values
[
'orderType'
],
2
,
MaxInt
));
edtOrderID
.
Text
:=
params
.
Values
[
'orderID'
];
edtCompanyID
.
Text
:=
params
.
Values
[
'companyID'
];
...
...
@@ -127,7 +127,6 @@ begin
wcbFilterType1
.
Text
:=
params
.
Values
[
'filterType1'
]
else
wcbFilterType1
.
Text
:=
'NONE'
;
console
.
log
(
params
.
Values
[
'startDate1'
]);
if
params
.
Values
[
'startDate1'
]
=
''
then
dtpStartDate1
.
Date
:=
0
...
...
@@ -157,7 +156,6 @@ begin
else
wcbFilterType2
.
Text
:=
'NONE'
;
console
.
log
(
params
.
Values
[
'startDate2'
]);
if
params
.
Values
[
'startDate2'
]
=
''
then
dtpStartDate2
.
Date
:=
0
else
...
...
@@ -254,8 +252,6 @@ begin
xdwdsCustomers
.
SetJsonData
(
customerList
[
'data'
]);
xdwdsCustomers
.
Open
;
console
.
log
(
customerList
[
'data'
]);
// Manually populate the grid
PopulateGridManually
;
end
;
...
...
@@ -291,7 +287,6 @@ begin
while
not
xdwdsCustomers
.
EOF
do
begin
TMSFNCGrid1
.
RowCount
:=
RowIndex
+
1
;
console
.
log
(
xdwdsCustomers
.
FieldByName
(
'ID'
).
AsString
);
TMSFNCGrid1
.
Cells
[
0
,
RowIndex
]
:=
xdwdsCustomers
.
FieldByName
(
'ID'
).
AsString
;
TMSFNCGrid1
.
Cells
[
1
,
RowIndex
]
:=
xdwdsCustomers
.
FieldByName
(
'SHORT_NAME'
).
AsString
;
TMSFNCGrid1
.
Cells
[
2
,
RowIndex
]
:=
xdwdsCustomers
.
FieldByName
(
'NAME'
).
AsString
;
...
...
kgOrdersClient/css/app.css
View file @
dfe97fe5
...
...
@@ -14,6 +14,14 @@ input[type="text"] {
padding-left
:
5px
;
}
is-invalid
.form-check-input
{
border
:
1px
solid
#dc3545
!important
;
}
.is-invalid
.form-check-label
{
color
:
#dc3545
!important
;
}
.input-search
input
{
width
:
100px
;
/* Adjust the width of the input */
height
:
35px
;
/* Set the height to match label height */
...
...
kgOrdersServer/Source/Common.Config.pas
View file @
dfe97fe5
// The configuartion file for the program. Contains important info like the admin
// password and the secret token. Should likely move this to the ini file..
unit
Common
.
Config
;
interface
...
...
@@ -12,16 +9,16 @@ type
TServerConfig
=
class
private
Furl
:
string
;
F
JWT
TokenSecret
:
string
;
F
A
dminPassword
:
string
;
F
W
ebAppFolder
:
string
;
F
R
eportsFolder
:
string
;
F
jwt
TokenSecret
:
string
;
F
a
dminPassword
:
string
;
F
w
ebAppFolder
:
string
;
F
r
eportsFolder
:
string
;
public
property
url
:
string
read
F
Url
write
FU
rl
;
property
jwtTokenSecret
:
string
read
F
JWTTokenSecret
write
FJWT
TokenSecret
;
property
adminPassword
:
string
read
F
AdminPassword
write
FA
dminPassword
;
property
webAppFolder
:
string
read
F
WebAppFolder
write
FW
ebAppFolder
;
property
reportsFolder
:
string
read
F
ReportsFolder
write
FR
eportsFolder
;
property
url
:
string
read
F
url
write
Fu
rl
;
property
jwtTokenSecret
:
string
read
F
jwtTokenSecret
write
Fjwt
TokenSecret
;
property
adminPassword
:
string
read
F
adminPassword
write
Fa
dminPassword
;
property
webAppFolder
:
string
read
F
webAppFolder
write
Fw
ebAppFolder
;
property
reportsFolder
:
string
read
F
reportsFolder
write
Fr
eportsFolder
;
constructor
Create
;
end
;
...
...
@@ -34,59 +31,57 @@ var
implementation
uses
Bcl
.
Json
,
System
.
SysUtils
,
System
.
IOUtils
,
Common
.
Logging
;
Bcl
.
Json
,
System
.
SysUtils
,
System
.
IOUtils
,
Common
.
Logging
;
procedure
LoadServerConfig
;
var
configFile
:
string
;
localConfig
:
TServerConfig
;
begin
Logger
.
Log
(
1
,
'--LoadServerConfig - start'
);
configFile
:=
TPath
.
ChangeExtension
(
ParamStr
(
0
),
'.json'
);
Logger
.
Log
(
1
,
'-- Config file: '
+
ConfigFile
);
if
TFile
.
Exists
(
ConfigFile
)
then
Logger
.
Log
(
1
,
'--LoadServerConfig - start'
);
configFile
:=
TPath
.
ChangeExtension
(
ParamStr
(
0
),
'.json'
);
Logger
.
Log
(
1
,
'-- Config file: '
+
ConfigFile
);
if
TFile
.
Exists
(
configFile
)
then
begin
Logger
.
Log
(
1
,
'-- Config file found.'
);
Logger
.
Log
(
1
,
'-- Config file found.'
);
localConfig
:=
TJson
.
Deserialize
<
TServerConfig
>(
TFile
.
ReadAllText
(
configFile
));
Logger
.
Log
(
1
,
'-- localConfig loaded from config file'
);
Logger
.
Log
(
1
,
'-- localConfig loaded from config file'
);
serverConfig
.
Free
;
Logger
.
Log
(
1
,
'-- serverConfig.Free - called'
);
Logger
.
Log
(
1
,
'-- serverConfig.Free - called'
);
serverConfig
:=
localConfig
;
Logger
.
Log
(
1
,
'-- serverConfig := localConfig - called'
);
Logger
.
Log
(
1
,
'-- serverConfig := localConfig - called'
);
end
else
begin
Logger
.
Log
(
1
,
'-- Config file not found.'
);
Logger
.
Log
(
1
,
'-- Config file not found.'
);
end
;
Logger
.
Log
(
1
,
'-------------------------------------------------------------'
);
Logger
.
Log
(
1
,
'-- serverConfig.Server url: '
+
serverConfig
.
url
);
Logger
.
Log
(
1
,
'-- serverConfig.adminPassword: '
+
serverConfig
.
adminPassword
);
Logger
.
Log
(
1
,
'-- serverConfig.jwtTokenSecret: '
+
serverConfig
.
jwtTokenSecret
);
Logger
.
Log
(
1
,
'-- serverConfig.webAppFolder: '
+
serverConfig
.
webAppFolder
);
Logger
.
Log
(
1
,
'-- serverConfig.reportsFolder: '
+
serverConfig
.
reportsFolder
);
Logger
.
Log
(
1
,
'--LoadServerConfig - end'
);
Logger
.
Log
(
1
,
'-------------------------------------------------------------'
);
Logger
.
Log
(
1
,
'-- serverConfig.url: '
+
serverConfig
.
url
);
Logger
.
Log
(
1
,
'-- serverConfig.adminPassword: '
+
serverConfig
.
adminPassword
);
Logger
.
Log
(
1
,
'-- serverConfig.jwtTokenSecret: '
+
serverConfig
.
jwtTokenSecret
);
Logger
.
Log
(
1
,
'-- serverConfig.webAppFolder: '
+
serverConfig
.
webAppFolder
);
Logger
.
Log
(
1
,
'-- serverConfig.reportsFolder: '
+
serverConfig
.
reportsFolder
);
Logger
.
Log
(
1
,
'--LoadServerConfig - end'
);
end
;
{ TServerConfig }
constructor
TServerConfig
.
Create
;
//var
// ConfigFile: string;
// ServerConfigStr: string;
var
ServerConfigStr
:
string
;
begin
Logger
.
Log
(
1
,
'--TServerConfig.Create - start'
);
Logger
.
Log
(
1
,
'--TServerConfig.Create - start'
);
url
:=
defaultServerUrl
;
adminPassword
:=
'whatisthisusedfor'
;
jwtTokenSecret
:=
'super_secret0123super_secret4567'
;
webAppFolder
:=
'static'
;
reportsFolder
:=
'static/'
;
// ServerConfigStr := Bcl.Json.TJson.Serialize( ServerConfig );
// ConfigFile := 'serverconfig.json';
// TFile.WriteAllText( ConfigFile, ServerConfigStr );
// Logger.Log( 1, 'ServerConfig saved to file: ' + ConfigFile );
Logger
.
Log
(
1
,
'--TServerConfig.Create - end'
);
ServerConfigStr
:=
Bcl
.
Json
.
TJson
.
Serialize
(
ServerConfig
);
Logger
.
Log
(
1
,
'--ServerConfigSerialize: '
+
ServerConfigStr
);
Logger
.
Log
(
1
,
'--TServerConfig.Create - end'
);
end
;
end
.
kgOrdersServer/Source/Lookup.ServiceImpl.pas
View file @
dfe97fe5
...
...
@@ -1004,7 +1004,7 @@ begin
params
.
Delimiter
:=
'&'
;
params
.
DelimitedText
:=
searchOptions
;
SQL
:=
'select * from qb_items'
;
SQL
:=
'select * from qb_items
order by qb_item_name asc
'
;
if
(
(
params
.
Values
[
'pagenumber'
]
<>
''
)
and
(
params
.
Values
[
'pagesize'
]
<>
''
)
)
then
begin
...
...
kgOrdersServer/kgOrdersServer.ini
View file @
dfe97fe5
...
...
@@ -2,7 +2,7 @@
MemoLogLevel
=
3
FileLogLevel
=
5
webClientVersion
=
0.9.2
LogFileNum
=
4
2
8
LogFileNum
=
4
3
8
[Database]
Server
=
192.168.159.131
...
...
kgOrdersServer/static/20250424_110143.pdf
0 → 100644
View file @
dfe97fe5
File added
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