final 1
This commit is contained in:
parent
c79ace1553
commit
d0b49e0c8a
Binary file not shown.
@ -299,7 +299,7 @@ def pos(request):
|
|||||||
|
|
||||||
products = Product.objects.filter(is_active=True).select_related('category')
|
products = Product.objects.filter(is_active=True).select_related('category')
|
||||||
categories = Category.objects.all()
|
categories = Category.objects.all()
|
||||||
customers = Customer.objects.filter(is_active=True)
|
customers = Customer.objects.all()
|
||||||
payment_methods = PaymentMethod.objects.filter(is_active=True)
|
payment_methods = PaymentMethod.objects.filter(is_active=True)
|
||||||
settings = SystemSetting.objects.first()
|
settings = SystemSetting.objects.first()
|
||||||
|
|
||||||
@ -373,7 +373,7 @@ def invoice_detail(request, pk):
|
|||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def invoice_create(request):
|
def invoice_create(request):
|
||||||
customers = Customer.objects.filter(is_active=True)
|
customers = Customer.objects.all()
|
||||||
products = Product.objects.filter(is_active=True).select_related('category')
|
products = Product.objects.filter(is_active=True).select_related('category')
|
||||||
payment_methods = PaymentMethod.objects.filter(is_active=True)
|
payment_methods = PaymentMethod.objects.filter(is_active=True)
|
||||||
site_settings = SystemSetting.objects.first()
|
site_settings = SystemSetting.objects.first()
|
||||||
@ -551,7 +551,55 @@ def delete_sale(request, pk): return redirect('invoices')
|
|||||||
@login_required
|
@login_required
|
||||||
def supplier_payments(request): return redirect('purchases')
|
def supplier_payments(request): return redirect('purchases')
|
||||||
@login_required
|
@login_required
|
||||||
def settings_view(request): return render(request, 'core/settings.html')
|
def settings_view(request):
|
||||||
|
settings, created = SystemSetting.objects.get_or_create(id=1)
|
||||||
|
|
||||||
|
if request.method == 'POST':
|
||||||
|
# Business Profile
|
||||||
|
settings.business_name = request.POST.get('business_name', '')
|
||||||
|
settings.email = request.POST.get('email', '')
|
||||||
|
settings.phone = request.POST.get('phone', '')
|
||||||
|
settings.vat_number = request.POST.get('vat_number', '')
|
||||||
|
settings.registration_number = request.POST.get('registration_number', '')
|
||||||
|
settings.address = request.POST.get('address', '')
|
||||||
|
|
||||||
|
# Financial
|
||||||
|
settings.currency_symbol = request.POST.get('currency_symbol', 'OMR')
|
||||||
|
settings.tax_rate = request.POST.get('tax_rate', 0)
|
||||||
|
settings.decimal_places = request.POST.get('decimal_places', 3)
|
||||||
|
settings.allow_zero_stock_sales = request.POST.get('allow_zero_stock_sales') == 'on'
|
||||||
|
|
||||||
|
# Loyalty
|
||||||
|
settings.loyalty_enabled = request.POST.get('loyalty_enabled') == 'on'
|
||||||
|
settings.min_points_to_redeem = request.POST.get('min_points_to_redeem', 100)
|
||||||
|
settings.points_per_currency = request.POST.get('points_per_currency', 1.0)
|
||||||
|
settings.currency_per_point = request.POST.get('currency_per_point', 0.010)
|
||||||
|
|
||||||
|
# WhatsApp (Wablas)
|
||||||
|
settings.wablas_enabled = request.POST.get('wablas_enabled') == 'on'
|
||||||
|
settings.wablas_server_url = request.POST.get('wablas_server_url', '')
|
||||||
|
settings.wablas_token = request.POST.get('wablas_token', '')
|
||||||
|
settings.wablas_secret_key = request.POST.get('wablas_secret_key', '')
|
||||||
|
|
||||||
|
# Logo Upload
|
||||||
|
if 'logo' in request.FILES:
|
||||||
|
settings.logo = request.FILES['logo']
|
||||||
|
|
||||||
|
settings.save()
|
||||||
|
messages.success(request, _('System settings updated successfully.'))
|
||||||
|
return redirect('settings')
|
||||||
|
|
||||||
|
payment_methods = PaymentMethod.objects.all()
|
||||||
|
devices = Device.objects.all()
|
||||||
|
loyalty_tiers = LoyaltyTier.objects.all()
|
||||||
|
|
||||||
|
return render(request, 'core/settings.html', {
|
||||||
|
'settings': settings,
|
||||||
|
'payment_methods': payment_methods,
|
||||||
|
'devices': devices,
|
||||||
|
'loyalty_tiers': loyalty_tiers,
|
||||||
|
})
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def profile_view(request): return render(request, 'core/profile.html')
|
def profile_view(request): return render(request, 'core/profile.html')
|
||||||
@login_required
|
@login_required
|
||||||
@ -591,7 +639,7 @@ def create_sale_api(request):
|
|||||||
sale = Sale(
|
sale = Sale(
|
||||||
customer=customer,
|
customer=customer,
|
||||||
created_by=request.user,
|
created_by=request.user,
|
||||||
payment_status='pending',
|
status='unpaid',
|
||||||
discount=discount,
|
discount=discount,
|
||||||
notes=notes,
|
notes=notes,
|
||||||
invoice_number=invoice_number
|
invoice_number=invoice_number
|
||||||
@ -633,11 +681,11 @@ def create_sale_api(request):
|
|||||||
sale.total_amount = subtotal + vat_amount - discount
|
sale.total_amount = subtotal + vat_amount - discount
|
||||||
|
|
||||||
if payment_type == 'credit':
|
if payment_type == 'credit':
|
||||||
sale.payment_status = 'unpaid'
|
sale.status = 'unpaid'
|
||||||
elif paid_amount >= sale.total_amount:
|
elif paid_amount >= sale.total_amount:
|
||||||
sale.payment_status = 'paid'
|
sale.status = 'paid'
|
||||||
else:
|
else:
|
||||||
sale.payment_status = 'partial'
|
sale.status = 'partial'
|
||||||
|
|
||||||
sale.save()
|
sale.save()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user