Удаление заказов по выборке средствами API и работы с объектами — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
Строка 1: Строка 1:
 +
Перед работой с удалением заказов необходимо сделать полный дамп [http://wiki.umisoft.ru/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B0%D0%BC%D0%BF%D0%B0_%D0%B1%D0%B0%D0%B7%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_%D0%B4%D0%BB%D1%8F_%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%B0_%D1%81%D0%B0%D0%B9%D1%82%D0%B0 базы данных.]
 +
 
Так как в административной панели удаление заказов возможно только вручную, при накоплении нескольких тысяч заказов,
 
Так как в административной панели удаление заказов возможно только вручную, при накоплении нескольких тысяч заказов,
 
их удаление будет проблематичным.
 
их удаление будет проблематичным.

Версия 09:09, 5 июня 2013

Перед работой с удалением заказов необходимо сделать полный дамп базы данных.

Так как в административной панели удаление заказов возможно только вручную, при накоплении нескольких тысяч заказов, их удаление будет проблематичным.

В качестве примера, рассмотрим как произвести удаление всех заказов, сделанных ранее заданного года и месяца. Для этого необходимо написать следующий кастом, откроем ~\clases\modules\custom.php. и поместим в него код:

public function delOrders($m=0,$y=0){
                $orders = new selector('objects');
                $objectsCollection = umiObjectsCollection::getInstance();
                $orders->types('object-type')->name('emarket','order');
                foreach($orders as $order){
                    $date=$order->order_date;
                    echo $order->id."<br />";
                    $parsDate=explode('-',$date);
                    if(($parsDate[0]<$y)){
                        $objectsCollection->delObject($order->id);
                    }
                    if(($parsDate[1]<$m)){
                        $objectsCollection->delObject($order->id);
                    }
                    if((!$parsDate[0])&&(!$parsDate[1])){
                        $objectsCollection->delObject($order->id);
                    }
                    }
                return "done";
            }

где m и y это месяц и год соответственно.