Скрипт экспорта информации - PullRequest
0 голосов
/ 01 июня 2018

Я реализую скрипт экспорта информации между двумя датами и сталкиваюсь с небольшой трудностью.Вот сценарий моего сценария:

  • Первый столбец: экспорт имен спонсоров
  • Второй столбец: Экспорт общего количества крестных отцов
  • Третий столбец: Всего продажспонсоров, которых мы генерируем
  • Четвертый столбец: Экспорт количества новых рефералов в выбранную дату
  • Пятый столбец: Оборот продаж новых рефералов в выбранную дату

Мой сценарий работает отлично, но я хотел бы добавить к своему состоянию это:

  • Если крестник зарегистрируется 01/01 и прикажет 02/02
  • Когда я прошуэкспорт между 01.01 по 30.01 был бы необходим, чтобы в моем экспорте я нашел в столбце «новый крестник» = 1, но с другой стороны, я не хочу увеличивать оборот этого крестника, потому чтовне даты экспорта.

Вот текущий код:

$filename = $this->l('export_perfs');
            $header = array('Ambassadrice:Nom/Prénom', 'Nb Filleul','CA Filleul (total)','Nvx Filleul', 'CA Nvx Filleul');


            // Récupére le nombre de filleuls total et le CA total
            $sql1 = Db::getInstance()->executeS("
            SELECT CONCAT(amb.firstname, ' ', amb.lastname) AS NomPrénom, rs.id_sponsor, c.id_customer, SUM(o.total_products_wt + o.total_shipping) AS CA, c.date_add AS dateFilleul, o.date_add AS dateOrder
            FROM `"._DB_PREFIX_."rewards_sponsorship` rs
            LEFT JOIN `"._DB_PREFIX_."customer` c ON  rs.id_customer = c.id_customer
            LEFT JOIN `"._DB_PREFIX_."customer` amb ON  rs.id_sponsor = amb.id_customer
            LEFT JOIN `"._DB_PREFIX_."orders` o ON(c.id_customer = o.id_customer)
            GROUP BY rs.id_customer");

            $lines = array();
            foreach ($sql1 as $row) {
                $id_sponsor = $row['id_sponsor'];

                $lines[$id_sponsor]['ambassadrice'] = $row['NomPrénom'];
                $lines[$id_sponsor]['totalCa'] += $row['CA'];
                $lines[$id_sponsor]['nbFilleul']++;

                $dateInscriptionFilleul = $row['dateFilleul'];
                $dateOrder = $row['dateOrder'];

                if($dateInscriptionFilleul > $date_from .' 00:00:00' && $dateInscriptionFilleul < $date_to.' 23:59:59' && $dateOrder > $date_from.' 00:00:00' && $dateOrder < $date_to.' 23:59:59') {
                    $lines[$id_sponsor]['nbFilleulNew']++;
                    $lines[$id_sponsor]['totalCaNew'] += $row['CA'];
                }

            }

            $results = [];
            foreach ($lines as $id_sponsor => $data) {
                $results[]  = array(
                    $data['ambassadrice'],
                    $data['nbFilleul'],
                    $data['totalCa'],
                    isset($data['nbFilleulNew'])?$data['nbFilleulNew']:0,
                    isset($data['totalCaNew'])?$data['totalCaNew']:0,
                );
            }

            return $this->generateCSV($results, $header, $filename);

            break;

У вас есть идеи, как это сделать?

Спасибо за вашу помощь

...