Помогите вставить условия и формулу

Тема в разделе "PHP", создана пользователем moradin, 10 мар 2017.

Модераторы: latteo
  1. moradin

    moradin Постоялец

    Регистр.:
    11 фев 2016
    Сообщения:
    77
    Симпатии:
    14
    Помогите в скрипт
    $inp=curl($url);
    $dd=date("Y-m-d H:i:s");
    $inp = new SimpleXMLElement($inp);
    foreach($inp->stat as $a){
    $sqlw['transaction_id']=$a->order_id;
    $sql['transaction_id']=$a->order_id;
    $sql['transaction_amount']=$a->cart;
    $sql['transaction_commision']=$a->payment;
    $sql['user_id']=$a->subid;
    $sql['program_id']=$a->advcampaign_id;
    $sql['retailer']=$a->advcampaign_name;
    $sql['status']=$a->status;

    $sql_ret['program_id']=$a->advcampaign_id;
    $x=db_read('cashbackengine_retailers',$sql_ret);
    $b=str_replace('%','',$x[0]['cashback']);
    $sql['amount']=round($b*strval($sql['transaction_amount'])/100,2);
    $x=db_read($tbl,$sqlw);
    if(!$x){
    $sql['created']=$dd;
    $sql['updated']=$dd;
    db_ins($tbl,$sql);
    }else{
    $sql['updated']=$dd;
    db_up($tbl,$sql,$sqlw);
    }
    }
    вставить условие, что если amount > transaction_commision, то вместо amount должна выводиться цифра из transaction_commision - 5%.
     
    Последнее редактирование: 3 апр 2017
  2. Den1xxx

    Den1xxx

    Moderator
    Регистр.:
    15 янв 2014
    Сообщения:
    280
    Симпатии:
    155
    Ctrl+C — Ctrl+V?
     
  3. moradin

    moradin Постоялец

    Регистр.:
    11 фев 2016
    Сообщения:
    77
    Симпатии:
    14
    Так и я могу. А как правильно вставить, чтобы работало?
    Есть еще один скрипт от такой же cms, но она полностью переделана.
    <?php

    session_start();

    require_once("../inc/config.inc.php");
    set_time_limit(0);
    $cDevKey = '';
    //Read id of linkshare from the database starts
    $query_nw_id = "SELECT network_id FROM cashbackengine_affnetworks WHERE network_name = 'Commission Junction'";
    $rs = smart_mysql_query($query_nw_id);
    $total = mysql_num_rows($rs);
    if($total > 0)
    {
    $row_nw = mysql_fetch_assoc($rs);
    $network_id = $row_nw['network_id'];
    }//Read id of commision junction from the database ends

    if((isset($_GET['start_date'])) && ($_GET['start_date']!="")&& (isset($_GET['end_date'])) && ($_GET['end_date']!=""))
    {
    $start_date = $_GET['start_date'];
    $end_date = $_GET['end_date'];
    }
    else {
    //Current date and time
    $current_date = date('Ymd'); // SETTING THESE VARIABLES pending
    $current_time = date('His');
    //Conditions to check and set start and end date for the query
    if(($current_time>000000)&&($current_time<010000))
    {
    $start_date = $current_date - 1;
    }
    else
    {
    $start_date = $current_date;
    }
    //Computing start and end date for the cURL
    $end_date = date("Y-m-d", strtotime($current_date));
    $start_date = date("Y-m-d", strtotime($start_date));
    }

    $cURL = "https://";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $cURL);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Authorization: ' . $cDevKey,
    'User-Agent: "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 GTB6 (.NET CLR 3.5.30729)"'
    ));

    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);

    $cHTML = curl_exec($ch);
    if (curl_error($ch)) {
    echo "Curl error: " . curl_error($ch);
    }
    else {
    $cXML = simplexml_load_string($cHTML);
    for ($i = 0; $i < count($cXML->commissions->commission); $i++) {
    $insert_flg = 1;
    $single = $cXML->commissions->commission[$i];
    $program_id = $single->cid;
    $transaction_id = $single->{'order-id'};
    $user_id =$single->sid;
    $transaction_amount = $single->{'sale-amount'};
    $commission = $single->{'commission-amount'};
    $status = $single->{'action-status'};
    $original_action_id = $single->{'original-action-id'};
    $retailer = $single->{'advertiser-name'};
    $transaction_date = $single->{'event-date'};
    $transaction_date= date('Y-m-d h:i:s',strtotime($transaction_date));
    //$transaction_date = explode('T',$transaction_date);
    //$transaction_date = $transaction_date[0].' 00:00:00';
    //Query to check whether the transaction already exists in database
    $query_chk_ref = "SELECT program_id,transaction_id,user_id,amount,transaction_amount,transaction_commision,transaction_date,original_action_id FROM cashbackengine_transactions WHERE original_action_id = '$original_action_id'";

    $rs = smart_mysql_query($query_chk_ref);
    $total = mysql_num_rows($rs);
    if($total > 0)
    {
    while($rows = mysql_fetch_array($rs))
    {

    if(// If any match then nothing will happen otherwise - new record will be inserted
    ($program_id == $rows['program_id']) &&
    ($user_id == $rows['user_id']) &&
    ($transaction_amount == $rows['transaction_amount']) &&
    ($commission == $rows['transaction_commision']) &&
    ($original_action_id == $rows['original_action_id'])
    )
    {
    $insert_flg = 0;
    }
    }

    }

    if($insert_flg == 1)
    {
    //Calculating the amount to be cashback from the cashback % given using network_id and program_id
    $query = "SELECT cashback FROM cashbackengine_retailers WHERE network_id='$network_id' AND program_id='$program_id' LIMIT 1";

    $cashback_result = smart_mysql_query($query);
    $cashback_row = mysql_fetch_array($cashback_result);

    $cashback_store = mysql_real_escape_string($cashback_row['title']);
    $cashback = $cashback_row['cashback'];

    if ($cashback != "")
    {
    if (strstr($cashback, '%'))
    {
    $cashback_percent = str_replace('%','',$cashback);
    $member_money = CalculatePercentage($transaction_amount, $cashback_percent);
    }
    else
    {
    if ($commission < $cashback)
    {
    $member_money = $cashback;
    $cashbackengine_status = "incomplete";
    $reason = "too high cashback value";
    }
    else
    {
    $member_money = $cashback;
    }
    }
    }
    //status of the transaction by default : pending

    $status = 'pending';


    $query = "INSERT INTO cashbackengine_transactions SET
    network_id = '$network_id',
    program_id ='$program_id',
    reference_id='$transaction_id',
    user_id ='$user_id',
    transaction_amount = '$transaction_amount',
    transaction_commision = '$commission',
    status = '$status',
    created = NOW(),
    amount = '$member_money',
    original_action_id = '$original_action_id',
    payment_type ='cashback',
    transaction_date = '$transaction_date',
    retailer = '$retailer'
    ";

    $result = smart_mysql_query($query);

    //If commission is less than the amount then fire an email to the
    if($commission < $member_money && $result==1)
    {
    $insert_id = mysql_insert_id();
    $to = SITE_MAIL;
    $subject = 'Cashback amount is more than commision';
    $message = 'Please check the transaction with id : '.$insert_id.'\n
    The commision of this particular transaction is :'.$commission.'\n
    Money for the member is :'.$member_money.' ,Which is more than the commision, Which seems like
    a conflict, please resolve this issue';

    $headers = 'From: '.SITE_TITLE.' <'.NOREPLY_MAIL.'>' . "\r\n";

    mail($to, $subject, $message, $headers);
    $insert_id = 0;
    }
    }
    } // ends for ($i = 0; $i < count($cXML->commissions->commission); $i++)
    } // ends else from if (curl_error($ch))
    ?>
     
  4. Den1xxx

    Den1xxx

    Moderator
    Регистр.:
    15 янв 2014
    Сообщения:
    280
    Симпатии:
    155
    Так это потому, что я подсказал;)
    Поиграть в экстрасенсов предлагаете?
    А вообще, откуда нам знать, КАК должен работать результат?
    Вы вообще что собираетесь делать этим скриптом?
     
    Minor нравится это.
  5. alex_me

    alex_me

    Регистр.:
    25 янв 2017
    Сообщения:
    167
    Симпатии:
    113
    Нужно дебаггить. Все сразу прояснится
     
  6. moradin

    moradin Постоялец

    Регистр.:
    11 фев 2016
    Сообщения:
    77
    Симпатии:
    14
    Первый скрипт рабочий, но формула по другому считает. И только высчитывает кэшбэк в процентах, а если за покупку определенную сумму поставить, то не правильно, вот во втором скрипте (это оригинал csv-import с cms) это все есть, и в третьем - тоже переделан под импорт из xml,тоже это все работает.