def subtract_quantity_unfit_biscuit(instance):
    obj = AddUnFitBiscuitLog.objects.get(unfit_biscuit_id=instance.id)
    unfit_biscuit, _ = get_or_create_unfit_biscuit(instance.biscuit,
                                                   instance.status)
    unfit_biscuit.subtract_quantity(obj.quantity)
    unfit_biscuit.set_total_price()
    unfit_biscuit.save()
    recipe = get_biscuit_recipe(instance.biscuit)
    for i in recipe:
        product = i.product
        value = i.value
        warehouse = get_warehouse_product(product)
        price = get_product_price(product)
        quantity_value = obj.quantity * value
        warehouse.quantity += quantity_value
        new_total_price = price * quantity_value
        warehouse.total_price += new_total_price
        new_quantity_value = instance.quantity * value
        warehouse.quantity -= new_quantity_value
        new_total_price = price * new_quantity_value
        warehouse.total_price -= new_total_price
        warehouse.save()
    unfit_biscuit.add_quantity(instance.quantity)
    unfit_biscuit.set_total_price()
    unfit_biscuit.save()
    obj.quantity = instance.quantity
    obj.save()
Beispiel #2
0
def add_manufactured_product(instance):
    product = get_manufactured_product(instance.product.id)
    ware_product = get_warehouse_manufactured_product(product)
    recipe = get_product_recipe(product)
    for i in recipe:
        product = i.product
        value = i.value
        warehouse = get_warehouse_product(product)
        price = get_product_price(product)
        quantity_value = Decimal(instance.quantity) * Decimal(value)
        new_total_price = Decimal(price) * quantity_value
        if check_warehouse_product_quantity(recipe,
                                            instance.quantity) == len(recipe):
            warehouse.quantity -= Decimal(quantity_value)
            warehouse.total_price -= Decimal(new_total_price)
            warehouse.save()
    if check_warehouse_product_quantity(recipe,
                                        instance.quantity) == len(recipe):
        ware_product.add_quantity(Decimal(instance.quantity))
        ware_product.set_total_price()
        ware_product.set_average_price()
        ware_product.save()
        return True
    else:
        return False
Beispiel #3
0
def sub_product(instance):
    warehouse_product_data = {}
    obj = AddProductLog.objects.get(add_product_id=instance.id)
    warehouse_product_data['quantity'] = obj.quantity
    total_price = obj.quantity * obj.price
    product = get_warehouse_product(instance.product)
    warehouse_serializer = ProductSubtractUpdateModelSerializer(
        product, data=warehouse_product_data)
    warehouse_serializer.is_valid(raise_exception=True)
    warehouse_serializer.save()
    product.total_price -= Decimal(total_price)
    product.set_average_price()
    product.save()
def add_product_to_warehouse_update(instance, validated_data):
    warehouse_product_data = {}
    warehouse_product_data['quantity'] = instance.quantity
    total_price = instance.quantity * instance.price
    product = get_warehouse_product(instance.product)
    warehouse_serializer = ProductSubtractUpdateModelSerializer(
        product, data=warehouse_product_data)
    warehouse_serializer.is_valid(raise_exception=True)
    warehouse_serializer.save()
    product.total_price -= Decimal(total_price)
    product.set_average_price()
    product.save()
    add_product_to_warehouse(validated_data)
Beispiel #5
0
def add_product(instance):
    warehouse_product_data = {}
    total_price = instance.quantity * instance.price
    warehouse_product_data['quantity'] = Decimal(instance.quantity)
    product = get_warehouse_product(instance.product)
    warehouse_serializer = ProductAddUpdateModelSerializer(
        product, data=warehouse_product_data)
    warehouse_serializer.is_valid(raise_exception=True)
    warehouse_serializer.save()
    product.total_price += Decimal(total_price)
    product.set_average_price()
    product.save()
    ProductPriceList.objects.create(product=instance.product,
                                    price=Decimal(instance.price))
