לדלג לתוכן הראשי

API להוספת עובד חדש

מדריך ל-API של EZTime ליצירת עובד חדש או עדכון עובד קיים לפי מספר עובד: כתובת, פרמטרים, דוגמת בקשה ותשובה, הודעות שגיאה ופתרון בעיות.

נכתב על ידי EZTIME SUPPORT

מה זה ומתי צריך את זה

ה-API הזה מאפשר למערכת חיצונית (למשל מערכת משאבי אנוש) ליצור עובד חדש ב-EZTime בלי להקליד אותו ידנית. אם כבר קיים בחברה עובד עם אותו מספר עובד, הבקשה מעדכנת אותו במקום ליצור עובד נוסף.

מה המדריך הזה כולל

המדריך כולל: מדריך מקוצר, מי יכול להשתמש ב-API, מה צריך לפני השימוש, כתובת ואופן שליחה, טבלת כל הפרמטרים, יצירה מול עדכון, דוגמת בקשה ותשובה, טבלת הודעות שגיאה, שאלות נפוצות ופתרון בעיות, מילון מונחים וסיכום מהיר. גרסה נוספת של אותו API, שמקבלת גוף JSON, מתוארת במדריך "הוספת עובד JSON API". מאמרים קשורים מופיעים בסוף.

המדריך מתאים למפתח או לאיש מחשבים של החברה. ה-API אינו מסך במערכת, ולכן אין בו צילומי מסך.

🎬 סרטון הסבר קצר

הסרטון מראה איך מוסיפים עובד חדש דרך ה-API: הכנת שם משתמש וסיסמה של מנהל, בדיקה שהמחלקות, התפקידים, המיקומים, הסניפים וההסכמים קיימים, שליחת הבקשה עם הפרמטרים הנדרשים, בדיקת השדה status בתשובה ובדיקת רשימת העובדים.

סרטון הסבר: API להוספת עובד חדש. הכינו פרטי מנהל, ודאו שהנתונים קיימים, שלחו בקשה לכתובת ה-API, בדקו את שדה status, בדקו ברשימת העובדים

מדריך מקוצר

  1. הכינו שם משתמש וסיסמה של מנהל במערכת (לא עובד רגיל).

  2. ודאו שהמחלקות, התפקידים, המיקומים, הסניפים וההסכמים שתשלחו כבר קיימים במערכת, בשמות זהים.

  3. שלחו בקשה לכתובת https://412.co.il/index.php/api/createEmp עם הפרמטרים u, p, empno, fname ו-dept.

  4. בדקו בתשובה את השדה status: true = הצליח, false = נכשל (הפירוט בשדה errors).

  5. פתחו את רשימת העובדים ובדקו שהעובד מופיע.

1. מי יכול לעשות מה

האימות נעשה בעזרת שם משתמש וסיסמה בפרמטרים u ו-p.

סוג משתמש

האם יכול להשתמש ב-API

מנהל חברה

כן. העובד נוצר או מתעדכן בחברה של המשתמש המאמת, ואי אפשר לבחור חברה אחרת.

מנהל מחלקה / מנהל משמרות

כן, כל משתמש שאינו עובד רגיל מתקבל.

עובד רגיל

לא. התשובה: no authenticated.

2. מה צריך כדי שזה יעבוד

  • משתמש מנהל פעיל, ששם המשתמש והסיסמה שלו ידועים.

  • לעובד חדש: מחלקה אחת לפחות. שלחו dept בשם מחלקה קיים, או הגדירו בחברה מחלקת ברירת מחדל לעובדים חדשים.

  • כל מחלקה, תפקיד, תפקיד משמרת, מיקום, סניף, הסכם עבודה והסכם משמרות שתשלחו חייבים להיות קיימים כבר, בשם זהה לשם במערכת. ה-API לא יוצר אותם.

  • מספר עובד (empno) מספרי. ה-API מסיר אפסים מובילים לצורך הבדיקה.

3. כתובת ואופן שליחה

כתובת

שליחה

הפרמטרים נשלחים כפרמטרים רגילים של הבקשה (מומלץ POST בפורמט form). לשליחה כגוף JSON השתמשו ב"הוספת עובד JSON API".

