def add():
    form = ServiceCouponForm()

    facade = Facade(form=form)

    groups = g.proxies.ServiceGroups.list()
    form.service_group_id.choices = groups

    if form.validate_on_submit():
        serviceCoupon = g.proxies.ServiceCoupons.create(**form.data)
        facade["service_coupon_id"] = serviceCoupon["ServiceCoupon"]["id"]
        facade.successful = True
    return facade
def edit(service_coupon_id):
    serviceCoupon = g.proxies.ServiceCoupons.from_id(service_coupon_id)
    if not serviceCoupon:
        abort(404)

    serviceCoupon["ServiceCoupon"]["starts"] = date_parser(serviceCoupon["ServiceCoupon"]["starts"])
    serviceCoupon["ServiceCoupon"]["expires"] = date_parser(serviceCoupon["ServiceCoupon"]["expires"])
    form = ServiceCouponForm(**serviceCoupon["ServiceCoupon"])
    facade = Facade(form=form, serviceCoupon=serviceCoupon)

    groups = g.proxies.ServiceGroups.list()
    form.service_group_id.choices = groups

    if form.validate_on_submit():
        serviceCoupon = g.proxies.ServiceCoupons.update(service_coupon_id, **form.data)
        facade["service_coupon_id"] = serviceCoupon["ServiceCoupon"]["id"]
        facade.successful = True
    return facade