Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Inventory/models/entry.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ def create_entry(cls, bidding_sheet, inspections):
"""
entry = cls(
bidding_sheet=bidding_sheet,
source=bidding_sheet.biddingacceptance.accept_supplier.name)
source=bidding_sheet.bidding_acceptance.accept_supplier.name)
entry.save()
details = []
for inspection in inspections:
Expand Down
6 changes: 4 additions & 2 deletions Procurement/api/bidding.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@ class BiddingSheetViewSet(viewsets.ModelViewSet):
def get_serializer_class(self):
if self.action == 'list':
return serializers.BiddingSheetListSerializer
else:
return serializers.BaseBiddingSheetSerializer
elif self.action == 'retrieve':
return serializers.BiddingSheetReadSerializer
return serializers.BaseBiddingSheetSerializer


# 招标申请
Expand All @@ -38,6 +39,7 @@ class BiddingAcceptanceViewSet(viewsets.ModelViewSet):
pagination_class = SmallResultsSetPagination
queryset = models.BiddingAcceptance.objects.all().order_by('-pk')
serializer_class = serializers.BaseBiddingAcceptanceSerializer
filter_class = filters.BiddingAcceptanceFilter


# 比质比价卡
Expand Down
5 changes: 3 additions & 2 deletions Procurement/filters/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from .procurement import (PurchaseOrderFilter, ProcurementMaterialFilter)

from .bidding import (BiddingSheetFilter, BiddingApplicationFilter)
from .bidding import (BiddingSheetFilter, BiddingApplicationFilter,
BiddingAcceptanceFilter)

from .supplier import (SupplyRelationshipFilter, SupplyDocumentFilter,
SupplyQuotationFilter, SupplierFilter)
Expand All @@ -20,4 +21,4 @@
'MaterialSubApplyFilter', 'MaterialExcutionFilter',
'SupplyDocumentFilter', 'SupplyQuotationFilter',
'ContractDetailFilter', 'MaterialExecutionDetailFilter',
'SupplierFilter']
'BiddingAcceptanceFilter', 'SupplierFilter']
13 changes: 12 additions & 1 deletion Procurement/filters/bidding.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
from django_filters import rest_framework as filters
from Procurement import models
from Procurement import BIDDING_SHEET_STATUS_CHOICES


# 根据标单编号模糊查询
class BiddingSheetFilter(filters.FilterSet):
uid = filters.CharFilter(name='uid', lookup_expr='icontains')
status = filters.ChoiceFilter(name='status', lookup_expr='exact')
status = filters.MultipleChoiceFilter(
name='status', choices=BIDDING_SHEET_STATUS_CHOICES)

class Meta:
model = models.BiddingSheet
Expand All @@ -19,3 +21,12 @@ class BiddingApplicationFilter(filters.FilterSet):
class Meta:
model = models.BiddingApplication
fields = ('uid', 'status')


class BiddingAcceptanceFilter(filters.FilterSet):
bidding_sheet = filters.CharFilter(name='bidding_sheet',
lookup_expr='exact')

class Meta:
model = models.BiddingAcceptance
fields = ('bidding_sheet',)
30 changes: 22 additions & 8 deletions Procurement/filters/procurement.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from Procurement.models import (PurchaseOrder, ProcurementMaterial)
from Procurement import PURCHASE_ORDER_STATUS_CHOICES
from Process.models import (ProcessMaterial)
from Procurement import (PROCUREMENT_MATERIAL_STATUS, )
from Procurement import (PROCUREMENT_MATERIAL_STATUS, INVENTORY_TYPE)


class PurchaseOrderFilter(filters.FilterSet):
Expand All @@ -19,25 +19,29 @@ class Meta:


class ProcurementMaterialFilter(filters.FilterSet):

purchase_order = filters.CharFilter(name='purchase_order',
lookup_expr='exact')
inventory_type = filters.CharFilter(name='inventory_type',
lookup_expr='exact')
purchase_order_uid = filters.CharFilter(method='filter_purchase_order')

process_material_name = filters.CharFilter(
method='filter_process_material_name')

sub_work_order_uid = filters.CharFilter(method='filter_sub_work_order_uid')

status = filters.MultipleChoiceFilter(name='status',
choices=PROCUREMENT_MATERIAL_STATUS)

finished = filters.BooleanFilter(name='finished', lookup_expr='exact')

purchase_order = filters.CharFilter(name='purchase_order',
lookup_expr='exact')

inventory_type = filters.ChoiceFilter(name='inventory_type',
choices=INVENTORY_TYPE)

class Meta:
model = ProcurementMaterial
fields = ('purchase_order', 'inventory_type', 'purchase_order_uid',
'process_material_name', 'status', 'finished')
fields = ('purchase_order_uid', 'process_material_name',
'sub_work_order_uid', 'purchase_order', 'status', 'finished',
'inventory_type')

def filter_purchase_order(self, query_set, name, value):
purchase_order = PurchaseOrder.objects.filter(uid=value)
Expand All @@ -56,3 +60,13 @@ def filter_process_material_name(self, query_set, name, value):
procurement_materials = self.Meta.model.objects.filter(
process_material__in=process_materials)
return procurement_materials

def filter_sub_work_order_uid(self, query_set, name, value):
value = value.split('-') # 参见SubWorkOrder模型定义
if not value or len(value) != 2 or '' in value:
return self.Meta.model.objects.none()
procurement_materials = self.Meta.model.objects.filter(
sub_order__work_order__uid=value[0], sub_order__index=value[1])
if not procurement_materials:
return self.Meta.model.objects.none()
return procurement_materials
31 changes: 31 additions & 0 deletions Procurement/migrations/0013_auto_20180124_1648.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.6 on 2018-01-24 08:48
from __future__ import unicode_literals

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
('Procurement', '0012_auto_20180122_2046'),
]

operations = [
migrations.AlterField(
model_name='biddingacceptance',
name='bidding_sheet',
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='bidding_acceptance', to='Procurement.BiddingSheet', verbose_name='标单'),
),
migrations.AlterField(
model_name='biddingapplication',
name='bidding_sheet',
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='bidding_application', to='Procurement.BiddingSheet', verbose_name='标单'),
),
migrations.AlterField(
model_name='parityratiocard',
name='bidding_sheet',
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='parity_ratio_card', to='Procurement.BiddingSheet', verbose_name='标单'),
),
]
16 changes: 16 additions & 0 deletions Procurement/migrations/0014_merge_20180125_1059.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.6 on 2018-01-25 02:59
from __future__ import unicode_literals

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
('Procurement', '0013_auto_20180125_0023'),
('Procurement', '0013_auto_20180124_1648'),
]

operations = [
]
Loading