first push

This commit is contained in:
2026-01-18 11:59:48 +03:30
commit 107854bde3
1100 changed files with 291872 additions and 0 deletions

View File

@@ -0,0 +1,259 @@
{% extends "base.html" %}
{% block title %}
توافق‌نامه دیجیتال خرید و فروش مرغ زنده در سامانه رصدیار
{% endblock %}
{% block body %}
<div class="a4-container">
<div class="titles">
<div>
{{ number }}
</div>
<div>
{{ date }}
</div>
<div>
-
</div>
</div>
<div class="text-overlay">
<p class="nazanin-bold">
این توافق‌نامه با استناد به قوانین جاری جمهوری اسلامی ایران، از جمله قانون تجارت، قانون مدنی، قانون
جرایم رایانه‌ای، و با توجه به الزامات اجرایی سامانه ملی رصد و پایش زنجیره تأمین کالاهای اساسی (رصدیار)،
به صورت الکترونیکی و رسمی، میان طرفین ذیل منعقد می‌گردد:
</p>
<p class="inner-title-titr">
ماده ۱ - طرفین قرارداد
</p>
<p class="inner-title">
الف) مرغدار (فروشنده):
</p>
<p>
نام و نام خانوادگی / مرغداری: {{ fullname }} / {{ unit_name }}({{ mobile }})
<p>
کد ملی / شناسه ملی: {{ national_code }}
</p>
<p>
شناسه یکتای واحد: {{ breeding_unique_id }}
</p>
<p>
شماره جواز جوجه ریزی: {{ licence_number }}
</p>
<p>
آدرس فارم / مرغداری: {{ poultry_address }}
</p>
{% if direct_buying_intermediary_mobile %}
<p>
شماره واسط(دریافت کننده کد احراز): {{ direct_buying_intermediary_mobile }}
</p>
{% endif %}
<p class="inner-title">
ب) کشتارگاه (خریدار):
</p>
<p>
کشتارگاه: {{ kill_house_fullname }}
</p>
<p>
نام کشتارگاه: {{ kill_house_name }}({{ kill_house_mobile }})
</p>
<p>
شناسه ملی: {{ kill_house_national_code }}
</p>
<p>
آدرس کشتارگاه: {{ kill_house_address }}
</p>
<p>
</p>
<p class="inner-title-titr">
ماده ۲ - موضوع توافق‌نامه
</p>
<p class="inner-title" style="font-size: 14px">
خرید و فروش مرغ زنده مطابق با اطلاعات ثبت‌شده در سامانه «رصدیار»، شامل:
</p>
<p>
تاریخ خرید : {{ date_in_value }}
</p>
<div style="text-align: right !important; margin-top: -15px; margin-bottom: -15px">
<p style="display: inline-block; ">حجم: {{ kill_capacity }} (قطعه)</p>
<p style="display: inline-block; margin-right: 40px;">وزن تقریبی: {{ weight }} (کیلوگرم)</p>
<p style="display: inline-block; margin-right: 40px;">میانگین وزنی: {{ Index_weight }} (کیلوگرم)</p>
<p style="display: inline-block; margin-right: 40px; ">سن مرغ: {{ chicken_age }} روز</p>
</div>
<p>
قیمت توافقی ثبت‌شده در سامانه: {{ amount }} ریال
</p>
<p>
حداکثر زمان تسویه قرارداد: {{ max_time }}
</p>
<p class="inner-title" style="font-size: 14px">
اطلاعات نهایی در کشتارگاه:
</p>
<div style="text-align: right !important; margin-top: -15px; margin-bottom: -15px">
<p style="display: inline-block; ">حجم: {{ total_killed_quantity }} (قطعه)</p>
<p style="display: inline-block; margin-right: 40px;">وزن: {{ total_killed_weight }} (کیلوگرم)</p>
<p style="display: inline-block; margin-right: 40px;">میانگین وزنی: {{ avg_killed_weight }} (کیلوگرم)</p>
</div>
<p class="inner-title-titr">
ماده ۳ - تعهدات طرفین
</p>
<p class="inner-title">
تعهدات مرغدار:
<p>
الف) ارسال به‌موقع بار مطابق زمان، تعداد و وزن ثبت‌شده در سامانه.
</p>
<p>
ب) اعلام دقیق وضعیت بهداشتی گله؛ در صورت وجود بیماری یا احتمال آلودگی، اطلاع‌رسانی فوری به کشتارگاه
الزامی است.
</p>
<p>
ج) همکاری با مسئول فنی فارم و دامپزشکی در دریافت کد قرنطینه و تأییدیه حمل.
</p>
<p class="inner-title">
تعهدات کشتارگاه:
</p>
<p>
الف) ارسال وسیله نقلیه مجاز و تأییدشده برای حمل بار در موعد مقرر.
</p>
<p>
ب) پرداخت وجه بار به شماره حساب اعلام‌شده توسط مرغدار ظرف مدت تعیین شده حداکثر {{ payment_deadline_days }} روز پس از تحویل بار.
</p>
<p>
ج) ثبت اطلاعات بار (خودرو، باسکول، تحویل، پرداخت) در سامانه حداکثر تا 12 ساعت پس از کشتار.
</p>
</div>
<div class="pagination">
<span class="page-number">
1
</span>
</div>
</div>
<div class="a4-container">
<div class="titles">
<div>
{{ number }}
</div>
<div>
{{ date }}
</div>
<div>
-
</div>
</div>
<div class="text-overlay">
<p class="inner-title-titr">
ماده ۴ - تخلفات و مسئولیت‌ها
</p>
<p>
در صورت بروز تخلف از سوی هر یک از طرفین، شرایط زیر اعمال خواهد شد:
</p>
<table >
<thead>
<tr>
<th>نوع تخلف</th>
<th>مسئول</th>
<th>شرح پیامد</th>
<th>جریمه / اقدام قانونی</th>
</tr>
</thead>
<tbody>
<tr>
<td>عدم ارسال بار پس از ثبت در سامانه</td>
<td>مرغدار</td>
<td>ایجاد اختلال در زنجیره تأمین</td>
<td>تعلیق دسترسی به سامانه برای 7 روز / ارجاع به شورای حل اختلاف/ جریمه مالی</td>
</tr>
<tr>
<td>عدم ارسال وسیله نقلیه برای بار</td>
<td>کشتارگاه</td>
<td>تأخیر در حمل و کشتار</td>
<td>لغو سفارش/ جریمه مالی/ ثبت در سابقه تخلفات</td>
</tr>
<tr>
<td>عدم پرداخت به‌موقع وجه بار</td>
<td>مرغدار</td>
<td>نقض تعهد مالی</td>
<td>جریمه روزانه 1٪ از مبلغ فاکتور از روز تأخیر تا تسویه کامل / توقف خرید بعدی</td>
</tr>
<tr>
<td>ارسال مرغ بیمار یا آلوده بدون اعلام</td>
<td>کشتارگاه</td>
<td>تهدید سلامت عمومی</td>
<td>ارجاع پرونده به دامپزشکی و تعزیرات / مسدودسازی موقت در سامانه</td>
</tr>
<tr>
<td>ثبت اطلاعات خلاف واقع در سامانه</td>
<td>هریک از طرفین</td>
<td>اختلال در راستی‌آزمایی</td>
<td>ارجاع به شورای حل اختلاف سامانه در استان / حذف دسترسی موقت یا دائم/ارجاع پرونده به تعزیرات</td>
</tr>
</tbody>
</table>
<p class="inner-title-titr">
ماده ۵ - اعتبار حقوقی و اجرایی
</p>
<p style="line-height: 15px;">
این توافق‌نامه پس از ثبت الکترونیکی در سامانه «رصدیار» و تأیید دیجیتال هر دو طرف، دارای اعتبار رسمی،
اجرایی و قابل استناد در مراجع قانونی خواهد بود.
<br>
<p>
کلیه سوابق تراکنش، مکاتبات، زمان‌بندی‌ها و امضای دیجیتال در سامانه محفوظ و ملاک داوری می‌باشد.
</p>
<br>
<p class="inner-title-titr">
ماده ۶ - حل اختلاف
</p>
<p style="line-height: 15px;">
در صورت بروز اختلاف، مرجع داوری اولیه اتحادیه مرغداران گوشتی استان بوده و در صورت عدم حل، موضوع به شورای
حل اختلاف صنفی یا مراجع قضایی ذی‌ربط ارجاع خواهد شد.
</p>
<br>
<br>
<div class="confirm-box">
<p>تایید الکترونیکی مرغدار</p>
{% if input_direct_buying_code is True %}
<img class="resize-image" src="/static/assets/img/poultry.png" alt="">
{% endif %}
</div>
<div class="confirm-box">
<p>تایید الکترونیکی خریدار</p>
{% if direct_buying_state is True %}
<img class="resize-image" src="/static/assets/img/killhouse.png" alt="">
{% endif %}
</div>
<br>
{% if payment_deadline_state == 'accepted' %}
<p style="text-align: center !important;">
اطلاعات تسویه حساب:
</p>
<br>
<div style="text-align: right !important; margin-top: -15px; margin-bottom: -15px">
<p style="display: inline-block; ">مبلغ تسویه: {{ total_paid_amount }} (ریال)</p>
<p style="display: inline-block; margin-right: 20px;">بررسی کننده: {{ payment_deadline_checker_fullname }}</p>
<p style="display: inline-block; margin-right: 20px;">تاریخ بررسی: {{ payment_deadline_check_date }}</p>
<p style="display: inline-block; margin-right: 20px; ">گزارش: {{ payment_deadline_archive_message }} </p>
</div>
{% endif %}
</div>
<div class="pagination">
<span class="page-number">
2
</span>
</div>
</div>
{% endblock %}

