def sale_biscuit_to_client_update(instance, validated_data): ware_biscuit = get_warehouse_biscuit(instance.biscuit) ware_biscuit.add_quantity(instance.quantity) ware_biscuit.set_total_price() ware_biscuit.set_average_price() ware_biscuit.save() if instance.delivery_status[2][0] == 'delivered': biscuit_income(instance) sale_biscuit_to_client(validated_data)
def sale_biscuit(instance): ware_biscuit = get_warehouse_biscuit(instance.biscuit) if check_warehouse_biscuit_quantity(ware_biscuit, instance.quantity): ware_biscuit.subtract_quantity(instance.quantity) ware_biscuit.set_total_price() ware_biscuit.set_average_price() ware_biscuit.save() return True else: return False
def change_sale_biscuit(instance): obj = BuyingBiscuitLog.objects.get(sale_id=instance.id) ware_biscuit = get_warehouse_biscuit(instance.biscuit) if check_warehouse_biscuit_quantity(ware_biscuit, instance.quantity): ware_biscuit.add_quantity(obj.quantity) ware_biscuit.subtract_quantity(instance.quantity) ware_biscuit.set_total_price() ware_biscuit.set_average_price() ware_biscuit.save() obj.quantity = instance.quantity obj.biscuit = instance.biscuit obj.save()
def subtract_product(validated_data): biscuit = validated_data.get('biscuit') ware_biscuit = get_warehouse_biscuit(biscuit) recipe = get_biscuit_recipe(biscuit) for i in recipe: product = i.product value = i.value warehouse = get_warehouse_product(product) price = get_product_price(product) quantity_value = validated_data.get('quantity') * value new_total_price = price * quantity_value warehouse.quantity -= quantity_value warehouse.total_price -= new_total_price warehouse.save() ware_biscuit.add_quantity(validated_data.get('quantity')) ware_biscuit.set_total_price() ware_biscuit.save()
def subtract_product_update(instance, validated_data): biscuit = instance.biscuit old_recipe = get_biscuit_recipe(biscuit) ware_biscuit = get_warehouse_biscuit(biscuit) ware_biscuit.subtract_quantity(instance.quantity) ware_biscuit.set_total_price() ware_biscuit.save() for i in old_recipe: product = i.product value = i.value warehouse = get_warehouse_product(product) price = get_product_price(product) quantity_value = instance.quantity * value warehouse.quantity += quantity_value new_total_price = price * quantity_value warehouse.total_price += new_total_price warehouse.save() subtract_product(validated_data)
def validate(self, attrs): from apps.biscuit.utils.sale import check_warehouse_biscuit_quantity from apps.biscuit.utils.biscuit import get_warehouse_biscuit if not attrs.get('biscuit'): raise ValidationError({'error': 'Biscuit not found'}) if not attrs.get('quantity'): raise ValidationError({'error': 'quantity not found'}) if not attrs.get('comment'): raise ValidationError({'error': 'comment not found'}) if not attrs.get('payment_type'): raise ValidationError({'error': 'payment_type not found'}) if not attrs.get('client'): raise ValidationError({'error': 'client not found'}) ware_biscuit = get_warehouse_biscuit(attrs.get('biscuit')) quantity = attrs.get('quantity') if check_warehouse_biscuit_quantity(ware_biscuit, quantity) == False: raise ValidationError('Mahsulot yetarli emas!') return attrs
def sale_biscuit_to_client(validated_data): ware_biscuit = get_warehouse_biscuit(validated_data.get('biscuit')) ware_biscuit.subtract_quantity(validated_data.get('quantity')) ware_biscuit.set_total_price() ware_biscuit.set_average_price() ware_biscuit.save()