emile 12 months ago
parent 33a8689592
commit 2d2f3f7694

@ -95,6 +95,13 @@ class Invoice(models.Model):
pdf = models.FileField(upload_to='generated_invoices', null=True, blank=True)
def __str__(self):
return self.invoice_number
@property
def status(self):
payments = OrderPayment.objects.filter(order=self.order)
if all(payment.date_paid for payment in payments):
return "Completed"
else:
return "Not Completed"
def save(self, *args, **kwargs):
if not self.invoice_number:
current_year = str(timezone.now().year)[-2:]

@ -46,7 +46,12 @@
</td>
<td class="px-6 py-4 text-center text-sm border-r border-gray-300">
<p class="text-secondosiblue">{{invoice.order.due_date}}</p>
<p class="text-secondosiblue">
{% if invoice.order.orderpayment_set.all.last.date_due %}
{{invoice.order.orderpayment_set.all.last.date_due}}
{% else %}
-
{% endif %}</p>
</td>
<td class="px-6 py-4 text-center text-sm border-r border-gray-300">
@ -59,8 +64,8 @@
</div>
</td>
<td class="px-6 py-4 text-center text-sm border-r border-gray-300 {% if invoice.order.status == 'Pending' %}bg-yellow-500{% endif %} {% if invoice.order.status == 'Completed' %}bg-green-700{% endif %}">
<p class="text-white">{{invoice.order.status}}</p>
<td class="px-6 py-4 text-center text-sm border-r border-gray-300 {% if invoice.status == 'Not Completed' %}bg-red-500{% elif invoice.status == 'Completed' %}bg-green-700{% endif %}">
<p class="text-white">{{invoice.status}}</p>
</td>
<td class="px-6 py-4 text-center text-sm border-r border-gray-300">
@ -81,12 +86,19 @@
</button>
</a>
{% if invoice.status == 'Not Completed' %}
<a href="{% url 'customerorderdetails' invoice.order.id %}">
<button
class="flex justify-center items-center gap-2 px-3 py-1 rounded-md bg-osiblue text-white border border-osiblue cursor-pointer hover:bg-white hover:text-osiblue duration-300">
Pay Now
</button>
</a>
{% else %}
<button
class="flex justify-center items-center gap-2 px-3 py-1 rounded-md bg-osiblue text-white bg-opacity-40" disabled>
Pay Now
</button>
{% endif %}
</div>
</td>
</tr>

@ -8,24 +8,26 @@
<h1 class="text-secondosiblue text-[25px]">My Projects</h1>
<div class="w-full grid grid-cols-1 l:grid-cols-2 gap-5 mt-4">
{% for project in projects %}
<a href="{% url 'customerprojectdetails' %}">
<div
class="w-full rounded-md flex flex-col justify-between items-center gap-3 px-5 py-9 h-[250px] bg-gray-50 shadow-md relative hover:bg-gray-100 duration-300">
<div class="flex flex-col justify-center items-center gap-5">
<div
class="w-[70px] h-[70px] rounded-full shadow-md">
<img src="{% static 'images/ositcom_logos/full-logo.png' %}" class="w-full h-full rounded-full object-cover">
<img src="{{project.logo.url}}" class="w-full h-full rounded-full object-cover">
</div>
<div>
<p class="text-secondosiblue font-poppinsBold text-center text-xl">Geologist Safwat</p>
<p class="text-sm uppercase font-light text-secondosiblue text-center">P240022</p>
<p class="text-secondosiblue font-poppinsBold text-center text-xl">{{project.name}}</p>
<p class="text-sm uppercase font-light text-secondosiblue text-center">{{project.project_id}}</p>
</div>
</div>
<div
class="bg-orange-500 px-3 py-2 rounded-r-md text-xs text-white font-light uppercase absolute top-5 left-0">
<p>Active</p>
<p>{{project.projectstatus_set.all.last.status}}</p>
</div>
@ -43,43 +45,7 @@
</div>
</a>
<a href="{% url 'customerprojectdetails' %}">
<div
class="w-full rounded-md flex flex-col justify-between items-center gap-3 px-5 py-9 h-[250px] bg-gray-50 shadow-md relative hover:bg-gray-100 duration-300">
<div class="flex flex-col justify-center items-center gap-5">
<div
class="w-[70px] h-[70px] rounded-full shadow-md">
<img src="{% static 'images/ositcom_logos/full-logo.png' %}" class="w-full h-full rounded-full object-cover">
</div>
<div>
<p class="text-secondosiblue font-poppinsBold text-center text-xl">Geologist Safwat</p>
<p class="text-sm uppercase font-light text-secondosiblue text-center">P240022</p>
</div>
</div>
<div
class="bg-yellow-500 px-3 py-2 rounded-r-md text-xs text-white font-light uppercase absolute top-5 left-0">
<p>Pending</p>
</div>
<div class="w-full mt-5 flex flex-col gap-2">
<div class="w-full flex justify-between items-center gap-3 text-gray-500 font-light text-xs">
<p>May,2,2023</p>
<p>June,30,2023</p>
</div>
<div class="w-full rounded-md bg-white shadow-md h-[8px]">
<div class="w-[90%] h-full bg-red-500 rounded-md">
</div>
</div>
</div>
</div>
</a>
{% endfor %}
</div>
</div>

