def delete_all_shipments(self, subscription): for shipment in subscription.shipments: ShipmentDao.delete(shipment.id) subscription.nb_products = 0 subscription.nb_orders = 0 subscription.price = 0.0 subscription.shipping_price = 0.0 subscription.nb_shipments = 0 db.session.commit()
def update_shipment_status(self, shipment_id, shipment_status): shipment = ShipmentDao.get_one(shipment_id) if shipment.status != shipment_status: if shipment_status == ShipmentStatus_Enum.ANNULEE.value and shipment.subscription_id is not None: self.items_remove_subscription(shipment) if shipment_status == ShipmentStatus_Enum.CREE.value and shipment.subscription_id is not None: self.items_add_subscription(shipment) for order in shipment.orders: order.status = shipment_status ShipmentDao.update_status(shipment_id, shipment_status)
def get_some_valid(self, customer_id=0, day=datetime.utcnow, period=Period_Enum.ALL.value): datetime_day = datetime.strptime(day, '%d%m%Y') start, end = dates_range(period, datetime_day) return ShipmentDao.read_some_valid(customer_id=customer_id, start=start, end=end)
def get_by_customer_by_period(self, customer_id=0, day=datetime.utcnow, period=Period_Enum.ALL.value, nocanceled=False, nopaid=False): datetime_day = datetime.strptime(day, '%d%m%Y') start, end = dates_range(period, datetime_day) return ShipmentDao.read_by_customer_by_period(customer_id, start=start, end=end, nocanceled=nocanceled, nopaid=nopaid)
def get_some_pagination(self, customer_id=0, day=datetime.utcnow, period=Period_Enum.ALL.value, page=1, per_page=30, nocanceled=False, nopaid=False): datetime_day = datetime.strptime(day, '%d%m%Y') start, end = dates_range(period, datetime_day) return ShipmentDao.read_some_pagination(customer_id=customer_id, start=start, end=end, page=page, per_page=per_page, nocanceled=nocanceled, nopaid=nopaid)
def create_shipment(self, shipment, lines): created_shipment = ShipmentDao.create_shipment(shipment) sorted_lines = self.sort_lines_by_seller(lines) for grouped_lines in sorted_lines: self.orderService.create_by_shipment(created_shipment, grouped_lines['lines'], grouped_lines['seller_id']) db.session.commit() if created_shipment.category != Category_Enum.PRESTATION.value: created_shipment.shipping_price, created_shipment.shipping_rules = self.businessService.apply_rules_for_shipment( created_shipment) else: created_shipment.shipping_price, created_shipment.shipping_rules = self.businessService.prestation_rules_for_shipment( created_shipment) db.session.commit() if created_shipment.subscription_id is not None: self.items_add_subscription(created_shipment)
def update_shipment_and_parse_line(self, category, shipment_id, lines): shipment = ShipmentDao.get_one(shipment_id) shipment.category = category #remove shipment from subscription if shipment.subscription != None: self.remove_shipment_subscriptions(shipment) # init to 0 shipment shipment.init_stats() parsed_lines = self.parse_lines(lines) sorted_lines = self.sort_lines_by_seller(parsed_lines) for order in shipment.orders: b_delete = True for grouped_lines in sorted_lines: if str(order.seller_id) == grouped_lines['seller_id']: b_delete = False if (b_delete): shipment.remove_order(order) for grouped_lines in sorted_lines: self.orderService.update_by_shipment(shipment, grouped_lines['lines'], grouped_lines['seller_id']) if shipment.category != Category_Enum.PRESTATION.value: shipment.shipping_price, shipment.shipping_rules = self.businessService.apply_rules_for_shipment( shipment) else: shipment.shipping_price, shipment.shipping_rules = self.businessService.prestation_rules_for_shipment( shipment) shipment.updated_at = datetime.now() if shipment.subscription != None: self.add_shipment_subscriptions(shipment) db.session.commit()
def update_shipment_payment_status(self, shipment_id, payment_status): ShipmentDao.update_payment_status(shipment_id, payment_status)
def test_read_one(self): shipment = db.session.query(Shipment).first() shipment_result = ShipmentDao.read_one(shipment.id) assert shipment.title in str(shipment_result)
def getAllReports(self, id): reports = {'current' : Report(), 'last' : Report(), 'global' : Report()} #get_current_month() and get_current_year #get_last_month() and get_last_year reports['global'].shipments_count = ShipmentDao.count_by_customer(id) reports['global'].shipments_sum = ShipmentDao.sum_by_customer(id) reports['global'].canceled_count = ShipmentDao.count_canceled_by_customer(id) reports['global'].canceled_sum = ShipmentDao.sum_canceled_by_customer(id) reports['global'].paid_count = ShipmentDao.count_paid_by_customer(id) reports['global'].paid_sum = ShipmentDao.sum_paid_by_customer(id) reports['global'].effective_count = ShipmentDao.count_effective_by_customer(id) reports['global'].effective_sum = ShipmentDao.sum_effective_by_customer(id) reports['global'].in_sub_count = ShipmentDao.count_in_sub_by_customer(id) reports['global'].in_sub_sum = ShipmentDao.sum_in_sub_by_customer(id) reports['global'].out_sub_count = ShipmentDao.count_out_sub_by_customer(id) reports['global'].out_sub_sum = ShipmentDao.sum_out_sub_by_customer(id) start,end = dates_range(period='month') reports['current'].shipments_count = ShipmentDao.count_by_customer(id, start=start, end=end) reports['current'].shipments_sum = ShipmentDao.sum_by_customer(id, start=start, end=end) reports['current'].canceled_count = ShipmentDao.count_canceled_by_customer(id, start=start, end=end) reports['current'].canceled_sum = ShipmentDao.sum_canceled_by_customer(id, start=start, end=end) reports['current'].paid_count = ShipmentDao.count_paid_by_customer(id, start=start, end=end) reports['current'].paid_sum = ShipmentDao.sum_paid_by_customer(id, start=start, end=end) reports['current'].effective_count = ShipmentDao.count_effective_by_customer(id, start=start, end=end) reports['current'].effective_sum = ShipmentDao.sum_effective_by_customer(id, start=start, end=end) reports['current'].in_sub_count = ShipmentDao.count_in_sub_by_customer(id, start=start, end=end) reports['current'].in_sub_sum = ShipmentDao.sum_in_sub_by_customer(id, start=start, end=end) reports['current'].out_sub_count = ShipmentDao.count_out_sub_by_customer(id, start=start, end=end) reports['current'].out_sub_sum = ShipmentDao.sum_out_sub_by_customer(id, start=start, end=end) start,end = dates_range(period='month', before=1) reports['last'].shipments_count = ShipmentDao.count_by_customer(id, start=start, end=end) reports['last'].shipments_sum = ShipmentDao.sum_by_customer(id, start=start, end=end) reports['last'].canceled_count = ShipmentDao.count_canceled_by_customer(id, start=start, end=end) reports['last'].canceled_sum = ShipmentDao.sum_canceled_by_customer(id, start=start, end=end) reports['last'].paid_count = ShipmentDao.count_paid_by_customer(id, start=start, end=end) reports['last'].paid_sum = ShipmentDao.sum_paid_by_customer(id, start=start, end=end) reports['last'].effective_count = ShipmentDao.count_effective_by_customer(id, start=start, end=end) reports['last'].effective_sum = ShipmentDao.sum_effective_by_customer(id, start=start, end=end) reports['last'].in_sub_count = ShipmentDao.count_in_sub_by_customer(id, start=start, end=end) reports['last'].in_sub_sum = ShipmentDao.sum_in_sub_by_customer(id, start=start, end=end) reports['last'].out_sub_count = ShipmentDao.count_out_sub_by_customer(id, start=start, end=end) reports['last'].out_sub_sum = ShipmentDao.sum_out_sub_by_customer(id, start=start, end=end) return reports
def delete_shipment(self, shipment_id): shipment = ShipmentDao.get_one(shipment_id) if shipment.subscription_id is not None and shipment.status != ShipmentStatus_Enum.ANNULEE.value: self.remove_shipment_subscriptions(shipment) ShipmentDao.delete(shipment_id) ShipmentDao.update_db(shipment)
def get_one(self, shipment_id): return ShipmentDao.read_one(shipment_id)
def update_shipping_dt(self, shipment, shipping_dt): ShipmentDao.update_shipping_dt(shipment['id'], shipping_dt)
def update_shipment_shipping_status(self, shipment_id, shipping_status): ShipmentDao.update_shipping_status(shipment_id, shipping_status)
def get_all(self): return ShipmentDao.read_all()
def get_all_by_customer_pagination(self, customer_id, page=1, per_page=10): return ShipmentDao.read_by_customer_pagination(customer_id, page, per_page)
def count_canceled_by_customer(self, customer_id): return ShipmentDao.count_canceled_by_customer(customer_id)
def sum_by_customer(self, customer_id): return ShipmentDao.sum_by_customer(customer_id)
def get_all_by_subscription(self, subscription_id, nocanceled, nopaid): return ShipmentDao.read_by_subscription(subscription_id, nocanceled, nopaid)
def get_all_by_subscription_pagination(self, subscription_id, page=1, per_page=10): return ShipmentDao.read_by_subscription_pagination( subscription_id, page, per_page)