Example #1
0
 /**
  * @param Entity\Event $event
  * @return Entity\EventResult
  */
 public static function onAfterDelete(Entity\Event $event)
 {
     $result = new Entity\EventResult();
     $data = $event->getParameters();
     $primary = array('MAILING_ID' => $data['primary']['ID']);
     MailingGroupTable::delete($primary);
     MailingChainTable::delete($primary);
     PostingTable::delete($primary);
     return $result;
 }
        $dataListDb = \Bitrix\Sender\MailingChainTable::getList(array('select' => array('ID'), 'filter' => $arFilter, 'order' => array($by => $order)));
        while ($arRes = $dataListDb->fetch()) {
            $arID[] = $arRes['ID'];
        }
    }
    foreach ($arID as $ID) {
        if (strlen($ID) <= 0) {
            continue;
        }
        $ID = IntVal($ID);
        $dataPrimary = array('ID' => $ID);
        switch ($_REQUEST['action']) {
            case "delete":
                @set_time_limit(0);
                $DB->StartTransaction();
                $dataDeleteDb = \Bitrix\Sender\MailingChainTable::delete($dataPrimary);
                if (!$dataDeleteDb->isSuccess()) {
                    $DB->Rollback();
                    $lAdmin->AddGroupError(GetMessage("sender_mailing_chain_adm_del_error"), $ID);
                }
                $DB->Commit();
                break;
        }
    }
}
$groupListDb = \Bitrix\Sender\MailingChainTable::getList(array('select' => array('ID', 'MAILING_ID', 'POSTING_ID', 'CREATED_BY', 'STATUS', 'REITERATE', 'LAST_EXECUTED', 'EMAIL_FROM', 'AUTO_SEND_TIME', 'DAYS_OF_MONTH', 'DAYS_OF_WEEK', 'TIMES_OF_DAY', 'NAME' => 'SUBJECT'), 'filter' => $arFilter, 'order' => array($by => $order)));
$rsData = new CAdminResult($groupListDb, $sTableID);
$rsData->NavStart();
$lAdmin->NavText($rsData->GetNavPrint(GetMessage("sender_mailing_chain_adm_nav")));
$lAdmin->AddHeaders(array(array("id" => "ID", "content" => "ID", "sort" => "ID", "align" => "right", "default" => true), array("id" => "NAME", "content" => GetMessage("sender_mailing_chain_adm_field_name"), "sort" => "NAME", "default" => true), array("id" => "CREATED_BY", "content" => GetMessage("sender_mailing_chain_adm_field_created_by"), "sort" => "CREATED_BY", "default" => true), array("id" => "STATUS", "content" => GetMessage("sender_mailing_chain_adm_field_status"), "sort" => "STATUS", "default" => true), array("id" => "EMAIL_FROM", "content" => GetMessage("sender_mailing_chain_adm_field_email_from"), "sort" => "EMAIL_FROM", "default" => false), array("id" => "REITERATE", "content" => GetMessage("sender_mailing_chain_adm_field_reiterate"), "sort" => "REITERATE", "default" => false), array("id" => "AUTO_SEND_TIME", "content" => GetMessage("sender_mailing_chain_adm_field_auto_send_time"), "sort" => "AUTO_SEND_TIME", "default" => false)));
while ($arRes = $rsData->NavNext(true, "f_")) {
Example #3
0
 public static function updateChain($id, array $fields)
 {
     $result = new \Bitrix\Main\Entity\Result();
     static::checkFieldsChain($result, $id, $fields);
     if (!$result->isSuccess(true)) {
         return $result;
     }
     $parentChainId = null;
     $existChildIdList = array();
     foreach ($fields as $chainFields) {
         $chainId = $chainFields['ID'];
         unset($chainFields['ID']);
         $chainFields['MAILING_ID'] = $id;
         $chainFields['IS_TRIGGER'] = 'Y';
         $chainFields['REITERATE'] = 'Y';
         $chainFields['PARENT_ID'] = $parentChainId;
         // default status
         if ($chainId > 0) {
             $chain = \Bitrix\Sender\MailingChainTable::getRowById(array('ID' => $chainId));
             if ($chain && $chain['STATUS'] != \Bitrix\Sender\MailingChainTable::STATUS_WAIT) {
                 $chainFields['STATUS'] = $chain['STATUS'];
                 unset($chainFields['CREATED_BY']);
             }
         }
         if (empty($chainFields['STATUS'])) {
             $chainFields['STATUS'] = \Bitrix\Sender\MailingChainTable::STATUS_WAIT;
         }
         // add or update
         if ($chainId > 0) {
             $existChildIdList[] = $chainId;
             $chainUpdateDb = MailingChainTable::update(array('ID' => $chainId), $chainFields);
             if ($chainUpdateDb->isSuccess()) {
             } else {
                 $result->addErrors($chainUpdateDb->getErrors());
             }
         } else {
             $chainAddDb = MailingChainTable::add($chainFields);
             if ($chainAddDb->isSuccess()) {
                 $chainId = $chainAddDb->getId();
                 $existChildIdList[] = $chainId;
             } else {
                 $result->addErrors($chainAddDb->getErrors());
             }
         }
         if (!empty($errorList)) {
             break;
         }
         $parentChainId = null;
         if ($chainId !== null) {
             $parentChainId = $chainId;
         }
     }
     $deleteChainDb = MailingChainTable::getList(array('select' => array('ID'), 'filter' => array('MAILING_ID' => $id, '!ID' => $existChildIdList)));
     while ($deleteChain = $deleteChainDb->fetch()) {
         MailingChainTable::delete(array('ID' => $deleteChain['ID']));
     }
     static::updateChainTrigger($id);
     return $result;
 }