Version 4.5.0
This commit is contained in:
1 parent
1a0c7fd3c2
commit
f79dcf067a
3791 files changed
+248032
-76372
No files matched your search
@@ -12,7 +12,7 @@
|
||||
namespace IPS\nexus\modules\front\clients;
|
||||
|
||||
/* To prevent PHP errors (extending class does not exist) revealing path */
|
||||
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) )
|
||||
{
|
||||
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
|
||||
exit;
|
||||
@@ -56,7 +56,7 @@ class _addresses extends \IPS\Dispatcher\Controller
|
||||
*/
|
||||
protected function manage()
|
||||
{
|
||||
$addresses = new \IPS\Patterns\ActiveRecordIterator( \IPS\Db::i()->select( '*', 'nexus_customer_addresses', array( 'member=?', \IPS\Member::loggedIn()->member_id ) ), 'IPS\nexus\Customer\Address' );
|
||||
$addresses = new \IPS\Patterns\ActiveRecordIterator( \IPS\Db::i()->select( '*', 'nexus_customer_addresses', array( '`member`=?', \IPS\Member::loggedIn()->member_id ) ), 'IPS\nexus\Customer\Address' );
|
||||
|
||||
$shippingAddress = NULL;
|
||||
$billingAddress = NULL;
|
||||
@@ -106,9 +106,25 @@ class _addresses extends \IPS\Dispatcher\Controller
|
||||
$existing = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
$needTaxStatus = NULL;
|
||||
foreach ( \IPS\nexus\Tax::roots() as $tax )
|
||||
{
|
||||
if ( $tax->type === 'eu' )
|
||||
{
|
||||
$needTaxStatus = 'eu';
|
||||
break;
|
||||
}
|
||||
if ( $tax->type === 'business' )
|
||||
{
|
||||
$needTaxStatus = 'business';
|
||||
}
|
||||
}
|
||||
$addressHelperClass = $needTaxStatus ? 'IPS\nexus\Form\BusinessAddress' : 'IPS\Helpers\Form\Address';
|
||||
$addressHelperOptions = ( $needTaxStatus === 'eu' ) ? array( 'vat' => TRUE ) : array();
|
||||
|
||||
$form = new \IPS\Helpers\Form;
|
||||
$form->add( new \IPS\Helpers\Form\Address( 'address', $existing ? $existing->address : NULL, TRUE ) );
|
||||
$form->add( new $addressHelperClass( 'address', $existing ? $existing->address : NULL, TRUE, $addressHelperOptions ) );
|
||||
|
||||
if ( $values = $form->values() )
|
||||
{
|
||||
@@ -116,8 +132,8 @@ class _addresses extends \IPS\Dispatcher\Controller
|
||||
{
|
||||
$existing = new \IPS\nexus\Customer\Address;
|
||||
$existing->member = \IPS\Member::loggedIn();
|
||||
$existing->primary_billing = !\IPS\Db::i()->select( 'count(*)', 'nexus_customer_addresses', array( 'member=? AND primary_billing=1', \IPS\Member::loggedIn()->member_id ) )->first();
|
||||
$existing->primary_shipping = !\IPS\Db::i()->select( 'count(*)', 'nexus_customer_addresses', array( 'member=? AND primary_shipping=1', \IPS\Member::loggedIn()->member_id ) )->first();
|
||||
$existing->primary_billing = !\IPS\Db::i()->select( 'count(*)', 'nexus_customer_addresses', array( '`member`=? AND primary_billing=1', \IPS\Member::loggedIn()->member_id ) )->first();
|
||||
$existing->primary_shipping = !\IPS\Db::i()->select( 'count(*)', 'nexus_customer_addresses', array( '`member`=? AND primary_shipping=1', \IPS\Member::loggedIn()->member_id ) )->first();
|
||||
|
||||
\IPS\nexus\Customer::loggedIn()->log( 'address', array( 'type' => 'add', 'details' => json_encode( $values['address'] ) ) );
|
||||
}
|
||||
@@ -129,13 +145,15 @@ class _addresses extends \IPS\Dispatcher\Controller
|
||||
$existing->address = $values['address'];
|
||||
$existing->save();
|
||||
|
||||
\IPS\Request::i()->setCookie( 'location', NULL );
|
||||
|
||||
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=nexus&module=clients&controller=addresses', 'front', 'clientsaddresses' ) );
|
||||
}
|
||||
|
||||
if ( \IPS\Request::i()->isAjax() )
|
||||
{
|
||||
$form->class = 'ipsForm_vertical ipsForm_noLabels';
|
||||
\IPS\Output::i()->sendOutput( $form->customTemplate( array( call_user_func_array( array( \IPS\Theme::i(), 'getTemplate' ), array( 'forms', 'core' ) ), 'popupTemplate' ) ) );
|
||||
\IPS\Output::i()->sendOutput( $form->customTemplate( array( \IPS\Theme::i()->getTemplate( 'forms', 'core' ), 'popupTemplate' ) ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -158,7 +176,7 @@ class _addresses extends \IPS\Dispatcher\Controller
|
||||
if ( $address->member->member_id == \IPS\Member::loggedIn()->member_id )
|
||||
{
|
||||
$field = \IPS\Request::i()->primary === 'billing' ? 'primary_billing' : 'primary_shipping';
|
||||
\IPS\Db::i()->update( 'nexus_customer_addresses', array( $field => 0 ), array( 'member=?', \IPS\Member::loggedIn()->member_id ) );
|
||||
\IPS\Db::i()->update( 'nexus_customer_addresses', array( $field => 0 ), array( '`member`=?', \IPS\Member::loggedIn()->member_id ) );
|
||||
$address->$field = TRUE;
|
||||
$address->save();
|
||||
|
||||
@@ -166,6 +184,8 @@ class _addresses extends \IPS\Dispatcher\Controller
|
||||
}
|
||||
}
|
||||
catch ( \OutOfRangeException $e ) {}
|
||||
|
||||
\IPS\Request::i()->setCookie( 'location', NULL );
|
||||
|
||||
\IPS\Output::i()->redirect( \IPS\Http\Url::internal( 'app=nexus&module=clients&controller=addresses', 'front', 'clientsaddresses' ) );
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user