1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
softkey.php
См. документацию.
1<?
2if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
3
4$STAT_RIGHT = $APPLICATION->GetGroupRight("statistic");
5if($STAT_RIGHT=="D") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
6
7/***************************************************************************
8Convertation of the standard Softkey CSV file to the
9CSV file format of the Statistics module.
10***************************************************************************/
11
12/*
13 Input parameters:
14 INPUT_CSV_FILE - path to the source file
15 OUTPUT_CSV_FILE - path to the resulting file
16*/
17
18$SEPARATOR = ","; // CSV separator
19
20function CleanUpCsv(&$item)
21{
22 $item = trim($item, "\"");
23}
24
25function PrepareQuotes(&$item)
26{
27 $item = "\"".str_replace("\"","\"\"", $item)."\"";
28}
29
30if ($fp_in = fopen($INPUT_CSV_FILE,"rb"))
31{
32 $upload_dir = $_SERVER["DOCUMENT_ROOT"]."/".COption::GetOptionString("main","upload_dir","/upload/"). "/statistic";
33 if (mb_substr($OUTPUT_CSV_FILE, 0, mb_strlen($upload_dir)) == $upload_dir && $fp_out = fopen($OUTPUT_CSV_FILE,"wb"))
34 {
35 $i = 0; // counter of the read valuable lines
36 $j = 0; // counter of the written to the resulting file lines
37 $lang_date_format = FORMAT_DATE; // date format for the current language
38 $event1 = "softkey";
39 $event2 = "buy";
40 $EVENT_ID = CStatEventType::ConditionSet($event1, $event2, $arEventType)." (".$event1." / ".$event2.")";
41 $SITE_ID = GetEventSiteID(); // short site identifier (ID)
42 while (!feof($fp_in))
43 {
44 $arrCSV = fgetcsv($fp_in, 4096, $SEPARATOR);
45 if (is_array($arrCSV) && count($arrCSV)>1)
46 {
47 array_walk($arrCSV, "CleanUpCsv");
48 reset($arrCSV);
49 $i++;
50 // if it is the first line then
51 if ($arrCSV[0]=="AUTHOR_ID")
52 {
53 // get an array with the field numbers
54 $arrS = array_flip($arrCSV);
55 }
56 elseif ($arrCSV[0]!="AUTHOR_ID" && is_array($arrS) && count($arrS)>0) // else form the CSV line in module format and write it to the resulting file
57 {
58 $arrRes = array();
59
60 // ID of an event type;
61 $arrRes[] = $EVENT_ID;
62
63 // event3
64 $arrRes[] = $arrCSV[$arrS["ORDER_ID"]]." / ".$arrCSV[$arrS["PROGRAM_ID"]]." / ".$arrCSV[$arrS["OPTION_ID"]];
65
66 // date
67 $arrRes[] = $DB->FormatDate(trim($arrCSV[$arrS["PAID_DATE"]]), "DD.MM.YYYY", $lang_date_format);
68
69 // additional parameter
70 $ADDITIONAL_PARAMETER = $arrCSV[$arrS["REFERER1"]];
71 if (mb_strpos($ADDITIONAL_PARAMETER, $SITE_ID) === false)
72 {
73 $ADDITIONAL_PARAMETER = $arrCSV[$arrS["REFERER2"]];
74 }
75 $arrRes[] = $ADDITIONAL_PARAMETER;
76
77 // money sum
78 $arrRes[] = $arrCSV[$arrS["AMOUNT"]];
79
80 // currency
81 $arrRes[] = $arrCSV[$arrS["CURRENCY"]];
82
83 $PAID_UP = $arrCSV[$arrS["PAID_UP"]];
84
85 // if short site identifier exists in Additional parameter then
86 if (mb_strpos($ADDITIONAL_PARAMETER, $SITE_ID) !== false && $PAID_UP=="Y")
87 {
88 // write the line to the resulting file
89 $j++;
90 array_walk($arrRes, "PrepareQuotes");
91 $str = implode(",",$arrRes);
92 if ($j>1) $str = "\n".$str;
93 fputs($fp_out, $str);
94 }
95 }
96 }
97 }
98 @fclose($fp_out);
99 }
100 @fclose($fp_in);
101}
102
103/*
104
105Описание CSV полей:
106
107AUTHOR_ID - код компании автора;
108AUTHOR_NAME - название компании автора;
109ORDER_ID - код заказа;
110BASKET_ID - код позиции заказа;
111DATE_INSERT - дата создания заказа;
112PROGRAM_ID - код программы;
113OPTION_ID - код опции программы;
114PROGRAM_NAME - название программы;
115LID - регион продаж;
116BUYER_NAME - полное имя покупателя;
117BUYER_COMPANY_ID - код компании покупателя;
118BUYER_COMPANY - название компании покупателя;
119QUANTITY - количество копий;
120AMOUNT - стоимость заказа;
121CURRENCY - валюта заказа;
122CURRENCY_RATE_USD - курс валюты заказа по отношению к USD;
123AMOUNT_USER_CURRENCY - стоимость в дополнительной валюте;
124CURRENCY_RATE_USER_CURRENCY - курс дополнительной валюты к USD;
125STATUS - текущий статус заказа;
126DATE_STATUS - дата последнего изменения статуса;
127DATE_DISPATCH - дата установления статуса "отгружен";
128CANCEL_REASON - причина отмены заказа;
129CANCEL_REASON_ANOTHER - произвольная причина отмены;
130PAID_UP - оплачен ли заказ (Y/N)
131PAID_DATE - дата оплаты заказа;
132DEALER_AGREEMENT_ID - код дилерского договора;
133DEALER_DISCOUNT - дилерская скидка;
134BUYER_AGREEMENT_ID - код договора покупательской скидки;
135BUYER_DISCOUNT - покупательская скидка;
136COUPON - значение купона для скидки;
137AUTHOR_AMOUNT - авторское вознаграждение;
138AUTHOR_AMOUNT_USER_CURRENCY - авторское вознаграждение в дополнительной валюте;
139COMMISSION_AGREEMENT_ID - код авторского договора;
140COMMISSION_AMOUNT - величина комиссии;
141COMMISSION_CURRENCY - валюта выплаты авторского вознаграждения;
142DELIVERY_LID - представительство, ответственное за отгрузку заказа;
143TRANSFER - переведены ли средства на внутренний счет автора (Y/N);
144AFFILIATE_ID - код компании аффилиата;
145AFFILIATE_NAME - название компании аффилиата;
146AFFILIATE_URL_FROM - с какой страницы аффилиата перешел покупатель;
147AFFILIATE_URL_TO - на какую страницу перешел покупатель от аффилиата;
148AFFILIATE_DATE - дата перехода от аффилиата;
149AFFILIATE_AGREEMENT_ID - код аффилиатского договора;
150AFFILIATE_AMOUNT - комиссия аффилиата;
151IP_ADDRESS - IP адрес покупателя;
152HTTP_HOST - хост покупателя;
153HTTP_REFERER - с какой страницы покупатель оформил заказ;
154HTTP_ACCEPT_LANGUAGE - языки браузера покупателя;
155HTTP_USER_AGENT - название браузера покупателя;
156REG_NAME - имя для регистрации;
157REG_COMPANY - название компании для регистрации;
158REG_EMAIL - email для регистрации;
159REG_ZIPCODE - почтовый индекс для регистрации;
160REG_LOCATION - местоположение для регистрации;
161REG_CITY - город для регистрации;
162REG_ADDRESS - адрес для регистрации;
163REG_PHONE - телефон для регистрации;
164REG_PARAM1 - дополнительное поле 1;
165REG_PARAM2 - дополнительное поле 2;
166REG_PARAM3 - дополнительное поле 3;
167REFERER1 - параметр referer1 из ссылки на заказ (идентификатор рекламной кампании);
168REFERER2 - параметр referer2 из ссылки на заказ;
169REF_URL_FROM - откуда перешел покупатель по рекламной кампании;
170REF_URL_TO - куда перешел покупатель по рекламной кампании;
171REF_DATE - дата перехода по рекламной камапнии;
172SESSION_REFERER - откуда покупатель пришел на сервер;
173ORD_EMAIL - контактный email в заказе;
174ORD_CONTACT_PERSON - контактное лицо в заказе;
175ORD_COMPANY_NAME - название компании в заказе;
176ORD_INN - ИНН в заказе;
177ORD_LOCATION - местоположение в заказе;
178ORD_COUNTRY - страна в заказе;
179ORD_ZIP_CODE - почтовый индекс в заказе;
180ORD_STATE - штат в заказе;
181ORD_CITY - город в заказе;
182ORD_ADDRESS - юридический адрес в заказе;
183ORD_ADDRESS_FACT - фактический адрес в заказе;
184ORD_PHONE - телефон в заказе;
185ORD_FAX - факс в заказе;
186ORD_OKONH - ОКОНХ в заказе;
187ORD_OKPO - ОКПО в заказе;
188ORG_TYPE_NAME - организационная форма плательщика;
189PAYMENT_SYS_NAME - название метода оплаты.
190*/
191?>
global $APPLICATION
Определения include.php:80
static GetOptionString($module_id, $name, $def="", $site=false, $bExactSite=false)
Определения option.php:8
static ConditionSet($event1, $event2, &$arEventType)
Определения stateventtype.php:106
$str
Определения commerceml2.php:63
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
const FORMAT_DATE
Определения include.php:63
GetMessage($name, $aReplace=null)
Определения tools.php:3397
$SEPARATOR
Определения plimus.php:18
$STAT_RIGHT
Определения plimus.php:4
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
die
Определения quickway.php:367
$i
Определения factura.php:643
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
PrepareQuotes(&$item)
Определения softkey.php:25
CleanUpCsv(&$item)
Определения softkey.php:20
GetEventSiteID()
Определения stat_tools.php:544
$SITE_ID
Определения yandex_run.php:607