@ -150,6 +150,7 @@ def customer_add_ticket_update_reaction(request, reaction_type, ticketupdate_id)
def customer_invoices(request, *args, **kwargs):
invoices = Invoice.objects.filter(order__customer = request.user.customerprofile)
context = {
'invoices' : invoices,
}
@ -388,8 +389,10 @@ def dedicated_servers_plans(request, *args, **kwargs):
@customer_login_required
def customer_projects(request, *args, **kwargs):
projects = Project.objects.filter(customer=request.user.customerprofile)
context = {
'projects': projects,
}

Binary file not shown.

@ -0,0 +1,18 @@
# Generated by Django 4.2.5 on 2024-05-12 13:05
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('osinacore', '0079_alter_project_end_date_alter_project_start_date'),
]
operations = [
migrations.AddField(
model_name='project',
name='logo',
field=models.ImageField(blank=True, null=True, upload_to=''),
),
]

@ -139,6 +139,7 @@ class ProjectType(models.Model):
class Project(models.Model):
name = models.CharField(max_length=50)
logo = models.ImageField(null=True, blank=True)
customer = models.ForeignKey(CustomerProfile, on_delete=models.CASCADE, null=True)
manager = models.ForeignKey(StaffProfile, on_delete=models.CASCADE, null=True)
project_type = models.ManyToManyField('ProjectType', default='', related_name='manager_project')

