code from amapei
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
::use 'design.mtt'::
|
||||
<div class="col-md-12">
|
||||
<h2>::_("Balance of members")::</h2>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<div class="article">
|
||||
<h3>::_("Balanced")::</h3>
|
||||
<table class="table">
|
||||
::foreach ua balanced::
|
||||
<tr>
|
||||
<td>
|
||||
<a href="/member/payments/::ua._user.id::">::ua._user.getName()::</a>
|
||||
</td>
|
||||
<td class="info">
|
||||
::ua.balance:: ::currency()::
|
||||
</td>
|
||||
</tr>
|
||||
::end::
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="article">
|
||||
<h3>::_("In debt")::</h3>
|
||||
<table class="table">
|
||||
::foreach ua debt::
|
||||
<tr>
|
||||
<td>
|
||||
<a href="/member/payments/::ua._user.id::">::ua._user.getName()::</a>
|
||||
</td>
|
||||
<td class="danger">
|
||||
::ua.balance:: ::currency()::
|
||||
</td>
|
||||
</tr>
|
||||
::end::
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="article">
|
||||
<h3>::_("In credit")::</h3>
|
||||
<table class="table">
|
||||
::foreach ua credit::
|
||||
<tr>
|
||||
<td>
|
||||
<a href="/member/payments/::ua._user.id::">::ua._user.getName()::</a>
|
||||
</td>
|
||||
<td class="success">
|
||||
::ua.balance:: ::currency()::
|
||||
</td>
|
||||
</tr>
|
||||
::end::
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
::end::
|
||||
@@ -0,0 +1,164 @@
|
||||
::use 'design.mtt'::
|
||||
<div class="col-md-9">
|
||||
<div class="article">
|
||||
::if select!=null::
|
||||
<h2>::_("Selection :||show a sublist of members which has been selected")::
|
||||
::if select=="nocontract"::
|
||||
::_("Members without any contracts")::
|
||||
::elseif select=="nomembership"::
|
||||
::_("Members whose membership should be renewed")::
|
||||
::elseif select=="newusers"::
|
||||
::_("Members who has never logged in")::
|
||||
::elseif select=="contract"::
|
||||
::_("Members with orders or contracts")::
|
||||
::end::
|
||||
</h2>
|
||||
|
||||
<p><b>::members.current().length::</b> ::_("members")::.</p>
|
||||
|
||||
<a href="/member/">::_("Back to main page")::</a>
|
||||
::elseif search!=null::
|
||||
<h2>::_("Search"):: : ::search::</h2>
|
||||
<a href="/member/">::_("Back to main page")::</a>
|
||||
|
||||
::else::
|
||||
<h2>::_("Members")::</h2>
|
||||
::end::
|
||||
|
||||
|
||||
::if select=="newusers"::
|
||||
<hr/>
|
||||
<p style="text-align:center;">
|
||||
::_("You can invite by email all the members who never logged in, in one single clic.")::
|
||||
</p>
|
||||
<p style="text-align:center;">
|
||||
<a href="/member/invite/?token=::token::" class="btn btn-primary btn-lg"><span class="glyphicon glyphicon-envelope"></span> ::_("Send invitations")::</a>
|
||||
</p>
|
||||
::end::
|
||||
|
||||
<table class="table table-bordered table-hover table-striped" style="width:100%;">
|
||||
::foreach m members.current()::
|
||||
<tr>
|
||||
|
||||
<td>
|
||||
<a href="/member/view/::m.id::">
|
||||
::m.lastName:: ::m.firstName::
|
||||
::if m.lastName2!=null::
|
||||
& ::m.lastName2:: ::m.firstName2::
|
||||
::end::
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
::if m.address1!=null::
|
||||
::m.address1::
|
||||
::end::
|
||||
::if m.address2!=null::
|
||||
::m.address2::
|
||||
::end::
|
||||
::if m.zipCode!=null::
|
||||
::m.zipCode::
|
||||
::end::
|
||||
::if m.city!=null::
|
||||
::m.city::
|
||||
::end::
|
||||
</td>
|
||||
</tr>
|
||||
::end::
|
||||
|
||||
<tr ::cond select==null && search==null::>
|
||||
<td colspan="2" class="text-center">
|
||||
|
||||
<ul class="pagination">
|
||||
::if members.paginationStartPage != 1::
|
||||
<li>
|
||||
<a href="?page=::members.paginationStartPage-1::">
|
||||
<span class="glyphicon glyphicon-backward"></span>
|
||||
</a>
|
||||
</li>
|
||||
::end::
|
||||
::foreach i loopList(members.paginationStartPage,members.paginationEndPage)::
|
||||
::if members.page==i::
|
||||
<li class="active" ><a href="?page=::i::">::i::</a></li>
|
||||
::else::
|
||||
<li><a href="?page=::i::">::i::</a></li>
|
||||
::end::
|
||||
::end::
|
||||
::if members.paginationEndPage < members.pages + 1::
|
||||
<li>
|
||||
<a href="?page=::members.paginationEndPage::">
|
||||
<span class="glyphicon glyphicon-forward"></span>
|
||||
</a>
|
||||
</li>
|
||||
::end::
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<div>
|
||||
|
||||
<a href="/member/insert" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-plus-sign"></span> ::_("New member")::</a>
|
||||
$$export(::Web.getURI()+"?"+Web.getParamsString()::&csv=1)
|
||||
<a href="/member/import" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-save"></span> ::_("Import members")::</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
|
||||
|
||||
<div class="block">
|
||||
<h3>::_("Selections")::</h3>
|
||||
<ul>
|
||||
<li><a href="/member/">::_("All members")::</a></li>
|
||||
<li><a href="/member/?select=nocontract">::_("Without orders or contracts")::</a></li>
|
||||
<li><a href="/member/?select=contract">::_("With orders or contracts")::</a></li>
|
||||
<li><a href="/member/?select=newusers">::_("Never logged in")::</a></li>
|
||||
<li ::cond user._amap.hasMembership()::><a href="/member/?select=nomembership">::_("Memberships to renew")::</a></li>
|
||||
<li ::cond user._amap.hasPayments()::><a href="/member/balance">::_("Members balance")::</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
<form class="form-search" action="/member/" method="get">
|
||||
<div class="input-group">
|
||||
::if search==null::
|
||||
::set ssearch=""::
|
||||
::else::
|
||||
::set ssearch=search::
|
||||
::end::
|
||||
<input type="text" class="form-control" name="search" value="::ssearch::" />
|
||||
<span class="input-group-btn">
|
||||
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-search"></span> ::_("Search||search action button")::</button>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="block">
|
||||
<h3>::_("Waiting list")::</h3>
|
||||
<p>
|
||||
::raw __("There is <b>::waitingList::</b> people on waiting list.",{waitingList:waitingList})::
|
||||
<br/>
|
||||
<a href="/member/waiting" class="btn btn-default btn-sm">::_("Display the list")::</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
::if select!="newusers"::
|
||||
<div class="block">
|
||||
<h3>::_("New members")::</h3>
|
||||
::raw __("There is <b>::newUsers::</b> members who never logged in",{newUsers:newUsers})::
|
||||
<br/>
|
||||
<a href="/member/?select=newusers" class="btn btn-default btn-sm">::_("Display the list")::</a>
|
||||
</div>
|
||||
::end::
|
||||
|
||||
</div>
|
||||
|
||||
::end::
|
||||
@@ -0,0 +1,118 @@
|
||||
::use 'design.mtt'::
|
||||
|
||||
<div class="col-md-12">
|
||||
<div class="article">
|
||||
<h2>::_("Import")::</h2>
|
||||
|
||||
|
||||
::if step==1::
|
||||
<form action="/member/import/" method="POST" enctype="multipart/form-data">
|
||||
<p>
|
||||
<input name="file" type="file"/>
|
||||
</p>
|
||||
<input type="submit" value="OK" class="btn btn-primary" />
|
||||
</form>
|
||||
::elseif step==2::
|
||||
<h4>::_("Users to import")::</h4>
|
||||
<div style="margin-bottom:24px;">
|
||||
::if (data!=null && data.length>0) || (data2!=null && data2.length>0)::
|
||||
<table class="table table-bordered" style="font-size:11px;background-color:#FFF;">
|
||||
<tr>
|
||||
<th>::_("First name")::</th>
|
||||
<th>::_("Last name")::</th>
|
||||
<th>::_("Email")::</th>
|
||||
<th>::_("Phone")::</th>
|
||||
<th>::_("Partner first name")::</th>
|
||||
<th>::_("Partner last name")::</th>
|
||||
<th>::_("Partner email")::</th>
|
||||
<th>::_("phone")::</th>
|
||||
<th>::_("Address 1")::</th>
|
||||
<th>::_("Address 2")::</th>
|
||||
<th>::_("zip code")::</th>
|
||||
<th>::_("City")::</th>
|
||||
</tr>
|
||||
::foreach d data::
|
||||
<tr>
|
||||
::foreach r d::
|
||||
<td>
|
||||
::if r!=null:: ::r:: ::end::
|
||||
</td>
|
||||
::end::
|
||||
</tr>
|
||||
::end::
|
||||
</table>
|
||||
|
||||
<h4>::_("Existing accounts")::</h4>
|
||||
<table class="table table-bordered" style="font-size:11px;color:#666666;background-color:#FFF;">
|
||||
<tr>
|
||||
<th>::_("First name")::</th>
|
||||
<th>::_("Last name")::</th>
|
||||
<th>::_("Email")::</th>
|
||||
<th>::_("Phone")::</th>
|
||||
<th>::_("Partner first name")::</th>
|
||||
<th>::_("Partner last name")::</th>
|
||||
<th>::_("Partner email")::</th>
|
||||
<th>::_("phone")::</th>
|
||||
<th>::_("Address 1")::</th>
|
||||
<th>::_("Address 2")::</th>
|
||||
<th>::_("zip code")::</th>
|
||||
<th>::_("City")::</th>
|
||||
</tr>
|
||||
::foreach d data2::
|
||||
<tr>
|
||||
::foreach r d::
|
||||
<td>
|
||||
::if r!=null:: ::r:: ::end::
|
||||
</td>
|
||||
::end::
|
||||
</tr>
|
||||
::end::
|
||||
</table>
|
||||
|
||||
<div class="alert alert-error">
|
||||
<b>::_("Warning")::</b>
|
||||
<p>::_("Before validating this import, please check that this table est correctly filled.<br/>If some datas are shifted or are not linked to the right column, please check your CSV file.")::
|
||||
</p>
|
||||
<a href="/member/import">::_("Try again")::</a>
|
||||
</div>
|
||||
<a href="/member/import?confirm=1" class="btn btn-danger">::_("Finalize import")::</a>
|
||||
::else::
|
||||
<div class="alert alert-error">
|
||||
<b>::_("Oups !")::</b>
|
||||
<p>::_("It looks like there is no data to import. Please check your CSV file or check that the users you want to import are not already registred.")::</p>
|
||||
<a href="/member/import">::_("Try again")::</a>
|
||||
</div>
|
||||
|
||||
::end::
|
||||
</div>
|
||||
|
||||
|
||||
::elseif step==3::
|
||||
::if numImported>0::
|
||||
|
||||
<div class="alert alert-success">
|
||||
<b>::raw __("Congratulations ! You just imported <b>::numImported::</b> users in your group.",{numImported:numImported})::</b>
|
||||
</div>
|
||||
<p>
|
||||
::raw _("You may now consider <a href='/member/?select=newusers'>inviting them</a> to log into Cagette.net")::
|
||||
</p>
|
||||
::else::
|
||||
<p>::_("You did'nt import anything in your database because your file was empty, or contained already registred users")::</p>
|
||||
::end::
|
||||
<a href="/member/">::_("Go back to the main page")::</a>
|
||||
|
||||
|
||||
::end::
|
||||
|
||||
</div>
|
||||
|
||||
<div class="block">
|
||||
<h3>::_("Help")::</h3>
|
||||
::raw _("Here you can import a large amount of members in your database from a simple Excel or Libre Office file.<br/><ul><li>The first step is to <a href=\"/adherents.xls\">download this demo file.</a></li><li>Fill out the table, of modify your existing file to striclty match the columns order.</li><li>Once your file is completed, click on \"save as\" in your spreadsheet software, and select \"CSV\" format</li><li>Select the following options : separator : <b>coma</b> or <b>dot-coma</b>, encoding : <b>Unicode UTF-8</b></li><li>Save the file</li><li>finally, click on \"select a file\" on this page and upload it.</li></ul>")::
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
::end::
|
||||
@@ -0,0 +1,30 @@
|
||||
<table class="table table-striped">
|
||||
<tr>
|
||||
<th>::_("Date")::</th>
|
||||
<th>::_("Subject")::</th>
|
||||
<th>::_("Status")::</th>
|
||||
</tr>
|
||||
|
||||
::foreach m emails::
|
||||
|
||||
::if m.failure!=null::
|
||||
::set class = "danger"::
|
||||
::else::
|
||||
::set class = "success"::
|
||||
::end::
|
||||
|
||||
<tr class="::class::">
|
||||
<td>::hDate(m.date)::</td>
|
||||
<td>::m.subject::</td>
|
||||
<td>
|
||||
::if m.failure!=null::
|
||||
<span class="glyphicon glyphicon-exclamation-sign"></span> ::m.failure::
|
||||
::else::
|
||||
<span class="glyphicon glyphicon-ok"></span> ::m.success::
|
||||
::end::
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
::end::</table>
|
||||
@@ -0,0 +1,121 @@
|
||||
::use 'design.mtt'::
|
||||
|
||||
<div class="col-md-3">
|
||||
<h2>::_("Contact informations")::</h2>
|
||||
<div class="article">
|
||||
|
||||
<div style="font-weight:bold;font-size:120%;">::member.firstName:: ::member.lastName::
|
||||
::if member.firstName2!=null && member.lastName2!=null::
|
||||
& ::member.firstName2:: ::member.lastName2::
|
||||
|
||||
::end::</div>
|
||||
|
||||
$$nullSafe(::member.address1::)<br/>
|
||||
$$nullSafe(::member.address2::)<br/>
|
||||
$$nullSafe(::member.zipCode::)
|
||||
$$nullSafe(::member.city::)<br/>
|
||||
<br/>
|
||||
|
||||
::if member.phone!=null::
|
||||
::_("Phone"):: : ::member.phone::<br/>
|
||||
::end::
|
||||
|
||||
::if member.email!=null::
|
||||
::_("Email"):: : <a href="mailto: ::member.email::">::member.email::</a><br/>
|
||||
::end::
|
||||
|
||||
::if member.email2!=null::
|
||||
::_("Email"):: : <a href="mailto: ::member.email2::">::member.email2::</a><br/>
|
||||
::end::
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
<h2>::_("Payments")::</h2>
|
||||
<div class="article">
|
||||
<table class="table table-condensed">
|
||||
|
||||
<!-- total -->
|
||||
<tr style="font-size:1.3em;">
|
||||
<td colspan="2"></td>
|
||||
<td class="text-right">::_("Balance"):: :</td>
|
||||
::if balance<0::
|
||||
::set color = "C00"::
|
||||
::else::
|
||||
::set color = "0C0"::
|
||||
::end::
|
||||
<td style="color:#::color::;">
|
||||
::if balance<0::
|
||||
-
|
||||
::end::
|
||||
</td>
|
||||
<td style="color:#::color::;">
|
||||
::Math.abs(balance):: ::currency()::
|
||||
</td>
|
||||
<td colspan="2">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
::foreach t rb.current()::
|
||||
<tr>
|
||||
$$operation(::t::)
|
||||
<td>
|
||||
::if t.type==2::
|
||||
<div class="btn-group" role="group">
|
||||
$$edit(::_("Edit")::,/transaction/edit/::t.id::)
|
||||
$$delete(::_("Del.")::,/transaction/delete/::t.id::?token=::token::)
|
||||
</div>
|
||||
::elseif isAdmin::
|
||||
<a href="/transaction/delete/::t.id::?token=::token::" $$confirm(::_("Delete ?")::) class="btn btn-danger btn-sm" >
|
||||
<span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
|
||||
</a>
|
||||
::end::
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
::end::
|
||||
|
||||
<tr>
|
||||
<th colspan="6" class="text-center">
|
||||
<ul class="pagination">
|
||||
::if rb.paginationStartPage != 1::
|
||||
<li>
|
||||
<a href="?page=::rb.paginationStartPage-1::">
|
||||
<span class="glyphicon glyphicon-backward"></span>
|
||||
</a>
|
||||
</li>
|
||||
::end::
|
||||
::foreach i loopList(rb.paginationStartPage,rb.paginationEndPage)::
|
||||
::if rb.page==i::
|
||||
<li class="active" ><a href="?page=::i::">::i::</a></li>
|
||||
::else::
|
||||
<li><a href="?page=::i::">::i::</a></li>
|
||||
::end::
|
||||
::end::
|
||||
::if rb.paginationEndPage < rb.pages + 1::
|
||||
<li>
|
||||
<a href="?page=::rb.paginationEndPage::">
|
||||
<span class="glyphicon glyphicon-forward"></span>
|
||||
</a>
|
||||
</li>
|
||||
::end::
|
||||
</ul>
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
|
||||
$$insert(::_("Insert a payement")::,/transaction/insertPayment/::member.id::)
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
::end::
|
||||
@@ -0,0 +1,223 @@
|
||||
::use 'design.mtt'::
|
||||
|
||||
<div class="col-md-4">
|
||||
<h2>::_("Contact informations")::</h2>
|
||||
<div class="article">
|
||||
|
||||
<div style="font-weight:bold;font-size:120%;">
|
||||
::member.firstName:: ::member.lastName::
|
||||
|
||||
::if member.firstName2!=null && member.lastName2!=null::
|
||||
& ::member.firstName2:: ::member.lastName2::
|
||||
::end::
|
||||
</div>
|
||||
|
||||
$$nullSafe(::member.address1::)<br/>
|
||||
$$nullSafe(::member.address2::)<br/>
|
||||
$$nullSafe(::member.zipCode::)
|
||||
$$nullSafe(::member.city::)<br/>
|
||||
<br/>
|
||||
|
||||
::if member.phone!=null::
|
||||
::_("Téléphone"):: : ::member.phone::<br/>
|
||||
::end::
|
||||
|
||||
::if member.email!=null::
|
||||
::_("E-mail"):: : <a href="mailto: ::member.email::">::member.email::</a><br/>
|
||||
::end::
|
||||
|
||||
::if member.email2!=null::
|
||||
::_("E-mail"):: : <a href="mailto: ::member.email2::">::member.email2::</a><br/>
|
||||
::end::
|
||||
|
||||
<hr/>
|
||||
<p style="font-size:11px;">
|
||||
::_("Last login"):: :
|
||||
::if member.ldate!=null::
|
||||
::member.ldate.toString()::
|
||||
::else::
|
||||
<b>::_("This member never logged in")::</b>
|
||||
::end::
|
||||
<br/>
|
||||
::_("Registred since"):: :
|
||||
::if member.cdate!=null::
|
||||
::member.cdate.toString()::
|
||||
::else::
|
||||
???
|
||||
::end::
|
||||
<br/>
|
||||
::if member.pass==""::
|
||||
<div class="alert alert-danger">::_("This member has not set a password"):: </div>
|
||||
::end::
|
||||
</p>
|
||||
<p>
|
||||
$$edit(::_("Edit")::,/member/edit/::member.id::)
|
||||
$$delete(::_("Remove from group")::,/member/delete/::member.id::?token=::token::)
|
||||
<a href="/member/movetowl/::member.id::" class="btn btn-default btn-sm">::_("Put on waiting list")::</a>
|
||||
|
||||
<a onclick="_.overlay('/member/lastMessages/::member.id::','Message reçus')" class="btn btn-default btn-sm">
|
||||
<span class="glyphicon glyphicon-envelope" aria-hidden="true"></span>
|
||||
::_("Received messages")::</a>
|
||||
|
||||
::if !member.isFullyRegistred()::
|
||||
<a href="/member/inviteMember/::member.id::?token=::token::" class="btn btn-default btn-sm">
|
||||
<span class="glyphicon glyphicon-envelope" aria-hidden="true"></span>
|
||||
::_("Send an invitation")::</a>
|
||||
::end::
|
||||
</p>
|
||||
|
||||
<p ::cond canLoginAs::>
|
||||
<a href="/member/loginas/::member.id::/::userAmap._amap.id::" class="btn btn-danger btn-xs">::_("Log in as this member")::</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
::if user._amap.hasMembership()::
|
||||
<h2>::_("Membership fee")::</h2>
|
||||
<div class="article">
|
||||
::if userAmap.hasValidMembership()::
|
||||
$$bool(true) ::_("Membership up to date")::
|
||||
::else::
|
||||
$$bool(false) ::_("Membership to renew")::
|
||||
::end::
|
||||
::_("for the period||full sentence : Membership up to date for the period 2017-2018"):: <b>::user._amap.getPeriodName(null)::</b>
|
||||
<br/>
|
||||
<a href="/membership/::member.id::" class="btn btn-default btn-sm">::_("Manage membership fees")::</a>
|
||||
|
||||
</div>
|
||||
::end::
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-8">
|
||||
<h2>::_("Current orders")::</h2>
|
||||
<div class="article">
|
||||
::set o = userContracts::
|
||||
::if o.constOrders.length>0::
|
||||
<h4>::_("CSA contracts")::</h4>
|
||||
<table class="table table-bordered table-condensed" >
|
||||
<tr>
|
||||
<th>::_("Qty||short version for quantity")::</th>
|
||||
<th>::_("Product")::</th>
|
||||
<th>::_("Price")::</th>
|
||||
<th>::_("Contract")::</th>
|
||||
</tr>
|
||||
::foreach p o.constOrders::
|
||||
<tr>
|
||||
<td>::raw p.smartQt::</td>
|
||||
<td>::p.productName::
|
||||
|
||||
::if p.userId2 != null::
|
||||
<br /><span class="glyphicon glyphicon-refresh"></span> ::_("Order alternated with")::
|
||||
::if member.id == p.userId::
|
||||
<a href="/member/view/::p.userId2::">::p.userName2::</a>
|
||||
::else::
|
||||
<a href="/member/view/::p.userId::">::p.userName::</a>
|
||||
::end::
|
||||
::end::
|
||||
|
||||
</td>
|
||||
<td>::p.subTotal:: ::currency()::</td>
|
||||
<td>
|
||||
<a href="/contract/view/::p.contractId::">::p.contractName::</a>
|
||||
</td>
|
||||
</tr>
|
||||
::end::
|
||||
</table>
|
||||
::end::
|
||||
|
||||
::if count(o.varOrders)>0::
|
||||
::foreach d o.varOrders.keys()::
|
||||
<h4>::__("Order for ::date::",{date:d})::</h4>
|
||||
|
||||
<table class="table table-bordered table-condensed" >
|
||||
<tr>
|
||||
<th>::_("Qty||short version for quantity")::</th>
|
||||
<th>::_("Product")::</th>
|
||||
<th><a href="#" data-toggle="tooltip" data-placement="top" title="::_('Unit price including taxes')::">::_("U.P||short version of unit price")::</a></th>
|
||||
<th>::_("Sub-total")::</th>
|
||||
<th>::_("Fees")::</th>
|
||||
<th>::_("Total")::</th>
|
||||
<th>::_("Contract")::</th>
|
||||
|
||||
</tr>
|
||||
::set total = 0::
|
||||
::foreach p o.varOrders.get(d)::
|
||||
<tr>
|
||||
<td>::raw p.smartQt::</td>
|
||||
<td>::p.productName::</td>
|
||||
<td>::p.productPrice:: ::currency()::</td>
|
||||
<td>::p.subTotal:: ::currency()::</td>
|
||||
<td>
|
||||
<!-- frais -->
|
||||
::if p.percentageValue!=null::
|
||||
<a href="#" data-toggle="tooltip" data-placement="top" title="::p.percentageName:: : ::p.percentageValue:: %">
|
||||
::formatNum(p.fees):: ::currency()::
|
||||
</a>
|
||||
::end::
|
||||
</td>
|
||||
<td>
|
||||
<!-- total -->
|
||||
::formatNum(p.total):: ::currency()::
|
||||
::set total = total + p.total::
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<a href="/contract/view/::p.contractId::">::p.contractName::</a>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
::end::
|
||||
<tr>
|
||||
<td colspan="4"></td>
|
||||
<td>::_("TOTAL")::</td>
|
||||
<td><b>::formatNum(total):: ::currency()::</b></td>
|
||||
</tr>
|
||||
</table>
|
||||
::end::
|
||||
::end::
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div ::cond user.getAmap().hasPayments():: class="col-md-8">
|
||||
<div class="article">
|
||||
|
||||
<span style="font-size:1.3em;">
|
||||
::_("Balance"):: :
|
||||
::if userAmap.balance<0::
|
||||
::set color = "C00"::
|
||||
::else::
|
||||
::set color = "0C0"::
|
||||
::end::
|
||||
<span style="color:#::color::;">
|
||||
::userAmap.balance:: ::currency()::
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span style="margin-left:30px;">
|
||||
<a href="/member/payments/::member.id::" class="btn btn-default btn-small">
|
||||
<i class="fa fa-credit-card" aria-hidden="true"></i>
|
||||
::_("Payments details")::
|
||||
</a>
|
||||
</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-md-4" ::cond userAmap.rights!=null && userAmap._rights!=null::>
|
||||
<h3>::_("Rights")::</h3>
|
||||
<div class="article">
|
||||
<ul>
|
||||
::foreach r userAmap._rights::
|
||||
<li>::userAmap.getRightName(r)::</li>
|
||||
::end::
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
::end::
|
||||
@@ -0,0 +1,47 @@
|
||||
::use 'design.mtt'::
|
||||
<div class="col-md-12">
|
||||
<div class="article">
|
||||
|
||||
<h2>::_("Waiting list")::</h2>
|
||||
|
||||
<table class="table">
|
||||
|
||||
<tr>
|
||||
<th>::_("Name")::</th>
|
||||
<th>::_("Email")::</th>
|
||||
<th>::_("Phone")::</th>
|
||||
<th>::_("Registration date")::</th>
|
||||
<th>::_("Message")::</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
|
||||
::foreach w waitingList::
|
||||
<tr>
|
||||
::set u = w._user::
|
||||
|
||||
<td>::u.getName()::</td>
|
||||
<td>::u.email::</td>
|
||||
<td>$$nullSafe(::u.phone::)</td>
|
||||
<td>::hDate(w.date)::</td>
|
||||
<td>"::w.message::"</td>
|
||||
<td class="col-md-4">
|
||||
<a href="/member/waiting?add=::u.id::" class="btn btn-primary btn-sm">
|
||||
<span class="glyphicon glyphicon-ok"></span>
|
||||
::_("Accept membership request")::
|
||||
</a>
|
||||
|
||||
<a href="/member/waiting?remove=::u.id::" class="btn btn-default btn-sm">
|
||||
<span class="glyphicon glyphicon-remove"></span>
|
||||
::_("Deny request")::</a>
|
||||
</td>
|
||||
</tr>
|
||||
::end::
|
||||
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
::end::
|
||||
Reference in New Issue
Block a user