Beispiel #1
0
    def post(self, request, *args, **kwargs):
        data = request.data
        product_id = data.get('product_id')
        origins = data.get('origins')
        product = Products.objects.get(id=int(product_id))
        product_origins = [org.country.code for org in product.origins]

        for origin_code in origins:
            if origin_code not in product_origins:
                new_origin = ProductOrigin()
                new_origin.product = product
                new_origin.country = Country(code=origin_code)
                new_origin.save()
            else:
                product_origins.remove(origin_code)

        message = 'Product origins updated successfully.'

        for origin_code in product_origins:
            country = Country(code=origin_code)
            delete_origin = ProductOrigin.objects.get(product=product,
                                                      country=country)
            origin_items = delete_origin.origin_product_item.count()
            if origin_items == 0:
                delete_origin.delete()
            else:
                message = message + ' ' + str(
                    country.name
                ) + ' was not deleted as it has a product item.'
        return Response({
            'success': True,
            'message': message
        },
                        status=status.HTTP_200_OK)
    def post(self, request, *args, **kwargs):
        base_url = request.META.get(
            'HTTP_HOST') if not settings.DEBUG else 'http://localhost:8000'
        data = request.data

        contact_us_from_website(base_url, data.get('name'), data.get('email'), \
                                data.get('subject'), data.get('comments'))
        validated_error = validated_contact_us(data.get('name'), data.get('email'), \
                                data.get('subject'), data.get('comments'))

        if validated_error is None:
            send_email.delay('Contact Us', {'name': data.get('name')},
                             'Thanks for Contacting Doni & Company',
                             send_to_email=[data.get('email')])

            send_email.delay('Contact Us Recieved', {
                'name': data.get('name'),
                'subject': data.get('subject'),
                'email': data.get('email'),
                'message': data.get('comments')
            },
                             '[Website] %s contacted from Doni & Company' %
                             data.get('name'),
                             send_to_email=settings.EMAIL_INFO)

            return Response(
                {
                    'success': True,
                    'message': 'We have received your message.'
                },
                status=status.HTTP_200_OK)
        else:
            return validated_error
 def get(self, request, *args, **kwargs):
     user = request.user
     business = Utilities.get_user_business(user)
     q = request.GET.get('q')
     if q == 'all' or q == 'drop_down':
         if q == 'all':
             locations = BpLocation.objects.filter(bp=business)
             locations = [loc.get_obj() for loc in locations]
         else:
             locations = BpLocation.drop_down_obj(business)
             print locations
         return Response({'locations': locations}, status=status.HTTP_200_OK)
     else:
         location = BpLocation.objects.get(id=q)
         location = location.get_obj()
         return Response({'location': location}, status=status.HTTP_200_OK)
Beispiel #4
0
    def get(self, request, *args, **kwargs):
        user = request.user
        business = user.profile.business
        all_business_ids = business.app_profile.all_associated_companies_id
        total_warehouse = Warehouse.objects.count()
        owned_warehouse = Warehouse.objects.filter(self_warehouse=True).count()
        all_warehouses = Warehouse.objects.all()
        all_warehouses = [
            warehouse.dashboard_warehouse_card()
            for warehouse in all_warehouses
        ]
        all_warehouse_product = InventoryTransactionTruckFlow.get_product_report_for_all_warehouse(
        )
        own_warehouse_product = InventoryTransactionTruckFlow.get_product_report_for_all_warehouse(
            own=True)
        business_product_report = InventoryTransactionTruckFlow.get_all_warehouse_butsiness_product_report(
            business_ids=all_business_ids)

        return Response(
            {
                'data': {
                    'totalWarehouseCount': total_warehouse,
                    'ownedWarehouseCount': owned_warehouse,
                    'allWarehouse': all_warehouses,
                    'allWarehousesProduct': all_warehouse_product,
                    'ownWarehouseProduct': own_warehouse_product,
                    'businessProductReport': business_product_report
                }
            },
            status=status.HTTP_200_OK)
Beispiel #5
0
 def post(self, request, *args, **kwargs):
     try:
         user = request.user
         business = user.profile.business
         data = request.data
         website = data.get('website')
         business.bp_website = website
         business.save()
         return Response(
             {
                 'success': True,
                 'message': 'Business details updated successfully!'
             },
             status=status.HTTP_200_OK)
     except Exception, e:
         return Response({'success': False, 'message': str(e)})
Beispiel #6
0
    def post(self, request, *args, **kwargs):
        local_trade_id = kwargs.get('file_id')
        new_payment = LocalTradePayment()

        return Response({

        }, status=status.HTTP_200_OK)
