serviceData.append([ipAddress.ipAddress, ipAddress.ipAssignmentType, ipAddress.allocationHours, str(locale.currency(val=ipAddress.allocationCost, symbol=False, grouping=True))])
return len(ipAddresses.ipAddressUsageDetail)
def get_servicetable(self, service):
serviceinfotable = [[]]
serviceinfotable[0] = ["Service", get_servicename(service)] serviceinfotable.append(["Organization", get_organization(service)]) serviceinfotable.append(["Billing code", get_billingcode(service)]) serviceinfotable.append(["Owner", get_owner(service)]) serviceinfotable.append(["Created on", get_startdate(service)]) serviceinfotable.append(["Deleted on", get_enddate(service)])
tService = Table(serviceinfotable, style=[('LINEABOVE', (0, 0),
('INNERGRID', (0, 0),
tService.hAlign = "LEFT" return tService
def get_servicedetailstable(self, service): tServiceData = [[]]
tServiceData[0] = ["Fixed Cost ($)", str(locale.currency(val=service.resourceUsageDetail.fixedCost, symbol=False, grouping=True)), "", ""]
s = 2 + self.addserversdetails(service.resourceUsageDetail.servers, tServiceData) d = s + self.adddisksdetails(service.resourceUsageDetail.disks, tServiceData) + 2 self.addipaddressesdetails(service.resourceUsageDetail.ipAddresses, tServiceData)
tService = Table(tServiceData, style = [('LINEBELOW', (0, 0),
('FONTSIZE', (0, 0),
('LINEBELOW', (0, 1),
('LINEBELOW', (0, s+1),
('LINEBELOW', (0, d+1),
('BOX', (0, 0),
tService.hAlign = "LEFT" return tService
def format_data(self):
dataPeriod = self.period.getPeriodObj(self.chargebackservice) paging = self.chargebackservice.factory.create('paging') paging.pageIndex = PAGE_INDEX
paging.pageSize = PAGE_SIZE Elements = []
if self.chargebackservice : filters = []
if self.filters :
filters = self.filters.getFiltersObj(self.chargebackservice)
if len(filters) > 0:
print "[" + str(datetime.datetime.now()) + "]" + "getServiceUsageDetailPage: start"
result = self.chargebackservice.service.getServiceUsageDetailPage(dataPeriod, paging, filters)
print "[" + str(datetime.datetime.now()) + "]" + "getServiceUsageDetailPage: end" else:
result = self.chargebackservice.service.getServiceUsageDetailPage(dataPeriod, paging)
if (result.pagingInformation) and (result.serviceUsageDetail) and (len(result.serviceUsageDetail)
> 0) :
pages = result.pagingInformation services = result.serviceUsageDetail
Elements.extend(report_Summary(len(services), self.period))
Elements.append(Paragraph(''' ''', styleSheet["BodyText"]))
for service in services: Elements.append(self.get_servicetable(service)) Elements.append(Paragraph(''' ''', styleSheet["BodyText"])) Elements.append(self.get_servicedetailstable(service)) Elements.append(PageBreak())
else:
print "Result: " + result
return Elements
def generate (self, outputfile):
usageReport = root.reports.reports.Report(self.title, self.footer)
101