Bizy – תיעוד למשתמש
אני רוצה לוודא שהכל יענה באופן מושלם על הסיכום הנ״ל
אם כן,
תכין לי קובץ אחר קובץ באופן מושלם בתור קובץ rar מוכן להורדה כשכל הקבצים גם ממומשים
סיכום:
הנה מסמך איפיון/מפרט מלא, מעשי ומפורט עד לרזולוציית כפתור/טולטיפ/שדה—מבלי להשמיט שום פרט שהמשתמש רואה. אין כאן קוד.
האפליקציה היא Workspace פר־עסק. לכל עסק יש:
לקוחות,
הכנסות (מתוכננות/שולמו, קשורות ללקוח),
הוצאות (פשוט: העלאת קבלות),
רו״ח (פרטים קבועים + נספחים + מסמכי חיוב),
הגדרות עסק,
מחשבון (סימולציה).
בכל פעם שמסמנים תשלום כשולם, מתבצעת “קופסה שחורה”: Toast שמדמה: (1) הקצאת מספר קבלה/חשבונית, (2) יצירת PDF דו־לשוני, (3) שליחה ללקוח, (4) תיעוד במסך רו״ח. (כרגע זה סימולציה בלבד – לא באמת יוצר/שולח, רק מציג toast ומעדכן סטטוסים). שפות: עברית/אנגלית. כל הטקסטים והטולטיפים עוברים דרך מילון. ניתן להחליף שפה מהגדרות העסק. מסך 0: “העסקים שלי”
כותרת: “העסקים שלי”
כפתורים: “+ הוסף עסק חדש”
רשימת כרטיסי עסקים: שם העסק, סוג העסק (עוסק פטור/מורשה/חברה), פעולות: “כניסה”, “מחיקה”.
אם אין עסקים: מצב ריק עם CTA להוספה.
טולטיפים:
i ליד “סוג העסק”: “משפיע על חישובי מע״מ והמסמכים לרו״ח.”
מודאל “הוסף עסק”
שדות: שם עסק (חובה), סוג עסק (פטור/מורשה/בע״מ, חובה).
כפתורים: “שמור”, “ביטול”.
אימות: לא מאפשר לשמור בלי שם.
תוצאה: יוצר עסק, נכנס ל־Workspace.
בתוך עסק (Business Workspace) בראש: כותרת עם שם העסק + סוגו. טאב־ניווט:
1. סקירה (Overview)
2. לקוחות (Clients)
3. הכנסות (Income)
4. הוצאות (Expenses)
5. רו״ח (Accountant)
6. הגדרות עסק (Settings)
7. מחשבון (Calculator)
1) סקירה (Overview)
כרטיסי KPI:
“שולם החודש” (₪)
“צפוי 30 הימים הבאים” (₪)
“מסמכי חיוב שנשלחו” (#, 30 ימים)
“חסרים לרו״ח” (# פריטים חסרים בטופס הקבוע)
רשימת תשלומים קרובים (מהכנסות): טבלה קטנה: תאריך יעד, לקוח, סכום, סטטוס, כפתור “סמן כשולם”.
התראות חסרים:
לדוגמה: “חסר IBAN/צילום תעודה/מייל לקוח לצורך שליחת קבלה” — לינק מהיר להשלמה.
טולטיפים:
i “שולם החודש”: “סך כל התשלומים שסומנו כ’שולם’ בחודש הקלנדרי הנוכחי.”
i “צפוי 30 הימים הבאים”: “סכום תשלומים שתאריך היעד שלהם ב־30 הימים הקרובים.”
2) לקוחות (Clients)
כפתור “+ לקוח חדש”.
טבלת לקוחות: שם, מייל, טלפון, סוג לקוח (ישראל/חו״ל), # הכנסות פעילות, פעולות: “עריכה”, “מחיקה”, “צפה בהכנסות הלקוח”.
טולטיפים:
i ליד “סוג לקוח”: “לצורך חישוב מע״מ — לקוח בישראל עשוי לחייב מע״מ אצל עוסק מורשה/חברה.”
i ליד “מייל”: “נדרש לצורך שליחת הקבלות/חשבוניות (קופסה שחורה).”
מודאל “לקוח חדש/עריכה”
שדות:
שם (חובה)
מייל (אופציונלי אבל נדרש כדי לשלוח קבלה)
טלפון (אופציונלי)
מדינת הלקוח: “ישראל” / “חו״ל” (חובה)
הערות (טקסט חופשי)
אימות: שם חובה; התראה ש“מייל נדרש לשליחה כאשר תשלום יסומן כשולם”.
כפתורים: “שמור”, “ביטול”.
3) הכנסות (Income)
כפתור “+ הכנסה חדשה”.
מסננים: לפי לקוח, סטטוס (מתוכננת/שולמה חלקית/שולמה), טווח תאריכים, חיפוש חופשי.
טבלה:
תאריך יעד הקרוב (או תאריך תשלום אחרון אם שולם)
לקוח (שם + תג ישראל/חו״ל)
סוג (חד־פעמי / חודשי X חודשים / תשלומים מפוצלים)
סכום כולל (מטבע)
סטטוס (מתוכננת/חלקית/שולמה)
פעולות: “פרטים/נהל תשלומים”, “סמן כשולם” (מהיר כשחד־פעמי), “מחיקה”
טולטיפים:
i ליד “סטטוס”: “’מתוכננת’ = טרם התקבל תשלום, ‘חלקית’ = חלק מהתשלומים שולם, ‘שולמה’ = כל התשלומים שולם.”
מודאל “הכנסה חדשה/עריכה”
שדות (חובה אלא אם צוין אחרת):
לקוח (חובה, drop-down של לקוחות העסק + “+ לקוח חדש” אינליין)
סוג הכנסה:
חד־פעמי
חודשי X חודשים (מספר חודשים)
תשלומים מפוצלים (מס’ תשלומים, כל תשלום יכול להיות סכום/תאריך שונה)
מטבע: ₪ / $ (אם $, מוצג שדה “שער המרה”)
סכום:
חד־פעמי: סכום אחד
חודשי: סכום חודשי + תאריך התחלה + X חודשים (מייצר לוח תשלומים אוטומטי)
מפוצל: טבלת תשלומים — לכל שורה: סכום, תאריך יעד (Editable)
עמלת קליטה % (לא חובה; ברירת מחדל מהגדרות העסק)
כאשר מטבע $:
שער המרה (ברירת מחדל מהגדרות; ניתן שינוי)
תצוגת תצוגה מקדימה (בתוך המודאל): סכום לאחר עמלה, סכום בש״ח (אם $), מקדמות חודשיות (הערכה), נטו זמני.
כפתורים: “שמור”, “ביטול”.
ולידציה:
לקוח חובה
חודשי: חודשים ≥ 1; תאריך התחלה חובה
מפוצל: לכל תשלום סכום ותאריך יעד
נשמרת רשומה עם לוח תשלומים (installments) פנימי: [מס׳, סכום, מטבע, שער בעת יצירה/עתידי, תאריך יעד, סטטוס תשלום (מתוכנן/שולם), תאריך תשלום]
מסך פרטי הכנסה / ניהול תשלומים
כותרת: שם הלקוח + תיאור קצר (למשל “חודשי — 6 חודשים”)
כרטיס סיכום:
סכום כולל, שולם עד כה, נותר, סטטוס כולל
לוח תשלומים (טבלה):
#, תאריך יעד, סכום (מטבע), “לאחר עמלה” (אם הוגדר), המרה לש״ח (אם $), סטטוס (מתוכנן/שולם), פעולות: “סמן כשולם”
כפתור לכל תשלום: “סמן כשולם”:
אימות תנאים: אם הלקוח בלי מייל → מציג התראה: “לא ניתן לבצע שליחה (קופסה שחורה) ללא כתובת מייל. תרצה לשמור כשולם בכל זאת?” (כן/לא)
על “כן”:
מעדכן סטטוס התשלום ל“שולם” + תאריך תשלום = היום
מציג Toast:
“נוצר PDF (דמה), הוקצה מספר קבלה/חשבונית (דמה), נשלח ללקוח (דמה), נשמר במסך ‘רו״ח → מסמכי חיוב’.”
מוסיף רשומת OutgoingDoc למסך רו״ח (עם מזהה/תאריך/לקוח/סכום/סטטוס “נשלח (דמה)”).
אם זה התשלום האחרון שנסגר — סטטוס הכנסה משתנה ל“שולמה”.
4) הוצאות (Expenses)
כפתור “+ העלה/י קבלות/חשבוניות” (אפשר מרובות).
טבלה פשוטה:
תאריך (רשות), ספק (רשות), סכום (רשות), קבצים (קפסולות/קישורים), הערות, פעולות (עריכה/מחיקה).
מודאל הוצאה:
שדות: תאריך, ספק, סכום (₪), הערות, העלאת קובץ/ים (FilePond, עד ~2MB פר קובץ, נשמר לוקאלית ב־base64), אפשר גם קישור חיצוני.
טולטיפים:
i ליד “הוצאות”: “לא נדרש סיווג — רו״ח יסדר. פשוט להעלות ושהכל יהיה במקום אחד.”
א. “דברים קבועים”
זהות בעל עסק:
סוג זיהוי (ת״ז/דרכון), מספר, תאריך הנפקה, צילום (קובץ)
פרטי בנק:
שם בנק, קוד בנק/סניף, מס’ חשבון, IBAN, אישור/צילום (קובץ)
סטטוס תעסוקה:
“במקביל שכיר?” ✓
אם ✓: קליטת תלושי שכר, חוזה העסקה, טופס 106 (קבצים מרובים)
טולטיפים:
i “דברים קבועים”: “זה המידע שרו״ח מבקש מכל בעל עסק. ממלאים פעם אחת ועדכונים לפי הצורך.”
ב. “מסמכי חיוב”
טבלת כל ה־OutgoingDocs שנוצרו אוטומטית מהכנסות שסומנו כשולמו:
תאריך, לקוח, סוג (קבלה/חשבונית – דמה), מספר (דמה), סכום, סטטוס שליחה (דמה: “נשלח”), פעולות: הורדה (דמה), מחיקה
ייצוא:
כפתור “ייצוא JSON” לכל מסמכי החיוב של העסק (דמה).
חסרים:
אם חסר מייל לקוח/IBAN/צילום תעודה → התראה/Badge בראש המסך.
6) הגדרות עסק (Settings)
ברירות מחדל:
מע״מ % (ברירת מחדל 17)
מס הכנסה % (למקדמות)
ביטוח לאומי %
שער המרה $
תדירות מקדמות: חודשי / דו־חודשי
מספור רץ (דמה):
קבלה: התחלה / הערה (שקוף: קופסה שחורה)
חשבונית: התחלה / הערה (שקוף)
שפה: עברית / English
ניהול לקוחות/מקורות: בגרסה זו “מקורות” מוכלל בתוך “לקוחות”, לכן כאן אין “מקורות”.
טולטיפים בכל שדה ברירת מחדל.
כפתורים: “שמור”, “איפוס לברירות מחדל”.
7) מחשבון (Calculator)
אותו ממשק מוכר:
בחירת לקוח (במקום “מקור הכנסה”) → משפיע על בדיקת מע״מ (לקוח ישראלי?).
סכום $, עמלה %, שער, מקדמות, תדירות.
כפתור “חשב”, תצוגת תוצאות (לאחר עמלה $, בש״ח, מקדמות, נטו זמני, מע״מ אם נדרש).
טולטיפים:
i בכל שדה חשוב: “סכום בדולרים לפני עמלות”, “שער הדולר”, “הערכת מקדמות בלבד”, “מע״מ לפי סוג העסק והאם הלקוח מישראל”.
התנהגות “קופסה שחורה” (Toast) – מה בדיוק יקרה בכל מקום שבו נדרשת פעולה שאינה ממומשת (PDF/מספר/שליחה), יופיע Toast ברור בעברית (או באנגלית לפי שפה):
בעת “סמן כשולם” (תשלום ב־Income):
“בוצע: הוקצה מספר קבלה/חשבונית (דמה), נוצר PDF (דמה), נשלח ל[שם לקוח] (דמה), נשמר במסך ‘רו״ח → מסמכי חיוב’.”
בעת הורדה/ייצוא במסך רו״ח:
“ייצוא דמה: הקובץ היה אמור להיווצר ולהיות זמין להורדה.”
הדאטה עצמה כן מתעדכנת: סטטוסים, הוספת רשומת OutgoingDoc, וכו’ — כך שה־UX שלם. מודל נתונים (localStorage) – פר־עסק
biz.list.v1: [ { id, name, bizType } ]
biz.current.v1: lastSelectedBizId
לכל עסק: biz.{id}.v1 – אובייקט:
{
settings: {
vat, inc, ni, rate, freq, lang, numbering: { receiptSeq, invoiceSeq, allocationSeq }
},
clients: [
{ id, name, email?, phone?, isIsrael: boolean, notes? }
],
income: [
{
id, clientId, type: 'one'|'monthly'|'split',
currency: 'ILS'|'USD',
amount? /*one or monthly*/,
months? /*if monthly*/,
installments: [
{ no, dueDate, amount, currency, rateAtCreation?, feePct?, status:'planned'|'paid', paidAt? }
],
summary: { total, paid, remaining, status:'planned'|'partial'|'paid' }
}
],
expenses: [
{ id, date?, vendor?, amountILS?, notes?, files: [{name,type,size,data}|{link}] }
],
accountant: {
fixedInfo: {
idKind?, idNumber?, idIssueDate?, idImageFile?, // תעודה
bankName?, bankCode?, branch?, account?, iban?, bankProofFile?, // בנק
isAlsoEmployee: boolean,
payrollFiles: [file...], contractFiles: [file...], form106Files: [file...]
},
outgoingDocs: [
{ id, date, clientId, docType:'receipt'|'invoice', number /*simulated*/, currency, amount, status:'sent', filePlaceholder:true }
],
attachments: [
{ id, title, category, date?, status?, notes?, kv?: [[k,v]...], files:[file...] }
]
}
}
גרסת סכימה: app.schema.version (למשל 3). בעת פתיחה — מיגרציה מהמבנה הישן:
biz.transactions.v4 → יצירת income[] לכל עסק, עם installment אחד/רבים לפי הנתונים.
biz.docs.v1 → העברה ל־accountant.attachments[].
רפרנציאליות:
מחיקת לקוח: אם יש הכנסות משויכות → סירוב, או הצעה להעביר ללקוח אחר (בגרסה זו: סירוב והסבר).
מחיקת עסק: מחיקה מדורגת (income/expenses/accountant/*).
תצוגות, שדות וטולטיפים – רשימה מלאה למסך/שדה להלן מיפוי מלא של טולטיפים/טקסטים (HE) לשדות עיקריים. (באנגלית יוצגו המקבילות, i18n מפה אחת): סקירה
i “שולם החודש”: סך כל התשלומים שסומנו כ’שולם’ בחודש הנוכחי.
i “צפוי 30 הימים הבאים”: סכום תשלומים עם תאריך יעד ב־30 ימים הקרובים.
i “חסרים לרו״ח”: פריטים שחייבים השלמה בטופס הקבוע (זיהוי/בנק/שכיר).
i “תשלומים קרובים”: רשימת תשלומים שזמן יעדם מתקרב.
לקוחות
i “סוג לקוח (ישראל/חו״ל)”: לקוח בישראל עשוי לחייב מע״מ אצל עוסק מורשה/חברה.
i “מייל”: נדרש לשליחת קבלה/חשבונית (דמה).
הכנסות – במסך ובמודאל
i “סוג הכנסה”: חד־פעמית, חודשי (מספר חודשים רצופים), תשלומים מפוצלים (מספר ותאריכים/סכומים שונים).
i “מטבע”: ב-$ יידרש שער המרה; סכום מוצג גם בש״ח.
i “עמלת קליטה %”: אחוז עמלה של פלטפורמה/סליקה המופחת מהסכום.
i “תאריך יעד”: מתי הצפי לתשלום בפועל (לתחזית תזרים).
i “סמן כשולם”: ייצור (דמה) קבלה/חשבונית, שליחה (דמה), ותיעוד לרו״ח.
הוצאות
i “העלאת קבלות”: פשוט מעלים; הרו״ח יסווג. ניתן להוסיף פרטים (רשות).
רו״ח – דברים קבועים
i “זיהוי”: סוג המסמך, מספר, תאריך הנפקה וצילום.
i “בנק”: פרטי חשבון + צילום/אישור.
i “במקביל שכיר?”: אם כן, יש להעלות תלושים/חוזה/טופס 106.
רו״ח – מסמכי חיוב
i “מסמכי חיוב”: קבלות/חשבוניות (דמה) שנוצרו כשסימנת תשלום כשולם.
הגדרות עסק
i “מע״מ %”: שיעור מע״מ לעסקאות בישראל (עוסק מורשה/חברה).
i “מס הכנסה % / ביטוח לאומי %”: הערכות מקדמות לצורך תזרים בלבד.
i “שער המרה $”: ברירת מחדל לחישוב המרה ל־₪.
i “תדירות מקדמות”: חודשי או דו־חודשי.
i “שפה”: עברית/אנגלית.
מחשבון
i “לקוח”: לקוח מישראל עשוי להשפיע על חישוב מע״מ.
i “ברוטו $”: סכום לפני עמלה.
i “שער המרה”: שער הדולר ל־₪.
i “מקדמות”: אומדן בלבד ולא תחליף לייעוץ מס.
חוויית שגיאות/מצבי קצה
חוסר מייל לקוח בזמן “סמן כשולם”: מודיע שאין למי “לשלוח” (דמה) — מציע עדיין לסמן כשולם בלי שליחה (מאפשר הבחירה).
אחסון מלא (QuotaExceeded): מציג הודעה ברורה, מציע למחוק קבצים גדולים בהוצאות/נספחים או להשתמש בקישורים במקום קבצים.
מחיקת לקוח עם הכנסות פעילות: לא מאפשר; מודעת הסבר: “העבר/י את ההכנסות ללקוח אחר או מחק/י אותן קודם.”
המרה $ ללא שער: לא מאפשר שמירה — “יש להזין שער המרה”.
הכנסה חודשי: חודשים ≥ 1; תאריך התחלה חובה. יצירת לוח תשלומים אוטומטי (X שורות).
תשלומים מפוצלים: לכל שורה סכום ותאריך; אין מצב לשורה ריקה.
i18n (עברית/אנגלית)
מילון מרכזי: t(key) לכל טקסט/טולטיפ/כותרת/כפתור.
Switch בלשונית הגדרות עסק: HE/EN → משנה lang ושומר ב־localStorage תחת העסק.
RTL נקבע לפי HE; EN → LTR.
כל טולטיפ/תווית רשומים במילון (לא טקסט קשיח בקוד).
ביצועים/נגישות/מובייל
ביצועים: State in-memory, רינדור דיפרנציאלי, תבניות HTML מרוכזות, האזנה מרוכזת (delegation).
סנכרון בין טאבים: מאזין storage → מרנדר רק את החלקים המושפעים.
נגישות: semantically correct, aria-labels לאייקוני i, כפתורים נגישים, קונטרסט תקין.
מובייל: טאבים גלילים, אזורי לחיצה גדולים (min 44px), טפסים מסודרים בעמודות 1–2 בהתאם לרוחב, Modals מותאמים.
בדיקות קבלה (Acceptance)
1. יצירת עסק → כניסה ל־Workspace → סקירה נטענת.
2. יצירת 2–3 לקוחות (ישראל/חו״ל).
3. יצירת הכנסה חד־פעמית ללקוח ישראלי בדולר (עם עמלה ושער) → שמירה → מופיעה בטבלה.
4. פתיחת הכנסה → “סמן כשולם” על התשלום → מופיע Toast (דמה), סטטוס תשלום מתעדכן ל“שולם”, הכנסה עוברת ל“שולמה” אם זה התשלום היחיד.
5. מעבר ל־רו״ח → “מסמכי חיוב” → מופיע רישום חדש (דמה) עבור התשלום ששולם.
6. מילוי “דברים קבועים” (זיהוי, בנק, שכיר) → התראות חסרים נעלמות ב־Overview.
7. הוצאות → העלאת 2 קבלות (קבצים קטנים) + הוספת תאריך/ספק/סכום (רשות) → מופיעות בטבלה.
8. לקוח ללא מייל → נסה “סמן כשולם” → אזהרה → אפשר לבחור “סמן בכל זאת”.
9. החלפת שפה לאנגלית → כל ה־UI והטולטיפים באנגלית, כיווניות LTR.
10. מחיקת לקוח עם הכנסות → נקבל סירוב ברור.
11. מחיקת עסק → כל הנתונים הקשורים נמחקים (Cascade) וחוזר למסך “העסקים שלי”.
12. Reload בדפדפן/טאב נוסף → הכל נטען מאותו מצב, סנכרון תקין.
13. מצב אחסון מלא (בדיקה ידנית עם קבצים גדולים) → מקבל הודעת QuotaExceeded ברורה.
נוצר אוטומטית מתוך OVERVIEW.md (sync_assets.py).