Commit d607fed9 by Cam Hayes

Finished Making all the order entry changes discussed.

Finished the order entry changes, and will now begin working on the search string
parent d00a993f
...@@ -3,8 +3,8 @@ object FAddOrder: TFAddOrder ...@@ -3,8 +3,8 @@ object FAddOrder: TFAddOrder
Height = 477 Height = 477
OnShow = WebFormShow OnShow = WebFormShow
object WebLabel1: TWebLabel object WebLabel1: TWebLabel
Left = 334 Left = 4
Top = 56 Top = 81
Width = 35 Width = 35
Height = 15 Height = 15
Caption = 'Search' Caption = 'Search'
...@@ -12,17 +12,17 @@ object FAddOrder: TFAddOrder ...@@ -12,17 +12,17 @@ object FAddOrder: TFAddOrder
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object WebLabel2: TWebLabel object WebLabel2: TWebLabel
Left = 461 Left = 143
Top = 56 Top = 81
Width = 58 Width = 113
Height = 15 Height = 15
Caption = 'Selected ID' Caption = 'Selected Company ID'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object edtSearch: TWebEdit object edtSearch: TWebEdit
Left = 334 Left = 4
Top = 82 Top = 102
Width = 121 Width = 121
Height = 22 Height = 22
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
...@@ -30,8 +30,8 @@ object FAddOrder: TFAddOrder ...@@ -30,8 +30,8 @@ object FAddOrder: TFAddOrder
OnChange = edtSearchChange OnChange = edtSearchChange
end end
object edtID: TWebEdit object edtID: TWebEdit
Left = 461 Left = 143
Top = 82 Top = 102
Width = 142 Width = 142
Height = 22 Height = 22
ChildOrder = 1 ChildOrder = 1
...@@ -41,9 +41,9 @@ object FAddOrder: TFAddOrder ...@@ -41,9 +41,9 @@ object FAddOrder: TFAddOrder
end end
object TMSFNCGrid1: TTMSFNCGrid object TMSFNCGrid1: TTMSFNCGrid
Left = 0 Left = 0
Top = 146 Top = 160
Width = 871 Width = 871
Height = 331 Height = 317
Align = alBottom Align = alBottom
ParentDoubleBuffered = False ParentDoubleBuffered = False
DoubleBuffered = True DoubleBuffered = True
...@@ -198,18 +198,19 @@ object FAddOrder: TFAddOrder ...@@ -198,18 +198,19 @@ object FAddOrder: TFAddOrder
end end
object cbCorrugatedPlate: TWebCheckBox object cbCorrugatedPlate: TWebCheckBox
Left = 4 Left = 4
Top = 83 Top = 49
Width = 113 Width = 113
Height = 22 Height = 22
Caption = 'Corrugated Plate' Caption = 'Corrugated Plate'
ChildOrder = 3 ChildOrder = 3
ElementID = 'cbcorrugatedplate'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnClick = cbCorrugatedPlateClick OnClick = cbCorrugatedPlateClick
end end
object cbWebPlate: TWebCheckBox object cbWebPlate: TWebCheckBox
Left = 128 Left = 134
Top = 83 Top = 49
Width = 83 Width = 83
Height = 22 Height = 22
Caption = 'Web Plate' Caption = 'Web Plate'
...@@ -219,8 +220,8 @@ object FAddOrder: TFAddOrder ...@@ -219,8 +220,8 @@ object FAddOrder: TFAddOrder
OnClick = cbWebPlateClick OnClick = cbWebPlateClick
end end
object btnCancel: TWebButton object btnCancel: TWebButton
Left = 740 Left = 436
Top = 81 Top = 105
Width = 96 Width = 96
Height = 25 Height = 25
Caption = 'Cancel' Caption = 'Cancel'
...@@ -230,19 +231,19 @@ object FAddOrder: TFAddOrder ...@@ -230,19 +231,19 @@ object FAddOrder: TFAddOrder
OnClick = btnCancelClick OnClick = btnCancelClick
end end
object btnConfirm: TWebButton object btnConfirm: TWebButton
Left = 622 Left = 328
Top = 81 Top = 105
Width = 96 Width = 96
Height = 25 Height = 25
Caption = 'Confirm' Caption = 'Select'
ChildOrder = 5 ChildOrder = 5
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnClick = btnConfirmClick OnClick = btnConfirmClick
end end
object cbCuttingDie: TWebCheckBox object cbCuttingDie: TWebCheckBox
Left = 231 Left = 239
Top = 83 Top = 49
Width = 83 Width = 83
Height = 22 Height = 22
Caption = 'Cutting Die' Caption = 'Cutting Die'
...@@ -259,12 +260,11 @@ object FAddOrder: TFAddOrder ...@@ -259,12 +260,11 @@ object FAddOrder: TFAddOrder
HelpType = htKeyword HelpType = htKeyword
TabStop = False TabStop = False
ChildOrder = 8 ChildOrder = 8
ElementClassName = 'form-control'
ElementFont = efCSS ElementFont = efCSS
Enabled = False Enabled = False
Font.Charset = ANSI_CHARSET Font.Charset = ANSI_CHARSET
Font.Color = clBlack Font.Color = clRed
Font.Height = -8 Font.Height = -13
Font.Name = 'Arial' Font.Name = 'Arial'
Font.Style = [] Font.Style = []
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
......
...@@ -67,13 +67,28 @@ end; ...@@ -67,13 +67,28 @@ end;
procedure TFAddOrder.btnConfirmClick(Sender: TObject); procedure TFAddOrder.btnConfirmClick(Sender: TObject);
begin begin
confirm := true;
edtNotification.ElementHandle.style.setProperty('color', '#8B0000', 'important');
if ( ( not cbCorrugatedPlate.Checked ) and ( not cbWebPlate.Checked ) and ( not cbCuttingDie.Checked ) ) then 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 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; Close;
end; end;
end; end;
......
<div id="wrapper"> <div id="wrapper">
<nav class="navbar navbar-expand navbar-light bg-light" style="margin-bottom: 0px;"> <nav class="navbar navbar-expand navbar-light bg-light sticky-top" style="margin-bottom: 0px;">
<div class="container-fluid"> <div class="container-fluid">
<div class="d-flex align-items-center"> <div class="d-flex align-items-center">
<a id="view.main.apptitle" class="navbar-brand" href="index.html">Koehler-Gibson Orders</a> <a id="view.main.apptitle" class="navbar-brand" href="index.html">Koehler-Gibson Orders</a>
......
...@@ -52,13 +52,14 @@ type ...@@ -52,13 +52,14 @@ 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 ViewOrderEntryCorrugated(orderInfo, customerInfo, mode: string); procedure ViewOrderEntryCorrugated(orderInfo, customerInfo, mode, info: string);
procedure ViewOrderEntryWeb(orderInfo, customerInfo, mode: string); procedure ViewOrderEntryWeb(orderInfo, customerInfo, mode, info: string);
procedure ViewOrderEntryCuttingDie(orderInfo, customerInfo, mode: string); procedure ViewOrderEntryCuttingDie(orderInfo, customerInfo, mode, info: string);
procedure ViewOrders(info: string); procedure ViewOrders(info: string);
procedure ShowUserForm(Info: string); procedure ShowUserForm(Info: string);
var var
search: string; search: string;
change: boolean;
end; end;
var var
...@@ -89,6 +90,7 @@ begin ...@@ -89,6 +90,7 @@ begin
userName := JS.toString(AuthService.TokenPayload.Properties['user_name']); userName := JS.toString(AuthService.TokenPayload.Properties['user_name']);
lblUsername.Caption := ' ' + userName.ToLower + ' '; lblUsername.Caption := ' ' + userName.ToLower + ' ';
FChildForm := nil; FChildForm := nil;
change := false;
if (not (JS.toBoolean(AuthService.TokenPayload.Properties['user_admin']))) then if (not (JS.toBoolean(AuthService.TokenPayload.Properties['user_admin']))) then
lblUsers.Visible := false; lblUsers.Visible := false;
...@@ -106,43 +108,74 @@ end; ...@@ -106,43 +108,74 @@ end;
procedure TFViewMain.lblCustomersClick(Sender: TObject); procedure TFViewMain.lblCustomersClick(Sender: TObject);
begin begin
if ( not ( change ) ) then
begin
//ShowForm(TFViewCustomers); //ShowForm(TFViewCustomers);
lblAppTitle.Caption := 'Koehler-Gibson Customers'; lblAppTitle.Caption := 'Koehler-Gibson Customers';
setActive('Customers'); setActive('Customers');
end
else
ShowMessage('Please Save or Cancel your changes');
end; end;
procedure TFViewMain.lblHomeClick(Sender: TObject); procedure TFViewMain.lblHomeClick(Sender: TObject);
begin begin
ShowForm(TFViewHome); if ( not ( change ) ) then
lblAppTitle.Caption := 'Koehler-Gibson Home'; begin
//setActive('Home'); ShowForm(TFViewHome);
lblAppTitle.Caption := 'Koehler-Gibson Home';
//setActive('Home');
end
else
ShowMessage('Please Save or Cancel your changes');
end; end;
procedure TFViewMain.lblordersClick(Sender: TObject); procedure TFViewMain.lblordersClick(Sender: TObject);
begin begin
ShowForm(TFViewOrders); console.log(change);
lblAppTitle.Caption := 'Koehler-Gibson Orders'; if ( not ( change ) ) then
setActive('Orders'); begin
ShowForm(TFViewOrders);
lblAppTitle.Caption := 'Koehler-Gibson Orders';
setActive('Orders');
end
else
ShowMessage('Please Save or Cancel your changes');
end; end;
procedure TFViewMain.lblQuickbooksClick(Sender: TObject); procedure TFViewMain.lblQuickbooksClick(Sender: TObject);
begin begin
//ShowForm(TFViewQuickbooks); if ( not ( change ) ) then
lblAppTitle.Caption := 'Koehler-Gibson QuickBooks'; begin
setActive('QuickBooks'); //ShowForm(TFViewQuickbooks);
lblAppTitle.Caption := 'Koehler-Gibson QuickBooks';
setActive('QuickBooks');
end
else
ShowMessage('Please Save or Cancel your changes');
end; end;
procedure TFViewMain.lblUsersClick(Sender: TObject); procedure TFViewMain.lblUsersClick(Sender: TObject);
begin begin
ShowForm(TFViewUsers); if ( not ( change ) ) then
lblAppTitle.Caption := 'Koehler-Gibson Users'; begin
ShowForm(TFViewUsers);
lblAppTitle.Caption := 'Koehler-Gibson Users';
end
else
ShowMessage('Please Save or Cancel your changes');
end; end;
procedure TFViewMain.lblItemsListClick(Sender: TObject); procedure TFViewMain.lblItemsListClick(Sender: TObject);
begin begin
ShowForm(TFViewItems); if ( not ( change ) ) then
lblAppTitle.Caption := 'Koehler-Gibson Items'; begin
setActive('Items'); ShowForm(TFViewItems);
lblAppTitle.Caption := 'Koehler-Gibson Items';
setActive('Items');
end
else
ShowMessage('Please Save or Cancel your changes');
end; end;
procedure TFViewMain.setActive(page: string); procedure TFViewMain.setActive(page: string);
...@@ -236,28 +269,28 @@ begin ...@@ -236,28 +269,28 @@ begin
end; end;
procedure TFViewMain.ViewOrderEntryCorrugated(orderInfo, customerInfo, mode: string); procedure TFViewMain.ViewOrderEntryCorrugated(orderInfo, customerInfo, mode, info: 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 := TFOrderEntryCorrugated.CreateForm(WebPanel1.ElementID, orderInfo, customerInfo, mode); FChildForm := TFOrderEntryCorrugated.CreateForm(WebPanel1.ElementID, orderInfo, customerInfo, mode, info);
end; end;
procedure TFViewMain.ViewOrderEntryWeb(orderInfo, customerInfo, mode: string); procedure TFViewMain.ViewOrderEntryWeb(orderInfo, customerInfo, mode, info: 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 := TFOrderEntryWeb.CreateForm(WebPanel1.ElementID, orderInfo, customerInfo, mode); FChildForm := TFOrderEntryWeb.CreateForm(WebPanel1.ElementID, orderInfo, customerInfo, mode, info);
end; end;
procedure TFViewMain.ViewOrderEntryCuttingDie(orderInfo, customerInfo, mode: string); procedure TFViewMain.ViewOrderEntryCuttingDie(orderInfo, customerInfo, mode, info: 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 := TFOrderEntryCuttingDie.CreateForm(WebPanel1.ElementID, orderInfo, customerInfo, mode); FChildForm := TFOrderEntryCuttingDie.CreateForm(WebPanel1.ElementID, orderInfo, customerInfo, mode, info);
end; end;
procedure TFViewMain.ShowUserForm(Info: string); procedure TFViewMain.ShowUserForm(Info: string);
......
...@@ -147,6 +147,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -147,6 +147,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ElementPosition = epRelative ElementPosition = epRelative
Role = 'null' Role = 'null'
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object dtpProofDate: TWebDateTimePicker object dtpProofDate: TWebDateTimePicker
Left = 22 Left = 22
...@@ -161,6 +162,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -161,6 +162,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ElementPosition = epRelative ElementPosition = epRelative
Role = 'null' Role = 'null'
Text = '' Text = ''
OnChange = dtpProofDateChange
end end
object dtpShipDate: TWebDateTimePicker object dtpShipDate: TWebDateTimePicker
Left = 22 Left = 22
...@@ -175,6 +177,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -175,6 +177,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ElementPosition = epRelative ElementPosition = epRelative
Role = 'null' Role = 'null'
Text = '' Text = ''
OnChange = dtpShipDateChange
end end
object dtpArtDue: TWebDateTimePicker object dtpArtDue: TWebDateTimePicker
Left = 24 Left = 24
...@@ -203,6 +206,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -203,6 +206,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ElementPosition = epRelative ElementPosition = epRelative
Role = 'null' Role = 'null'
Text = '' Text = ''
OnChange = dtpPlateDueChange
end end
object dtpMountDue: TWebDateTimePicker object dtpMountDue: TWebDateTimePicker
Left = 24 Left = 24
...@@ -217,6 +221,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -217,6 +221,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ElementPosition = epRelative ElementPosition = epRelative
Role = 'null' Role = 'null'
Text = '' Text = ''
OnChange = dtpMountDueChange
end end
object WebButton1: TWebButton object WebButton1: TWebButton
Left = 658 Left = 658
...@@ -245,6 +250,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -245,6 +250,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ElementPosition = epRelative ElementPosition = epRelative
Role = 'null' Role = 'null'
Text = '' Text = ''
OnChange = dtpApprovedDateChange
end end
object edtCompanyName: TWebDBEdit object edtCompanyName: TWebDBEdit
Left = 18 Left = 18
...@@ -857,7 +863,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -857,7 +863,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
DataField = 'general_special_instructions' DataField = 'general_special_instructions'
DataSource = WebDataSource1 DataSource = WebDataSource1
end end
object btnConfirm: TWebButton object btnSave: TWebButton
Left = 526 Left = 526
Top = 560 Top = 560
Width = 96 Width = 96
...@@ -869,7 +875,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -869,7 +875,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
Role = 'null' Role = 'null'
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnClick = btnConfirmClick OnClick = btnSaveClick
end end
object cbRefArtAPDF: TWebCheckBox object cbRefArtAPDF: TWebCheckBox
Left = 316 Left = 316
...@@ -1196,6 +1202,30 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1196,6 +1202,30 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnClick = btn_confirm_deleteClick OnClick = btn_confirm_deleteClick
end 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 object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection Connection = DMConnection.ApiConnection
Left = 1014 Left = 1014
...@@ -1208,6 +1238,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1208,6 +1238,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 256 Top = 256
end end
object XDataWebDataSet1: TXDataWebDataSet object XDataWebDataSet1: TXDataWebDataSet
AfterEdit = XDataWebDataSet1AfterEdit
Connection = DMConnection.ApiConnection Connection = DMConnection.ApiConnection
Left = 1060 Left = 1060
Top = 182 Top = 182
...@@ -1505,11 +1536,11 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1505,11 +1536,11 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
end end
object wdsShipTo: TWebDataSource object wdsShipTo: TWebDataSource
DataSet = xdwdsShipTo DataSet = xdwdsShipTo
OnDataChange = wdsShipToDataChange
Left = 1090 Left = 1090
Top = 124 Top = 124
end end
object xdwdsShipTo: TXDataWebDataSet object xdwdsShipTo: TXDataWebDataSet
AfterEdit = xdwdsShipToAfterEdit
Left = 1096 Left = 1096
Top = 40 Top = 40
object xdwdsShipToADDRESS: TStringField object xdwdsShipToADDRESS: TStringField
...@@ -1518,11 +1549,11 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1518,11 +1549,11 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
end end
object wdsQBItem: TWebDataSource object wdsQBItem: TWebDataSource
DataSet = xdwdsQBItem DataSet = xdwdsQBItem
OnDataChange = wdsQBItemDataChange
Left = 1172 Left = 1172
Top = 128 Top = 128
end end
object xdwdsQBItem: TXDataWebDataSet object xdwdsQBItem: TXDataWebDataSet
AfterEdit = xdwdsQBItemAfterEdit
Left = 1174 Left = 1174
Top = 38 Top = 38
object xdwdsQBItemname: TStringField object xdwdsQBItemname: TStringField
......
<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"> <div class="row mx-5">
<div class="col-12 col-md-8"> <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> </div>
<h4 class="custom-h4 mt-3">Company</h4> <h4 class="custom-h4 mt-3">Company</h4>
<hr class="custom-hr"> <hr class="custom-hr">
<div class="row"> <div class="row">
<div class="col-auto"> <div class="col-auto">
<label for="wdbe_first_name" class="form-label mt-2">Company Name:</label> <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>
<div class="col-auto"> <div class="col-auto">
<label for="wdbe_first_name" class="form-label mt-2">Account Company Name:</label> <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>
<div class="col-auto"> <div class="col-auto">
<label for="wdbe_first_name" class="form-label mt-2">In Quickbooks?:</label> <label for="wdbe_first_name" class="form-label mt-2">In Quickbooks?:</label>
...@@ -36,7 +69,10 @@ ...@@ -36,7 +69,10 @@
</div> </div>
<div class="col-auto"> <div class="col-auto">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Order Date:</label> <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>
<div class="col-auto"> <div class="col-auto">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Proof Date:</label> <label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Proof Date:</label>
...@@ -60,11 +96,17 @@ ...@@ -60,11 +96,17 @@
</div> </div>
<div> <div>
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Invoice To:</label> <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>
<div> <div>
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Ship To:</label> <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>
<div class="col-auto"> <div class="col-auto">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">PO Number:</label> <label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">PO Number:</label>
...@@ -300,32 +342,13 @@ ...@@ -300,32 +342,13 @@
</div> </div>
<h4 class="custom-h4 mt-3">General</h4> <h4 class="custom-h4 mt-3">General</h4>
<hr class="custom-hr"> <hr class="custom-hr">
<div class="row"> <div class="row pb-3">
<div class="col-auto"> <div class="col-auto">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label">Special Instructions</label> <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> <textarea id="edtspecialinstructions" class="form-control" style=" width: 500px; height: 150px;"></textarea>
</div> </div>
</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>
<div class="modal fade" id="confirmation_modal" tabindex="-1" aria-labelledby="confirmation_modal_label" aria-hidden="true"> <div class="modal fade" id="confirmation_modal" tabindex="-1" aria-labelledby="confirmation_modal_label" aria-hidden="true">
...@@ -335,11 +358,11 @@ ...@@ -335,11 +358,11 @@
<h5 class="modal-title" id="confirmation_modal_label">Confirm</h5> <h5 class="modal-title" id="confirmation_modal_label">Confirm</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body" id="modal_body">
Are you sure you want to delete this order? Are you sure you want to delete this order?
</div> </div>
<div class="modal-footer"> <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> <button type="button" class="btn btn-primary" data-bs-dismiss="modal" id="btn_confirm_delete">Delete</button>
</div> </div>
</div> </div>
......
...@@ -70,6 +70,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -70,6 +70,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object dtpProofDate: TWebDateTimePicker object dtpProofDate: TWebDateTimePicker
Left = 22 Left = 22
...@@ -83,6 +84,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -83,6 +84,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object dtpShipDate: TWebDateTimePicker object dtpShipDate: TWebDateTimePicker
Left = 22 Left = 22
...@@ -96,6 +98,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -96,6 +98,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object edtShipVia: TWebDBEdit object edtShipVia: TWebDBEdit
Left = 24 Left = 24
...@@ -201,9 +204,9 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -201,9 +204,9 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
DataField = 'general_special_instructions' DataField = 'general_special_instructions'
DataSource = WebDataSource1 DataSource = WebDataSource1
end end
object btnConfirm: TWebButton object btnSave: TWebButton
Left = 566 Left = 526
Top = 538 Top = 418
Width = 96 Width = 96
Height = 25 Height = 25
Caption = 'Save' Caption = 'Save'
...@@ -211,11 +214,11 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -211,11 +214,11 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
ElementID = 'btnconfirm' ElementID = 'btnconfirm'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnClick = btnConfirmClick OnClick = btnSaveClick
end end
object btnCancel: TWebButton object btnCancel: TWebButton
Left = 680 Left = 640
Top = 538 Top = 418
Width = 96 Width = 96
Height = 25 Height = 25
Caption = 'Cancel' Caption = 'Cancel'
...@@ -289,8 +292,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -289,8 +292,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
ListSource = wdsQBItem ListSource = wdsQBItem
end end
object btnPDF: TWebButton object btnPDF: TWebButton
Left = 782 Left = 742
Top = 537 Top = 417
Width = 96 Width = 96
Height = 25 Height = 25
Caption = 'PDF' Caption = 'PDF'
...@@ -312,8 +315,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -312,8 +315,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object btnDelete: TWebButton object btnDelete: TWebButton
Left = 574 Left = 534
Top = 578 Top = 458
Width = 96 Width = 96
Height = 25 Height = 25
Caption = 'Delete' Caption = 'Delete'
...@@ -324,8 +327,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -324,8 +327,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
OnClick = btnDeleteClick OnClick = btnDeleteClick
end end
object btnClose: TWebButton object btnClose: TWebButton
Left = 684 Left = 644
Top = 573 Top = 453
Width = 96 Width = 96
Height = 25 Height = 25
Caption = 'Close' Caption = 'Close'
...@@ -336,8 +339,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -336,8 +339,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
OnClick = btnCloseClick OnClick = btnCloseClick
end end
object btn_confirm_delete: TWebButton object btn_confirm_delete: TWebButton
Left = 860 Left = 776
Top = 414 Top = 279
Width = 96 Width = 96
Height = 25 Height = 25
Caption = 'Delete' Caption = 'Delete'
...@@ -348,8 +351,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -348,8 +351,8 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
OnClick = btn_confirm_deleteClick OnClick = btn_confirm_deleteClick
end end
object btnCopy: TWebButton object btnCopy: TWebButton
Left = 786 Left = 746
Top = 573 Top = 453
Width = 96 Width = 96
Height = 25 Height = 25
Caption = 'Copy' Caption = 'Copy'
...@@ -359,12 +362,37 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -359,12 +362,37 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnClick = btnCopyClick OnClick = btnCopyClick
end 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 object WebDataSource1: TWebDataSource
DataSet = XDataWebDataSet1 DataSet = XDataWebDataSet1
Left = 22 Left = 22
Top = 10 Top = 10
end end
object XDataWebDataSet1: TXDataWebDataSet object XDataWebDataSet1: TXDataWebDataSet
AfterEdit = XDataWebDataSet1AfterEdit
Connection = DMConnection.ApiConnection Connection = DMConnection.ApiConnection
Left = 90 Left = 90
Top = 20 Top = 20
...@@ -446,6 +474,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -446,6 +474,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
Top = 436 Top = 436
end end
object xdwdsShipTo: TXDataWebDataSet object xdwdsShipTo: TXDataWebDataSet
AfterEdit = xdwdsShipToAfterEdit
Left = 270 Left = 270
Top = 436 Top = 436
object xdwdsShipToADDRESS: TStringField object xdwdsShipToADDRESS: TStringField
...@@ -458,6 +487,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -458,6 +487,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
Top = 554 Top = 554
end end
object xdwdsQBItem: TXDataWebDataSet object xdwdsQBItem: TXDataWebDataSet
AfterEdit = xdwdsQBItemAfterEdit
Left = 190 Left = 190
Top = 548 Top = 548
object xdwdsQBItemname: TStringField object xdwdsQBItemname: TStringField
......
<div class="col-12 col-md-8"> <nav class="navbar navbar-expand navbar-light bg-light sticky-top" style="z-index: 100;">
<div class="row"> <div class="container-fluid ps-0">
<div class=col-sm> <div id="view.login.message" class="alert alert-danger"
<div class=col-sm> 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;">
<div id="view.login.message" class="alert alert-danger"> <button id="view.login.message.button" type="button" class="btn-close" aria-label="Close"></button>
<button id="view.login.message.button" type="button" class="btn-close" aria-label="Close"></button> <span id="view.login.message.label"></span>
<span id="view.login.message.label"></span> </div>
</div> <ul class="navbar-nav me-auto ps-2">
</div> <li class="nav-item pe-2">
</div> <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> </div>
</nav>
<div class="row mx-5">
<h4 class="custom-h4 mt-3">Company</h4> <h4 class="custom-h4 mt-3">Company</h4>
<hr class="custom-hr"> <hr class="custom-hr">
<div class="row"> <div class="row">
<div class="col-auto"> <div class="col-auto">
<label for="wdbe_first_name" class="form-label mt-2">Company Name:</label> <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> <div class="invalid-feedback" style="font-size: 15px;">
<div class="col-auto"> Please Provide a Company Name.
<label for="wdbe_first_name" class="form-label mt-2">Account Company Name:</label> </div>
<input id="edtaccountcompanyname"type="text" class="form-control" style="width: 150px"/> </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"> <div class="col-auto">
<label for="wdbe_first_name" class="form-label mt-2">In Quickbooks?:</label> <label for="wdbe_first_name" class="form-label mt-2">In Quickbooks?:</label>
<input id="edtinquickbooks"type="text" class="form-control" style="width: 150px"/> <input id="edtinquickbooks"type="text" class="form-control" style="width: 150px"/>
...@@ -33,9 +64,12 @@ ...@@ -33,9 +64,12 @@
<input id="edtordernum" class="form-control input-sm" style="width: 100px"/> <input id="edtordernum" class="form-control input-sm" style="width: 100px"/>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Order Date:</label> <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> <div class="invalid-feedback" style="font-size: 15px;">
Please Provide an Order Date.
</div>
</div>
<div class="col-auto"> <div class="col-auto">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Proof Date:</label> <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"> <input class="form-control input-sm" id="dtpproofdate" type="date">
...@@ -58,11 +92,17 @@ ...@@ -58,11 +92,17 @@
</div> </div>
<div> <div>
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Invoice To:</label> <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>
<div> <div>
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Ship To:</label> <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>
<div class="col-auto"> <div class="col-auto">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">PO Number:</label> <label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">PO Number:</label>
...@@ -104,6 +144,12 @@ ...@@ -104,6 +144,12 @@
<div class="col-auto"> <div class="col-auto">
<button id="btnclose" class="btn btn-primary btn-sm float-end my-2">Close</button> <button id="btnclose" class="btn btn-primary btn-sm float-end my-2">Close</button>
</div> </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> </div>
<div class="modal fade" id="confirmation_modal" tabindex="-1" aria-labelledby="confirmation_modal_label" aria-hidden="true"> <div class="modal fade" id="confirmation_modal" tabindex="-1" aria-labelledby="confirmation_modal_label" aria-hidden="true">
...@@ -113,11 +159,11 @@ ...@@ -113,11 +159,11 @@
<h5 class="modal-title" id="confirmation_modal_label">Confirm</h5> <h5 class="modal-title" id="confirmation_modal_label">Confirm</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body" id="modal_body">
Are you sure you want to delete this order? Are you sure you want to delete this order?
</div> </div>
<div class="modal-footer"> <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> <button type="button" class="btn btn-primary" data-bs-dismiss="modal" id="btn_confirm_delete">Delete</button>
</div> </div>
</div> </div>
......
...@@ -203,6 +203,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -203,6 +203,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object dtpProofDate: TWebDateTimePicker object dtpProofDate: TWebDateTimePicker
Left = 22 Left = 22
...@@ -216,6 +217,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -216,6 +217,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object dtpShipDate: TWebDateTimePicker object dtpShipDate: TWebDateTimePicker
Left = 22 Left = 22
...@@ -229,6 +231,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -229,6 +231,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object dtpArtDue: TWebDateTimePicker object dtpArtDue: TWebDateTimePicker
Left = 24 Left = 24
...@@ -242,6 +245,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -242,6 +245,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object dtpPlateDue: TWebDateTimePicker object dtpPlateDue: TWebDateTimePicker
Left = 24 Left = 24
...@@ -255,6 +259,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -255,6 +259,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object edtShipVia: TWebDBEdit object edtShipVia: TWebDBEdit
Left = 24 Left = 24
...@@ -515,6 +520,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -515,6 +520,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object dtpPDFDate3: TWebDateTimePicker object dtpPDFDate3: TWebDateTimePicker
Left = 444 Left = 444
...@@ -528,6 +534,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -528,6 +534,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object dtpPDFDate2: TWebDateTimePicker object dtpPDFDate2: TWebDateTimePicker
Left = 444 Left = 444
...@@ -541,6 +548,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -541,6 +548,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object cbInkJet: TWebDBCheckBox object cbInkJet: TWebDBCheckBox
Left = 444 Left = 444
...@@ -593,6 +601,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -593,6 +601,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object dtpInkJetDate3: TWebDateTimePicker object dtpInkJetDate3: TWebDateTimePicker
Left = 444 Left = 444
...@@ -606,6 +615,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -606,6 +615,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object dtpInkJetDate2: TWebDateTimePicker object dtpInkJetDate2: TWebDateTimePicker
Left = 444 Left = 444
...@@ -619,6 +629,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -619,6 +629,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object edtColorContrastTo: TWebDBEdit object edtColorContrastTo: TWebDBEdit
Left = 444 Left = 444
...@@ -645,6 +656,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -645,6 +656,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object dtpColorContractDate2: TWebDateTimePicker object dtpColorContractDate2: TWebDateTimePicker
Left = 444 Left = 444
...@@ -658,6 +670,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -658,6 +670,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object edtDigitalColorTo: TWebDBEdit object edtDigitalColorTo: TWebDBEdit
Left = 444 Left = 444
...@@ -697,6 +710,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -697,6 +710,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Date = 45638.529943136570000000 Date = 45638.529943136570000000
Role = '' Role = ''
Text = '' Text = ''
OnChange = dtpOrderDateChange
end end
object edtAniloxInfo: TWebDBEdit object edtAniloxInfo: TWebDBEdit
Left = 634 Left = 634
...@@ -1074,7 +1088,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -1074,7 +1088,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
DataField = 'general_comments' DataField = 'general_comments'
DataSource = WebDataSource1 DataSource = WebDataSource1
end end
object btnConfirm: TWebButton object btnSave: TWebButton
Left = 649 Left = 649
Top = 568 Top = 568
Width = 96 Width = 96
...@@ -1084,7 +1098,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -1084,7 +1098,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
ElementID = 'btnconfirm' ElementID = 'btnconfirm'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnClick = btnConfirmClick OnClick = btnSaveClick
end end
object btnPDF: TWebButton object btnPDF: TWebButton
Left = 963 Left = 963
...@@ -1246,6 +1260,30 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -1246,6 +1260,30 @@ object FOrderEntryWeb: TFOrderEntryWeb
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnClick = btn_confirm_deleteClick OnClick = btn_confirm_deleteClick
end 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 object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection Connection = DMConnection.ApiConnection
Left = 160 Left = 160
...@@ -1258,6 +1296,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -1258,6 +1296,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Top = 8 Top = 8
end end
object XDataWebDataSet1: TXDataWebDataSet object XDataWebDataSet1: TXDataWebDataSet
AfterEdit = XDataWebDataSet1AfterEdit
Connection = DMConnection.ApiConnection Connection = DMConnection.ApiConnection
Left = 90 Left = 90
Top = 20 Top = 20
...@@ -1527,6 +1566,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -1527,6 +1566,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Top = 436 Top = 436
end end
object xdwdsShipTo: TXDataWebDataSet object xdwdsShipTo: TXDataWebDataSet
AfterEdit = XDataWebDataSet1AfterEdit
Left = 208 Left = 208
Top = 398 Top = 398
object xdwdsShipToADDRESS: TStringField object xdwdsShipToADDRESS: TStringField
...@@ -1539,6 +1579,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -1539,6 +1579,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
Top = 518 Top = 518
end end
object xdwdsQBItem: TXDataWebDataSet object xdwdsQBItem: TXDataWebDataSet
AfterEdit = XDataWebDataSet1AfterEdit
Left = 200 Left = 200
Top = 512 Top = 512
object xdwdsQBItemname: TStringField object xdwdsQBItemname: TStringField
......
<div class="col-12 col-md-8"> <nav class="navbar navbar-expand navbar-light bg-light sticky-top" style="z-index: 100;">
<div class="row"> <div class="container-fluid ps-0">
<div class=col-sm> <div id="view.login.message" class="alert alert-danger"
<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> <button id="view.login.message.button" type="button" class="btn-close" aria-label="Close"></button>
<span id="view.login.message.label"></span> <span id="view.login.message.label"></span>
</div> </div>
</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> </div>
</nav>
<div class="row mx-5">
<h4 class="custom-h4 mt-3">Company</h4> <h4 class="custom-h4 mt-3">Company</h4>
<hr class="custom-hr"> <hr class="custom-hr">
<div class="row"> <div class="row">
<div class="col-auto"> <div class="col-auto">
<label class="form-label mt-2">Company Name:</label> <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> <div class="invalid-feedback" style="font-size: 15px;">
<div class="col-auto"> Please Provide a Company Name.
<label for="wdbe_first_name" class="form-label mt-2">Account Company Name:</label> </div>
<input id="edtaccountcompanyname"type="text" class="form-control" style="width: 150px"/> </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"> <div class="col-auto">
<label for="wdbe_first_name" class="form-label mt-2">In Quickbooks?:</label> <label for="wdbe_first_name" class="form-label mt-2">In Quickbooks?:</label>
<input id="edtinquickbooks"type="text" class="form-control" style="width: 150px"/> <input id="edtinquickbooks"type="text" class="form-control" style="width: 150px"/>
...@@ -31,9 +64,12 @@ ...@@ -31,9 +64,12 @@
<input id="edtordernum" class="form-control input-sm" style="width: 100px"/> <input id="edtordernum" class="form-control input-sm" style="width: 100px"/>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<label style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Order Date:</label> <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> <div class="invalid-feedback" style="font-size: 15px;">
Please Provide an Order Date.
</div>
</div>
<div class="col-auto"> <div class="col-auto">
<label style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Proof Date:</label> <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"> <input class="form-control input-sm" id="dtpproofdate" type="date">
...@@ -55,12 +91,18 @@ ...@@ -55,12 +91,18 @@
<input id="edtprice" class="form-control input-sm" style="width: 100px" type="number" min="0"/> <input id="edtprice" class="form-control input-sm" style="width: 100px" type="number" min="0"/>
</div> </div>
<div> <div>
<label style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Invoice To:</label> <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>
<div> <div>
<label style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Ship To:</label> <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>
<div class="col-auto"> <div class="col-auto">
<label style="font-weight: 700; font-size: 15px;" class="form-label mt-2">PO Number:</label> <label style="font-weight: 700; font-size: 15px;" class="form-label mt-2">PO Number:</label>
...@@ -378,6 +420,12 @@ ...@@ -378,6 +420,12 @@
<div class="col-auto"> <div class="col-auto">
<button id="btnclose" class="btn btn-primary btn-sm float-end my-2">Close</button> <button id="btnclose" class="btn btn-primary btn-sm float-end my-2">Close</button>
</div> </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> </div>
<div class="modal fade" id="confirmation_modal" tabindex="-1" aria-labelledby="confirmation_modal_label" aria-hidden="true"> <div class="modal fade" id="confirmation_modal" tabindex="-1" aria-labelledby="confirmation_modal_label" aria-hidden="true">
...@@ -387,11 +435,11 @@ ...@@ -387,11 +435,11 @@
<h5 class="modal-title" id="confirmation_modal_label">Confirm</h5> <h5 class="modal-title" id="confirmation_modal_label">Confirm</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body" id="modal_body">
Are you sure you want to delete this order? Are you sure you want to delete this order?
</div> </div>
<div class="modal-footer"> <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> <button type="button" class="btn btn-primary" data-bs-dismiss="modal" id="btn_confirm_delete">Delete</button>
</div> </div>
</div> </div>
......
...@@ -126,7 +126,7 @@ type ...@@ -126,7 +126,7 @@ type
edtJobNumber: TWebDBEdit; edtJobNumber: TWebDBEdit;
WebLabel11: TWebLabel; WebLabel11: TWebLabel;
Comments: TWebDBEdit; Comments: TWebDBEdit;
btnConfirm: TWebButton; btnSave: TWebButton;
btnPDF: TWebButton; btnPDF: TWebButton;
btnCancel: TWebButton; btnCancel: TWebButton;
XDataWebDataSet1plates_job_number: TStringField; XDataWebDataSet1plates_job_number: TStringField;
...@@ -204,6 +204,8 @@ type ...@@ -204,6 +204,8 @@ type
edtOrderNum: TWebEdit; edtOrderNum: TWebEdit;
btn_confirm_delete: TWebButton; btn_confirm_delete: TWebButton;
tmrReturn: TWebTimer; tmrReturn: TWebTimer;
btnEdit: TWebButton;
btnAdd: TWebButton;
procedure WebFormCreate(Sender: TObject); procedure WebFormCreate(Sender: TObject);
procedure HideNotification(); procedure HideNotification();
procedure ShowNotification(Notification: string); procedure ShowNotification(Notification: string);
...@@ -213,7 +215,7 @@ type ...@@ -213,7 +215,7 @@ type
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);
procedure btnConfirmClick(Sender: TObject); procedure btnSaveClick(Sender: TObject);
[async] procedure AddWebOrder(orderJSON: TJSONObject); [async] procedure AddWebOrder(orderJSON: TJSONObject);
procedure btnCancelClick(Sender: TObject); procedure btnCancelClick(Sender: TObject);
procedure btnPDFClick(Sender: TObject); procedure btnPDFClick(Sender: TObject);
...@@ -227,6 +229,12 @@ type ...@@ -227,6 +229,12 @@ type
procedure tmrReturnTimer(Sender: TObject); procedure tmrReturnTimer(Sender: TObject);
procedure btn_confirm_deleteClick(Sender: TObject); procedure btn_confirm_deleteClick(Sender: TObject);
function VerifyOrder(): boolean; function VerifyOrder(): boolean;
procedure btnAddClick(Sender: TObject);
procedure btnEditClick(Sender: TObject);
procedure EditMode();
procedure XDataWebDataSet1AfterEdit(DataSet: TDataSet);
procedure dtpOrderDateChange(Sender: TObject);
procedure ViewMode();
private private
FAgencyCode: string; FAgencyCode: string;
FCurrentReportType: string; FCurrentReportType: string;
...@@ -234,9 +242,10 @@ type ...@@ -234,9 +242,10 @@ type
orderID: string; orderID: string;
customerID: string; customerID: string;
mode: string; mode: string;
notification: string;
//FJSONProc1: TJSONProc1; //FJSONProc1: TJSONProc1;
public public
class function CreateForm(AElementID, orderInfo, customerInfo, mode: string): TWebForm; class function CreateForm(AElementID, orderInfo, customerInfo, mode, info: string): TWebForm;
end; end;
var var
...@@ -247,52 +256,72 @@ implementation ...@@ -247,52 +256,72 @@ implementation
{$R *.dfm} {$R *.dfm}
uses uses
View.Home, View.Main; View.Home, View.Main, View.AddOrder;
procedure TFOrderEntryWeb.btnConfirmClick(Sender: TObject); procedure TFOrderEntryWeb.btnSaveClick(Sender: TObject);
begin begin
if VerifyOrder() then if VerifyOrder() then
begin begin
sendOrderToServer(); sendOrderToServer();
btnPDF.Enabled := true; ViewMode();
btnDelete.Enabled := true;
end; end;
window.scrollTo(0, 0); window.scrollTo(0, 0);
end; end;
function TFOrderEntryWeb.VerifyOrder: Boolean; function TFOrderEntryWeb.VerifyOrder: Boolean;
var
input: TJSHTMLInputElement;
begin begin
result := true; result := true;
input := TJSHTMLInputElement(document.getElementById('edtcompanyname'));
if edtCompanyName.Text = '' then if edtCompanyName.Text = '' then
begin begin
showNotification('Failure:Orders Must Have a Company Name'); input.classList.add('is-invalid');
window.scrollTo(0,0);
result := false; result := false;
end; end
else
input.classList.remove('is-invalid');
input := TJSHTMLInputElement(document.getElementById('edtaccountcompanyname'));
if edtCompanyAccountName.Text = '' then if edtCompanyAccountName.Text = '' then
begin begin
showNotification('Failure:Orders Must Have a Company Account Name');
window.scrollTo(0,0); input.classList.add('is-invalid');
result := false; result := false;
end; end
else
input.classList.remove('is-invalid');
input := TJSHTMLInputElement(document.getElementById('edtinvoiceto'));
if edtInvoiceTo.Text = '' then if edtInvoiceTo.Text = '' then
begin begin
showNotification('Failure:Orders Must Have an Invoice Address'); console.log('hot');
window.scrollTo(0,0); input.classList.add('is-invalid');
result := false; result := false;
end; end
else
input.classList.remove('is-invalid');
input := TJSHTMLInputElement(document.getElementById('wcbshipto'));
if WebDBComboBox1.Text = '' then if WebDBComboBox1.Text = '' then
begin begin
showNotification('Failure:Orders Must Have a Billing Address'); input.classList.add('is-invalid');
window.scrollTo(0,0);
result := false; result := false;
end; end
else
input.classList.remove('is-invalid');
input := TJSHTMLInputElement(document.getElementById('dtporderdate'));
if dtpOrderDate.Date = 0 then if dtpOrderDate.Date = 0 then
begin begin
showNotification('Failure:Orders Must Have an Order Date'); input.classList.add('is-invalid');
window.scrollTo(0,0);
result := false; result := false;
end; end
else
input.classList.remove('is-invalid');
end; end;
procedure TFOrderEntryWeb.btnCopyClick(Sender: TObject); procedure TFOrderEntryWeb.btnCopyClick(Sender: TObject);
...@@ -313,8 +342,7 @@ begin ...@@ -313,8 +342,7 @@ begin
dtpColorContractDate2.Date := 0; dtpColorContractDate2.Date := 0;
dtpDigitalColorDate.Date := 0; dtpDigitalColorDate.Date := 0;
edtOrderNum.Text := ''; edtOrderNum.Text := '';
btnPDF.Enabled := False; EditMode();
btnDelete.Enabled := False;
ShowNotification('Success:Order Successfully Copied'); ShowNotification('Success:Order Successfully Copied');
window.scrollTo(0, 0); window.scrollTo(0, 0);
end; end;
...@@ -328,6 +356,24 @@ begin ...@@ -328,6 +356,24 @@ begin
end; end;
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(); [async] procedure TFOrderEntryWeb.DelOrder();
var var
Response: TXDataClientResponse; Response: TXDataClientResponse;
...@@ -336,6 +382,11 @@ begin ...@@ -336,6 +382,11 @@ begin
[OrderID, 'web', JS.toString(AuthService.TokenPayload.Properties['user_id'])])); [OrderID, 'web', JS.toString(AuthService.TokenPayload.Properties['user_id'])]));
end; end;
procedure TFOrderEntryWeb.dtpOrderDateChange(Sender: TObject);
begin
EditMode();
end;
procedure TFOrderEntryWeb.SendOrderToServer(); procedure TFOrderEntryWeb.SendOrderToServer();
// Converts all the information on the page into a JSON to then send to the server // Converts all the information on the page into a JSON to then send to the server
var var
...@@ -433,14 +484,27 @@ end; ...@@ -433,14 +484,27 @@ end;
procedure TFOrderEntryWeb.btn_confirm_deleteClick(Sender: TObject); procedure TFOrderEntryWeb.btn_confirm_deleteClick(Sender: TObject);
begin begin
asm if document.getElementById('btn_confirm_delete').innerText = 'Yes' then
var confirmationModal = new bootstrap.Modal(document.getElementById('confirmation_modal'), { begin
keyboard: false }); FViewMain.change := false;
confirmationModal.hide(); if OrderID <> '' then
startSpinner(); 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; end;
delOrder();
tmrReturn.Enabled := true;
end; end;
procedure TFOrderEntryWeb.GenerateReportPDF; procedure TFOrderEntryWeb.GenerateReportPDF;
...@@ -472,7 +536,7 @@ begin ...@@ -472,7 +536,7 @@ begin
[orderJSON.ToString])); [orderJSON.ToString]));
end; end;
class function TFOrderEntryWeb.CreateForm(AElementID, orderInfo, customerInfo, mode: string): TWebForm; class function TFOrderEntryWeb.CreateForm(AElementID, orderInfo, customerInfo, mode, info: string): TWebForm;
var var
localMode: string; localMode: string;
begin begin
...@@ -486,6 +550,7 @@ begin ...@@ -486,6 +550,7 @@ begin
TFOrderEntryWeb(AForm).customerID := customerInfo; TFOrderEntryWeb(AForm).customerID := customerInfo;
TFOrderEntryWeb(AForm).orderID := orderInfo; TFOrderEntryWeb(AForm).orderID := orderInfo;
TFOrderEntryWeb(AForm).mode := localMode; TFOrderEntryWeb(AForm).mode := localMode;
TFOrderEntryWeb(AForm).notification := info;
end; end;
end end
); );
...@@ -550,9 +615,53 @@ begin ...@@ -550,9 +615,53 @@ begin
addColorRow('','','',''); addColorRow('','','','');
end; 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); procedure TFOrderEntryWeb.btnCancelClick(Sender: TObject);
begin 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; end;
procedure TFOrderEntryWeb.btnCloseClick(Sender: TObject); procedure TFOrderEntryWeb.btnCloseClick(Sender: TObject);
...@@ -743,11 +852,29 @@ end; ...@@ -743,11 +852,29 @@ end;
procedure TFOrderEntryWeb.WebFormShow(Sender: TObject); procedure TFOrderEntryWeb.WebFormShow(Sender: TObject);
begin begin
if mode <> 'ADD' then if mode <> 'ADD' then
getOrder(orderID) begin
getOrder(orderID);
ViewMode();
end
else else
begin
getCustomer(customerID); getCustomer(customerID);
EditMode();
end;
edtOrderNum.Text := OrderID; edtOrderNum.Text := OrderID;
HideNotification(); if notification = '' then
begin
HideNotification;
end
else
begin
ShowNotification(notification);
end;
end;
procedure TFOrderEntryWeb.XDataWebDataSet1AfterEdit(DataSet: TDataSet);
begin
EditMode();
end; end;
procedure TFOrderEntryWeb.HideNotification; procedure TFOrderEntryWeb.HideNotification;
...@@ -799,5 +926,18 @@ begin ...@@ -799,5 +926,18 @@ begin
window.scrollTo(0, 0); window.scrollTo(0, 0);
end; 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. end.
\ No newline at end of file
...@@ -273,7 +273,7 @@ begin ...@@ -273,7 +273,7 @@ begin
newform.Caption := 'Input Search Options'; newform.Caption := 'Input Search Options';
newForm.Popup := True; newForm.Popup := True;
newForm.Border := fbDialog; newForm.Border := fbDialog;
newForm.searchOptions := generateSearchOptions(); newForm.searchOptions := GenerateSearchOptions();//FViewMain.search;
// used to manage Back button handling to close subform // used to manage Back button handling to close subform
window.location.hash := 'subform'; window.location.hash := 'subform';
...@@ -304,6 +304,7 @@ begin ...@@ -304,6 +304,7 @@ begin
companyID := newform.DBID; companyID := newform.DBID;
orderType := newform.wcbOrderType.Text; orderType := newform.wcbOrderType.Text;
//FViewMain.search := generateSearchOptions();
searchOptions := generateSearchOptions(); searchOptions := generateSearchOptions();
edtSearch.Text := searchOptions; edtSearch.Text := searchOptions;
getOrders(searchOptions); getOrders(searchOptions);
...@@ -664,11 +665,11 @@ end; ...@@ -664,11 +665,11 @@ end;
procedure TFViewOrders.orderEntry(orderInfo, customerInfo, mode, orderType: string); procedure TFViewOrders.orderEntry(orderInfo, customerInfo, mode, orderType: string);
begin begin
if orderType = 'corrugated' then if orderType = 'corrugated' then
FViewMain.ViewOrderEntryCorrugated(orderInfo, customerInfo, mode) FViewMain.ViewOrderEntryCorrugated(orderInfo, customerInfo, mode, '')
else if orderType = 'web' then else if orderType = 'web' then
FViewMain.ViewOrderEntryWeb(orderInfo, customerInfo, mode) FViewMain.ViewOrderEntryWeb(orderInfo, customerInfo, mode, '')
else else
FViewMain.ViewOrderEntryCuttingDie(orderInfo, customerInfo, mode); FViewMain.ViewOrderEntryCuttingDie(orderInfo, customerInfo, mode, '');
end; end;
procedure TFViewOrders.btnCloseNotificationClick(Sender: TObject); procedure TFViewOrders.btnCloseNotificationClick(Sender: TObject);
......
...@@ -680,7 +680,7 @@ object FSearch: TFSearch ...@@ -680,7 +680,7 @@ object FSearch: TFSearch
object edtCompanyName: TWebEdit object edtCompanyName: TWebEdit
Left = 338 Left = 338
Top = 76 Top = 76
Width = 239 Width = 377
Height = 22 Height = 22
HelpType = htKeyword HelpType = htKeyword
TabStop = False TabStop = False
......
...@@ -127,7 +127,6 @@ begin ...@@ -127,7 +127,6 @@ begin
wcbFilterType1.Text := params.Values['filterType1'] wcbFilterType1.Text := params.Values['filterType1']
else else
wcbFilterType1.Text := 'NONE'; wcbFilterType1.Text := 'NONE';
console.log(params.Values['startDate1']);
if params.Values['startDate1'] = '' then if params.Values['startDate1'] = '' then
dtpStartDate1.Date := 0 dtpStartDate1.Date := 0
...@@ -157,7 +156,6 @@ begin ...@@ -157,7 +156,6 @@ begin
else else
wcbFilterType2.Text := 'NONE'; wcbFilterType2.Text := 'NONE';
console.log(params.Values['startDate2']);
if params.Values['startDate2'] = '' then if params.Values['startDate2'] = '' then
dtpStartDate2.Date := 0 dtpStartDate2.Date := 0
else else
...@@ -254,8 +252,6 @@ begin ...@@ -254,8 +252,6 @@ begin
xdwdsCustomers.SetJsonData(customerList['data']); xdwdsCustomers.SetJsonData(customerList['data']);
xdwdsCustomers.Open; xdwdsCustomers.Open;
console.log(customerList['data']);
// Manually populate the grid // Manually populate the grid
PopulateGridManually; PopulateGridManually;
end; end;
...@@ -291,7 +287,6 @@ begin ...@@ -291,7 +287,6 @@ begin
while not xdwdsCustomers.EOF do while not xdwdsCustomers.EOF do
begin begin
TMSFNCGrid1.RowCount := RowIndex + 1; TMSFNCGrid1.RowCount := RowIndex + 1;
console.log(xdwdsCustomers.FieldByName('ID').AsString);
TMSFNCGrid1.Cells[0, RowIndex] := xdwdsCustomers.FieldByName('ID').AsString; TMSFNCGrid1.Cells[0, RowIndex] := xdwdsCustomers.FieldByName('ID').AsString;
TMSFNCGrid1.Cells[1, RowIndex] := xdwdsCustomers.FieldByName('SHORT_NAME').AsString; TMSFNCGrid1.Cells[1, RowIndex] := xdwdsCustomers.FieldByName('SHORT_NAME').AsString;
TMSFNCGrid1.Cells[2, RowIndex] := xdwdsCustomers.FieldByName('NAME').AsString; TMSFNCGrid1.Cells[2, RowIndex] := xdwdsCustomers.FieldByName('NAME').AsString;
......
...@@ -14,6 +14,14 @@ input[type="text"] { ...@@ -14,6 +14,14 @@ input[type="text"] {
padding-left: 5px; padding-left: 5px;
} }
is-invalid .form-check-input {
border: 1px solid #dc3545 !important;
}
.is-invalid .form-check-label {
color: #dc3545 !important;
}
.input-search input { .input-search input {
width: 100px; /* Adjust the width of the input */ width: 100px; /* Adjust the width of the input */
height: 35px; /* Set the height to match label height */ height: 35px; /* Set the height to match label height */
......
// 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; unit Common.Config;
interface interface
...@@ -12,16 +9,16 @@ type ...@@ -12,16 +9,16 @@ type
TServerConfig = class TServerConfig = class
private private
Furl: string; Furl: string;
FJWTTokenSecret: string; FjwtTokenSecret: string;
FAdminPassword: string; FadminPassword: string;
FWebAppFolder: string; FwebAppFolder: string;
FReportsFolder: string; FreportsFolder: string;
public public
property url: string read FUrl write FUrl; property url: string read Furl write Furl;
property jwtTokenSecret: string read FJWTTokenSecret write FJWTTokenSecret; property jwtTokenSecret: string read FjwtTokenSecret write FjwtTokenSecret;
property adminPassword: string read FAdminPassword write FAdminPassword; property adminPassword: string read FadminPassword write FadminPassword;
property webAppFolder: string read FWebAppFolder write FWebAppFolder; property webAppFolder: string read FwebAppFolder write FwebAppFolder;
property reportsFolder: string read FReportsFolder write FReportsFolder; property reportsFolder: string read FreportsFolder write FreportsFolder;
constructor Create; constructor Create;
end; end;
...@@ -34,59 +31,57 @@ var ...@@ -34,59 +31,57 @@ var
implementation implementation
uses uses
Bcl.Json, System.SysUtils, System.IOUtils, Bcl.Json, System.SysUtils, System.IOUtils, Common.Logging;
Common.Logging;
procedure LoadServerConfig; procedure LoadServerConfig;
var var
configFile: string; configFile: string;
localConfig: TServerConfig; localConfig: TServerConfig;
begin begin
Logger.Log( 1, '--LoadServerConfig - start' ); Logger.Log(1, '--LoadServerConfig - start');
configFile := TPath.ChangeExtension( ParamStr(0), '.json' ); configFile := TPath.ChangeExtension(ParamStr(0), '.json');
Logger.Log( 1, '-- Config file: ' + ConfigFile ); Logger.Log(1, '-- Config file: ' + ConfigFile);
if TFile.Exists(ConfigFile) then
if TFile.Exists(configFile) then
begin begin
Logger.Log( 1, '-- Config file found.' ); Logger.Log(1, '-- Config file found.');
localConfig := TJson.Deserialize<TServerConfig>(TFile.ReadAllText(configFile)); 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; serverConfig.Free;
Logger.Log( 1, '-- serverConfig.Free - called' ); Logger.Log(1, '-- serverConfig.Free - called');
serverConfig := localConfig; serverConfig := localConfig;
Logger.Log( 1, '-- serverConfig := localConfig - called' ); Logger.Log(1, '-- serverConfig := localConfig - called');
end end
else else
begin begin
Logger.Log( 1, '-- Config file not found.' ); Logger.Log(1, '-- Config file not found.');
end; end;
Logger.Log( 1, '-------------------------------------------------------------' );
Logger.Log( 1, '-- serverConfig.Server url: ' + serverConfig.url ); Logger.Log(1, '-------------------------------------------------------------');
Logger.Log( 1, '-- serverConfig.adminPassword: ' + serverConfig.adminPassword ); Logger.Log(1, '-- serverConfig.url: ' + serverConfig.url);
Logger.Log( 1, '-- serverConfig.jwtTokenSecret: ' + serverConfig.jwtTokenSecret ); Logger.Log(1, '-- serverConfig.adminPassword: ' + serverConfig.adminPassword);
Logger.Log( 1, '-- serverConfig.webAppFolder: ' + serverConfig.webAppFolder ); Logger.Log(1, '-- serverConfig.jwtTokenSecret: ' + serverConfig.jwtTokenSecret);
Logger.Log( 1, '-- serverConfig.reportsFolder: ' + serverConfig.reportsFolder ); Logger.Log(1, '-- serverConfig.webAppFolder: ' + serverConfig.webAppFolder);
Logger.Log( 1, '--LoadServerConfig - end' ); Logger.Log(1, '-- serverConfig.reportsFolder: ' + serverConfig.reportsFolder);
Logger.Log(1, '--LoadServerConfig - end');
end; end;
{ TServerConfig } { TServerConfig }
constructor TServerConfig.Create; constructor TServerConfig.Create;
//var var
// ConfigFile: string; ServerConfigStr: string;
// ServerConfigStr: string;
begin begin
Logger.Log( 1, '--TServerConfig.Create - start' ); Logger.Log(1, '--TServerConfig.Create - start');
url := defaultServerUrl; url := defaultServerUrl;
adminPassword := 'whatisthisusedfor'; adminPassword := 'whatisthisusedfor';
jwtTokenSecret := 'super_secret0123super_secret4567'; jwtTokenSecret := 'super_secret0123super_secret4567';
webAppFolder := 'static'; webAppFolder := 'static';
reportsFolder := 'static/'; reportsFolder := 'static/';
// ServerConfigStr := Bcl.Json.TJson.Serialize( ServerConfig ); ServerConfigStr := Bcl.Json.TJson.Serialize(ServerConfig);
// ConfigFile := 'serverconfig.json'; Logger.Log(1, '--ServerConfigSerialize: ' + ServerConfigStr);
// TFile.WriteAllText( ConfigFile, ServerConfigStr ); Logger.Log(1, '--TServerConfig.Create - end');
// Logger.Log( 1, 'ServerConfig saved to file: ' + ConfigFile );
Logger.Log( 1, '--TServerConfig.Create - end' );
end; end;
end. end.
...@@ -1004,7 +1004,7 @@ begin ...@@ -1004,7 +1004,7 @@ begin
params.Delimiter := '&'; params.Delimiter := '&';
params.DelimitedText := searchOptions; 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 if ( ( params.Values['pagenumber'] <> '' ) and ( params.Values['pagesize'] <> '' ) ) then
begin begin
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
MemoLogLevel=3 MemoLogLevel=3
FileLogLevel=5 FileLogLevel=5
webClientVersion=0.9.2 webClientVersion=0.9.2
LogFileNum=428 LogFileNum=434
[Database] [Database]
Server=192.168.159.131 Server=192.168.159.131
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment