הפקת תצהירים ללקוחות

זהו דוח פעילות תקופתית (בין תאריכים) או מצב יתרות נכון לתאריך חתך בודד, ותמיד בחצות היום. הדוח (תצהיר) מכיל מידע רגיש ולכן ישלח תמיד בקובץ PDF מוצפן.
הדוח מיועד לשרת נותני שירותים פיננסיים וגם זירות מסחר בישראל. בהמשך העמוד נפרט את הטבלאות המשתתפות ואפשרויות השליטה על התוכן המופק ללקוח.

את הדוח ניתן להפיק ידנית ללקוח בודד, דו"ח פעילות מתוך ממשק "תיק לקוח" או לתזמן הפעלה ושליחה אוטומטיים דרך שרת הייפר (הסבר בפרק האחרון בעמוד).
בהפעלה ידנית יופיע הדיאלוג הבא:

אם משאירים את שני השדות ריקים, אזי יופק דוח יתרות הנח"ש לעכשיו + רשימת עסקאות עתידיות.
אם תמלא רק את השדה "ועד לתאריך" (בתאריך היסטורי כמובן), תקבל דוח יתרות לתאריך היסטורי.
אם תמלא את השדה "החל מתאריך", תקבל דוח פעילות בין תאריכים, החל מהתאריך שרשמת ועד היום... אלא אם מילאת גם את "ועד לתאריך".

לאחר לחיצה על "אישור" בדיאלוג, תופיע תצוגה לפני הדפסה של התצהיר.
באחריות המשתמש (אתה) לבחון את תוכן הדוח בטרם תאשר אותו. אישור תוכן התצהיר כעת, מבצע שליחת PDF מוצפן ללקוח !
ביטול בשלב התצוגה לפני הדפסה... מונע את השליחה. כל קובץ PDF שנשלח ללקוח נשמר במסד הנתונים של הייפר, ללא הגבלת זמן.

התוכן הכלול בתצהיר

בפרק הזה נפרט את הטבלאות המשתתפות, ההתניות וההתאמות הניתנות לביצוע. נתחיל בפרטי הלקוח ואנשי הקשר בכותרת העמוד הראשון.
רשומת הלקוח עצמה היא המובילה, ממנה מודפסת הכתובת, שם הלקוח (יכול להיות חברה/שותפות/קרן גידור) ומספר מזהה. זוהי הישות הראשית.
בנוסף אליה יפורטו שמות ומספרי זהות של אנשי קשר בסטטוס משפטי, לפחות אחד מהבאים: 'בעל שליטה בתאגיד', 'שותף בחשבון', 'נהנה'.

הגדרת פסקאות טקסט לתצהיר

כל "סוג תוכן" מתחיל בכותרת ופסקת הסבר שמטמיע המערכת נדרש להגדיר בממשק טקסט סטטי.
האפשרות המתקדמת יותר היא הטמעת Script במקום תוכן סטטי ואז תוכן ההדפסה משתנה בהתאם לקוד. את האפשרות הזאת נסביר בהמשך העמוד.
להלן השדות הנדרשים ליישום התוכן:
שדה הסבר
מזהה תוכן יש להעתיק את קוד התוכן מכל פרק כפי שיובא כאן בהמשך. כל תוכן מתחיל במילה Statement ומסתיים במזהה שפה לדוגמה Heb או Eng.
תיאור ידידותי (פנימי) רק עבור הייפר, רשום כותרות שיהיה לכם קל לזהות או העתק מההדרכה כאן.
מטרת התוכן יש לבחור רק את "פסקאות לתצהירים"!   אחרת התוכן לא יופיע בתצהיר.
נושא הודעת דוא"ל זוהי הכותרת לפסקה. חובה להזין כותרת. הייפר תדפיס אותה בגופן מודגש, גדול ועם קו תחתון.
* אירוע בקשת טקסט דרך Script משתמש באותם השמות בדיוק.

עסקאות מטבע חוץ

מהטבלה hyp_Foreign Exchange Trades ימשכו העסקאות אשר בוצעו (הושלמו) בתקופת הפעילות בדוח וגם עסקאות עתידיות שהיו ידועות בתקופת החתך.