תשובה

JSON

4. הפרמטרים

עמודת "חובה" מתארת מה המערכת בודקת בפועל.

פרמטר

חובה

תיאור וכללים

u

כן

שם משתמש של מנהל.

p

כן

סיסמת המנהל.

empno

כן

מספר העובד. קובע אם זו יצירה או עדכון. חייב להיות מספרי ולא להתחיל ב-0.

fname

מומלץ תמיד

שם פרטי. ראו "שאלות נפוצות" לגבי עדכון עובד קיים.

lname

מומלץ תמיד

שם משפחה.

dept

ליצירת עובד חדש (אלא אם הוגדרה בחברה מחלקת ברירת מחדל)

שמות מחלקות מופרדים בפסיק, למשל dept1,dept2. כל מחלקה חייבת להתקיים. בעדכון, השליחה מחליפה את כל מחלקות העובד.

status

לא

הערכים המותרים: 1, 2 או 3. בלי הפרמטר העובד נוצר עם 1. ערך אחר גורם לשגיאה.

email

לא

כתובת מייל תקינה.

phone

לא

בדיוק 10 ספרות, בלי מקפים ובלי רווחים.

address

לא

אותיות בעברית ובאנגלית, ספרות, רווחים ופסיקים בלבד.

birthday

לא

תאריך לידה בפורמט YYYY-MM-DD, תאריך שעבר.

start_work_date

לא

תחילת העסקה, YYYY-MM-DD.

end_work_date

לא

סיום העסקה, YYYY-MM-DD.

store

לא

שמות סניפים מופרדים בפסיק. אם סניף אחד לא קיים, השדה כולו נכשל.

role

לא

שמות תפקידים מופרדים בפסיק. אין לשלוח יחד עם role_code.

role_code

לא

קודי תפקידים מופרדים בפסיק. אין לשלוח יחד עם role.

shift_role

לא

שמות תפקידי משמרת מופרדים בפסיק.

place

לא

שמות מקומות מותרים לדיווח, מופרדים בפסיק.

place_code

לא

קודי מקומות מופרדים בפסיק. מצטרף למקומות שנשלחו ב-place.

default_place

לא

שם של מקום קיים, כמקום ברירת המחדל.

required_gps_location_to_make_record

לא

האם נדרש מיקום GPS כדי להחתים. אם לא נשלח, העובד החדש מקבל את ברירת המחדל של החברה.

agreement

לא

שם הסכם עבודה, בדיוק כפי שהוא במערכת. בתוקף מה-1 בחודש הנוכחי. לא מוחלף אם לעובד כבר יש הסכם.

shift_agreement

לא

שם הסכם משמרות.

soft_block_date

לא

תאריך בפורמט YYYY-MM-DD.

salary_number

לא

מספר העובד במערכת השכר.

comment

לא

הערה חופשית.

username

לא

שם משתמש לכניסת העובד למערכת ולאפליקציה. חייב להיות ייחודי בכל המערכת. חובה אם שולחים password.

password

לא

סיסמת הכניסה של העובד (לא שם המשתמש). לפחות 8 תווים, הכוללים לפחות אות באנגלית ולפחות ספרה. חובה אם שולחים username.

5. יצירה מול עדכון

  • מספר עובד שלא קיים בחברה: נוצר עובד חדש. שדות שלא נשלחו מקבלים את ברירות המחדל של החברה (סניפים, מקומות, תפקידי משמרת, GPS, NFC, תקופת שכר, מחלקות והסכם עבודה), אם הוגדרו.

  • מספר עובד שכבר קיים: העובד מתעדכן בשדות שנשלחו. ברירות המחדל של החברה לא מוחלות.

  • מחלקות: שליחת dept בעדכון מוחקת את כל המחלקות הקיימות של העובד ומציבה את הרשימה שנשלחה. שלחו תמיד את הרשימה המלאה.

  • הסכם עבודה: ההסכם נקבע רק לעובד שאין לו הסכם. לעובד שכבר יש לו הסכם, השינוי נעשה בכרטיס העובד.

  • כניסה למערכת: אם נשלחו username ו-password, נוצר לעובד משתמש כניסה מסוג עובד.

