示例#1
0
def api_warranty_images_image(request, warranty_id, warranty_image_id):
    user_profile = request.user.get_profile()

    return_object = {}

    try:
        warranty_image = WarrantyImage.objects.get(pk=warranty_image_id)
        warranty_image_dict = warranty_image.convert_to_dict()

        if request.method == "DELETE":
            action = "Removed '{}' image '{}'".format(warranty_image_dict["typeDescription"],
                                                      warranty_image_dict["fileName"])
            warranty_history = WarrantyHistory(warranty=warranty_image.warranty,
                                               user_profile=user_profile,
                                               action=action)
            warranty_history.save()

            warranty_image.delete()
            return_object = {"status": "deleted"}
        else:
            return_object = warranty_image_dict

    except Exception as e:
        logger.error("api_warranty_images_image: %s" % (e))
        return HttpResponseServerError("Error getting warranty images!")

    return HttpResponse(json.dumps(return_object, separators=(',', ':')), mimetype="application/json")
示例#2
0
def api_warranty_status(request, warranty_id):
    user_profile = request.user.get_profile()

    return_object = {}

    try:
        warranty = Warranty.objects.get(pk=warranty_id)
        warranty_dict = warranty.convert_to_dict()

        if request.method == "GET":

            return_object["status"] = warranty_dict["status"]

        if request.method == "POST":
            model_json = request.POST.get("model", None)
            model = json.loads(model_json)

            if warranty.status != model["status"]:
                from_status = warranty_dict["statusDescription"]

                warranty.status = model["status"]
                warranty.status_date = datetime.now()
                warranty.save()

                warranty_dict = warranty.convert_to_dict()

                action = "Changed status from '{}' to '{}'".format(from_status, warranty_dict["statusDescription"])
                warranty_history = WarrantyHistory(warranty=warranty, user_profile=user_profile, action=action)
                warranty_history.save()

            return_object = {
                "model": warranty_dict,
            }

    except Exception as e:
        logger.error("api_warranty_set_status: %s" % (e))
        return HttpResponseServerError("Error saving warranty status!")

    return HttpResponse(json.dumps(return_object, separators=(',', ':')), mimetype="application/json")
示例#3
0
def api_warranty_create_claims(request):
    user_profile = request.user.get_profile()

    count = int(request.GET.get("count", "10"))

    statuses = ["NEW", "PREAUTHORIZED", "RECEIVED", "AUTHORIZED", "NOTAUTHORIZED", "CLOSED"]
    styles = ["Afina", "Bachelor", "Cali", "Dakota", "Eden", "Faux Nias", "Grace", "Huntington", "Ivana", "Jaida"]
    colors = ["Africa", "Black", "Camo", "Denim", "Emerald", "Flannel", "Gray", "Hope Brown", "Java", "Kameleon"]
    damages = ["Broken Strap", "Crushed", "Curled", "Delaminated Layers", "Discolored", "Toe Post Pulled Out",
               "Torn Strap", "Worn / Cracked Top Sole"]

    return_list = []
    for i in range(1, count + 1):
        year = random.randint(2015, 2016)
        month = 1
        day = random.randint(1, 9)
        if year == 2015:
            month = random.randint(1, 12)
            day = random.randint(1, 28)

        status = statuses[random.randint(0, 5)]
        status_date = datetime.strptime("{}/{}/{}".format(month, day, year), '%m/%d/%Y')
        name = "Name {}".format(i)
        email = "*****@*****.**"
        phone = "Phone {}".format(i)
        address = "Address {}".format(i)
        style = styles[random.randint(0, 9)]
        color = colors[random.randint(0, 9)]
        damage = damages[random.randint(0, 7)]

        warranty = Warranty()
        warranty.save()

        warranty.claim_number = "CWC-{:04d}".format(warranty.pk)
        warranty.status = status
        warranty.status_date = status_date
        warranty.name = name
        warranty.email = email
        warranty.phone = phone
        warranty.address = address
        warranty.style = style
        warranty.color = color
        warranty.damage = damage
        warranty.save()

        warranty_dict = warranty.convert_to_dict()
        return_list.append(warranty_dict)

        warranty_history = WarrantyHistory(warranty=warranty, user_profile=user_profile, action="New claim")
        warranty_history.save()

        if status != "NEW":
            warranty_history = WarrantyHistory(warranty=warranty,
                                               user_profile=user_profile,
                                               action="Set status to {}".format(warranty_dict["statusDescription"]))
            warranty_history.save()

    return HttpResponse(json.dumps(return_list, separators=(',', ':')), mimetype="application/json")