עבור הפרק של עסקאות פתוחות (פירעון עתידי) יש להטמיע את התוכן 'Statement Open FX Trades_HEB'
עבור הפרק של עסקאות אשר בוצעו (נפרעו) בתקופת הדוח, יש להטמיע את התוכן 'Statement Closed FX Trades_HEB'
עבור הפרק של אופציות פתוחות יש להטמיע את התוכן 'Statement Open Options FX Trades_HEB'
עבור הפרק של אופציות אשר הוכרעו (הסתיימו) בתקופת הדוח, יש להטמיע את התוכן 'Statement Closed Options FX Trades_HEB'

פיקדונות נושאי ריבית

מהטבלה hyp_Interest Bearing Deposit ימשכו פיקדונות אשר הסתיימו בתקופת הפעילות בדוח וגם פיקדונות פעילים (מסתיימים בעתיד) שהיו ידועים בתקופת החתך.

עבור הפרק של פיקדונות פעילים (פתוחים - פרעון עתידי) יש להטמיע את התוכן 'Statement Open Bearing Deposit_HEB'
עבור הפרק של פיקדונות אשר הסתיימו בתקופת הדוח, יש להטמיע את התוכן 'Statement Closed Bearing Deposit_HEB'

עסקאות במטבע דיגיטלי

מהטבלה hyp_CryptoCurr Exchange Trades ימשכו עסקאות קניה/מכירה אשר נסלקו בתקופת הפעילות בדוח וגם עסקאות Limit שהיו פתוחות בתקופת החתך.

מהטבלה hyp_Money Laundering Conversion Extended List ימשכו המרות מטבע "פיאט / Fiat" שבוצעו בתקופת הפעילות בדוח.
הרשומות הללו ישתלבו בטבלת העסקאות של המטבעות הדיגיטליים, ליצירת ממשק אחיד מול הלקוח.

עבור הפרק של הוראות עתידיות (לימיט) יש להטמיע את התוכן 'Statement CryptoCurr Limit Trades_HEB'
עבור הפרק של עסקאות אשר בוצעו בחשבון יש להטמיע את התוכן 'Statement CryptoCurr Trades_HEB'

פסקת סיום

תוכן סטטי המסיים את המסמך תמיד, גם אם הוא ריק מפעולות (כלומר מכיל רק את פרטי הלקוח וטבלת היתרות בחשבון).
לסיום דוח יתרות ועסקאות פתוחות בלבד, יש להטמיע את התוכן 'Balance Statement Footer_HEB'
לסיום דוח פעילות תקופתי (כולל גם עסקאות פתוחות לאחריו), יש להטמיע את התוכן 'Activity Statement Footer_HEB'

פקודות יומן ומאזן

מהטבלה hyp_Journal ימשכו פקודות יומן נוספות שאינן משקפות את העסקאות מהטבלאות הקודמות. כלומר איננו רוצים ליצור כפילות בדיווח.
תוכן לדוגמה: הפקדות, משיכות, ניכוי מס, חשבוניות, פעולות ידניות אחרות.
שים לב: פקודות היומן מסונכרנות בדוח הזה רק לפי תאריך תזרים !

הפרק יופיע רק במידה וקיימות פקודות יומן. להלן מפתח התוכן: 'Statement Journal Entries_HEB'
באפשרותך לבטל את הופעת הפרק, בשדה ההגדרות "Statements Features" המוסבר בפרק הבא.

הפקת תצהירים באופן אוטומטי משרת הייפר

בתפריט הראשי כנס אל הגדרות: תהליכים בצד השרת וממשק WEB API
עליך לשים לב לחמישה שדות במסך הזה:
שם השדה הסבר
TP Module: Produce Statements זהו השדה הראשי שקובע האם בכלל יצאו תצהירים ואם כן, אז באיזה תזמון. להלן הסבר על הערכים האפשריים לבחירה:
  • Not at all
    ללא הפקה כלל.
  • Monthly
    רק דוח חודשי, ביום הראשון לכל חודש, על החודש הקודם.
  • Monthly & Mid-Month
    דוח חודשי בראשון לכל חודש ודוח אמצע חודש ב-16 לכל חודש על הימים 1-15.
  • Every Day (inc Monthly)
    דוח יומי וגם חודשי.
  • Monthly & Fortnightly
    דוח חודשי וגם דו שבועי בהפרש 14 ימים קלנדריים מאז הדוח הקודם.
  • Every Day & Fortnightly (inc Monthly)
    - בכל יום וגם "דו שבועי" (בכל 14 יום) וגם דוח חודשי. זהו הדיווח המקסימלי ללקוח ישראלי...