@ -417,101 +417,110 @@
{% block modules_section %}
<!-- MODULES SECTION -->
<div class="w-full h-fit grid grid-cols-1 xxlg1:grid-cols-3 gap-5 px-5 s:px-9 py-5">
<div class="bg-white shadow-md rounded-md p-5">
<div class="w-full h-full flex flex-col justify-between items-center">
<div class="w-full flex justify-between items-center">
<p class="text-[22px] text-secondosiblue font-poppinsBold uppercase">Invoices</p>
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 625.51 595.28" class="w-[55px]">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #20336b;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 12px;
}
</style>
</defs>
<path class="cls-1" d="M176.75,560.48c-3.59,3.77-7.55,7.19-11.68,10.24h326.35c43.13,0,77.63-31.81,82.66-74.22H206.23c-2.34,24.26-12.58,46.72-29.47,63.98Z"/>
<path class="cls-1" d="M502.56,144.47c-58.22,0-105.67,47.44-105.67,105.67v2.88c1.44,56.97,48.34,102.79,105.67,102.79s105.67-47.44,105.67-105.67-47.44-105.67-105.67-105.67ZM502.56,239.89c21.38,0,38.82,17.43,38.82,38.82,0,17.79-12.22,32.89-28.57,37.56v13.48c0,5.75-4.67,10.24-10.24,10.24s-10.24-4.67-10.24-10.24v-13.48c-16.53-4.49-28.57-19.59-28.57-37.56,0-5.75,4.67-10.24,10.24-10.24s10.24,4.67,10.24,10.24c0,10.06,8.27,18.33,18.33,18.33s18.33-8.27,18.33-18.33-8.27-18.33-18.33-18.33c-21.38,0-38.82-17.43-38.82-38.82,0-17.79,12.22-32.89,28.57-37.56v-13.48c0-5.75,4.67-10.24,10.24-10.24s10.24,4.67,10.24,10.24v13.48c16.53,4.49,28.57,19.59,28.57,37.56,0,5.75-4.67,10.24-10.24,10.24s-10.24-4.67-10.24-10.24c0-10.06-8.27-18.33-18.33-18.33s-18.33,8.27-18.33,18.33,8.09,18.33,18.33,18.33Z"/>
<path class="cls-1" d="M196.34,476.02h295.8v-99.92c-31.45-2.52-59.66-16.71-80.33-38.1H82.23c-5.75,0-10.24-4.67-10.24-10.24s4.67-10.24,10.24-10.24h313.41c-10.06-15.99-16.71-34.32-18.69-54.09H82.23c-5.75,0-10.24-4.67-10.24-10.24s4.67-10.24,10.24-10.24h294.18c1.08-19.59,6.83-37.92,15.81-54.09H82.23c-5.75,0-10.24-4.67-10.24-10.24s4.67-10.24,10.24-10.24h324.37c21.03-24.62,51.4-40.97,85.54-43.67V30.17H16.64v454.48c0,23,8.99,44.57,25.34,60.92,16.35,16.35,37.92,25.34,60.92,25.34,46.54,0,83.2-37.2,83.2-84.46,0-5.93,4.67-10.42,10.24-10.42ZM82.23,93.25h195.34c5.75,0,10.24,4.67,10.24,10.24s-4.67,10.24-10.24,10.24H82.23c-5.75,0-10.24-4.67-10.24-10.24-.18-5.57,4.49-10.24,10.24-10.24ZM82.23,412.77c-5.75,0-10.24-4.67-10.24-10.24s4.67-10.24,10.24-10.24h344.5c5.75,0,10.24,4.67,10.24,10.24s-4.67,10.24-10.24,10.24H82.23Z"/>
</svg>
</div>
<div
class="w-[60px] h-[60px] bg-white border-2 rounded-full border-secondosiblue flex justify-center items-center">
<p class="text-secondosiblue text-xl font-semibold">{{customer_open_invoices_count}}</p>
</div>
</div>
</div>
<div class="bg-white shadow-md rounded-md p-5">
<div class="w-full h-full flex flex-col justify-between items-center">
<div class="w-full flex justify-between items-center">
<p class="text-[22px] text-secondosiblue font-poppinsBold uppercase">Projects</p>
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 625.51 595.28" class="w-[60px]">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #20336b;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 12px;
}
</style>
</defs>
<circle class="cls-1" cx="267.98" cy="343.01" r="245.83" transform="translate(-164.05 289.95) rotate(-45)"/>
<circle class="cls-1" cx="267.98" cy="343.01" r="190.73"/>
<circle class="cls-1" cx="267.98" cy="343.01" r="128.57"/>
<circle class="cls-1" cx="267.98" cy="343.01" r="73.47" transform="translate(-71.91 71.08) rotate(-13.34)"/>
<circle class="cls-1" cx="267.98" cy="343.01" r="25.43"/>
<line class="cls-1" x1="267.98" y1="343.01" x2="581.63" y2="46.31"/>
<polygon class="cls-1" points="467.19 155.1 457.3 81.63 536.41 5.34 547.72 75.98 467.19 155.1"/>
<polyline class="cls-1" points="467.19 155.1 530.76 173.47 615.53 100 547.72 75.98"/>
<line class="cls-1" x1="506.75" y1="40.66" x2="516.64" y2="102.83"/>
<line class="cls-1" x1="481.31" y1="60.44" x2="491.2" y2="126.84"/>
<line class="cls-1" x1="495.44" y1="133.91" x2="554.78" y2="150.86"/>
<line class="cls-1" x1="522.29" y1="107.07" x2="588.69" y2="124.02"/>
</svg>
<a href="{% url 'customerinvoices' %}">
<div class="bg-white shadow-md rounded-md p-5">
<div class="w-full h-full flex flex-col justify-between items-center">
<div class="w-full flex justify-between items-center">
<p class="text-[22px] text-secondosiblue font-poppinsBold uppercase">Invoices</p>
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 625.51 595.28" class="w-[55px]">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #20336b;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 12px;
}
</style>
</defs>
<path class="cls-1" d="M176.75,560.48c-3.59,3.77-7.55,7.19-11.68,10.24h326.35c43.13,0,77.63-31.81,82.66-74.22H206.23c-2.34,24.26-12.58,46.72-29.47,63.98Z"/>
<path class="cls-1" d="M502.56,144.47c-58.22,0-105.67,47.44-105.67,105.67v2.88c1.44,56.97,48.34,102.79,105.67,102.79s105.67-47.44,105.67-105.67-47.44-105.67-105.67-105.67ZM502.56,239.89c21.38,0,38.82,17.43,38.82,38.82,0,17.79-12.22,32.89-28.57,37.56v13.48c0,5.75-4.67,10.24-10.24,10.24s-10.24-4.67-10.24-10.24v-13.48c-16.53-4.49-28.57-19.59-28.57-37.56,0-5.75,4.67-10.24,10.24-10.24s10.24,4.67,10.24,10.24c0,10.06,8.27,18.33,18.33,18.33s18.33-8.27,18.33-18.33-8.27-18.33-18.33-18.33c-21.38,0-38.82-17.43-38.82-38.82,0-17.79,12.22-32.89,28.57-37.56v-13.48c0-5.75,4.67-10.24,10.24-10.24s10.24,4.67,10.24,10.24v13.48c16.53,4.49,28.57,19.59,28.57,37.56,0,5.75-4.67,10.24-10.24,10.24s-10.24-4.67-10.24-10.24c0-10.06-8.27-18.33-18.33-18.33s-18.33,8.27-18.33,18.33,8.09,18.33,18.33,18.33Z"/>
<path class="cls-1" d="M196.34,476.02h295.8v-99.92c-31.45-2.52-59.66-16.71-80.33-38.1H82.23c-5.75,0-10.24-4.67-10.24-10.24s4.67-10.24,10.24-10.24h313.41c-10.06-15.99-16.71-34.32-18.69-54.09H82.23c-5.75,0-10.24-4.67-10.24-10.24s4.67-10.24,10.24-10.24h294.18c1.08-19.59,6.83-37.92,15.81-54.09H82.23c-5.75,0-10.24-4.67-10.24-10.24s4.67-10.24,10.24-10.24h324.37c21.03-24.62,51.4-40.97,85.54-43.67V30.17H16.64v454.48c0,23,8.99,44.57,25.34,60.92,16.35,16.35,37.92,25.34,60.92,25.34,46.54,0,83.2-37.2,83.2-84.46,0-5.93,4.67-10.42,10.24-10.42ZM82.23,93.25h195.34c5.75,0,10.24,4.67,10.24,10.24s-4.67,10.24-10.24,10.24H82.23c-5.75,0-10.24-4.67-10.24-10.24-.18-5.57,4.49-10.24,10.24-10.24ZM82.23,412.77c-5.75,0-10.24-4.67-10.24-10.24s4.67-10.24,10.24-10.24h344.5c5.75,0,10.24,4.67,10.24,10.24s-4.67,10.24-10.24,10.24H82.23Z"/>
</svg>
</div>
<div
class="w-[60px] h-[60px] bg-white border-2 rounded-full border-secondosiblue flex justify-center items-center">
<p class="text-secondosiblue text-xl font-semibold">{{customer_open_invoices_count}}</p>
</div>
</div>
<div
class="w-[60px] h-[60px] bg-white border-2 rounded-full border-secondosiblue flex justify-center items-center">
<p class="text-secondosiblue text-xl font-semibold">{{customer_open_projects_count}}</p>
</div>
</a>
<a href="{% url 'customerprojects' %}">
<div class="bg-white shadow-md rounded-md p-5">
<div class="w-full h-full flex flex-col justify-between items-center">
<div class="w-full flex justify-between items-center">
<p class="text-[22px] text-secondosiblue font-poppinsBold uppercase">Projects</p>
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 625.51 595.28" class="w-[60px]">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #20336b;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 12px;
}
</style>
</defs>
<circle class="cls-1" cx="267.98" cy="343.01" r="245.83" transform="translate(-164.05 289.95) rotate(-45)"/>
<circle class="cls-1" cx="267.98" cy="343.01" r="190.73"/>
<circle class="cls-1" cx="267.98" cy="343.01" r="128.57"/>
<circle class="cls-1" cx="267.98" cy="343.01" r="73.47" transform="translate(-71.91 71.08) rotate(-13.34)"/>
<circle class="cls-1" cx="267.98" cy="343.01" r="25.43"/>
<line class="cls-1" x1="267.98" y1="343.01" x2="581.63" y2="46.31"/>
<polygon class="cls-1" points="467.19 155.1 457.3 81.63 536.41 5.34 547.72 75.98 467.19 155.1"/>
<polyline class="cls-1" points="467.19 155.1 530.76 173.47 615.53 100 547.72 75.98"/>
<line class="cls-1" x1="506.75" y1="40.66" x2="516.64" y2="102.83"/>
<line class="cls-1" x1="481.31" y1="60.44" x2="491.2" y2="126.84"/>
<line class="cls-1" x1="495.44" y1="133.91" x2="554.78" y2="150.86"/>
<line class="cls-1" x1="522.29" y1="107.07" x2="588.69" y2="124.02"/>
</svg>
</div>
<div
class="w-[60px] h-[60px] bg-white border-2 rounded-full border-secondosiblue flex justify-center items-center">
<p class="text-secondosiblue text-xl font-semibold">{{customer_open_projects_count}}</p>
</div>
</div>
</div>
</div>
</a>
<div class="bg-white shadow-md rounded-md p-5">
<div class="w-full h-full flex flex-col justify-between items-center">
<div class="w-full flex justify-between items-center">
<p class="text-[22px] text-secondosiblue font-poppinsBold uppercase">Tickets</p>
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 625.51 595.28" class="w-[60px]">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #20336b;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 12px;
}
</style>
</defs>
<path class="cls-1" d="M592.85,237.81c-3.84,15.46-14.66,25.96-25.44,36.71-99.46,99.26-198.83,198.62-298.14,298.05-15.33,15.35-32.97,20.62-53.38,12.67-6.16-2.4-12.07-6.61-16.8-11.3-58.45-58.1-116.72-116.39-174.92-174.74-20.05-20.1-20.08-48.56-.09-68.57C127.43,227.18,230.88,123.84,334.18,20.36c7.48-7.49,16.48-11.74,26.2-15.02h17.09c15.26,3.79,25.66,14.42,36.27,25.08,51.98,52.23,104.06,104.35,156.33,156.29,10.23,10.17,19.73,20.48,22.78,35.14v15.95Z"/>
<path class="cls-1" d="M449.31,244.57c-3.71,9.02-7.09,17.22-10.89,26.45,2.6,2.5,5.96,5.5,9.07,8.75,6.93,7.25,7.1,17.86.52,24.56-6.75,6.88-17.06,6.96-24.5-.09-3.28-3.11-6.08-6.73-8.36-9.29-8.95,3.41-16.56,6.17-24.01,9.29-1.32.55-2.67,2.55-2.83,4.01-.42,3.75.01,7.59-.25,11.37-.68,9.69-7.7,16.37-16.98,16.41-9.15.04-17.89-6.95-16.97-16.19,1.18-11.9-3.08-17.48-14.34-19.62-3.93-.75-7.48-3.52-12.15-5.83-2.72,2.9-5.56,6.17-8.66,9.18-7.7,7.47-17.88,7.71-24.91.74-7.03-6.97-6.86-17.27.52-24.91,2.89-3,5.98-5.8,8.59-8.31-3.23-8.49-6.13-16.42-9.35-24.22-.46-1.11-2.47-2.1-3.84-2.23-3.58-.33-7.21-.02-10.81-.19-9.82-.45-16.98-7.67-17.07-17.07-.09-9.45,6.91-17.85,16.71-16.95,11.33,1.03,16.84-2.74,18.89-13.68.77-4.12,3.63-7.85,6.3-13.32-2.96-2.53-6.64-5.23-9.8-8.45-7.2-7.35-7.33-17.58-.62-24.49,6.72-6.92,17.52-6.82,24.94.4,3.12,3.04,5.93,6.39,8.41,9.08,9.27-3.86,17.62-7.34,26.65-11.1,0-3.89-.09-8.62.02-13.34.21-9.49,7.81-17.13,16.98-17.17,9.25-.04,16.88,7.46,17.13,16.99.12,4.73.02,9.46.02,13.59,8.92,3.67,17.28,7.12,26.87,11.07,2.34-2.56,5.23-6.06,8.48-9.19,7.29-7.02,17.76-7.08,24.54-.36,6.77,6.71,6.77,17.17-.19,24.55-3.11,3.3-6.57,6.27-9.21,8.77,3.86,9.28,7.33,17.64,11.07,26.64,4.28,0,9.2-.15,14.11.03,8.88.33,16.08,7.71,16.37,16.56.29,8.8-7.09,16.98-16.1,17.49-4.91.28-9.84.05-14.35.05ZM370.88,272.25c24.96.03,44.86-19.67,45-44.55.14-24.77-20.23-45.25-45.14-45.38-24.72-.12-44.74,19.88-44.8,44.75-.06,25.23,19.75,45.14,44.93,45.18Z"/>
<path class="cls-1" d="M219.11,279.64c7.76,1.4,13.03,4.55,16.03,11.04,2.99,6.47,2,12.58-2.31,18.13-1.27,1.64-2.86,3.04-4.33,4.52-28.2,28.2-56.4,56.4-84.6,84.6-5.22,5.22-11.23,7.62-18.59,5.11-6.79-2.31-10.57-7.2-11.61-14.13-.85-5.64,1.18-10.5,5.13-14.46,29.37-29.44,58.71-58.93,88.31-88.14,3.13-3.09,7.95-4.49,11.98-6.67Z"/>
<path class="cls-1" d="M318.5,378.97c-2.18,4.03-3.58,8.83-6.67,11.96-29.2,29.61-58.64,58.99-88.15,88.3-7.28,7.23-17.71,7.11-24.49.33-7.02-7.02-6.91-17.31.61-24.86,29.22-29.33,58.51-58.58,87.81-87.83,5.49-5.48,11.96-7.12,19.28-4.18,6.44,2.59,10.32,8.56,11.62,16.29Z"/>
<path class="cls-1" d="M173.66,444.32c-10.13-.41-15.6-3.72-18.36-10.53-2.82-6.94-1.61-13.48,3.69-18.91,7.83-8.01,15.81-15.88,23.74-23.8,13.16-13.16,26.3-26.34,39.49-39.47,8.22-8.18,18.42-8.68,25.72-1.35,7.28,7.31,6.78,17.47-1.47,25.75-20.64,20.72-41.24,41.48-62.16,61.92-3.42,3.34-8.4,5.08-10.65,6.39Z"/>
</svg>
</div>
<div
class="w-[60px] h-[60px] bg-white border-2 rounded-full border-secondosiblue flex justify-center items-center">
<p class="text-secondosiblue text-xl font-semibold">{{customer_open_tickets_count}}</p>
<a href="{% url 'customertickets' %}">
<div class="bg-white shadow-md rounded-md p-5">
<div class="w-full h-full flex flex-col justify-between items-center">
<div class="w-full flex justify-between items-center">
<p class="text-[22px] text-secondosiblue font-poppinsBold uppercase">Tickets</p>
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 625.51 595.28" class="w-[60px]">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #20336b;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 12px;
}
</style>
</defs>
<path class="cls-1" d="M592.85,237.81c-3.84,15.46-14.66,25.96-25.44,36.71-99.46,99.26-198.83,198.62-298.14,298.05-15.33,15.35-32.97,20.62-53.38,12.67-6.16-2.4-12.07-6.61-16.8-11.3-58.45-58.1-116.72-116.39-174.92-174.74-20.05-20.1-20.08-48.56-.09-68.57C127.43,227.18,230.88,123.84,334.18,20.36c7.48-7.49,16.48-11.74,26.2-15.02h17.09c15.26,3.79,25.66,14.42,36.27,25.08,51.98,52.23,104.06,104.35,156.33,156.29,10.23,10.17,19.73,20.48,22.78,35.14v15.95Z"/>
<path class="cls-1" d="M449.31,244.57c-3.71,9.02-7.09,17.22-10.89,26.45,2.6,2.5,5.96,5.5,9.07,8.75,6.93,7.25,7.1,17.86.52,24.56-6.75,6.88-17.06,6.96-24.5-.09-3.28-3.11-6.08-6.73-8.36-9.29-8.95,3.41-16.56,6.17-24.01,9.29-1.32.55-2.67,2.55-2.83,4.01-.42,3.75.01,7.59-.25,11.37-.68,9.69-7.7,16.37-16.98,16.41-9.15.04-17.89-6.95-16.97-16.19,1.18-11.9-3.08-17.48-14.34-19.62-3.93-.75-7.48-3.52-12.15-5.83-2.72,2.9-5.56,6.17-8.66,9.18-7.7,7.47-17.88,7.71-24.91.74-7.03-6.97-6.86-17.27.52-24.91,2.89-3,5.98-5.8,8.59-8.31-3.23-8.49-6.13-16.42-9.35-24.22-.46-1.11-2.47-2.1-3.84-2.23-3.58-.33-7.21-.02-10.81-.19-9.82-.45-16.98-7.67-17.07-17.07-.09-9.45,6.91-17.85,16.71-16.95,11.33,1.03,16.84-2.74,18.89-13.68.77-4.12,3.63-7.85,6.3-13.32-2.96-2.53-6.64-5.23-9.8-8.45-7.2-7.35-7.33-17.58-.62-24.49,6.72-6.92,17.52-6.82,24.94.4,3.12,3.04,5.93,6.39,8.41,9.08,9.27-3.86,17.62-7.34,26.65-11.1,0-3.89-.09-8.62.02-13.34.21-9.49,7.81-17.13,16.98-17.17,9.25-.04,16.88,7.46,17.13,16.99.12,4.73.02,9.46.02,13.59,8.92,3.67,17.28,7.12,26.87,11.07,2.34-2.56,5.23-6.06,8.48-9.19,7.29-7.02,17.76-7.08,24.54-.36,6.77,6.71,6.77,17.17-.19,24.55-3.11,3.3-6.57,6.27-9.21,8.77,3.86,9.28,7.33,17.64,11.07,26.64,4.28,0,9.2-.15,14.11.03,8.88.33,16.08,7.71,16.37,16.56.29,8.8-7.09,16.98-16.1,17.49-4.91.28-9.84.05-14.35.05ZM370.88,272.25c24.96.03,44.86-19.67,45-44.55.14-24.77-20.23-45.25-45.14-45.38-24.72-.12-44.74,19.88-44.8,44.75-.06,25.23,19.75,45.14,44.93,45.18Z"/>
<path class="cls-1" d="M219.11,279.64c7.76,1.4,13.03,4.55,16.03,11.04,2.99,6.47,2,12.58-2.31,18.13-1.27,1.64-2.86,3.04-4.33,4.52-28.2,28.2-56.4,56.4-84.6,84.6-5.22,5.22-11.23,7.62-18.59,5.11-6.79-2.31-10.57-7.2-11.61-14.13-.85-5.64,1.18-10.5,5.13-14.46,29.37-29.44,58.71-58.93,88.31-88.14,3.13-3.09,7.95-4.49,11.98-6.67Z"/>
<path class="cls-1" d="M318.5,378.97c-2.18,4.03-3.58,8.83-6.67,11.96-29.2,29.61-58.64,58.99-88.15,88.3-7.28,7.23-17.71,7.11-24.49.33-7.02-7.02-6.91-17.31.61-24.86,29.22-29.33,58.51-58.58,87.81-87.83,5.49-5.48,11.96-7.12,19.28-4.18,6.44,2.59,10.32,8.56,11.62,16.29Z"/>
<path class="cls-1" d="M173.66,444.32c-10.13-.41-15.6-3.72-18.36-10.53-2.82-6.94-1.61-13.48,3.69-18.91,7.83-8.01,15.81-15.88,23.74-23.8,13.16-13.16,26.3-26.34,39.49-39.47,8.22-8.18,18.42-8.68,25.72-1.35,7.28,7.31,6.78,17.47-1.47,25.75-20.64,20.72-41.24,41.48-62.16,61.92-3.42,3.34-8.4,5.08-10.65,6.39Z"/>
</svg>
</div>
<div
class="w-[60px] h-[60px] bg-white border-2 rounded-full border-secondosiblue flex justify-center items-center">
<p class="text-secondosiblue text-xl font-semibold">{{customer_open_tickets_count}}</p>
</div>
</div>
</div>
</div>
</a>
</div>
{% endblock modules_section %}

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Loading…
Cancel
Save