Commit e8b0e34e2150051a936b18db4098582ef3dd0cb2
1 parent
6102a857
+ fix дублей модификаций товара при импорте
Showing
1 changed file
with
64 additions
and
30 deletions
Show diff stats
libs/catalogs.class.php
... | ... | @@ -592,33 +592,45 @@ ORDER BY catalogs_users.mktime DESC"; |
592 | 592 | |
593 | 593 | $this->tpl->assign('usersData', $res); |
594 | 594 | } |
595 | - | |
596 | - function viewModifications($product_id){ | |
597 | - $sql = "select * from catalogs_modifications where product_id=? order by id desc"; | |
598 | - $row = $this->db->getAll($sql,array($product_id),DB_FETCHMODE_ASSOC); | |
599 | - if(trim($_REQUEST['test2'])=='1') print_r($row); | |
600 | - $this->tpl->assign('modifications', $row); | |
601 | - } | |
602 | - | |
603 | - function viewModificationsProduct($product_id){ | |
604 | - $sql = "select a1.* from catalogs_modifications a1 where a1.product_id=? and a1.active>0 order by a1.id asc"; | |
605 | - // $sql = "select m.* from catalogs_keys_products_cities k left join catalogs_modifications m on m.code=k.mod_code where k.product_id=? and k.count>0 order by k.mod_code desc"; | |
606 | - $row = $this->db->getAll($sql,array($product_id),DB_FETCHMODE_ASSOC); | |
607 | - | |
608 | - | |
609 | -for($i=0;$i<count($row);$i++){ | |
610 | -$row2 = $this->db->getRow("SELECT * FROM catalogs_keys_products_cities WHERE product_id='".$product_id."' AND mod_code='".@$row[$i]['code']."' LIMIT 1;",array(),DB_FETCHMODE_ASSOC); | |
611 | -//if($row2['city_id']==25){ unset($row[$i]); } | |
595 | + | |
596 | +// ====================== | |
597 | +// ==== MODIFICATION ==== | |
598 | +// ====================== | |
599 | + | |
600 | +function viewModifications ($product_id) | |
601 | +{ | |
602 | + $sql = "select * from catalogs_modifications where product_id=? order by id desc"; | |
603 | + $row = $this->db->getAll ($sql, array ( | |
604 | + $product_id | |
605 | + ), DB_FETCHMODE_ASSOC); | |
606 | + if (trim ($_REQUEST['test2']) == '1') | |
607 | + print_r ($row); | |
608 | + $this->tpl->assign ('modifications', $row); | |
612 | 609 | } |
613 | -$new_row = array(); | |
614 | -//if($_GET['test']=='18') print_r($row); | |
615 | -foreach ($row as $key => $value) { | |
616 | - //$new_row[] = $value; | |
610 | + | |
611 | +function viewModificationsProduct ($product_id) | |
612 | +{ | |
613 | + $sql = "select a1.* from catalogs_modifications a1 where a1.product_id=? and a1.active>0 order by a1.id asc"; | |
614 | + // $sql = "select m.* from catalogs_keys_products_cities k left join catalogs_modifications m on m.code=k.mod_code where k.product_id=? and k.count>0 order by k.mod_code desc"; | |
615 | + $row = $this->db->getAll ($sql, array ( | |
616 | + $product_id | |
617 | + ), DB_FETCHMODE_ASSOC); | |
618 | + | |
619 | + for ($i = 0; $i < count ($row); $i ++) | |
620 | + { | |
621 | + $row2 = $this->db->getRow ("SELECT * FROM catalogs_keys_products_cities WHERE product_id='" . $product_id . "' AND mod_code='" . @$row[$i]['code'] . "' LIMIT 1;", array (), DB_FETCHMODE_ASSOC); | |
622 | + // if($row2['city_id']==25){ unset($row[$i]); } | |
623 | + } | |
624 | + $new_row = array (); | |
625 | + // if($_GET['test']=='18') print_r($row); | |
626 | + foreach ($row as $key => $value) | |
627 | + { | |
628 | + // $new_row[] = $value; | |
629 | + } | |
630 | + // if($_GET['test']=='18') print_r($new_row); | |
631 | + $this->tpl->assign ('modifications', $row); | |
632 | + return $row; | |
617 | 633 | } |
618 | -//if($_GET['test']=='18') print_r($new_row); | |
619 | - $this->tpl->assign('modifications', $row); | |
620 | - return $row; | |
621 | - } | |
622 | 634 | |
623 | 635 | function viewModificationOne ($id) |
624 | 636 | { |
... | ... | @@ -637,6 +649,18 @@ function getModificationProduct_id ($code) |
637 | 649 | )); |
638 | 650 | } |
639 | 651 | |
652 | +function getModification ($product_id, $code) | |
653 | +{ | |
654 | + return $this->db->getOne (" | |
655 | + SELECT id | |
656 | + FROM catalogs_modifications | |
657 | + WHERE product_id=? | |
658 | + AND code=?", array ( | |
659 | + $product_id, | |
660 | + $code | |
661 | + )); | |
662 | +} | |
663 | + | |
640 | 664 | function SaveModification ($data, $upload) |
641 | 665 | { |
642 | 666 | $table_name = "catalogs_modifications"; |
... | ... | @@ -750,6 +774,10 @@ function deleteModificationPics ($id, $pics = array('pic_big','pic')) |
750 | 774 | // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/big/{$row['pic_big']}"); |
751 | 775 | } |
752 | 776 | |
777 | +// ================= | |
778 | +// ==== PRODUCT ==== | |
779 | +// ================= | |
780 | + | |
753 | 781 | function ProductClick($id){ |
754 | 782 | $this->db->query("update catalogs_products set click=click+1 where id='$id'"); |
755 | 783 | } |
... | ... | @@ -3441,7 +3469,7 @@ function viewTmpProducts () |
3441 | 3469 | $this->saveProductParams ($product_id, $pruduct_params); |
3442 | 3470 | $this->saveGalleryPics ($product_id, $pruduct_gallery_pics); |
3443 | 3471 | // íå óäàëÿåì ! |
3444 | - // $this->deleteProductModifications ($product_id, true); | |
3472 | + //$this->deleteProductModifications ($product_id, true); | |
3445 | 3473 | $m_i = 0; |
3446 | 3474 | |
3447 | 3475 | for ($i = 19; $i < count ($row_line); $i ++) |
... | ... | @@ -3462,22 +3490,28 @@ function viewTmpProducts () |
3462 | 3490 | |
3463 | 3491 | $size_mod = explode ("*", $row_mod [1]); |
3464 | 3492 | $rost = (isset ($size_mod [1])) ? $size_mod [1] : ''; |
3493 | + | |
3494 | + // íàõîäèì modifications_id | |
3495 | + $modifications_id = $this->getModification($product_id, $row_mod[0]); | |
3496 | + | |
3497 | + // ñîõðàíÿåì | |
3465 | 3498 | $this->SaveModification (array ( |
3466 | 3499 | 'product_id' => $product_id, |
3467 | 3500 | 'code' => $row_mod [0], |
3468 | 3501 | 'size' => $size_mod [0], |
3469 | 3502 | 'rost' => $rost, |
3470 | 3503 | 'color' => $row_mod [2], |
3471 | - 'active' => $row_mod [4] | |
3472 | - ), $upload_mod); | |
3504 | + 'active' => $row_mod [4], | |
3505 | + 'update_id' => (int)$modifications_id | |
3506 | + ), $upload_mod); | |
3473 | 3507 | |
3474 | - if ($row_mod [4] > 0) | |
3508 | + if ($row_mod[4] > 0) | |
3475 | 3509 | { |
3476 | 3510 | $m_i ++; |
3477 | 3511 | } |
3478 | 3512 | } |
3479 | 3513 | } |
3480 | - | |
3514 | + | |
3481 | 3515 | $this->updateProduct_countModification ($product_id, $m_i); |
3482 | 3516 | |
3483 | 3517 | // $this->import_saveFilters($product_id,$rubric_parent_id,$row_line[6]); | ... | ... |