Commit 95296f5f by Cam Hayes

Customers form is complete and linked with quickbooks

parent 45495f71
...@@ -117,6 +117,7 @@ type ...@@ -117,6 +117,7 @@ type
function VerifyCustomer(): boolean; function VerifyCustomer(): boolean;
function VerifyAddress(): boolean; function VerifyAddress(): boolean;
procedure Clear(); procedure Clear();
procedure ShowSelectCustomerForm();
var var
customerID: string; customerID: string;
notification: string; notification: string;
...@@ -134,7 +135,7 @@ implementation ...@@ -134,7 +135,7 @@ implementation
{$R *.dfm} {$R *.dfm}
uses View.Main, View.Customers; uses View.Main, View.Customers, View.SelectCustomer;
procedure TFViewAddCustomer.Clear(); procedure TFViewAddCustomer.Clear();
// Clears the shipping address fields. // Clears the shipping address fields.
...@@ -148,6 +149,28 @@ begin ...@@ -148,6 +149,28 @@ begin
edtFirstLine.Text := ''; edtFirstLine.Text := '';
end; 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; procedure TFViewAddCustomer.DelAddress;
// Deletes a shipping address. // Deletes a shipping address.
var var
...@@ -210,7 +233,7 @@ end; ...@@ -210,7 +233,7 @@ end;
procedure TFViewAddCustomer.btnAddClick(Sender: TObject); procedure TFViewAddCustomer.btnAddClick(Sender: TObject);
// Takes the user to the Add Customer Page. // Takes the user to the Add Customer Page.
begin begin
FViewMain.ViewAddCustomer('', ''); ShowSelectCustomerForm();
end; end;
procedure TFViewAddCustomer.btnCancelClick(Sender: TObject); procedure TFViewAddCustomer.btnCancelClick(Sender: TObject);
...@@ -601,16 +624,16 @@ begin ...@@ -601,16 +624,16 @@ begin
memoAddressBlock.Text := string(customer['staff_fields_invoice_to']); memoAddressBlock.Text := string(customer['staff_fields_invoice_to']);
if ( not xdwdsShipTo.IsEmpty ) then edtShippingAddress.Text := xdwdsShipTo.FieldByName('shipping_address').AsString;
begin edtShippingCity.Text := xdwdsShipTo.FieldByName('city').AsString;
edtShippingAddress.Text := xdwdsShipTo.FieldByName('shipping_address').AsString; edtShippingState.Text := xdwdsShipTo.FieldByName('state').AsString;
edtShippingCity.Text := xdwdsShipTo.FieldByName('city').AsString; edtShippingZip.Text := xdwdsShipTo.FieldByName('zip').AsString;
edtShippingState.Text := xdwdsShipTo.FieldByName('state').AsString; edtShippingContact.Text := xdwdsShipTo.FieldByName('contact').AsString;
edtShippingZip.Text := xdwdsShipTo.FieldByName('zip').AsString; memoShipBlock.Text := xdwdsShipTo.FieldByName('ADDRESS').AsString;
edtShippingContact.Text := xdwdsShipTo.FieldByName('contact').AsString; if memoShipBlock.Lines.Count > 0 then
memoShipBlock.Text := xdwdsShipTo.FieldByName('ADDRESS').AsString; edtFirstLine.Text := memoShipBlock.Lines[0]
edtFirstLine.Text := memoShipBlock.Lines[0]; else
end; edtFirstLine.Text := '';
end; end;
......
...@@ -12,7 +12,7 @@ object FAddOrder: TFAddOrder ...@@ -12,7 +12,7 @@ object FAddOrder: TFAddOrder
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object WebLabel2: TWebLabel object WebLabel2: TWebLabel
Left = 143 Left = 135
Top = 81 Top = 81
Width = 113 Width = 113
Height = 15 Height = 15
...@@ -20,6 +20,15 @@ object FAddOrder: TFAddOrder ...@@ -20,6 +20,15 @@ object FAddOrder: TFAddOrder
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end 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 object edtSearch: TWebEdit
Left = 4 Left = 4
Top = 102 Top = 102
...@@ -30,7 +39,7 @@ object FAddOrder: TFAddOrder ...@@ -30,7 +39,7 @@ object FAddOrder: TFAddOrder
OnChange = edtSearchChange OnChange = edtSearchChange
end end
object edtID: TWebEdit object edtID: TWebEdit
Left = 143 Left = 135
Top = 102 Top = 102
Width = 142 Width = 142
Height = 22 Height = 22
...@@ -220,8 +229,8 @@ object FAddOrder: TFAddOrder ...@@ -220,8 +229,8 @@ object FAddOrder: TFAddOrder
OnClick = cbWebPlateClick OnClick = cbWebPlateClick
end end
object btnCancel: TWebButton object btnCancel: TWebButton
Left = 436 Left = 542
Top = 105 Top = 101
Width = 96 Width = 96
Height = 25 Height = 25
Caption = 'Cancel' Caption = 'Cancel'
...@@ -231,8 +240,8 @@ object FAddOrder: TFAddOrder ...@@ -231,8 +240,8 @@ object FAddOrder: TFAddOrder
OnClick = btnCancelClick OnClick = btnCancelClick
end end
object btnConfirm: TWebButton object btnConfirm: TWebButton
Left = 328 Left = 436
Top = 105 Top = 101
Width = 96 Width = 96
Height = 25 Height = 25
Caption = 'Select' Caption = 'Select'
...@@ -273,6 +282,16 @@ object FAddOrder: TFAddOrder ...@@ -273,6 +282,16 @@ object FAddOrder: TFAddOrder
TabOrder = 1 TabOrder = 1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end 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 object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection Connection = DMConnection.ApiConnection
Left = 780 Left = 780
......
...@@ -33,6 +33,8 @@ type ...@@ -33,6 +33,8 @@ type
edtNotification: TWebEdit; edtNotification: TWebEdit;
xdwdsCustomersstaff_fields_invoice_to: TStringField; xdwdsCustomersstaff_fields_invoice_to: TStringField;
xdwdsCustomersCUSTOMER_ID: TIntegerField; xdwdsCustomersCUSTOMER_ID: TIntegerField;
WebLabel3: TWebLabel;
edtName: TWebEdit;
procedure WebFormShow(Sender: TObject); procedure WebFormShow(Sender: TObject);
procedure edtSearchChange(Sender: TObject); procedure edtSearchChange(Sender: TObject);
procedure cbCorrugatedPlateClick(Sender: TObject); procedure cbCorrugatedPlateClick(Sender: TObject);
...@@ -185,6 +187,7 @@ end; ...@@ -185,6 +187,7 @@ end;
procedure TFAddOrder.TMSFNCGrid1CellClick(Sender: TObject; ACol, ARow: Integer); procedure TFAddOrder.TMSFNCGrid1CellClick(Sender: TObject; ACol, ARow: Integer);
begin begin
edtID.Text := TMSFNCGrid1.Cells[1, ARow]; edtID.Text := TMSFNCGrid1.Cells[1, ARow];
edtName.Text := TMSFNCGrid1.Cells[2, ARow];
DBID := TMSFNCGrid1.Cells[0, ARow]; DBID := TMSFNCGrid1.Cells[0, ARow];
end; end;
......
...@@ -221,7 +221,6 @@ end; ...@@ -221,7 +221,6 @@ end;
procedure TFViewCustomers.btnAddCustomerClick(Sender: TObject); procedure TFViewCustomers.btnAddCustomerClick(Sender: TObject);
begin begin
ShowSelectCustomerForm(); ShowSelectCustomerForm();
//FViewMain.ViewAddCustomer(string(notification['CustomerID']), string(notification['status']));
end; end;
procedure TFViewCustomers.edtFilterChange(Sender: TObject); procedure TFViewCustomers.edtFilterChange(Sender: TObject);
......
...@@ -13,7 +13,7 @@ object FSelectCustomer: TFSelectCustomer ...@@ -13,7 +13,7 @@ object FSelectCustomer: TFSelectCustomer
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object WebLabel2: TWebLabel object WebLabel2: TWebLabel
Left = 143 Left = 279
Top = 81 Top = 81
Width = 134 Width = 134
Height = 15 Height = 15
...@@ -21,6 +21,15 @@ object FSelectCustomer: TFSelectCustomer ...@@ -21,6 +21,15 @@ object FSelectCustomer: TFSelectCustomer
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end 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 object edtSearch: TWebEdit
Left = 4 Left = 4
Top = 102 Top = 102
...@@ -30,8 +39,8 @@ object FSelectCustomer: TFSelectCustomer ...@@ -30,8 +39,8 @@ object FSelectCustomer: TFSelectCustomer
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object edtID: TWebEdit object edtName: TWebEdit
Left = 143 Left = 279
Top = 102 Top = 102
Width = 142 Width = 142
Height = 22 Height = 22
...@@ -195,13 +204,11 @@ object FSelectCustomer: TFSelectCustomer ...@@ -195,13 +204,11 @@ object FSelectCustomer: TFSelectCustomer
LeftCol = 0 LeftCol = 0
ScrollMode = scmItemScrolling ScrollMode = scmItemScrolling
DesignTimeSampleData = True DesignTimeSampleData = True
OnCellDblClick = TMSFNCGrid1CellDblClick OnCellClick = TMSFNCGrid1CellClick
ExplicitLeft = 12
ExplicitTop = 185
end end
object btnCancel: TWebButton object btnCancel: TWebButton
Left = 436 Left = 556
Top = 105 Top = 101
Width = 96 Width = 96
Height = 25 Height = 25
Caption = 'Cancel' Caption = 'Cancel'
...@@ -210,8 +217,8 @@ object FSelectCustomer: TFSelectCustomer ...@@ -210,8 +217,8 @@ object FSelectCustomer: TFSelectCustomer
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end end
object btnConfirm: TWebButton object btnConfirm: TWebButton
Left = 328 Left = 440
Top = 105 Top = 101
Width = 96 Width = 96
Height = 25 Height = 25
Caption = 'Select' Caption = 'Select'
...@@ -241,10 +248,20 @@ object FSelectCustomer: TFSelectCustomer ...@@ -241,10 +248,20 @@ object FSelectCustomer: TFSelectCustomer
TabOrder = 1 TabOrder = 1
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
end 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 object XDataWebClient1: TXDataWebClient
Connection = DMConnection.ApiConnection Connection = DMConnection.ApiConnection
Left = 560 Left = 630
Top = 61 Top = 47
end end
object xdwdsCustomers: TXDataWebDataSet object xdwdsCustomers: TXDataWebDataSet
Connection = DMConnection.ApiConnection Connection = DMConnection.ApiConnection
...@@ -289,6 +306,9 @@ object FSelectCustomer: TFSelectCustomer ...@@ -289,6 +306,9 @@ object FSelectCustomer: TFSelectCustomer
object xdwdsCustomersBillAddrZip: TStringField object xdwdsCustomersBillAddrZip: TStringField
FieldName = 'BillAddrZip' FieldName = 'BillAddrZip'
end end
object xdwdsCustomersInKGOrders: TBooleanField
FieldName = 'In KGOrders'
end
end end
object wdsCustomers: TWebDataSource object wdsCustomers: TWebDataSource
DataSet = xdwdsCustomers DataSet = xdwdsCustomers
......
...@@ -17,7 +17,7 @@ type ...@@ -17,7 +17,7 @@ type
WebLabel1: TWebLabel; WebLabel1: TWebLabel;
WebLabel2: TWebLabel; WebLabel2: TWebLabel;
edtSearch: TWebEdit; edtSearch: TWebEdit;
edtID: TWebEdit; edtName: TWebEdit;
TMSFNCGrid1: TTMSFNCGrid; TMSFNCGrid1: TTMSFNCGrid;
btnCancel: TWebButton; btnCancel: TWebButton;
btnConfirm: TWebButton; btnConfirm: TWebButton;
...@@ -38,10 +38,14 @@ type ...@@ -38,10 +38,14 @@ type
xdwdsCustomersBillAddrCity: TStringField; xdwdsCustomersBillAddrCity: TStringField;
xdwdsCustomersBillAddrState: TStringField; xdwdsCustomersBillAddrState: TStringField;
xdwdsCustomersBillAddrZip: TStringField; xdwdsCustomersBillAddrZip: TStringField;
WebLabel3: TWebLabel;
edtID: TWebEdit;
xdwdsCustomersInKGOrders: TBooleanField;
procedure WebFormCreate(Sender: TObject); procedure WebFormCreate(Sender: TObject);
procedure WebFormShow(Sender: TObject); procedure WebFormShow(Sender: TObject);
procedure TMSFNCGrid1CellDblClick(Sender: TObject; ACol, ARow: Integer); procedure TMSFNCGrid1CellDblClick(Sender: TObject; ACol, ARow: Integer);
procedure btnConfirmClick(Sender: TObject); procedure btnConfirmClick(Sender: TObject);
procedure TMSFNCGrid1CellClick(Sender: TObject; ACol, ARow: Integer);
private private
{ Private declarations } { Private declarations }
[Async] procedure GetCustomers(); [Async] procedure GetCustomers();
...@@ -56,8 +60,7 @@ var ...@@ -56,8 +60,7 @@ var
implementation implementation
{$R *.dfm {$R *.dfm}
}
uses View.Main; uses View.Main;
...@@ -83,7 +86,10 @@ begin ...@@ -83,7 +86,10 @@ begin
if edtID.Text = '' then if edtID.Text = '' then
edtNotification.Text := 'Please Select a Customer' edtNotification.Text := 'Please Select a Customer'
else else
begin
xdwdsCustomers.Locate('Id', edtID.Text, []);
SendCustomerToServer(); SendCustomerToServer();
end;
end; end;
[async] procedure TFSelectCustomer.getCustomers(); [async] procedure TFSelectCustomer.getCustomers();
...@@ -124,9 +130,9 @@ begin ...@@ -124,9 +130,9 @@ begin
TMSFNCGrid1.ColumnCount := 4; TMSFNCGrid1.ColumnCount := 4;
TMSFNCGrid1.RowCount := 1; TMSFNCGrid1.RowCount := 1;
TMSFNCGrid1.Cells[0, 0] := 'Quickbooks ID'; TMSFNCGrid1.Cells[0, 0] := 'Quickbooks ID';
TMSFNCGrid1.Cells[1, 0] := 'Customer ID'; TMSFNCGrid1.Cells[1, 0] := 'Customer Name';
TMSFNCGrid1.Cells[2, 0] := 'Customer Name'; TMSFNCGrid1.Cells[2, 0] := 'Address';
TMSFNCGrid1.Cells[3, 0] := 'Address'; TMSFNCGrid1.Cells[3, 0] := 'In KGOrders';
// Populate the grid with data from the dataset // Populate the grid with data from the dataset
xdwdsCustomers.First; xdwdsCustomers.First;
...@@ -136,9 +142,9 @@ begin ...@@ -136,9 +142,9 @@ begin
begin begin
TMSFNCGrid1.RowCount := RowIndex + 1; TMSFNCGrid1.RowCount := RowIndex + 1;
TMSFNCGrid1.Cells[0, RowIndex] := xdwdsCustomers.FieldByName('Id').AsString; TMSFNCGrid1.Cells[0, RowIndex] := xdwdsCustomers.FieldByName('Id').AsString;
// TMSFNCGrid1.Cells[1, RowIndex] := xdwdsCustomers.FieldByName('SHORT_NAME').AsString; TMSFNCGrid1.Cells[1, RowIndex] := xdwdsCustomers.FieldByName('CompanyName').AsString;
TMSFNCGrid1.Cells[2, RowIndex] := xdwdsCustomers.FieldByName('CompanyName').AsString; TMSFNCGrid1.Cells[2, RowIndex] := xdwdsCustomers.FieldByName('BillAddr').AsString;
TMSFNCGrid1.Cells[3, RowIndex] := xdwdsCustomers.FieldByName('BillAddr').AsString; TMSFNCGrid1.Cells[3, RowIndex] := xdwdsCustomers.FieldByName('In KGOrders').AsString;
Inc(RowIndex); Inc(RowIndex);
xdwdsCustomers.Next; xdwdsCustomers.Next;
end; end;
...@@ -148,6 +154,13 @@ begin ...@@ -148,6 +154,13 @@ begin
end; end;
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, procedure TFSelectCustomer.TMSFNCGrid1CellDblClick(Sender: TObject; ACol,
ARow: Integer); ARow: Integer);
begin begin
......
...@@ -43,6 +43,8 @@ object FData: TFData ...@@ -43,6 +43,8 @@ object FData: TFData
Lines.Strings = ( Lines.Strings = (
'Memo1') 'Memo1')
TabOrder = 1 TabOrder = 1
ExplicitLeft = -2
ExplicitTop = 435
end end
object DBAdvGrid1: TDBAdvGrid object DBAdvGrid1: TDBAdvGrid
Left = 6 Left = 6
...@@ -1602,8 +1604,8 @@ object FData: TFData ...@@ -1602,8 +1604,8 @@ object FData: TFData
object uqWeb: TUniQuery object uqWeb: TUniQuery
SQL.Strings = ( SQL.Strings = (
'select * from web_plate_orders') 'select * from web_plate_orders')
Left = 745 Left = 743
Top = 464 Top = 476
object uqWebORDER_ID: TIntegerField object uqWebORDER_ID: TIntegerField
FieldName = 'ORDER_ID' FieldName = 'ORDER_ID'
Required = True Required = True
......
...@@ -23,13 +23,104 @@ type ...@@ -23,13 +23,104 @@ type
asgData: TAdvStringGrid; asgData: TAdvStringGrid;
Button3: TButton; Button3: TButton;
Button4: 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 Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject); procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject); procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject); procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private private
{ Private declarations } { Private declarations }
strict private
ordersDB: TApiDatabase;
httpReqTokenRefresh: TWebHttpRequest; httpReqTokenRefresh: TWebHttpRequest;
var var
...@@ -51,7 +142,7 @@ var ...@@ -51,7 +142,7 @@ var
implementation implementation
uses uses
Common.Logging; Common.Logging, uLibrary;
{$R *.dfm} {$R *.dfm}
...@@ -130,13 +221,13 @@ begin ...@@ -130,13 +221,13 @@ begin
restRequest.Execute; restRequest.Execute;
memo1.Lines.Add(restresponse.Content); //memo1.Lines.Add(restresponse.Content);
jsValue := restResponse.JSONValue; jsValue := restResponse.JSONValue;
jsObj := TJSONObject(jsValue); jsObj := TJSONObject(jsValue);
Memo2.Lines.Add(res); //Memo2.Lines.Add(res);
Memo2.Lines.Add( jsObj.Format(2) ); Memo1.Lines.Add( jsObj.Format(2) );
// CustomerList := TJSONArray( TJSONObject( jsObj.GetValue('QueryResponse') ).GetValue('Customer')) ; // CustomerList := TJSONArray( TJSONObject( jsObj.GetValue('QueryResponse') ).GetValue('Customer')) ;
...@@ -190,13 +281,13 @@ begin ...@@ -190,13 +281,13 @@ begin
restRequest.Execute; restRequest.Execute;
memo1.Lines.Add(restresponse.Content); //memo1.Lines.Add(restresponse.Content);
jsValue := restResponse.JSONValue; jsValue := restResponse.JSONValue;
jsObj := TJSONObject(jsValue); jsObj := TJSONObject(jsValue);
Memo2.Lines.Add(res); //Memo2.Lines.Add(res);
Memo2.Lines.Add( jsObj.Format(2) ); Memo1.Lines.Add( jsObj.Format(2) );
//CustomerList := TJSONArray(restResponse.JSONValue); //CustomerList := TJSONArray(restResponse.JSONValue);
// CustomerList := TJSONArray( TJSONObject( jsObj.GetValue('QueryResponse') ).GetValue('Customer')) ; // CustomerList := TJSONArray( TJSONObject( jsObj.GetValue('QueryResponse') ).GetValue('Customer')) ;
...@@ -208,6 +299,27 @@ begin ...@@ -208,6 +299,27 @@ begin
restResponse.Free; restResponse.Free;
end; 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(); procedure TfQB.getCustomers();
var var
restClient: TRESTClient; restClient: TRESTClient;
...@@ -260,43 +372,13 @@ begin ...@@ -260,43 +372,13 @@ begin
jsValue := restResponse.JSONValue; jsValue := restResponse.JSONValue;
jsObj := TJSONObject(jsValue); jsObj := TJSONObject(jsValue);
{Memo2.Lines.Add(res); Memo2.Lines.Add(res);
Memo2.Lines.Add( jsObj.Format(2) ); } Memo2.Lines.Add( jsObj.Format(2) );
//CustomerList := TJSONArray(restResponse.JSONValue); //CustomerList := TJSONArray(restResponse.JSONValue);
CustomerList := TJSONArray( TJSONObject( jsObj.GetValue('QueryResponse') ).GetValue('Customer')) ; CustomerList := TJSONArray( TJSONObject( jsObj.GetValue('QueryResponse') ).GetValue('Customer')) ;
ModifiedList := TJSONArray.Create; LoadJSONArray( CustomerList );
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 );
restClient.Free; restClient.Free;
restRequest.Free; restRequest.Free;
...@@ -326,6 +408,8 @@ procedure TfQB.FormCreate(Sender: TObject); ...@@ -326,6 +408,8 @@ procedure TfQB.FormCreate(Sender: TObject);
var var
iniFile: TIniFile; iniFile: TIniFile;
begin begin
inherited;
ordersDB := TApiDatabase.Create(nil);
iniFile := TIniFile.Create( ExtractFilePath(Application.ExeName) + 'kgOrdersServer.ini' ); iniFile := TIniFile.Create( ExtractFilePath(Application.ExeName) + 'kgOrdersServer.ini' );
Client := iniFile.ReadString('Quickbooks', 'ClientID', ''); Client := iniFile.ReadString('Quickbooks', 'ClientID', '');
Secret := iniFile.ReadString('Quickbooks', 'ClientSecret', ''); Secret := iniFile.ReadString('Quickbooks', 'ClientSecret', '');
...@@ -333,6 +417,12 @@ begin ...@@ -333,6 +417,12 @@ begin
RefreshToken := iniFile.ReadString('Quickbooks', 'RefreshToken', ''); RefreshToken := iniFile.ReadString('Quickbooks', 'RefreshToken', '');
end; end;
procedure TfQB.FormDestroy(Sender: TObject);
begin
ordersDB.Free;
inherited;
end;
function TfQB.RefreshAccessToken: string; function TfQB.RefreshAccessToken: string;
// Refresh Token changes so make sure to save refresh token. // Refresh Token changes so make sure to save refresh token.
var var
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
MemoLogLevel=3 MemoLogLevel=3
FileLogLevel=5 FileLogLevel=5
webClientVersion=0.9.2 webClientVersion=0.9.2
LogFileNum=596 LogFileNum=621
[Database] [Database]
Server=192.168.159.131 Server=192.168.159.131
...@@ -17,6 +17,6 @@ Password=emsys01 ...@@ -17,6 +17,6 @@ Password=emsys01
CompanyID=9341454272655710 CompanyID=9341454272655710
ClientID=ABgO14uvjh8XqLud7spQ8lkb98AUpcdA7HbyMJfCAtl65sQ5yy ClientID=ABgO14uvjh8XqLud7spQ8lkb98AUpcdA7HbyMJfCAtl65sQ5yy
ClientSecret=bQ06TRemHeAGFzVHRaTUvUoBU9jpU9itK6MOMgqN ClientSecret=bQ06TRemHeAGFzVHRaTUvUoBU9jpU9itK6MOMgqN
RefreshToken=RT1-208-H0-17567544350xgx6z1cqtacxchwp91p RefreshToken=RT1-113-H0-1757255538seyqgsf5e04vo9schkoa
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 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/23/2025 3:20:36 PM 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