Commit 344aa169 by emsys

Made Changes to the way we retrieve info for an empty order and a customer

parent ca4825e6
...@@ -6,7 +6,7 @@ object FViewAddCustomer: TFViewAddCustomer ...@@ -6,7 +6,7 @@ object FViewAddCustomer: TFViewAddCustomer
object lblFormState: TWebLabel object lblFormState: TWebLabel
Left = 19 Left = 19
Top = 578 Top = 578
Width = 79 Width = 3
Height = 15 Height = 15
ElementID = 'lbl_form_state' ElementID = 'lbl_form_state'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
......
...@@ -505,16 +505,14 @@ procedure TFViewAddCustomer.GetCustomer; ...@@ -505,16 +505,14 @@ procedure TFViewAddCustomer.GetCustomer;
// Retrieves a customer for a given CustomerID. // Retrieves a customer for a given CustomerID.
var var
xdcResponse: TXDataClientResponse; xdcResponse: TXDataClientResponse;
customer : TJSObject; customer, RepUsers : TJSObject;
items: TJSObject; items: TJSObject;
ship_block: TStringList; ship_block: TStringList;
begin begin
xdcResponse := await(XDataWebClient1.RawInvokeAsync('ILookupService.GetCustomer', [customerID])); xdcResponse := await(XDataWebClient1.RawInvokeAsync('ILookupService.GetCustomer', [customerID]));
customer := TJSObject(xdcResponse.Result); customer := TJSObject(xdcResponse.Result);
xdwdsUsers.Close;
xdwdsUsers.SetJSONData(customer['USERS']);
xdwdsUsers.Open;
XDataWebDataSet1.Close; XDataWebDataSet1.Close;
XDataWebDataSet1.SetJsonData(customer); XDataWebDataSet1.SetJsonData(customer);
...@@ -530,7 +528,7 @@ begin ...@@ -530,7 +528,7 @@ begin
dtpEndDate.Date := XDataWebDataSet1.FieldByName('End_DATE').AsDateTime; dtpEndDate.Date := XDataWebDataSet1.FieldByName('End_DATE').AsDateTime;
xdwdsShipTo.Close; xdwdsShipTo.Close;
xdwdsShipTo.SetJSONData(customer['ADDRESS_LIST']); xdwdsShipTo.SetJSONData(customer['SHIPPING_ADDRESS_LIST']);
xdwdsShipTo.Open; xdwdsShipTo.Open;
memoAddressBlock.Text := string(customer['staff_fields_invoice_to']); memoAddressBlock.Text := string(customer['staff_fields_invoice_to']);
...@@ -545,6 +543,14 @@ begin ...@@ -545,6 +543,14 @@ begin
edtFirstLine.Text := memoShipBlock.Lines[0] edtFirstLine.Text := memoShipBlock.Lines[0]
else else
edtFirstLine.Text := ''; edtFirstLine.Text := '';
xdcResponse := await(XDataWebClient1.RawInvokeAsync('ILookupService.GetRepUsers', []));
RepUsers := TJSObject(xdcResponse.Result);
console.log(RepUsers);
xdwdsUsers.Close;
xdwdsUsers.SetJSONData(RepUsers['value']);
xdwdsUsers.Open;
end; end;
procedure TFViewAddCustomer.tmrReturnTimer(Sender: TObject); procedure TFViewAddCustomer.tmrReturnTimer(Sender: TObject);
......
...@@ -67,45 +67,6 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -67,45 +67,6 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
DataField = 'QB_ORDER_NUM' DataField = 'QB_ORDER_NUM'
DataSource = wdsOrder DataSource = wdsOrder
end end
object dtpOrderDate: TWebDateTimePicker
Left = 22
Top = 218
Width = 170
Height = 22
ElementID = 'dtporderdate'
BorderStyle = bsSingle
ChildOrder = 4
Color = clWhite
Date = 45638.529943136570000000
Role = ''
Text = ''
end
object dtpProofDate: TWebDateTimePicker
Left = 22
Top = 250
Width = 170
Height = 22
ElementID = 'dtpproofdate'
BorderStyle = bsSingle
ChildOrder = 4
Color = clWhite
Date = 45638.529943136570000000
Role = ''
Text = ''
end
object dtpShipDate: TWebDateTimePicker
Left = 22
Top = 282
Width = 170
Height = 22
ElementID = 'dtpshipdate'
BorderStyle = bsSingle
ChildOrder = 4
Color = clWhite
Date = 45638.529943136570000000
Role = ''
Text = ''
end
object edtShipVia: TWebDBEdit object edtShipVia: TWebDBEdit
Left = 24 Left = 24
Top = 314 Top = 314
...@@ -373,7 +334,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -373,7 +334,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
DataField = 'ORDER_ID' DataField = 'ORDER_ID'
DataSource = wdsOrder DataSource = wdsOrder
end end
object WebButton1: TWebButton object btnQB: TWebButton
Left = 746 Left = 746
Top = 495 Top = 495
Width = 96 Width = 96
...@@ -383,7 +344,52 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -383,7 +344,52 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
ElementID = 'btnsendtoqb' ElementID = 'btnsendtoqb'
HeightPercent = 100.000000000000000000 HeightPercent = 100.000000000000000000
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
OnClick = WebButton1Click OnClick = btnQBClick
end
object dtpOrderDate: TWebDBDateTimePicker
Left = 22
Top = 218
Width = 170
Height = 22
ElementID = 'dtporderdate'
BorderStyle = bsSingle
ChildOrder = 31
Color = clWhite
Date = 45855.535876481480000000
Role = ''
Text = ''
DataField = 'staff_fields_order_date'
DataSource = wdsOrder
end
object dtpProofDate: TWebDBDateTimePicker
Left = 24
Top = 250
Width = 170
Height = 22
ElementID = 'dtpproofdate'
BorderStyle = bsSingle
ChildOrder = 31
Color = clWhite
Date = 45855.535876481480000000
Role = ''
Text = ''
DataField = 'staff_fields_proof_date'
DataSource = wdsOrder
end
object dtpShipDate: TWebDBDateTimePicker
Left = 24
Top = 282
Width = 170
Height = 22
ElementID = 'dtpshipdate'
BorderStyle = bsSingle
ChildOrder = 31
Color = clWhite
Date = 45855.535876481480000000
Role = ''
Text = ''
DataField = 'staff_fields_ship_date'
DataSource = wdsOrder
end end
object wdsOrder: TWebDataSource object wdsOrder: TWebDataSource
AutoEdit = False AutoEdit = False
...@@ -392,6 +398,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie ...@@ -392,6 +398,7 @@ object FOrderEntryCuttingDie: TFOrderEntryCuttingDie
Top = 86 Top = 86
end end
object xdwdsOrder: TXDataWebDataSet object xdwdsOrder: TXDataWebDataSet
OnCalcFields = xdwdsOrderCalcFields
Connection = DMConnection.ApiConnection Connection = DMConnection.ApiConnection
Left = 422 Left = 422
Top = 28 Top = 28
......
...@@ -31,9 +31,6 @@ type ...@@ -31,9 +31,6 @@ type
edtCompanyAccountName: TWebDBEdit; edtCompanyAccountName: TWebDBEdit;
edtQBOrderNum: TWebDBEdit; edtQBOrderNum: TWebDBEdit;
WebLabel1: TWebLabel; WebLabel1: TWebLabel;
dtpOrderDate: TWebDateTimePicker;
dtpProofDate: TWebDateTimePicker;
dtpShipDate: TWebDateTimePicker;
edtShipVia: TWebDBEdit; edtShipVia: TWebDBEdit;
edtQuantity: TWebDBEdit; edtQuantity: TWebDBEdit;
edtPrice: TWebDBEdit; edtPrice: TWebDBEdit;
...@@ -74,12 +71,15 @@ type ...@@ -74,12 +71,15 @@ type
xdwdsOrderORDER_ID: TIntegerField; xdwdsOrderORDER_ID: TIntegerField;
edtOrderNum: TWebDBEdit; edtOrderNum: TWebDBEdit;
xdwdsOrderIN_QB: TStringField; xdwdsOrderIN_QB: TStringField;
WebButton1: TWebButton; btnQB: TWebButton;
dtpOrderDate: TWebDBDateTimePicker;
dtpProofDate: TWebDBDateTimePicker;
dtpShipDate: TWebDBDateTimePicker;
procedure btnSaveClick(Sender: TObject); procedure btnSaveClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject); procedure btnCancelClick(Sender: TObject);
procedure WebFormCreate(Sender: TObject); procedure WebFormCreate(Sender: TObject);
[async] procedure GetCuttingDieOrder(Order_ID: string); [async] procedure GetCuttingDieOrder(Order_ID: string);
[async] procedure GetCustomer(customerID: string); [async] procedure GetEmptyOrderInfo(customerID: string);
[async] procedure AddCuttingDieOrder(orderJSON: TJSONObject); [async] procedure AddCuttingDieOrder(orderJSON: TJSONObject);
procedure btnPDFClick(Sender: TObject); procedure btnPDFClick(Sender: TObject);
[async] procedure GenerateReportPDF; [async] procedure GenerateReportPDF;
...@@ -96,7 +96,8 @@ type ...@@ -96,7 +96,8 @@ type
procedure WebButton2Click(Sender: TObject); procedure WebButton2Click(Sender: TObject);
procedure ShowAddAddressForm(); procedure ShowAddAddressForm();
[async] procedure SendAddressToServer(AddressJSON: TJSONObject); [async] procedure SendAddressToServer(AddressJSON: TJSONObject);
procedure WebButton1Click(Sender: TObject); procedure btnQBClick(Sender: TObject);
procedure xdwdsOrderCalcFields(DataSet: TDataSet);
private private
FAgencyCode: string; FAgencyCode: string;
FCurrentReportType: string; FCurrentReportType: string;
...@@ -145,7 +146,7 @@ end; ...@@ -145,7 +146,7 @@ end;
begin begin
if mode = 'ADD' then if mode = 'ADD' then
begin begin
await(getCustomer(customerID)); await(getEmptyOrderInfo(customerID));
EditMode; EditMode;
end end
else else
...@@ -159,7 +160,7 @@ begin ...@@ -159,7 +160,7 @@ begin
end; end;
procedure TFOrderEntryCuttingDie.WebButton1Click(Sender: TObject); procedure TFOrderEntryCuttingDie.btnQBClick(Sender: TObject);
begin begin
ShowToast('Sending Orders To QuickBooks is not yet Implemented', 'info'); ShowToast('Sending Orders To QuickBooks is not yet Implemented', 'info');
end; end;
...@@ -303,9 +304,9 @@ begin ...@@ -303,9 +304,9 @@ begin
xdwdsOrder.Edit; xdwdsOrder.Edit;
//Convert all dates to strings because I was having less issues with that data type. //Convert all dates to strings because I was having less issues with that data type.
xdwdsOrderstaff_fields_proof_date.Value := DateTimeToStr(dtpProofDate.Date); {xdwdsOrderstaff_fields_proof_date.Value := DateTimeToStr(dtpProofDate.Date);
xdwdsOrderstaff_fields_ship_date.Value := DateTimeToStr(dtpShipDate.Date); xdwdsOrderstaff_fields_ship_date.Value := DateTimeToStr(dtpShipDate.Date);
xdwdsOrderstaff_fields_order_date.Value := DateTimeToStr(dtpOrderDate.Date); xdwdsOrderstaff_fields_order_date.Value := DateTimeToStr(dtpOrderDate.Date);}
xdwdsOrder.Post; xdwdsOrder.Post;
xdwdsOrder.First; xdwdsOrder.First;
...@@ -333,8 +334,6 @@ begin ...@@ -333,8 +334,6 @@ begin
xdwdsOrder.Next; xdwdsOrder.Next;
end; end;
console.log(orderJSON);
orderJSON.AddPair('mode', mode); orderJSON.AddPair('mode', mode);
AddCuttingDieOrder(orderJSON); AddCuttingDieOrder(orderJSON);
...@@ -356,10 +355,11 @@ end; ...@@ -356,10 +355,11 @@ end;
procedure TFOrderEntryCuttingDie.btnCopyClick(Sender: TObject); procedure TFOrderEntryCuttingDie.btnCopyClick(Sender: TObject);
begin begin
mode := 'ADD'; mode := 'ADD';
dtpOrderDate.Date := 0;
dtpProofDate.Date := 0;
dtpShipDate.Date := 0;
xdwdsOrder.Edit; xdwdsOrder.Edit;
xdwdsOrder.FieldByName('staff_fields_order_date').AsDateTime := 0;
xdwdsOrder.FieldByName('staff_fields_proof_date').AsDateTime := 0;
xdwdsOrder.FieldByName('staff_fields_ship_date').AsDateTime := 0;
xdwdsOrder.FieldByName('ORDER_ID').AsString := ''; xdwdsOrder.FieldByName('ORDER_ID').AsString := '';
xdwdsOrder.Post; xdwdsOrder.Post;
ShowToast('Success: Order Successfully Copied'); ShowToast('Success: Order Successfully Copied');
...@@ -507,8 +507,8 @@ begin ...@@ -507,8 +507,8 @@ begin
if confirmed then if confirmed then
begin begin
FViewMain.change := false; FViewMain.change := false;
if OrderID <> '' then if xdwdsOrder.FieldByName('ORDER_ID').AsString <> '' then
FViewMain.ViewOrderEntryCuttingDie(OrderID, '', 'EDIT', 'Failure: Changes Discarded') FViewMain.ViewOrderEntryCuttingDie(xdwdsOrder.FieldByName('ORDER_ID').AsString, '', 'EDIT', 'Failure: Changes Discarded')
else else
FViewMain.ViewOrders(''); FViewMain.ViewOrders('');
end; end;
...@@ -529,6 +529,12 @@ begin ...@@ -529,6 +529,12 @@ begin
end; end;
procedure TFOrderEntryCuttingDie.xdwdsOrderCalcFields(DataSet: TDataSet);
begin
if DataSet.FieldByName('IN_QB').IsNull then
DataSet.FieldByName('IN_QB').AsBoolean := False;
end;
procedure TFOrderEntryCuttingDie.getCuttingDieOrder(Order_ID: string); procedure TFOrderEntryCuttingDie.getCuttingDieOrder(Order_ID: string);
// retrieves an order from the server then loads the info into the page // retrieves an order from the server then loads the info into the page
var var
...@@ -549,20 +555,6 @@ begin ...@@ -549,20 +555,6 @@ begin
xdwdsOrder.SetJsonData(order); xdwdsOrder.SetJsonData(order);
xdwdsOrder.Open; xdwdsOrder.Open;
// Dates need to be manually set
if not (xdwdsOrderstaff_fields_order_date.AsString = '') then
dtpOrderDate.Date := StrToDateTime(xdwdsOrderstaff_fields_order_date.Value)
else
dtpOrderDate.Date := 0;
if not (xdwdsOrderstaff_fields_proof_date.AsString = '') then
dtpProofDate.Date := StrToDateTime(xdwdsOrderstaff_fields_proof_date.AsString)
else
dtpProofDate.Date := 0;
if not (xdwdsOrderstaff_fields_ship_date.AsString = '') then
dtpShipDate.Date := StrToDateTime(xdwdsOrderstaff_fields_ship_date.AsString)
else
dtpShipDate.Date := 0;
xdwdsShipTo.Close; xdwdsShipTo.Close;
xdwdsShipTo.SetJSONData(order['ADDRESS_LIST']); xdwdsShipTo.SetJSONData(order['ADDRESS_LIST']);
xdwdsShipTo.Open; xdwdsShipTo.Open;
...@@ -581,37 +573,40 @@ begin ...@@ -581,37 +573,40 @@ begin
end; end;
procedure TFOrderEntryCuttingDie.getCustomer(customerID: string); procedure TFOrderEntryCuttingDie.getEmptyOrderInfo(customerID: string);
// gets a customer from the database then loads the appropiate fields // gets a customer from the database then loads the appropiate fields
var var
xdcResponse: TXDataClientResponse; xdcResponse: TXDataClientResponse;
customer : TJSObject; customer, items : TJSObject;
address: string; address: string;
items: TJSObject;
begin begin
xdcResponse := await(XDataWebClient1.RawInvokeAsync('ILookupService.GetCustomer', xdcResponse := await(XDataWebClient1.RawInvokeAsync('ILookupService.GetCustomer',
[customerID])); [customerID]));
customer := TJSObject(xdcResponse.Result);
customer := TJSObject(xdcResponse.Result);
xdwdsOrder.Close; xdwdsOrder.Close;
xdwdsOrder.SetJsonData(customer);
xdwdsOrder.Open; xdwdsOrder.Open;
xdwdsOrder.Edit; xdwdsOrder.Append;
xdwdsOrder.FieldByName('COMPANY_ID').AsString := customerID; xdwdsOrder.FieldByName('NAME').AsString := string(customer['NAME']);
xdwdsOrder.FieldByName('SHORT_NAME').AsString := string(customer['SHORT_NAME']);
xdwdsOrder.FieldByName('staff_fields_invoice_to').AsString := string(customer['staff_fields_invoice_to']);
xdwdsOrder.FieldByName('COMPANY_ID').AsString := customerID;
xdwdsOrderUSER_ID.AsString := JS.toString(AuthService.TokenPayload.Properties['user_id']); xdwdsOrderUSER_ID.AsString := JS.toString(AuthService.TokenPayload.Properties['user_id']);
xdwdsOrder.Post; xdwdsOrder.Post;
dtpOrderDate.Date := 0;
dtpProofDate.Date := 0;
dtpShipDate.Date := 0;
xdwdsShipTo.Close; xdwdsShipTo.Close;
xdwdsShipTo.SetJSONData(customer['ADDRESS_LIST']); xdwdsShipTo.SetJSONData(customer['SHIPPING_ADDRESS_LIST']);
xdwdsShipTo.Open; xdwdsShipTo.Open;
xdcResponse := await(XDataWebClient1.RawInvokeAsync('ILookupService.GetItems',
[customerID]));
items := TJSObject(xdcResponse.Result);
xdwdsQBItem.Close; xdwdsQBItem.Close;
items := TJSObject(customer['ITEMS']);
xdwdsQBItem.SetJsonData(items['data']); xdwdsQBItem.SetJsonData(items['data']);
xdwdsQBITEM.Open; xdwdsQBITEM.Open;
end; end;
...@@ -637,6 +632,7 @@ begin ...@@ -637,6 +632,7 @@ begin
btnCancel.Enabled := True; btnCancel.Enabled := True;
btnEdit.Enabled := false; btnEdit.Enabled := false;
btnAdd.Enabled := false; btnAdd.Enabled := false;
btnQB.Enabled := false;
lblFormState.Caption := 'Edit Mode'; lblFormState.Caption := 'Edit Mode';
lblFormState.ElementHandle.classList.remove('text-danger'); lblFormState.ElementHandle.classList.remove('text-danger');
...@@ -654,6 +650,7 @@ begin ...@@ -654,6 +650,7 @@ begin
btnCancel.Enabled := false; btnCancel.Enabled := false;
btnEdit.Enabled := true; btnEdit.Enabled := true;
btnAdd.Enabled := true; btnAdd.Enabled := true;
btnQB.Enabled := true;
FViewMain.change := false; FViewMain.change := false;
lblFormState.Caption := 'View Mode'; lblFormState.Caption := 'View Mode';
......
...@@ -513,6 +513,7 @@ object FOrderEntryWeb: TFOrderEntryWeb ...@@ -513,6 +513,7 @@ object FOrderEntryWeb: TFOrderEntryWeb
WidthPercent = 100.000000000000000000 WidthPercent = 100.000000000000000000
DataField = 'proofing_pdf' DataField = 'proofing_pdf'
DataSource = WebDataSource1 DataSource = WebDataSource1
ValueChecked = 'T'
end end
object edtPDFTo: TWebDBEdit object edtPDFTo: TWebDBEdit
Left = 444 Left = 444
......
...@@ -118,6 +118,15 @@ type ...@@ -118,6 +118,15 @@ type
ship_id: string; ship_id: string;
end; end;
TOrderCustomerInfoItem = class
public
NAME: string;
CUSTOMER_ID: integer;
SHORT_NAME: string;
staff_fields_invoice_to: string;
SHIPPING_ADDRESS_LIST: TList<TAddressItem>;
end;
TCustomerItem = class TCustomerItem = class
Public Public
NAME: string; NAME: string;
...@@ -135,9 +144,8 @@ type ...@@ -135,9 +144,8 @@ type
QB_LIST_ID: string; QB_LIST_ID: string;
FFAX: string; FFAX: string;
REP_USER_ID: string; REP_USER_ID: string;
ADDRESS_LIST: TList<TAddressItem>; SHIPPING_ADDRESS_LIST: TList<TAddressItem>;
ITEMS: TItemList; REP_USERS: TList<TUserItem>;
USERS: TList<TUserItem>
end; end;
TCustomerList = class TCustomerList = class
...@@ -379,6 +387,12 @@ type ...@@ -379,6 +387,12 @@ type
general_special_instructions: string; general_special_instructions: string;
end; end;
TEmptyOrderInfo = class
public
CustomerInfo: TOrderCustomerInfoItem;
ITEMS: TItemList;
end;
// These objects are only used for quickbooks estimates. // These objects are only used for quickbooks estimates.
TRef = record TRef = record
value: string; value: string;
...@@ -492,6 +506,7 @@ type ...@@ -492,6 +506,7 @@ type
[HttpGet] function GenerateOrderCuttingPDF(orderID: string): string; [HttpGet] function GenerateOrderCuttingPDF(orderID: string): string;
[HttpGet] function getQBCustomers(): TJSONArray; [HttpGet] function getQBCustomers(): TJSONArray;
[HttpGet] function getQBItems(): TJSONArray; [HttpGet] function getQBItems(): TJSONArray;
[HttpGet] function GetRepUsers(): TList<TUserItem>;
function AddUser(userInfo: string): string; function AddUser(userInfo: string): string;
......
...@@ -22,7 +22,7 @@ uses ...@@ -22,7 +22,7 @@ uses
iexProcEffects, frxDBSet, frxExportBaseDialog, frCoreClasses, rOrderList, rOrderCorrugated, Common.Logging, iexProcEffects, frxDBSet, frxExportBaseDialog, frCoreClasses, rOrderList, rOrderCorrugated, Common.Logging,
DateUtils, REST.Client, REST.Types, WEBLib.REST, WEBLib.WebTools,System.Net.HttpClient, DateUtils, REST.Client, REST.Types, WEBLib.REST, WEBLib.WebTools,System.Net.HttpClient,
System.Net.URLClient, System.Net.HttpClientComponent, System.netencoding, System.Net.URLClient, System.Net.HttpClientComponent, System.netencoding,
IdHTTP, IdSSLOpenSSL, IdSSLOpenSSLHeaders, System.IniFiles; IdHTTP, IdSSLOpenSSL, IdSSLOpenSSLHeaders, System.IniFiles, System.Generics.Collections;
type type
...@@ -41,6 +41,7 @@ type ...@@ -41,6 +41,7 @@ type
function GetCuttingDieOrder(orderInfo: string): TCuttingDie; function GetCuttingDieOrder(orderInfo: string): TCuttingDie;
function GetQBCustomers: TJSONArray; function GetQBCustomers: TJSONArray;
function GetQBItems: TJSONArray; function GetQBItems: TJSONArray;
function GetRepUsers(): TList<TUserItem>;
function EditUser(const editOptions: string): string; function EditUser(const editOptions: string): string;
...@@ -84,7 +85,6 @@ type ...@@ -84,7 +85,6 @@ type
implementation implementation
uses uses
System.Generics.Collections,
XData.Sys.Exceptions, uLibrary, rOrderWeb, rOrderCutting; XData.Sys.Exceptions, uLibrary, rOrderWeb, rOrderCutting;
...@@ -92,17 +92,14 @@ procedure TLookupService.AfterConstruction; ...@@ -92,17 +92,14 @@ procedure TLookupService.AfterConstruction;
begin begin
inherited; inherited;
ordersDB := TApiDatabase.Create(nil); ordersDB := TApiDatabase.Create(nil);
end; end;
procedure TLookupService.BeforeDestruction; procedure TLookupService.BeforeDestruction;
begin begin
ordersDB.Free; ordersDB.Free;
inherited; inherited;
end; end;
function TLookupService.DelShippingAddress(AddressID, CustomerID: string): TJSONObject; function TLookupService.DelShippingAddress(AddressID, CustomerID: string): TJSONObject;
var var
SQL: string; SQL: string;
...@@ -209,7 +206,7 @@ end; ...@@ -209,7 +206,7 @@ end;
function TLookupService.GetCustomer(ID: string): TCustomerItem; function TLookupService.GetCustomer(ID: string): TCustomerItem;
// Gets one specific customer from the ID given by the client. This is used for // Gets one specific customer from the ID given by the client. This is used for
// the OrderEntry forms. // the AddCustomer form and Order Entry Forms.
var var
SQL: string; SQL: string;
ADDRESS: TAddressItem; ADDRESS: TAddressItem;
...@@ -222,8 +219,7 @@ begin ...@@ -222,8 +219,7 @@ begin
SQL := 'select * FROM customers c LEFT JOIN customers_ship s ON c.CUSTOMER_ID = s.customer_id WHERE c.CUSTOMER_ID = ' + ID; SQL := 'select * FROM customers c LEFT JOIN customers_ship s ON c.CUSTOMER_ID = s.customer_id WHERE c.CUSTOMER_ID = ' + ID;
doQuery(ordersDB.UniQuery1, SQL); doQuery(ordersDB.UniQuery1, SQL);
result := TCustomerItem.Create; result := TCustomerItem.Create;
result.ADDRESS_LIST := TList<TAddressItem>.Create;
TXDataOperationContext.Current.Handler.ManagedObjects.Add( Result.ADDRESS_LIST );
result.NAME := ordersDB.UniQuery1.FieldByName('NAME').AsString; result.NAME := ordersDB.UniQuery1.FieldByName('NAME').AsString;
result.CUSTOMER_ID := ordersDB.UniQuery1.FieldByName('CUSTOMER_ID').AsInteger; result.CUSTOMER_ID := ordersDB.UniQuery1.FieldByName('CUSTOMER_ID').AsInteger;
...@@ -242,6 +238,8 @@ begin ...@@ -242,6 +238,8 @@ begin
result.FFAX := ordersDB.UniQuery1.FieldByName('FAX').AsString; result.FFAX := ordersDB.UniQuery1.FieldByName('FAX').AsString;
result.REP_USER_ID := ordersDB.UniQuery1.FieldByName('REP_USER_ID').AsString; result.REP_USER_ID := ordersDB.UniQuery1.FieldByName('REP_USER_ID').AsString;
result.SHIPPING_ADDRESS_LIST := TList<TAddressItem>.Create;
TXDataOperationContext.Current.Handler.ManagedObjects.Add( Result.SHIPPING_ADDRESS_LIST );
while not ordersDB.UniQuery1.Eof do while not ordersDB.UniQuery1.Eof do
begin begin
ADDRESS := TAddressItem.Create; ADDRESS := TAddressItem.Create;
...@@ -253,16 +251,27 @@ begin ...@@ -253,16 +251,27 @@ begin
ADDRESS.zip := ordersDB.UniQuery1.FieldByName('zip').AsString; ADDRESS.zip := ordersDB.UniQuery1.FieldByName('zip').AsString;
ADDRESS.contact := ordersDB.UniQuery1.FieldByName('contact').AsString; ADDRESS.contact := ordersDB.UniQuery1.FieldByName('contact').AsString;
ADDRESS.ship_id := ordersDB.UniQuery1.FieldByName('customer_ship_id').AsString; ADDRESS.ship_id := ordersDB.UniQuery1.FieldByName('customer_ship_id').AsString;
result.ADDRESS_LIST.Add(ADDRESS); result.SHIPPING_ADDRESS_LIST.Add(ADDRESS);
ordersDB.UniQuery1.Next; ordersDB.UniQuery1.Next;
end; end;
ordersDB.UniQuery1.Close; except
on E: Exception do
result.ITEMS := GetItems(''); begin
Logger.Log(2, 'Error in GetCustomer: ' + E.Message);
raise EXDataHttpException.Create(500, 'Unable to retrieve customer: A KG Orders database issue has occurred!');
end;
end;
end;
function TLookupService.GetRepUsers: TList<TUserItem>;
// Gets a list of users that qualify to be reps for companies
var
USER: TUserItem;
SQL: string;
begin
SQL := 'SELECT USER_ID, NAME from users where QB_ID IS NOT NULL AND QB_ID <> ' + quotedStr(''); SQL := 'SELECT USER_ID, NAME from users where QB_ID IS NOT NULL AND QB_ID <> ' + quotedStr('');
result.USERS := TList<TUserItem>.Create; result := TList<TUserItem>.Create;
doQuery(ordersDB.UniQuery1, SQL); doQuery(ordersDB.UniQuery1, SQL);
while not ordersDB.UniQuery1.Eof do while not ordersDB.UniQuery1.Eof do
begin begin
...@@ -270,20 +279,14 @@ begin ...@@ -270,20 +279,14 @@ begin
TXDataOperationContext.Current.Handler.ManagedObjects.Add( USER ); TXDataOperationContext.Current.Handler.ManagedObjects.Add( USER );
USER.userID := ordersDB.UniQuery1.FieldByName('USER_ID').AsString; USER.userID := ordersDB.UniQuery1.FieldByName('USER_ID').AsString;
USER.full_name := ordersDB.UniQuery1.FieldByName('NAME').AsString; USER.full_name := ordersDB.UniQuery1.FieldByName('NAME').AsString;
result.USERS.Add(USER); result.Add(USER);
ordersDB.UniQuery1.Next; ordersDB.UniQuery1.Next;
end; end;
except
on E: Exception do
begin
Logger.Log(2, 'Error in GetCustomer: ' + E.Message);
raise EXDataHttpException.Create(500, 'Unable to retrieve customer: A KG Orders database issue has occurred!');
end;
end;
end; end;
function TLookupService.GenerateOrderListPDF(searchOptions: string): string; function TLookupService.GenerateOrderListPDF(searchOptions: string): string;
// Generates a PDF for the Order Page
var var
SQL: string; SQL: string;
rptOrderList: TrptOrderList; rptOrderList: TrptOrderList;
...@@ -2130,14 +2133,14 @@ begin ...@@ -2130,14 +2133,14 @@ begin
DateFormat.DateSeparator := '-'; DateFormat.DateSeparator := '-';
JSONData := TJSONObject.ParseJSONValue(orderInfo) as TJSONObject; JSONData := TJSONObject.ParseJSONValue(orderInfo) as TJSONObject;
if JSONData = nil then if JSONData = nil then
raise Exception.Create('Invalid JSON format'); // If parsing fails, raise an exception raise Exception.Create('Invalid JSON format');
mode := JSONData.GetValue<string>('mode'); mode := JSONData.GetValue<string>('mode');
AddToOrdersTable(mode, 'web_plate', JSONData); AddToOrdersTable(mode, 'web_plate', JSONData);
if mode = 'ADD' then if mode = 'ADD' then
begin begin
ordersDB.UniQuery1.SQL.Text := 'SELECT LAST_INSERT_ID() AS OrderID'; // Use database's method to get the last inserted ID ordersDB.UniQuery1.SQL.Text := 'SELECT LAST_INSERT_ID() AS OrderID';
ordersDB.UniQuery1.Open; ordersDB.UniQuery1.Open;
ORDER_ID := ordersDB.UniQuery1.FieldByName('OrderID').AsInteger; ORDER_ID := ordersDB.UniQuery1.FieldByName('OrderID').AsInteger;
end; end;
...@@ -2160,10 +2163,9 @@ begin ...@@ -2160,10 +2163,9 @@ begin
for Pair in JSONData do for Pair in JSONData do
begin begin
Field := ordersDB.UniQuery1.FindField(Pair.JsonString.Value); // Checks if the field exists in the dataset Field := ordersDB.UniQuery1.FindField(Pair.JsonString.Value);
if Assigned(Field) then if Assigned(Field) then
begin begin
// handles any dates or datetimes
if (Field is TDateTimeField) then if (Field is TDateTimeField) then
begin begin
if (Pair.JsonValue.Value = '') or (Pair.JsonValue.Value = 'null') or (Pair.JsonValue.Value = '12/30/1899') then if (Pair.JsonValue.Value = '') or (Pair.JsonValue.Value = 'null') or (Pair.JsonValue.Value = '12/30/1899') then
...@@ -2178,7 +2180,6 @@ begin ...@@ -2178,7 +2180,6 @@ begin
ordersDB.UniQuery1.FieldByName('ORDER_ID').AsInteger := ORDER_ID; ordersDB.UniQuery1.FieldByName('ORDER_ID').AsInteger := ORDER_ID;
// Post the record to the database
ordersDB.UniQuery1.Post; ordersDB.UniQuery1.Post;
if ( JSONData.GetValue<string>('staff_fields_proof_date') <> '' ) and ( JSONData.GetValue<string>('staff_fields_proof_date') <> '12/30/1899' ) then if ( JSONData.GetValue<string>('staff_fields_proof_date') <> '' ) and ( JSONData.GetValue<string>('staff_fields_proof_date') <> '12/30/1899' ) then
......
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
MemoLogLevel=3 MemoLogLevel=3
FileLogLevel=5 FileLogLevel=5
webClientVersion=0.9.7 webClientVersion=0.9.7
LogFileNum=865 LogFileNum=873
[Database] [Database]
Server=192.168.159.144 Server=192.168.159.158
--Server=192.168.102.130 --Server=192.168.102.130
--Server=192.168.75.133 --Server=192.168.75.133
Database=kg_order_entry Database=kg_order_entry
......
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