def helper_add_order_for_user(self, order_number, user_id, order_status): order = Order() order.number = order_number order.user_id = user_id order.status = order_status db.session.add(order) db.session.commit()
def perform_post_complete_actions(order: Order) -> bool: order.notify() if not order.kva: return track_payment(session.get('affiliate_track_id'), current_app.config.get('AFFILIATE_BONUS'), trace=f"Order: {order.id}") return True
def test_session_save_overwrites(self, sample_color, sample_repair): order1 = Order.create(color=sample_color, repairs=sample_repair, problem_description="ABBBCCC") order2 = Order.create(color=sample_color, repairs=sample_repair, problem_description="ABBBCCC") order1.save_to_session() order2.save_to_session() assert Order.SESSION_KW in session.keys() assert Order.get_from_session() == order2 assert Order.get_from_session() != order1
def model(manufacturer_name, series_name, device_name): """ Returns the chosen device """ _manufacturer: Manufacturer = Manufacturer.query.filter( Manufacturer.name == manufacturer_name).first() _series: DeviceSeries = DeviceSeries.query.filter( DeviceSeries.name == series_name).first() _device: Device = Device.query.filter(Device.name == device_name).first() if not _manufacturer or not _series or not _device: abort(404) repair_form = SelectRepairForm(_device) if repair_form.validate_on_submit(): order = Order.create( color=repair_form.get_color(), repairs=repair_form.get_repairs(), problem_description=repair_form.problem_description.data, ) order.save() order.save_to_session() return redirect(url_for('.register_customer')) return render_template("shop/modell.html", device=_device, repair_form=repair_form, manufacturer=manufacturer_name, series=series_name, repair_names=[ f"{rep.device.name} {rep.name}" for rep in _device.repairs ])
def remove_repair(self, sample_color, sample_shop, sample_repair, another_repair): order = Order.create(color=sample_color, shop=sample_shop) order.repairs = [sample_repair, another_repair] order.repairs -= [another_repair] assert len(order.repairs) == 1 assert order.repairs == [sample_repair] assert order.repairs == order.get_repairs()
def test_repair_cant_occur_twice(self, sample_color, sample_shop, sample_repair): order = Order.create(color=sample_color, shop=sample_shop) try: order.repairs = [sample_repair, sample_repair] assert False except IntegrityError: return True
def test_customer_relation(self, sample_color, sample_customer, sample_shop): order = Order.create( color=sample_color, shop=sample_shop, customer=sample_customer ) assert order.customer == sample_customer
def test_get_device(self, sample_color, sample_repair): order1 = Order.create( color=sample_color, repairs=sample_repair, problem_description="ABBBCCC" ) assert order1.device == sample_repair.device
def test_set_repairs(self, sample_color, sample_shop, sample_repair, another_repair): order = Order.create(color=sample_color, shop=sample_shop) order.repairs = [sample_repair, another_repair] assert len(order.repairs) == 2 assert order.repairs == [sample_repair, another_repair] assert order.repairs == order.get_repairs()
def order_overview(): """ A overview about customer data and the repair(s) """ order: Order = Order.get_from_session() if not order or not len(order.repairs) > 0: flash("Es wurde noch keine Reparatur ausgewählt", "error") return redirect(url_for('.home')) customer: Customer = Customer.get_from_session() if not customer: flash("Sie müssen sich erst registrieren", "warning") return redirect(url_for('.register_customer')) order.customer = customer form = FinalSubmitForm() if form.validate_on_submit(): # ORDER SUBMITTED form.populate_order(order) order.save() perform_post_complete_actions(order) return redirect(url_for('.success')) return render_template( "shop/order.html", color=order.color, repairs=order.repairs, problem_description=order.problem_description, device=order.device, customer=customer, total_cost=order.total_cost, taxes=order.taxes, discount=order.discount, total_cost_including_tax_and_discount=f"{order.total_cost_including_tax_and_discount:.2f}", form=form )
def test_delete(self, sample_repair, sample_color): order1 = Order.create(color=sample_color, repairs=sample_repair, problem_description="123") assert len(sample_repair.orders) == 1 order1.delete() assert len(sample_repair.orders) == 0
def test_session_save(self, sample_color, sample_repair): order = Order.create( color=sample_color, repairs=sample_repair, problem_description="Some Text" ) order.save_to_session() assert Order.SESSION_KW in session.keys()
def test_deserialize(self, sample_color, sample_repair, sample_shop): another_repair = Repair.create(name="dfgdfgdfgdfg", price=69, device=sample_repair.device) dto = Order.create(color=sample_color, shop=sample_shop, problem_description="Some Text") dto.append_repairs(repairs=[sample_repair, another_repair]) assert dto.color == sample_color assert dto.repairs == [sample_repair, another_repair] assert dto.problem_description == "Some Text" serialized = dto.serialize() assert serialized == { 'order_id': dto.id, } deserialized = Order.deserialize(serialized) assert dto == deserialized
def test_fields(shipping, kva, shop): form = FinalSubmitForm(shop=shop, shipping_label=shipping, kva_button=kva) assert form.validate() order = Order.create(color=sample_color) form.populate_order(order) assert order.shop == shop assert order.kva == kva assert order.customer_wishes_shipping_label == shipping order.save()
def test_most_selling(self, sample_repair, sample_color, another_repair): assert most_selling_repairs() == [] Order.create(color=sample_color, repairs=[sample_repair]) assert most_selling_repairs() == [sample_repair] Order.create(color=sample_color, repairs=[another_repair]) Order.create(color=sample_color, repairs=[another_repair]) assert most_selling_repairs() == [another_repair, sample_repair]
def test_get_bestsellers(self, sample_repair, another_repair, sample_color): assert get_bestsellers() == [] Order.create(color=sample_color, repairs=[sample_repair]) assert get_bestsellers() == [sample_repair.device] Order.create(color=sample_color, repairs=[another_repair]) Order.create(color=sample_color, repairs=[another_repair]) assert get_bestsellers() == [another_repair.device, sample_repair.device]
def test_cost(self, sample_color, sample_repair, sample_shop): another_repair = Repair.create(name="dfgdfgdfgdfg", price=49, device=sample_repair.device) dto = Order.create(color=sample_color, shop=sample_shop, repairs=[sample_repair, another_repair], problem_description="Some Text") assert dto.total_cost_including_tax_and_discount == 108.2 assert dto.total_cost == 118 assert dto.taxes == 20.56 assert dto.discount == 9.8
def post(): post_data = request.get_json() if post_data: user = current_user order = Order() order.number = post_data['number'] order.user_id = user.id db.session.add(order) db.session.commit() order_items = post_data['order_items'] for order_item in order_items: oi = OrderItem() oi.product_id = order_item['product_id'] oi.quantity = order_item['quantity'] oi.order_id = order.id db.session.add(oi) db.session.commit() return make_response(jsonify({'message': 'Order added'})), HTTPStatus.CREATED else: return make_response(jsonify({'message': 'No order params'})), HTTPStatus.NOT_FOUND
def populate_order(self, order: Order): order.kva = self.kva_button.data order.complete = True order.shop = self.shop.data order.customer_wishes_shipping_label = self.shipping_label.data
def sample_order(db, sample_color, sample_repair): return Order.create(color=sample_color, repairs=sample_repair)
def test_customer_not_required(self, sample_color, sample_shop): order = Order.create(color=sample_color, shop=sample_shop) assert order.customer is None
def test_color_required(self, db): try: Order.create() assert False except IntegrityError: return True