لوكس كوتور

Luxe Couture — الأزياء الفاخرة

function ld(){let r=localStorage.getItem(K);return r?JSON.parse(r):{designs:[],customers:[],orders:[],nid:{d:1,c:1,o:1}}} function sv(db){localStorage.setItem(K,JSON.stringify(db))} function $_(s,d){if(typeof s==='string')return(d||document).querySelector(s);return s.querySelector(d)} function $$_(s,d){if(typeof s==='string')return(d||document).querySelectorAll(s);return s.querySelectorAll(d)} function fm(n){return Number(n).toFixed(3)} function toast(m){let b=$_(document,'#toastBox');b.innerHTML='
'+m+'
';setTimeout(()=>b.innerHTML='',2500)} function now(){return new Date().toISOString().split('T')[0]} // ===== NAVIGATION ===== function openSection(sec){ document.getElementById('mainScreen').style.display='none'; document.querySelectorAll('.section-screen').forEach(s=>s.classList.remove('active')); let el=document.getElementById('sec-'+sec); el.classList.add('active'); renderSection(sec, el.querySelector('.section-inner')); } function closeSection(){ document.getElementById('mainScreen').style.display=''; document.querySelectorAll('.section-screen').forEach(s=>s.classList.remove('active')); } function renderSection(sec, ct){ ct.innerHTML=''; let div=document.createElement('div'); if(sec==='designs') renderDesigns(div); else if(sec==='customers') renderCustomers(div); else if(sec==='orders') renderOrders(div); else if(sec==='invoices') renderInvoices(div); else if(sec==='reports') renderReports(div); ct.appendChild(div); } // ===== DESIGNS TAB ===== function renderDesigns(ct){ let db=ld();let ds=[...db.designs].reverse(); let rows='';if(!ds.length)rows='
👗 لا توجد تصاميم
'; else ds.forEach(d=>rows+=''+(d.img?'':'—')+''+d.n+''+d.ft+''+d.fq+' م'+d.tn+''+fm(d.sc)+' ر.ع'+fm(d.sp)+' ر.ع'); ct.innerHTML=''+ '

إضافة تصميم جديد

'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
'+ '

قائمة التصاميم ('+ds.length+')

'+ '
'+ '
'+rows+'
الصورةالاسمالقماشالكميةالخياطتكلفةالسعرحذف
'; } function addDesign(){ let n=$_(document,'#dn').value.trim(),ft=$_(document,'#dft').value.trim(),fq=$_(document,'#dfq').value,tn=$_(document,'#dtn').value.trim(),sc=$_(document,'#dsc').value,sp=$_(document,'#dsp').value; if(!n||!ft||!fq||!tn||!sc||!sp)return toast('الرجاء ملء جميع الحقول'); let fi=$_(document,'#dim').files[0]; let save=(img)=>{let db=ld();db.designs.push({id:db.nid.d++,n,img:img||'',ft,fq:+fq,tn,sc:+sc,sp:+sp});sv(db);renderSection('designs',$_(document,'#sec-designs .section-inner'));toast('تمت الإضافة ✓')}; if(fi){let r=new FileReader();r.onload=()=>save(r.result);r.readAsDataURL(fi)}else save('') } function delDesign(id){if(!confirm('حذف التصميم؟'))return;let db=ld();db.designs=db.designs.filter(d=>d.id!==id);sv(db);renderSection('designs',$_(document,'#sec-designs .section-inner'));toast('تم الحذف')} // ===== CUSTOMERS TAB ===== function renderCustomers(ct){ let db=ld();let cs=[...db.customers].reverse(); let rows='';if(!cs.length)rows='
👥 لا يوجد عملاء
'; else cs.forEach(c=>{let addr=c.type==='داخلي'?c.wil:(c.country+' - '+c.city+' - '+c.nb+' - '+c.st+' - '+c.hn);rows+=''+c.n+''+c.type+''+addr+''+c.ph+''+c.created+''}); ct.innerHTML=''+ '

إضافة عميل جديد

'+ '
'+ '
'+ '
'+ ''+ ''+ '
'+ '

قائمة العملاء ('+cs.length+')

'+ '
'+ '
'+rows+'
الاسمالنوعالعنوانالهاتفالتاريخحذف
'; } function toggleCustFields(){ let t=$_(document,'#ctp').value; $_(document,'#cInternal').style.display=t==='داخلي'?'block':'none'; $_(document,'#cExternal').style.display=t==='خارجي'?'block':'none'; } function addCustomer(){ let n=$_(document,'#cn').value.trim(),tp=$_(document,'#ctp').value,ph=$_(document,'#cph').value.trim(); if(!n||!tp||!ph)return toast('الرجاء ملء الحقول المطلوبة'); let db=ld();let c={id:db.nid.c++,n,tp,ph,wil:'',country:'',city:'',nb:'',st:'',hn:'',created:now()}; if(tp==='داخلي')c.wil=$_(document,'#cwil').value.trim(); else{c.country=$_(document,'#ccountry').value.trim();c.city=$_(document,'#ccity').value.trim();c.nb=$_(document,'#cnb').value.trim();c.st=$_(document,'#cst').value.trim();c.hn=$_(document,'#chn').value.trim()} db.customers.push(c);sv(db);renderSection('customers',$_(document,'#sec-customers .section-inner'));toast('تمت الإضافة ✓') } function delCustomer(id){if(!confirm('حذف العميل؟'))return;let db=ld();db.customers=db.customers.filter(c=>c.id!==id);sv(db);renderSection('customers',$_(document,'#sec-customers .section-inner'));toast('تم الحذف')} // ===== ORDERS TAB ===== function renderOrders(ct){ let db=ld();let os=[...db.orders].reverse(); let copts=''+db.customers.map(c=>'').join(''); let dopts=''+db.designs.map(d=>'').join(''); let rows='';if(!os.length)rows='
📋 لا توجد طلبات
'; else os.forEach((o,i)=>{let d=db.designs.find(d=>d.id===o.did)||{},c=db.customers.find(c=>c.id===o.cid)||{};rows+=''+(os.length-i)+''+o.dt+''+(c.n||'—')+''+(d.n||'—')+''+o.ot+''+o.qty+''+fm(o.tp)+' ر.ع'+o.st+''+(o.notes||'—')+''}); ct.innerHTML=''+ '

تسجيل طلب جديد

'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
'+ '
'+ ''+ '
'+ '

قائمة الطلبات ('+os.length+')

'+ '
'+ '
'+rows+'
#التاريخالعميلالتصميمنوع الطلبالكميةالإجماليالحالةملاحظاتحذف
'; } function calcPrice(){ let did=$_(document,'#odid').value,qty=+$_(document,'#oqty').value||0;let db=ld();let d=db.designs.find(d=>d.id===+did); let el=$_(document,'#oprice');if(d&&qty>0){el.style.display='block';el.innerHTML='💰 الإجمالي: '+fm(d.sp*qty)+' ر.ع'}else el.style.display='none' } function addOrder(){ let dt=$_(document,'#odt').value,cid=+$_(document,'#ocid').value,did=+$_(document,'#odid').value,ot=$_(document,'#oot').value,qty=+$_(document,'#oqty').value,st=$_(document,'#ost').value,notes=$_(document,'#onotes').value.trim(); if(!dt||!cid||!did||!ot||!qty||!st)return toast('الرجاء ملء جميع الحقول'); let db=ld();let d=db.designs.find(d=>d.id===did);if(!d)return toast('التصميم غير موجود'); db.orders.push({id:db.nid.o++,dt,cid,did,ot,qty,st,notes,tp:d.sp*qty,created:now()});sv(db); renderSection('orders',$_(document,'#sec-orders .section-inner'));toast('تم التسجيل ✓') } function delOrder(id){if(!confirm('حذف الطلب؟'))return;let db=ld();db.orders=db.orders.filter(o=>o.id!==id);sv(db);renderSection('orders',$_(document,'#sec-orders .section-inner'));toast('تم الحذف')} // ===== INVOICES TAB ===== function renderInvoices(ct){ let db=ld();let copts=''+db.customers.map(c=>'').join(''); ct.innerHTML=''+ '

إصدار فاتورة

'+ '
'+ '
'; } function showInvoice(){ let cid=+$_(document,'#icid').value;if(!cid){$_(document,'#invoiceArea').innerHTML='';return} let db=ld();let c=db.customers.find(c=>c.id===cid);if(!c)return; let addr=c.type==='داخلي'?c.wil:(c.country+'، '+c.city+'، '+c.nb+'، '+c.st+'، '+c.hn); let cos=db.orders.filter(o=>o.cid===cid); if(!cos.length){$_(document,'#invoiceArea').innerHTML='
🧾 لا توجد طلبات لهذا العميل
';return} let total=cos.reduce((s,o)=>s+o.tp,0); let rows=cos.map(o=>{let d=db.designs.find(d=>d.id===o.did)||{};return''+o.dt+''+(d.n||'—')+''+o.ot+''+o.qty+''+fm(o.tp)+' ر.ع'+o.st+''}).join(''); $_(document,'#invoiceArea').innerHTML='
'+ '

لوكس كوتور

Luxe Couture — الأزياء الفاخرة

'+ '
'+ '

🧾 فاتورة

'+ '
العميل:'+c.n+'
'+ '
النوع:'+c.type+'
'+ '
العنوان:'+addr+'
'+ '
الهاتف:'+c.ph+'
'+ '
عدد الطلبات:'+cos.length+'
'+ '
الإجمالي:'+fm(total)+' ر.ع
'+ '
'+rows+'
التاريخالتصميمنوع الطلبالكميةالقيمةالحالة
'; } function printInvoice(){window.print()} // ===== REPORTS TAB ===== function renderReports(ct){ let db=ld();let tailors=[...new Set(db.designs.map(d=>d.tn))].sort(); let topts=''+tailors.map(t=>'').join(''); ct.innerHTML=''+ '

تصفية التقارير

'+ '
'+ '
'+ '
'+ '
'; } function runReport(){ let db=ld();let t=$_(document,'#rt').value,f=$_(document,'#rf').value,to=$_(document,'#rto').value; let os=db.orders.map(o=>{let d=db.designs.find(d=>d.id===o.did)||{},c=db.customers.find(c=>c.id===o.cid)||{};return{...o,dn:d.n||'',tn:d.tn||'',ft:d.ft||'',fq:d.fq||0,cn:c.n||''}}); if(t)os=os.filter(o=>o.tn===t);if(f)os=os.filter(o=>o.dt>=f);if(to)os=os.filter(o=>o.dt<=to); os.sort((a,b)=>a.dt.localeCompare(b.dt));let total=os.reduce((s,o)=>s+o.tp,0),avg=os.length?total/os.length:0; let fm2={};os.forEach(o=>{let k=o.ft;if(!k)return;if(!fm2[k])fm2[k]={ft:k,tf:0,oc:0};fm2[k].tf+=o.fq*o.qty;fm2[k].oc+=1}); let fr=Object.values(fm2).sort((a,b)=>b.tf-a.tf); let s='
'+fm(total)+' ر.ع
إجمالي المبيعات
'+ '
'+os.length+'
عدد الطلبات
'+ '
'+fm(avg)+' ر.ع
متوسط الطلب
'; let ors=os.length?os.map(o=>''+o.dt+''+o.cn+''+o.dn+''+o.tn+''+o.qty+''+fm(o.tp)+' ر.ع').join(''):'
لا توجد طلبات
'; let frs=fr.length?fr.map(f=>''+f.ft+''+f.tf.toFixed(1)+' م'+f.oc+'').join(''):'
لا توجد بيانات
'; $_(document,'#rres').innerHTML=s+'

تفاصيل الطلبات

'+ors+'
التاريخالعميلالتصميمالخياطالكميةالإجمالي
'+ '

استهلاك الأقمشة

'+frs+'
نوع القماشالاستهلاك (متر)عدد الطلبات
'; } // ===== SEARCH ===== function searchTable(input, tableId){ let q=input.value.toLowerCase(),rows=$$_('tbody tr',document.getElementById(tableId)); rows.forEach(r=>{let t=r.textContent.toLowerCase();r.style.display=t.includes(q)?'':'none'}) }