def quickbooksGLrequest(qbReport=None, file=None): from arelle.CntlrQuickBooks import supportedQbReports, qbRequest from arelle.ModelValue import dateTime errors = [] requestPathParts = request.urlparts[2].split('/') viewRequested = "view" == requestPathParts[-1] media = request.query.media or 'html' fromDate = request.query.fromDate toDate = request.query.toDate if qbReport not in supportedQbReports: errors.append(_("QuickBooks report '{0}' is not supported (please select from: {1})").format( qbReport, ', '.join(supportedQbReports))) if media not in ('xml', 'xhtml', 'html'): errors.append(_("Media '{0}' is not supported for xbrl-gl (please select xhtml, html or xml)").format(media)) if not fromDate or dateTime(fromDate) is None: errors.append(_("FromDate '{0}' missing or not valid").format(fromDate)) if not toDate or dateTime(toDate) is None: errors.append(_("ToDate '{0}' missing or not valid").format(toDate)) if errors: return errorReport(errors, media) ticket = qbRequest(qbReport, fromDate, toDate, file) result = htmlBody(tableRows([_("Request queued for QuickBooks...")], header=_("Quickbooks Request")), script=''' <script type="text/javascript"> <!-- var timer = setInterval("autoRefresh()", 1000 * 10); function autoRefresh(){{location.href = "/rest/quickbooks/response?ticket={0}&media={1}&view={2}";}} //--> </script> '''.format(ticket, media, viewRequested)) return result
def quickbooksGLrequest(qbReport=None, file=None): """Initiate request to QuickBooks server for *get* requests to */rest/quickbooks/<qbReport>/xbrl-gl/...*. :returns: html, xml, csv, text -- Return per media type argument and request arguments """ from arelle.CntlrQuickBooks import supportedQbReports, qbRequest from arelle.ModelValue import dateTime errors = [] requestPathParts = request.urlparts[2].split("/") viewRequested = "view" == requestPathParts[-1] media = request.query.media or "html" fromDate = request.query.fromDate toDate = request.query.toDate if qbReport not in supportedQbReports: errors.append( _("QuickBooks report '{0}' is not supported (please select from: {1})").format( qbReport, ", ".join(supportedQbReports) ) ) if media not in ("xml", "xhtml", "html"): errors.append(_("Media '{0}' is not supported for xbrl-gl (please select xhtml, html or xml)").format(media)) if not fromDate or dateTime(fromDate) is None: errors.append(_("FromDate '{0}' missing or not valid").format(fromDate)) if not toDate or dateTime(toDate) is None: errors.append(_("ToDate '{0}' missing or not valid").format(toDate)) if errors: return errorReport(errors, media) ticket = qbRequest(qbReport, fromDate, toDate, file) result = htmlBody( tableRows([_("Request queued for QuickBooks...")], header=_("Quickbooks Request")), script=""" <script type="text/javascript"> <!-- var timer = setInterval("autoRefresh()", 1000 * 10); function autoRefresh(){{location.href = "/rest/quickbooks/response?ticket={0}&media={1}&view={2}";}} //--> </script> """.format( ticket, media, viewRequested ), ) return result