Вход Регистрация
Файл: crondeleteorders.php
Строк: 573
<?
$full_home_path 
dirname(__FILE__);
require_once(
$full_home_path.'/_rootload.php');

mconnect();

EnableLanguages(1);
if (!
GetCurrentCurrency()) { print $_lang[ErrorGetCurrentCurrency]; mclose(); exit; }

@
set_time_limit(0);

$company_name=GetSetting('company_name');
$company_url=GetSetting('company_url');
$billing_url=GetSetting('billing_url');
$support_url=GetSetting('support_url');
$manager_email=GetSetting('manager_email');

$cronAutoSuspend GetSetting('cronAutoSuspend');
$cronAutoSuspendDay GetSetting('cronAutoSuspendDay');
$cronSendAdminEndOrder GetSetting('cronSendAdminEndOrder');
$cronSendClientBillRemind GetSetting('cronSendClientBillRemind');
$cronSendClientBillRemindDays GetSetting('cronSendClientBillRemindDays');
$cronSendClientEndOrderRemind GetSetting('cronSendClientEndOrderRemind');
$cronSendClientEndOrderRemindDays GetSetting('cronSendClientEndOrderRemindDays');
$cronSendClientEndOrderDomainRemind GetSetting('cronSendClientEndOrderDomainRemind');
$cronSendClientEndOrderDomainRemindDays GetSetting('cronSendClientEndOrderDomainRemindDays');
$cronDeleteBill GetSetting('cronDeleteBill');
$cronDeleteBillDay GetSetting('cronDeleteBillDay');
$cronDeleteNeobrabOrdersWithoutBills GetSetting('cronDeleteNeobrabOrdersWithoutBills');
$cronDeleteNeobrabOrdersDomainsWithoutBills GetSetting('cronDeleteNeobrabOrdersDomainsWithoutBills');
$cronDeleteOrder GetSetting('cronDeleteOrder');
$cronDeleteOrderDay GetSetting('cronDeleteOrderDay');
$cronAutoDelete GetSetting('cronAutoDelete');
$cronDeleteOrderDomain GetSetting('cronDeleteOrderDomain');
$cronDeleteOrderDomainDay GetSetting('cronDeleteOrderDomainDay');
$cronCloseTickets GetSetting('cronCloseTickets');
$cronCloseTicketsDay GetSetting('cronCloseTicketsDay');
$cronDeleteTickets GetSetting('cronDeleteTickets');
$cronDeleteTicketsDay GetSetting('cronDeleteTicketsDay');
$cronDeleteUserLogs GetSetting('cronDeleteUserLogs');
$cronDeleteUserLogsDay GetSetting('cronDeleteUserLogsDay');
$cronDeleteAdminLogs GetSetting('cronDeleteAdminLogs');
$cronDeleteAdminLogsDay GetSetting('cronDeleteAdminLogsDay');
$cronSendClientEndOrderShopRemind GetSetting('cronSendClientEndOrderShopRemind');
$cronSendClientEndOrderShopRemindDays GetSetting('cronSendClientEndOrderShopRemindDays');
$cronDeleteNeobrabOrdersShopWithoutBills GetSetting('cronDeleteNeobrabOrdersShopWithoutBills');
$cronDeleteOrderShop GetSetting('cronDeleteOrderShop');
$cronDeleteOrderShopDay GetSetting('cronDeleteOrderShopDay');
$cronSendClientEndTestRemind GetSetting('cronSendClientEndTestRemind');
$cronSendClientEndTestRemindDays GetSetting('cronSendClientEndTestRemindDays');

$autoRenewEnable=GetSetting("autoRenewEnable");
$autoRenewClientChange=GetSetting("autoRenewClientChange");
$autoRenewDay=GetSetting("autoRenewDay");
$autoRenewDomainDay=GetSetting("autoRenewDomainDay");
$autoRenewShopDay=GetSetting("autoRenewShopDay");

$attachPDFtoBill GetSetting("attachPDFtoBill");

$cronSendClientEndTestRemind GetSetting('cronSendClientEndTestRemind');
$cronSendClientEndTestRemindDays GetSetting('cronSendClientEndTestRemindDays');
$cronAutoDeleteTest GetSetting('cronAutoDeleteTest');

$smsGateway GetSetting("smsGateway");
$smsUserBillRemind GetSetting("smsUserBillRemind");
$smsUserBillRemindDay GetSetting("smsUserBillRemindDay");
$smsUserOrderRemind GetSetting("smsUserOrderRemind");
$smsUserOrderRemindDay GetSetting("smsUserOrderRemindDay");
$smsUserOrderDomainRemind GetSetting("smsUserOrderDomainRemind");
$smsUserOrderDomainRemindDay GetSetting("smsUserOrderDomainRemindDay");
$smsUserOrderShopRemind GetSetting("smsUserOrderShopRemind");
$smsUserOrderShopRemindDay GetSetting("smsUserOrderShopRemindDay");
$smsUserOrderSuspend GetSetting("smsUserOrderSuspend");