TP Module: Statements Features
  • Journal Entries
    האם להדפיס את פרק פקודות היומן.
  • Balance Format 2
    באפשרותך לבחור פורמט גראפי נוסף, ליתרות המטבע בחשבון הלקוח. הפורמט השני הזה אינו מכיל את השערוך לשקל.
  • Disable Balance Statement
    לחסום את האפשרות להפיק דוח יתרות לתאריך X באמצעות הממשק הידני.
    כאשר החסימה מופעלת, הייפר תזהה לבד את תאריך התחלת הפעילות של הלקוח, במידה והמשתמש השאיר את השדה ריק בחלון ההפקה.
Daily Statement Production התאריך האחרון בו הופק תצהיר יומי. ניתן להשתמש בשדה הזה בכדי לגרום להפקה חוזרת של תצהירים.
לאחר הפקה מוצלחת, הייפר תעדכן את ערך השדה ליום האחרון עבורו הופק דוח פעילות יומי.
Fortnightly Statement Production התאריך האחרון בו הופק תצהיר דו שבועי או אמצע חודש. ניתן להשתמש בשדה הזה בכדי לגרום להפקה חוזרת של תצהירים.
לאחר הפקה מוצלחת, הייפר תעדכן את ערך השדה ליום האחרון עבורו הופק דוח פעילות דו שבועי (או אמצע חודש).
Monthly Statement Production התאריך האחרון בו הופק תצהיר חודשי. ניתן להשתמש בשדה הזה בכדי לגרום להפקה חוזרת של תצהירים.
לאחר הפקה מוצלחת, הייפר תעדכן את ערך השדה ליום האחרון עבורו הופק דוח פעילות חודשי.

מיהם הלקוחות שמקבלים את התצהיר

להלן מצב השדות הנדרש בכדי שלקוח יקבל תצהיר (Query - Where):
  • השדה Locked Name & ID צריך להיות True. זהו דגל חבוי המצביע על לקוח אמיתי שהפקיד כסף.
  • השדה Handling Status - "סטטוס לקוח" ברמת ה-CRM של הייפר, צריך להיות בסטטוס 5 "לקוח אמיתי".
    לקוח מושהה (ערך 6) לא יקבל תצהיר !
  • השדה SEC Regulation (פיקוח רשות ניירות ערך) צריך להיות שווה 0 (רגיל).
  • בכדי שלקוח מהרשימה לעיל יקבל תצהיר צריך שיהיו לו פעולות כספיות בחשבון, או שהוא מחזיק כסף אצלכם בתקופת הדוח.

אנשי קשר שיהיו מכותבים לתצהיר בדואר אלקטרוני:

להלן מצב השדות שנדרש בכדי שאיש קשר יקבל תצהיר בדוא"ל (Query - Where), בנוסף לכתובת הדוא"ל הראשית:
  • השדה Legal Status (מעמד משפטי) צריך להיות לפחות אחד מהערכים: 'בעל שליטה בתאגיד', 'שותף בחשבון', 'נהנה'.
  • השדה Former - Disabled חייב להיות False. זהו שדה שמצהיר על איש קשר כ-"לשעבר".

נוהל חריג: הפקה חוזרת של תצהירים במקרה של תקלה

