Browse Source

Merge branch 'dev' into 19.0

Mathieu Moulin 11 months ago
parent
commit
f2cf64f042
1 changed files with 19 additions and 12 deletions
  1. 19 12
      src/sync/sync.inc.php

+ 19 - 12
src/sync/sync.inc.php

@@ -792,7 +792,7 @@ public function pd_create($otype, $oid)
 	if (static::P_TABLE_MAIN_REF && static::D_TABLE_MAIN_REF && !empty($p_data[$otype][static::P_TABLE_MAIN_REF])) {
 		$ref = $p_data[$otype][static::P_TABLE_MAIN_REF];
 		// Object qui a déjà été synchronisé
-		$o2 = static::d_o_byref(static::MODEL_NAME, $otype, $ref);
+		$o2 = static::d_o_byref(static::MODEL_NAME, static::D_TABLE_MAIN, $ref);
 		// Données de l'autre côté avec la même ref
 		$d_row = DB::d_get_row($o['d_tref'], [static::D_TABLE_MAIN_REF=>$ref]);
 		if (DEBUG_AFF)
@@ -801,7 +801,7 @@ public function pd_create($otype, $oid)
 		// Trouvé règle de synchro
 		if (!empty($o2)) {
 			// Récupération object p
-			$p_row = DB::p_get_row($o2['p_tref'], ['id_product'=>$o2['p_oid']]);
+			$p_row = DB::p_get_row($o2['p_tref'], [static::P_TABLE_ID[$o2['p_tref']]=>$o2['p_oid']]);
 			if (DEBUG_AFF)
 				var_dump($p_row);
 			// Si pas d'object on réaffecte
@@ -814,8 +814,11 @@ public function pd_create($otype, $oid)
 					WHERE t.ref="'.$o['p_tref'].'" AND op.id='.$o2['id'];
 				if (DEBUG_AFF)
 					echo $sql;
-				//die();
 				DB::o_update($sql);
+				// Remettre l'objet en synchro active
+				if (in_array($o['d_tref'], ['product'])) {
+					DB::d_update_row('product_extrafields', ['sync'=>1], ['fk_object'=>$o2['d_oid']]);
+				}
 			}
 			// Déjà synchronisé => blocage
 			else {
@@ -939,7 +942,7 @@ public function dp_create($otype, $oid)
 	if (static::D_TABLE_MAIN_REF && static::P_TABLE_MAIN_REF && !empty($d_data[$otype][static::D_TABLE_MAIN_REF])) {
 		$ref = $d_data[$otype][static::D_TABLE_MAIN_REF];
 		// Object qui a déjà été synchronisé
-		$o2 = static::p_o_byref(static::MODEL_NAME, $otype, $ref);
+		$o2 = static::p_o_byref(static::MODEL_NAME, static::P_TABLE_MAIN, $ref);
 		// Données de l'autre côté avec la même ref
 		$p_row = DB::p_get_row($o['p_tref'], [static::P_TABLE_MAIN_REF=>$ref]);
 		if (DEBUG_AFF)
@@ -947,22 +950,26 @@ public function dp_create($otype, $oid)
 
 		// Trouvé règle de synchro
 		if (!empty($o2)) {
-			// Récupération object p
-			$p_row = DB::p_get_row($o2['p_tref'], ['id_product'=>$o2['p_oid']]);
+			// Récupération object d
+			$d_row = DB::d_get_row($o2['d_tref'], ['rowid'=>$o2['d_oid']]);
 			if (DEBUG_AFF)
-				var_dump($p_row);
+				var_dump($d_row);
 			// Si pas d'object on réaffecte
-			if (empty($p_row)) {
+			if (empty($d_row)) {
 				if (DEBUG_AFF)
 					echo 'REAFFECTER';
-				$sql = 'UPDATE _objects_p op
-					INNER JOIN _p_tables t
-					SET op.oid='.$o['p_oid'].', op.tid=t.id
-					WHERE t.ref="'.$o['p_tref'].'" op.id='.$o2['id'];
+				$sql = 'UPDATE _objects_d od
+					INNER JOIN _d_tables t
+					SET od.oid='.$o['d_oid'].', od.tid=t.id
+					WHERE t.ref="'.$o['d_tref'].'" od.id='.$o2['id'];
 				if (DEBUG_AFF)
 					echo $sql;
 				//die();
 				DB::o_update($sql);
+				// Remettre l'objet en synchro active
+				if (in_array($o['p_tref'], ['product'])) {
+					//DB::p_update_row($o['p_tref', ['sync'=>1], [static::P_TABLE_ID[$o['p_tref']]=>$o2['d_oid']]);
+				}
 			}
 			// Déjà synchronisé => blocage
 			else {