Exemple #1
0
    def create(self, request, *args, **kwargs):

        serializer    = BranchSerializer(data = request.data)
        if serializer.is_valid():
            serializer.save()
            return Response({'status':'201', 'msg': 'created successfully', 'data':serializer.data, }, status.HTTP_201_CREATED,)
        return Response({'status':'400', 'msg': 'Please Insert Correct value', 'data':serializer.errors, }, status.HTTP_400_BAD_REQUEST,)
Exemple #2
0
    def put(self,request,pk,format=None):

        branch              = Branch.objects.get(id=pk)
        serializer          = BranchSerializer(branch, data= request.data, partial = True)
        if serializer.is_valid():
            serializer.save()
            return Response({'status':'200', 'msg': 'Branch is updated', 'data':serializer.data, }, status.HTTP_200_OK,)
        
        return Response({'status':'400', 'msg': 'Please Insert Correct value', 'data':serializer.errors, }, status.HTTP_400_BAD_REQUEST)
Exemple #3
0
class BillSerializer(serializers.ModelSerializer):
    items = BillItemSerializer(many=True, required=False)
    buyer = CustomerSerializer()
    seller = StaffSerializer()
    branch = BranchSerializer(read_only=True)
    payments = CustomerPaymentSerializer(many=True, required=False)
    price = serializers.ReadOnlyField()
    total_discount = serializers.ReadOnlyField()
    buyer_special_discount = serializers.ReadOnlyField()
    items_discount = serializers.ReadOnlyField()
    final_price = serializers.ReadOnlyField()
    paid = serializers.ReadOnlyField()
    cheque_paid = serializers.ReadOnlyField()
    card_paid = serializers.ReadOnlyField()
    cash_paid = serializers.ReadOnlyField()
    remaining_payment = serializers.ReadOnlyField()
    items_count = serializers.ReadOnlyField()
    profit = serializers.ReadOnlyField()

    class Meta:
        model = Bill
        fields = ('pk', 'bill_code', 'create_date', 'status', 'close_date',
                  'buyer', 'seller', 'discount', 'used_points', 'branch',
                  'payments', 'items', 'bill_image', 'price', 'total_discount',
                  'buyer_special_discount', 'items_discount', 'final_price',
                  'paid', 'cheque_paid', 'cash_paid', 'card_paid',
                  'remaining_payment', 'items_count', 'profit')
Exemple #4
0
class BranchListCreateAPIView(ListCreateAPIView):

    queryset = Branch.objects.all()
    serializer_class = BranchSerializer(queryset, many=True)


    def get_permissions(self):
        if self.request.method == 'POST':
            return (UserPermission('can_create_dept'),)

        elif self.request.method == 'GET':
            return (permissions.AllowAny(),)
        raise MethodNotAllowed(method=self.request.method)
   
   
    def create(self, request, *args, **kwargs):

        serializer    = BranchSerializer(data = request.data)
        if serializer.is_valid():
            serializer.save()
            return Response({'status':'201', 'msg': 'created successfully', 'data':serializer.data, }, status.HTTP_201_CREATED,)
        return Response({'status':'400', 'msg': 'Please Insert Correct value', 'data':serializer.errors, }, status.HTTP_400_BAD_REQUEST,)

    def list(self, request, format=None):

        queryset = Branch.objects.all()
        serializer    = BranchSerializer(queryset, many = True)

        return Response({'status':'200', 'msg': 'showing data', 'data':serializer.data, }, status.HTTP_200_OK,)