Beispiel #7
0
 def delete(self, request, *args, **kwargs):
     try:
         transaction_id = kwargs.get('tr_id')
         note_id = kwargs.get('note_id')
         note = TrNote.objects.filter(note_id=int(note_id)).filter(transaction__tr_id=int(transaction_id))
         file_id = note[0].transaction.file_id
         note.delete()
         return Response({
             'success':True,
             'message': 'Trade Note for File Id %s deleted successfully.' % file_id
         })
     except Exception, e:
         return Response({
             'success': False,
             'message': str(e)
         })
Beispiel #8
0
    def put(self, request, *args, **kwargs):
        local_trade_id = kwargs.get('file_id')
        payment_id = kwargs.get('payment_id')

        return Response({

        }, status=status.HTTP_200_OK)
class ManifestAPI(GenericAPIView):
    permission_classes = (IsAuthenticated, )

    def get(self, request, *args, **kwargs):
        start_date = request.GET.get(u'startDate')
        end_date = request.GET.get(u'endDate')
        start_date = dateutil.parser.parse(str(start_date).replace('"', ''))
        end_date = dateutil.parser.parse(str(end_date).replace('"', ''))

        return Response(
            {
                'manifestItems':
                ManifestItem.get_manifest_items(start_date, end_date)
            },
            status=status.HTTP_200_OK)

    def delete(self, request, *args, **kwargs):
        try:
            manifest_id = kwargs.get('manifest_id')
            manifest_item = ManifestItem.objects.get(id=manifest_id)
            manifest_item.delete()
            message = 'Manifest Item successfully deleted.'
            success = True
        except Exception, e:
            success = False
            message = str(e)
        return Response(
            {
                'manifest_id': manifest_id,
                'success': success,
                'message': message
            },
            status=status.HTTP_200_OK)
Beispiel #10
0
 def get(self, request, *args, **kwargs):
     product_item_id = request.GET.get('productItemId')
     product_item = ProductItem.objects.get(id=product_item_id)
     return Response({
         'specification': product_item.get_specification(),
         'success': True,
     })
    def save_product_item_price(self, data, user):
        update_id = data.get('id')
        product_item_id = data.get('productItemId')
        price_market_id = data.get('priceMarketId')
        price_metric_metric = data.get('priceMetricId')
        price_time = data.get('priceTime')
        comments = data.get('comments')
        price_items = data.get('priceItems')
        product_item = ProductItem.objects.get(id=product_item_id)
        price_market = PriceMarket.objects.get(id=price_market_id)
        price_metric = PriceMetric.objects.get(metric=price_metric_metric)
        if update_id:
            prod_price_item = ProductItemPrice.objects.get(id=update_id)
            msg = self.messages['successPUT']
            prod_price_item.update_by = user
            prod_price_item.update_at = dt.now()
        else:
            prod_price_item = ProductItemPrice()
            msg = self.messages['successPOST']
            prod_price_item.created_by = user

        prod_price_item.price_metric = price_metric
        prod_price_item.comments = comments
        prod_price_item.price_items = price_items
        prod_price_item.product_item = product_item
        prod_price_item.price_market = price_market
        prod_price_item.price_time = dateutil.parser.parse(price_time)
        prod_price_item.save()
        return Response(
            {
                'success': True,
                'message': msg,
                'obj': prod_price_item.get_obj()
            },
            status=status.HTTP_200_OK)
Beispiel #12
0
    def post(self, request, *args, **kwargs):
        params = request.data

        def error_response(error):
            return Response({
                'success': error,
                'message': 'Incorrect Password'
            },  status=status.HTTP_200_OK)

        if request.user.is_authenticated():
            print request.user
            password = params.get('oldPassword')
            user = authenticate(username=request.user.username,
                                password=password,
                                dashboard=True)
            if not user:
                return error_response('Incorrect Password')
            new_password = params.get('newPassword')
            confirm_password = params.get('confirmPassword')
            print new_password, confirm_password
            if new_password and new_password == confirm_password:
                try:
                    user = User.objects.get(username=request.user.username)
                    user.set_password(new_password)
                    user.save()
                    return Response({
                        'success': True,
                        'message': 'User Password Changed successfully'
                    }, status=status.HTTP_200_OK)
                except Exception, e:
                    return error_response(str(e))
