Esempio n. 1
0
 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()
Esempio n. 2
0
    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)
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)
Esempio n. 5
0
 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)
Esempio n. 6
0
 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)
Esempio n. 7
0
    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()
Esempio n. 8
0
 def update_shipment_payment_status(self, shipment_id, payment_status):
     ShipmentDao.update_payment_status(shipment_id, payment_status)
Esempio n. 9
0
 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)
Esempio n. 10
0
  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
Esempio n. 11
0
 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)
Esempio n. 12
0
 def get_one(self, shipment_id):
     return ShipmentDao.read_one(shipment_id)
Esempio n. 13
0
 def update_shipping_dt(self, shipment, shipping_dt):
     ShipmentDao.update_shipping_dt(shipment['id'], shipping_dt)
Esempio n. 14
0
 def update_shipment_shipping_status(self, shipment_id, shipping_status):
     ShipmentDao.update_shipping_status(shipment_id, shipping_status)
Esempio n. 15
0
 def get_all(self):
     return ShipmentDao.read_all()
Esempio n. 16
0
 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)
Esempio n. 17
0
 def count_canceled_by_customer(self, customer_id):
     return ShipmentDao.count_canceled_by_customer(customer_id)
Esempio n. 18
0
 def sum_by_customer(self, customer_id):
     return ShipmentDao.sum_by_customer(customer_id)
Esempio n. 19
0
 def get_all_by_subscription(self, subscription_id, nocanceled, nopaid):
     return ShipmentDao.read_by_subscription(subscription_id, nocanceled,
                                             nopaid)
Esempio n. 20
0
 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)