|
@@ -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 {
|