Commit 95296f5f by Cam Hayes

Customers form is complete and linked with quickbooks

parent 45495f71
......@@ -117,6 +117,7 @@ type
function VerifyCustomer(): boolean;
function VerifyAddress(): boolean;
procedure Clear();
procedure ShowSelectCustomerForm();
var
customerID: string;
notification: string;
......@@ -134,7 +135,7 @@ implementation
{$R *.dfm}
uses View.Main, View.Customers;
uses View.Main, View.Customers, View.SelectCustomer;
procedure TFViewAddCustomer.Clear();
// Clears the shipping address fields.
......@@ -148,6 +149,28 @@ begin
edtFirstLine.Text := '';
end;
procedure TFViewAddCustomer.ShowSelectCustomerForm();
// displays the add order pop-up so the user can choose a customer
var
newform: TFSelectCustomer;
begin
newform := TFSelectCustomer.CreateNew;
newform.Caption := 'Select Customer and Order Type';
newForm.Popup := True;
newForm.Border := fbDialog;
// used to manage Back button handling to close subform
window.location.hash := 'subform';
newform.ShowModal(
procedure(AValue: TModalResult)
begin
end
);
end;
procedure TFViewAddCustomer.DelAddress;
// Deletes a shipping address.
var
......@@ -210,7 +233,7 @@ end;
procedure TFViewAddCustomer.btnAddClick(Sender: TObject);
// Takes the user to the Add Customer Page.
begin
FViewMain.ViewAddCustomer('', '');
ShowSelectCustomerForm();
end;
procedure TFViewAddCustomer.btnCancelClick(Sender: TObject);
......@@ -601,16 +624,16 @@ begin
memoAddressBlock.Text := string(customer['staff_fields_invoice_to']);
if ( not xdwdsShipTo.IsEmpty ) then
begin
edtShippingAddress.Text := xdwdsShipTo.FieldByName('shipping_address').AsString;
edtShippingCity.Text := xdwdsShipTo.FieldByName('city').AsString;
edtShippingState.Text := xdwdsShipTo.FieldByName('state').AsString;
edtShippingZip.Text := xdwdsShipTo.FieldByName('zip').AsString;
edtShippingContact.Text := xdwdsShipTo.FieldByName('contact').AsString;
memoShipBlock.Text := xdwdsShipTo.FieldByName('ADDRESS').AsString;
edtFirstLine.Text := memoShipBlock.Lines[0];
end;
edtShippingAddress.Text := xdwdsShipTo.FieldByName('shipping_address').AsString;
edtShippingCity.Text := xdwdsShipTo.FieldByName('city').AsString;
edtShippingState.Text := xdwdsShipTo.FieldByName('state').AsString;
edtShippingZip.Text := xdwdsShipTo.FieldByName('zip').AsString;
edtShippingContact.Text := xdwdsShipTo.FieldByName('contact').AsString;
memoShipBlock.Text := xdwdsShipTo.FieldByName('ADDRESS').AsString;
if memoShipBlock.Lines.Count > 0 then
edtFirstLine.Text := memoShipBlock.Lines[0]
else
edtFirstLine.Text := '';
end;
......
......@@ -12,7 +12,7 @@ object FAddOrder: TFAddOrder
WidthPercent = 100.000000000000000000
end
object WebLabel2: TWebLabel
Left = 143
Left = 135
Top = 81
Width = 113
Height = 15
......@@ -20,6 +20,15 @@ object FAddOrder: TFAddOrder
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object WebLabel3: TWebLabel
Left = 283
Top = 81
Width = 134
Height = 15
Caption = 'Selected Customer Name'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object edtSearch: TWebEdit
Left = 4
Top = 102
......@@ -30,7 +39,7 @@ object FAddOrder: TFAddOrder
OnChange = edtSearchChange
end
object edtID: TWebEdit
Left = 143
Left = 135
Top = 102
Width = 142
Height = 22
......@@ -220,8 +229,8 @@ object FAddOrder: TFAddOrder
OnClick = cbWebPlateClick
end
object btnCancel: TWebButton
Left = 436
Top = 105
Left = 542
Top = 101
Width = 96
Height = 25
Caption = 'Cancel'
......@@ -231,8 +240,8 @@ object FAddOrder: TFAddOrder
OnClick = btnCancelClick
end
object btnConfirm: TWebButton
Left = 328
Top = 105
Left = 436
Top = 101
Width = 96
Height = 25
Caption = 'Select'
......@@ -273,6 +282,16 @@ object FAddOrder: TFAddOrder
TabOrder = 1
WidthPercent = 100.000000000000000000
end
object edtName: TWebEdit
Left = 283
Top = 102
Width = 142
Height = 22
ChildOrder = 1
Enabled = False
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection
Left = 780
......
......@@ -33,6 +33,8 @@ type
edtNotification: TWebEdit;
xdwdsCustomersstaff_fields_invoice_to: TStringField;
xdwdsCustomersCUSTOMER_ID: TIntegerField;
WebLabel3: TWebLabel;
edtName: TWebEdit;
procedure WebFormShow(Sender: TObject);
procedure edtSearchChange(Sender: TObject);
procedure cbCorrugatedPlateClick(Sender: TObject);
......@@ -185,6 +187,7 @@ end;
procedure TFAddOrder.TMSFNCGrid1CellClick(Sender: TObject; ACol, ARow: Integer);
begin
edtID.Text := TMSFNCGrid1.Cells[1, ARow];
edtName.Text := TMSFNCGrid1.Cells[2, ARow];
DBID := TMSFNCGrid1.Cells[0, ARow];
end;
......
......@@ -221,7 +221,6 @@ end;
procedure TFViewCustomers.btnAddCustomerClick(Sender: TObject);
begin
ShowSelectCustomerForm();
//FViewMain.ViewAddCustomer(string(notification['CustomerID']), string(notification['status']));
end;
procedure TFViewCustomers.edtFilterChange(Sender: TObject);
......
......@@ -13,7 +13,7 @@ object FSelectCustomer: TFSelectCustomer
WidthPercent = 100.000000000000000000
end
object WebLabel2: TWebLabel
Left = 143
Left = 279
Top = 81
Width = 134
Height = 15
......@@ -21,6 +21,15 @@ object FSelectCustomer: TFSelectCustomer
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object WebLabel3: TWebLabel
Left = 131
Top = 81
Width = 113
Height = 15
Caption = 'Selected Customer ID'
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object edtSearch: TWebEdit
Left = 4
Top = 102
......@@ -30,8 +39,8 @@ object FSelectCustomer: TFSelectCustomer
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object edtID: TWebEdit
Left = 143
object edtName: TWebEdit
Left = 279
Top = 102
Width = 142
Height = 22
......@@ -195,13 +204,11 @@ object FSelectCustomer: TFSelectCustomer
LeftCol = 0
ScrollMode = scmItemScrolling
DesignTimeSampleData = True
OnCellDblClick = TMSFNCGrid1CellDblClick
ExplicitLeft = 12
ExplicitTop = 185
OnCellClick = TMSFNCGrid1CellClick
end
object btnCancel: TWebButton
Left = 436
Top = 105
Left = 556
Top = 101
Width = 96
Height = 25
Caption = 'Cancel'
......@@ -210,8 +217,8 @@ object FSelectCustomer: TFSelectCustomer
WidthPercent = 100.000000000000000000
end
object btnConfirm: TWebButton
Left = 328
Top = 105
Left = 440
Top = 101
Width = 96
Height = 25
Caption = 'Select'
......@@ -241,10 +248,20 @@ object FSelectCustomer: TFSelectCustomer
TabOrder = 1
WidthPercent = 100.000000000000000000
end
object edtID: TWebEdit
Left = 131
Top = 102
Width = 142
Height = 22
ChildOrder = 1
Enabled = False
HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000
end
object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection
Left = 560
Top = 61
Left = 630
Top = 47
end
object xdwdsCustomers: TXDataWebDataSet
Connection = DMConnection.ApiConnection
......@@ -289,6 +306,9 @@ object FSelectCustomer: TFSelectCustomer
object xdwdsCustomersBillAddrZip: TStringField
FieldName = 'BillAddrZip'
end
object xdwdsCustomersInKGOrders: TBooleanField
FieldName = 'In KGOrders'
end
end
object wdsCustomers: TWebDataSource
DataSet = xdwdsCustomers
......
......@@ -17,7 +17,7 @@ type
WebLabel1: TWebLabel;
WebLabel2: TWebLabel;
edtSearch: TWebEdit;
edtID: TWebEdit;
edtName: TWebEdit;
TMSFNCGrid1: TTMSFNCGrid;
btnCancel: TWebButton;
btnConfirm: TWebButton;
......@@ -38,10 +38,14 @@ type
xdwdsCustomersBillAddrCity: TStringField;
xdwdsCustomersBillAddrState: TStringField;
xdwdsCustomersBillAddrZip: TStringField;
WebLabel3: TWebLabel;
edtID: TWebEdit;
xdwdsCustomersInKGOrders: TBooleanField;
procedure WebFormCreate(Sender: TObject);
procedure WebFormShow(Sender: TObject);
procedure TMSFNCGrid1CellDblClick(Sender: TObject; ACol, ARow: Integer);
procedure btnConfirmClick(Sender: TObject);
procedure TMSFNCGrid1CellClick(Sender: TObject; ACol, ARow: Integer);
private
{ Private declarations }
[Async] procedure GetCustomers();
......@@ -56,8 +60,7 @@ var
implementation
{$R *.dfm
}
{$R *.dfm}
uses View.Main;
......@@ -83,7 +86,10 @@ begin
if edtID.Text = '' then
edtNotification.Text := 'Please Select a Customer'
else
begin
xdwdsCustomers.Locate('Id', edtID.Text, []);
SendCustomerToServer();
end;
end;
[async] procedure TFSelectCustomer.getCustomers();
......@@ -124,9 +130,9 @@ begin
TMSFNCGrid1.ColumnCount := 4;
TMSFNCGrid1.RowCount := 1;
TMSFNCGrid1.Cells[0, 0] := 'Quickbooks ID';
TMSFNCGrid1.Cells[1, 0] := 'Customer ID';
TMSFNCGrid1.Cells[2, 0] := 'Customer Name';
TMSFNCGrid1.Cells[3, 0] := 'Address';
TMSFNCGrid1.Cells[1, 0] := 'Customer Name';
TMSFNCGrid1.Cells[2, 0] := 'Address';
TMSFNCGrid1.Cells[3, 0] := 'In KGOrders';
// Populate the grid with data from the dataset
xdwdsCustomers.First;
......@@ -136,9 +142,9 @@ begin
begin
TMSFNCGrid1.RowCount := RowIndex + 1;
TMSFNCGrid1.Cells[0, RowIndex] := xdwdsCustomers.FieldByName('Id').AsString;
// TMSFNCGrid1.Cells[1, RowIndex] := xdwdsCustomers.FieldByName('SHORT_NAME').AsString;
TMSFNCGrid1.Cells[2, RowIndex] := xdwdsCustomers.FieldByName('CompanyName').AsString;
TMSFNCGrid1.Cells[3, RowIndex] := xdwdsCustomers.FieldByName('BillAddr').AsString;
TMSFNCGrid1.Cells[1, RowIndex] := xdwdsCustomers.FieldByName('CompanyName').AsString;
TMSFNCGrid1.Cells[2, RowIndex] := xdwdsCustomers.FieldByName('BillAddr').AsString;
TMSFNCGrid1.Cells[3, RowIndex] := xdwdsCustomers.FieldByName('In KGOrders').AsString;
Inc(RowIndex);
xdwdsCustomers.Next;
end;
......@@ -148,6 +154,13 @@ begin
end;
end;
procedure TFSelectCustomer.TMSFNCGrid1CellClick(Sender: TObject; ACol,
ARow: Integer);
begin
edtID.Text := TMSFNCGrid1.Cells[0, ARow];
edtName.Text := TMSFNCGrid1.Cells[1, ARow];
end;
procedure TFSelectCustomer.TMSFNCGrid1CellDblClick(Sender: TObject; ACol,
ARow: Integer);
begin
......
......@@ -43,6 +43,8 @@ object FData: TFData
Lines.Strings = (
'Memo1')
TabOrder = 1
ExplicitLeft = -2
ExplicitTop = 435
end
object DBAdvGrid1: TDBAdvGrid
Left = 6
......@@ -1602,8 +1604,8 @@ object FData: TFData
object uqWeb: TUniQuery
SQL.Strings = (
'select * from web_plate_orders')
Left = 745
Top = 464
Left = 743
Top = 476
object uqWebORDER_ID: TIntegerField
FieldName = 'ORDER_ID'
Required = True
......
......@@ -23,13 +23,104 @@ type
asgData: TAdvStringGrid;
Button3: TButton;
Button4: TButton;
Button5: TButton;
uq: TUniQuery;
uqORDER_ID: TIntegerField;
uqCOMPANY_ID: TIntegerField;
uqUSER_ID: TIntegerField;
uqORDER_DATE: TDateTimeField;
uqSTART_DATE: TDateField;
uqEND_DATE: TDateField;
uqORDER_STATUS: TStringField;
uqSCHED_JSON: TStringField;
uqstaff_fields_order_date: TDateField;
uqstaff_fields_proof_date: TDateField;
uqstaff_fields_ship_date: TDateField;
uqstaff_fields_ship_via: TStringField;
uqstaff_fields_price: TStringField;
uqstaff_fields_invoice_to: TStringField;
uqstaff_fields_invoice_attention: TStringField;
uqstaff_fields_ship_to: TStringField;
uqstaff_fields_ship_attention: TStringField;
uqstaff_fields_po_number: TStringField;
uqstaff_fields_job_name: TStringField;
uqstaff_fields_art_due: TDateField;
uqstaff_fields_plate_due: TDateField;
uqplates_job_number: TStringField;
uqsupplied_by_customer_b_w_or_co: TStringField;
uqsupplied_by_customer_plates: TStringField;
uqsupplied_by_customer_sample: TStringField;
uqsupplied_by_customer_dimension: TStringField;
uqsupplied_by_customer_other: TStringField;
uqsupplied_by_customer_disk: TStringField;
uqsupplied_by_customer_e_mail: TStringField;
uqsupplied_by_customer_ftp: TStringField;
uqplates_plate_material: TStringField;
uqplates_thickness: TStringField;
uqsupplied_by_customer_total_inc: TStringField;
uqsupplied_by_customer_sheets_us: TStringField;
uqsupplied_by_customer_initials: TStringField;
uqproofing_pdf: TStringField;
uqproofing_pdf_to: TStringField;
uqproofing_pdf_date_1: TDateField;
uqproofing_pdf_date_2: TDateField;
uqproofing_pdf_date_3: TDateField;
uqproofing_full_size_ink_jet_for: TStringField;
uqproofing_ink_jet_to: TStringField;
uqproofing_ink_jet_to_2: TStringField;
uqproofing_ink_jet_date_1: TDateField;
uqproofing_ink_jet_date_2: TDateField;
uqproofing_ink_jet_date_3: TDateField;
uqproofing_color_contract: TStringField;
uqproofing_color_contrac_to: TStringField;
uqproofing_color_contrac_date_1: TDateField;
uqproofing_color_contrac_date_2: TDateField;
uqproofing_digital_color_key: TStringField;
uqproofing_digital_color_to: TStringField;
uqproofing_digital_color_date_1: TDateField;
uqquantity_and_colors_press_name: TStringField;
uqquantity_and_colors_anilox_info: TStringField;
uqplate_marks_microdots: TStringField;
uqplate_marks_microdots_comments: TStringField;
uqplate_marks_crosshairs: TStringField;
uqplate_marks_crosshairs_comments: TStringField;
uqplate_marks_color_bars: TStringField;
uqplate_marks_color_bars_comments: TStringField;
uqplate_marks_other: TStringField;
uqplate_marks_other_comments: TStringField;
uqprint_orientation_print_orient: TStringField;
uqlayout_around: TStringField;
uqlayout_accross: TStringField;
uqlayout_surface_print: TStringField;
uqlayout_reverse_print: TStringField;
uqlayout_cylinder_repeat: TStringField;
uqlayout_cutoff_dimension: TStringField;
uqlayout_pitch: TStringField;
uqlayout_teeth: TStringField;
uqlayout_bleed: TStringField;
uqlayout_cutback: TStringField;
uqlayout_minimum_trap_dim: TStringField;
uqlayout_maximum_trap_dim: TStringField;
uqupc_size: TStringField;
uqupc_bar_width_reduction: TStringField;
uqquantity_and_colors_qty_colors: TStringField;
uqgeneral_comments: TStringField;
uqstaff_fields_quickbooks_item: TStringField;
uqstaff_fields_quantity: TStringField;
uqupc_distortion_percent: TStringField;
uqupc_distortion_amount: TStringField;
uqstaff_fields_art_location: TStringField;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
strict private
ordersDB: TApiDatabase;
httpReqTokenRefresh: TWebHttpRequest;
var
......@@ -51,7 +142,7 @@ var
implementation
uses
Common.Logging;
Common.Logging, uLibrary;
{$R *.dfm}
......@@ -130,13 +221,13 @@ begin
restRequest.Execute;
memo1.Lines.Add(restresponse.Content);
//memo1.Lines.Add(restresponse.Content);
jsValue := restResponse.JSONValue;
jsObj := TJSONObject(jsValue);
Memo2.Lines.Add(res);
Memo2.Lines.Add( jsObj.Format(2) );
//Memo2.Lines.Add(res);
Memo1.Lines.Add( jsObj.Format(2) );
// CustomerList := TJSONArray( TJSONObject( jsObj.GetValue('QueryResponse') ).GetValue('Customer')) ;
......@@ -190,13 +281,13 @@ begin
restRequest.Execute;
memo1.Lines.Add(restresponse.Content);
//memo1.Lines.Add(restresponse.Content);
jsValue := restResponse.JSONValue;
jsObj := TJSONObject(jsValue);
Memo2.Lines.Add(res);
Memo2.Lines.Add( jsObj.Format(2) );
//Memo2.Lines.Add(res);
Memo1.Lines.Add( jsObj.Format(2) );
//CustomerList := TJSONArray(restResponse.JSONValue);
// CustomerList := TJSONArray( TJSONObject( jsObj.GetValue('QueryResponse') ).GetValue('Customer')) ;
......@@ -208,6 +299,27 @@ begin
restResponse.Free;
end;
procedure TfQB.Button5Click(Sender: TObject);
var
SQL: string;
count: integer;
begin
SQL := 'SELECT c.CUSTOMER_ID, c.SHORT_NAME, c.NAME FROM customers c ' +
'WHERE EXISTS (SELECT 1 FROM corrugated_plate_orders cpo WHERE cpo.COMPANY_ID = c.CUSTOMER_ID) '+
'OR EXISTS (SELECT 1 FROM web_plate_orders wpo WHERE wpo.COMPANY_ID = c.CUSTOMER_ID) ORDER BY c.SHORT_NAME';
doQuery(ordersDB.UniQuery1, SQL);
while not ordersDB.UniQuery1.Eof do
begin
Memo2.Lines.Add(ordersDB.UniQuery1.FieldByName('CUSTOMER_ID').AsString + ', ' + ordersDB.UniQuery1.FieldByName('SHORT_NAME').AsString + ', ' + ordersDB.UniQuery1.FieldByName('NAME').AsString);
OrdersDB.UniQuery1.Next;
count := count + 1;
end;
Memo2.Lines.Add('Showing ' + IntToStr(count) + ' entries');
end;
procedure TfQB.getCustomers();
var
restClient: TRESTClient;
......@@ -260,43 +372,13 @@ begin
jsValue := restResponse.JSONValue;
jsObj := TJSONObject(jsValue);
{Memo2.Lines.Add(res);
Memo2.Lines.Add( jsObj.Format(2) ); }
Memo2.Lines.Add(res);
Memo2.Lines.Add( jsObj.Format(2) );
//CustomerList := TJSONArray(restResponse.JSONValue);
CustomerList := TJSONArray( TJSONObject( jsObj.GetValue('QueryResponse') ).GetValue('Customer')) ;
ModifiedList := TJSONArray.Create;
for I := 0 to CustomerList.Count - 1 do
begin
Customer := CustomerList.Items[I] as TJSONObject;
ParsedCustomer := TJSONObject.Create;
try
// Directly add values without cloning
ParsedCustomer.AddPair('id', Customer.GetValue('Id'));
ParsedCustomer.AddPair('name', Customer.GetValue('DisplayName'));
if Customer.GetValue('BillAddr') <> nil then
begin
BillAddr := Customer.GetValue('BillAddr') as TJSONObject;
ParsedCustomer.AddPair('BillAddr_line1', BillAddr.GetValue('Line1', ''));
ParsedCustomer.AddPair('BillAddr_City', BillAddr.GetValue('City', ''));
ParsedCustomer.AddPair('BillAddr_State', BillAddr.GetValue('CountrySubDivisionCode', ''));
ParsedCustomer.AddPair('BillAddr_Zip', BillAddr.GetValue('PostalCode', ''));
ParsedCustomer.AddPair('BillAddr', BillAddr.GetValue('Line1', '') + ', '
+ BillAddr.GetValue('City', '') + ', '
+ BillAddr.GetValue('CountrySubDivisionCode', '') + ' '
+ BillAddr.GetValue('PostalCode', '') );
end;
except
ParsedCustomer.Free;
raise;
end;
end;
LoadJSONArray( ModifiedList );
LoadJSONArray( CustomerList );
restClient.Free;
restRequest.Free;
......@@ -326,6 +408,8 @@ procedure TfQB.FormCreate(Sender: TObject);
var
iniFile: TIniFile;
begin
inherited;
ordersDB := TApiDatabase.Create(nil);
iniFile := TIniFile.Create( ExtractFilePath(Application.ExeName) + 'kgOrdersServer.ini' );
Client := iniFile.ReadString('Quickbooks', 'ClientID', '');
Secret := iniFile.ReadString('Quickbooks', 'ClientSecret', '');
......@@ -333,6 +417,12 @@ begin
RefreshToken := iniFile.ReadString('Quickbooks', 'RefreshToken', '');
end;
procedure TfQB.FormDestroy(Sender: TObject);
begin
ordersDB.Free;
inherited;
end;
function TfQB.RefreshAccessToken: string;
// Refresh Token changes so make sure to save refresh token.
var
......
......@@ -2,7 +2,7 @@
MemoLogLevel=3
FileLogLevel=5
webClientVersion=0.9.2
LogFileNum=596
LogFileNum=621
[Database]
Server=192.168.159.131
......@@ -17,6 +17,6 @@ Password=emsys01
CompanyID=9341454272655710
ClientID=ABgO14uvjh8XqLud7spQ8lkb98AUpcdA7HbyMJfCAtl65sQ5yy
ClientSecret=bQ06TRemHeAGFzVHRaTUvUoBU9jpU9itK6MOMgqN
RefreshToken=RT1-208-H0-17567544350xgx6z1cqtacxchwp91p
AccessToken=eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwieC5vcmciOiJIMCJ9..7j1C_IbyEFT7N_dCC4YUMg.PgS3pkfr9Ze_N2m-D-GlXCZOHoAcCyN0Oym1nJpozlVqoMmEr340Oc8Qr3mcvWVyv1OxWx0kiVJMPWZ-gHazOP80IypMLc7e9HZPYm0qYbwex_9JGIfZq0vQX1Y6oJQSTM9h-v_oGIN_5b7hFMLzVPCPLwXMcimXLqaXEN9b-AGX2La-FeahLDz6MmrGL-HoYB-4ZintdaxWE4NYXEg71HgecTrfkxbNlJQBziGQgnXVPmwuyqI0gJKGIL1w3X651nGcZMB_nuY0y__BPH2zOnzuibqGylOwr9ZuFXobkjgvtqllRE0JgMbCD28FArwnA_-BGsz_g6fueCvsI3ewd61tmTLyvW1IWoOoowKd5bicHQPal34KO16wORmM5_RzjCO522w_n94m9gK6JYQbS3Kn-8omnDIBZjwSBnz4mCXm-CTpexrLJRgk5h1f-lx3Ow1d9A_91qriqwNkKln35nUO4ivNvmIkDvqYMaPVXAs.LVOKao4eo0CZQ8sSO9nHoA
LastRefresh=5/23/2025 3:20:36 PM
RefreshToken=RT1-113-H0-1757255538seyqgsf5e04vo9schkoa
AccessToken=eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwieC5vcmciOiJIMCJ9..Cqnj0xScf85NYKa6g4lanA.LN1AIU3ZlnDDbIMt-J4vl8V_gvcTfynSjGKYsmbhbfBJovq5IfZU4dHt6cqDAwUfnfOm42l-OpbwN9hWrZvUGlVx8x_3MA-vdtxIOByp7neq5vL2t4XcR5svPKIkX-CqlTsTb2ylBARiXehgk3tVHBysbHcnp0Ka0Ic_Waj64wQMYvE3Z-D19gCu-Xn9WFQwDICn8HSgJmHL2huLvRX-OrcxH6uERzLcQqRLsgT7fx9j68UWDW-KL_KRnzE43ieXlxXCwiCDnaF39Ei5iPHstnh19lGMgo1Z1mlF6tVZ9-8Z1prZutpiX8rzaPzS7Wdqo8pKtYaUqQZP6AGa6ZCqWR2BlF3y-R_FtheERNpafRiXWIDW68jOOrgp8QXc1uKA0sxDMjiLE7Bd0t9QAsIzln-0WiWIXFSlLGLimMd2oxxLoR7fpQvgB851I50b4S3V-c891WA8bHfuzScmjVwp40JxofhviFXwAevLNzRYvGkvIyz4oS9d6U6K_ZWKDB3iYxEgJzkFFwnfuPybWX7iNHwnmvFfAXz61jdaL9KRJM-lCChGuaQuv8_df9z_az_sbUtXJw2I8ivEppmDEQVxv49ZwzJlb6bFbqtnhy6ILO7_ecx3G1d4Utg-BrtgvzsR.oFJV6VBShL1-cERGZEqqkw
LastRefresh=5/28/2025 10:46:30 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