Commit d7f1e3db by Cam Hayes

Fixed many issues discusses with elias and dave. still couldnt replicate login bug

parent 149a9791
object FViewAddAddress: TFViewAddAddress object FViewAddAddress: TFViewAddAddress
Width = 281 Width = 281
Height = 402 Height = 402
TabOrder = 0
object WebLabel1: TWebLabel object WebLabel1: TWebLabel
Left = 8 Left = 8
Top = 283 Top = 283
...@@ -119,6 +120,7 @@ object FViewAddAddress: TFViewAddAddress ...@@ -119,6 +120,7 @@ object FViewAddAddress: TFViewAddAddress
Top = 8 Top = 8
Width = 198 Width = 198
Height = 22 Height = 22
TabStop = False
ChildOrder = 12 ChildOrder = 12
Enabled = False Enabled = False
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
...@@ -132,6 +134,7 @@ object FViewAddAddress: TFViewAddAddress ...@@ -132,6 +134,7 @@ object FViewAddAddress: TFViewAddAddress
Caption = 'Save' Caption = 'Save'
ChildOrder = 13 ChildOrder = 13
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
TabStop = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnClick = btnSaveClick OnClick = btnSaveClick
end end
...@@ -143,6 +146,7 @@ object FViewAddAddress: TFViewAddAddress ...@@ -143,6 +146,7 @@ object FViewAddAddress: TFViewAddAddress
Caption = 'Cancel' Caption = 'Cancel'
ChildOrder = 13 ChildOrder = 13
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
TabStop = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnClick = btnCancelClick OnClick = btnCancelClick
end end
......
// Small Pop-Up page when adding orders if you want to quickly add an address // Small Pop-Up page when adding orders if you want to quickly add an address
unit View.AddAddress; unit View.Address.Add;
interface interface
......
// Add Customer page for KGOrders. Handles Adding and Editting Customers and // Add Customer page for KGOrders. Handles Adding and Editting Customers and
// Their shipping addresses. // Their shipping addresses.
unit AddCustomer; unit View.Customer.Add;
interface interface
...@@ -127,7 +127,7 @@ implementation ...@@ -127,7 +127,7 @@ implementation
{$R *.dfm} {$R *.dfm}
uses View.Main, View.Customers, View.SelectCustomer, Utils; uses View.Main, View.Customers, View.Customer.Select, Utils;
class function TFViewAddCustomer.CreateForm(AElementID, customerInfo, info: string): TWebForm; class function TFViewAddCustomer.CreateForm(AElementID, customerInfo, info: string): TWebForm;
......
unit View.SelectCustomer; unit View.Customer.Select;
interface interface
......
...@@ -61,7 +61,7 @@ var ...@@ -61,7 +61,7 @@ var
implementation implementation
uses uses
XData.Model.Classes, View.Main, View.SelectCustomer, Utils; XData.Model.Classes, View.Main, View.Customer.Select, Utils;
{$R *.dfm} {$R *.dfm}
......
unit View.AddItem; unit View.Item.Add;
interface interface
......
...@@ -78,7 +78,7 @@ implementation ...@@ -78,7 +78,7 @@ implementation
uses uses
XData.Model.Classes, XData.Model.Classes,
ConnectionModule, Auth.Service, Utils, View.AddItem, View.Main; ConnectionModule, Auth.Service, Utils, View.Item.Add, View.Main;
{$R *.dfm} {$R *.dfm}
......
...@@ -33,7 +33,6 @@ type ...@@ -33,7 +33,6 @@ type
procedure lblUsersClick(Sender: TObject); procedure lblUsersClick(Sender: TObject);
procedure lblordersClick(Sender: TObject); procedure lblordersClick(Sender: TObject);
procedure lblCustomersClick(Sender: TObject); procedure lblCustomersClick(Sender: TObject);
procedure lblQuickbooksClick(Sender: TObject);
private private
{ Private declarations } { Private declarations }
FUserInfo: string; FUserInfo: string;
...@@ -75,12 +74,12 @@ uses ...@@ -75,12 +74,12 @@ uses
View.Home, View.Home,
View.Items, View.Items,
View.Users, View.Users,
View.EditUser, View.User.Add,
View.Orders, View.Orders,
View.OrderEntryCorrugated, View.OrderEntryCorrugated,
View.OrderEntryCuttingDie, View.OrderEntryCuttingDie,
View.OrderEntryWeb, View.OrderEntryWeb,
View.Customers, AddCustomer; View.Customers, View.Customer.Add;
{$R *.dfm} {$R *.dfm}
...@@ -147,24 +146,13 @@ begin ...@@ -147,24 +146,13 @@ begin
ShowToast('Please Save or Cancel your changes', 'danger'); ShowToast('Please Save or Cancel your changes', 'danger');
end; end;
procedure TFViewMain.lblQuickbooksClick(Sender: TObject);
begin
if ( not ( change ) ) then
begin
//ShowForm(TFViewQuickbooks);
lblAppTitle.Caption := 'Koehler-Gibson QuickBooks';
setActive('QuickBooks');
end
else
ShowToast('Please Save or Cancel your changes', 'danger');
end;
procedure TFViewMain.lblUsersClick(Sender: TObject); procedure TFViewMain.lblUsersClick(Sender: TObject);
begin begin
if ( not ( change ) ) then if ( not ( change ) ) then
begin begin
ShowForm(TFViewUsers); ShowForm(TFViewUsers);
lblAppTitle.Caption := 'Koehler-Gibson Users'; lblAppTitle.Caption := 'Koehler-Gibson Users';
setActive('Users');
end end
else else
ShowToast('Please Save or Cancel your changes', 'danger'); ShowToast('Please Save or Cancel your changes', 'danger');
...@@ -233,6 +221,7 @@ procedure TFViewMain.wllblUserProfileClick(Sender: TObject); ...@@ -233,6 +221,7 @@ procedure TFViewMain.wllblUserProfileClick(Sender: TObject);
begin begin
ShowCrudForm(TFViewUserProfile); ShowCrudForm(TFViewUserProfile);
lblAppTitle.Caption := 'Koehler-Gibson User Profile'; lblAppTitle.Caption := 'Koehler-Gibson User Profile';
setActive('User Profile');
end; end;
//needs to be changed //needs to be changed
......
// Pop-Up menu that appears when Add Order button is clicked on orders page. // Pop-Up menu that appears when Add Order button is clicked on orders page.
// Used to select customer before entering an order. // Used to select customer before entering an order.
unit View.AddOrder; unit View.Order.Add;
interface interface
......
...@@ -669,7 +669,6 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -669,7 +669,6 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 480 Top = 480
Width = 113 Width = 113
Height = 22 Height = 22
TabStop = False
Caption = 'Art Approved As Is' Caption = 'Art Approved As Is'
ChildOrder = 79 ChildOrder = 79
ElementID = 'cbartapprovedasis' ElementID = 'cbartapprovedasis'
...@@ -677,6 +676,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -677,6 +676,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
Role = 'null' Role = 'null'
ShowFocus = False ShowFocus = False
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'proofing_art_approved_as_is' DataField = 'proofing_art_approved_as_is'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -688,7 +688,6 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -688,7 +688,6 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 430 Top = 430
Width = 113 Width = 113
Height = 22 Height = 22
TabStop = False
Caption = 'PDF File' Caption = 'PDF File'
ChildOrder = 79 ChildOrder = 79
ElementID = 'cbpdffile' ElementID = 'cbpdffile'
...@@ -696,6 +695,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -696,6 +695,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
Role = 'null' Role = 'null'
ShowFocus = False ShowFocus = False
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'proofing_pdf_file' DataField = 'proofing_pdf_file'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -707,7 +707,6 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -707,7 +707,6 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 406 Top = 406
Width = 113 Width = 113
Height = 22 Height = 22
TabStop = False
Caption = 'Wide Format' Caption = 'Wide Format'
ChildOrder = 79 ChildOrder = 79
ElementID = 'cbwideformat' ElementID = 'cbwideformat'
...@@ -715,6 +714,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -715,6 +714,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
Role = 'null' Role = 'null'
ShowFocus = False ShowFocus = False
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'proofing_wide_format' DataField = 'proofing_wide_format'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -726,7 +726,6 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -726,7 +726,6 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 382 Top = 382
Width = 113 Width = 113
Height = 22 Height = 22
TabStop = False
Caption = 'Print Card' Caption = 'Print Card'
ChildOrder = 79 ChildOrder = 79
ElementID = 'cbprintcard' ElementID = 'cbprintcard'
...@@ -734,6 +733,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -734,6 +733,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
Role = 'null' Role = 'null'
ShowFocus = False ShowFocus = False
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'proofing_print_card' DataField = 'proofing_print_card'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -745,7 +745,6 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -745,7 +745,6 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 356 Top = 356
Width = 113 Width = 113
Height = 22 Height = 22
TabStop = False
Caption = 'Full Size Panel' Caption = 'Full Size Panel'
ChildOrder = 79 ChildOrder = 79
ElementID = 'cbfullsizepanel' ElementID = 'cbfullsizepanel'
...@@ -753,6 +752,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -753,6 +752,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
Role = 'null' Role = 'null'
ShowFocus = False ShowFocus = False
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'proofing_full_size_panel' DataField = 'proofing_full_size_panel'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -799,6 +799,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -799,6 +799,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ElementPosition = epRelative ElementPosition = epRelative
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
Role = 'null' Role = 'null'
TabStop = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
ItemIndex = -1 ItemIndex = -1
DataField = 'staff_fields_ship_to' DataField = 'staff_fields_ship_to'
...@@ -829,6 +830,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -829,6 +830,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ElementPosition = epRelative ElementPosition = epRelative
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
Role = 'null' Role = 'null'
TabStop = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnChange = wdbcbQuickbooksItemChange OnChange = wdbcbQuickbooksItemChange
ItemIndex = -1 ItemIndex = -1
...@@ -1023,7 +1025,6 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1023,7 +1025,6 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Role = '' Role = ''
ShowFocus = False ShowFocus = False
ShowSeconds = False ShowSeconds = False
TabStop = False
Text = '' Text = ''
DataField = 'proofing_approved_date' DataField = 'proofing_approved_date'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -1082,6 +1083,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1082,6 +1083,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ChildOrder = 85 ChildOrder = 85
ElementID = 'cbplates' ElementID = 'cbplates'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'supplied_by_customer_plates' DataField = 'supplied_by_customer_plates'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -1097,6 +1099,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1097,6 +1099,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ChildOrder = 85 ChildOrder = 85
ElementID = 'cbsampleCarton' ElementID = 'cbsampleCarton'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'supplied_by_customer_sample_ca' DataField = 'supplied_by_customer_sample_ca'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -1112,6 +1115,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1112,6 +1115,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ChildOrder = 85 ChildOrder = 85
ElementID = 'cbftp' ElementID = 'cbftp'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'supplied_by_customer_ftp' DataField = 'supplied_by_customer_ftp'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -1127,6 +1131,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1127,6 +1131,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ChildOrder = 85 ChildOrder = 85
ElementID = 'cbcolorcopy' ElementID = 'cbcolorcopy'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'supplied_by_customer_color_copy' DataField = 'supplied_by_customer_color_copy'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -1142,6 +1147,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1142,6 +1147,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ChildOrder = 85 ChildOrder = 85
ElementID = 'edtemail' ElementID = 'edtemail'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'supplied_by_customer_e_mail' DataField = 'supplied_by_customer_e_mail'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -1157,6 +1163,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1157,6 +1163,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ChildOrder = 85 ChildOrder = 85
ElementID = 'edtexistingcuttingdie' ElementID = 'edtexistingcuttingdie'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'supplied_by_customer_existing_' DataField = 'supplied_by_customer_existing_'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -1172,6 +1179,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1172,6 +1179,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ChildOrder = 85 ChildOrder = 85
ElementID = 'edtrefartapdf' ElementID = 'edtrefartapdf'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'supplied_by_customer_ref_art_a' DataField = 'supplied_by_customer_ref_art_a'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -1187,6 +1195,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1187,6 +1195,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
ChildOrder = 85 ChildOrder = 85
ElementID = 'edtrefartprintcard' ElementID = 'edtrefartprintcard'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'supplied_by_customer_ref_art_p' DataField = 'supplied_by_customer_ref_art_p'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -1198,12 +1207,12 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1198,12 +1207,12 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 378 Top = 378
Width = 113 Width = 113
Height = 22 Height = 22
TabStop = False
Caption = 'Full Mount' Caption = 'Full Mount'
ChildOrder = 85 ChildOrder = 85
ElementID = 'cbfullmount' ElementID = 'cbfullmount'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
ShowFocus = False ShowFocus = False
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'mounting_full_mount' DataField = 'mounting_full_mount'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -1215,12 +1224,12 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1215,12 +1224,12 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 356 Top = 356
Width = 113 Width = 113
Height = 22 Height = 22
TabStop = False
Caption = 'Sticky Bak' Caption = 'Sticky Bak'
ChildOrder = 85 ChildOrder = 85
ElementID = 'cbstickybak' ElementID = 'cbstickybak'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
ShowFocus = False ShowFocus = False
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'mounting_sticky_bak' DataField = 'mounting_sticky_bak'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -1232,12 +1241,12 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1232,12 +1241,12 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 235 Top = 235
Width = 113 Width = 113
Height = 22 Height = 22
TabStop = False
Caption = 'Excalibur Die' Caption = 'Excalibur Die'
ChildOrder = 85 ChildOrder = 85
ElementID = 'cbexcaliburdie' ElementID = 'cbexcaliburdie'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
ShowFocus = False ShowFocus = False
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'layout_excalibur_die' DataField = 'layout_excalibur_die'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -1249,12 +1258,12 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1249,12 +1258,12 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 309 Top = 309
Width = 113 Width = 113
Height = 22 Height = 22
TabStop = False
Caption = 'Loose' Caption = 'Loose'
ChildOrder = 84 ChildOrder = 84
ElementID = 'cbloose' ElementID = 'cbloose'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
ShowFocus = False ShowFocus = False
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object cbStripMount: TWebCheckBox object cbStripMount: TWebCheckBox
...@@ -1262,12 +1271,12 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1262,12 +1271,12 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 402 Top = 402
Width = 113 Width = 113
Height = 22 Height = 22
TabStop = False
Caption = 'Strip Mount' Caption = 'Strip Mount'
ChildOrder = 84 ChildOrder = 84
ElementID = 'cbstripmount' ElementID = 'cbstripmount'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
ShowFocus = False ShowFocus = False
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object edtQBItemDescription: TWebEdit object edtQBItemDescription: TWebEdit
...@@ -1275,6 +1284,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1275,6 +1284,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 551 Top = 551
Width = 121 Width = 121
Height = 22 Height = 22
TabStop = False
ChildOrder = 31 ChildOrder = 31
ElementID = 'edtitemdescription' ElementID = 'edtitemdescription'
Enabled = False Enabled = False
...@@ -1286,6 +1296,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1286,6 +1296,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 149 Top = 149
Width = 121 Width = 121
Height = 22 Height = 22
TabStop = False
AutoCompletion = acNope AutoCompletion = acNope
AutoSize = True AutoSize = True
ChildOrder = 79 ChildOrder = 79
...@@ -1301,6 +1312,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1301,6 +1312,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 149 Top = 149
Width = 113 Width = 113
Height = 22 Height = 22
TabStop = False
Caption = 'In Quickbooks?' Caption = 'In Quickbooks?'
ChildOrder = 29 ChildOrder = 29
ElementID = 'wdbcbinqb' ElementID = 'wdbcbinqb'
...@@ -1317,6 +1329,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated ...@@ -1317,6 +1329,7 @@ object FOrderEntryCorrugated: TFOrderEntryCorrugated
Top = 185 Top = 185
Width = 121 Width = 121
Height = 22 Height = 22
TabStop = False
ChildOrder = 30 ChildOrder = 30
ElementID = 'edtordernum' ElementID = 'edtordernum'
Enabled = False Enabled = False
......
...@@ -167,40 +167,40 @@ ...@@ -167,40 +167,40 @@
<hr class="custom-hr"> <hr class="custom-hr">
<div class="row"> <div class="row">
<div class="col-auto"> <div class="col-auto">
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Color Copy:</label>
<input type="checkbox" id="cbcolorcopy"> <input type="checkbox" id="cbcolorcopy">
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Color Copy?</label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Plates:</label>
<input type="checkbox" id="cbplates"> <input type="checkbox" id="cbplates">
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Plates?</label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Sample Carton:</label>
<input type="checkbox" id="cbsampleCarton"> <input type="checkbox" id="cbsampleCarton">
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Sample Carton?</label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Email:</label>
<input type="checkbox" id="edtemail"/> <input type="checkbox" id="edtemail"/>
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Email?</label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<label class='pe-2' style="font-weight: 700; font-size: 15px;">FTP:</label>
<input type="checkbox" id="cbftp"/> <input type="checkbox" id="cbftp"/>
<label class='pe-2' style="font-weight: 700; font-size: 15px;">FTP?</label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Other:</label> <label class='pe-2' style="font-weight: 700; font-size: 15px;">Other:</label>
<input class="form-control input-sm" id="edtother" style="width: 150px"/> <input class="form-control input-sm" id="edtother" style="width: 150px"/>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Existing Cutting Die:</label>
<input type="checkbox" id="edtexistingcuttingdie"/> <input type="checkbox" id="edtexistingcuttingdie"/>
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Existing Cutting Die?</label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Ref Art Print Card:</label>
<input type="checkbox" id="edtrefartprintcard"/> <input type="checkbox" id="edtrefartprintcard"/>
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Ref Art Print Card?</label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Ref Art A PDF:</label>
<input type="checkbox" id="edtrefartapdf"/> <input type="checkbox" id="edtrefartapdf"/>
<label class='pe-2' style="font-weight: 700; font-size: 15px;">Ref Art A PDF?</label>
</div> </div>
</div> </div>
<h4 class="custom-h4 mt-3">Layout</h4> <h4 class="custom-h4 mt-3">Layout</h4>
...@@ -235,8 +235,8 @@ ...@@ -235,8 +235,8 @@
<input id="edtcadfile" class="form-control input-sm" style="width: 150px"/> <input id="edtcadfile" class="form-control input-sm" style="width: 150px"/>
</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">Excalibur Die:</label>
<input type="checkbox" id="cbexcaliburdie"> <input type="checkbox" id="cbexcaliburdie">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Excalibur Die?</label>
</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">RSC Style:</label> <label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">RSC Style:</label>
...@@ -247,21 +247,21 @@ ...@@ -247,21 +247,21 @@
<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" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Loose:</label>
<input type="checkbox" id="cbloose"> <input type="checkbox" id="cbloose">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Loose:</label>
<input id="edtloose" class="form-control input-sm" style="width: 150px"/> <input id="edtloose" class="form-control input-sm" style="width: 150px"/>
</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">Sticky Bak:</label>
<input type="checkbox" id="cbstickybak"> <input type="checkbox" id="cbstickybak">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Sticky Bak?</label>
</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">Full Mount:</label>
<input type="checkbox" id="cbfullmount"> <input type="checkbox" id="cbfullmount">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Full Mount?</label>
</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">Strip Mount:</label>
<input type="checkbox" id="cbstripmount"> <input type="checkbox" id="cbstripmount">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Strip Mount:</label>
<input id="edtstripmount" class="form-control input-sm" style="width: 150px"/> <input id="edtstripmount" class="form-control input-sm" style="width: 150px"/>
</div> </div>
<div class="col-auto"> <div class="col-auto">
...@@ -337,28 +337,28 @@ ...@@ -337,28 +337,28 @@
<input id="edtproofshipto" class="form-control input-sm" style="width: 150px"/> <input id="edtproofshipto" class="form-control input-sm" style="width: 150px"/>
</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">Full Size Panel:</label>
<input type="checkbox" id="cbfullsizepanel"> <input type="checkbox" id="cbfullsizepanel">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Full Size Panel?</label>
</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">Print Card:</label>
<input type="checkbox" id="cbprintcard"> <input type="checkbox" id="cbprintcard">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Print Card?</label>
</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">Wide Format:</label>
<input type="checkbox" id="cbwideformat"> <input type="checkbox" id="cbwideformat">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Wide Format?</label>
</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">PDF File:</label>
<input type="checkbox" id="cbpdffile"> <input type="checkbox" id="cbpdffile">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">PDF File?</label>
</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">Other:</label> <label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Other:</label>
<input id="edtproofother" class="form-control input-sm" style="width: 150px"/> <input id="edtproofother" class="form-control input-sm" style="width: 150px"/>
</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">Art Approved As Is:</label>
<input type="checkbox" id="cbartapprovedasis"> <input type="checkbox" id="cbartapprovedasis">
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Art Approved As Is:</label>
</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">Approved Date:</label> <label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Approved Date:</label>
...@@ -386,7 +386,7 @@ ...@@ -386,7 +386,7 @@
<div class="row pb-3"> <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 mb-3" style=" width: 800px; height: 150px;"></textarea>
</div> </div>
</div> </div>
</div> </div>
...@@ -259,7 +259,7 @@ implementation ...@@ -259,7 +259,7 @@ implementation
{$R *.dfm} {$R *.dfm}
uses uses
View.Home, View.Main, View.AddOrder, View.AddAddress, Utils; View.Home, View.Main, View.Order.Add, View.Address.Add, Utils;
class function TFOrderEntryCorrugated.CreateForm(AElementID, orderInfo, customerInfo, modeParam, info: string): TWebForm; class function TFOrderEntryCorrugated.CreateForm(AElementID, orderInfo, customerInfo, modeParam, info: string): TWebForm;
begin begin
...@@ -354,8 +354,8 @@ procedure TFOrderEntryCorrugated.btnDeleteClick(Sender: TObject); ...@@ -354,8 +354,8 @@ procedure TFOrderEntryCorrugated.btnDeleteClick(Sender: TObject);
begin begin
ShowConfirmationModal( ShowConfirmationModal(
'Are you sure you want to delete this order?', 'Are you sure you want to delete this order?',
'Delete', 'Yes',
'Cancel', 'No',
procedure(confirmed: Boolean) procedure(confirmed: Boolean)
begin begin
if confirmed then if confirmed then
...@@ -388,32 +388,34 @@ end; ...@@ -388,32 +388,34 @@ end;
procedure TFOrderEntryCorrugated.btnQBClick(Sender: TObject); procedure TFOrderEntryCorrugated.btnQBClick(Sender: TObject);
var var
orderJSON: TJSONObject; orderJSON: TJSONObject;
qbEnabled: boolean;
begin begin
if AuthService.TokenPayload.Properties['qb_enabled'] then qbEnabled := boolean(AuthService.TokenPayload.Properties['qb_enabled']);
if not qbEnabled then
begin
ShowToast('QB interface not currently active', 'info');
Exit;
end;
if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then
begin begin
if ( VerifyQBOrder() )then
begin begin
if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then if wdbcbINQB.Checked = false then
begin begin
if ( VerifyQBOrder() )then Utils.ShowSpinner('spinner');
begin orderJSON := TJSONObject.Create;
if wdbcbINQB.Checked = false then orderJSON.AddPair('ORDER_ID', xdwdsOrder.FieldByName('ORDER_ID').AsString);
begin orderJSON.AddPair('USER_ID', JS.toString(AuthService.TokenPayload.Properties['user_id']));
Utils.ShowSpinner('spinner'); addEstimate(orderJSON.ToString);
orderJSON := TJSONObject.Create;
orderJSON.AddPair('ORDER_ID', xdwdsOrder.FieldByName('ORDER_ID').AsString);
orderJSON.AddPair('USER_ID', JS.toString(AuthService.TokenPayload.Properties['user_id']));
addEstimate(orderJSON.ToString);
end
else
ShowToast('Failure:Cannot submit orders already in QuickBooks', 'failure');
end;
end end
else else
ShowToast('Failure:User not authorized to add to QuickBooks', 'failure'); ShowToast('Failure:Cannot submit orders already in QuickBooks', 'failure');
end end;
end end
else else
ShowToast('QB interface not currently active', 'info'); ShowToast('Failure:User not authorized to add to QuickBooks', 'failure');
end; end;
[async] procedure TFOrderEntryCorrugated.GenerateReportPDF; [async] procedure TFOrderEntryCorrugated.GenerateReportPDF;
...@@ -1143,7 +1145,7 @@ begin ...@@ -1143,7 +1145,7 @@ begin
input.classList.remove('is-invalid'); input.classList.remove('is-invalid');
input := TJSHTMLInputElement(document.getElementById('edtprice')); input := TJSHTMLInputElement(document.getElementById('edtprice'));
if edtPrice.Text = '' then if ( ( edtPrice.Text = '' ) or ( StrToFloat(edtPrice.Text) <= 0 ) )then
begin begin
input.classList.add('is-invalid'); input.classList.add('is-invalid');
...@@ -1153,7 +1155,7 @@ begin ...@@ -1153,7 +1155,7 @@ begin
input.classList.remove('is-invalid'); input.classList.remove('is-invalid');
input := TJSHTMLInputElement(document.getElementById('edtquantity')); input := TJSHTMLInputElement(document.getElementById('edtquantity'));
if edtQuantity.Text = '' then if ( ( edtQuantity.Text = '' ) or ( StrToFloat(edtQuantity.Text) <= 0 ) ) then
begin begin
input.classList.add('is-invalid'); input.classList.add('is-invalid');
......
...@@ -154,12 +154,12 @@ ...@@ -154,12 +154,12 @@
</div> </div>
</div> </div>
</div> </div>
<h4 class="custom-h4 mt-3">General</h4> <h4 class="custom-h4 mt-3 mt-3">General</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" 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 mb-3" style=" width: 800px; height: 150px;"></textarea>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -129,7 +129,7 @@ implementation ...@@ -129,7 +129,7 @@ implementation
{$R *.dfm} {$R *.dfm}
uses uses
View.Home, View.Main, View.AddOrder, View.AddAddress, Utils; View.Home, View.Main, View.Order.Add, View.Address.Add, Utils;
class function TFOrderEntryCuttingDie.CreateForm(AElementID, orderInfo, customerInfo, modeParam, info: string): TWebForm; class function TFOrderEntryCuttingDie.CreateForm(AElementID, orderInfo, customerInfo, modeParam, info: string): TWebForm;
...@@ -192,30 +192,34 @@ end; ...@@ -192,30 +192,34 @@ end;
procedure TFOrderEntryCuttingDie.btnQBClick(Sender: TObject); procedure TFOrderEntryCuttingDie.btnQBClick(Sender: TObject);
var var
orderJSON: TJSONObject; orderJSON: TJSONObject;
qbEnabled: boolean;
begin begin
if AuthService.TokenPayload.Properties['qb_enabled'] then qbEnabled := boolean(AuthService.TokenPayload.Properties['qb_enabled']);
if not qbEnabled then
begin begin
if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then ShowToast('QB interface not currently active', 'info');
Exit;
end;
if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then
begin
if ( VerifyQBOrder() )then
begin begin
if ( VerifyQBOrder() )then if wdbcbINQB.Checked = false then
begin begin
if wdbcbINQB.Checked = false then Utils.ShowSpinner('spinner');
begin orderJSON := TJSONObject.Create;
Utils.ShowSpinner('spinner'); orderJSON.AddPair('ORDER_ID', xdwdsOrder.FieldByName('ORDER_ID').AsString);
orderJSON := TJSONObject.Create; orderJSON.AddPair('USER_ID', JS.toString(AuthService.TokenPayload.Properties['user_id']));
orderJSON.AddPair('ORDER_ID', xdwdsOrder.FieldByName('ORDER_ID').AsString); addEstimate(orderJSON.ToString);
orderJSON.AddPair('USER_ID', JS.toString(AuthService.TokenPayload.Properties['user_id'])); end
addEstimate(orderJSON.ToString); else
end ShowToast('Failure:Cannot submit orders already in QuickBooks', 'failure');
else end;
ShowToast('Failure:Cannot submit orders already in QuickBooks', 'failure');
end;
end
else
ShowToast('Failure:User not authorized to add to QuickBooks', 'failure');
end end
else else
ShowToast('QB interface not currently active', 'info'); ShowToast('Failure:User not authorized to add to QuickBooks', 'failure');
end; end;
procedure TFOrderEntryCuttingDie.WebButton2Click(Sender: TObject); procedure TFOrderEntryCuttingDie.WebButton2Click(Sender: TObject);
...@@ -320,8 +324,8 @@ end; ...@@ -320,8 +324,8 @@ end;
begin begin
ShowConfirmationModal( ShowConfirmationModal(
'Are you sure you want to delete this order?', 'Are you sure you want to delete this order?',
'Delete', 'Yes',
'Cancel', 'No',
procedure(confirmed: Boolean) procedure(confirmed: Boolean)
begin begin
if confirmed then if confirmed then
......
...@@ -414,13 +414,13 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -414,13 +414,13 @@ object FOrderEntryWeb: TFOrderEntryWeb
Top = 96 Top = 96
Width = 113 Width = 113
Height = 22 Height = 22
TabStop = False
Caption = 'PDF' Caption = 'PDF'
ChildOrder = 79 ChildOrder = 79
ElementID = 'cbpdf' ElementID = 'cbpdf'
Enabled = False Enabled = False
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
ShowFocus = False ShowFocus = False
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'proofing_pdf' DataField = 'proofing_pdf'
DataSource = wdsOrder DataSource = wdsOrder
...@@ -446,13 +446,13 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -446,13 +446,13 @@ object FOrderEntryWeb: TFOrderEntryWeb
Top = 238 Top = 238
Width = 113 Width = 113
Height = 22 Height = 22
TabStop = False
Caption = 'Full Size Ink Jet For Layout Content Only' Caption = 'Full Size Ink Jet For Layout Content Only'
ChildOrder = 79 ChildOrder = 79
ElementID = 'cbfullsizeinkjet' ElementID = 'cbfullsizeinkjet'
Enabled = False Enabled = False
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
ShowFocus = False ShowFocus = False
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'proofing_full_size_ink_jet_for' DataField = 'proofing_full_size_ink_jet_for'
DataSource = wdsOrder DataSource = wdsOrder
......
...@@ -207,8 +207,8 @@ ...@@ -207,8 +207,8 @@
<hr class="custom-hr"> <hr class="custom-hr">
<div class="row"> <div class="row">
<div class="col-auto"> <div class="col-auto">
<label label style="font-weight: 700; font-size: 15px;" class="form-label mt-2">PDF:</label>
<input type="checkbox" id="cbpdf"> <input type="checkbox" id="cbpdf">
<label label style="font-weight: 700; font-size: 15px;" class="form-label mt-2">PDF?</label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<label style="font-weight: 700; font-size: 15px;" class="form-label mt-2">PDF To:</label> <label style="font-weight: 700; font-size: 15px;" class="form-label mt-2">PDF To:</label>
...@@ -227,8 +227,8 @@ ...@@ -227,8 +227,8 @@
<input class="form-control input-sm" id="dtppdfdate3" type="date"> <input class="form-control input-sm" id="dtppdfdate3" type="date">
</div> </div>
<div class="col-auto"> <div class="col-auto">
<label label style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Full Size Ink Jet For Layout Content Only:</label>
<input type="checkbox" id="cbfullsizeinkjet"> <input type="checkbox" id="cbfullsizeinkjet">
<label label style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Full Size Ink Jet For Layout Content Only?</label>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<label style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Ink Jet To:</label> <label style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Ink Jet To:</label>
...@@ -450,7 +450,7 @@ ...@@ -450,7 +450,7 @@
<div class="row"> <div class="row">
<div class="col-auto"> <div class="col-auto">
<label style="font-weight: 700; font-size: 15px;" class="form-label">Comments</label> <label style="font-weight: 700; font-size: 15px;" class="form-label">Comments</label>
<textarea id="edtcomments" class="form-control" style=" width: 500px; height: 150px;"></textarea> <textarea id="edtcomments" class="form-control mb-3" style=" width: 800px; height: 150px;"></textarea>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -265,7 +265,7 @@ implementation ...@@ -265,7 +265,7 @@ implementation
{$R *.dfm} {$R *.dfm}
uses uses
View.Home, View.Main, View.AddOrder, View.AddAddress, Utils; View.Home, View.Main, View.Order.Add, View.Address.Add, Utils;
class function TFOrderEntryWeb.CreateForm(AElementID, orderInfo, customerInfo, modeParam, info: string): TWebForm; class function TFOrderEntryWeb.CreateForm(AElementID, orderInfo, customerInfo, modeParam, info: string): TWebForm;
...@@ -418,8 +418,8 @@ procedure TFOrderEntryWeb.btnDeleteClick(Sender: TObject); ...@@ -418,8 +418,8 @@ procedure TFOrderEntryWeb.btnDeleteClick(Sender: TObject);
begin begin
ShowConfirmationModal( ShowConfirmationModal(
'Are you sure you want to delete this order?', 'Are you sure you want to delete this order?',
'Delete', 'Yes',
'Cancel', 'No',
procedure(confirmed: Boolean) procedure(confirmed: Boolean)
begin begin
if confirmed then if confirmed then
...@@ -453,30 +453,34 @@ end; ...@@ -453,30 +453,34 @@ end;
procedure TFOrderEntryWeb.btnQBClick(Sender: TObject); procedure TFOrderEntryWeb.btnQBClick(Sender: TObject);
var var
orderJSON: TJSONObject; orderJSON: TJSONObject;
qbEnabled: boolean;
begin begin
if AuthService.TokenPayload.Properties['qb_enabled'] then qbEnabled := boolean(AuthService.TokenPayload.Properties['qb_enabled']);
if not qbEnabled then
begin
ShowToast('QB interface not currently active', 'info');
Exit;
end;
if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then
begin begin
if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then if ( VerifyQBOrder() )then
begin begin
if ( VerifyQBOrder() )then if wdbcbINQB.Checked = false then
begin begin
if wdbcbINQB.Checked = false then Utils.ShowSpinner('spinner');
begin orderJSON := TJSONObject.Create;
Utils.ShowSpinner('spinner'); orderJSON.AddPair('ORDER_ID', xdwdsOrder.FieldByName('ORDER_ID').AsString);
orderJSON := TJSONObject.Create; orderJSON.AddPair('USER_ID', JS.toString(AuthService.TokenPayload.Properties['user_id']));
orderJSON.AddPair('ORDER_ID', xdwdsOrder.FieldByName('ORDER_ID').AsString); addEstimate(orderJSON.ToString);
orderJSON.AddPair('USER_ID', JS.toString(AuthService.TokenPayload.Properties['user_id'])); end
addEstimate(orderJSON.ToString); else
end ShowToast('Failure:Cannot submit orders already in QuickBooks', 'failure');
else end;
ShowToast('Failure:Cannot submit orders already in QuickBooks', 'failure');
end;
end
else
ShowToast('Failure:User not authorized to add to QuickBooks', 'failure');
end end
else else
ShowToast('QB interface not currently active', 'info'); ShowToast('Failure:User not authorized to add to QuickBooks', 'failure');
end; end;
procedure TFOrderEntryWeb.AddEstimate(orderID: string); procedure TFOrderEntryWeb.AddEstimate(orderID: string);
......
...@@ -125,7 +125,7 @@ var ...@@ -125,7 +125,7 @@ var
implementation implementation
uses uses
XData.Model.Classes, View.Main, View.AddOrder, View.Search, View.SetStatus, Utils; XData.Model.Classes, View.Main, View.Order.Add, View.Search, View.SetStatus, Utils;
{$R *.dfm} {$R *.dfm}
...@@ -175,7 +175,7 @@ begin ...@@ -175,7 +175,7 @@ begin
ShowConfirmationModal( ShowConfirmationModal(
'You are about to generate a PDF for over 100 orders. This may take some time. Continue?', 'You are about to generate a PDF for over 100 orders. This may take some time. Continue?',
'Yes', 'Yes',
'Cancel', 'No',
procedure(confirmed: Boolean) procedure(confirmed: Boolean)
begin begin
if confirmed then if confirmed then
...@@ -285,6 +285,7 @@ procedure TFViewOrders.WebFormCreate(Sender: TObject); ...@@ -285,6 +285,7 @@ procedure TFViewOrders.WebFormCreate(Sender: TObject);
var var
today: TDateTime; today: TDateTime;
params: TStringList; params: TStringList;
btn: TJSHTMLElement;
begin begin
Utils.ShowSpinner('spinner'); Utils.ShowSpinner('spinner');
DMConnection.ApiConnection.Connected := True; DMConnection.ApiConnection.Connected := True;
...@@ -331,6 +332,22 @@ begin ...@@ -331,6 +332,22 @@ begin
statusOrderID := params.Values['orderID']; statusOrderID := params.Values['orderID'];
companyID := params.Values['companyID']; companyID := params.Values['companyID'];
jobName := params.Values['jobName']; jobName := params.Values['jobName'];
wlcbOrderBy.Value := OrderBy;
btn := document.getElementById('btnorderby') as TJSHTMLElement;
if direction = 'DESC' then
begin
btnOrderBy.Caption := 'Descending';
btn.innerHTML := 'Descending <i class="fa fa-arrow-down"></i>';
direction := 'DESC';
end
else
begin
btnOrderBy.Caption := 'Ascending';
btn.innerHTML := 'Ascending <i class="fa fa-arrow-up"></i>';
direction := 'ASC';
end;
// Status1 // Status1
startDate1 := params.Values['startDate1']; startDate1 := params.Values['startDate1'];
...@@ -350,7 +367,7 @@ begin ...@@ -350,7 +367,7 @@ begin
else else
null2 := StrToBool(params.Values['null2']); null2 := StrToBool(params.Values['null2']);
end; end;
FViewMain.search := GenerateSearchOptions(); GenerateSearchOptions();
getOrders(FViewMain.search); getOrders(FViewMain.search);
end; end;
...@@ -443,7 +460,7 @@ begin ...@@ -443,7 +460,7 @@ begin
companyID := newform.DBID; companyID := newform.DBID;
orderType := newform.wcbOrderType.Text; orderType := newform.wcbOrderType.Text;
FViewMain.search := generateSearchOptions(); generateSearchOptions();
//searchOptions := generateSearchOptions(); //searchOptions := generateSearchOptions();
edtSearch.Text := FViewMain.search; edtSearch.Text := FViewMain.search;
getOrders(FViewMain.search); getOrders(FViewMain.search);
...@@ -893,6 +910,7 @@ begin ...@@ -893,6 +910,7 @@ begin
if orderID <> '' then if orderID <> '' then
searchOptions := searchOptions + '&orderID=' + orderID; searchOptions := searchOptions + '&orderID=' + orderID;
edtSearch.text := searchOptions; edtSearch.text := searchOptions;
FViewMain.search := searchOptions;
Result := searchOptions; Result := searchOptions;
end; end;
......
...@@ -93,6 +93,7 @@ object FViewEditUser: TFViewEditUser ...@@ -93,6 +93,7 @@ object FViewEditUser: TFViewEditUser
Top = 62 Top = 62
Width = 121 Width = 121
Height = 22 Height = 22
TabStop = False
ChildOrder = 7 ChildOrder = 7
ElementID = 'edtemail' ElementID = 'edtemail'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
...@@ -103,6 +104,7 @@ object FViewEditUser: TFViewEditUser ...@@ -103,6 +104,7 @@ object FViewEditUser: TFViewEditUser
Top = 34 Top = 34
Width = 121 Width = 121
Height = 22 Height = 22
TabStop = False
ChildOrder = 13 ChildOrder = 13
ElementID = 'edtpassword' ElementID = 'edtpassword'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
...@@ -131,6 +133,7 @@ object FViewEditUser: TFViewEditUser ...@@ -131,6 +133,7 @@ object FViewEditUser: TFViewEditUser
Top = 5 Top = 5
Width = 121 Width = 121
Height = 22 Height = 22
TabStop = False
ChildOrder = 14 ChildOrder = 14
ElementID = 'edtfullname' ElementID = 'edtfullname'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
...@@ -141,6 +144,7 @@ object FViewEditUser: TFViewEditUser ...@@ -141,6 +144,7 @@ object FViewEditUser: TFViewEditUser
Top = 6 Top = 6
Width = 121 Width = 121
Height = 22 Height = 22
TabStop = False
ChildOrder = 14 ChildOrder = 14
ElementID = 'edtusername' ElementID = 'edtusername'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
...@@ -179,6 +183,7 @@ object FViewEditUser: TFViewEditUser ...@@ -179,6 +183,7 @@ object FViewEditUser: TFViewEditUser
Font.Style = [fsBold] Font.Style = [fsBold]
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
ParentFont = False ParentFont = False
TabOrder = -1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object edtRights: TWebEdit object edtRights: TWebEdit
...@@ -186,6 +191,7 @@ object FViewEditUser: TFViewEditUser ...@@ -186,6 +191,7 @@ object FViewEditUser: TFViewEditUser
Top = 93 Top = 93
Width = 121 Width = 121
Height = 22 Height = 22
TabStop = False
ChildOrder = 19 ChildOrder = 19
ElementID = 'edtrights' ElementID = 'edtrights'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
...@@ -198,6 +204,7 @@ object FViewEditUser: TFViewEditUser ...@@ -198,6 +204,7 @@ object FViewEditUser: TFViewEditUser
Height = 23 Height = 23
ElementID = 'cbaccess' ElementID = 'cbaccess'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
TabStop = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
ItemIndex = -1 ItemIndex = -1
Items.Strings = ( Items.Strings = (
...@@ -210,6 +217,7 @@ object FViewEditUser: TFViewEditUser ...@@ -210,6 +217,7 @@ object FViewEditUser: TFViewEditUser
Top = 62 Top = 62
Width = 121 Width = 121
Height = 22 Height = 22
TabStop = False
ChildOrder = 7 ChildOrder = 7
ElementID = 'edtQB' ElementID = 'edtQB'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
......
// Form that functions as both a way to edit or add users to the database // Form that functions as both a way to edit or add users to the database
// Author: Cameron Hayes // Author: Cameron Hayes
unit View.EditUser; unit View.User.Add;
interface interface
...@@ -99,6 +99,7 @@ begin ...@@ -99,6 +99,7 @@ begin
xdcResponse := await(XDataWebClient1.RawInvokeAsync('ILookupService.AddUser', [userInfo])); xdcResponse := await(XDataWebClient1.RawInvokeAsync('ILookupService.AddUser', [userInfo]));
responseString := TJSObject(xdcResponse.Result); responseString := TJSObject(xdcResponse.Result);
Info := string(responseString['value']); Info := string(responseString['value']);
FViewMain.ShowUserForm(Info);
except except
on E: EXDataClientRequestException do on E: EXDataClientRequestException do
Utils.ShowErrorModal(E.ErrorResult.ErrorMessage); Utils.ShowErrorModal(E.ErrorResult.ErrorMessage);
...@@ -123,14 +124,16 @@ begin ...@@ -123,14 +124,16 @@ begin
'&newuser=' + edtUsername.Text + '&newuser=' + edtUsername.Text +
'&rights=' + edtRights.Text + '&rights=' + edtRights.Text +
'&QB=' + edtQB.Text; '&QB=' + edtQB.Text;
try
console.log(editOptions); xdcResponse := await(XDataWebClient1.RawInvokeAsync('ILookupService.EditUser',
[editOptions]));
xdcResponse := await(XDataWebClient1.RawInvokeAsync('ILookupService.EditUser', responseString := TJSObject(xdcResponse.Result);
[editOptions])); Info := string(responseString['value']);
responseString := TJSObject(xdcResponse.Result); FViewMain.ShowUserForm(Info);
Info := string(responseString['value']); except
on E: EXDataClientRequestException do
Utils.ShowErrorModal(E.ErrorResult.ErrorMessage);
end;
end; end;
class function TFViewEditUser.CreateForm(AElementID, Mode, Username, Password, Name, Status, Email, class function TFViewEditUser.CreateForm(AElementID, Mode, Username, Password, Name, Status, Email,
...@@ -193,6 +196,7 @@ var ...@@ -193,6 +196,7 @@ var
FormEl: TJSHTMLFormElement; FormEl: TJSHTMLFormElement;
AllValid: Boolean; AllValid: Boolean;
begin begin
console.log(mode);
FormEl := TJSHTMLFormElement(document.getElementById('userprofileform')); FormEl := TJSHTMLFormElement(document.getElementById('userprofileform'));
// Clear previous invalid state // Clear previous invalid state
...@@ -227,12 +231,15 @@ begin ...@@ -227,12 +231,15 @@ begin
ShowConfirmationModal( ShowConfirmationModal(
'Are you sure you want to save changes?', 'Are you sure you want to save changes?',
'Save', 'Yes',
'Cancel', 'No',
procedure(confirmed: Boolean) procedure(confirmed: Boolean)
begin begin
if confirmed then if confirmed then
EditUser; if mode = 'ADD' then
AddUser()
else
EditUser();
end end
); );
end; end;
......
...@@ -28,8 +28,8 @@ object FViewUserProfile: TFViewUserProfile ...@@ -28,8 +28,8 @@ object FViewUserProfile: TFViewUserProfile
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object WebLabel3: TWebLabel object WebLabel3: TWebLabel
Left = 39 Left = 41
Top = 59 Top = 60
Width = 38 Width = 38
Height = 14 Height = 14
Caption = 'User ID:' Caption = 'User ID:'
...@@ -45,8 +45,8 @@ object FViewUserProfile: TFViewUserProfile ...@@ -45,8 +45,8 @@ object FViewUserProfile: TFViewUserProfile
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object WebLabel2: TWebLabel object WebLabel2: TWebLabel
Left = 13 Left = 8
Top = 131 Top = 143
Width = 71 Width = 71
Height = 14 Height = 14
Caption = 'Email Address:' Caption = 'Email Address:'
...@@ -62,8 +62,8 @@ object FViewUserProfile: TFViewUserProfile ...@@ -62,8 +62,8 @@ object FViewUserProfile: TFViewUserProfile
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object WebLabel4: TWebLabel object WebLabel4: TWebLabel
Left = 29 Left = 27
Top = 83 Top = 84
Width = 52 Width = 52
Height = 14 Height = 14
Caption = 'Username:' Caption = 'Username:'
...@@ -79,8 +79,8 @@ object FViewUserProfile: TFViewUserProfile ...@@ -79,8 +79,8 @@ object FViewUserProfile: TFViewUserProfile
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object WebLabel5: TWebLabel object WebLabel5: TWebLabel
Left = 29 Left = 30
Top = 107 Top = 117
Width = 49 Width = 49
Height = 14 Height = 14
Caption = 'Full Name:' Caption = 'Full Name:'
...@@ -95,160 +95,157 @@ object FViewUserProfile: TFViewUserProfile ...@@ -95,160 +95,157 @@ object FViewUserProfile: TFViewUserProfile
ParentFont = False ParentFont = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object lblResult: TWebLabel object WebLabel6: TWebLabel
Left = 85 Left = 15
Top = 246 Top = 171
Width = 3 Width = 64
Height = 14 Height = 13
ElementID = 'view.userprofile.form.lblresult' Caption = 'Access Type:'
ElementPosition = epRelative ElementID = 'view.userprofile.form.lblAccessType'
Font.Charset = ANSI_CHARSET ElementFont = efCSS
Font.Color = clBlack HeightStyle = ssAuto
Font.Height = -11
Font.Name = 'Arial'
Font.Style = []
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
ParentFont = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object edtUsername: TWebEdit object WebLabel7: TWebLabel
Left = 85 Left = 47
Top = 80 Top = 196
Width = 121 Width = 32
Height = 21 Height = 13
ElementID = 'view.userprofile.form.edtUsername' Caption = 'QB ID:'
ElementPosition = epRelative ElementID = 'view.userprofile.form.lblQBID'
Enabled = False ElementFont = efCSS
Font.Charset = ANSI_CHARSET HeightStyle = ssAuto
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Style = []
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
HideSelection = False
ParentFont = False
ReadOnly = True
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object edtUserId: TWebEdit object WebDBEdit1: TWebDBEdit
Left = 85 Left = 90
Top = 56 Top = 168
Width = 121 Width = 121
Height = 21 Height = 22
ElementID = 'view.userprofile.form.edtUserID' ChildOrder = 13
ElementPosition = epRelative ElementClassName = 'form-control'
Enabled = False ElementID = 'view.userprofile.form.edtAccessType'
Font.Charset = ANSI_CHARSET ElementFont = efCSS
Font.Color = clBlack HeightStyle = ssAuto
Font.Height = -11
Font.Name = 'Arial'
Font.Style = []
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
HideSelection = False Text = 'WebDBEdit1'
ParentFont = False
ReadOnly = True
TabOrder = 1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'AType'
DataSource = wdsUser
end end
object edtFullName: TWebEdit object WebDBEdit2: TWebDBEdit
Left = 85 Left = 90
Top = 104 Top = 140
Width = 121 Width = 121
Height = 21 Height = 22
ChildOrder = 5 ChildOrder = 13
ElementID = 'view.userprofile.form.edtFullName' ElementClassName = 'form-control'
ElementPosition = epRelative ElementID = 'view.userprofile.form.edtEmail'
Font.Charset = ANSI_CHARSET ElementFont = efCSS
Font.Color = clBlack HeightStyle = ssAuto
Font.Height = -11
Font.Name = 'Arial'
Font.Style = []
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
HideSelection = False Text = 'WebDBEdit1'
ParentFont = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'email_address'
DataSource = wdsUser
end end
object chkAdminUser: TWebCheckBox object WebDBEdit3: TWebDBEdit
Left = 85 Left = 90
Top = 179 Top = 114
Width = 113 Width = 121
Height = 22 Height = 22
Caption = 'chkAdminUser' ChildOrder = 13
ChildOrder = 9 ElementClassName = 'form-control'
ElementID = 'view.userprofile.form.chkAdminUser' ElementID = 'view.userprofile.form.edtFullName'
ElementPosition = epRelative ElementFont = efCSS
Enabled = False HeightStyle = ssAuto
Font.Charset = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Style = []
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
ParentFont = False Text = 'WebDBEdit1'
Role = 'null'
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'full_name'
DataSource = wdsUser
end end
object edtEmail: TWebEdit object WebDBEdit4: TWebDBEdit
Left = 85 Left = 85
Top = 126 Top = 81
Width = 121 Width = 121
Height = 21 Height = 22
ChildOrder = 7 ChildOrder = 13
ElementID = 'view.userprofile.form.edtEmail' ElementClassName = 'form-control'
ElementPosition = epRelative ElementID = 'view.userprofile.form.edtUsername'
Font.Charset = ANSI_CHARSET ElementFont = efCSS
Font.Color = clBlack HeightStyle = ssAuto
Font.Height = -11
Font.Name = 'Arial'
Font.Style = []
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
HideSelection = False Text = 'WebDBEdit1'
ParentFont = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'username'
DataSource = wdsUser
end end
object btnConfirm: TWebButton object WebDBEdit5: TWebDBEdit
Left = 85 Left = 85
Top = 207 Top = 57
Width = 96 Width = 121
Height = 25 Height = 22
Caption = 'Confirm Changes' ChildOrder = 13
ChildOrder = 12 ElementClassName = 'form-control'
ElementID = 'view.userprofile.form.btnconfirm' ElementID = 'view.userprofile.form.edtUserID'
ElementPosition = epRelative ElementFont = efCSS
Font.Charset = ANSI_CHARSET HeightStyle = ssAuto
Font.Color = clBlack
Font.Height = -11
Font.Name = 'Arial'
Font.Style = []
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
ParentFont = False Text = 'WebDBEdit1'
Role = 'button'
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnClick = btnConfirmClick DataField = 'userID'
end DataSource = wdsUser
object btnCancel: TWebButton end
Left = 208 object WebDBEdit6: TWebDBEdit
Top = 210 Left = 90
Width = 96 Top = 196
Height = 25 Width = 121
Caption = 'Cancel Changes' Height = 22
ChildOrder = 14 ChildOrder = 13
ElementID = 'view.userprofile.form.btncancel' ElementClassName = 'form-control'
ElementPosition = epRelative ElementID = 'view.userprofile.form.edtQBID'
Font.Charset = ANSI_CHARSET ElementFont = efCSS
Font.Color = clBlack HeightStyle = ssAuto
Font.Height = -11
Font.Name = 'Arial'
Font.Style = []
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
ParentFont = False Text = 'WebDBEdit1'
Role = 'button'
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnClick = btnCancelClick DataField = 'QBID'
DataSource = wdsUser
end end
object XDataWebClient1: TXDataWebClient object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection Connection = DMConnection.ApiConnection
Left = 359 Left = 359
Top = 52 Top = 52
end end
object xdwdsUser: TXDataWebDataSet
Left = 314
Top = 216
object xdwdsUseruserID: TStringField
FieldName = 'userID'
end
object xdwdsUserusername: TStringField
FieldName = 'username'
end
object xdwdsUseremail_address: TStringField
FieldName = 'email_address'
end
object xdwdsUserQBID: TStringField
FieldName = 'QBID'
end
object xdwdsUserAType: TStringField
FieldName = 'Atype'
end
object xdwdsUserfull_name: TStringField
FieldName = 'full_name'
end
end
object wdsUser: TWebDataSource
AutoEdit = False
DataSet = xdwdsUser
Left = 422
Top = 262
end
end end
...@@ -18,9 +18,7 @@ ...@@ -18,9 +18,7 @@
for="view.userprofile.form.edtUsername" for="view.userprofile.form.edtUsername"
class="form-label">Username</label> class="form-label">Username</label>
<input id="view.userprofile.form.edtUsername" <input id="view.userprofile.form.edtUsername"
class="form-control" class="form-control">
required>
<div class="invalid-feedback">Username is required.</div>
</div> </div>
<div class="mb-3"> <div class="mb-3">
...@@ -28,9 +26,7 @@ ...@@ -28,9 +26,7 @@
for="view.userprofile.form.edtFullName" for="view.userprofile.form.edtFullName"
class="form-label">Full&nbsp;Name</label> class="form-label">Full&nbsp;Name</label>
<input id="view.userprofile.form.edtFullName" <input id="view.userprofile.form.edtFullName"
class="form-control" class="form-control">
required>
<div class="invalid-feedback">Full Name is required.</div>
</div> </div>
<div class="mb-3"> <div class="mb-3">
...@@ -39,36 +35,26 @@ ...@@ -39,36 +35,26 @@
class="form-label">Email&nbsp;Address</label> class="form-label">Email&nbsp;Address</label>
<input id="view.userprofile.form.edtEmail" <input id="view.userprofile.form.edtEmail"
type="email" type="email"
class="form-control" class="form-control">
required>
<div class="invalid-feedback">Valid email is required.</div>
</div> </div>
<div class="form-check mb-4"> <div class="mb-3">
<input type="checkbox" <label id="view.userprofile.form.lblAccessType"
id="view.userprofile.form.chkAdminUser" for="view.userprofile.form.edtAccessType"
class="form-check-input"> class="form-label">Email&nbsp;Address</label>
<label for="view.userprofile.form.chkAdminUser" <input id="view.userprofile.form.edtAccessType"
class="form-check-label"> type="email"
Admin&nbsp;User class="form-control">
</label>
</div> </div>
<div class="d-flex gap-2 mb-4"> <div class="mb-3">
<button id="view.userprofile.form.btnconfirm" <label id="view.userprofile.form.lblQBID"
class="btn btn-primary flex-grow-1" for="view.userprofile.form.edtQBID"
type="button"> class="form-label">Email&nbsp;Address</label>
Confirm&nbsp;Changes <input id="view.userprofile.form.edtQBID"
</button> type="email"
<button id="view.userprofile.form.btncancel" class="form-control">
class="btn btn-danger flex-grow-1"
type="button">
Cancel&nbsp;Changes
</button>
</div> </div>
<label id="view.userprofile.form.lblresult" class="form-text"></label>
</form> </form>
</div> </div>
</div> </div>
......
...@@ -7,29 +7,34 @@ uses ...@@ -7,29 +7,34 @@ uses
WEBLib.Forms, WEBLib.Dialogs, Vcl.Controls, Vcl.StdCtrls, WEBLib.StdCtrls, WEBLib.Forms, WEBLib.Dialogs, Vcl.Controls, Vcl.StdCtrls, WEBLib.StdCtrls,
XData.Web.Client, WEBLib.ExtCtrls, DB, XData.Web.JsonDataset, XData.Web.Client, WEBLib.ExtCtrls, DB, XData.Web.JsonDataset,
XData.Web.Dataset, XData.Web.Connection, Vcl.Forms, ConnectionModule, XData.Web.Dataset, XData.Web.Connection, Vcl.Forms, ConnectionModule,
WEBLib.Toast; WEBLib.Toast, WEBLib.DBCtrls;
type type
TFViewUserProfile = class(TWebForm) TFViewUserProfile = class(TWebForm)
WebLabel1: TWebLabel; WebLabel1: TWebLabel;
WebLabel3: TWebLabel; WebLabel3: TWebLabel;
edtUsername: TWebEdit;
WebLabel2: TWebLabel; WebLabel2: TWebLabel;
edtUserId: TWebEdit;
edtFullName: TWebEdit;
WebLabel4: TWebLabel; WebLabel4: TWebLabel;
WebLabel5: TWebLabel; WebLabel5: TWebLabel;
chkAdminUser: TWebCheckBox;
edtEmail: TWebEdit;
btnConfirm: TWebButton;
lblResult: TWebLabel;
XDataWebClient1: TXDataWebClient; XDataWebClient1: TXDataWebClient;
btnCancel: TWebButton; WebDBEdit1: TWebDBEdit;
WebDBEdit2: TWebDBEdit;
WebDBEdit3: TWebDBEdit;
WebDBEdit4: TWebDBEdit;
WebDBEdit5: TWebDBEdit;
WebDBEdit6: TWebDBEdit;
WebLabel6: TWebLabel;
WebLabel7: TWebLabel;
xdwdsUser: TXDataWebDataSet;
wdsUser: TWebDataSource;
xdwdsUseruserID: TStringField;
xdwdsUserusername: TStringField;
xdwdsUseremail_address: TStringField;
xdwdsUserQBID: TStringField;
xdwdsUserAType: TStringField;
xdwdsUserfull_name: TStringField;
procedure WebFormShow(Sender: TObject); procedure WebFormShow(Sender: TObject);
procedure btnConfirmClick(Sender: TObject);
[async] procedure EditUser();
[async] procedure GetUser(); [async] procedure GetUser();
procedure btnCancelClick(Sender: TObject);
end; end;
var var
...@@ -46,77 +51,9 @@ uses ...@@ -46,77 +51,9 @@ uses
{$R *.dfm} {$R *.dfm}
procedure TFViewUserProfile.btnConfirmClick(Sender: TObject);
var
FormEl: TJSHTMLFormElement;
begin
FormEl := TJSHTMLFormElement(document.querySelector('form'));
ShowConfirmationModal(
'Are you sure you want to save changes to your profile?',
'Save',
'Cancel',
procedure(confirmed: Boolean)
begin
if confirmed then
EditUser;
end
);
end;
[async] procedure TFViewUserProfile.EditUser;
var
xdcResponse: TXDataClientResponse;
responseString: TJSObject;
editOptions, resultMsg: string;
begin
try
editOptions := '&username=' + edtUsername.Text +
'&fullname=' + edtFullName.Text +
'&email=' + edtEmail.Text;
xdcResponse := await(XDataWebClient1.RawInvokeAsync('ILookupService.EditUser', [editOptions]));
responseString := TJSObject(xdcResponse.Result);
resultMsg := string(responseString['value']);
Utils.ShowToast(resultMsg);
if resultMsg.ToLower.StartsWith('success:') then
FViewMain.ViewOrders('');
except
on E: EXDataClientRequestException do
Utils.ShowErrorModal(E.ErrorResult.ErrorMessage);
on E: Exception do
Utils.ShowErrorModal('Unexpected error: ' + E.Message);
end;
end;
procedure TFViewUserProfile.btnCancelClick(Sender: TObject);
begin
ShowConfirmationModal(
'Are you sure you want to cancel all your changes?',
'Yes',
'No',
procedure(confirmed: Boolean)
begin
if confirmed then
begin
GetUser();
ShowToast('Changes discarded', 'danger');
end;
end
);
end;
procedure TFViewUserProfile.WebFormShow(Sender: TObject); procedure TFViewUserProfile.WebFormShow(Sender: TObject);
begin begin
GetUser(); GetUser();
//edtJwt.Text := TJSJSON.stringify(AuthService.TokenPayload);
// View.UserProfile.WebFormShow
chkAdminUser.Checked := SameText(string(AuthService.TokenPayload.Properties['user_admin']), 'true');
end; end;
...@@ -133,11 +70,9 @@ begin ...@@ -133,11 +70,9 @@ begin
userList := TJSObject(xdcResponse.Result); userList := TJSObject(xdcResponse.Result);
data := TJSArray(userList['data']); data := TJSArray(userList['data']);
user := TJSObject(data[0]); user := TJSObject(data[0]);
edtUsername.Text := string(user['username']); console.log(user);
edtFullName.Text := string(user['full_name']); xdwdsUser.SetJsonData(user);
edtEmail.Text := string(user['email_address']); xdwdsUser.Open;
edtUserId.Text := string(user['userID']);
chkAdminUser.Checked := boolean(user['admin']);
except except
on E: EXDataClientRequestException do on E: EXDataClientRequestException do
Utils.ShowErrorModal(E.ErrorResult.ErrorMessage); Utils.ShowErrorModal(E.ErrorResult.ErrorMessage);
......
...@@ -140,7 +140,7 @@ begin ...@@ -140,7 +140,7 @@ begin
Rights := cells[7]; Rights := cells[7];
QB := cells[8]; QB := cells[8];
FViewMain.EditUser('Edit', Username.innerText, Password.innerText, FullName.innerText, FViewMain.EditUser('EDIT', Username.innerText, Password.innerText, FullName.innerText,
Status.innerText, Email.innerText, Access.innerText, Status.innerText, Email.innerText, Access.innerText,
Rights.innerText, QB.innerText); Rights.innerText, QB.innerText);
...@@ -343,20 +343,9 @@ begin ...@@ -343,20 +343,9 @@ begin
XDataWebDataSet1QBID.AsString, XDataWebDataSet1rights.AsInteger); XDataWebDataSet1QBID.AsString, XDataWebDataSet1rights.AsInteger);
XDataWebDataSet1.Next; XDataWebDataSet1.Next;
end; end;
TotalPages := (userListLength + PageSize - 1) div PageSize; lblEntries.Caption := 'Showing entries ' + IntToStr((PageNumber - 1) * PageSize + 1) +
if (PageNumber * PageSize) < userListLength then
begin
lblEntries.Caption := 'Showing entries ' + IntToStr((PageNumber - 1) * PageSize + 1) +
' - ' + IntToStr(PageNumber * PageSize) +
' of ' + IntToStr(userListLength);
end
else
begin
lblEntries.Caption := 'Showing entries ' + IntToStr((PageNumber - 1) * PageSize + 1) +
' - ' + IntToStr(userListLength) + ' - ' + IntToStr(userListLength) +
' of ' + IntToStr(userListLength); ' of ' + IntToStr(userListLength);
end;
GeneratePagination(TotalPages);
except except
on E: EXDataClientRequestException do on E: EXDataClientRequestException do
Utils.ShowErrorModal(E.ErrorResult.ErrorMessage); Utils.ShowErrorModal(E.ErrorResult.ErrorMessage);
...@@ -453,7 +442,7 @@ end; ...@@ -453,7 +442,7 @@ end;
procedure TFViewUsers.btnAddUserClick(Sender: TObject); procedure TFViewUsers.btnAddUserClick(Sender: TObject);
begin begin
//Info := ''; //Info := '';
FViewMain.EditUser('Add', '', '', '', '', '', '', '', ''); FViewMain.EditUser('ADD', '', '', '', '', '', '', '', '');
end; end;
......
...@@ -16,20 +16,20 @@ uses ...@@ -16,20 +16,20 @@ uses
View.Main in 'View.Main.pas' {FViewMain: TWebForm} {*.html}, View.Main in 'View.Main.pas' {FViewMain: TWebForm} {*.html},
View.Home in 'View.Home.pas' {FViewHome: TWebForm} {*.html}, View.Home in 'View.Home.pas' {FViewHome: TWebForm} {*.html},
View.Users in 'View.Users.pas' {FViewUsers: TWebForm} {*.html}, View.Users in 'View.Users.pas' {FViewUsers: TWebForm} {*.html},
View.EditUser in 'View.EditUser.pas' {FViewEditUser: TWebForm} {*.html}, View.User.Add in 'View.User.Add.pas' {FViewEditUser: TWebForm} {*.html},
View.Orders in 'View.Orders.pas' {FViewOrders: TWebForm} {*.html}, View.Orders in 'View.Orders.pas' {FViewOrders: TWebForm} {*.html},
View.OrderEntryCorrugated in 'View.OrderEntryCorrugated.pas' {FOrderEntryCorrugated: TWebForm} {*.html}, View.OrderEntryCorrugated in 'View.OrderEntryCorrugated.pas' {FOrderEntryCorrugated: TWebForm} {*.html},
View.AddOrder in 'View.AddOrder.pas' {FAddOrder: TWebForm} {*.html}, View.Order.Add in 'View.Order.Add.pas' {FAddOrder: TWebForm} {*.html},
View.Search in 'View.Search.pas' {FSearch: TWebForm} {*.html}, View.Search in 'View.Search.pas' {FSearch: TWebForm} {*.html},
View.SetStatus in 'View.SetStatus.pas' {FSetStatus: TWebForm} {*.html}, View.SetStatus in 'View.SetStatus.pas' {FSetStatus: TWebForm} {*.html},
View.OrderEntryCuttingDie in 'View.OrderEntryCuttingDie.pas' {FOrderEntryCuttingDie: TWebForm} {*.html}, View.OrderEntryCuttingDie in 'View.OrderEntryCuttingDie.pas' {FOrderEntryCuttingDie: TWebForm} {*.html},
View.OrderEntryWeb in 'View.OrderEntryWeb.pas' {FOrderEntryWeb: TWebForm} {*.html}, View.OrderEntryWeb in 'View.OrderEntryWeb.pas' {FOrderEntryWeb: TWebForm} {*.html},
View.Customers in 'View.Customers.pas' {FViewCustomers: TWebForm} {*.html}, View.Customers in 'View.Customers.pas' {FViewCustomers: TWebForm} {*.html},
AddCustomer in 'AddCustomer.pas' {FViewAddCustomer: TWebForm} {*.html}, View.Customer.Add in 'View.Customer.Add.pas' {FViewAddCustomer: TWebForm} {*.html},
View.AddAddress in 'View.AddAddress.pas' {FViewAddAddress: TWebForm} {*.html}, View.Address.Add in 'View.Address.Add.pas' {FViewAddAddress: TWebForm} {*.html},
View.SelectCustomer in 'View.SelectCustomer.pas' {FSelectCustomer: TWebForm} {*.html}, View.Customer.Select in 'View.Customer.Select.pas' {FSelectCustomer: TWebForm} {*.html},
Utils in 'Utils.pas', Utils in 'Utils.pas',
View.AddItem in 'View.AddItem.pas' {fViewAddItem: TWebForm} {*.html}; View.Item.Add in 'View.Item.Add.pas' {fViewAddItem: TWebForm} {*.html};
{$R *.res} {$R *.res}
......
...@@ -159,7 +159,7 @@ ...@@ -159,7 +159,7 @@
<Form>FViewUsers</Form> <Form>FViewUsers</Form>
<DesignClass>TWebForm</DesignClass> <DesignClass>TWebForm</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="View.EditUser.pas"> <DCCReference Include="View.User.Add.pas">
<Form>FViewEditUser</Form> <Form>FViewEditUser</Form>
<DesignClass>TWebForm</DesignClass> <DesignClass>TWebForm</DesignClass>
</DCCReference> </DCCReference>
...@@ -171,7 +171,7 @@ ...@@ -171,7 +171,7 @@
<Form>FOrderEntryCorrugated</Form> <Form>FOrderEntryCorrugated</Form>
<DesignClass>TWebForm</DesignClass> <DesignClass>TWebForm</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="View.AddOrder.pas"> <DCCReference Include="View.Order.Add.pas">
<Form>FAddOrder</Form> <Form>FAddOrder</Form>
<DesignClass>TWebForm</DesignClass> <DesignClass>TWebForm</DesignClass>
</DCCReference> </DCCReference>
...@@ -196,23 +196,23 @@ ...@@ -196,23 +196,23 @@
<FormType>dfm</FormType> <FormType>dfm</FormType>
<DesignClass>TWebForm</DesignClass> <DesignClass>TWebForm</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="AddCustomer.pas"> <DCCReference Include="View.Customer.Add.pas">
<Form>FViewAddCustomer</Form> <Form>FViewAddCustomer</Form>
<FormType>dfm</FormType> <FormType>dfm</FormType>
<DesignClass>TWebForm</DesignClass> <DesignClass>TWebForm</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="View.AddAddress.pas"> <DCCReference Include="View.Address.Add.pas">
<Form>FViewAddAddress</Form> <Form>FViewAddAddress</Form>
<FormType>dfm</FormType> <FormType>dfm</FormType>
<DesignClass>TWebForm</DesignClass> <DesignClass>TWebForm</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="View.SelectCustomer.pas"> <DCCReference Include="View.Customer.Select.pas">
<Form>FSelectCustomer</Form> <Form>FSelectCustomer</Form>
<FormType>dfm</FormType> <FormType>dfm</FormType>
<DesignClass>TWebForm</DesignClass> <DesignClass>TWebForm</DesignClass>
</DCCReference> </DCCReference>
<DCCReference Include="Utils.pas"/> <DCCReference Include="Utils.pas"/>
<DCCReference Include="View.AddItem.pas"> <DCCReference Include="View.Item.Add.pas">
<Form>fViewAddItem</Form> <Form>fViewAddItem</Form>
<DesignClass>TWebForm</DesignClass> <DesignClass>TWebForm</DesignClass>
</DCCReference> </DCCReference>
......
...@@ -83,7 +83,6 @@ begin ...@@ -83,7 +83,6 @@ begin
try try
webClientVersion := iniFile.ReadString('Settings', 'webClientVersion', ''); webClientVersion := iniFile.ReadString('Settings', 'webClientVersion', '');
Result.AddPair('webClientVersion', webClientVersion); Result.AddPair('webClientVersion', webClientVersion);
qbEnabled := iniFile.ReadBool('Quickbooks', 'Enabled', false);
if webClientVersion = '' then if webClientVersion = '' then
begin begin
...@@ -93,8 +92,8 @@ begin ...@@ -93,8 +92,8 @@ begin
if clientVersion <> webClientVersion then if clientVersion <> webClientVersion then
begin begin
Result.AddPair('error', Result.AddPair('error',
'Your browser is running an old version of the app.' + sLineBreak + 'Your browser is running version' + webClientVersion + ' when it should be running ' +
'Please click below to reload.'); clientVersion + sLineBreak + 'Please click below to reload.');
end; end;
finally finally
iniFile.Free; iniFile.Free;
...@@ -121,18 +120,18 @@ begin ...@@ -121,18 +120,18 @@ begin
if userState = 0 then if userState = 0 then
begin begin
raise EXDataHttpUnauthorized.Create('Invalid username or password');
logger.Log(2, 'Login Error: Invalid username or password'); logger.Log(2, 'Login Error: Invalid username or password');
raise EXDataHttpUnauthorized.Create('Invalid username or password');
end end
else if userState = 1 then else if userState = 1 then
begin begin
raise EXDataHttpUnauthorized.Create('User does not exist!');
logger.Log(2, 'Login Error: User does not exist!'); logger.Log(2, 'Login Error: User does not exist!');
raise EXDataHttpUnauthorized.Create('User does not exist!');
end end
else if userState = 2 then else if userState = 2 then
begin begin
raise EXDataHttpUnauthorized.Create('User not active!');
logger.Log(2, 'Login Error: User not active!'); logger.Log(2, 'Login Error: User not active!');
raise EXDataHttpUnauthorized.Create('User not active!');
end; end;
...@@ -148,14 +147,13 @@ begin ...@@ -148,14 +147,13 @@ begin
JWT.Claims.JWTId := LowerCase(Copy(TUtils.GuidToVariant(TUtils.NewGuid), 2, 36)); JWT.Claims.JWTId := LowerCase(Copy(TUtils.GuidToVariant(TUtils.NewGuid), 2, 36));
JWT.Claims.IssuedAt := Now; JWT.Claims.IssuedAt := Now;
JWT.Claims.Expiration := IncHour(Now, 24); JWT.Claims.Expiration := IncHour(Now, 24);
JWT.Claims.SetClaimOfType<string>('user_name', userName); JWT.Claims.SetClaimOfType<string>('user_name', authDB.uq.FieldByName('USER_NAME').AsString);
JWT.Claims.SetClaimOfType<string>('user_fullname', userFullName); JWT.Claims.SetClaimOfType<string>('user_fullname', authDB.uq.FieldByName('NAME').AsString);
JWT.Claims.SetClaimOfType<string>('user_id', userId); JWT.Claims.SetClaimOfType<string>('user_id', authDB.uq.FieldByName('USER_ID').AsString);
JWT.Claims.SetClaimOfType<string>('user_perspective_id', userPerspectiveID); JWT.Claims.SetClaimOfType<string>('user_status', authDB.uq.FieldByName('STATUS').AsString);
JWT.Claims.SetClaimOfType<string>('user_status', userStatus); JWT.Claims.SetClaimOfType<string>('user_email', authDB.uq.FieldByName('EMAIL').AsString);
JWT.Claims.SetClaimOfType<string>('user_email', userEmail); JWT.Claims.SetClaimOfType<string>('user_qb_id', authDB.uq.FieldByName('QB_ID').AsString);
JWT.Claims.SetClaimOfType<string>('user_qb_id', userQBID); JWT.Claims.SetClaimOfType<string>('user_access_type', authDB.uq.FieldByName('ACCESS_TYPE').AsString);
JWT.Claims.SetClaimOfType<string>('user_access_type', userAccessType);
JWT.Claims.SetClaimOfType<boolean>('qb_enabled', qbEnabled); JWT.Claims.SetClaimOfType<boolean>('qb_enabled', qbEnabled);
Result := TJOSE.SHA256CompactToken(serverConfig.jwtTokenSecret, JWT); Result := TJOSE.SHA256CompactToken(serverConfig.jwtTokenSecret, JWT);
...@@ -175,7 +173,7 @@ begin ...@@ -175,7 +173,7 @@ begin
DoQuery(authDB.uq, SQL); DoQuery(authDB.uq, SQL);
if authDB.uq.IsEmpty then if authDB.uq.IsEmpty then
begin begin
Result := 1; //user does not exist, replace this with 0 for more security Result := 1; //user does not exist, replace this with 0 for more security
end end
else if ( authDB.uq.FieldByName('STATUS').AsString <> 'ACTIVE' ) then else if ( authDB.uq.FieldByName('STATUS').AsString <> 'ACTIVE' ) then
Result := 2 // user is not active Result := 2 // user is not active
...@@ -185,20 +183,11 @@ begin ...@@ -185,20 +183,11 @@ begin
checkString := THashSHA2.GetHashString(name + password, THashSHA2.TSHA2Version.SHA512).ToUpper; checkString := THashSHA2.GetHashString(name + password, THashSHA2.TSHA2Version.SHA512).ToUpper;
if authDB.uq.FieldByName('PASSWORD').AsString = checkString then if authDB.uq.FieldByName('PASSWORD').AsString = checkString then
begin begin
userName := user;
userFullName:= authDB.uq.FieldByName('NAME').AsString;;
userId := authDB.uq.FieldByName('USER_ID').AsString;
userStatus := authDB.uq.FieldByName('STATUS').AsString;
userPerspectiveID := authDB.uq.FieldByName('PERSPECTIVE_ID').AsString;
userEmail := authDB.uq.FieldByName('EMAIL').AsString;
userQBID := authDB.uq.FieldByName('QB_ID').AsString;
userAccessType := authDB.uq.FieldByName('ACCESS_TYPE').AsString;
Logger.Log(1, Format('AuthDB.SetLoginAuditEntry: "%s"', [user]) ); Logger.Log(1, Format('AuthDB.SetLoginAuditEntry: "%s"', [user]) );
Result := 3; // Succcess Result := 3; // Succcess
end end
else else
Result := 0; // invalid password Result := 0; // invalid user or password
end; end;
end; end;
......
...@@ -180,37 +180,37 @@ begin ...@@ -180,37 +180,37 @@ begin
if iniStr.IsEmpty then if iniStr.IsEmpty then
Logger.Log( 1, '--Quickbooks->CompanyID: Entry not found' ) Logger.Log( 1, '--Quickbooks->CompanyID: Entry not found' )
else else
Logger.Log( 1, '--Quickbooks->CompanyID: ' + 'Entry found' ); Logger.Log( 1, '--Quickbooks->CompanyID: Entry found' );
iniStr := IniFile.ReadString( 'Quickbooks', 'ClientID', '' ); iniStr := IniFile.ReadString( 'Quickbooks', 'ClientID', '' );
if iniStr.IsEmpty then if iniStr.IsEmpty then
Logger.Log( 1, '--Quickbooks->ClientID: Entry not found' ) Logger.Log( 1, '--Quickbooks->ClientID: Entry not found' )
else else
Logger.Log( 1, '--Quickbooks->ClientID: ' + 'Entry found' ); Logger.Log( 1, '--Quickbooks->ClientID: Entry found' );
iniStr := IniFile.ReadString( 'Quickbooks', 'ClientSecret', '' ); iniStr := IniFile.ReadString( 'Quickbooks', 'ClientSecret', '' );
if iniStr.IsEmpty then if iniStr.IsEmpty then
Logger.Log( 1, '--Quickbooks->ClientSecret: Entry not found' ) Logger.Log( 1, '--Quickbooks->ClientSecret: Entry not found' )
else else
Logger.Log( 1, '--Quickbooks->ClientSecret: ' + 'Entry found' ); Logger.Log( 1, '--Quickbooks->ClientSecret: Entry found' );
iniStr := IniFile.ReadString( 'Quickbooks', 'RefreshToken', '' ); iniStr := IniFile.ReadString( 'Quickbooks', 'RefreshToken', '' );
if iniStr.IsEmpty then if iniStr.IsEmpty then
Logger.Log( 1, '--Quickbooks->RefreshToken: Entry not found' ) Logger.Log( 1, '--Quickbooks->RefreshToken: Entry not found' )
else else
Logger.Log( 1, '--Quickbooks->RefreshToken: ' + 'Entry found' ); Logger.Log( 1, '--Quickbooks->RefreshToken: Entry found' );
iniStr := IniFile.ReadString( 'Quickbooks', 'AccessToken', '' ); iniStr := IniFile.ReadString( 'Quickbooks', 'AccessToken', '' );
if iniStr.IsEmpty then if iniStr.IsEmpty then
Logger.Log( 1, '--Quickbooks->AccessToken: Entry not found' ) Logger.Log( 1, '--Quickbooks->AccessToken: Entry not found' )
else else
Logger.Log( 1, '--Quickbooks->AccessToken: ' + 'Entry found' ); Logger.Log( 1, '--Quickbooks->AccessToken: Entry found' );
iniStr := IniFile.ReadString( 'Quickbooks', 'LastRefresh', '' ); iniStr := IniFile.ReadString( 'Quickbooks', 'LastRefresh', '' );
if iniStr.IsEmpty then if iniStr.IsEmpty then
Logger.Log( 1, '--Quickbooks->LastRefresh: Entry not found' ) Logger.Log( 1, '--Quickbooks->LastRefresh: Entry not found' )
else else
Logger.Log( 1, '--Quickbooks->LastRefresh: ' + iniStr ); Logger.Log( 1, '--Quickbooks->LastRefresh: Entry Found' );
Logger.Log( 1, '' ); Logger.Log( 1, '' );
finally finally
......
...@@ -2,20 +2,20 @@ ...@@ -2,20 +2,20 @@
MemoLogLevel=4 MemoLogLevel=4
FileLogLevel=4 FileLogLevel=4
webClientVersion=0.9.11 webClientVersion=0.9.11
LogFileNum=164 LogFileNum=171
[Database] [Database]
Server=192.168.116.132 --Server=192.168.116.132
--Server=192.168.102.129 --Server=192.168.102.129
--Server=192.168.75.133 --Server=192.168.75.133
--Server=192.168.159.10 Server=192.168.159.10
--Database=kg_order_entry --Database=kg_order_entry
--Username=root --Username=root
--Password=emsys01 --Password=emsys01
--Password=emsys!012 --Password=emsys!012
[Quickbooks] [Quickbooks]
Enabled=0 --Enabled=1
CompanyID=9341454336461805 CompanyID=9341454336461805
ClientID=ABYqlDx1EsacZYXvHIJ7RDB7zmnQdwABU3fwQLIZPmBgU0VW1P ClientID=ABYqlDx1EsacZYXvHIJ7RDB7zmnQdwABU3fwQLIZPmBgU0VW1P
ClientSecret=PM7OnvQWsgOqjWfDpZAnyRttDN9446Am6d85pDxr ClientSecret=PM7OnvQWsgOqjWfDpZAnyRttDN9446Am6d85pDxr
......
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