diff --git a/api/migrations/0002_auto_20201220_1630.py b/api/migrations/0002_auto_20201229_1028.py similarity index 88% rename from api/migrations/0002_auto_20201220_1630.py rename to api/migrations/0002_auto_20201229_1028.py index 371f946e3a82f7812624da989a5befc79dddadfa..cfff94743344f0a16ba79e60d19b424fa7ba9fe0 100644 --- a/api/migrations/0002_auto_20201220_1630.py +++ b/api/migrations/0002_auto_20201229_1028.py @@ -1,4 +1,4 @@ -# Generated by Django 3.0.7 on 2020-12-20 09:30 +# Generated by Django 3.0.7 on 2020-12-29 03:28 import api.utils from decimal import Decimal @@ -16,6 +16,14 @@ class Migration(migrations.Migration): ] operations = [ + migrations.RemoveField( + model_name='product', + name='pre_order', + ), + migrations.RemoveField( + model_name='transactionitem', + name='product_pre_order', + ), migrations.AddField( model_name='product', name='modal', diff --git a/api/models.py b/api/models.py index 0be38e8997f120e235dcaf60fdc18214c81e2a96..5ba7ff5c5b813554bcbe2055cdb5b1619fbfed23 100644 --- a/api/models.py +++ b/api/models.py @@ -133,7 +133,7 @@ class Product(db_models.Model): verbose_name=_('price') ) stock = db_models.PositiveIntegerField(blank=True, null=True, verbose_name=_('stock')) - pre_order = db_models.BooleanField(default=False, verbose_name=_('pre-order')) + modal = db_models.DecimalField( decimal_places=2, default=decimal.Decimal('0'), @@ -141,7 +141,6 @@ class Product(db_models.Model): validators=[validators.MinValueValidator(decimal.Decimal('0.01'))], verbose_name=_('modal') ) - profit= db_models.DecimalField( blank=True, null=True, @@ -170,11 +169,6 @@ class Product(db_models.Model): verbose_name = _('product') verbose_name_plural = _('products') - def save(self, *args, **kwargs): # pylint: disable=arguments-differ - if (self.pre_order) and (self.stock is not None): - self.stock = None - super().save(*args, **kwargs) - def __str__(self): return self.code @@ -376,7 +370,7 @@ class TransactionItem(db_models.Model): validators=[validators.MinValueValidator(decimal.Decimal('0.01'))], verbose_name=_('product price') ) - product_pre_order = db_models.BooleanField(verbose_name=_('product pre-order')) + quantity = db_models.PositiveIntegerField(verbose_name=_('quantity')) class Meta: diff --git a/api/reports_writer.py b/api/reports_writer.py index 6218ff5b7e6a7348d6fa6aa27d6601d1ce3e80cc..95a49ca29c8994433f4f37c8edce5f07874cc1bd 100644 --- a/api/reports_writer.py +++ b/api/reports_writer.py @@ -246,7 +246,6 @@ def create_transaction_report(filter_params): # pylint: disable=too-many-locals (transaction_item_transaction_transaction_number_with_hyperlink, _('Transaction Number')), ('product_name', _('Product Name')), ('product_price', _('Product Price')), - ('product_pre_order', _('Product Pre-Order')), ('quantity', _('Quantity')), ] write_queryset_data_to_worksheet( diff --git a/api/seeds.py b/api/seeds.py index 04add48a3e98e02e609b95208b7c1f3cc7f01b24..bcbb8fdba4f7031fef3a8c983a4c6e7a9885b221 100644 --- a/api/seeds.py +++ b/api/seeds.py @@ -99,7 +99,7 @@ SHIPMENT_CONFIG_DATA = { BATCH_DATA = { 'batch_name': 'Batch 1', - 'start_date': '2020-12-19', - 'end_date': '2020-12-25', + 'start_date': '2020-12-26', + 'end_date': '2021-01-01', 'shipping_cost': '60000', } diff --git a/api/serializers.py b/api/serializers.py index 17c84e7a837ee3ee60914a5b967f414ee002193b..90263e533b3c63ae75447df34490a1ecdbef1556 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -261,7 +261,6 @@ class ProductSerializer(serializers.ModelSerializer): 'description', 'price', 'stock', - 'pre_order', 'modal', 'profit', 'image', @@ -270,16 +269,7 @@ class ProductSerializer(serializers.ModelSerializer): model = models.Product read_only_fields = ['id', 'code'] - def validate(self, attrs): - instance = self.instance - stock = attrs.get('stock', getattr(instance, 'stock', None)) - pre_order = attrs.get('pre_order', getattr(instance, 'pre_order', None)) - errors = {} - if (stock is None) and (not pre_order): - errors['stock'] = _('Stock cannot be empty if it is not a pre-order.') - if errors: - raise serializers.ValidationError(errors) - return super().validate(attrs) + class CartItemSerializer(serializers.ModelSerializer): @@ -318,7 +308,6 @@ class TransactionItemSerializer(serializers.ModelSerializer): 'product_code', 'product_name', 'product_price', - 'product_pre_order', 'quantity', ] model = models.TransactionItem @@ -327,7 +316,6 @@ class TransactionItemSerializer(serializers.ModelSerializer): 'product', 'product_name', 'product_price', - 'product_pre_order', 'quantity', ] diff --git a/api/signals.py b/api/signals.py index 4b0fae77f371e26a4fd561e9df07bfa431148bab..6340fe60c31b773370fdbc71a5c09d8e5f7dfaaa 100644 --- a/api/signals.py +++ b/api/signals.py @@ -71,12 +71,10 @@ def fill_dependent_transaction_item_fields(sender, instance, **_kwargs): if instance.product is None: instance.product_name = None instance.product_price = None - instance.product_pre_order = None else: instance.product_name = instance.product.name instance.product_price = instance.product.price - instance.product_pre_order = instance.product.pre_order diff --git a/api/tests.py b/api/tests.py index 3118996f4d6d655ea752362bd2291c001f11d6e7..7f95b7ee80a6f0a148c4eb046575050012e0cd1e 100644 --- a/api/tests.py +++ b/api/tests.py @@ -1168,7 +1168,6 @@ class ProductTest(rest_framework_test.APITestCase): def test_create_product_success(self): data = seeds.PRODUCT_DATA - data['pre_order'] = True data['subcategory']= self.subcategory.id response = request( @@ -1184,7 +1183,7 @@ class ProductTest(rest_framework_test.APITestCase): def test_create_product_fail(self): data = dict(seeds.PRODUCT_DATA, subcategory=self.subcategory.id) - data['stock'] = None + data['name'] = None response = request( 'POST', 'product-list', diff --git a/api/views.py b/api/views.py index 58c753ce7259da070ed18e97ca6cd8b45c9dfbfa..dc62ed4007187378a1ea6ad3315ab042f08d1bff 100644 --- a/api/views.py +++ b/api/views.py @@ -172,14 +172,7 @@ class CartCheckout(rest_framework_views.APIView): transaction_status = ( '001' if serializer.validated_data['payment_method'] == 'TRF' else '002' ) - batch = ( - None if serializer.validated_data['payment_method'] == 'TRF' - else models.Batch.objects.filter( - start_date__lte=timezone.now().date(), - end_date__gte=timezone.now().date()).first() - ) - transaction = models.Transaction.objects.create( user=user, payment_method=serializer.validated_data['payment_method'], @@ -667,7 +660,6 @@ class ProductDetail(generics.RetrieveUpdateDestroyAPIView): if (self.request != None): if (self.request.data.get("price") != None) and (self.request.data.get("modal") != None): - instance=self.get_object() draft_request_data = self.request.data.copy() profit= int(self.request.data['price'])-int(self.request.data['modal']) new_profit={'profit': profit}