remote deprecated customer module
This commit is contained in:
parent
5484bd3cb7
commit
f5e82b4ecc
@ -1,129 +0,0 @@
|
|||||||
package de.hsadmin.mods.cust;
|
|
||||||
|
|
||||||
import static javax.persistence.FetchType.EAGER;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import javax.persistence.Column;
|
|
||||||
import javax.persistence.Entity;
|
|
||||||
import javax.persistence.EntityManager;
|
|
||||||
import javax.persistence.GeneratedValue;
|
|
||||||
import javax.persistence.GenerationType;
|
|
||||||
import javax.persistence.Id;
|
|
||||||
import javax.persistence.JoinColumn;
|
|
||||||
import javax.persistence.OneToOne;
|
|
||||||
import javax.persistence.Table;
|
|
||||||
|
|
||||||
import de.hsadmin.core.model.AbstractEntity;
|
|
||||||
import de.hsadmin.mods.user.UnixUser;
|
|
||||||
|
|
||||||
@Entity(name = "BankAccounts")
|
|
||||||
@Table(name = "bank_account")
|
|
||||||
public class BankAccount extends AbstractEntity implements Serializable {
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 2965368183976686458L;
|
|
||||||
|
|
||||||
@Id
|
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
||||||
@Column(name = "bank_account_id", columnDefinition = "integer")
|
|
||||||
private long id;
|
|
||||||
|
|
||||||
@JoinColumn(name = "bp_id", columnDefinition = "integer")
|
|
||||||
@OneToOne(fetch = EAGER)
|
|
||||||
private Customer customer;
|
|
||||||
|
|
||||||
@Column(name = "bank_customer", columnDefinition = "character varying(50)")
|
|
||||||
private String bankCustomer;
|
|
||||||
|
|
||||||
@Column(name = "bank_iban", columnDefinition = "character varying(30)")
|
|
||||||
private String bankIBAN;
|
|
||||||
|
|
||||||
@Column(name = "bank_bic", columnDefinition = "character varying(15)")
|
|
||||||
private String bankBIC;
|
|
||||||
|
|
||||||
@Column(name = "mandat_ref", columnDefinition = "character varying(10)")
|
|
||||||
private String mandatRef;
|
|
||||||
|
|
||||||
@Column(name = "bank_name", columnDefinition = "character varying(50)")
|
|
||||||
private String bankName;
|
|
||||||
|
|
||||||
public static String createQueryFromStringKey(String humanKey) {
|
|
||||||
return "customer.name = " + humanKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String createStringKey() {
|
|
||||||
return getCustomer().getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long id() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public long getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(long id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Customer getCustomer() {
|
|
||||||
return customer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCustomer(Customer customer) {
|
|
||||||
this.customer = customer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBankCustomer() {
|
|
||||||
return bankCustomer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBankCustomer(String bankCustomer) {
|
|
||||||
this.bankCustomer = bankCustomer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBankName() {
|
|
||||||
return bankName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBankName(String bankName) {
|
|
||||||
this.bankName = bankName;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isNew() {
|
|
||||||
return id == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public UnixUser owningUser(EntityManager em) {
|
|
||||||
return customer.owningUser(em);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBankIBAN() {
|
|
||||||
return bankIBAN;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBankIBAN(String bankIBAN) {
|
|
||||||
this.bankIBAN = bankIBAN;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBankBIC() {
|
|
||||||
return bankBIC;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBankBIC(String bankBIC) {
|
|
||||||
this.bankBIC = bankBIC;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMandatRef() {
|
|
||||||
return mandatRef;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMandatRef(String mandatRef) {
|
|
||||||
this.mandatRef = mandatRef;
|
|
||||||
}
|
|
||||||
}
|
|
@ -31,7 +31,6 @@ import de.hsadmin.mods.user.UnixUser;
|
|||||||
|
|
||||||
@Entity(name = "Customers")
|
@Entity(name = "Customers")
|
||||||
@Table(name = "business_partner")
|
@Table(name = "business_partner")
|
||||||
@AnnModuleImpl(de.hsadmin.mods.cust.CustomerModuleImpl.class)
|
|
||||||
public class Customer extends AbstractEntity implements Serializable {
|
public class Customer extends AbstractEntity implements Serializable {
|
||||||
|
|
||||||
private static final long serialVersionUID = -7450594652238392616L;
|
private static final long serialVersionUID = -7450594652238392616L;
|
||||||
|
@ -1,147 +0,0 @@
|
|||||||
package de.hsadmin.mods.cust;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import de.hsadmin.core.model.AbstractEntity;
|
|
||||||
import de.hsadmin.core.model.AbstractModuleImpl;
|
|
||||||
import de.hsadmin.core.model.AuthorisationException;
|
|
||||||
import de.hsadmin.core.model.GenericModuleImpl;
|
|
||||||
import de.hsadmin.core.model.HSAdminException;
|
|
||||||
import de.hsadmin.core.model.Transaction;
|
|
||||||
import de.hsadmin.core.util.TextUtil;
|
|
||||||
import de.hsadmin.mods.dom.Domain;
|
|
||||||
import de.hsadmin.mods.email.EMailAddress;
|
|
||||||
import de.hsadmin.mods.email.EMailAlias;
|
|
||||||
import de.hsadmin.mods.pac.Pac;
|
|
||||||
import de.hsadmin.mods.user.UnixUser;
|
|
||||||
|
|
||||||
public class CustomerModuleImpl extends AbstractModuleImpl {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public AbstractEntity add(AbstractEntity newEntity) throws HSAdminException {
|
|
||||||
Transaction transaction = getTransaction();
|
|
||||||
if (!transaction.getLoginUser().hasHostmasterRole()) {
|
|
||||||
throw new AuthorisationException(transaction.getLoginUser(), "add", newEntity);
|
|
||||||
}
|
|
||||||
Customer newCustomer = (Customer) newEntity;
|
|
||||||
assertNotNull("membercode", newCustomer.getName());
|
|
||||||
assertValidMemberCode("membercode", newCustomer.getName());
|
|
||||||
assertNotNull("password", newCustomer.getPassword());
|
|
||||||
Contact contact = newCustomer.getContacts().iterator().next();
|
|
||||||
assertNotNull("contact_lastname", contact.getLastName());
|
|
||||||
assertNotNull("contact_email", contact.getEmail());
|
|
||||||
String custComment = contact.getLastName();
|
|
||||||
if (contact.getFirstName() != null && contact.getFirstName().length() > 0) {
|
|
||||||
custComment = contact.getFirstName() + " " + contact.getLastName();
|
|
||||||
}
|
|
||||||
// BankAccount bankAccount = newCustomer.getBankAccount();
|
|
||||||
// if (bankAccount == null) {
|
|
||||||
// bankAccount = new BankAccount();
|
|
||||||
// bankAccount.setCustomer(newCustomer);
|
|
||||||
// newCustomer.setBankAccount(bankAccount);
|
|
||||||
// }
|
|
||||||
GenericModuleImpl helperModule = new GenericModuleImpl(getTransaction());
|
|
||||||
|
|
||||||
UnixUser custAccount = new UnixUser();
|
|
||||||
custAccount.setComment(TextUtil.replaceUmlautCharacters(custComment));
|
|
||||||
custAccount.setName(newCustomer.getName());
|
|
||||||
custAccount.setPassword(newCustomer.getPassword());
|
|
||||||
custAccount.setShell("/usr/bin/passwd");
|
|
||||||
custAccount.setQuotaSoftlimit(8);
|
|
||||||
custAccount.setQuotaHardlimit(12);
|
|
||||||
helperModule.add(custAccount);
|
|
||||||
|
|
||||||
EMailAlias custAlias = new EMailAlias();
|
|
||||||
custAlias.setName(newCustomer.getName());
|
|
||||||
custAlias.setTarget(contact.getEmail());
|
|
||||||
helperModule.add(custAlias);
|
|
||||||
|
|
||||||
String memberCode = newCustomer.getName();
|
|
||||||
EMailAddress custEMail1 = new EMailAddress();
|
|
||||||
custEMail1.setLocalpart(memberCode.substring(6));
|
|
||||||
Domain dom = (Domain) helperModule.findByString(Domain.class, "hostsharing.net");
|
|
||||||
custEMail1.setDomain(dom);
|
|
||||||
custEMail1.setTarget(memberCode);
|
|
||||||
helperModule.add(custEMail1);
|
|
||||||
|
|
||||||
if (contact.getFirstName() != null && contact.getFirstName().length() > 0) {
|
|
||||||
custComment = TextUtil.replaceUmlautCharacters(contact.getFirstName().toLowerCase())
|
|
||||||
+ "." + TextUtil.replaceUmlautCharacters(contact.getLastName().toLowerCase());
|
|
||||||
EMailAddress custEMail2 = new EMailAddress();
|
|
||||||
custEMail2.setLocalpart(custComment.replace(' ', '-'));
|
|
||||||
custEMail2.setDomain(dom);
|
|
||||||
custEMail2.setTarget(memberCode);
|
|
||||||
helperModule.add(custEMail2);
|
|
||||||
}
|
|
||||||
|
|
||||||
return super.add(newEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<AbstractEntity> search(
|
|
||||||
Class<? extends AbstractEntity> entityClass, String condition,
|
|
||||||
String orderBy) throws HSAdminException {
|
|
||||||
return super.search(entityClass, condition, orderBy);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public AbstractEntity update(AbstractEntity existingEntity)
|
|
||||||
throws HSAdminException {
|
|
||||||
Transaction transaction = getTransaction();
|
|
||||||
if (!transaction.getLoginUser().hasHostmasterRole()) {
|
|
||||||
throw new AuthorisationException(transaction.getLoginUser(), "update", existingEntity);
|
|
||||||
}
|
|
||||||
return super.update(existingEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void delete(AbstractEntity existingEntity) throws HSAdminException {
|
|
||||||
Transaction transaction = getTransaction();
|
|
||||||
if (!transaction.getLoginUser().hasHostmasterRole()) {
|
|
||||||
throw new AuthorisationException(transaction.getLoginUser(), "delete", existingEntity);
|
|
||||||
}
|
|
||||||
Customer cust = (Customer) existingEntity;
|
|
||||||
|
|
||||||
// Pruefe, ob geloescht werden kann..
|
|
||||||
// member_until < heute (nicht mehr Mitglied) oder member_since leer (nie Mitglied geworden)
|
|
||||||
Date memberSince = cust.getMemberSince();
|
|
||||||
Date memberUntil = cust.getMemberUntil();
|
|
||||||
if (memberSince != null) {
|
|
||||||
if (memberUntil == null || memberUntil.after(new Date())) {
|
|
||||||
throw new AuthorisationException(transaction.getLoginUser(), "delete", existingEntity);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// keine Pakete mehr!
|
|
||||||
Set<Pac> pacs = cust.getPacs();
|
|
||||||
if (pacs != null && pacs.size() > 0) {
|
|
||||||
throw new AuthorisationException(transaction.getLoginUser(), "delete", existingEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
GenericModuleImpl helper = new GenericModuleImpl(getTransaction());
|
|
||||||
AbstractEntity custAccount = helper.findByString(UnixUser.class, cust.getName());
|
|
||||||
helper.delete(custAccount);
|
|
||||||
AbstractEntity custAlias = helper.findByString(EMailAlias.class, cust.getName());
|
|
||||||
helper.delete(custAlias);
|
|
||||||
List<AbstractEntity> custEMailsList = helper.search(EMailAddress.class, "target='" + cust.getName() + "'", null);
|
|
||||||
for (AbstractEntity email : custEMailsList) {
|
|
||||||
helper.delete(email);
|
|
||||||
}
|
|
||||||
super.delete(existingEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void assertNotNull(String name, String value) throws HSAdminException {
|
|
||||||
if (value == null || value.length() < 1) {
|
|
||||||
throw new HSAdminException("field '" + name + "' is mandatory");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void assertValidMemberCode(String name, String value) throws HSAdminException {
|
|
||||||
if (value == null || value.length() != 9 || !value.startsWith("hsh00-")) {
|
|
||||||
throw new HSAdminException("field '" + name + "' has to be like 'hsh00-xyz'");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user