diff --git a/htdocs/paypal/ajaxtransaction.php b/htdocs/paypal/ajaxtransaction.php index 0c4b4374182..6691104cdd3 100644 --- a/htdocs/paypal/ajaxtransaction.php +++ b/htdocs/paypal/ajaxtransaction.php @@ -264,79 +264,125 @@ if (isset($_GET['action']) && ! empty($_GET['action']) && isset($_GET['transacti { $langs->load('paypal'); + $return_arr = array(); + $return_arr['element_created'] = false; + // For paypal request optimization if (! isset($_SESSION[$_GET['transaction_id']]) ) $_SESSION[$_GET['transaction_id']] = GetTransactionDetails($_GET['transaction_id']); + // Check if already import + $i=0; + $objectArray = array(); + + if ($conf->commande->enabled) { + $elementArray[$i] = 'order'; + $i++; + } + if ($conf->facture->enabled) { + $elementArray[$i] = 'invoice'; + } + + foreach($elementArray as $element) + { + if ($element == 'order') { $element = $subelement = 'commande'; } + if ($element == 'invoice') { $element = 'compta/facture'; $subelement = 'facture'; } + + dol_include_once('/'.$element.'/class/'.$subelement.'.class.php'); + + $classname = ucfirst($subelement); + $object = new $classname($db); + + $res = $object->fetchObjectFromRefExt($object->table_element, $_GET['transaction_id']); + if ($res > 0) + { + $return_arr['element_created'] = true; + $objectArray[$element] = $object; + } + } + + $soc = new Societe($db); + $ret = $soc->fetchObjectFromRefExt($soc->table_element, $_SESSION[$_GET['transaction_id']]['PAYERID']); + $var=true; - echo ''; - echo ''; - echo ''; - echo ''; + $return_arr['contents'] = '
'.$langs->trans('ThirdParty').'
'; + $return_arr['contents'].= ''; + $return_arr['contents'].= ''; + $return_arr['contents'].= ''; + if ($ret > 0) + { + $var=!$var; + $return_arr['contents'].= ''; + } + else + { + $var=!$var; + $return_arr['contents'].= ''; + $var=!$var; + $return_arr['contents'].= ''; + } $var=!$var; - echo ''; + $return_arr['contents'].= ''; $var=!$var; - echo ''; + $return_arr['contents'].= ''; $var=!$var; - echo ''; + $return_arr['contents'].= ''; $var=!$var; - echo ''; + $return_arr['contents'].= ''; $var=!$var; - echo ''; - $var=!$var; - echo ''; - $var=!$var; - echo ''; + $return_arr['contents'].= ''; $var=!$var; $payerstatus=strtolower($_SESSION[$_GET['transaction_id']]['PAYERSTATUS']); $img_payerstatus=($payerstatus=='verified' ? img_tick($langs->trans(ucfirst($payerstatus))) : img_warning($langs->trans(ucfirst($payerstatus))) ); - echo ''; + $return_arr['contents'].= ''; $var=!$var; $addressstatus=strtolower($_SESSION[$_GET['transaction_id']]['ADDRESSSTATUS']); $img_addressstatus=($addressstatus=='confirmed' ? img_tick($langs->trans(ucfirst($addressstatus))) : img_warning($langs->trans(ucfirst($addressstatus))) ); - echo ''; + $return_arr['contents'].= ''; $shipamount=($_SESSION[$_GET['transaction_id']]['SHIPPINGAMT']?$_SESSION[$_GET['transaction_id']]['SHIPPINGAMT']:$_SESSION[$_GET['transaction_id']]['SHIPAMOUNT']); $var=!$var; - echo ''; + $return_arr['contents'].= ''; - echo '
'.$langs->trans('ThirdParty').'
'.$langs->trans('ThirdPartyName').''.$soc->getNomUrl(1).'
'.$langs->trans('LastName').''.$_SESSION[$_GET['transaction_id']]['LASTNAME'].'
'.$langs->trans('FirstName').''.$_SESSION[$_GET['transaction_id']]['FIRSTNAME'].'
'.$langs->trans('LastName').''.$_SESSION[$_GET['transaction_id']]['LASTNAME'].'
'.$langs->trans('Address').''.$_SESSION[$_GET['transaction_id']]['SHIPTOSTREET'].'
'.$langs->trans('FirstName').''.$_SESSION[$_GET['transaction_id']]['FIRSTNAME'].'
'.$langs->trans('Zip').' / '.$langs->trans('Town').''.$_SESSION[$_GET['transaction_id']]['SHIPTOZIP'].' '.$_SESSION[$_GET['transaction_id']]['SHIPTOCITY'].'
'.$langs->trans('Address').''.$_SESSION[$_GET['transaction_id']]['SHIPTOSTREET'].'
'.$langs->trans('Country').''.$_SESSION[$_GET['transaction_id']]['SHIPTOCOUNTRYNAME'].'
'.$langs->trans('Zip').' / '.$langs->trans('Town').''.$_SESSION[$_GET['transaction_id']]['SHIPTOZIP'].' '.$_SESSION[$_GET['transaction_id']]['SHIPTOCITY'].'
'.$langs->trans('Email').''.$_SESSION[$_GET['transaction_id']]['EMAIL'].'
'.$langs->trans('Country').''.$_SESSION[$_GET['transaction_id']]['SHIPTOCOUNTRYNAME'].'
'.$langs->trans('Email').''.$_SESSION[$_GET['transaction_id']]['EMAIL'].'
'.$langs->trans('Date').''.dol_print_date(dol_stringtotime($_SESSION[$_GET['transaction_id']]['ORDERTIME']),'dayhour').'
'.$langs->trans('Date').''.dol_print_date(dol_stringtotime($_SESSION[$_GET['transaction_id']]['ORDERTIME']),'dayhour').'
'.$langs->trans('PAYERSTATUS').''.$img_payerstatus.'
'.$langs->trans('PAYERSTATUS').''.$img_payerstatus.'
'.$langs->trans('ADDRESSSTATUS').''.$img_addressstatus.'
'.$langs->trans('ADDRESSSTATUS').''.$img_addressstatus.'
'.$langs->trans('SHIPAMOUNT').''.price($shipamount).' '.$_SESSION[$_GET['transaction_id']]['CURRENCYCODE'].'
'.$langs->trans('SHIPAMOUNT').''.price($shipamount).' '.$_SESSION[$_GET['transaction_id']]['CURRENCYCODE'].'
'; + $return_arr['contents'].= ''; $i=0; - echo ''; + $return_arr['contents'].= '
'; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + $return_arr['contents'].= ''; + $return_arr['contents'].= ''; + $return_arr['contents'].= ''; + $return_arr['contents'].= ''; + $return_arr['contents'].= ''; while (isset($_SESSION[$_GET['transaction_id']]["L_NAME".$i])) { $var=!$var; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; + $return_arr['contents'].= ''; + $return_arr['contents'].= ''; + $return_arr['contents'].= ''; + $return_arr['contents'].= ''; + $return_arr['contents'].= ''; $i++; } - echo '
'.$langs->trans('Ref').''.$langs->trans('Label').''.$langs->trans('Qty').'
'.$langs->trans('Ref').''.$langs->trans('Label').''.$langs->trans('Qty').'
'.$_SESSION[$_GET['transaction_id']]["L_NUMBER".$i].''.$_SESSION[$_GET['transaction_id']]["L_NAME".$i].''.$_SESSION[$_GET['transaction_id']]["L_QTY".$i].'
'.$_SESSION[$_GET['transaction_id']]["L_NUMBER".$i].''.$_SESSION[$_GET['transaction_id']]["L_NAME".$i].''.$_SESSION[$_GET['transaction_id']]["L_QTY".$i].'
'; - -/* - echo '
'; + $return_arr['contents'].= ''; + + /* + $return_arr['contents'].= '
'; foreach ($_SESSION[$_GET['transaction_id']] as $key => $value) { - echo $key.': '.$value.'
'; + $return_arr['contents'].= $key.': '.$value.'
'; } -*/ + */ + + echo json_encode($return_arr); } } diff --git a/htdocs/paypal/transaction.php b/htdocs/paypal/transaction.php index 517df2caa59..5aa56c76aa4 100644 --- a/htdocs/paypal/transaction.php +++ b/htdocs/paypal/transaction.php @@ -31,6 +31,8 @@ require_once(DOL_DOCUMENT_ROOT."/paypal/lib/paypalfunctions.lib.php"); $langs->load("paypal"); $langs->load("paybox"); $langs->load("companies"); +$langs->load("orders"); +$langs->load("bills"); if (! $conf->global->PAYPAL_ENABLE_TRANSACTION_MANAGEMENT) accessforbidden(); @@ -137,24 +139,29 @@ if (empty($conf->global->PAYPAL_API_USER) || empty($conf->global->PAYPAL_API_PAS }); $( "div.paypal_link" ).click(function() { var id_value = $(this).attr("id"); - if ($.jnotify) { - $.jnotify("trans('PleaseBePatient'); ?>", 1500); - } - $.get( "/paypal/ajaxtransaction.php", { + $.jnotify("trans('PleaseBePatient'); ?>", 1500); + $.getJSON( "/paypal/ajaxtransaction.php", { action: 'showdetails', transaction_id: id_value }, function(details) { - $( "div #paypal_detail_content" ).html(details); + var $order_enabled = commande->enabled ? 'true' : 'false'); ?>; + var $invoice_enabled = facture->enabled ? 'true' : 'false'); ?>; + var $element_created = false; + + $.each(details, function(key,value) { + if (key == 'contents') { + $( "div #paypal_detail_content" ).html(value); + } + if (key == 'element_created' && value == true) { + $element_created = true; + } + }); $( "div #paypal-details" ).dialog({ modal: true, width: 500, buttons: { - commande->enabled) - { - $langs->load("orders"); ?> - 'transnoentities('CreateOrder'); ?>': function() { + 'transnoentities('CreateOrder'); ?>': function() { $.getJSON( "/paypal/ajaxtransaction.php", { action: 'add', element: 'order', @@ -172,12 +179,7 @@ if (empty($conf->global->PAYPAL_API_USER) || empty($conf->global->PAYPAL_API_PAS }); }); }, - - facture->enabled) - { - $langs->load("bills"); ?> - 'transnoentities('CreateBill'); ?>': function() { + 'transnoentities('CreateBill'); ?>': function() { $.getJSON( "/paypal/ajaxtransaction.php", { action: 'add', element: 'invoice', @@ -195,12 +197,23 @@ if (empty($conf->global->PAYPAL_API_USER) || empty($conf->global->PAYPAL_API_PAS }); }); }, - - 'transnoentities('Cancel'); ?>': function() { + 'transnoentities('Cancel'); ?>': function() { $( this ).dialog( "close" ); } } }); + if (! $order_enabled) { + $('.ui-dialog-buttonpane button').eq(0).hide(); + } + if ($order_enabled && $element_created) { + $('.ui-dialog-buttonpane button').eq(0).button('disable'); + } + if (! $invoice_enabled) { + $('.ui-dialog-buttonpane button').eq(1).hide(); + } + if ($invoice_enabled && $element_created) { + $('.ui-dialog-buttonpane button').eq(1).button('disable'); + } }); }); });