@extends('layouts.master') @section('css') @section('title') {{ __('home.sales') }} @stop @endsection @section('content') {{--بداية سكشن العميل اول سكشن --}}
# ID
{{ __('sales.mobile_number') }}
{{ __('sales.vat_no') }}
{{ __('sales.id_number') }}
@php // قراءة رقم الفرع بالاسم الصحيح للعمود في جدول users $userBranchId = auth()->user()->branchs_id ?? auth()->user()->branch_id; // جلب الموظف التابع لنفس الفرع (فرع 22 -> طه حسين) $employeeRecord = App\Models\employee::where('branch_id', $userBranchId) ->where('department', 1) ->first(); // جلب اسم الموظف $empName = $employeeRecord ? (app()->getLocale() == 'ar' ? $employeeRecord->name_ar : $employeeRecord->name_en) : auth()->user()->name; // جلب اسم الفرع $branchName = $employeeRecord && $employeeRecord->branch ? (app()->getLocale() == 'ar' ? ($employeeRecord->branch->name_ar ?? $employeeRecord->branch->name) : ($employeeRecord->branch->name_en ?? $employeeRecord->branch->name)) : (auth()->user()->branch->name_ar ?? auth()->user()->branch->name ?? 'طويق'); @endphp
{{ __('hr.name') }} / {{ __('home.branches') }}:
{{ __('sales.order_date') }}
{{ __('sales.delivery_date') }}
user()->roles_name) ? 'readonly' : '' }}>
{{-- موديل اضافة عميل --}} {{-- موديل اضافة عميل --}} {{-- موديل بحث عن عميل --}} {{-- موديل بحث عن عميل --}} {{--نهاية سكشن العميل اول سكشن --}} {{--بداية سكشن المقاسات تاني سكشن --}}
@php $measurements = [ __('sales.front_length') => 'front_length', __('sales.back_length') => 'back_length', __('sales.shoulder_width') => 'shoulder_width', __('sales.sleeve_length') => 'sleeve_length', __('sales.arm_width') => 'arm_width', __('sales.arm_mid_width') => 'arm_mid_width', __('sales.arm_bottom_width') => 'arm_bottom_width', __('sales.chest_width') => 'chest_width', __('sales.neck_size') => 'neck_size', __('sales.collar_size') => 'collar_size', __('sales.neck_plain') => 'neck_plain', __('sales.step_width') => 'step_width', __('sales.arm_center_width') => 'arm_center_width', __('sales.cuff_width') => 'cuff_width', __('sales.cuff_hem') => 'cuff_hem', __('sales.bottom_hem') => 'bottom_hem', __('sales.dropped_shoulder') => 'dropped_shoulder', ]; @endphp @foreach($measurements as $label => $db_field)
@endforeach @php // جلب الأدوار $roles = is_array(auth()->user()->roles_name) ? auth()->user()->roles_name : json_decode(auth()->user()->roles_name, true); $isAuthorizedRole = in_array('Admin', $roles ?? []) || in_array('Manger', $roles ?? []); // جلب بيانات فرع الموظف الحالي (عن طريق العلاقة في موديل User) $branchCanEdit = auth()->user()->branch->allow_extra_edit ?? false; // الشرط النهائي: لو هو إداري "أو" فرعه مسموح له $canEditIncrease = $isAuthorizedRole || $branchCanEdit; @endphp
@php $notes = [ __('sales.notes_one') => 'notes_one', __('sales.notes_two') => 'notes_two', __('sales.notes_three') => 'notes_three', __('sales.notes_four') => 'notes_four', ]; @endphp @foreach($notes as $label => $db_field)
@endforeach {{-- الإضافة الجديدة: عدد الطقطق ونوع الجيب --}}
@php // تقسيم الحقول إلى 3 مجموعات كما في تصميمك الأصلي $groups = [ ['hand_plain', 'kabak_plain', 'hidden_pockets'], // المجموعة 1 (check 1, 2, 3) ['visible_pockets', 'janzour', 'hidden'], // المجموعة 2 (check 4, 5, 6) ['visible_hidden', 'hidden_sewing', 'twisted_sewing'] // المجموعة 3 (check 7, 8, 9) ]; $checkIndex = 1; // عداد الـ ID يبدأ من 1 @endphp @foreach($groups as $group)
@foreach($group as $field)
{{-- الـ id هنا هيطلع check1, check2, إلخ لضمان عمل الـ Ajax --}}
@php $checkIndex++; @endphp @endforeach
@endforeach
{{--نهاية سكشن المقاسات تاني سكشن --}} {{--بداية سكشن الموديلات رابع سكشن --}}
@php // تعديل قيم الـ max والمسارات بناءً على الموديلات الجديدة $style_sections = [ 'neck' => ['title' => __('sales.neck_section'), 'folder' => 'neck', 'max' => 25], // زادت لـ 20 'janzour' => ['title' => __('sales.janzour_section'), 'folder' => 'janzour', 'max' => 10], // عدل الرقم حسب فعلي 'sleeve' => ['title' => __('sales.sleeve_section'), 'folder' => 'sleeve', 'max' => 19], 'side_p' => ['title' => __('sales.side_p_section'), 'folder' => 'side_p', 'max' => 8], 'front_p' => ['title' => __('sales.front_p_section'), 'folder' => 'front_p', 'max' => 17], ]; @endphp @foreach($style_sections as $key => $info)
{{ $info['title'] }}
{{ __('sales.style_model') }} 1
{{-- نمنع الـ click من تفعيل اختيار الصندوق --}}
@endforeach
{{--نهاية سكشن الموديلات رابع سكشن --}} {{--بداية سكشن الانزال تالت سكشن --}}
{{ __('sales.qty') }} {{ __('sales.unit') }} {{ __('sales.item_number') }} {{ __('sales.item_name') }} {{ __('sales.description') }} {{ __('sales.unit_price') }} {{ __('sales.totall') }} {{ __('sales.discount') }} {{ __('sales.tax') }} {{ __('sales.net_total') }}
{{--نهاية سكشن الانزال تالت سكشن --}} {{-- موديل البحث --}} {{-- موديل البحث --}}
{{ __('home.sewing_summary') }}
{{-- البيانات هنا هيتم توليدها برضه باستخدام الترجمة لو ثابتة --}}
{{ __('home.customer') }} {{ __('home.type') }} {{ __('home.measurements') }} {{ __('home.models') }} {{ __('home.specifications') }} {{ __('home.meters') }} {{ __('home.price') }} {{ __('home.action') }}
{{--بداية سكشن الحسابات خامس سكشن --}}
{{ __('sales.subtotal_before_tax_discount') }} 0.00
{{ __('sales.discount') }}
{{-- نضرب في 100 هنا للعرض فقط --}} {{ __('sales.vat_amount') }} ({{ $tax_rate * 100 }}%): 0.00
{{-- الحقل المخفي يفضل كما هو بالقيمة العشرية 0.15 لسهولة الحساب --}} {{-- تخزين الحد الأقصى للخصم القادم من السيستم --}}
{{ __('sales.final_price_inc_tax') }}
0.00
@if(auth()->user()->hasAnyRole(['Admin', 'Manger']))
@endif
{{-- بداية موديل طباعة الرول --}} {{-- نهاية موديل طباعة الرول --}} {{-- بداية موديل التعديل --}} {{-- نهاية موديل التعديل --}} {{--نهاية سكشن الحسابات خامس سكشن --}} {{--بداية سكشن الدفع سادس سكشن --}} {{--نهاية سكشن الدفع سادس سكشن --}} @endsection @section('js') @endsection ظبطلي شكل الفاتورة دي بس اوعي تمسح داتا    
        {{-- 1. الهيدر العام (تم تقليل البادينج) --}}        
                                                                                                                   
                        تاريخ التفصيل: {{ $invoice->created_at->format('Y-m-d') }}
                        التسليم: {{ $invoice->delivery_date ? \Carbon\Carbon::parse($invoice->delivery_date)->format('Y-m-d') : '-' }}                    
               
                            {{-- عرض رقم الهاتف واسم الفرع بناءً على العلاقة --}}                             @if($invoice->branch)                                 {{ $invoice->branch->phone }}                                
                                    الفرع: {{ $invoice->branch->name }} - {{ $invoice->branch->place }}                                
                            @else                                 {{-- بيانات افتراضية في حال عدم وجود فرع مرتبط بالفاتورة --}}                                 0571700030   /   YAROB - يعرب                                