Beispiel #13
0
 def put(self, request, *args, **kwargs):
     keyword_id = kwargs.get('id')
     keyword_data = request.data
     product_keyword = ProductKeyword.objects.get(id=keyword_id)
     product_keyword.name = keyword_data.get('keyword')
     product_keyword.save()
     return Response(status=status.HTTP_200_OK)
 def get(self, request, *args, **kwargs):
     user = request.user
     business = user.profile.business
     googe_analytics_connected = business.ga_token.exists()
     if googe_analytics_connected:
         ga_token = business.ga_token.all().order_by('-created')[0]
         ga_token_data = json.loads(ga_token.data)
         expiry = ga_token_data.get('token_expiry')
         expiry_date = dateutil.parser.parse(expiry)
         expiry_date = expiry_date.replace(tzinfo=pytz.UTC)
         is_expired = (dt.now(pytz.utc) > expiry_date)
         if is_expired:
             ga_token.delete()
             googe_analytics_connected = False
     dashboard_data = dict()
     dashboard_data['googleAnalyticsConnected'] = googe_analytics_connected
     if googe_analytics_connected and not is_expired:
         ga = GetGoogleAccessTokenAPI()
         data = ga.get_data_from_google_analytics(business)
         dashboard_data['data'] = data
     return Response({
         'success': True,
         'dashboardData': dashboard_data
     },
                     status=status.HTTP_200_OK)
Beispiel #15
0
    def post(self, request, *args, **kwargs):
        print request.data
        start_date = request.data.get(u'startDate')
        end_date = request.data.get(u'endDate')
        currency_in = request.data.get(u'currencyIn')
        currency_out = request.data.get(u'currencyOut')
        start_date = dateutil.parser.parse(str(start_date).replace('"', ''))
        end_date = dateutil.parser.parse(str(end_date).replace('"', ''))

        start_date = start_date.date()
        end_date = end_date.date()

        graph_data = CurrencyExchange.objects.filter(currency_code_in=currency_in)\
            .filter(currency_code_out=currency_out)\
            .filter(exchange_rate_on__range=(start_date,end_date))

        graph_data = [data.get_graph_obj() for data in graph_data]

        return Response({
            'data': {
                'graphData': graph_data
            },
            'success': True
        },
                        status=status.HTTP_200_OK)
Beispiel #16
0
 def get(self, request, *args, **kwargs):
     type = request.GET.get('type')
     page = request.GET.get('page')
     user = request.user
     all_business = self.get_all_business_drop_down(type, page, user.profile.business_id)
     return Response({
         'list': all_business
     }, status=status.HTTP_200_OK)
Beispiel #17
0
 def get(self, request, *args, **kwargs):
     port_id = kwargs.get('port_id')
     port = ShippingPort.objects.get(id=port_id)
     return Response({
         'portObj': port.get_obj(),
         'success': True
     },
                     status=status.HTTP_200_OK)
Beispiel #18
0
    def get(self, request, *args, **kwargs):
        all_warehouses = Warehouse.objects.filter(
            business=request.user.profile.business)
        all_warehouses = [
            warehouse.get_warehouse_list_obj() for warehouse in all_warehouses
        ]

        return Response({'list': all_warehouses}, status=status.HTTP_200_OK)
 def get(self, request, *args, **kwargs):
     user = request.user
     alpha = request.GET.get('alpha')
     base_url = request.META.get('HTTP_HOST')
     business = Utilities.get_user_business(user)
     all_business = self.get_business_list(business, base_url, alpha)
     return Response({'businessList': all_business},
                     status=status.HTTP_200_OK)
Beispiel #20
0
 def get(self, request, *args, **kwargs):
     user = request.user
     q = request.GET.get('q')
     base_url = request.META.get('HTTP_HOST')
     business = Utilities.get_user_business(user)
     if q == self.ALL_QUERY or q == self.DROP_DOWN_QUERY:
         all_users = UserProfile.objects.filter(business=business)
         return Response(
             {
                 'list':
                 [user.get_list_obj(request.user.id) for user in all_users]
             },
             status=status.HTTP_200_OK)
     else:
         profile = UserProfile.objects.get(user__id=int(q))
         return Response({'user': profile.complete_profile(base_url)},
                         status=status.HTTP_200_OK)
Beispiel #21
0
 def delete(self, request, *args, **kwargs):
     data = request.data
     id = data.get('id')
     cat = ProductCategory.objects.get(id=id)
     if cat.product_count == 0:
         cat.delete()
         return Response({
             'success': True,
             'message': 'Category successfully delete.'
         })
     else:
         return Response({
             'success':
             False,
             'message':
             'Some Products are associated with these products, hence can not be deleted.'
         })
