Commit 6fd3fd8d by Elias Sarraf

Add revision notes and audit tracking for adding to QB. Also added pdf for DB update steps

Done by Cam
parent 9b92df15
......@@ -242,6 +242,7 @@ type
changed: boolean;
notification: string;
customer_qb_id: string;
REVISION_NOTES: string;
procedure RemoveColorRow(Sender: TObject);
[async] procedure InitializeForm;
[async] procedure AddEstimate(orderID: string);
......@@ -318,7 +319,7 @@ begin
notification := TJSObject(Response.Result);
msg := string(notification['status']);
Utils.HideSpinner('spinner');
getOrder(orderID);
getOrder(xdwdsOrder.FieldByName('ORDER_ID').AsString);
ShowToast(msg);
except
......@@ -341,6 +342,7 @@ begin
xdwdsOrder.FieldByName('IN_QB').AsString := 'F';
xdwdsOrder.FieldByName('QB_ORDER_NUM').AsString := '';
REVISION_NOTES := 'Order was copied from ORDER_ID: ' + xdwdsOrder.FieldByName('ORDER_ID').AsString;
xdwdsOrder.FieldByName('ORDER_ID').AsString := '';
xdwdsOrder.Post;
EditMode();
......@@ -384,6 +386,8 @@ end;
procedure TFOrderEntryCorrugated.btnQBClick(Sender: TObject);
var
orderJSON: TJSONObject;
begin
if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then
begin
......@@ -392,7 +396,10 @@ begin
if wdbcbINQB.Checked = false then
begin
Utils.ShowSpinner('spinner');
addEstimate(xdwdsOrder.FieldByName('ORDER_ID').AsString);
orderJSON := TJSONObject.Create;
orderJSON.AddPair('ORDER_ID', xdwdsOrder.FieldByName('ORDER_ID').AsString);
orderJSON.AddPair('USER_ID', JS.toString(AuthService.TokenPayload.Properties['user_id']));
addEstimate(orderJSON.ToString);
end
else
ShowToast('Failure:Cannot submit orders already in QuickBooks', 'failure');
......@@ -495,6 +502,7 @@ begin
end;
orderJSON.AddPair('mode', mode);
orderJSON.AddPair('REVISION_NOTES', REVISION_NOTES);
Response := await(XDataWebClient1.RawInvokeAsync('ILookupService.AddCorrugatedOrder',
[orderJSON.ToString]));
......
......@@ -114,6 +114,7 @@ type
customer_qb_id: string;
mode: string;
notification: string;
REVISION_NOTES: string;
procedure EditMode;
[async] procedure InitializeForm;
public
......@@ -179,7 +180,7 @@ begin
notification := TJSObject(Response.Result);
msg := string(notification['status']);
Utils.HideSpinner('spinner');
getCuttingDieOrder(orderID);
getCuttingDieOrder(xdwdsOrder.FieldByName('ORDER_ID').AsString);
ShowToast(msg);
except
......@@ -189,6 +190,8 @@ begin
end;
procedure TFOrderEntryCuttingDie.btnQBClick(Sender: TObject);
var
orderJSON: TJSONObject;
begin
if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then
begin
......@@ -197,7 +200,10 @@ begin
if wdbcbINQB.Checked = false then
begin
Utils.ShowSpinner('spinner');
addEstimate(xdwdsOrder.FieldByName('ORDER_ID').AsString);
orderJSON := TJSONObject.Create;
orderJSON.AddPair('ORDER_ID', xdwdsOrder.FieldByName('ORDER_ID').AsString);
orderJSON.AddPair('USER_ID', JS.toString(AuthService.TokenPayload.Properties['user_id']));
addEstimate(orderJSON.ToString);
end
else
ShowToast('Failure:Cannot submit orders already in QuickBooks', 'failure');
......@@ -296,7 +302,7 @@ begin
xdwdsOrder.FieldByName('staff_fields_ship_date').AsDateTime := 0;
xdwdsOrder.FieldByName('IN_QB').AsString := 'F';
xdwdsOrder.FieldByName('QB_ORDER_NUM').AsString := '';
REVISION_NOTES := 'Order was copied from ORDER_ID: ' + xdwdsOrder.FieldByName('ORDER_ID').AsString;
xdwdsOrder.FieldByName('ORDER_ID').AsString := '';
xdwdsOrder.Post;
ShowToast('Success: Order Successfully Copied');
......@@ -410,6 +416,7 @@ begin
end;
orderJSON.AddPair('mode', mode);
orderJSON.AddPair('REVISION_NOTES', REVISION_NOTES);
try
Response := await(XDataWebClient1.RawInvokeAsync('ILookupService.AddCuttingDieOrder',
......
......@@ -249,6 +249,7 @@ type
mode: string;
notification: string;
customer_qb_id: string;
REVISION_NOTES: string;
procedure RemoveColorRow(Sender: TObject);
[async] procedure InitializeForm;
//FJSONProc1: TJSONProc1;
......@@ -404,6 +405,7 @@ begin
xdwdsOrder.FieldByName('IN_QB').AsString := 'F';
xdwdsOrder.FieldByName('QB_ORDER_NUM').AsString := '';
REVISION_NOTES := 'Order was copied from ORDER_ID: ' + xdwdsOrder.FieldByName('ORDER_ID').AsString;
xdwdsOrder.FieldByName('ORDER_ID').AsString := '';
xdwdsOrder.Post;
EditMode();
......@@ -449,6 +451,8 @@ begin
end;
procedure TFOrderEntryWeb.btnQBClick(Sender: TObject);
var
orderJSON: TJSONObject;
begin
if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then
begin
......@@ -457,7 +461,10 @@ begin
if wdbcbINQB.Checked = false then
begin
Utils.ShowSpinner('spinner');
addEstimate(xdwdsOrder.FieldByName('ORDER_ID').AsString);
orderJSON := TJSONObject.Create;
orderJSON.AddPair('ORDER_ID', xdwdsOrder.FieldByName('ORDER_ID').AsString);
orderJSON.AddPair('USER_ID', JS.toString(AuthService.TokenPayload.Properties['user_id']));
addEstimate(orderJSON.ToString);
end
else
ShowToast('Failure:Cannot submit orders already in QuickBooks', 'failure');
......@@ -479,7 +486,7 @@ begin
notification := TJSObject(Response.Result);
msg := string(notification['status']);
Utils.HideSpinner('spinner');
getOrder(orderID);
getOrder(xdwdsOrder.FieldByName('ORDER_ID').AsString);
ShowToast(msg);
except
......@@ -575,9 +582,9 @@ begin
end;
xdwdsOrder.Next;
end;
orderJSON.AddPair('mode', mode);
console.log(orderJSON);
orderJSON.AddPair('mode', mode);
orderJSON.AddPair('REVISION_NOTES', REVISION_NOTES);
try
Response := await(XDataWebClient1.RawInvokeAsync('ILookupService.AddWebOrder', [orderJSON.ToString]));
......
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{DB6F5DBF-7E4B-45DA-AFFA-6C8DF15BA740}</ProjectGuid>
<ProjectVersion>20.2</ProjectVersion>
<ProjectVersion>20.3</ProjectVersion>
<FrameworkType>VCL</FrameworkType>
<MainSource>webKGOrders.dpr</MainSource>
<Base>True</Base>
......@@ -432,6 +432,16 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStylesV35">
<Platform Name="Android">
<RemoteDir>res\values-v35</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\values-v35</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_AdaptiveIcon">
<Platform Name="Android">
<RemoteDir>res\drawable-anydpi-v26</RemoteDir>
......
......@@ -124,7 +124,7 @@ var
TxnTaxCodeRef: TJSONObject;
TxnTaxDetail: TJSONObject;
JSONData: TJSONObject;
ORDER_ID, companyID, RefreshToken, AccessToken: string;
ORDER_ID, companyID, RefreshToken, AccessToken, USER_ID: string;
table, msg: string;
ShipMethodRef: TJSONObject;
LastRefresh: TDateTime;
......@@ -148,7 +148,13 @@ begin
Logger.Log(3, 'TLookupService.AddEstimate');
try
try
ORDER_ID := orderInfo;
JSONData := TJSONObject.ParseJSONValue(orderInfo) as TJSONObject;
if JSONData = nil then
raise Exception.Create('Invalid JSON format');
ORDER_ID := JSONData.GetValue<string>('ORDER_ID');
USER_ID := JSONData.GetValue<string>('USER_ID');
SQL := 'select * from orders where ORDER_ID = ' + ORDER_ID;
doQuery(ordersDB.UniQuery1, SQL);
if ordersDB.UniQuery1.FieldByName('ORDER_TYPE').AsString = 'corrugated_plate' then
......@@ -281,8 +287,6 @@ begin
restRequest.Execute;
//memo1.Lines.Add(restresponse.Content);
jsValue := restResponse.JSONValue;
jsObj := TJSONObject(jsValue).GetValue<TJSONObject>('Estimate');
......@@ -295,6 +299,7 @@ begin
ordersDB.UniQuery1.FieldByName('QB_ORDER_NUM').AsString := jsObj.GetValue<string>('DocNumber');
ordersDB.UniQuery1.FieldByName('QB_ESTIMATE_ID').AsString := jsObj.GetValue<string>('Id');
ordersDB.UniQuery1.FieldByName('QB_CREATE_DATE').AsDateTime := Now;
ordersDB.UniQuery1.FieldByName('QB_ORDER_USER').AsString := USER_ID;
ordersDB.UniQuery1.Post;
result := TJSONObject.Create;
......@@ -2597,8 +2602,6 @@ begin
doQuery(OrdersDB.UniQuery1, SQL);
RevisionID := OrdersDB.UniQuery1.FieldByName('KEYVALUE').AsInteger;
// Begin Area where we could replace this with marks code(need to convert from c++
SQL := 'select * from ' + table + ' where ORDER_ID = -1';
doQuery(ordersDB.UniQuery1, SQL);
......@@ -2618,19 +2621,16 @@ begin
Field.AsString := Pair.JsonValue.Value
else if field is TIntegerField then
Field.AsInteger := Pair.JsonValue.AsType<Integer>;
end;
end;
ordersDB.UniQuery1.FieldByName('ORDER_ID').AsString := OrderID;
ordersDB.UniQuery1.FieldByName('ORDER_DATE').AsDateTime := Now;
// End Area
ordersDB.UniQuery1.FieldByName('ORDER_STATUS').AsString := 'ACTIVE';
ordersDB.UniQuery1.FieldByName('REVISION_NUMBER').AsInteger := rev_num;
ordersDB.UniQuery1.FieldByName('ORDER_REVISION_ID').AsInteger := RevisionID;
ordersDB.UniQuery1.FieldByName('REVISION_USER_ID').AsString := order.GetValue<string>('USER_ID');
// Post the record to the database
ordersDB.UniQuery1.Post;
end;
......
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectGuid>{2A3028D9-BC39-4625-9BA5-0338012E2824}</ProjectGuid>
<ProjectVersion>20.2</ProjectVersion>
<ProjectVersion>20.3</ProjectVersion>
<FrameworkType>VCL</FrameworkType>
<Base>True</Base>
<Config Condition="'$(Config)'==''">Debug</Config>
......@@ -355,6 +355,16 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="AndroidSplashStylesV35">
<Platform Name="Android">
<RemoteDir>res\values-v35</RemoteDir>
<Operation>1</Operation>
</Platform>
<Platform Name="Android64">
<RemoteDir>res\values-v35</RemoteDir>
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="Android_AdaptiveIcon">
<Platform Name="Android">
<RemoteDir>res\drawable-anydpi-v26</RemoteDir>
......
......@@ -2,12 +2,12 @@
MemoLogLevel=5
FileLogLevel=5
webClientVersion=1.0.0
LogFileNum=981
LogFileNum=993
[Database]
--Server=192.168.159.158
Server=192.168.159.158
--Server=192.168.102.130
Server=192.168.75.133
--Server=192.168.75.133
Database=kg_order_entry
Username=root
Password=emsys01
......@@ -17,6 +17,6 @@ Password=emsys01
CompanyID=9341454336461805
ClientID=ABYqlDx1EsacZYXvHIJ7RDB7zmnQdwABU3fwQLIZPmBgU0VW1P
ClientSecret=PM7OnvQWsgOqjWfDpZAnyRttDN9446Am6d85pDxr
RefreshToken=RT1-234-H0-1766080860lt6q6wexz5p1797m4pfa
AccessToken=eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwieC5vcmciOiJIMCJ9..4Lnl865y7RBKrwAlYrUdZw.-NX4xZUYbruXp8U0WT0guGo_MdrKBVAFacX_wbynpC0-kj48Avrm-c-JVsgU32egu40w_-4OIuo3Zt2dIZ12oCb108eysVI0njIa81noaCmS86tsjM1Lc8mO6O4uEVUiquwtkAKyJcMb16EfcWs05iEHj7alkL5G3O95JvH2xTC-N1rLUAEmPohEk-FJL0gdWKxO1905Q3EdCDCrFImg7WwCdeC3SDG5Ne9DIUIy0FWqA3wRHwOZllBxGT-M3PCpwGvVEcPd7EimdlteijNoIB_F55cRHQYgPGWPS779EVHa7m279rSJXAdL6ZLW76iorTGnXVnhQs162ejQiXIY8FFmTJOQWZxIVLDA44CQfcS4cwpTbDvVveoyZsh9NP4KaRai2fu4llzKB5Miqqjh5AEvX8w66XYhoC9J-lYFu8IBk0YQuVF2E3Vkf4dNwIiaFfgBOj7OR1tR1WCFiT-I5ipI4zS-BZaVFbLtIIYCKX8.0jpvxgPnhLC0gJMFpbfcCA
LastRefresh=8/7/2025 12:51:00 PM
RefreshToken=RT1-2-H0-1769887296o3747tv75irrt167rolf
AccessToken=eyJhbGciOiJkaXIiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwieC5vcmciOiJIMCJ9..84BZUCQk1D0zH5dIEEW2zw.tmbh1n6DyHI3Z9BVuuztZNe8Y75GzsC5sMwqrIec0-yfcr9aBxO8FTQOAhpe4JLeZ1M2hatEf430cH_iYvK0lzV5HNl888ZlYiR8yDL4bfUj5PyNXdffmFZ5-yrtVTuC8heBWl_6VJDP0GSZXz5OtiG_0-Tn1kY6i6jZvQ1UFu9l7tgwVN-4bxoP2s36e-4llhD8Y-H7WreulFCJ5-k-73ICL5aBi7gn8eX9T3PpXSROyWqHIQ0ph5eOumCeykjaRkWn4GafmZSp20IaWg7Er1gZluzEOGc_TZ_5GkSt1_Bx-JpH9piDioF91BynHgDszIZ3mD18QNmmisVKzO6Z1eBT753RhaPEPa_qruR7oHay0s3RO1PhGf5UpQ4cTP-h0e_2hD02P-x1Svj-zlwDUyiiOrgwyPHiSjiTMv32puMoT-dGrBDWnt0BPp7A5Dle8CgUczw_SAnNZFtQMTZRbKJq8B7URe6M2Fs87HYs1HU.uWftkuUZ_GRIVaAg5k8pLw
LastRefresh=10/22/2025 3:52:18 PM
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