示例#4
0
def api_warranty(request, warranty_id):
    user_profile = request.user.get_profile()

    return_object = {}

    try:
        warranty = Warranty.objects.get(pk=warranty_id)
        warranty_dict = warranty.convert_to_dict()

        if request.method == "GET":
            return_object = warranty.convert_to_dict()

        if request.method == "POST":
            return_status = "success"
            actions = []
            before_status = warranty.status
            before_status_description = None
            model_json = request.POST.get("model", None)
            model = json.loads(model_json)
            if warranty.status != model["status"]:
                before_status_description = warranty_dict["statusDescription"]
                warranty.status = model["status"]
                warranty.status_date = datetime.now()

            if warranty.name != model["name"]:
                actions.append("Changed name '{}' to '{}'".format(warranty.name, model["name"]))
                warranty.name = model["name"]

            if warranty.email != model["email"]:
                actions.append("Changed email '{}' to '{}'".format(warranty.email, model["email"]))
                warranty.email = model["email"]

            if warranty.phone != model["phone"]:
                actions.append("Changed phone '{}' to '{}'".format(warranty.phone, model["phone"]))
                warranty.phone = model["phone"]

            if warranty.address != model["address"]:
                actions.append("Changed address '{}' to '{}'".format(warranty.address, model["address"]))
                warranty.address = model["address"]

            if warranty.style != model["style"]:
                actions.append("Changed style '{}' to '{}'".format(warranty.style, model["style"]))
                warranty.style = model["style"]

            if warranty.color != model["color"]:
                actions.append("Changed color '{}' to '{}'".format(warranty.color, model["color"]))
                warranty.color = model["color"]

            if warranty.damage != model["damage"]:
                actions.append("Changed damage '{}' to '{}'".format(warranty.damage, model["damage"]))
                warranty.damage = model["damage"]

            warranty.notes = model["notes"]
            if model["imageOverride"]:
                if not warranty.image_override:
                    actions.append("Set 'Image Override' to True")
                    warranty.image_override = True
            else:
                if warranty.image_override:
                    actions.append("Set 'Image Override' to False")
                    warranty.image_override = False

            warranty.save()
            warranty_dict = warranty.convert_to_dict()

            if before_status_description:
                actions.append("Changed status '{}' to '{}'".format(before_status_description,
                                                                    warranty_dict["statusDescription"]))

            if warranty.status == "PREAUTHORIZED" and not warranty.email_sent:
                if send_pre_authorized_email(request, warranty):
                    warranty.email_sent = True
                    warranty.save()
                    actions.append("Pre-authorized email sent")
                else:
                    return_status = "Error sending email, status not changed"
                    warranty.status = before_status
                    warranty.save()
                    actions.append("ERROR Sending Pre-authorized email!")

            for action in actions:
                warranty_history = WarrantyHistory(warranty=warranty, user_profile=user_profile, action=action)
                warranty_history.save()

            return_object = {
                "returnStatus": return_status,
                "model": warranty_dict,
            }

        if request.method == "DELETE":
            warranty.delete()
            return_object = {"status": "deleted"}

    except Exception as e:
        logger.error("api_warranty: %s" % (e))
        return HttpResponseServerError("Error getting warranty data!")

    return HttpResponse(json.dumps(return_object, separators=(',', ':')), mimetype="application/json")