العنوان : لين - شارع الطائف
                            @endif                        
                       
                        {{ $invoice->customer->id ?? '-' }} | {{ $invoice->customer->name ?? 'سعود التميمي' }} | {{ $invoice->customer->phone ?? '0507970570' }}                        
                   
                                               
{{ $invoice->id }}
                   
                                                                                                                                                                               
الثياب: {{ $items->sum('qty') }}إجمالي القماش: {{ number_format($items->sum('total_measurements'), 2) }} م                         الدفع:                                                     @php                                 // نقوم بتنظيف النص وتقسيمه بناءً على الشرطة (-)                                 $methods = explode('-', $invoice->payment_methods_text);                                 $translatedMethods = [];                                 foreach($methods as $method) {                                     $method = trim($method);                                     if(!empty($method)) {                                         // البحث عن الترجمة في ملف home                                         $translatedMethods[] = __('sales.' . strtolower($method));                                     }                                 }                             @endphp                             {{-- عرض النتائج مفصولة بـ + --}}                             {{ count($translatedMethods) > 0 ? implode(' + ', $translatedMethods) : $invoice->payment_methods_text }}                                             المبلغ: {{ number_format($invoice->Price, 2) }}المدفوع: {{ number_format($invoice->Pay, 2) }}المتبقي: {{ number_format($invoice->Price - $invoice->Pay, 2) }}
       
        {{-- 2. جدول المقاسات (تم تصغير المربعات) --}}         @php             $firstItem = $items->first();             $global_measurements = json_decode($firstItem->order_measurements ?? '[]', true) ?? [];             // التعديل هنا ليتطابق مع مسميات النظام (Sales)             $meas_labels = [                 'front_length'     => 'طول أمام',                 'back_length'      => 'طول خلف',                 'shoulder_width'   => 'عرض الكتف',                 'sleeve_length'    => 'يد سادة',                 'arm_width'        => 'وسع اليد',                 'arm_mid_width'    => 'يد كبك',                 'arm_bottom_width' => 'اسفل اليد',                 'chest_width'      => 'وسع الصدر',                 'neck_size'        => 'وسع الورك',                 'collar_size'      => 'رقبة قلاب',                 'neck_plain'       => 'رقبة سادة', // تم تصحيح المسمى هنا                 'step_width'       => 'وسع خطوة',                 'arm_center_width' => 'وسط اليد',                 'cuff_width'       => 'وسع كبك',                 'cuff_hem'         => 'كفة كبك',                 'bottom_width'     => 'وسع أسفل',                 'bottom_hem'       => 'كفة أسفل',                 'dropped_shoulder' => 'كتف نازل',             ];         @endphp        
           
                @foreach($meas_labels as $key => $label)                    
                       
