דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. התחלת תהליך לאחר סיום תהליך

התחלת תהליך לאחר סיום תהליך

מתוזמן נעוץ נעול הועבר תכנות
6 פוסטים 3 כותבים 193 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • אבי 203א מנותק
    אבי 203א מנותק
    אבי 203
    כתב ב נערך לאחרונה על ידי
    #1

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

    export function button17_click(event, $w) {
    	let mistames = $w("#dataset4").getCurrentItem()._id;
    	let scum = $w('#input15').value
    	let toInsert = {
    		"lakoh": mistames,
    		"mehir": scum,
    		"hazmana": ($w("#dataset3").getTotalCount()) + 1001,
    
    	};
    	wixData.insert("hazmanot", toInsert)
    
    		.then((results) => {
    			$w("#dataset3").refresh()
    			let item = results;
    			let idhazmana = results.id
    			$w('#group1').show()
    		})
    
    	$w("#dataset3").refresh()
    		.then(() => {
    
    			$w("#repeater99").forEachItem(($item, itemData, index) => {
    				let id = itemData._id
    				let muzar = itemData.muzar
    				let camut = Number($item('#input4').value)
    				let mehir = Number(itemData.mehir)
    				let sac2 = mehir * camut
    				let toInsert2 = {
    					"lakoh": mistames,
    					"muzarim": id,
    					"camut": camut,
    					"title": muzar,
    					"sach": sac2
    				};
    				wixData.insert("sal", toInsert2)
    					.then((results) => {
    						$w('#dataset1').refresh()
    						let item = results
    						let id2 = item._id
    						console.log(id2);
    						let idhazmana = $w("#dataset3").getCurrentItem()._id;
    
    						wixData.insertReference("hazmanot", "muzarim", idhazmana, [id2])
    							.catch((error) => {
    								console.log(error);
    							});
    					})
    					.catch((err) => {
    						console.log(err);
    
    					});
    
    			})
    		})
    

    https://www.av-digital.co.il/

    תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      בלי להבין הרבה נראה שיש להכניס את כל הכנסת הפרטים לסל לתוך הקלאבק של יצירת ההזמנה, ככה:

      export function button17_click(event, $w) {
          let mistames = $w("#dataset4").getCurrentItem()._id;
          let scum = $w('#input15').value
          let toInsert = {
              "lakoh": mistames,
              "mehir": scum,
              "hazmana": ($w("#dataset3").getTotalCount()) + 1001
          };
      
          wixData.insert("hazmanot", toInsert)
              .then(hazmanaItem => {
                  $w('#group1').show();
                  $w("#dataset3").refresh()
                      .then(() => {
                          $w("#repeater99").forEachItem(($item, itemData, index) => {
      
                              let mehir = Number(itemData.mehir);
                              let camut = Number($item('#input4').value);
      
                              let toInsert2 = {
                                  lakoh: mistames,
                                  muzarim: itemData._id,
                                  title: itemData.muzar,
                                  camut,
                                  sach: mehir * camut
                              }
      
                              wixData.insert("sal", toInsert2)
                                  .then(newSal => {
                                      $w('#dataset1').refresh();
                                      wixData.insertReference("hazmanot", "muzarim", hazmanaItem.id, newSal._id)
                                          .catch(console.log);
                                  })
                                  .catch(console.log);
                          })
                      });
              });
      }
      

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

      $w("#dataset3").refresh()
      

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      2
      • מנצפךמ מנותק
        מנצפךמ מנותק
        מנצפך
        כתב ב נערך לאחרונה על ידי
        #3

        @אבי-203
        בכל שאלה כזו צריך להסביר באיזו פלטפורמה מדובר וכו', האם צד שרת וכדו'.
        כדי שיוכלו לעזור לך.
        זה לא פעם ראשונה שאני אומר את זה (באופן כללי)

        תגובה 1 תגובה אחרונה
        3
        • אבי 203א מנותק
          אבי 203א מנותק
          אבי 203
          כתב ב נערך לאחרונה על ידי
          #4

          @מנצפך @dovid
          זה בפלטפורמת WIX
          זה לא בצד השרת אלא קוד מקומי של טופס סיום הזמנה.
          WIX משולב של קוד עם קליקים. אתה מוסיף מסד נתונים, ומתקשר איתו מהקוד, לאחר הכנסה של מידע למסד נתונים, אתה מבצע

          $w("#dataset3").refresh()
          
          

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

          .then(hazmanaItem => {
          
            .then(newSal => {
          
          

          ובכל מקרה זה עדין לא עובד טוב..

          https://www.av-digital.co.il/

          תגובה 1 תגובה אחרונה
          0
          • dovidD מנותק
            dovidD מנותק
            dovid ניהול
            כתב ב נערך לאחרונה על ידי
            #5

            @אבי-203 לא הוספתי, זה כבר היה ככה:

            then((results) =>
            

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

            אולי תנסה לשים גם את החלק של הוספת הרפרנס לthen שאחרי הרפרש
            במקום:

             $w('#dataset1').refresh();
             wixData.insertReference("hazmanot", "muzarim", hazmanaItem.id, newSal._id)
                    .catch(console.log);
            

            תכתוב:

             $w('#dataset1').refresh().then( () => 
             wixData.insertReference("hazmanot", "muzarim", hazmanaItem.id, newSal._id)
                    .catch(console.log) );
            

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            תגובה 1 תגובה אחרונה
            2
            • אבי 203א מנותק
              אבי 203א מנותק
              אבי 203
              כתב ב נערך לאחרונה על ידי
              #6

              זה עדין לא עבד. נסיתי בדרך אחרת.

              let mistames = $w("#dataset4").getCurrentItem()._id;
              	let scum = $w('#input15').value
              	 let hazmana = []
              
              	await $w("#repeater99").forEachItem(($item, itemData, index) => {
              			let id = itemData._id
              			let muzar = itemData.muzar
              			let camut = Number($item('#input4').value)
              			let mehir = Number(itemData.mehir)
              			let sac2 = mehir * camut
              			let toInsert2 = {
              				"lakoh": mistames,
              				"muzarim": id,
              				"camut": camut,
              				"title": muzar,
              				"sach": sac2
              			};
              			wixData.insert("sal", toInsert2)
              				.then((results) => {
              					let item = results
              					let id2 = item._id
              					console.log(id2);
              					hazmana.push(id2)
              
              				})
              				.catch((err) => {
              			console.log(err);
              
              		});
              		})
              		 console.log(" hazmana: " + hazmana);
              	 let toInsert = {
              		"lakoh": mistames,
              		"mehir": scum,
              		"hazmana": ($w("#dataset3").getTotalCount()) + 1001,
              		"muzarim": hazmana,
              	};
              	await wixData.insert("hazmanot", toInsert)
              
              		.then((results) => {
              			// $w("#dataset3").refresh()
              			// let item = results;
              			// let idhazmana = results.id
              			$w('#group1').show()
              		})
              		.catch((err) => {
              			console.log(err);
              
              		});
              

              אלא שעדין hazmana מודפס לי ריק.
              כלומר לא נכנסים בסוף המוצרים שבסל, להזמנה. האובייקט hazmana נשאר ריק.

              https://www.av-digital.co.il/

              תגובה 1 תגובה אחרונה
              0

              בא תתחבר לדף היומי!
              • התחברות

              • אין לך חשבון עדיין? הרשמה

              • התחברו או הירשמו כדי לחפש.
              • פוסט ראשון
                פוסט אחרון
              0
              • דף הבית
              • קטגוריות
              • פוסטים אחרונים
              • משתמשים
              • חיפוש
              • חוקי הפורום