Beispiel #22
0
 def delete(self, request, *args, **kwargs):
     try:
         product_id = kwargs.get('product_id', None)
         if product_id:
             product_id = int(product_id)
             product = Products.objects.get(id=product_id)
             product.delete()
             cache.delete('get_product_drop_down')
             return Response(
                 {
                     'id': product_id,
                     'success': True,
                     'message': product.name + ' delete successfully.'
                 },
                 status=status.HTTP_200_OK)
     except Exception, e:
         return Response({'success': False, 'message': str(e)})
 def get(self, request, *args, **kwargs):
     query = request.GET.get('q')
     pricing_market = PriceMarket.objects.all().order_by('origin')
     pricing_market = [market.get_obj() for market in pricing_market]
     return Response({'data': {
         'pricingMarket': pricing_market
     }},
                     status=status.HTTP_200_OK)
 def save_manifest_item(self, data, user):
     try:
         data = data.get('manifestItem')
         manifest_id = data.get('id')
         metric = data.get('quantityMetricId')
         manifest_date = dateutil.parser.parse(data.get('date'))
         buyer_id = data.get('buyerId')
         seller_id = data.get('sellerId')
         product_id = data.get('productId')
         quantity = data.get('quantity')
         container_no = data.get('containerNo')
         if int(buyer_id) == int(seller_id):
             return Response(
                 {
                     'success': False,
                     'message': 'Buyer and Supplier can not be same'
                 },
                 status=status.HTTP_200_OK)
         if manifest_id:
             manifest_item = ManifestItem.objects.get(id=int(manifest_id))
             manifest_item.updated_by = user
             manifest_item.updated_at = dt.now()
             message = 'Manifest item updated successfully'
         else:
             manifest_item = ManifestItem()
             manifest_item.created_by = user
             message = 'Manifest item created successfully'
         manifest_item.date = manifest_date
         manifest_item.quantity = quantity
         manifest_item.quantity_metric = PriceMetric.objects.get(
             metric=metric)
         manifest_item.buyer = BpBasic.objects.get(bp_id=int(buyer_id))
         manifest_item.seller = BpBasic.objects.get(bp_id=int(seller_id))
         manifest_item.product = Products.objects.get(id=int(product_id))
         manifest_item.container_no = container_no
         manifest_item.save()
         return Response(
             {
                 'success': True,
                 'message': message,
                 'item': manifest_item.get_list_obj(),
             },
             status=status.HTTP_200_OK)
     except Exception, e:
         return Response({'success': False, 'message': str(e)})
 def get(self, request, *args, **kwargs):
     base_url = request.META.get('HTTP_HOST')
     shipping_line = ShippingLine.objects.all()
     shipping_line = [line.get_list_obj(base_url) for line in shipping_line]
     return Response({
         'list': shipping_line,
         'success': True
     },
                     status=status.HTTP_200_OK)
Beispiel #26
0
 def get(self, request, *args, **kwargs):
     inventory_record_id = request.GET.get('id')
     record = InventoryTransaction.objects.get(id=inventory_record_id)
     return Response(
         {
             'success': True,
             'recordObj': record.get_complete_obj()
         },
         status=status.HTTP_200_OK)
Beispiel #27
0
 def get(self, request, *args, **kwargs):
     for_pricing = request.GET.get('pricingOnWebsiteOnly', False)
     for_pricing = str(for_pricing)
     print for_pricing
     product_items = ProductItem.objects.all().order_by('product_origin__product__name')
     if for_pricing == 'true':
         product_items = product_items.filter(price_on_website=True)
     product_items = [product.get_dropdown() for product in product_items]
     return Response({'list': product_items}, status=status.HTTP_200_OK)
Beispiel #28
0
 def get(self, request, *args, **kwargs):
     product_id = request.GET.get('q')
     if product_id != 'all':
         product = Products.objects.get(id=product_id)
         keywords = ProductKeyword.objects.filter(category=product.category)
     else:
         keywords = ProductKeyword.objects.all()
     keywords = [key.get_obj() for key in keywords]
     return Response({'list': keywords},  status=status.HTTP_200_OK)
Beispiel #29
0
 def get(self, request, *args, **kwargs):
     country_code = request.GET.get('q')
     from cities_light.models import Region
     regions = Region.objects.filter(country__code2=country_code).order_by('name')
     regions = [{
                    'id': region.name_ascii,
                    'name': region.name_ascii
                } for region in regions]
     return Response({'list': regions}, status=status.HTTP_200_OK)
Beispiel #30
0
 def put(self, request, *args, **kwargs):
     origin_id = kwargs.get('origin_id')
     origin_data = request.data
     user = request.user
     origin = Origin.objects.get(id=origin_id)
     origin.name = origin_data.get('name')
     origin.updated_by = user
     origin.save()
     return Response(status=status.HTTP_200_OK)