6. דוגמה לבקשה ולתשובה

בקשה ליצירת עובד (הערכים הם דוגמה בלבד; החליפו אותם בנתוני החברה שלכם):

curl -X POST "https://412.co.il/index.php/api/createEmp" \  -d "u=manager_user" -d "p=manager_password" \  -d "empno=1234" -d "fname=נועה" -d "lname=לוי" \  -d "dept=מכירות" \  -d "agreement=הסכם שעתי" -d "salary_number=88123"

תשובה מוצלחת:

{"status":true,"message":"Employee created successfully","data":{"empId":5821,"empNo":"1234"}}

תשובה כשל (כל השגיאות שנמצאו מוחזרות יחד, ושום דבר לא נשמר):

{"status":false,"errors":{"dept":"Department מכירות does not exist","phone":"phone must be a 10-digit number. "}}

7. הודעות שגיאה

במקרה של כישלון התשובה היא status: false ואובייקט errors עם מפתח לכל שדה שגוי.

מפתח

ההודעה

משמעות ומה לעשות

auth

no authenticated / no authenticated.

חסרים פרטי u ו-p, שהם שגויים, או שהמשתמש אינו מנהל. בדקו שם משתמש וסיסמה ושהמשתמש פעיל ומסוג מנהל.

empno

empno is required

לא נשלח empno.

empno

empno must be numeric and cannot start with '0'.

המספר אינו מספרי או שהוא 0. שלחו מספר חיובי.

dept

dept is required.

עובד חדש בלי מחלקה, ואין בחברה מחלקת ברירת מחדל. שלחו dept.

dept

Department X does not exist

מחלקה לא קיימת. תקנו את השם או צרו אותה קודם במערכת.

status

status must be one of the following values: 1, 2, 3.

ערך status לא מותר.

address

Address must not contain special characters

הכתובת כוללת תווים מיוחדים (למשל גרשיים או מקף). הסירו אותם.

email

Invalid email format

כתובת מייל לא תקינה.

phone

phone must be a 10-digit number.

הטלפון אינו 10 ספרות בדיוק.

birthday

birthday must be a valid date in YYYY-mm-dd format / birthday must be a date in the past.

פורמט שגוי או תאריך שלא עבר.

start_work_date / end_work_date

start_work_date must be a valid date in YYYY-mm-dd format. / end_work_date must be a valid date in YYYY-mm-dd format.

תאריך בפורמט שגוי.

soft_block_date

soft_block_date must be a valid date in YYYY-mm-dd format.

תאריך בפורמט שגוי.

role_code

cant send role and role code together

נשלחו role ו-role_code יחד. שלחו אחד מהם.

role

Role X does not exist

תפקיד לא קיים.

role_code

Role code X does not exist

קוד תפקיד לא קיים.

shift_role

Shift role X does not exist

תפקיד משמרת לא קיים.

place

Place X does not exist

מקום לא קיים.

place_code

Place code X does not exist

קוד מקום לא קיים.

default_place

default_place X does not exist

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

store

Store X does not exist

סניף לא קיים.

agreement

Agreement X does not exist

הסכם עבודה בשם הזה לא קיים. העתיקו את השם בדיוק מ"ניהול הסכמי עבודה".

shift_agreement

Shift agreement X does not exist

הסכם משמרות לא קיים.

username

username is required when a password is set

נשלחה סיסמה בלי שם משתמש.

username

username X already exists.

שם המשתמש תפוס. בחרו אחר.

password

password is required when a username is set

נשלח שם משתמש בלי סיסמה.

password

Password does not meet complexity requirements

הסיסמה קצרה מ-8 תווים או שחסרה בה אות באנגלית או ספרה.

db

Database transaction failed.

שגיאת שרת. הפעולה בוטלה. נסו שוב, ואם חוזר פנו לתמיכה.

exception

(טקסט השגיאה)

שגיאת שרת. הפעולה בוטלה. פנו לתמיכה עם הבקשה ששלחתם.

שאלות נפוצות ופתרון בעיות

❓ שלחתי בקשה וקיבלתי "no authenticated"