# Удаляем заказы (домены) у которых истек оплаченный срок истек и они не продлены.
if ($cronDeleteOrderDomain and intval($cronDeleteOrderDomainDay) > 0) {
    
$error "";
    
$domains = @mysql_query("select * from orders_domains where startdate <> '0000-00-00' AND (TO_DAYS(todate)-TO_DAYS(NOW())<=-$cronDeleteOrderDomainDay)") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
    if (
mysql_num_rows($domains) > 0) {
        while (
$domain mysql_fetch_object($domains)) {
            
$user GetUserById($domain->uid);

            
$registrator GetRegistratorById($domain->autoregby);

            if (
$registrator->type == "hostmasterepp" or $registrator->type == "nicdpua") {
                if (
deleteDomain($domain->domain)) {
                    
$error $error "+ заявка для $domain->domain успешно выполненаrn";
                } else {
                    
$error $error "- ошибка для $domain->domain: " $GLOBALerror."rn";
                }
            }

            @
mysql_query("update orders set domain_reg='0' where domain='$domain->domain'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
            @
mysql_query("update bills set domain_id='0', domain_srok='0', money_domain='0' where domain_id='$domain->id' and NOT(host_id='0')") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());

            if (
$domain->dnsServerId) {
                
deleteDomainZoneAtServer($domain->id);
            }
            @
mysql_query("delete from orders_domains where id='$domain->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());

            
$bs = @mysql_query("select * from bills where domain_id='$domain->id' and host_id='0'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
            while (
$b = @mysql_fetch_object($bs)) {
                if (!
$b->status) {
                    @
mysql_query("delete from bills where id='$b->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
                } else {
                    @
mysql_query("update bills set archived=1 where id='$b->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
                }
            }

            
$tpl=GetTpl('email_touser_domain_delete'$user->lang);
            
$subject=$tpl[subject]; $template=$tpl[template];

            if (
$subject and $template) {
                
$varLng LoadLanguageToVariable($user->lang);

                
$subject str_replace('{domain}',$domain->domain,$subject);
                     
                
$template str_replace('{company_name}',$company_name,$template);
                     
$template str_replace('{company_url}',$company_url,$template);
                     
$template str_replace('{support_url}',$support_url,$template);
                
$template str_replace('{domain}',$domain->domain,$template);
                
$template str_replace('{reason}',$varLng[DomainDeleteReasonExpired],$template);

                
WriteMailLog($subject,$template,$user->id);
                
sendmail($user->email,$company_name,$manager_email,$subject,$template,'','',$tpl[type]);
                
sendmail($user->email2,$company_name,$manager_email,$subject,$template,'','',$tpl[type]);
            }

        }
    }

    if (
$error) {
        
$errormsg $error."rnrnВнимание! Домены, для которых автоматически не создана заявка на удаление, необходимо обработать вручную.";

        
$subject "Cron: отчет об отправке заявки на удаление просроченных доменов";

        
$admEmails=GetAdminEmailsWhereTrueParam("sendcron");
        if (
count($admEmails) > 0) {
            
WriteMailLog($subject,$errormsg);
        }
        while (list(
$i,$em) = @each($admEmails)) {
            
sendmail($em,'',$manager_email,$subject,$errormsg);
        }
    }

}

# Уведомление менеджеру об окончании тестового периода у клиента / Удаление просроченных тестовых аккаунтов
$orders = @mysql_query("select *,TO_DAYS(todate)-TO_DAYS(NOW()) as leftdays from orders where archived=0 and todate <> '0000-00-00' AND testPeriod='1' AND TO_DAYS(todate)-TO_DAYS(NOW())<=-1") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
if (
mysql_num_rows($orders) > 0) {
    
$error "";
    while (
$order mysql_fetch_object($orders)) {
        
$user GetUserById($order->uid);
        
$tarif GetTarifById($order->tarif);

        if (
$cronSendAdminEndOrder and $order->leftdays == "-1") {
            
$template="У клиента $user->login закончился тестовый период по тарифному плану $tarif->name для домена $order->domain.rnrn--rnRootPanel";
            
$subject="Уведомление об окончании тестового периода";

            
$admEmails=GetAdminEmailsWhereTrueParam("sendremind");
            if (
count($admEmails) > 0) {
                
WriteMailLog($subject,$template);
            }
            while (list(
$i,$em) = @each($admEmails)) {
                
sendmail($em,'',$manager_email,$subject,$template);
            }
        }

           if (
$order->serverlogin and $order->serverid) {
            
$server GetServers($order->serverid);

                  if (
$tarif->autodeletetest and $cronAutoDeleteTest) {
                       if (
deleteUser($order->id)) {
                    @
mysql_query("update orders set testPeriod='0',todate='0000-00-00',serverlogin='',serverpassword='',serverid='' where id='$order->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
                           
$error $error "+ Тестовый аккаунт $order->serverlogin для заказа ID #$order->id ($order->domain) автоматически удален на сервере ($server->name).rn";
                       } else {
                           
$error $error "- Тестовый аккаунт $order->serverlogin для заказа ID #$order->id ($order->domain) не удален на сервере ($server->name). Ошибка: $GLOBALerror. Сделайте это вручную.rn";
                       }
                   } else if (!
$cronAutoDeleteTest) {
                       
$error $error "- Тестовый аккаунт $order->serverlogin для заказа ID #$order->id ($order->domain) не удален на сервере ($server->name), т.к. эта возможность отключена в настройках Cron'а.rn";
                   } else if (!
$tarif->autodeletetest) {
                       
$error $error "- Тестовый аккаунт $order->serverlogin для заказа ID #$order->id ($order->domain) не удален на сервере ($server->name), т.к. эта возможность отключена в настройках тарифного плана.rn";
                   }
           } else {
               
$error $error "- Тестовый аккаунт для заказа ID #$order->id ($order->domain) не удален автоматически, т.к. не указан логин на сервере либо не указан сервер.rn";
           }
    }
    if (
$error) {
        
$errormsg $error."rnrnВнимание! Тестовые аккаунты, не удаленные автоматически на сервере, необходимо удалить вручную.";

        
$subject "Cron: отчет об удалении тестовых аккаунтов";

        
$admEmails=GetAdminEmailsWhereTrueParam("sendcron");
        if (
count($admEmails) > 0) {
            
WriteMailLog($subject,$errormsg);
        }
        while (list(
$i,$em) = @each($admEmails)) {
            
sendmail($em,'',$manager_email,$subject,$errormsg);
        }
    }
}

# Удаляем заказы на товар у которых оплаченный срок истек и они не продлены.
if ($cronDeleteOrderShop and intval($cronDeleteOrderShopDay) > 0) {
    
$error "";
    
$orders = @mysql_query("select * from orders_shop where startdate <> '0000-00-00' AND NOT(todate='0000-00-00') AND (TO_DAYS(todate)-TO_DAYS(NOW())<=-$cronDeleteOrderShopDay)") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
    if (
mysql_num_rows($orders) > 0) {
        while (
$order mysql_fetch_object($orders)) {
            
$shopItem GetShopItemById($order->item);
            
$user GetUserById($order->uid);

            if (
$shopItem->costtype != "one") {
                if (
$shopItem->type == "avdesk" or $shopItem->type == "avdesk6") {
                       if (
$order->field1) {
                               if (
deleteShopOrder($order->id0)) {
                                   
$error $error "+ Аккаунт $order->field1 для заказа на товар ID #$order->id ($shopItem->name) автоматически удален на сервере.rn";
                               } else {
                                   
$error $error "- Аккаунт $order->field1 для заказа на товар ID #$order->id ($shopItem->name) не удален на сервере. Сделайте это вручную.rn";
                               }
                       } else {
                           
$error $error "- Аккаунт $order->field1 для заказа на товар ID #$order->id ($shopItem->name) не был удалён автоматически, т.к. не указан логин на сервере.rn";
                       }
                       
$error $error " Заказ и все счета, относящиеся к нему, удалены.rn";

                    @
mysql_query("delete from orders_shop where id='$order->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());

                    
$bs = @mysql_query("select * from bills where shop_id='$order->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
                    while (
$b = @mysql_fetch_object($bs)) {
                        if (!
$b->status) {
                            @
mysql_query("delete from bills where id='$b->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
                        } else {
                            @
mysql_query("update bills set archived=1 where id='$b->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
                        }
                    }

                    
$tpl=GetTpl('email_touser_shop_delete'$user->lang);
                    
$subject=$tpl[subject]; $template=$tpl[template];
                    if (
$subject and $template) {
                        
$varLng LoadLanguageToVariable($user->lang);

                        
$template str_replace('{company_name}',$company_name,$template);
                             
$template str_replace('{company_url}',$company_url,$template);
                             
$template str_replace('{support_url}',$support_url,$template);
                        
$template str_replace('{item}',$shopItem->name,$template);
                        
$template str_replace('{reason}',$varLng[ShopDeleteReasonExpired],$template);

                        
WriteMailLog($subject,$template,$user->id);
                        
sendmail($user->email,$company_name,$manager_email,$subject,$template,'','',$tpl[type]);
                        
sendmail($user->email2,$company_name,$manager_email,$subject,$template,'','',$tpl[type]);
                    }
                }
            }

        }

        if (
$error) {
            
$errormsg $error."nnВнимание! Аккаунты, не удаленные автоматически на сервере, необходимо удалить вручную.";
            
$subject "Cron: отчет об удалении заказов на товары, истекших $cronDeleteOrderShopDay дней назад";

            
$admEmails=GetAdminEmailsWhereTrueParam("sendcron");
            if (
count($admEmails) > 0) {
                
WriteMailLog($subject,$errormsg);
            }
            while (list(
$i,$em) = @each($admEmails)) {
                
sendmail($em,'',$manager_email,$subject,$errormsg);
            }
        }
    }
}

# Удаляем заказы у которых оплаченный срок истек и они не продлены. Если вместе с хостингом заказан домен, то заказ на домен оставляем.
if ($cronDeleteOrder and intval($cronDeleteOrderDay) > 0) {
    
$error "";
    
$orders = @mysql_query("select * from orders where archived=0 and startdate <> '0000-00-00' AND (TO_DAYS(todate)-TO_DAYS(NOW())<=-$cronDeleteOrderDay)") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
    if (
mysql_num_rows($orders) > 0) {
        while (
$order mysql_fetch_object($orders)) {
               if (
$order->serverlogin and $order->serverid) {
                
$server GetServers($order->serverid);

                       
$tarif GetTarifById($order->tarif);
                      if (
$tarif->autodelete and $cronAutoDelete) {
                           if (
deleteUser($order->id0)) {
                               
$error $error "+ Аккаунт $order->serverlogin автоматически удален на сервере ($server->name).rn";
                           } else {
                               
$error $error "- Аккаунт $order->serverlogin для заказа ID #$order->id ($order->domain) не удален на сервере ($server->name). Сделайте это вручную.rn";
                           }
                       } else if (!
$cronAutoDelete) {
                           
$error $error "- Аккаунт $order->serverlogin для заказа ID #$order->id ($order->domain) не удалён на сервере ($server->name), т.к. эта возможность отключена в настройках Cron'а.rn";
                       } else if (!
$tarif->autodelete) {
                           
$error $error "- Аккаунт $order->serverlogin для заказа ID #$order->id ($order->domain) не удалён на сервере ($server->name), т.к. эта возможность отключена для тарифного плана.rn";
                       }
               } else {
                   
$error $error "- Аккаунт $order->serverlogin для заказа ID #$order->id ($order->domain) не был удалён автоматически, т.к. не указан логин на сервере либо не указан сервер.rn";
               }
               
$error $error " Заказ и все счета, относящиеся к нему, удалены. rn";

            if (
$order->domain_reg == "1" or $order->domain_reg == "3") {
                
$domain GetDomainByDomain("$order->domain");
            
                @
mysql_query("update orders_domains set host_id='0' where host_id='$order->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
                @
mysql_query("update bills set host_id='0', host_srok='0', money_host='0', money_addons='0' where host_id='$order->id' and domain_id='$domain->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
            }
        
            @
mysql_query("update orders set archived=1 where id='$order->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
                    @
mysql_query("update servers_ips set order_id='0',isMain='0' where order_id='$order->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());

            
$bs = @mysql_query("select * from bills where host_id='$order->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
            while (
$b = @mysql_fetch_object($bs)) {
                if (!
$b->status) {
                    @
mysql_query("delete from bills where id='$b->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
                } else {
                    @
mysql_query("update bills set archived=1 where id='$b->id'") or die("File: ".__FILE__."<BR>Line: ".__LINE__."<BR>MySQL Error: ".mysql_error());
                }
            }

        }

        if (
$error) {
            
$errormsg $error."nnВнимание! Аккаунты, не удаленные автоматически на сервере, необходимо удалить вручную.";
            
$subject "Cron: отчет об удалении заказов, истекших $cronDeleteOrderDay дней назад";

            
$admEmails=GetAdminEmailsWhereTrueParam("sendcron");
            if (
count($admEmails) > 0) {
                
WriteMailLog($subject,$errormsg);
            }
            while (list(
$i,$em) = @each($admEmails)) {
                
sendmail($em,'',$manager_email,$subject,$errormsg);
            }
        }
    }
}

mclose();
?>
Онлайн: 3
Реклама