InCharge Release notes
מסמך זה יפרט את הפיצ'רים החדשים ששוחררו בכל גירסא של אינצ'ארג'
המסמך מדבר על כל הסוגים השונים של אינצ'ארג', ולא מפריד בין מצבי העבודה השונים
v4.2 - 10/23/2024
Current production version as of this update: v4.2.5
גרסה זו הינה גרסה משנית המכילה מספר פיתוחים חדשים, תיקונים, ומנגנוני שרידות באפליקציית אינצ׳ארג׳
פיתוחים
- הוספת הפעלה מחדש לעמדה דרך הקונסול
- מודול מוצר בהרכבה אישית: פיתוח המאפשר הגדרה אישית לפרמטרים מסוימים של מוצרים עם תצוגה ויזואלית. נכון לעכשיו מותאם רק לפעילות מסעדות, התאמה נוספת דורשת פיתוח נוסף
- תמיכה במבצע 18 של דפקטו
- הוספת אופציה להדפסת פתקי החלפה נפרדים למוצרים נפרדים
תיקונים ומנגנוני שרידות
- הוספת מנגנון המבצע נסיונות מחדש לקריאת end of day של מסופון P400 רק במידה והזמן המקומי בעמדה מוקדם מ6 בבוקר
- הרחבת סוגי השגיאות המובילות לניסיון נוסף בקריאת end of day
- הוספת מנגנון המונע פעילות מקבילה של קריאת יצירת חשבונית (createInvoice) וקריאת בדיקת יצירת חשבונית (GetINVDocumentsHeader)
- העלאת משך הtimeout לפניות קונפיג טרם מעבר לדף עמדה לא זמינה מ10 שניות ל30 שניות
- איחוד קריאות פנימיות של status וconfig לקריאה אחת בשביל למנוע עומס על תקשורת העמדה והשרת
- תיקון לבאג בחישוב אחוזי מע״מ שגרם לשגיאה באחוז מע״מ עם שבר
v4.1.152 - 11/08/2024
גרסה זו הינה גרסה משנית, המכילה שינויים בbootloader ומספר תיקונים באפליקציית אינ׳צארג׳.
מנגנון bootloader
הוספת תצוגה של מספר ערכים:
- באפליקציה: מס׳ גרסת הbootloader העכשווית
- ע״ג הmanifest ובקונסול: מס׳ גרסת הbootloader האחרונה דרכה הועלה הmanifest, כתובת הip האחרונה ממנה נשלחה בקשה להעלאת הmanifest, ובמידה של יצירת manifest חדש, כתובת הip ממנה נשלחה הבקשה ליצירת הmanifest.
אינצ׳ארג׳
- הוספת מנגנון חסימה ע״פ BIN (מס׳ תחילית) לכרטיסי DTS
- תיקונים לאופן העברת פרמטרים של כרטיסי Praxell עבור מתודת CreateInvoice
- הוספת מנגנון מניעה נוסף למעבר בתשלום בעת שזוהה שלא כל מוצר יהעגלה סיימו לעבור חישוב מחירים ומבצעים, על מנת למנוע באג נדיר במיוחד שלא נחסם ע״י המנגנונים האחרים שפותחו עד כה
- שינוי הטקסט והנראות לדף שגיאה לשם ידידותיות למשתמש
- הוספת אופציה להצגת מקלדת ע״ג חלונית גישה לאזור ניהול, למצבים בהם אין מקלדת זמינה בעמדה
- הרחבת הלוגים בנקודות קריטיות במערכת
- הוספת מנגנון ניסיון-מחדש לכתיבת לוגי מסופון מקומיים, ע״מ למנוע תקלת "Resource Busy or Locked" כפי שזוהה אצל אחד הלקוחות
v4 - 25/07/2024
Current production version (as of this update): v4.1.141
Current testing version (as of this update): v4.1.143
גרסה זו היא גרסה ראשית.
השינויים המרכזיים בגרסה כוללים:
- הוספת מנגנון הbootloader, קובץ הרצה חדש שמנהל את שרת אינצ׳ארג׳ ואת הדפדפן שמציג את האפליקציה
- ניהול עמדות לפי manifest מוצמד לחומרת המחשב
- הוספת תמיכה מלאה במערכות הפעלה מתצורת MacOS וLinux
- הגדרות עמדה מדורגות בעל יכולת תורשת הגדרות מהגדרות-אב (דרגי הגדרות: גלובלי, גוף מנהל (לדוגמה: וריפון, אנליזה), רשת, סניף, עמדה)
- החלפת מנגנון ניהול הגדרות עמדה: ממנגנון מבוסס socket למנגנון מבוסס HTTP בעל תקשורת יציבה בהרבה
פירוט
מנגנון Bootloader
השינוי המורגש ביותר בצד המשתמש בv4 הוא החלפת קובץ הexecutable הישן וקיצור הדרך הנלווה שפתח את Google Chrome בכתובת הרשת עליה רצה תוכנת אינצ׳ארג׳, בקובץ executable חדש בשם הBootloader.
הBootloader הינו קובץ שנכתב ע״י צוות אינצ׳ארג׳ בשפה Go של Google. הBootloader מנהל תהליך מעטפת לפעילות אינצ׳ארג׳, והוא אחראי לפעולות הבאות:
- זיהוי העמדה וטעינת הגדרותיה באופן אוטומטי
- וידוא תקינות גרסאות NodeJS וInCharge בעמדה והתקנת קבצים דרושים וגרסאות חדשות במידה והגדרות העמדה השתנו
- הפעלת שרת אינצ׳ארג׳ ודפדפן באופן אוטומטי בעת עלייה
- הפעלת אינצ׳ארג׳ מחדש במקרה של סגירה פתאומית או תקלה
הפעלת התוכנה תתבצע מעתה ואילך דרך הBootloader בלבד. בעת התקנת גרסה, אין צורך להעביר קבצים מלבד הBootloader, ואין צורך לבצע פעולות מלבד עריכת קובץ ההגדרות שיווצר לעמדה חדשה באופן אוטומטי בהתאם לפעילות הלקוח.
ניהול עמדות באמצעות קבצי Manifest
עמדות בv4 מנוהלות ע״י קבצי manifest - קבצי הגדרות נפרדים מהגדרות התוכנה, אשר מנוהלים על פי mac addresses של העמדה. קבצי הmanifest מגדירים לעמדה את גרסאות InCharge וNodeJS שלה, את מזהה הגדרות התוכנה, מיקום הדפדפן ומספר הגדרות משניות.
קבצי הmanifest מנוהלים בקונסול.
הגדרות עמדה
הגדרות העמדה נוהלו לשעבר בקבצי ״קונפיג״ (config). בv4, הגדרות העמדה מנוהלות ע״י פורמט חדש בשם קבצי ״settings״. הגרסה תומכת גם בקבצי קונפיג ישנים, אבל לא מומלץ להשתמש בהם.
קבצי settings מחולקים ל5 רמות, כאשר כל רמה יותר ״נמוכה״ או מצומצמת יורשת את כל ההגדרות של הרמות מעליה (לצורך העניין - עמדה של פוקס תירש הגדרות מההגדרות הגלובליות, וריפון, פוקס, והגדרות הסניף). במידה והגדרה הוגדרה גם אצל ה״הורה״ וגם אצל ה״ילד״, ההגדרה של הילד תשומש. לצורך העניין, אם הוגדרו תמונות שונות עבור סניף ועבור עמדה, התמונה שהוגדרה בעמדה תוצג.
שינוי זה נותן לנו וללקוחותינו לשמור על ״מקור אמת אחד״ (single source of truth) עבור הגדרה ולמנוע כפילויות והתיישנות מידע, ומקל על עדכון הגדרות והגדרת עמדות חדשות.
דף הגדרות בעמדה
דף ההגדרות בעמדה הורחב, וכעת נותן למשתמש לבצע את הפעולות הבאות:
- שינוי קובץ הגדרות באופן זמני
- בדיקת התקשורת למספר שרתי API חיצוניים
- שינוי כתובת הip של המסופון, ביצוע register, העלאת קובץ sec.db קיים במידה והregister בוצע דרך הmx tester
- כיבוי והפעלה מחדש לbootloader
- הגדרת העמדה כאי-פעילה או כפעילה
החלפת מנגנון ניהול הגדרות עמדה
בv2, עמדות קיבלו ושלחו עדכונים לקבצי ההגדרות שלהם ע״י מערכת מבוססת sockets. עם התרחבות הפעילות, זיהינו את המערכת כמקור לתקלות. בv4, המערכת הוחלפה במערכת מבוססת קריאות HTTP שעושה שימוש במנגנון SWR או Stale While Revalidate, שמשמש לצמצם את כמות הקריאות המתבצעות עבור כל עמדה.
שיפור ביצועים
מנגנון SWR הוטמע עבור מספר קריאות נוספות שמהוות עומסים משמעותיים למערכת, ביניהן הקריאות למאגר המבצעים.
קונסול
הקונסול ראה שיפורים והרחבות משמעותיות, ביניהן:
- הוספת דף כניסה המציג סטטיסטיקה עבור כל העמדות של הלקוח וסטטוס פרטני עבור כל עמדה
- הוספת דף ניהול settings, המאפשר ללקוחות לנהל את כל ההגדרות של כל עמדה, סניף, ורשת, ועבור כל אחד לקבוע איזו הגדרות מגיעות בתורשה ואיזו מוגדרות ברמת הקובץ
- הוספת דף ניהול manifest
- הוספת דף ניהול גרסאות, בעזרתו כל לקוח יכול להגדיר גרסאות חדשות כ״בדיקה״ (ניתן להתקנה בעמדות בדיקה בלבד) או לאשר אותן להפצה בפרודקשן
- הוספת דף ניהול קטלוג, עבור לקוחות עם פעילות קטלוג פנימית
- הוספת דף דוחות לשם הדפסת פעילות דוחות x, דוחות z ודוחות z מסכמים
- הוספת טבלת ניהול לקטעי שמע
- הטמעת מערכת ניהול קבצים
עיצוב חדש
המערכת התחילה לעבור הטמעה של עיצוב חדש ומודרני, שמטרתו לשפר את חזות המערכת, נעימות השימוש בה, ולאחד בין כל התצורות הקיימות למערכת כיום בשוק.
נכון לעכשיו, הדפים הבאים עוצבו מחדש:
- דף הכניסה
- דפי הזדהות משתמש (בחירת אמצעי זיהוי משתמש, הזדהות משתמש, הזנת קוד הזדהות)
- דף בחירת אמצעי תשלום
- דף תשלום
- דף השגיאה ודף עמדה לא זמינה
מעבר לכך, הוטמעו מספר שינויים ברכיבי מערכת המופיעים בכל הדפים כגון הוספת כותרת עליונה חדשה. פעילות InCharge Food ראתה שינויים ושיפורי איכות, תאימות ותגובתיות משמעותיים לעיצוב.
הטמעת העיצוב ממשיכה.
פיתוחים נוספים
להלן הפיתוחים החדשים במערכת שלא הוזכרו בסעיפים האחרים:
- הוספת קד״מ (cross-sell)
- תמיכה במדפסות רשת
- הדפסת בונים למטבח
- הוספת קטעי שמע להזדהות משתמשים
- שיפור התמיכה במועדון לקוחות וריפון
- מערכת תשלומים ותמיכה בכרטיסי Multipass, DTS, Praxell, Tenbis (בוצע לפני הוצאת v4)
- שיפור הלוגים והשרידות במערכת תשלומים
- הרחבת נתוני כרטיסי אשראי הנשלחים למתודת createInvoice
- הרחבת נתוני Praxell הנשלחים למתודת createInvoice
- הוספת בדיקת יצירת חשבונית טרם ביצוע החזר כספי
- שיפורים למנגנון התאוששת מאסון
- הוספת אופציה להשמעה חוזרת עבור קטעי שמע
- הוספת הדפסת לוגו בחשבונית
- מספר תיקונים ושינויים בפעילות מול דפקטו לשם הגברת שרידות ומניעת תקלות
- תמיכה בהודעות למשתמש (מבצע 20) שאינן מונעות המשך קנייה
- שיפורים למערכת ניהול הסטטוס בעמדות
v2.4 - 1/8/2023
גרסה זו מכילה מספר פיתוחים חדשים:
- הגרסה מכילה תמיכה ביצירת מספרי Z מול וריפון והעברתם עבור כל עסקה. מעקב אחר המספרים קורה באופן עצמאי על ידי InCharge, שיוצרת מספרי Z חדשים מול וריפון בעת הצורך ומעבירה אותם לוריפון בעת יצירת חשבונית. יצירת דוחות Z עבור וריפון מותנת באופציה חדשה בקונפיג, בשם ״createVerifoneZReport״, אשר מכילה ערך בוליאני.
- תמיכה בשליחת SMS ע״י שמיר - תהליך השליחה זהה לחלוטין לתהליך העבודה מול Telemesser. התהליך דורש מספר הגדרות קונפיג חדשות בקוד. להלן:
"smsVendor" - "shamir" (ספק הסמסים. טלמסר באופן ברירת מחדל)
"smsSenderName" - שם השולח
"shamirUsername" - שם המשתמש של היוזר מול שמיר
"shamirAuthToken" - הטוקן (לא סיסמה!) של היוזר מול שמיר
- תצורת InCharge Food - תמיכה בקבוצות אופציות המכילות הגדרות אישיות לקבוצה, כגון כמות אופציות מקסימלית לכל קטגוריה, ובחירת אופציות בתשלום.
- תמיכה בניהול כמויות סחורה מול קטלוגים הנשמרים על ידי InCharge באופן פנימי, הצגת מוצרים זמינים בהתאם לחנויות, והנמכת כמויות סחורה עבור כל מוצר בעת קנייה.
v2.3 - 26/7/2023
גרסה זו מכילה מספר פיתוחים חדשים, תיקוני באגים מהותיים, ושינוי אופן ההדפסה
הדפסה
תהליך ההדפסה כעת מנוהל באופן נפרד מהאפליקציה, על ידי process חדש ייעודי לניהול הדפסה. הprocess נפתח ע״י האפליקציה עבור כל בקשת הדפסה, מדפיס את המידע שהתבקש מהאפליקציה, ונסגר. בעזרת שינוי זה, אנחנו נמנעים מתקלות העולות מתעבורת בקשות הדפסה גדולה. אנחנו מאמינים ששינוי זה יסייע למנוע את תקלת חוסר התקשורת מצד המדפסת.
פיתוחים
- ניהול ספרור Z באופן פנימי - על בסיסו מפותחת תמיכה בניהול דוחות Z מול וריפון
- שיפור לוגים עבור הP400
- העברת ביצוע end of day אוטומטי על ידי האפליקציה ל05:00 במקום 04:00
- שינוי אופן יצירת וניהול התאריך והשעה הנשלחים למסופון ומעבר לUTC 0 במקום UTC+3
- קריאת קובץ צימוד מסופון באופן דינמי ממספר מקומות אפשריים, בסדר הבא:
- C:/incharge/MXTester/sec.db
- C:/MXTester/sec.db
- C:/incharge/sec.db
תיקוני באגים
- תיקון באג - קריסה בעת מעבר לתשלום כאשר אופציית ״נגישות״ פעילה
- תיקון באג - אי סגירת עסקת נקודות
- תיקון באג - אי סגירת עסקה מול מסופון עם firmware לא עדכני, בגרסה 3.4.4 ומטה
- תיקון באג - אי שליחת קבלה ירוקה
- שיפור ניהול שגיאות - תקלה בעת ניסיון שליחת סמס
v2.2 - 17/7/2023
גרסה זו מכילה מספר שינויים ארכיטקטורים, שינויים ותיקונים משניים, ותיקוני באגים:
שינויים ארכיטקטורים:
- שינוי ארכיטקטורי מהותי לאופן ההדפסה - ניהול תהליכי ההדפסה דרך process נפרד מהאפליקציה שמתאפס בין כל הדפסה
- שינוי ארכיטקטורי לדף אי פעילות - פיצול דף אי פעילות לדף שגיאה (אליו מגיעים רק במצבי שגיאה מהותית) ודף אי-פעילות (אליו האפליקציה עוברת באופן אוטומטי לפי הגדרות קונפיג)
- שינוי ארכיטקטורי לניהול אמצעי תשלום והוספת תשתית לפיתוחים עתידיים - גישה לדף אמצעי תשלום מתבצעת באופן אוטומטי, ואמצעי התשלום הזמינים למשתמש מופיעים באופן המותנה בהגדרות המכונה ובעסקה העכשווית (לדוגמה - האם המשתמש עונה על דרישות החנות לבחירת תשלומים - במידה ולא, האופציה תוסתר)
שינויים משניים:
- הוספת ניהול-שגיאות (error-handling) חסר למתודות סמסים ויצירת חשבונית פנימית
- הוספת אופציה לקבלת סמסים מכל עמדה בעת שגיאות חמורות, נסיונות ביצוע עסקה ועסקאות מוצלחות
- שינוי אופן יצירת ברקודים בהוצאת פתקי ברקוד (Invendiv) על מנת לתמוך בקניית מוצרים מרובה
- הוספת קוד מוצר לפתקי ברקוד (Invendiv)
- הוספת טעינת תמונות אוטומטית (preloading) לקטלוג מוצרים פנימי באופן דינמי
- תיקונים ויזואלים בתצוגת קטלוג חדשה (Invendiv, Analyza)
תיקוני באגים:
- תיקון באג - קריסה בעת יצירת חשבונית עקב פרמטרים חסרים בעת קריאה למתודה
- תיקון באג - קריסה בעת קבלת סירוב מהמסופון עקב קבלת תשובה שונה מהמצופה
v2.1 - 10/7/2023
גרסה זו מכילה מספר תיקונים מינוריים, בהתאם ללוחות הזמנים שנקבעו בTeamwork:
- Console: shut down screen graphics
- Console: shut down machine, turn on machine
- Add payment types screen: "how do you want to pay?"
- Add creditTerminalNo to CreateInvoice
- Print in receipt: how many points the user accumulated
- Disable history (on swipe)
v2.0 - 4/7/2023
גירסא זו היא גירסא ראשית. בגירסא זו הוספנו את היכולת להגדיר עמדות מרחוק, הכולל console, הנותן שליטה על כולל פורטים שניגשים אליהם, טקסטים שמופיעים במערכת, תמונות אווירה, וכל הגדרות המערכת.
גירסא זו כוללת
קונפיגורציה מרחוק
החל מהיום, הקונפיגורציה של העמדות נטענת מהשרתים שלנו ומנוהלת מרחוק.
השליטה בקונפיגורציה מתבצעת כרגע על ידי עובדי אינצ'ארג', ונקבעה שיחה ל 11/7 על מנת לתת הסבר וגישה לעמית ולדימה.
בהמשך ממשק זה יאופשר גם למנהלי הרשתות והקבוצות.
הממשק שולט בכל האספקטים של המערכת, מלבד התקנת גירסא, בין השאר:
- באיזה מצב המערכת עובדת - ריטייל, מזון, או מכונות ממכר
- כל תמונות וסרטוני האווירה במערכת
- טקסטים שמופיעים במערכת
- כתובות של ממשקים
- איזה מערכות ומודולים מופעלים במערכת
כאשר מבצעים שינוי בממשק, הוא מתעדכן מיד בעמדה הרלוונטית.
מודולריזציה
כל תשתית המערכת עברה refactor שאיחד מסכים שונים שעושים דברים זהים, ונבנתה מערכת מודולים נרחבת.
שינוי זה מאפשר הכנסת מצבים ופיצ'רים חדשים בקלות, ללא התנגדות עם פיצ'רים קיימים של המערכת. כך לדוגמא יכולנו להכניס את מצב המערכת של מכונות הממכר (invendiv)
שינויי תקשורת
שינינו את דרכי התקשורת של המערכת. לכל שרת חיצוני, יש אפשרות להפעיל או לכבות את הפרוקסי, בהתאם לתנאי הרשת של הלקוח.
יציבות מערכת
בגירסא זו נכנסו מספר שינויים לטובת יציבות המערכת:
- קבלת התראות (על ידי צוות אינצ'ארג') כאשר יש תקלה בשרתים
- התאוששות כאשר יש ניתוק רשת במהלך עסקה
- התאוששות כאשר יש ניתוק חשמל במהלך עסקה
- טיפול בתקלות המגיעות מה APG
אינטגרציות
- WiseSense: שליחת קוד RFID לקופה בעת סגירת חשבונית
- WiseSense: תמיכה בקבלת מספר מוצרים בסריקה אחת
- Verifone: תמיכה במועדון לקוחות פנימי של וריפון
קופה עצמאית
הוספנו תמיכה ביצירת חשבוניות ודוחות Z פנימיים של הקופה, למקרים שבהם אין צורך באינטגרציה לקופה חיצונית.
מבצעים
הוספנו תמיכה במבצעים:
- מבצע 4
- מבצע 18
- מבצע 19
- מבצע 20
- חסימת פריטים במערכת (קבוצה 9)
בקשות מלקוחות
- בחירת מוכרן - עכשיו יש אפשרות להגדיר שהבחירה תהיה רק מתוך העובדים שכרגע במשמרת
- שפת מערכת - בסיום עסקה, המערכת תחזור לשפת ברירת מחדל
- מנגנון תשלומים
- מסך התשלומים לא מוצג כשלא מגיעים למינימום עבור 2 תשלומים, ומוצגת התראה בהתאם
- כאשר מנסים להשתמש ביותר תשלומים מהמגבלה, תוצג הודעה מתאימה
- שינויים במסך ביקורת מנהל לבקשת פוקס
- אוסף שינויים קטנים שזארה ביקשו
- חץ מצביע לכיוון מסוף האשראי, הכיוון ניתן לשליטה מהקונפיג
- אפשרות לקבל עותק חשבונית מודפס בנוסף למקור ב SMS
- הדפסת מספר נקודות קרדיט שיש ללקוח בסיום עסקה
- הערה: לא מודפס כמה נקודות נצברו בעסקה, שכן אנחנו לא מקבלים את הנתון מוריפון
- הוספת מסך אמצעי תשלום (אפשרויות כרגע: אשראי רגיל או תשלומים)
תיקוני תקלות
- טיפול בתקלה ב H&M שבגללה מסך תשלומים לא הוצג בכל העסקאות
- תיקון תקלות במועדון לקוחות פנימי שדווחו על ידי זארה
- תיקונים במסך ביקורת מנהל
רשימת משימות מה Teamwork
רשימה זו מתמצתת את רשימת השינויים, לפי שמות הטיקטים ב Teamwork:
- Send RFID code (from WiseSense) in CreateInvoice
- Select seller - only show sellers currently in shift
- P400 certification - התאוששות מאסון
- Seller selection (בחירות מוכרן)
- מבצע 18
- מבצע 19
- Zara - requested changes & תיאום משימות מחדש
- מועדון לקוחות וריפון
- P400 - Retry on code 10
- מבצע 20 - חסימת עמדה
- שפת מערכת: בסיום עסקה לחזור לשפת ב"מ המחדל שמופיע בקונפיג
- מנגנון תשלומים - לא להציג כשלא מגיעים לרף
- מנגנון תשלומים - הודעה על סכום מינימום
- Create
standalone
service with one api functionality - /api/createOrder
which saves the order to RavenDB
- מבצע 4 - הדפסת מסר
- Change password for ביקורת מנהל
- Config options to enable/disable proxy for (1) defacto calls and (2) R360 calls
- Minor bugs in הטבות מועדון לקוחות פנימי
- חסימת פריט למכירה
- H&M - באג תשלומים
- חסימת פריט למכירה
- Re-add arrow config option and add arrow-direction config options
- Support receiving multiple products from WiseSense
- Fetch config from database
- CreateInternalInvoice
- ManagerReview fixes
- Receipt option "both"
- Fox - Verifone requests Proxy fix
- להדפיס בחשבונית כמה נקודות קרדיט הלקוח צבר וכמה יש לו
- Upgrade and config all fox stations
- Add payment types screen: "how do you want to pay?"
- Seller selection: only show sellers in current shift
- התראות לגבי תקלות בצד של INCHARGE