This commit is contained in:
2021-11-19 16:05:23 +00:00
parent d3047679e3
commit fa856a33d1

View File

@@ -385,10 +385,16 @@ namespace AyaNova.Biz
var log = AyaNova.Util.ApplicationLogging.CreateLogger("ReportBiz::RenderReport");
//Customer User Report?
if(reportRequest.ReportId==-100){
//get the user data and set the actual report id or return null if not found
HERE NEXT
bool RequestIsCustomerWorkOrderReport=false;
if (reportRequest.ReportId == -100)
{
//get the user and workorder data and set the actual report id or return null if not found
var woTags = await ct.WorkOrder.AsNoTracking().Where(x => x.Id == reportRequest.SelectedRowIds[0]).Select(x => x.Tags).FirstOrDefaultAsync();
if(woTags==null) return null;
var cr = await UserBiz.CustomerUserEffectiveRightsAsync(UserId, woTags);
if(cr.ThisWOEffectiveWOReportId==null) return null;
reportRequest.ReportId=(long)cr.ThisWOEffectiveWOReportId;
RequestIsCustomerWorkOrderReport=true;
}
//get report, vet security, see what we need before init in case of issue
@@ -409,7 +415,7 @@ namespace AyaNova.Biz
AuthorizationRoles effectiveRoles = CurrentUserRoles;
if (!AyaNova.Api.ControllerHelpers.Authorized.HasReadFullRole(effectiveRoles, report.AType))
if (!RequestIsCustomerWorkOrderReport && !AyaNova.Api.ControllerHelpers.Authorized.HasReadFullRole(effectiveRoles, report.AType))
{
AddError(ApiErrorCode.NOT_AUTHORIZED, null, $"User not authorized for {report.AType} type object");
return null;
@@ -512,7 +518,7 @@ namespace AyaNova.Biz
log.LogDebug($"Launching headless Browser now:");
using (var browser = await Puppeteer.LaunchAsync(lo))
using (var page = await browser.NewPageAsync())
// using (var page = (await browser.PagesAsync()).First())//for language setting version
// using (var page = (await browser.PagesAsync()).First())//for language setting version
{
//track this process so it can be cancelled if it times out
ReportRenderManager.AddProcess(browser.Process.Id);
@@ -619,8 +625,8 @@ namespace AyaNova.Biz
if (logo.Medium != null) HasMediumLogo = "true";
if (logo.Large != null) HasLargeLogo = "true";
}
var HasPostalAddress=!string.IsNullOrWhiteSpace(ServerGlobalBizSettings.Cache.PostAddress)?"true":"false";
var HasStreetAddress=!string.IsNullOrWhiteSpace(ServerGlobalBizSettings.Cache.Address)?"true":"false";
var HasPostalAddress = !string.IsNullOrWhiteSpace(ServerGlobalBizSettings.Cache.PostAddress) ? "true" : "false";
var HasStreetAddress = !string.IsNullOrWhiteSpace(ServerGlobalBizSettings.Cache.Address) ? "true" : "false";
var serverMeta = $"{{ayApiUrl:`{apiUrl}`, HasSmallLogo:{HasSmallLogo}, HasMediumLogo:{HasMediumLogo}, HasLargeLogo:{HasLargeLogo},CompanyName: `{AyaNova.Core.License.ActiveKey.RegisteredTo}`,CompanyWebAddress:`{ServerGlobalBizSettings.Cache.WebAddress}`,CompanyEmailAddress:`{ServerGlobalBizSettings.Cache.EmailAddress}`,CompanyPhone1:`{ServerGlobalBizSettings.Cache.Phone1}`,CompanyPhone2:`{ServerGlobalBizSettings.Cache.Phone2}`,HasPostalAddress:{HasPostalAddress},CompanyPostAddress:`{ServerGlobalBizSettings.Cache.PostAddress}`,CompanyPostCity:`{ServerGlobalBizSettings.Cache.PostCity}`,CompanyPostRegion:`{ServerGlobalBizSettings.Cache.PostRegion}`,CompanyPostCountry:`{ServerGlobalBizSettings.Cache.PostCountry}`,CompanyPostCode:`{ServerGlobalBizSettings.Cache.PostCode}`,HasStreetAddress:{HasStreetAddress},CompanyAddress:`{ServerGlobalBizSettings.Cache.Address}`,CompanyCity:`{ServerGlobalBizSettings.Cache.City}`,CompanyRegion:`{ServerGlobalBizSettings.Cache.Region}`,CompanyCountry:`{ServerGlobalBizSettings.Cache.Country}`,CompanyLatitude:{ServerGlobalBizSettings.Cache.Latitude},CompanyLongitude:{ServerGlobalBizSettings.Cache.Longitude}}}";
@@ -685,9 +691,9 @@ namespace AyaNova.Biz
{
var ClientPDFDate = reportRequest.ClientMeta["PDFDate"].Value<string>();
var ClientPDFTime = reportRequest.ClientMeta["PDFTime"].Value<string>();
PdfOptions.HeaderTemplate = report.HeaderTemplate.Replace("PDFDate",ClientPDFDate).Replace("PDFTime",ClientPDFTime);
PdfOptions.FooterTemplate = report.FooterTemplate.Replace("PDFDate",ClientPDFDate).Replace("PDFTime",ClientPDFTime);
PdfOptions.HeaderTemplate = report.HeaderTemplate.Replace("PDFDate", ClientPDFDate).Replace("PDFTime", ClientPDFTime);
PdfOptions.FooterTemplate = report.FooterTemplate.Replace("PDFDate", ClientPDFDate).Replace("PDFTime", ClientPDFTime);
}
if (report.PaperFormat != ReportPaperFormat.NotSet)