17
templates/base.html Normal file
View File

@@ -0,0 +1,17 @@
<!DOCTYPE html>
<html lang="Fa">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" href="/static/css/styles.css">
</head>
<body>
{% block body %}
{% endblock %}
</body>
</html>

View File

@@ -0,0 +1,500 @@
{% extends "base.html" %}
{% block title %}
سامانه رصدیار
{% endblock title %}
{% block body %}
<div class="a4-container" , style=" background-image: url('/static/assets/img/blue_bg.png');">
<div class="titles">
<div>
{{ number }}
</div>
<div>
{{ date }}
</div>
<div>
-
</div>
</div>
<div class="text-overlay">
<p style="text-align: center;">
از تاریخ {{ from_date }} تا تاریخ {{ to_date }} استان {{ province}}
</p>
<p class="inner-title-titr">
گزارش فارم‌های فعال در بازه زمانی
</p>
<p>
• تعداد فارم‌های فعال بر اساس جوجه‌ریزی: {{ poultry_count }} فارم
<p>
• تعداد فارم‌های دارای زنجیره فعال: {{ chain_count }} فارم </p>
<p>
• مجموع جوجه‌ریزی: {{ poultry_hatching_quantity }} قطعه </p>
<p>
• مجموع تلفات دامپزشکی: {{ poultry_hatching_losses_vet }} قطعه </p>
<p>
• مجموع تلفات اتحادیه: {{ poultry_hatching_losses_union }} قطعه </p>
<p>
• مجموع تلفات کل: {{ poultry_hatching_total_losses }} قطعه
</p>
<p>
• مجموع قطعه کشتار شده: {{ poultry_hatching_killed_quantity }}۰ قطعه
</p>
<p>
• مجموع وزن کشتارشده: {{ poultry_hatching_total_killed_weight }} کیلوگرم
</p>
<p>
• مانده در سالن: {{ poultry_hatching_left_over }} قطعه
</p>
<p class="inner-title">
فارم‌های با سن بیشتر از ۶۰ روز
</p>
<p>
• تعداد فارم‌های با سن بیش از 60 روز: {{ poultry_hatching_gt_60 }} مورد </p>
<p>
• مجموع حجم فارم‌ها: {{ poultry_hatching_gt_60_quantity }}۰ قطعه </p>
<p>
• مجموع مانده در سالن: {{ poultry_hatching_gt_60_left_over }} قطعه </p>
<p class="inner-title">
بیشترین سن کشتار: {{ max_age_poultry }}روز </p>
<p style="line-height: 1.2; !important">
{{ max_age_poultry_name }} - {{ max_age_poultry_city }} - ( حجم جوجه ریزی: {{ max_age_poultry_quantity }} (قطعه) - حجم کشتار شده: {{ max_age_poultry_killed_quantity }} (قطعه) - حجم مانده در سالن: {{ max_age_poultry_left_over }} (قطعه) )
</p>
<p class="inner-title">
کمترین سن کشتار: {{ min_age_poultry }} روز </p>
<p style="line-height: 1.2; !important">
{{ min_age_poultry_name }} - {{ min_age_poultry_city }} - ( حجم جوجه ریزی: {{ min_age_poultry_quantity }} (قطعه) - حجم کشتار شده: {{ min_age_poultry_killed_quantity }} (قطعه) - حجم مانده در سالن: {{ min_age_poultry_left_over }} (قطعه) )
</p>
<br>
<p class="inner-title-titr">
بارهای کشتار شده داخل استان: </p>
<p>
تعداد بارهای داخل استان {{ kill_house_request_count }} بار </p>
<p>
مجموع کشتار داخل استان {{ kill_house_request_quantity }} قطعه
</p>
<p>
مجموع وزن کشتار داخل استان {{ kill_house_request_weight }} کیلوگرم
</p>
<p>
میانگین وزن هر قطعه {{ kill_house_request_average_weight }} کیلوگرم
</p>
<p style="color:#FF0000">
* نکته: بیشترین حجم کشتار داخل استان در {{ persian_date_req }} با {{ daily_quantity_req }} قطعه رخ داده است.
</p>
<p class="inner-title-titr">
بارهای خریداری شده خارج از استان </p>
<p>
تعداد بارهای خریداری خارج از استان {{ free_bars_count }} بار
</p>
<p>
مجموع قطعه کشتار خارج از استان {{ free_bars_quantity }} قطعه
</p>
<p>
مجموع وزن کشتار خارج از استان {{ free_bars_live_weight }} کیلوگرم
</p>
<p>
بیشترین خریدار:{{ kill_house_name }}({{ transaction_count }} بار)
</p>
<p style="color:#FF0000">
* نکته: بیشترین حجم کشتار خارج از استان در {{ persian_date }} با {{ daily_quantity }} قطعه رخ داده است.
</p>
</div>
<div class="pagination">
<span class="page-number">
1
</span>
</div>
</div>
<div class="a4-container" , style=" background-image: url('/static/assets/img/blue_bg.png');">
<div class="titles">
<div>
{{ number }}
</div>
<div>
{{ date }}
</div>
<div>
-
</div>
</div>
<div class="text-overlay">
<p class="inner-title-titr">
عملکرد خریداران (بر اساس خرید زنده داخل/خارج استان)
</p>
<table >
<thead>
<tr>
<th class="custom-h1">نام کشتارگاه</th>
<th class="custom-h1">تعداد بار</th>
<th class="custom-h1">حجم داخل استان(قطعه)</th>
<th class="custom-h1">وزن داخل استان(کیلوگرم)</th>
<th class="custom-h1">حجم خارج استان(قطعه)</th>
<th class="custom-h1">وزن خارج استان(کیلوگرم)</th>
<th class="custom-h1">حجم کل بارها(قطعه)</th>
<th class="custom-h1">وزن کل بارها(کیلوگرم)</th>
</tr>
</thead>
<tbody>
{% for kh in kill_houses_data %}
<tr>
<td>{{ kh.name }}</td>
<td>{{ kh.load_count }}</td>
<td>{{ kh.in_province_quantity }}</td>
<td>{{ kh.in_province_wight }}</td>
<td>{{ kh.out_province_quantity }}</td>
<td>{{ kh.out_province_weight }}</td>
<td>{{ kh.total_quantity }}</td>
<td>{{ kh.total_weight }}</td>
</tr>
{% empty %}
<tr>
<td colspan="8" class="text-center">هیچ داده‌ای یافت نشد</td>
</tr>
{% endfor %}
</tbody>
</table>
<p>
بیشترین خرید داخل استان: {{ kill_house_name_req}}
</p>
<p>
بیشترین خرید خارج از استان: {{ kill_house_name }}
</p>
<p class="inner-title">
بیشترین بار ارسالی مرغدار :
</p>
<p>
داخل استان :مرغداری {{ poultry_req_name_req }} با {{ top_poultry_req_stats_total_quantity }} قطعه شهرستان
{{poultry_city_req_name_req}}
</p>
<p>
خارج استان :مرغداری {{ out_poultry_req_name_req }} {{ out_top_poultry_req_stats_total_quantity }} قطعه استان {{ out_poultry_province_req_name_req }} شهر{{ out_poultry_city_req_name_req }}
</p>
<p class="inner-title-titr">
عملکرد کشتارگاه‌ها و توزیع لاشه در داخل استان
</p>
<table>
<thead>
<tr>
<th class="custom-h1">نام کشتارگاه</th>
<th class="custom-h1">وزن بار زنده(کیلوگرم)</th>
<th class="custom-h1">وزن وارد شده به انبار(کیلوگرم)</th>
<th class="custom-h1">وزن توزیع داخل استان(کیلوگرم)</th>
<th class="custom-h1">وزن توزیع خارج استان(کیلوگرم)</th>
<th class="custom-h1">وزن کل وزن توزیع شده(کیلوگرم)</th>
<th class="custom-h1">وزن مانده در انبار فعلی(کیلوگرم)</th>
<th class="custom-h1">درصد توزیع</th>
</tr>
</thead>
{% for kh in management_kill_house_data %}
<tr>
<td>{{ kh.name }}</td>
<td>{{ kh.in_province_quantity }}</td>
<td>{{ kh.in_ware_house_quantity }}</td>
<td>{{ kh.steward_allocation_quantity }}</td>
<td>{{ kh.kill_house_free_bar_quantity }}</td>
<td>{{ kh.all_quantity }}</td>
<td>{{ kh.product }}</td>
<td>%{{ kh.percent }}</td>
</tr>
{% empty %}
<tr>
<td colspan="8" class="text-center">هیچ داده‌ای یافت نشد</td>
</tr>
{% endfor %}
</tbody>
</table>
<p style="color:#FF0000">
! توجه اطلاعات توزیع لاشه از تاریخ {{ tomorrow_of_date1 }} تا تاریخ {{ tomorrow_of_date2 }} میباشد.
</p>
<p style="color:#FF0000">
* نکته: درصد توزیع نسبت به وزن ورودی به انبار در بازه مذکور محاسبه شده است.
</p>
</div>
<div class="pagination">
<span class="page-number">
2
</span>
</div>
</div>
<div class="a4-container" , style=" background-image: url('/static/assets/img/blue_bg.png');">
<div class="titles">
<div>
{{ number }}
</div>
<div>
{{ date }}
</div>
<div>
-
</div>
</div>
<div class="text-overlay">
<p class="inner-title-titr">
گزارش بررسی اسناد و قبوض باسکول
</p>
<table>
<thead>
<tr>
<th class="custom-h1">نام کشتارگاه</th>
<th class="custom-h1">تعداد کل بارها</th>
<th class="custom-h1">تعداد بار دارای سند</th>
<th class="custom-h1">تعداد بار بدون سند</th>
<th class="custom-h1">تعداد اسناد تایید شده</th>
<th class="custom-h1">تعداد اسناد دارای مغایرت</th>
<th class="custom-h1">درصد اسناد تایید شده</th>
<th class="custom-h1">درصد اسناد دارای مغایرت</th>
</tr>
</thead>
{% for kh in duc_kill_house_data %}
<tr>
<td>{{ kh.name }}</td>
<td>{{ kh.kill_house_request1_count }}</td>
<td>{{ kh.bar_assigment_true_count }}</td>
<td>{{ kh.bar_assigment_pending_count }}</td>
<td>{{ kh.bar_document_status_accepted }}</td>
<td>{{ kh.bar_document_status_rejected }}</td>
<td>{{ kh.percent_bar_document_status_accepted }}%</td>
<td>{{ kh.percent_bar_document_status_rejected }}%</td>
</tr>
{% empty %}
<tr>
<td colspan="8" class="text-center">هیچ داده‌ای یافت نشد</td>
</tr>
{% endfor %}
</tbody>
</table>
<p style="color:#FF0000">
هشدار: بیش از ۵۰٪ بارها دارای سند مشکوک یا دست‌نویس هستند.
</p>
<br>
<p class="inner-title-titr">
اطلاعات بارهای دارای استعلام قرنطینه
</p>
<div style="text-align: right !important; margin-top: -15px; margin-bottom: -15px">
<p style="display: inline-block; ">تعداد بارها: {{ total_count_has_quarantine }} </p>
<p style="display: inline-block; margin-right: 20px;">حجم بارهای رصدیار : {{ total_quarantine_quantity }} (قطعه)</p>
<p style="display: inline-block; margin-right: 20px;">حجم بارهای قرنطینه : {{ total_quantity_has_quarantine }} (قطعه)</p>
<p style="display: inline-block; margin-right: 20px; color:{{ color_different_bar }}">
اختلاف قطعه:
<span style="direction: rtl !important;">
{{ different }}
</span>
(%{{ different_bar_percent }})
</p>
</div>
<br>
<p class="inner-title-titr">
اطلاعات بارهای فاقد قرنطینه
</p>
<div style="text-align: right !important; margin-top: -15px; margin-bottom: -15px">
<p style="display: inline-block; ">تعداد بارها: {{ total_id_hasnt_code }} </p>
<p style="display: inline-block; margin-right: 30px;">حجم بارها: {{ total_quantity_hasnt_code }} (قطعه)</p>
<p style="display: inline-block; margin-right: 30px;">وزن بارها: {{ total_weight_hasnt_code }} (کیلوگرم)</p>
</div>
<br>
<p class="inner-title-titr">
اطلاعات بارهای وارد نشده به انبار
</p>
<div style="text-align: right !important; margin-top: -15px; margin-bottom: -15px">
<p style="display: inline-block; ">تعداد بارها: {{ total_id_hasnt_warehouse }} </p>
<p style="display: inline-block; margin-right: 30px;">حجم بارها: {{ total_quantity_hasnt_warehouse }} (قطعه)</p>
<p style="display: inline-block; margin-right: 30px;">وزن بارها: {{ total_weight_hasnt_warehouse }} (کیلوگرم)</p>
</div>
<br>
<p class="inner-title-titr">
اطلاعات بارهای تعیین تکلیف نشده(عدم تخلیه توسط کشتارگاه)
</p>
<div style="text-align: right !important; margin-top: -15px; margin-bottom: -15px">
<p style="display: inline-block; ">تعداد بارها: {{ total_id_hasnt_assignment_state_archive }} </p>
<p style="display: inline-block; margin-right: 30px;">حجم بارها: {{ total_quantity_hasnt_assignment_state_archive }} (قطعه)</p>
<p style="display: inline-block; margin-right: 30px;">وزن بارها: {{ total_weight_hasnt_assignment_state_archive }} (کیلوگرم)</p>
</div>
<br>
<p class="inner-title-titr">
اطلاعات بارهای با سن کشتار بیش از 60 روز
</p>
<div style="text-align: right !important; margin-top: -15px; margin-bottom: -15px">
<p style="display: inline-block; ">تعداد بارها: {{ total_id_hasnt_killing_age }} </p>
<p style="display: inline-block; margin-right: 30px;">حجم بارها: {{ total_quantity_hasnt_killing_age }} (قطعه)</p>
<p style="display: inline-block; margin-right: 30px;">وزن بارها: {{ total_weight_hasnt_killing_age }} (کیلوگرم)</p>
</div>
</div>
<div class="pagination">
<span class="page-number">
3
</span>
</div>
</div>
<div class="a4-container" , style=" background-image: url('/static/assets/img/blue_bg.png');">
<div class="titles">
<div>
{{ number }}
</div>
<div>
{{ date }}
</div>
<div>
-
</div>
</div>
<div class="text-overlay">
<p class="inner-title-titr">
جمع‌بندی و نتیجه‌گیری </p>
<table>
<tbody>
<tr>
<td>تعداد فارم فعال</td>
<td>{{poultry_count}} مورد </td>
</tr>
<tr>
<td>میانگین تلفات</td>
<td>{{avg_losses}} قطعه </td>
</tr>
<tr>
<td>میانگین سن کشتار</td>
<td>{{total_killing_ave_age}} روز </td>
</tr>
<tr>
<td>میانگین وزن کشتار</td>
<td>{{ avg_total_killed_weight }} کیلوگرم </td>
</tr>
<tr>
<td>بیشترین کشتار</td>
<td>{{top_total_killed_weight}} کیلوگرم </td>
</tr>
<tr>
<td>بیشترین خرید داخلی</td>
<td>{{total_quantity_top_inner}}قطعه </td>
</tr>
<tr>
<td>بیشترین خرید خارجی</td>
<td>{{total_quantity_top_out}} قطعه </td>
</tr>
<tr>
<td>تعداد سند‌های مشکوک</td>
<td>{{bar_assigment_pending_count1}} مورد </td>
</tr>
</tbody>
</table>
<br>
<br>
<p>
جزییات گزارش عملکرد:
<a href="https://{{ base_url }}backend.rasadyaar.ir/management_all_poultry_and_warehouse/?date1={{ date1 }}&date2={{ date2 }}">دانلود اکسل </a>
</p>
</div>
<div class="pagination">
<span class="page-number">
4
</span>
</div>
</div>
<div class="a4-container" , style="height:300mm !important ; background-image: url('/static/assets/img/blue_bg.png');">
<div class="titles">
<div>
{{ number }}
</div>
<div>
{{ date }}
</div>
<div>
-
</div>
</div>
<div class="text-overlay">
<p class="inner-title-titr">
جمع‌بندی و نتیجه‌گیری </p>
<table>
<tbody>
<tr>
<td>تعداد فارم فعال</td>
<td>{{poultry_count}} مورد </td>
</tr>
<tr>
<td>میانگین تلفات</td>
<td>{{avg_losses}} قطعه </td>
</tr>
<tr>
<td>میانگین سن کشتار</td>
<td>{{total_killing_ave_age}} روز </td>
</tr>
<tr>
<td>میانگین وزن کشتار</td>
<td>{{ avg_total_killed_weight }} کیلوگرم </td>
</tr>
<tr>
<td>بیشترین کشتار</td>
<td>{{top_total_killed_weight}} کیلوگرم </td>
</tr>
<tr>
<td>بیشترین خرید داخلی</td>
<td>{{total_quantity_top_inner}}قطعه </td>
</tr>
<tr>
<td>بیشترین خرید خارجی</td>
<td>{{total_quantity_top_out}} قطعه </td>
</tr>
<tr>
<td>تعداد سند‌های مشکوک</td>
<td>{{bar_assigment_pending_count1}} مورد </td>
</tr>
</tbody>
</table>
<br>
<br>
<p>
جزییات گزارش عملکرد:
<a href="https://{{ base_url }}backend.rasadyaar.ir/management_all_poultry_and_warehouse/?date1={{ date1 }}&date2={{ date2 }}">دانلود اکسل </a>
</p>
</div>
<div class="pagination">
<span class="page-number">
4
</span>
</div>
</div>
{% endblock body %}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,440 @@
{% extends "base.html" %}
{% block title %}
گزارش بازرسی مرغداری - سامانه رصدیار
{% endblock %}
{% block body %}
<div class="a4-container" style="background-image: url('/static/assets/img/bazrasi.png');">
<div class="titles">
<div>{{ report_id }}</div>
<div>{{ inspection_date }}</div>
<div>-</div>
</div>
<div class="text-overlay">
<p class="nazanin-bold" style="text-align: center !important; font-size: 16px; margin-bottom: 20px;">
گزارش بازرسی مرغداری
</p>
<!-- جدول سربرگ -->
<table style="width: 100%; border-collapse: collapse; margin-bottom: 20px; font-size: 10px;">
<thead>
<tr style="background-color: #f0f0f0;">
<th style="border: 1px solid #333; padding: 4px;">تاریخ بازرسی</th>
<th style="border: 1px solid #333; padding: 4px;">شناسه بازرسی</th>
<th style="border: 1px solid #333; padding: 4px;">نام فارم</th>
<th style="border: 1px solid #333; padding: 4px;">شناسه یکتا</th>
<th style="border: 1px solid #333; padding: 4px;">شناسه جوجه ریزی</th>
<th style="border: 1px solid #333; padding: 4px;">شهرستان</th>
<th style="border: 1px solid #333; padding: 4px;">تاریخ جوجه ریزی</th>
<th style="border: 1px solid #333; padding: 4px;">تعداد جوجه ریزی</th>
<th style="border: 1px solid #333; padding: 4px;">وضعیت بازرسی</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border: 1px solid #333; padding: 4px; text-align: center;">{{ inspection_date }}</td>
<td style="border: 1px solid #333; padding: 4px; text-align: center;">{{ report_id }}</td>
<td style="border: 1px solid #333; padding: 4px; text-align: center;">{{ unit_name }}</td>
<td style="border: 1px solid #333; padding: 4px; text-align: center;">{{ breeding_unique_id }}</td>
<td style="border: 1px solid #333; padding: 4px; text-align: center;">{{ licence_number }}</td>
<td style="border: 1px solid #333; padding: 4px; text-align: center;">{{ city }}</td>
<td style="border: 1px solid #333; padding: 4px; text-align: center;">{{ hatching_date }}</td>
<td style="border: 1px solid #333; padding: 4px; text-align: center;">{{ initial_quantity }}</td>
<td style="border: 1px solid #333; padding: 4px; text-align: center;">{{ inspection_status }}</td>
</tr>
</tbody>
</table>
<!-- بخش اطلاعات -->
<p class="inner-title-titr">اطلاعات</p>
<table style="width: 100%; border-collapse: collapse; font-size: 10px; margin-bottom: 15px;">
<tr>
<td style="border: 1px solid #ddd; padding: 5px; width: 20%; background: #f9f9f9;"><strong>نام واحد
مرغداری</strong></td>
<td style="border: 1px solid #ddd; padding: 5px; width: 30%;">{{ unit_name }}</td>
<td style="border: 1px solid #ddd; padding: 5px; width: 20%; background: #f9f9f9;"><strong>کد یکتا /
شناسه واحد</strong></td>
<td style="border: 1px solid #ddd; padding: 5px; width: 30%;">{{ breeding_unique_id }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>پروانه بهداشتی</strong>
</td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ health_permit }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>مجوز جوجه ریزی</strong>
</td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ hatching_licence }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>کد اپیدمیولوژیک</strong>
</td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ epidemiological_code }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>اعتبار پروانه بهره
برداری</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ permit_validity }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>وضعیت مستاجر</strong>
</td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ tenant_status }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>نام مالک / بهره
بردار</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ owner_name }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>نوع مالکیت</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ ownership_type }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>کد ملی بهره
بردار</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ owner_national_code }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>استان</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ province }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>شهر</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ city }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>مختصات جغرافیایی</strong>
</td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ coordinates }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>شماره تماس بهره
بردار</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ owner_mobile }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>ظرفیت اسمی
واحدها</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ nominal_capacity }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>تاریخ جوجه ریزی</strong>
</td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ hatching_date }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>تاریخ بازدید</strong>
</td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ inspection_date }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>تعداد جوجه ریزی
اولیه</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ initial_quantity }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>تعداد جوجه ریزی توسط
دامپزشکی</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ vet_quantity }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>تعداد جوجه طبق خود اظهاری
مرغدار</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ self_declared_quantity }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>منبع تهیه جوجه</strong>
</td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ chick_source }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>سن جوجه در زمان
بازدید</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ chicken_age }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>نوع نژاد</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;" colspan="3">{{ breed_type }}</td>
</tr>
</table>
<!-- بخش پایش سلامت -->
<p class="inner-title-titr">پایش سلامت</p>
<table style="width: 100%; border-collapse: collapse; font-size: 10px; margin-bottom: 15px;">
<tr>
<td style="border: 1px solid #ddd; padding: 5px; width: 20%; background: #f9f9f9;"><strong>وضعیت بهداشتی
سالن</strong></td>
<td style="border: 1px solid #ddd; padding: 5px; width: 30%;">{{ health_status }}</td>
<td style="border: 1px solid #ddd; padding: 5px; width: 20%; background: #f9f9f9;"><strong>وضعیت
تهویه</strong></td>
<td style="border: 1px solid #ddd; padding: 5px; width: 30%;">{{ ventilation_status }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>وضعیت بستر</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ bedding_status }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>دما و رطوبت سالن با توجه
به سن جوجه</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ temperature_humidity }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>کیفیت آب مصرفی</strong>
</td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ water_quality }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>منبع آب مصرفی</strong>
</td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ water_source }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>تعداد تلفات عادی
دوره</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ normal_losses }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>تلفات غیر عادی</strong>
</td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ abnormal_losses }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>علت تلفات غیر
عادی</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ abnormal_losses_reason }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>نوع بیماری
تشخیصی</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ disease_type }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>نمونه برداری انجام
شده</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ sampling_done }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>نوع نمونه</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ sample_type }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>نام مسئول فنی
بهداشتی</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ health_responsible }}</td>
<td style="border: 1px solid #ddd; padding: 5px; background: #f9f9f9;"><strong>نام مسئول فنی نظام
مهندسی</strong></td>
<td style="border: 1px solid #ddd; padding: 5px;">{{ engineering_responsible }}</td>
</tr>
</table>
</div>
<div class="pagination">
<span class="page-number">1</span>
</div>
</div>
<!-- صفحه دوم -->
<div class="a4-container" style="background-image: url('/static/assets/img/bazrasi.png');">
<div class="titles">
<div>{{ report_id }}</div>
<div>{{ inspection_date }}</div>
<div>-</div>
</div>
<div class="text-overlay">
<!-- بخش زیرساخت -->
<p class="inner-title-titr" style="font-size: 12px; margin: 8px 0 5px 0;">زیرساخت</p>
<table style="width: 100%; border-collapse: collapse; font-size: 8px; margin-bottom: 8px;">
<tr>
<td style="border: 1px solid #ddd; padding: 3px; width: 20%; background: #f9f9f9;"><strong>وضعیت
نهاده</strong></td>
<td style="border: 1px solid #ddd; padding: 3px; width: 30%;">{{ input_status }}</td>
<td style="border: 1px solid #ddd; padding: 3px; width: 20%; background: #f9f9f9;"><strong>نوع
دان</strong></td>
<td style="border: 1px solid #ddd; padding: 3px; width: 30%;">{{ feed_type }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>کیفیت دانه</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ feed_quality }}</td>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>موجودی تا روز
بازدید</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ inventory_until_visit }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>موجودی در انبار</strong>
</td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ warehouse_inventory }}</td>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>کد رهگیری</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ tracking_code }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>نام شرکت</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ company_name }}</td>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>نوع ژنراتور</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ generator_type }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>مدل ژنراتور</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ generator_model }}</td>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>تعداد ژنراتور</strong>
</td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ generator_count }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>نوع سوخت</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ fuel_type }}</td>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>ظرفیت ژنراتور</strong>
</td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ generator_capacity }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>میزان موجودی سوخت اضطراری
(لیتر)</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ emergency_fuel }}</td>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>سابقه قطعی برق دوره
جاری</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ power_cut_history }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>مدت زمان قطعی</strong>
</td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ power_cut_duration }}</td>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>ساعت قطعی</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ power_cut_hour }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>عملکرد ژنراتور</strong>
</td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ generator_status }}</td>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>توضیحات تکمیلی</strong>
</td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ additional_notes }}</td>
</tr>
</table>
<!-- نیروی انسانی و تسهیلات -->
<p class="inner-title-titr" style="font-size: 12px; margin: 8px 0 5px 0;">نیروی انسانی و تسهیلات</p>
<table style="width: 100%; border-collapse: collapse; font-size: 8px; margin-bottom: 8px;">
<tr>
<td style="border: 1px solid #ddd; padding: 3px; width: 20%; background: #f9f9f9;"><strong>تعداد افراد
شاغل</strong></td>
<td style="border: 1px solid #ddd; padding: 3px; width: 30%;">{{ employee_count }}</td>
<td style="border: 1px solid #ddd; padding: 3px; width: 20%; background: #f9f9f9;"><strong>تعداد افراد
بومی</strong></td>
<td style="border: 1px solid #ddd; padding: 3px; width: 30%;">{{ local_employee_count }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>تعداد افراد غیر
بومی</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ non_local_employee_count }}</td>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>وضعیت قرارداد
کارگران</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ worker_contract_status }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>آموزش دیده در حوزه بهداشت
و امنیت زیستی</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ health_training }}</td>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>تسهیلات دریافتی
فعال</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ active_facilities }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>نوع تسهیلات</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ facility_type }}</td>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>مبلغ تسهیلات</strong>
</td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ facility_amount }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>وضعیت بازپرداخت</strong>
</td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ repayment_status }}</td>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>درخواست جدید بهره
بردار</strong></td>
<td style="border: 1px solid #ddd; padding: 3px;">{{ new_request }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>تاریخ تسهیلات</strong>
</td>
<td style="border: 1px solid #ddd; padding: 3px;" colspan="3">{{ facility_date }}</td>
</tr>
</table>
<!-- بخش مستندات -->
<p class="inner-title-titr" style="font-size: 12px; margin: 8px 0 5px 0;">مستندات</p>
<table style="width: 100%; border-collapse: collapse; font-size: 8px; margin-bottom: 8px;">
<tr>
<td style="border: 1px solid #ddd; padding: 4px; width: 20%; background: #f9f9f9; vertical-align: top;">
<strong>وضعیت کلی سالن</strong></td>
<td style="border: 1px solid #ddd; padding: 4px;">
{% if hall_images %}
{% for img in hall_images %}
<div style="margin: 1px 0;">
<a href="{{ img }}"
style="color: #0066cc; text-decoration: underline; word-break: break-all; font-size: 7px;">{{
img }}</a>
</div>
{% endfor %}
{% else %}
<span style="font-size: 7px;">تصویری موجود نیست</span>
{% endif %}
</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 4px; background: #f9f9f9; vertical-align: top;">
<strong>انبار نهاده ها</strong></td>
<td style="border: 1px solid #ddd; padding: 4px;">
{% if warehouse_images %}
{% for img in warehouse_images %}
<div style="margin: 1px 0;">
<a href="{{ img }}"
style="color: #0066cc; text-decoration: underline; word-break: break-all; font-size: 7px;">{{
img }}</a>
</div>
{% endfor %}
{% else %}
<span style="font-size: 7px;">تصویری موجود نیست</span>
{% endif %}
</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 4px; background: #f9f9f9; vertical-align: top;">
<strong>تلفات</strong></td>
<td style="border: 1px solid #ddd; padding: 4px;">
{% if losses_images %}
{% for img in losses_images %}
<div style="margin: 1px 0;">
<a href="{{ img }}"
style="color: #0066cc; text-decoration: underline; word-break: break-all; font-size: 7px;">{{
img }}</a>
</div>
{% endfor %}
{% else %}
<span style="font-size: 7px;">تصویری موجود نیست</span>
{% endif %}
</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 4px; background: #f9f9f9; vertical-align: top;">
<strong>تصاویر تخلف</strong></td>
<td style="border: 1px solid #ddd; padding: 4px;">
{% if violation_images %}
{% for img in violation_images %}
<div style="margin: 1px 0;">
<a href="{{ img }}"
style="color: #0066cc; text-decoration: underline; word-break: break-all; font-size: 7px;">{{
img }}</a>
</div>
{% endfor %}
{% else %}
<span style="font-size: 7px;">تصویری موجود نیست</span>
{% endif %}
</td>
</tr>
</table>
<!-- توصیه‌ها -->
<p class="inner-title-titr" style="font-size: 12px; margin: 8px 0 5px 0;">توصیه ها / اخطارها / اقدامات اصلاحی
</p>
<div
style="font-size: 8px; padding: 5px; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 3px; margin-bottom: 8px;">
<p style="margin: 0;">وضعیت: <strong>{{ inspection_status_text }}</strong></p>
<p style="margin: 3px 0 0 0;">{{ recommendations }}</p>
</div>
<!-- احراز مسئول سالن -->
<p class="inner-title-titr" style="font-size: 12px; margin: 8px 0 5px 0;">احراز مسئول سالن</p>
<table style="width: 100%; border-collapse: collapse; font-size: 8px;">
<tr>
<td style="border: 1px solid #ddd; padding: 3px; width: 20%; background: #f9f9f9;"><strong>مسئول سالن
حضور دارد؟</strong></td>
<td style="border: 1px solid #ddd; padding: 3px; width: 30%;">{{ hall_responsible_present }}</td>
<td style="border: 1px solid #ddd; padding: 3px; width: 20%; background: #f9f9f9;"><strong>نام مسئول
سالن در زمان بازدید</strong></td>
<td style="border: 1px solid #ddd; padding: 3px; width: 30%;">{{ hall_responsible_name }}</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 3px; background: #f9f9f9;"><strong>تلفن مسئول سالن</strong>
</td>
<td style="border: 1px solid #ddd; padding: 3px;" colspan="3">{{ hall_responsible_phone }}</td>
</tr>
</table>
</div>
<div class="pagination">
<span class="page-number">2</span>
</div>
</div>
{% endblock %}

View File

@@ -0,0 +1,91 @@
{% extends "base.html" %}
{% block title %}
سامانه رصدیار
{% endblock title %}
{% block body %}
<div class="a4-container" ,
style="height:292mm !important; background-image: url('/static/assets/img/summary_report.png');">
<div class="titles">
<div>
{{ number }}
</div>
<div>
{{ date }}
</div>
<div>
-
</div>
</div>
<div class="text-overlay">
<p class="nazanin-bold-justify" style="text-align: center !important;">
از تاریخ {{ from_date }} تا تاریخ {{ to_date }} استان {{ province }}
</p>
<p class="nazanin-bold-justify">
به اطلاع می‌رساند :
</p>
<p class="nazanin-bold-justify">
تعداد {{ poultry_count }} فارم فعال در سطح استان شناسایی شده که از این تعداد {{ chain_count }} فارم
دارای زنجیره هستند. مجموع جوجه‌ریزی
در این بازه زمانی به بیش از {{ poultry_hatching_quantity }} قطعه رسیده که با احتساب تلفات دامپزشکی و
اتحادیه({{ poultry_hatching_total_losses }} قطعه)،
حدود {{ poultry_hatching_killed_quantity }} قطعه کشتار شده و بیش از{{ poultry_hatching_left_over }} قطعه
نیز همچنان در سالن‌ها باقی مانده‌اند. تعداد
{{ poultry_hatching_gt_60 }}
فارم با سن بیش از ۶۰ روز شناسایی شده که حجم کلی آن‌ها حدود {{ poultry_hatching_gt_60_quantity }} قطعه
بوده و میانگین مانده در سالن
آن‌ها حدود {{ poultry_hatching_gt_60_left_over }} درصد است. بیشترین سن کشتار به
فارم {{ max_age_poultry_name }} در
{{ max_age_poultry_city }} با
{{ max_age_poultry }} روز و کمترین سن
کشتار به فارم {{ min_age_poultry_name }} در {{ min_age_poultry_city }} با {{ min_age_poultry }} روز تعلق
دارد.
</p>
<p class="nazanin-bold-justify">
در مجموع {{ kill_house_request_count }} بار کشتار در داخل استان ثبت شده که منجر به کشتار بیش
از {{ kill_house_request_quantity }} قطعه با وزنی حدود
{{ kill_house_request_weight }}
کیلوگرم شده است. همچنین {{ free_bars_count }} بار خریداری از خارج استان انجام شده که
شامل {{ free_bars_quantity }} قطعه با وزن
{{ free_bars_live_weight }} کیلوگرم بوده که بیشترین خریدار در این حوزه، {{ kill_house_name }}
با {{ transaction_count }} بار بوده است.
</p>
<p class="nazanin-bold-justify">
از نظر عملکرد خریداران، {{ kill_house_name_req }} با {{ transaction_count_req }} بار
و {{ total_quantity_top_inner }} قطعه بیشترین خرید داخل استان را داشته و
{{ kill_house_name }}
با {{ total_quantity_top_out }} قطعه بیشترین حجم خرید از خارج استان را انجام داده است. بیشترین بار
ارسالی از داخل
استان مربوط به مرغداری {{ poultry_req_name_req }} {{ poultry_city_req_name_req }}
با {{ top_poultry_req_stats_total_quantity }} قطعه و از خارج استان مربوط به
مرغداری {{ out_poultry_req_name_req }}
در {{ out_poultry_province_req_name_req }} شهر {{ out_poultry_city_req_name_req }}
با {{ out_top_poultry_req_stats_total_quantity }} قطعه است.
</p>
<p class="nazanin-bold-justify">
در خصوص توزیع لاشه، مجموع وزن لاشه فروش رفته از انبارها به میزان {{ steward_sum_weight_sale }} کیلوگرم به داخل استان و
{{ free_bar_sum_weight_sale }} کیلوگرم به خارج از استان صورت گرفته است. مهم‌ترین واحد‌ توزیع‌کننده لاشه درون استان
{{ out_kill_house_top }}
با وزن {{ out_weight_top }} کیلوگرم که بخش عمده‌ای از فروش داخلی را بر عهده داشته‌است.
و {{ free_bars_kill_house_top }} با وزن {{ free_bars_weight_top }} کیلوگرم توزیع به خارج استان بیشترین گوشت را از استان خارج کرده است.
</p>
<p class="nazanin-bold-justify">
از نظر اسناد و قبوض باسکول، {{percent_bar_document_status_rejected_all}} درصد از بارها دارای سند مشکوک یا عدم احراز اصالت می باشند.
</p>
<p>
جزییات گزارش عملکرد:
<a href="https://{{ base_url }}backend.rasadyaar.ir/management_all_poultry_and_warehouse/?date1={{ date1 }}&date2={{ date2 }}">دانلود اکسل </a>
</p>
</div>
<div class="pagination">
<span class="page-number">
1
</span>
</div>
</div>
{% endblock body %}