Untitled

 avatar
unknown
plain_text
10 months ago
3.3 kB
6
Indexable
import os

import requests
from django.conf import settings
from requests import ConnectionError

from flowbot.tasks import import_zoebi06_file
from global_settings.constants import ZBI06_NOTIFICATION_LIST
from lib.utils import get_file_from_response


def download_xlsxfile(buffer=None, path=None, endpoint=None):
    if not buffer and not path:
        return None

    if buffer:
        try:
            buffer.seek(0)
        except AttributeError:
            return None
        file = buffer
    else:
        if not os.path.exists(path):
            return None
        file = open(path, 'rb')

    proxies = {
        'http': None,
        'https': None
    }
    try:
        if endpoint:
            if endpoint == settings.XLS2XLSX_SAP_URL:
                print 'settings.XLS_FILE: ', settings.XLS_FILE
                file_name = settings.XLS_FILE
            else:
                print 'settings.MHTML_FILE: ', settings.MHTML_FILE
                file_name = settings.MHTML_FILE

            print 'endpoint: ', endpoint
            print 'proxies: ', proxies
            print 'file_name: ', file_name
            print 'file ', file
            response = requests.post(
                endpoint,
                proxies=proxies,
                files={'file': (file_name, file)}
            )

        else:
            response = requests.post(
                settings.XLS2XLSX_URL,
                proxies=proxies,
                files={'file': ('tempfile.xls', file)}
            )
    except ConnectionError:
        return None

    if response.status_code != 200:
        return None

    return get_file_from_response(response)


def process_report_zoebi06(report_id):
    import os
    from settings import ROOT_PATH
    from django.core.files.base import ContentFile
    from reports.models import ReportsGeneratedByUser
    from global_settings.models import GlobalSettings

    email_list = GlobalSettings.get_or_create_instance(name=ZBI06_NOTIFICATION_LIST).get_formatted_value()
    report_to_send = ReportsGeneratedByUser.objects.get(id=report_id)
    filename = report_to_send.report_file.name.split('/')[1].split('.')[0]
    if report_to_send.report_file.name.split('/')[1].split('.')[1] == "MHTML":
        path = os.path.join(ROOT_PATH, 'zina_files/' + filename)
        print 'report_to_send.report_file.path: ', report_to_send.report_file.path
        print 'settings.MHTML2XLSX: ', settings.MHTML2XLSX
        print 'endpoint, settings.XLS2XLSX_SAP_URL: ', settings.MHTML2XLSX, settings.XLS2XLSX_SAP_URL
        print 'settings.XLS_FILE: ', settings.XLS_FILE
        print 'settings.MHTML_FILE: ', settings.MHTML_FILE
        file = download_xlsxfile(path=report_to_send.report_file.path, endpoint=settings.MHTML2XLSX)
        print 'file: ', file
        if file:
            content_file = ContentFile(file.read())
            report_to_send.report_file.save(filename + '.xlsx', content_file)
            report_to_send.save()
            report_to_send.notify()
            report_to_send.send_email_report_link(email_list=email_list)
            import_zoebi06_file(filename + '.xlsx', content_file)

        if os.path.exists(path + '.xlsx'):
            os.remove(path + '.xlsx')


process_report_zoebi06(2562865)
Editor is loading...
Leave a Comment