Exemple #5
0
def branch(request):
    # only - qs, values - dict.
    branches = Branch.objects.all()
    if not request.session.get('current_branch'):
        # client_ip, is_routable = get_client_ip(request)
        # if client_ip is not None and is_routable:

        reader = geoip2.database.Reader(
            os.path.join(settings.BASE_DIR, 'GeoLite2-City.mmdb'))

        response = reader.city("145.255.9.175")  # Уфа BA
        client_city = response.city.names['ru']
        client_subdivisions = response.subdivisions.most_specific.iso_code
        reader.close()

        print(client_city, client_subdivisions)

        for branch_i in branches:
            if branch_i.city == client_city:  # match city
                serializer_data = BranchSerializer(branch_i).data
                serializer_data["phone"] = [
                    x.strip() for x in serializer_data["phone"].split(',')
                ]
                request.session['current_branch'] = serializer_data
                break

            elif branch_i.subdivision == client_subdivisions:  # if no city match then try find matching subdivision
                serializer_data = BranchSerializer(branch_i).data
                serializer_data["phone"] = [
                    x.strip() for x in serializer_data["phone"].split(',')
                ]
                request.session['current_branch'] = serializer_data

        if not request.session.get(
                'current_branch'):  # if no matches then assign first
            serializer_data = BranchSerializer(branches.first()).data
            serializer_data["phone"] = [
                x.strip() for x in serializer_data["phone"].split(',')
            ]
            request.session['current_branch'] = serializer_data

    branches_city_n_slug = branches.values('city', 'slug')

    return {"branches_city_n_slug": branches_city_n_slug}
Exemple #6
0
def get_branch(request, slug):
    branch = Branch.objects.get(slug=slug)

    serializer_data = BranchSerializer(branch).data

    serializer_data["phone"] = [
        x.strip() for x in serializer_data["phone"].split(',')
    ]
    serializer_data["coordinates"] = [
        x.strip() for x in serializer_data["coordinates"].split(',')
    ]
    request.session['current_branch'] = serializer_data
    request.session['is_branch_selected'] = True

    return Response(serializer_data)
Exemple #7
0
def contact_page(request, slug):
    current_branch = Branch.objects.get(slug=slug)

    serializer_data = BranchSerializer(current_branch).data

    serializer_data["phone"] = [
        x.strip() for x in serializer_data["phone"].split(',')
    ]
    current_branch.phone = [x.strip() for x in current_branch.phone.split(',')]
    serializer_data["coordinates"] = [
        float(x.strip()) for x in serializer_data["coordinates"].split(',')
    ]

    request.session['current_branch'] = serializer_data

    return render(request, 'branch/contact.html',
                  {'current_branch': current_branch})
Exemple #8
0
 def get(self, request):
     material_data = MaterialDropDownSerializer(Material.objects.all(),
                                                many=True).data
     design_data = DesignDropDownSerializer(Design.objects.all(),
                                            many=True).data
     color_data = ColorDropDownSerializer(Color.objects.all(),
                                          many=True).data
     f_type_data = FTypeDropDownSerializer(FType.objects.all(),
                                           many=True).data
     branch_data = BranchSerializer(Branch.objects.all(), many=True).data
     response = dict(branch=branch_data,
                     background_color=color_data,
                     design_color=color_data,
                     material=material_data,
                     design=design_data,
                     f_type=f_type_data)
     return Response(response)
class CourseSerializers(serializers.ModelSerializer):
    """Courses serializer"""
    contacts = ContactSerializer(many=True, )
    branches = BranchSerializer(many=True)
    category = serializers.PrimaryKeyRelatedField(
        queryset=Category.objects.all())

    class Meta:
        model = Courses
        fields = ("contacts", "branches", "name", "description", "category",
                  "logo")

    def create(self, validated_data):
        branches = validated_data.pop("branches")
        contact = validated_data.pop("contacts")
        course = Courses.objects.create(**validated_data)

        for branches in branches:
            Branch.objects.create(course=course, **branches)

        for contact in contact:
            Contact.objects.create(course=course, **contact)

        return course
Exemple #10
0
    def get(self, request, pk, *args, **kwargs):

        branch              = Branch.objects.get(id=pk)
        serializer          = BranchSerializer(branch)

        return Response({'status':'200', 'msg': 'showing data', 'data':serializer.data, }, status.HTTP_200_OK,)
Exemple #11
0
    def list(self, request, format=None):

        queryset = Branch.objects.all()
        serializer    = BranchSerializer(queryset, many = True)

        return Response({'status':'200', 'msg': 'showing data', 'data':serializer.data, }, status.HTTP_200_OK,)