# Replace Bulk Order Get Location with gss ## Validate Excel ### Current Flow ```plantuml participant "frontend" as fe participant "everpro-logistic-client" as elc participant "everpro-user" as eu database "popaket_logistic" as db fe -> elc : send the data from excel file activate elc elc -> eu : get user data activate eu eu -> elc : return user data deactivate eu elc -> db : validate unique reference id loop the orders group #LightBlue we will replace this to using evm-gss elc -> db : get the origin location by postal code and subdistrict name db --> elc elc -> db : get the destination location by postal code and subdistrict name db --> elc end elc -> elc : note right the existing flow endnote end elc -> fe : return the valid and invalid data deactivate elc ``` ### New Flow ```plantuml participant "frontend" as fe participant "everpro-logistic-client" as elc participant "everpro-user" as eu database "popaket_logistic" as db participant "evm-gss" as gss fe -> elc : send the data from excel file activate elc elc -> eu : get user data activate eu eu -> elc : return user data deactivate eu elc -> db : validate unique reference id loop the orders group #LightBlue get location using evm-gss to improve the speed and typo handling elc -> gss : get the origin location by city name and district name gss --> elc elc -> gss : get the destination location by city name and district name gss --> elc end elc -> elc : note right the existing flow endnote end elc -> fe : return the valid and invalid data deactivate elc ``` ## Create Bulk Order ### Current Flow ```plantuml participant "frontend" as fe participant "everpro-logistic-client" as elc participant "everpro-user" as eu database "popaket_logistic" as db fe -> elc : send the request data from excel file activate elc elc -> elc : (existing flow) note right the existing flow, including : get user data, validating is user eligible, get popcash balance, get internal logistic services, get some settings, etc ... endnote loop the orders group #LightBlue we will replace this to using evm-gss elc -> db : get the origin location by postal code and subdistrict name db --> elc elc -> db : get the destination location by postal code and subdistrict name db --> elc end end elc -> elc : (existing flow) note right creating orders, etc... endnote elc -> fe : give a response which valid and invalid data deactivate elc ``` ### New Flow ```plantuml participant "frontend" as fe participant "everpro-logistic-client" as elc participant "everpro-user" as eu database "popaket_logistic" as db fe -> elc : send the request data from excel file activate elc elc -> elc : (existing flow) note right the existing flow, including : get user data, validating is user eligible, get popcash balance, get internal logistic services, get some settings, etc ... endnote elc -> db : save the template name note right because we will have 2 templates, we need an identifier which template is used to make the orders endnote loop the orders group #LightBlue get location using evm-gss to improve the speed and typo handling elc -> gss : get the origin location by city name and district name gss --> elc elc -> gss : get the destination location by city name and district name gss --> elc end end elc -> elc : (existing flow) note right creating orders, etc... endnote elc -> fe : give a response which valid and invalid data deactivate elc ```