def unfit_biscuit_add_quantity(validated_data, unfit_biscuit):
    recipe = get_biscuit_recipe(validated_data.get('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
        warehouse.quantity -= quantity_value
        new_total_price = price * quantity_value
        warehouse.total_price -= new_total_price
        warehouse.save()
    unfit_biscuit.add_quantity(validated_data.get('quantity'))
    unfit_biscuit.set_total_price()
    unfit_biscuit.save()
def add_quantity_unfit_biscuit(instance):
    unfit_biscuit, _ = get_or_create_unfit_biscuit(instance.biscuit,
                                                   instance.status)
    recipe = get_biscuit_recipe(instance.biscuit)
    for i in 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()
    unfit_biscuit.add_quantity(instance.quantity)
    unfit_biscuit.set_total_price()
    unfit_biscuit.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 unfit_biscuit_subtract_quantity(instance, validated_data):
    unfit_biscuit, _ = get_or_create_unfit_biscuit(instance.biscuit, instance.status)
    unfit_biscuit.subtract_quantity(instance.quantity)
    unfit_biscuit.set_total_price()
    unfit_biscuit.save()
    old_recipe = get_biscuit_recipe(instance.biscuit)
    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()
    unfit_biscuit, _ = get_or_create_unfit_biscuit(validated_data.get('biscuit'), validated_data.get('status'))
    unfit_biscuit_add_quantity(validated_data, unfit_biscuit)
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 manufactured_product_add_update(instance, validated_data):
    product = instance.product
    ware_product = get_warehouse_manufactured_product(product)
    recipe = get_product_recipe(product)
    ware_product.subtract_quantity(instance.quantity)
    ware_product.set_total_price()
    ware_product.set_average_price()
    ware_product.save()
    for i in 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()
    manufactured_product_add(validated_data)
def manufactured_product_add(validated_data):
    product = validated_data.get('product')
    ware_product = get_warehouse_manufactured_product(product)
    recipe = get_product_recipe(product)
    for i in recipe:
        product = i.product
        value = i.value
        warehouse = get_warehouse_product(product)
        price = get_product_price(product)
        quantity_value = Decimal(
            validated_data.get('quantity')) * Decimal(value)
        new_total_price = Decimal(price) * quantity_value
        warehouse.quantity -= Decimal(quantity_value)
        warehouse.total_price -= Decimal(new_total_price)
        warehouse.save()
    ware_product.add_quantity(Decimal(validated_data.get('quantity')))
    ware_product.set_total_price()
    ware_product.set_average_price()
    ware_product.save()
Beispiel #13
0
def subtract_manufactured_product(instance):
    obj = AddManufacturedProductLog.objects.get(
        manufactured_product_id=instance.id)
    product = get_manufactured_product(instance.product.id)
    ware_product = get_warehouse_manufactured_product(product)
    recipe = get_product_recipe(product)
    if check_warehouse_product_quantity(recipe,
                                        instance.quantity) == len(recipe):
        ware_product.subtract_quantity(obj.quantity)
        ware_product.set_total_price()
        ware_product.set_average_price()
        ware_product.save()
    for i in recipe:
        product = i.product
        value = i.value
        warehouse = get_warehouse_product(product)
        price = get_product_price(product)
        quantity_value = obj.quantity * value
        warehouse.quantity += quantity_value
        new_total_price = price * quantity_value
        warehouse.total_price += new_total_price
        new_quantity_value = instance.quantity * value
        if check_warehouse_product_quantity(recipe,
                                            instance.quantity) == len(recipe):
            warehouse.quantity -= new_quantity_value
            new_total_price = price * new_quantity_value
            warehouse.total_price -= new_total_price
            warehouse.save()
    if check_warehouse_product_quantity(recipe,
                                        instance.quantity) == len(recipe):
        ware_product.add_quantity(instance.quantity)
        ware_product.set_total_price()
        ware_product.set_average_price()
        ware_product.save()
        obj.quantity = instance.quantity
        obj.product = instance.product
        obj.save()