לא נשלחו u ו-p בכלל. אם התשובה היא "no authenticated." (עם נקודה), הפרטים שגויים או שהמשתמש אינו מנהל או אינו פעיל.

❓ המשתמש שלי הוא עובד רגיל והבקשה נדחית

רק משתמש מנהל יכול להשתמש ב-API. השתמשו בפרטי מנהל.

❓ קיבלתי "Department X does not exist"

המחלקה לא קיימת בחברה או שהשם שונה (כולל רווחים ואותיות). ה-API לא יוצר מחלקות. צרו אותה במערכת או תקנו את השם.

❓ קיבלתי "dept is required." אבל זה עובד קיים

השגיאה חלה רק על עובד חדש. בדקו שמספר העובד שנשלח זהה למספר שבמערכת.

❓ קיבלתי "Agreement X does not exist"

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

❓ שלחתי הסכם לעובד קיים וההסכם לא התחלף

ה-API קובע הסכם רק לעובד שאין לו הסכם. החליפו הסכם בכרטיס העובד.

❓ קיבלתי "Password does not meet complexity requirements"

הסיסמה צריכה להכיל לפחות 8 תווים, אות באנגלית וספרה. אותיות בעברית אינן נחשבות.

❓ קיבלתי "username X already exists."

שם המשתמש תפוס במערכת (בכל החברות). בחרו שם ייחודי.

❓ העדכנתי עובד קיים והשם שלו נמחק

בעדכון עובד קיים שלחו תמיד גם fname, lname ו-salary_number עם הערכים הנכונים, גם אם לא השתנו, כדי שלא יתאפסו.

❓ עדכנתי מחלקה ונעלמו המחלקות האחרות של העובד

dept מחליף את כל המחלקות. שלחו את הרשימה המלאה, מופרדת בפסיקים.

❓ הבקשה נכשלה ושום דבר לא נשמר, למרות שרק שדה אחד שגוי

כך המערכת פועלת: כל שגיאה בשדה גורמת לכישלון כל הבקשה. תקנו את כל השגיאות שברשימת errors ושלחו שוב.

❓ שלחתי מספר עובד שמתחיל ב-0

שלחו את המספר בלי אפס מוביל. מספר שמורכב מ-0 בלבד נדחה.

❓ קיבלתי "phone must be a 10-digit number."

שלחו בדיוק 10 ספרות, ללא מקפים, רווחים או קידומת בינלאומית.

❓ העובד נוצר אבל לא רואים אותו ברשימת העובדים

בדקו בתשובה ש-status הוא true ושמרו את empId. ודאו שאתם מחפשים בחברה הנכונה.

❓ אני רוצה למחוק עובד או לתקן טעות

למחיקת עובד אין פעולה ב-API הזה. תיקון נעשה בשליחת בקשה חוזרת עם אותו empno ועם הערכים הנכונים, או בכרטיס העובד במערכת.

❓ ראיתי בתיעוד הישן הודעות required_correct_dept, invalid_param ו-duplicated_id

הודעות אלה כבר אינן מוחזרות. ההודעות הנוכחיות מופיעות בטבלת "הודעות שגיאה" למעלה.

מילון מונחים

  • empno – מספר העובד במערכת. מזהה את העובד ליצירה או עדכון.

  • salary_number – מספר העובד במערכת השכר.

  • הסכם עבודה – ההסכם שמגדיר את חוקי חישוב השעות של העובד.

  • הסכם משמרות – ההסכם של העובד במודול סידור העבודה.

  • errors – אובייקט בתשובה שמפרט כל שדה שגוי.

סיכום מהיר

מה רוצים לעשות

איפה

מה זה משנה

ליצור עובד

/api/createEmp עם empno חדש ו-dept

נוצר עובד, ו-empId חוזר בתשובה

לעדכן עובד

/api/createEmp עם empno קיים

מתעדכנים השדות שנשלחו

לתת לעובד כניסה

username ו-password

נוצר משתמש כניסה לעובד

להחליף הסכם עבודה

כרטיס העובד

ה-API לא מחליף הסכם קיים


מאמרים קשורים

האם קיבלת תשובה לשאלתך?