{{ $label }}
                       
{{ $global_measurements[$key] ?? '0' }}
                   
                @endforeach            
       
        {{-- 3. لوب الموديلات --}}     {{-- بداية حلقة عرض الثياب --}}     @foreach($items as $index => $item)         @php             $item_styles = json_decode($item->order_styles ?? '[]', true) ?? [];             $item_features = json_decode($item->order_features ?? '[]', true) ?? [];             $item_m_data = json_decode($item->order_measurements ?? '[]', true) ?? [];             $getVal = function($data) { return is_array($data) ? ($data['model'] ?? 1) : ($data ?? 1); };         @endphp        
       
        ثوب رقم: {{ $index + 1 }} | الصنف: {{ $item->product->product_name ?? 'غير محدد' }}         الكمية: {{ number_format($item->qty, 0) }} ثوب  |  السعر: {{ number_format($item->price, 2) }}    
       
           
            @foreach($item_styles as $s_key => $style)                 @php                     // تأكد من طريقة جلب البيانات، إذا كانت $style عبارة عن مصفوفة أو كائن                     $imgNum = is_array($style) ? ($style['model'] ?? '1') : ($style->model ?? '1');                     $note = is_array($style) ? ($style['note'] ?? '') : ($style->note ?? '');                 @endphp                
                   
                        {{ __('sales.' . $s_key) }}                    
                   
                                           
                   
                        موديل {{ $imgNum }}                    
                    @if(!empty($note))                        
                            {{ $note }}                        
                    @endif                
            @endforeach        
           
                @foreach($item_features as $f_key => $f_val)                     @if($f_val == 1)                         ✓ {{ __('sales.' . $f_key) }}                     @endif                 @endforeach                 @php $note_keys = ['notes_one', 'notes_two', 'notes_three', 'notes_four', 'buttons_count','pocket_type']; @endphp                 @foreach($note_keys as $n_key)                     @if(!empty($item_m_data[$n_key]))                                                     {{ __('sales.'.$n_key) }}: {{ $item_m_data[$n_key] }}                                             @endif                 @endforeach            
       
   
@endforeach {{-- الجزء المطلوب: قسيمة التجهيز (أسفل الصفحة) --}}
                                                               
           
{{ $items->sum('qty') }}
           
عدد الثياب
       
           
{{ $invoice->created_at->format('Y-m-d') }}
           
                {{ $invoice->id }}            
       
           
العميل:
           
{{ $invoice->customer->name ?? 'سعود التميمي' }}
           
رقم العميل: {{ $invoice->customer->id ?? '-' }}
       
                                   
البائع:
           
                {{ $employee->name_ar ?? 'مدير' }}            
                       
الخياط:
           
                {{ $invoice->tailor->name_ar ?? ($invoice->tailor_name ?? 'غير محدد') }}            
       
                       
باركود التجهيز
       
{{-- زر الطباعة (يظهر في الشاشة فقط) --}}