Permitiendo números decimales para la cantidad de productos en las compras #5 #6
@ -0,0 +1,18 @@
|
||||
# Generated by Django 5.0.6 on 2025-04-06 20:59
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('don_confiao', '0037_admincode'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='saleline',
|
||||
name='quantity',
|
||||
field=models.DecimalField(decimal_places=2, max_digits=10, null=True),
|
||||
),
|
||||
]
|
@ -128,7 +128,7 @@ class SaleLine(models.Model):
|
||||
|
||||
sale = models.ForeignKey(Sale, on_delete=models.CASCADE)
|
||||
product = models.ForeignKey(Product, null=False, blank=False, on_delete=models.CASCADE)
|
||||
quantity = models.IntegerField(null=True)
|
||||
quantity = models.DecimalField(max_digits=10, decimal_places=2, null=True)
|
||||
unit_price = models.DecimalField(max_digits=9, decimal_places=2)
|
||||
description = models.CharField(max_length=255, null=True, blank=True)
|
||||
|
||||
|
@ -34,6 +34,25 @@ class TestAPI(APITestCase):
|
||||
content['id']
|
||||
)
|
||||
|
||||
def test_create_sale_with_decimal(self):
|
||||
response = self._create_sale_with_decimal()
|
||||
content = json.loads(response.content.decode('utf-8'))
|
||||
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||
self.assertEqual(Sale.objects.count(), 1)
|
||||
sale = Sale.objects.all()[0]
|
||||
self.assertEqual(
|
||||
sale.customer.name,
|
||||
self.customer.name
|
||||
)
|
||||
self.assertEqual(
|
||||
sale.id,
|
||||
content['id']
|
||||
)
|
||||
self.assertEqual(
|
||||
sale.get_total(),
|
||||
16500.00
|
||||
)
|
||||
|
||||
def test_get_products(self):
|
||||
url = '/don_confiao/api/products/'
|
||||
response = self.client.get(url)
|
||||
@ -90,10 +109,10 @@ class TestAPI(APITestCase):
|
||||
expected_rows = [
|
||||
[self.customer.name, self.customer.name, self.customer.name, "",
|
||||
"", "2024-09-02 00:00:00+00:00", "Contado", "Almacén",
|
||||
"Peso colombiano", self.product.name, "2", "3000.00", "Unidad",
|
||||
"Peso colombiano", self.product.name, "2.00", "3000.00", "Unidad",
|
||||
"TIENDA LA ILUSIÓN", "Tienda La Ilusion", "La Ilusion", "True", ""
|
||||
],
|
||||
["", "", "", "", "", "", "", "", "", self.product.name, "3",
|
||||
["", "", "", "", "", "", "", "", "", self.product.name, "3.00",
|
||||
"5000.00", "Unidad", "", "", "", "", ""
|
||||
],
|
||||
]
|
||||
@ -112,3 +131,24 @@ class TestAPI(APITestCase):
|
||||
],
|
||||
}
|
||||
return self.client.post(url, data, format='json')
|
||||
|
||||
def _create_sale_with_decimal(self):
|
||||
url = '/don_confiao/api/sales/'
|
||||
data = {
|
||||
'customer': self.customer.id,
|
||||
'date': '2024-09-02',
|
||||
'payment_method': 'CASH',
|
||||
'saleline_set': [
|
||||
{
|
||||
'product': self.product.id,
|
||||
'quantity': 0.5,
|
||||
'unit_price': 3000
|
||||
},
|
||||
{
|
||||
'product': self.product.id,
|
||||
'quantity': 3,
|
||||
'unit_price': 5000
|
||||
}
|
||||
],
|
||||
}
|
||||
return self.client.post(url, data, format='json')
|
||||
|
@ -65,8 +65,8 @@ class TestExportarVentasParaTryton(TestCase):
|
||||
self.assertEqual(next(csv_reader), expected_header)
|
||||
|
||||
expected_rows = [
|
||||
["Camilo", "Camilo", "Camilo", "", "", "2024-09-02 00:00:00+00:00", "Contado", "Almacén", "Peso colombiano", "Panela", "2", "3000.00", "Unidad", "TIENDA LA ILUSIÓN", "Tienda La Ilusion", "La Ilusion", "True", ""],
|
||||
["", "", "", "", "", "", "", "", "", "Panela", "3", "5000.00", "Unidad", "", "", "", "", ""],
|
||||
["Camilo", "Camilo", "Camilo", "", "", "2024-09-02 00:00:00+00:00", "Contado", "Almacén", "Peso colombiano", "Panela", "2.00", "3000.00", "Unidad", "TIENDA LA ILUSIÓN", "Tienda La Ilusion", "La Ilusion", "True", ""],
|
||||
["", "", "", "", "", "", "", "", "", "Panela", "3.00", "5000.00", "Unidad", "", "", "", "", ""],
|
||||
]
|
||||
csv_rows = list(csv_reader)
|
||||
self.assertEqual(csv_rows[0], expected_rows[0])
|
||||
|
Loading…
Reference in New Issue
Block a user