תהליך הפקת התצהירים נעשה ביישום צד השרת של הייפר, פועל ברקע (Thread) בלולאה אחת בטור, לקוח אחר לקוח. זאת בכדי שלא להכביד על חווית השימוש והביצועים של שאר המודולים.
לשיטה הזו יש נקודת תורפה אחת: כאשר היישום מקבל הוראת אתחול באמצע הלולאה (בגלל שדרוג גרסה או אתחול הגדרות בסיס).
על מנהל המערכת לדאוג שלא יעשה אתחול בזמן הפקת התצהירים (בד"כ מופקים באמצע הלילה). תקלה נדירה אך אפשרית היא תקיעה של הלולאה בגלל software exception.

לסיכום יתכנו שני סוגים של תקלות, כעת נסקור אותן ואת אופן הטיפול.
  1. יישום צד השרת נתקע באמצע לולאת הפקת התצהירים או קיבל הוראת אתחול. במקרה הזה נבקש להפעיל את הלולאה מחדש ולמנוע כפילויות (כלומר שלקוח אשר קיבל את התצהיר שלו - לא יקבל אחד נוסף).
    הפתרון פשוט:
    מנהל המערכת מתבקש לשלוח את הפקודה
    Maintenance
    אל המשתמש
    Server Side App
    .
    הייפר תחזור על הדוחות האחרונים מהלילה האחרון (לדוגמה דוח יומי וגם חודשי) ותמנע כפילויות באמצעות שאילתה על הטבלה
    hyp_Client X Statements
    .
  2. עקב שגיאה בנתונים (בתוכן הטבלאות של הייפר), התצהירים שהוגשו מכילים מידע שגוי.
    במקרה הזה נבקש להפיק מחדש לכל הלקוחות כולל הכותרת "תיקון לדוח חודשי" (או יומי, או דו שבועי) וגם הפעם נבקש להגן על כפילויות במקרה של אתחול היישום באמצע הלולאה.
    הפתרון דורש מספר שלבים, יש לבצע בזהירות:
    1. על פי הדוח שאותו תרצה להפיק מחדש, עליך לעדכן את התאריך באחד השדות
      Daily/Fortnightly/Monthly Statement Production
      ליום הדיווח שממנו תרצה להפיק מחדש.
      זה קצת טריקי אז ניתן דוגמאות:
      * היום 10.1 ואתה רוצה להפיק דוחות יומיים החל מ 25.12 כולל ועד להיום. אזי עליך להזין 25.12 בשדה
      Daily Statement Production
      .
      * היום 10.1 ואתה רוצה להפיק דוחות חודשיים עבור נובמבר וגם דצמבר. אזי עליך להזין 30.11 בשדה
      Monthly Statement Production
      (זאת אינה טעות, היום האחרון של נובמבר).
      * בהמשך לדוגמה הקודמת, היום 10.1 ואתה רוצה להפיק מחדש את הדוח החודשי של דצמבר בלבד. אזי עליך להזין 31.12 בשדה הנ"ל.
    2. כעת עליך לשלוח פקודה ידנית על פי סוג הדוח שאותו תרצה להפיק. אי אפשר לבקש מספר דוחות בו זמנית (למשל יומי + חודשי).
      להפקה חוזרת של דוחות חודשיים (בלולאה על פי התאריך בשדה הנ"ל), מנהל המערכת מתבקש לשלוח את הפקודה
      Regenerate_Monthly_Cli_Fin_Activity_Statement=###
      אל המשתמש
      Server Side App
      .
      עבור הפקה חוזרת של דוחות יומיים, הפקודה היא
      Regenerate_Daily_Cli_Fin_Activity_Statement=###
      .
      עבור הפקה חוזרת של דוחות דו שבועיים או אמצע חודש, הפקודה היא
      Regenerate_Fortnightly_Cli_Fin_Activity_Statement=###
      .
    3. במקרה שאירע אתחול ליישום צד השרת, באמצע הריצה של הלולאה של התיקון אתה בוודאי תרצה להריץ אותה שוב (אותה פקודה מהסעיף הקודם).
      אבל רגע - אנחנו לא רוצים שלקוח שכבר קיבל את הדוח המתוקן - יקבל דוח נוסף!   אז איך פותרים את הבעיה ?
      לשם כך הוספנו את הפרמטר ###, זהו קוד אלפאנומרי שאתה מוסיף לזיהוי ההפקה החוזרת. הקוד ירשם בשדה
      Doc ID
      בטבלת הסטייטמנטים.
      עליך לתעד את התקלה ואת הקוד שיישמת לצורך ההפקה החוזרת ולא להשתמש באותו הקוד פעמיים. סה"כ 3 תווים תמיד (מותר רק ספרות או רק אותיות).