Commit 151f60b4 by Cam Hayes

Redesigned how GetQBCustomers worked

parent 4700fcf0
...@@ -89,7 +89,6 @@ begin ...@@ -89,7 +89,6 @@ begin
end; end;
end; end;
procedure ShowErrorModal(msg: string); procedure ShowErrorModal(msg: string);
begin begin
asm asm
...@@ -117,7 +116,6 @@ begin ...@@ -117,7 +116,6 @@ begin
end; end;
end; end;
procedure ShowNotificationModal(msg: string); procedure ShowNotificationModal(msg: string);
begin begin
asm asm
......
...@@ -221,7 +221,7 @@ object FViewAddCustomer: TFViewAddCustomer ...@@ -221,7 +221,7 @@ object FViewAddCustomer: TFViewAddCustomer
Title = 'ID' Title = 'ID'
end end
item item
DataField = 'ADDRESS' DataField = 'ship_block'
Title = 'Address' Title = 'Address'
end> end>
DataSource = wdsShipTo DataSource = wdsShipTo
...@@ -399,22 +399,6 @@ object FViewAddCustomer: TFViewAddCustomer ...@@ -399,22 +399,6 @@ object FViewAddCustomer: TFViewAddCustomer
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object wdblcbRep: TWebDBLookupComboBox
Left = 19
Top = 216
Width = 145
Height = 22
ElementID = 'wdblcbrep'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
OnChange = wdblcbRepChange
OnEnter = wdblcbRepChange
DataField = 'REP_USER_ID'
DataSource = WebDataSource1
KeyField = 'userID'
ListField = 'representative'
ListSource = wdsUsers
end
object btnLink: TWebButton object btnLink: TWebButton
Left = 19 Left = 19
Top = 566 Top = 566
...@@ -441,6 +425,22 @@ object FViewAddCustomer: TFViewAddCustomer ...@@ -441,6 +425,22 @@ object FViewAddCustomer: TFViewAddCustomer
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnClick = btnUpdateClick OnClick = btnUpdateClick
end end
object edtRepUser: TWebDBEdit
Left = 19
Top = 216
Width = 121
Height = 22
ChildOrder = 12
ElementClassName = 'form-control'
ElementID = 'edtrepuser'
ElementFont = efCSS
Enabled = False
HeightStyle = ssAuto
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
DataField = 'QB_TYPE'
DataSource = WebDataSource1
end
object XDataWebClient1: TXDataWebClient object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection Connection = DMConnection.ApiConnection
Left = 454 Left = 454
...@@ -495,8 +495,8 @@ object FViewAddCustomer: TFViewAddCustomer ...@@ -495,8 +495,8 @@ object FViewAddCustomer: TFViewAddCustomer
object XDataWebDataSet1CUSTOMER_ID: TIntegerField object XDataWebDataSet1CUSTOMER_ID: TIntegerField
FieldName = 'CUSTOMER_ID' FieldName = 'CUSTOMER_ID'
end end
object XDataWebDataSet1REP_USER_ID: TStringField object XDataWebDataSet1QB_TYPE: TStringField
FieldName = 'REP_USER_ID' FieldName = 'QB_TYPE'
end end
end end
object wdsShipTo: TWebDataSource object wdsShipTo: TWebDataSource
...@@ -508,9 +508,6 @@ object FViewAddCustomer: TFViewAddCustomer ...@@ -508,9 +508,6 @@ object FViewAddCustomer: TFViewAddCustomer
object xdwdsShipTo: TXDataWebDataSet object xdwdsShipTo: TXDataWebDataSet
Left = 698 Left = 698
Top = 44 Top = 44
object xdwdsShipToADDRESS: TStringField
FieldName = 'ADDRESS'
end
object xdwdsShipToship_id: TStringField object xdwdsShipToship_id: TStringField
FieldName = 'ship_id' FieldName = 'ship_id'
end end
...@@ -529,6 +526,9 @@ object FViewAddCustomer: TFViewAddCustomer ...@@ -529,6 +526,9 @@ object FViewAddCustomer: TFViewAddCustomer
object xdwdsShipTocontact: TStringField object xdwdsShipTocontact: TStringField
FieldName = 'contact' FieldName = 'contact'
end end
object xdwdsShipToship_block: TStringField
FieldName = 'ship_block'
end
end end
object tmrReturn: TWebTimer object tmrReturn: TWebTimer
Enabled = False Enabled = False
...@@ -545,16 +545,8 @@ object FViewAddCustomer: TFViewAddCustomer ...@@ -545,16 +545,8 @@ object FViewAddCustomer: TFViewAddCustomer
object xdwdsUsers: TXDataWebDataSet object xdwdsUsers: TXDataWebDataSet
Left = 776 Left = 776
Top = 54 Top = 54
object xdwdsUsersuserID: TStringField object xdwdsUsersQBID: TStringField
FieldName = 'userID' FieldName = 'QBID'
end
object xdwdsUsersfull_name: TStringField
FieldName = 'full_name'
Size = 0
end
object xdwdsUsersrepresentative: TStringField
FieldName = 'representative'
Size = 0
end end
end end
end end
...@@ -57,12 +57,15 @@ ...@@ -57,12 +57,15 @@
<label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Customer ID:</label> <label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Customer ID:</label>
<input id="edtcompanyaccountname"type="text" class="form-control" style="width: 150px" required/> <input id="edtcompanyaccountname"type="text" class="form-control" style="width: 150px" required/>
<div class="invalid-feedback" id="shortnamefeedback" style="font-size: 15px;"> <div class="invalid-feedback" id="shortnamefeedback" style="font-size: 15px;">
Please Provide a Company Account Name. Please Provide a Company ID.
</div> </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">Representative:</label> <label for="wdbe_first_name" style="font-weight: 700; font-size: 15px;" class="form-label mt-2">Territory:</label>
<select id="wdblcbrep" class='form-select'></select> <input id="edtrepuser"type="text" class="form-control" style="width: 150px"/>
<div class="invalid-feedback" id="territorywarning" style="font-size: 15px;">
Territory not found in kgOrders
</div>
</div> </div>
</div> </div>
<h4 class="custom-h4 mt-3">Billing Information</h4> <h4 class="custom-h4 mt-3">Billing Information</h4>
......
...@@ -9,8 +9,8 @@ object FSelectCustomer: TFSelectCustomer ...@@ -9,8 +9,8 @@ object FSelectCustomer: TFSelectCustomer
Width = 95 Width = 95
Height = 15 Height = 15
Caption = 'Search Customers' Caption = 'Search Customers'
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object WebLabel2: TWebLabel object WebLabel2: TWebLabel
Left = 279 Left = 279
...@@ -18,8 +18,8 @@ object FSelectCustomer: TFSelectCustomer ...@@ -18,8 +18,8 @@ object FSelectCustomer: TFSelectCustomer
Width = 134 Width = 134
Height = 15 Height = 15
Caption = 'Selected Customer Name' Caption = 'Selected Customer Name'
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object WebLabel3: TWebLabel object WebLabel3: TWebLabel
Left = 131 Left = 131
...@@ -27,8 +27,8 @@ object FSelectCustomer: TFSelectCustomer ...@@ -27,8 +27,8 @@ object FSelectCustomer: TFSelectCustomer
Width = 113 Width = 113
Height = 15 Height = 15
Caption = 'Selected Customer ID' Caption = 'Selected Customer ID'
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object edtSearch: TWebEdit object edtSearch: TWebEdit
Left = 4 Left = 4
...@@ -36,8 +36,8 @@ object FSelectCustomer: TFSelectCustomer ...@@ -36,8 +36,8 @@ object FSelectCustomer: TFSelectCustomer
Width = 121 Width = 121
Height = 22 Height = 22
ChildOrder = 2 ChildOrder = 2
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnChange = edtSearchChange OnChange = edtSearchChange
end end
object edtName: TWebEdit object edtName: TWebEdit
...@@ -47,8 +47,8 @@ object FSelectCustomer: TFSelectCustomer ...@@ -47,8 +47,8 @@ object FSelectCustomer: TFSelectCustomer
Height = 22 Height = 22
ChildOrder = 1 ChildOrder = 1
Enabled = False Enabled = False
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object TMSFNCGrid1: TTMSFNCGrid object TMSFNCGrid1: TTMSFNCGrid
Left = 0 Left = 0
...@@ -59,7 +59,7 @@ object FSelectCustomer: TFSelectCustomer ...@@ -59,7 +59,7 @@ object FSelectCustomer: TFSelectCustomer
ParentDoubleBuffered = False ParentDoubleBuffered = False
DoubleBuffered = True DoubleBuffered = True
TabOrder = 2 TabOrder = 2
DefaultRowHeight = 40.000000000000000000 DefaultRowHeight = 40.00000000000000000
FixedColumns = 0 FixedColumns = 0
ColumnCount = 4 ColumnCount = 4
Options.Bands.Enabled = True Options.Bands.Enabled = True
...@@ -85,7 +85,7 @@ object FSelectCustomer: TFSelectCustomer ...@@ -85,7 +85,7 @@ object FSelectCustomer: TFSelectCustomer
Font.Name = 'Segoe UI' Font.Name = 'Segoe UI'
Font.Style = [] Font.Style = []
ID = '' ID = ''
Width = 90.000000000000000000 Width = 90.00000000000000000
end end
item item
BorderWidth = 1 BorderWidth = 1
...@@ -100,7 +100,7 @@ object FSelectCustomer: TFSelectCustomer ...@@ -100,7 +100,7 @@ object FSelectCustomer: TFSelectCustomer
Font.Name = 'Segoe UI' Font.Name = 'Segoe UI'
Font.Style = [] Font.Style = []
ID = '' ID = ''
Width = 150.000000000000000000 Width = 150.00000000000000000
end end
item item
BorderWidth = 1 BorderWidth = 1
...@@ -115,7 +115,7 @@ object FSelectCustomer: TFSelectCustomer ...@@ -115,7 +115,7 @@ object FSelectCustomer: TFSelectCustomer
Font.Name = 'Segoe UI' Font.Name = 'Segoe UI'
Font.Style = [] Font.Style = []
ID = '' ID = ''
Width = 200.000000000000000000 Width = 400.00000000000000000
end end
item item
BorderWidth = 1 BorderWidth = 1
...@@ -130,7 +130,7 @@ object FSelectCustomer: TFSelectCustomer ...@@ -130,7 +130,7 @@ object FSelectCustomer: TFSelectCustomer
Font.Name = 'Segoe UI' Font.Name = 'Segoe UI'
Font.Style = [] Font.Style = []
ID = '' ID = ''
Width = 306.000000000000000000 Width = 106.00000000000000000
end end
item item
BorderWidth = 1 BorderWidth = 1
...@@ -145,7 +145,7 @@ object FSelectCustomer: TFSelectCustomer ...@@ -145,7 +145,7 @@ object FSelectCustomer: TFSelectCustomer
Font.Name = 'Segoe UI' Font.Name = 'Segoe UI'
Font.Style = [] Font.Style = []
ID = '' ID = ''
Width = 90.000000000000000000 Width = 1.00000000000000000
end> end>
DefaultFont.Charset = DEFAULT_CHARSET DefaultFont.Charset = DEFAULT_CHARSET
DefaultFont.Color = clWindowText DefaultFont.Color = clWindowText
...@@ -206,6 +206,7 @@ object FSelectCustomer: TFSelectCustomer ...@@ -206,6 +206,7 @@ object FSelectCustomer: TFSelectCustomer
ScrollMode = scmItemScrolling ScrollMode = scmItemScrolling
DesignTimeSampleData = True DesignTimeSampleData = True
OnCellClick = TMSFNCGrid1CellClick OnCellClick = TMSFNCGrid1CellClick
ExplicitLeft = 4
end end
object btnCancel: TWebButton object btnCancel: TWebButton
Left = 556 Left = 556
...@@ -214,8 +215,8 @@ object FSelectCustomer: TFSelectCustomer ...@@ -214,8 +215,8 @@ object FSelectCustomer: TFSelectCustomer
Height = 25 Height = 25
Caption = 'Cancel' Caption = 'Cancel'
ChildOrder = 5 ChildOrder = 5
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnClick = btnCancelClick OnClick = btnCancelClick
end end
object btnConfirm: TWebButton object btnConfirm: TWebButton
...@@ -225,8 +226,8 @@ object FSelectCustomer: TFSelectCustomer ...@@ -225,8 +226,8 @@ object FSelectCustomer: TFSelectCustomer
Height = 25 Height = 25
Caption = 'Select' Caption = 'Select'
ChildOrder = 5 ChildOrder = 5
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnClick = btnConfirmClick OnClick = btnConfirmClick
end end
object edtID: TWebEdit object edtID: TWebEdit
...@@ -236,8 +237,8 @@ object FSelectCustomer: TFSelectCustomer ...@@ -236,8 +237,8 @@ object FSelectCustomer: TFSelectCustomer
Height = 22 Height = 22
ChildOrder = 1 ChildOrder = 1
Enabled = False Enabled = False
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object XDataWebClient1: TXDataWebClient object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection Connection = DMConnection.ApiConnection
...@@ -257,44 +258,8 @@ object FSelectCustomer: TFSelectCustomer ...@@ -257,44 +258,8 @@ object FSelectCustomer: TFSelectCustomer
object xdwdsCustomersId: TStringField object xdwdsCustomersId: TStringField
FieldName = 'Id' FieldName = 'Id'
end end
object xdwdsCustomersPrimaryPhone: TStringField
FieldName = 'PrimaryPhone'
end
object xdwdsCustomersShipAddr: TStringField
FieldName = 'ShipAddr'
end
object xdwdsCustomersShipAddrLine1: TStringField
FieldName = 'ShipAddrLine1'
end
object xdwdsCustomersShipAddrCity: TStringField
FieldName = 'ShipAddrCity'
end
object xdwdsCustomersShipAddrState: TStringField
FieldName = 'ShipAddrState'
end
object xdwdsCustomersShipAddrZip: TStringField
FieldName = 'ShipAddrZip'
end
object xdwdsCustomersBillAddrLine1: TStringField
FieldName = 'BillAddrLine1'
end
object xdwdsCustomersBillAddrCity: TStringField
FieldName = 'BillAddrCity'
end
object xdwdsCustomersBillAddrState: TStringField
FieldName = 'BillAddrState'
end
object xdwdsCustomersBillAddrZip: TStringField
FieldName = 'BillAddrZip'
end
object xdwdsCustomersInKGOrders: TBooleanField object xdwdsCustomersInKGOrders: TBooleanField
FieldName = 'In KGOrders' FieldName = 'InKGOrders'
end
object xdwdsCustomersBillAddrContact: TStringField
FieldName = 'BillAddrContact'
end
object xdwdsCustomersShipAddrContact: TStringField
FieldName = 'ShipAddrContact'
end end
end end
object wdsCustomers: TWebDataSource object wdsCustomers: TWebDataSource
......
...@@ -27,21 +27,9 @@ type ...@@ -27,21 +27,9 @@ type
xdwdsCustomersBillAddr: TStringField; xdwdsCustomersBillAddr: TStringField;
xdwdsCustomersCompanyName: TStringField; xdwdsCustomersCompanyName: TStringField;
xdwdsCustomersId: TStringField; xdwdsCustomersId: TStringField;
xdwdsCustomersPrimaryPhone: TStringField;
xdwdsCustomersShipAddr: TStringField;
xdwdsCustomersShipAddrLine1: TStringField;
xdwdsCustomersShipAddrCity: TStringField;
xdwdsCustomersShipAddrState: TStringField;
xdwdsCustomersShipAddrZip: TStringField;
xdwdsCustomersBillAddrLine1: TStringField;
xdwdsCustomersBillAddrCity: TStringField;
xdwdsCustomersBillAddrState: TStringField;
xdwdsCustomersBillAddrZip: TStringField;
WebLabel3: TWebLabel; WebLabel3: TWebLabel;
edtID: TWebEdit; edtID: TWebEdit;
xdwdsCustomersInKGOrders: TBooleanField; xdwdsCustomersInKGOrders: TBooleanField;
xdwdsCustomersBillAddrContact: TStringField;
xdwdsCustomersShipAddrContact: TStringField;
procedure WebFormCreate(Sender: TObject); procedure WebFormCreate(Sender: TObject);
procedure WebFormShow(Sender: TObject); procedure WebFormShow(Sender: TObject);
procedure btnConfirmClick(Sender: TObject); procedure btnConfirmClick(Sender: TObject);
...@@ -51,7 +39,6 @@ type ...@@ -51,7 +39,6 @@ type
private private
{ Private declarations } { Private declarations }
[Async] procedure GetCustomers(); [Async] procedure GetCustomers();
[Async] procedure SendCustomerToServer();
procedure PopulateGridManually(); procedure PopulateGridManually();
procedure ApplyFilter(); procedure ApplyFilter();
var var
...@@ -99,41 +86,13 @@ begin ...@@ -99,41 +86,13 @@ begin
ShowToast('Please Select a Customer', 'danger') ShowToast('Please Select a Customer', 'danger')
else else
begin begin
if ( string(self.Caption).ToLower.Contains('add') and xdwdsCustomers.FieldByName('In KGOrders').AsBoolean) then if ( string(self.Caption).ToLower.Contains('add') and xdwdsCustomers.FieldByName('InKGOrders').AsBoolean) then
ShowToast('failure:Customer Already in Database') ShowToast('failure:Customer Already in Database')
else else
begin begin
if string(self.Caption).ToLower.Contains('link') then confirm := true;
begin QB_ID := xdwdsCustomers.FieldByName('Id').AsString;
confirm := true; FViewMain.ViewAddCustomer('', QB_ID);
QB_ID := xdwdsCustomers.FieldByName('Id').AsString;
end
else
begin
xdwdsCustomers.Locate('Id', edtID.Text, []);
CustomerJSON := TJSONObject.Create;
CustomerJSON.AddPair('NAME', xdwdsCustomers.FieldByName('CompanyName').AsString);
CustomerJSON.AddPair('QB_LIST_ID', xdwdsCustomers.FieldByName('Id').AsString);
CustomerJSON.AddPair('PHONE', xdwdsCustomers.FieldByName('PrimaryPhone').AsString);
CustomerJSON.AddPair('BILL_ADDRESS', xdwdsCustomers.FieldByName('BillAddrLine1').AsString);
CustomerJSON.AddPair('BILL_CITY', xdwdsCustomers.FieldByName('BillAddrCity').AsString);
CustomerJSON.AddPair('BILL_STATE', xdwdsCustomers.FieldByName('BillAddrState').AsString);
CustomerJSON.AddPair('BILL_ZIP', xdwdsCustomers.FieldByName('BillAddrZip').AsString);
CustomerJSON.AddPair('BILL_ADDRESS_BLOCK', xdwdsCustomers.FieldByName('BillAddr').AsString);
CustomerJSON.AddPair('BILL_CONTACT', xdwdsCustomers.FieldByName('BillAddrContact').AsString);
CustomerJSON.AddPair('address', xdwdsCustomers.FieldByName('ShipAddrLine1').AsString);
CustomerJSON.AddPair('city', xdwdsCustomers.FieldByName('ShipAddrCity').AsString);
CustomerJSON.AddPair('state', xdwdsCustomers.FieldByName('ShipAddrState').AsString);
CustomerJSON.AddPair('zip', xdwdsCustomers.FieldByName('ShipAddrZip').AsString);
CustomerJSON.AddPair('ship_block', xdwdsCustomers.FieldByName('ShipAddr').AsString);
CustomerJSON.AddPair('contact', xdwdsCustomers.FieldByName('ShipAddrContact').AsString);
CustomerJSON.AddPair('name', xdwdsCustomers.FieldByName('CompanyName').AsString);
CustomerJSON.AddPair('mode', 'ADD');
FViewMain.ViewAddCustomer('', CustomerJSON.ToString);
end;
Close(); Close();
end; end;
end; end;
...@@ -155,10 +114,11 @@ begin ...@@ -155,10 +114,11 @@ begin
// Fetch data from XData service // Fetch data from XData service
xdcResponse := await(XDataWebClient1.RawInvokeAsync('ILookupService.getQBCustomers', [])); xdcResponse := await(XDataWebClient1.RawInvokeAsync('ILookupService.getQBCustomers', []));
customerList := TJSObject(xdcResponse.Result); customerList := TJSObject(xdcResponse.Result);
console.log(customerList);
// Load data into TXDataWebDataset // Load data into TXDataWebDataset
xdwdsCustomers.Close; xdwdsCustomers.Close;
xdwdsCustomers.SetJsonData(customerList); xdwdsCustomers.SetJsonData(customerList['data']);
xdwdsCustomers.Open; xdwdsCustomers.Open;
// Manually populate the grid // Manually populate the grid
...@@ -194,10 +154,10 @@ begin ...@@ -194,10 +154,10 @@ begin
while not xdwdsCustomers.EOF do while not xdwdsCustomers.EOF do
begin begin
TMSFNCGrid1.RowCount := RowIndex + 1; TMSFNCGrid1.RowCount := RowIndex + 1;
TMSFNCGrid1.Cells[0, RowIndex] := xdwdsCustomers.FieldByName('Id').AsString; TMSFNCGrid1.Cells[0, RowIndex] := xdwdsCustomersId.AsString;
TMSFNCGrid1.Cells[1, RowIndex] := xdwdsCustomers.FieldByName('CompanyName').AsString; TMSFNCGrid1.Cells[1, RowIndex] := xdwdsCustomersCompanyName.AsString;
TMSFNCGrid1.Cells[2, RowIndex] := xdwdsCustomers.FieldByName('BillAddr').AsString; TMSFNCGrid1.Cells[2, RowIndex] := xdwdsCustomersBillAddr.AsString;
TMSFNCGrid1.Cells[3, RowIndex] := xdwdsCustomers.FieldByName('In KGOrders').AsString; TMSFNCGrid1.Cells[3, RowIndex] := xdwdsCustomersInKGOrders.AsString;
Inc(RowIndex); Inc(RowIndex);
xdwdsCustomers.Next; xdwdsCustomers.Next;
end; end;
...@@ -216,45 +176,6 @@ begin ...@@ -216,45 +176,6 @@ begin
edtName.Text := TMSFNCGrid1.Cells[1, ARow]; edtName.Text := TMSFNCGrid1.Cells[1, ARow];
end; end;
procedure TFSelectCustomer.SendCustomerToServer;
var
CustomerJSON: TJSONObject;
Response: TXDataClientResponse;
notification: TJSObject;
begin
CustomerJSON := TJSONObject.Create;
CustomerJSON.AddPair('NAME', xdwdsCustomers.FieldByName('CompanyName').AsString);
CustomerJSON.AddPair('QB_LIST_ID', xdwdsCustomers.FieldByName('Id').AsString);
CustomerJSON.AddPair('PHONE', xdwdsCustomers.FieldByName('PrimaryPhone').AsString);
CustomerJSON.AddPair('BILL_ADDRESS', xdwdsCustomers.FieldByName('BillAddrLine1').AsString);
CustomerJSON.AddPair('BILL_CITY', xdwdsCustomers.FieldByName('BillAddrCity').AsString);
CustomerJSON.AddPair('BILL_STATE', xdwdsCustomers.FieldByName('BillAddrState').AsString);
CustomerJSON.AddPair('BILL_ZIP', xdwdsCustomers.FieldByName('BillAddrZip').AsString);
CustomerJSON.AddPair('BILL_ADDRESS_BLOCK', xdwdsCustomers.FieldByName('BillAddr').AsString);
CustomerJSON.AddPair('address', xdwdsCustomers.FieldByName('ShipAddrLine1').AsString);
CustomerJSON.AddPair('city', xdwdsCustomers.FieldByName('ShipAddrCity').AsString);
CustomerJSON.AddPair('state', xdwdsCustomers.FieldByName('ShipAddrState').AsString);
CustomerJSON.AddPair('zip', xdwdsCustomers.FieldByName('ShipAddrZip').AsString);
CustomerJSON.AddPair('ship_block', xdwdsCustomers.FieldByName('ShipAddr').AsString);
CustomerJSON.AddPair('name', xdwdsCustomers.FieldByName('CompanyName').AsString);
CustomerJSON.AddPair('mode', 'ADD');
Utils.ShowSpinner('spinner');
Response := await(XDataWebClient1.RawInvokeAsync('ILookupService.ImportQBCustomer',
[customerJSON.ToString]));
notification := TJSObject(Response.Result);
customerID := string(notification['CustomerID']);
msg := string(notification['status']);
Utils.HideSpinner('spinner');
FViewMain.ViewAddCustomer(customerID, msg);
Close();
end;
procedure TFSelectCustomer.ApplyFilter; procedure TFSelectCustomer.ApplyFilter;
// filters the grid based on search textbox contents. // filters the grid based on search textbox contents.
var var
......
...@@ -13,8 +13,8 @@ object FViewCustomers: TFViewCustomers ...@@ -13,8 +13,8 @@ object FViewCustomers: TFViewCustomers
ElementID = 'lblentries' ElementID = 'lblentries'
ElementFont = efCSS ElementFont = efCSS
HeightStyle = ssAuto HeightStyle = ssAuto
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object btnAddCustomer: TWebButton object btnAddCustomer: TWebButton
Left = 12 Left = 12
...@@ -26,10 +26,10 @@ object FViewCustomers: TFViewCustomers ...@@ -26,10 +26,10 @@ object FViewCustomers: TFViewCustomers
ElementID = 'btnaddcustomer' ElementID = 'btnaddcustomer'
ElementFont = efCSS ElementFont = efCSS
HeightStyle = ssAuto HeightStyle = ssAuto
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
TabOrder = 6 TabOrder = 6
TabStop = False TabStop = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnClick = btnAddCustomerClick OnClick = btnAddCustomerClick
end end
object wcbPageSize: TWebComboBox object wcbPageSize: TWebComboBox
...@@ -41,9 +41,9 @@ object FViewCustomers: TFViewCustomers ...@@ -41,9 +41,9 @@ object FViewCustomers: TFViewCustomers
ElementID = 'wcbpagesize' ElementID = 'wcbpagesize'
ElementFont = efCSS ElementFont = efCSS
HeightStyle = ssAuto HeightStyle = ssAuto
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
Text = '50' Text = '50'
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnChange = wcbPageSizeChange OnChange = wcbPageSizeChange
ItemIndex = -1 ItemIndex = -1
Items.Strings = ( Items.Strings = (
...@@ -66,8 +66,8 @@ object FViewCustomers: TFViewCustomers ...@@ -66,8 +66,8 @@ object FViewCustomers: TFViewCustomers
Height = 15 Height = 15
Caption = 'Message' Caption = 'Message'
ElementID = 'view.login.message.label' ElementID = 'view.login.message.label'
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object btnCloseNotification: TWebButton object btnCloseNotification: TWebButton
Left = 96 Left = 96
...@@ -76,8 +76,8 @@ object FViewCustomers: TFViewCustomers ...@@ -76,8 +76,8 @@ object FViewCustomers: TFViewCustomers
Height = 25 Height = 25
ChildOrder = 1 ChildOrder = 1
ElementID = 'view.login.message.button' ElementID = 'view.login.message.button'
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
end end
object wdbtcCustomers: TWebDBTableControl object wdbtcCustomers: TWebDBTableControl
...@@ -129,10 +129,6 @@ object FViewCustomers: TFViewCustomers ...@@ -129,10 +129,6 @@ object FViewCustomers: TFViewCustomers
item item
DataField = 'NAME' DataField = 'NAME'
Title = 'Customer Name' Title = 'Customer Name'
end
item
DataField = 'START_DATE'
Title = 'Start Date'
end> end>
DataSource = wdsCustomers DataSource = wdsCustomers
end end
...@@ -143,8 +139,8 @@ object FViewCustomers: TFViewCustomers ...@@ -143,8 +139,8 @@ object FViewCustomers: TFViewCustomers
Height = 22 Height = 22
ChildOrder = 5 ChildOrder = 5
ElementID = 'edtfilter' ElementID = 'edtfilter'
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnChange = edtFilterChange OnChange = edtFilterChange
end end
object XDataWebClient1: TXDataWebClient object XDataWebClient1: TXDataWebClient
......
...@@ -18,9 +18,9 @@ object FViewMain: TFViewMain ...@@ -18,9 +18,9 @@ object FViewMain: TFViewMain
Caption = 'lblUsername' Caption = 'lblUsername'
ElementID = 'view.main.username' ElementID = 'view.main.username'
ElementPosition = epRelative ElementPosition = epRelative
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
Transparent = False Transparent = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object wllblUserProfile: TWebLinkLabel object wllblUserProfile: TWebLinkLabel
Left = 529 Left = 529
...@@ -28,8 +28,8 @@ object FViewMain: TFViewMain ...@@ -28,8 +28,8 @@ object FViewMain: TFViewMain
Width = 59 Width = 59
Height = 14 Height = 14
ElementID = 'dropdown.menu.userprofile' ElementID = 'dropdown.menu.userprofile'
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnClick = wllblUserProfileClick OnClick = wllblUserProfileClick
Caption = ' User Profile' Caption = ' User Profile'
end end
...@@ -39,8 +39,8 @@ object FViewMain: TFViewMain ...@@ -39,8 +39,8 @@ object FViewMain: TFViewMain
Width = 36 Width = 36
Height = 14 Height = 14
ElementID = 'dropdown.menu.logout' ElementID = 'dropdown.menu.logout'
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnClick = wllblLogoutClick OnClick = wllblLogoutClick
Caption = ' Logout' Caption = ' Logout'
end end
...@@ -50,8 +50,8 @@ object FViewMain: TFViewMain ...@@ -50,8 +50,8 @@ object FViewMain: TFViewMain
Width = 27 Width = 27
Height = 14 Height = 14
ElementID = 'dropdown.menu.home' ElementID = 'dropdown.menu.home'
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnClick = lblHomeClick OnClick = lblHomeClick
Caption = 'Home' Caption = 'Home'
end end
...@@ -63,9 +63,9 @@ object FViewMain: TFViewMain ...@@ -63,9 +63,9 @@ object FViewMain: TFViewMain
Caption = 'Koehler-Gibson' Caption = 'Koehler-Gibson'
ElementID = 'view.main.apptitle' ElementID = 'view.main.apptitle'
ElementPosition = epRelative ElementPosition = epRelative
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
Transparent = False Transparent = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object lblItemsList: TWebLinkLabel object lblItemsList: TWebLinkLabel
Left = 560 Left = 560
...@@ -74,8 +74,8 @@ object FViewMain: TFViewMain ...@@ -74,8 +74,8 @@ object FViewMain: TFViewMain
Height = 14 Height = 14
ElementID = 'dropdown.menu.itemlist' ElementID = 'dropdown.menu.itemlist'
ElementFont = efCSS ElementFont = efCSS
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnClick = lblItemsListClick OnClick = lblItemsListClick
Caption = 'Items' Caption = 'Items'
end end
...@@ -86,8 +86,8 @@ object FViewMain: TFViewMain ...@@ -86,8 +86,8 @@ object FViewMain: TFViewMain
Height = 14 Height = 14
ElementID = 'dropdown.menu.users' ElementID = 'dropdown.menu.users'
ElementFont = efCSS ElementFont = efCSS
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnClick = lblUsersClick OnClick = lblUsersClick
Caption = 'Users' Caption = 'Users'
end end
...@@ -101,8 +101,8 @@ object FViewMain: TFViewMain ...@@ -101,8 +101,8 @@ object FViewMain: TFViewMain
ElementFont = efCSS ElementFont = efCSS
ElementPosition = epRelative ElementPosition = epRelative
HeightStyle = ssAuto HeightStyle = ssAuto
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnClick = lblordersClick OnClick = lblordersClick
end end
object lblCustomers: TWebLabel object lblCustomers: TWebLabel
...@@ -115,8 +115,8 @@ object FViewMain: TFViewMain ...@@ -115,8 +115,8 @@ object FViewMain: TFViewMain
ElementFont = efCSS ElementFont = efCSS
ElementPosition = epRelative ElementPosition = epRelative
HeightStyle = ssAuto HeightStyle = ssAuto
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnClick = lblCustomersClick OnClick = lblCustomersClick
end end
object lblVersion: TWebLabel object lblVersion: TWebLabel
...@@ -129,8 +129,8 @@ object FViewMain: TFViewMain ...@@ -129,8 +129,8 @@ object FViewMain: TFViewMain
ElementFont = efCSS ElementFont = efCSS
ElementPosition = epRelative ElementPosition = epRelative
HeightStyle = ssAuto HeightStyle = ssAuto
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object lblQBInfo: TWebLabel object lblQBInfo: TWebLabel
Left = 552 Left = 552
...@@ -141,8 +141,8 @@ object FViewMain: TFViewMain ...@@ -141,8 +141,8 @@ object FViewMain: TFViewMain
ElementID = 'dropdown.menu.linktoqb' ElementID = 'dropdown.menu.linktoqb'
ElementFont = efCSS ElementFont = efCSS
HeightStyle = ssAuto HeightStyle = ssAuto
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnClick = lblQBInfoClick OnClick = lblQBInfoClick
end end
object WebPanel1: TWebPanel object WebPanel1: TWebPanel
...@@ -173,7 +173,7 @@ object FViewMain: TFViewMain ...@@ -173,7 +173,7 @@ object FViewMain: TFViewMain
ElementID = 'main.debugmemo' ElementID = 'main.debugmemo'
ElementPosition = epRelative ElementPosition = epRelative
Enabled = False Enabled = False
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
Lines.Strings = ( Lines.Strings = (
'WebMemo1') 'WebMemo1')
Role = 'null' Role = 'null'
...@@ -181,7 +181,7 @@ object FViewMain: TFViewMain ...@@ -181,7 +181,7 @@ object FViewMain: TFViewMain
SelStart = 0 SelStart = 0
ShowFocus = False ShowFocus = False
Visible = False Visible = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object WebMessageDlg1: TWebMessageDlg object WebMessageDlg1: TWebMessageDlg
Left = 47 Left = 47
...@@ -208,7 +208,7 @@ object FViewMain: TFViewMain ...@@ -208,7 +208,7 @@ object FViewMain: TFViewMain
'No to all' 'No to all'
'Help' 'Help'
'Close') 'Close')
Opacity = 0.200000000000000000 Opacity = 0.20000000000000000
end end
object XDataWebClient: TXDataWebClient object XDataWebClient: TXDataWebClient
Connection = DMConnection.ApiConnection Connection = DMConnection.ApiConnection
......
...@@ -60,7 +60,7 @@ type ...@@ -60,7 +60,7 @@ type
procedure ViewOrders(info: string); procedure ViewOrders(info: string);
procedure ViewCustomerList(info: string); procedure ViewCustomerList(info: string);
procedure ShowUserForm(Info: string); procedure ShowUserForm(Info: string);
procedure ViewAddCustomer(customerInfo, info: string); procedure ViewAddCustomer(custID, custQB_ID: string);
var var
search: string; search: string;
change: boolean; change: boolean;
...@@ -361,12 +361,12 @@ begin ...@@ -361,12 +361,12 @@ begin
end; end;
procedure TFViewMain.ViewAddCustomer(customerInfo: string; info: string); procedure TFViewMain.ViewAddCustomer(custID: string; custQB_ID: string);
begin begin
lblAppTitle.Caption := 'Koehler-Gibson Add Customer'; lblAppTitle.Caption := 'Koehler-Gibson Add Customer';
if Assigned(FChildForm) then if Assigned(FChildForm) then
FChildForm.Free; FChildForm.Free;
FChildForm := TFViewAddCustomer.CreateForm(WebPanel1.ElementID, customerInfo, info); FChildForm := TFViewAddCustomer.CreateForm(WebPanel1.ElementID, custID, custQB_ID);
end; end;
......
...@@ -13,9 +13,9 @@ object FQBInfo: TFQBInfo ...@@ -13,9 +13,9 @@ object FQBInfo: TFQBInfo
Font.Height = -24 Font.Height = -24
Font.Name = 'Segoe UI' Font.Name = 'Segoe UI'
Font.Style = [] Font.Style = []
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
ParentFont = False ParentFont = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object lblCompanyName: TWebLabel object lblCompanyName: TWebLabel
Left = 16 Left = 16
...@@ -28,9 +28,9 @@ object FQBInfo: TFQBInfo ...@@ -28,9 +28,9 @@ object FQBInfo: TFQBInfo
Font.Height = -16 Font.Height = -16
Font.Name = 'Segoe UI' Font.Name = 'Segoe UI'
Font.Style = [] Font.Style = []
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
ParentFont = False ParentFont = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object lblCompanyID: TWebLabel object lblCompanyID: TWebLabel
Left = 15 Left = 15
...@@ -43,9 +43,9 @@ object FQBInfo: TFQBInfo ...@@ -43,9 +43,9 @@ object FQBInfo: TFQBInfo
Font.Height = -16 Font.Height = -16
Font.Name = 'Segoe UI' Font.Name = 'Segoe UI'
Font.Style = [] Font.Style = []
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
ParentFont = False ParentFont = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object lblLastRefresh: TWebLabel object lblLastRefresh: TWebLabel
Left = 16 Left = 16
...@@ -58,9 +58,9 @@ object FQBInfo: TFQBInfo ...@@ -58,9 +58,9 @@ object FQBInfo: TFQBInfo
Font.Height = -16 Font.Height = -16
Font.Name = 'Segoe UI' Font.Name = 'Segoe UI'
Font.Style = [] Font.Style = []
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
ParentFont = False ParentFont = False
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
end end
object btnLinkToQB: TWebButton object btnLinkToQB: TWebButton
Left = 235 Left = 235
...@@ -69,8 +69,8 @@ object FQBInfo: TFQBInfo ...@@ -69,8 +69,8 @@ object FQBInfo: TFQBInfo
Height = 25 Height = 25
Caption = 'Link to QB' Caption = 'Link to QB'
ChildOrder = 3 ChildOrder = 3
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnClick = btnLinkToQBClick OnClick = btnLinkToQBClick
end end
object btnClose: TWebButton object btnClose: TWebButton
...@@ -80,8 +80,8 @@ object FQBInfo: TFQBInfo ...@@ -80,8 +80,8 @@ object FQBInfo: TFQBInfo
Height = 25 Height = 25
Caption = 'Close' Caption = 'Close'
ChildOrder = 3 ChildOrder = 3
HeightPercent = 100.000000000000000000 HeightPercent = 100.00000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.00000000000000000
OnClick = btnCloseClick OnClick = btnCloseClick
end end
object XDataWebClient1: TXDataWebClient object XDataWebClient1: TXDataWebClient
......
...@@ -24,6 +24,7 @@ type ...@@ -24,6 +24,7 @@ type
{ Private declarations } { Private declarations }
ClientID: string; ClientID: string;
[async] procedure GetQBInfo(); [async] procedure GetQBInfo();
[async] procedure GetQBLink();
public public
{ Public declarations } { Public declarations }
end; end;
...@@ -38,22 +39,8 @@ implementation ...@@ -38,22 +39,8 @@ implementation
uses View.Main, Utils; uses View.Main, Utils;
procedure TFQBInfo.btnLinkToQBClick(Sender: TObject); procedure TFQBInfo.btnLinkToQBClick(Sender: TObject);
var
qblink, redirectUri: string;
qbWindow: TJSWindow;
begin begin
qblink := 'https://appcenter.intuit.com/connect/oauth2'; GetQBLink();
qblink := qblink + '?client_id=' + ClientID;
qblink := qblink + '&response_type=code';
qblink := qblink + '&scope=com.intuit.quickbooks.accounting';
qblink := qblink + '&state=7';
redirectUri := DMConnection.AuthConnection.URL + 'AuthService/QBAuthorize';
qblink := qblink + '&redirect_uri=' + RedirectUri;
qbWindow := window.open('', '_blank');
if Assigned(qbWindow) then
qbWindow.location.href := qbLink;
Close();
end; end;
procedure TFQBInfo.WebFormCreate(Sender: TObject); procedure TFQBInfo.WebFormCreate(Sender: TObject);
...@@ -103,5 +90,29 @@ begin ...@@ -103,5 +90,29 @@ begin
end; end;
end; end;
procedure TFQBInfo.GetQBLink();
var
xdcResponse: TXDataClientResponse;
QBLinkObj: TJSObject;
QBLink: String;
qbWindow: TJSWindow;
begin
try
xdcResponse := await(XDataWebClient1.RawInvokeAsync('ILookupService.getQBLink', []));
QBLinkObj := TJSObject(xdcResponse.Result);
QBLink := String(QBLinkObj['value']);
console.log(QBLinkObj);
console.log(QBLink);
qbWindow := window.open('', '_blank');
if Assigned(qbWindow) then
qbWindow.location.href := QBLink;
Close();
except
on E: EXDataClientRequestException do
Utils.ShowErrorModal(E.ErrorResult.ErrorMessage);
end;
end;
end. end.
[Paths]
HtmlPath=C:\Projects\kgOrders\kgOrders\kgOrdersClient\TMSWeb\Debug
HtmlFile=index.html
DefaultURL=http://127.0.0.1:8000/webKGOrders
SingleInstance=0
Debug=0
DebugManager=C:\RADTools\TMS\Products\tms.webcore\Bin\Win32\TMSDBGManager.exe
URL=http://127.0.0.1:8000/$(ProjectName)
URLParams=
Browser=1
BrowserBin=
BrowserParams=
Electron=0
ElectronBuild=0
JSDebugger=0
...@@ -411,25 +411,10 @@ object ApiDatabase: TApiDatabase ...@@ -411,25 +411,10 @@ object ApiDatabase: TApiDatabase
Connection = ucKG Connection = ucKG
SQL.Strings = ( SQL.Strings = (
'SELECT USER_ID, NAME, STATUS from users ORDER BY NAME') 'SELECT USER_ID, NAME, STATUS from users ORDER BY NAME')
OnCalcFields = uqUsersCalcFields
Left = 318 Left = 318
Top = 252 Top = 252
object uqUsersUSER_ID: TIntegerField object uqUsersQB_ID: TStringField
FieldName = 'USER_ID' FieldName = 'QB_ID'
Required = True
end
object uqUsersNAME: TStringField
FieldName = 'NAME'
Size = 40
end
object uqUsersSTATUS: TStringField
FieldName = 'STATUS'
Size = 7
end
object uqUsersREPRESENTATIVE: TStringField
FieldKind = fkCalculated
FieldName = 'REPRESENTATIVE'
Calculated = True
end end
end end
end end
...@@ -113,12 +113,8 @@ type ...@@ -113,12 +113,8 @@ type
uqOrdersStatusScheduleUSER_ID: TLongWordField; uqOrdersStatusScheduleUSER_ID: TLongWordField;
uqOrdersStatusScheduleORDER_REVISION: TLongWordField; uqOrdersStatusScheduleORDER_REVISION: TLongWordField;
uqUsers: TUniQuery; uqUsers: TUniQuery;
uqUsersUSER_ID: TIntegerField; uqUsersQB_ID: TStringField;
uqUsersNAME: TStringField;
uqUsersSTATUS: TStringField;
uqUsersREPRESENTATIVE: TStringField;
procedure DataModuleCreate(Sender: TObject); procedure DataModuleCreate(Sender: TObject);
procedure uqUsersCalcFields(DataSet: TDataSet);
private private
{ Private declarations } { Private declarations }
public public
...@@ -166,10 +162,4 @@ begin ...@@ -166,10 +162,4 @@ begin
end; end;
procedure TApiDatabase.uqUsersCalcFields(DataSet: TDataSet);
begin
uqUsersREPRESENTATIVE.AsString := uqUsersNAME.AsString + '(' + uqUsersSTATUS.AsString + ')';
end;
end. end.
...@@ -20,9 +20,42 @@ const ...@@ -20,9 +20,42 @@ const
API_MODEL = 'Api'; API_MODEL = 'Api';
type type
TQBCustomer = class
public
CUSTOMER_ID: string;
NAME: string;
BILL_ADDRESS: string;
BILL_CITY: string;
BILL_STATE: string;
BILL_ZIP: string;
BILL_CONTACT: string;
BILL_ADDRESS_BLOCK: string;
QB_LIST_ID: string;
RepUser: string;
ship_block: string;
shipping_address: string;
city: string;
state: string;
zip: string;
contact: string;
end;
TQBCustomerItem = class
public
Id: string;
CompanyName: string;
BillAddr: string;
InKGOrders: boolean;
end;
TQBCustomerList = class
public
count: integer;
data: TList<TQBCustomerItem>;
end;
TQBInfo = class TQBInfo = class
public public
clientID: string;
CompanyName: string; CompanyName: string;
CompanyID: string; CompanyID: string;
connected: boolean; connected: boolean;
...@@ -120,7 +153,7 @@ type ...@@ -120,7 +153,7 @@ type
TAddressItem = class TAddressItem = class
Public Public
ADDRESS: string; ship_block: string;
shipping_address: string; shipping_address: string;
city: string; city: string;
state: string; state: string;
...@@ -145,9 +178,8 @@ type ...@@ -145,9 +178,8 @@ type
END_DATE: string; END_DATE: string;
QB_LIST_ID: string; QB_LIST_ID: string;
FFAX: string; FFAX: string;
REP_USER_ID: string; QB_TYPE: string;
SHIPPING_ADDRESS_LIST: TList<TAddressItem>; SHIPPING_ADDRESS_LIST: TList<TAddressItem>;
REP_USERS: TList<TUserItem>;
end; end;
TCustomerList = class TCustomerList = class
...@@ -492,12 +524,14 @@ type ...@@ -492,12 +524,14 @@ type
[HttpGet] function GenerateOrderCorrugatedPDF(orderID: string): string; [HttpGet] function GenerateOrderCorrugatedPDF(orderID: string): string;
[HttpGet] function GenerateOrderWebPDF(orderID: string): string; [HttpGet] function GenerateOrderWebPDF(orderID: string): string;
[HttpGet] function GenerateOrderCuttingPDF(orderID: string): string; [HttpGet] function GenerateOrderCuttingPDF(orderID: string): string;
[HttpGet] function getQBCustomers(): TJSONArray; [HttpGet] function getQBCustomers(): TQBCustomerList;
[HttpGet] function getQBItems(): TJSONArray; [HttpGet] function getQBItems(): TJSONArray;
[HttpGet] function GetRepUsers(): TList<TUserItem>; [HttpGet] function GetRepUsers(): TList<TUserItem>;
[HttpGet] function UpdateCustomer(QB_ID: string): TCustomerItem; [HttpGet] function UpdateCustomer(QB_ID: string): TCustomerItem;
[HttpGet] function UpdateItem(itemName: string): TItemItem; [HttpGet] function UpdateItem(itemName: string): TItemItem;
[HttpGet] function GetQBInfo(): TQBInfo; [HttpGet] function GetQBInfo(): TQBInfo;
[HttpGet] function GetQBLink(): string;
[HttpGet] function GetQBCustomer(QB_ID: string): TQBCustomer;
function AddUser(userInfo: string): string; function AddUser(userInfo: string): string;
......
...@@ -201,11 +201,19 @@ object fQB: TfQB ...@@ -201,11 +201,19 @@ object fQB: TfQB
Width = 982 Width = 982
Height = 153 Height = 153
Align = alClient Align = alClient
Color = clWhite
DrawingStyle = gdsClassic DrawingStyle = gdsClassic
FixedColor = clWhite FixedColor = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -12
Font.Name = 'Segoe UI'
Font.Style = []
Options = [goVertLine, goHorzLine, goRangeSelect, goFixedRowDefAlign]
ParentFont = False
TabOrder = 0 TabOrder = 0
GridLineColor = 13948116 GridLineColor = 15987699
GridFixedLineColor = 11250603 GridFixedLineColor = 15987699
OnClickCell = asgData2ClickCell OnClickCell = asgData2ClickCell
ActiveCellFont.Charset = DEFAULT_CHARSET ActiveCellFont.Charset = DEFAULT_CHARSET
ActiveCellFont.Color = 4474440 ActiveCellFont.Color = 4474440
...@@ -271,7 +279,7 @@ object fQB: TfQB ...@@ -271,7 +279,7 @@ object fQB: TfQB
FixedRowHeight = 22 FixedRowHeight = 22
FixedRowAlways = True FixedRowAlways = True
FixedFont.Charset = DEFAULT_CHARSET FixedFont.Charset = DEFAULT_CHARSET
FixedFont.Color = 3881787 FixedFont.Color = clBlack
FixedFont.Height = -11 FixedFont.Height = -11
FixedFont.Name = 'Segoe UI' FixedFont.Name = 'Segoe UI'
FixedFont.Style = [fsBold] FixedFont.Style = [fsBold]
...@@ -302,7 +310,7 @@ object fQB: TfQB ...@@ -302,7 +310,7 @@ object fQB: TfQB
PrintSettings.FooterFont.Name = 'Segoe UI' PrintSettings.FooterFont.Name = 'Segoe UI'
PrintSettings.FooterFont.Style = [] PrintSettings.FooterFont.Style = []
PrintSettings.PageNumSep = '/' PrintSettings.PageNumSep = '/'
SearchFooter.ColorTo = clNone SearchFooter.ColorTo = clWhite
SearchFooter.FindNextCaption = 'Find &next' SearchFooter.FindNextCaption = 'Find &next'
SearchFooter.FindPrevCaption = 'Find &previous' SearchFooter.FindPrevCaption = 'Find &previous'
SearchFooter.Font.Charset = DEFAULT_CHARSET SearchFooter.Font.Charset = DEFAULT_CHARSET
...@@ -322,7 +330,7 @@ object fQB: TfQB ...@@ -322,7 +330,7 @@ object fQB: TfQB
SortSettings.HeaderColorTo = clWhite SortSettings.HeaderColorTo = clWhite
SortSettings.HeaderMirrorColor = clWhite SortSettings.HeaderMirrorColor = clWhite
SortSettings.HeaderMirrorColorTo = clWhite SortSettings.HeaderMirrorColorTo = clWhite
Version = '9.1.6.4' Version = '9.2.2.0'
ColWidths = ( ColWidths = (
64 64
64 64
...@@ -648,7 +656,7 @@ object fQB: TfQB ...@@ -648,7 +656,7 @@ object fQB: TfQB
Left = 1 Left = 1
Top = 26 Top = 26
Width = 980 Width = 980
Height = 170 Height = 171
Caption = 'Memo1' Caption = 'Memo1'
DoubleBuffered = False DoubleBuffered = False
PageAppearance.BorderColor = clNone PageAppearance.BorderColor = clNone
...@@ -713,12 +721,13 @@ object fQB: TfQB ...@@ -713,12 +721,13 @@ object fQB: TfQB
Left = 2 Left = 2
Top = 35 Top = 35
Width = 976 Width = 976
Height = 133 Height = 134
Align = alClient Align = alClient
Lines.Strings = ( Lines.Strings = (
'') '')
ScrollBars = ssVertical ScrollBars = ssVertical
TabOrder = 0 TabOrder = 0
ExplicitHeight = 133
end end
object Panel2: TPanel object Panel2: TPanel
Left = 2 Left = 2
...@@ -742,7 +751,7 @@ object fQB: TfQB ...@@ -742,7 +751,7 @@ object fQB: TfQB
Left = 1 Left = 1
Top = 26 Top = 26
Width = 980 Width = 980
Height = 170 Height = 171
Caption = 'QB API Memo' Caption = 'QB API Memo'
DoubleBuffered = False DoubleBuffered = False
PageAppearance.BorderColor = clNone PageAppearance.BorderColor = clNone
...@@ -807,13 +816,14 @@ object fQB: TfQB ...@@ -807,13 +816,14 @@ object fQB: TfQB
Left = 2 Left = 2
Top = 35 Top = 35
Width = 976 Width = 976
Height = 133 Height = 134
Align = alClient Align = alClient
Lines.Strings = ( Lines.Strings = (
'Memo2') 'Memo2')
ScrollBars = ssVertical ScrollBars = ssVertical
TabOrder = 0 TabOrder = 0
WordWrap = False WordWrap = False
ExplicitHeight = 133
end end
object Panel3: TPanel object Panel3: TPanel
Left = 2 Left = 2
...@@ -837,7 +847,7 @@ object fQB: TfQB ...@@ -837,7 +847,7 @@ object fQB: TfQB
Left = 1 Left = 1
Top = 26 Top = 26
Width = 980 Width = 980
Height = 170 Height = 171
Caption = 'AdvOfficePager13' Caption = 'AdvOfficePager13'
DoubleBuffered = False DoubleBuffered = False
PageAppearance.BorderColor = clNone PageAppearance.BorderColor = clNone
...@@ -945,11 +955,19 @@ object fQB: TfQB ...@@ -945,11 +955,19 @@ object fQB: TfQB
Width = 982 Width = 982
Height = 205 Height = 205
Align = alClient Align = alClient
Color = clWhite
DrawingStyle = gdsClassic DrawingStyle = gdsClassic
FixedColor = clWhite FixedColor = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -12
Font.Name = 'Segoe UI'
Font.Style = []
Options = [goVertLine, goHorzLine, goRangeSelect, goFixedRowDefAlign]
ParentFont = False
TabOrder = 0 TabOrder = 0
GridLineColor = 13948116 GridLineColor = 15987699
GridFixedLineColor = 11250603 GridFixedLineColor = 15987699
OnClickCell = asgDataClickCell OnClickCell = asgDataClickCell
ActiveCellFont.Charset = DEFAULT_CHARSET ActiveCellFont.Charset = DEFAULT_CHARSET
ActiveCellFont.Color = 4474440 ActiveCellFont.Color = 4474440
...@@ -1015,7 +1033,7 @@ object fQB: TfQB ...@@ -1015,7 +1033,7 @@ object fQB: TfQB
FixedRowHeight = 22 FixedRowHeight = 22
FixedRowAlways = True FixedRowAlways = True
FixedFont.Charset = DEFAULT_CHARSET FixedFont.Charset = DEFAULT_CHARSET
FixedFont.Color = 3881787 FixedFont.Color = clBlack
FixedFont.Height = -11 FixedFont.Height = -11
FixedFont.Name = 'Segoe UI' FixedFont.Name = 'Segoe UI'
FixedFont.Style = [fsBold] FixedFont.Style = [fsBold]
...@@ -1046,7 +1064,7 @@ object fQB: TfQB ...@@ -1046,7 +1064,7 @@ object fQB: TfQB
PrintSettings.FooterFont.Name = 'Segoe UI' PrintSettings.FooterFont.Name = 'Segoe UI'
PrintSettings.FooterFont.Style = [] PrintSettings.FooterFont.Style = []
PrintSettings.PageNumSep = '/' PrintSettings.PageNumSep = '/'
SearchFooter.ColorTo = clNone SearchFooter.ColorTo = clWhite
SearchFooter.FindNextCaption = 'Find &next' SearchFooter.FindNextCaption = 'Find &next'
SearchFooter.FindPrevCaption = 'Find &previous' SearchFooter.FindPrevCaption = 'Find &previous'
SearchFooter.Font.Charset = DEFAULT_CHARSET SearchFooter.Font.Charset = DEFAULT_CHARSET
...@@ -1066,7 +1084,7 @@ object fQB: TfQB ...@@ -1066,7 +1084,7 @@ object fQB: TfQB
SortSettings.HeaderColorTo = clWhite SortSettings.HeaderColorTo = clWhite
SortSettings.HeaderMirrorColor = clWhite SortSettings.HeaderMirrorColor = clWhite
SortSettings.HeaderMirrorColorTo = clWhite SortSettings.HeaderMirrorColorTo = clWhite
Version = '9.1.6.4' Version = '9.2.2.0'
ColWidths = ( ColWidths = (
64 64
64 64
......
[Settings] [Settings]
MemoLogLevel=3 MemoLogLevel=3
FileLogLevel=4 FileLogLevel=4
webClientVersion=0.9.13 webClientVersion=0.9.14.1
LogFileNum=100 LogFileNum=105
[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=1 Enabled=1
CompanyID=9341454336461805 CompanyID=9341454336461805
ClientID=ABYqlDx1EsacZYXvHIJ7RDB7zmnQdwABU3fwQLIZPmBgU0VW1P --BaseUrl=https://sandbox-quickbooks.api.intuit.com
ClientSecret=PM7OnvQWsgOqjWfDpZAnyRttDN9446Am6d85pDxr --ClientID=ABYqlDx1EsacZYXvHIJ7RDB7zmnQdwABU3fwQLIZPmBgU0VW1P
RefreshToken=RT1-246-H0-1774553264l4plin9y3f32d4cm7ncw --ClientSecret=PM7OnvQWsgOqjWfDpZAnyRttDN9446Am6d85pDxr
AccessToken=eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwieC5vcmciOiJIMCJ9..HDUyB-xbInAP_lJcZiix5w.REb-0D5HZfvm8UE7cWifSiXZTJK0_3Bpp44ybTT6-9h7fT1zA0-oMzxUHO-bL4tTWuVnJODgRHfHAadOml13dMTKOQ4msyW3Y5g-BF91aoQZi-HKw35w_gClKJ6zSn99AIwnffo_IhkotW8FY1wC7gRkDzHsFMajOWQWmji_EsDblGQW97_eW8Z6rwUCbsoWpankR5JOcZtvD5j9dmzQdaPkKJXqlB_6kLC-WXEpySA7heWsNfA1iq3Bn56J4C6_HxvpFZ8i-gWUE42-Ls1uhGG6EQw9vjDFRojG6Fvv0oK_bbKSZ24NqerGoeFmlWTHoCl6pQXX12DZgmJp3vwCLyAzw8dTFzRH4QKoN7D5NAQ3rp2LtzpIBjiuBxJIvr20GSDO6lgNzXGusNffmkJC5cPxh7NmwzbubFw6yL8P7ZGKIdviIaHPS0u5pGc3Bw_qJ0bKaRXTxMmyIAUR3BtExZMzHLN6pVij8R9rpEtGvPo.tA4XoJdViQb1JKoL9eDevw --RedirectUri=http://localhost:2004/kgOrders/auth/AuthService/QBAuthorize
LastRefresh=12/15/2025
BaseUrl=https://quickbooks.api.intuit.com/v3
ClientID=ABXLUuBrwvodIZMtaPcBg9acYBPafUxP80qk5aQ9HOAw1i2W3s
ClientSecret=a0DSQZdXH1FRTAFhpp2igeNFKxu7kPlzt0az7nbQ
RedirectUri=https://webapps.em-sys.net/kgOrdersTest/auth/AuthService/QBAuthorize
RefreshToken=RT1-143-H0-1783193667426ef30b5u81echlyi4h
AccessToken=eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwieC5vcmciOiJIMCJ9..aoofv422rMR8s5qxVjkk0A.n0SzfMojJdSwS6plIGJO3gT2gM2_xEGEFr1ZDBqFWA40XoHTixNhZ0HvndlcyDiaofP8WBDH7GIG2zAjVK67winsZ02b9ylTE9PnMWCgl2rskMccDeP9yDabJjgM7113cCoMHj6m93g1sQu2tKH5zV_5wjj6Q1KwcJgs8fmutdWkpsYD-DIn46ySVDjPaDa9EN4lLMPD5ip20rF0p_Mol-Fh4zRRhMF0BImRxtgHGfFBHAtntd0wBQ35vYlyfnG-FnK25NFxVhNQchA3JpYaLIw_qLaZ7LjHIlOhX0S64ROUq80LLwjCpctHFX-YYFUAL4G0DSe22cz9RgJmxLy-PvUAnpCia3NPeft0Vtg2Ysg1-WH8mEJb3tQWZOLaEKecNO7_SsA4Xdfk5pl0y0ukk8KQHQmPwsaYP1OAd9C6LFDqyyIXY6ULZigPUiiHRHc0-pcvFLuz_kaovO9-kapokXO6WhL9Fc9GUgn1Sn6PhT4.6r8dJQ6gVezO3SLIssoNBw
LastRefresh=3/26/2026 11:28:04 AM
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