Skip to content

Commit

Permalink
Merge pull request #369 from georchestra/issue-348
Browse files Browse the repository at this point in the history
Issue 348 - Evolution for Majic 2017
  • Loading branch information
pierrejego committed Nov 17, 2017
2 parents 453be77 + af2c690 commit bd736a2
Show file tree
Hide file tree
Showing 19 changed files with 518 additions and 147 deletions.
15 changes: 15 additions & 0 deletions addons/cadastrapp/css/cadastrapp.css
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,20 @@
margin:5px 2px;
}

.profDetails{
text-align: right;
}

.profDetailsLabel{
float: left;
padding-right: 15px;
}

.profCategorie{
width: 25em;
padding-bottom: 5px;
}

.add-button {
background-image: url(../img/famfamfam/add.png)
}
Expand Down Expand Up @@ -104,3 +118,4 @@
overflow: auto;
}


13 changes: 11 additions & 2 deletions addons/cadastrapp/js/habitationDetails.js
Original file line number Diff line number Diff line change
Expand Up @@ -127,9 +127,18 @@ GEOR.Addons.Cadastre.showHabitationDetails = function(batiment, niveau, porte, a
GEOR.Addons.Cadastre.createArcticle50Panel = function(article50Details) {

if(article50Details){

var details50 = '<div class=\'profCategorie\'>' +article50Details.ccocac_lib + '</div>';
details50 = details50 + '<div class=\'profDetails\'><span class=\'profDetailsLabel\'>Surface pondérée </span>' + article50Details.dsupot + ' m²</div>';
details50 = details50 + '<div class=\'profDetails\'><span class=\'profDetailsLabel\'>Surface des parties principales </span>' + article50Details.dsup1 + ' m²</div>';
details50 = details50 + '<div class=\'profDetails\'><span class=\'profDetailsLabel\'>Surface des parties secondaires couvertes </span>' + article50Details.dsup2 + ' m²</div>';
details50 = details50 + '<div class=\'profDetails\'><span class=\'profDetailsLabel\'>Surface des parties secondaires non couvertes </span>' + article50Details.dsup3 + ' m²</div>';
details50 = details50 + '<div class=\'profDetails\'><span class=\'profDetailsLabel\'>Surface des stationnements couverts </span>' + article50Details.dsupk1 + ' m²</div>';
details50 = details50 + '<div class=\'profDetails\'><span class=\'profDetailsLabel\'>Surface des stationnements non couverts </span>' + article50Details.dsupk2 + ' m²</div>';

return new Ext.Panel({
title: 'Partie professionelle ' + article50Details.dnudes,
html:'<div>Surface réelle ' + article50Details.vsurzt + ' m²</div>',
title: 'Partie professionelle - ' + article50Details.ccocac,
html: details50,
layout: 'fit'
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ public class Imposition {
private float departementRevenuImposable;

private float groupementCommuneRevenuImposable;

private float tseRevenuImposable;

/**
* @return the revenuImposable
Expand Down Expand Up @@ -125,5 +127,19 @@ public void setGroupementCommuneRevenuImposable(float groupementCommuneRevenuImp
this.groupementCommuneRevenuImposable = groupementCommuneRevenuImposable;
}

/**
* @return the revenuImposable
*/
public float getTseRevenuImposable() {
return tseRevenuImposable;
}

@XmlAttribute
/**
* @param revenuImposable the revenuImposable to set
*/
public void setTseRevenuImposable(float tseRevenuImposable) {
this.tseRevenuImposable = tseRevenuImposable;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ public class ProprieteBatie extends Propriete{
// Nature du local
private String cconlc;

// Nature du local professionel
private String ccocac;

// Catégorie
private String dcapec;

Expand All @@ -44,6 +47,9 @@ public class ProprieteBatie extends Propriete{

// Liste de lots
private List<Lot> lots;

// Imposition
private Imposition imposition;

/**
* @return the dnubat
Expand Down Expand Up @@ -164,6 +170,21 @@ public String getCconlc() {
public void setCconlc(String cconlc) {
this.cconlc = cconlc;
}

/**
* @return the cconlc
*/
public String getCcocac() {
return ccocac;
}

@XmlAttribute
/**
* @param cconlc the cconlc to set
*/
public void setCcocac(String ccocac) {
this.ccocac = ccocac;
}

/**
* @return the dcapec
Expand Down Expand Up @@ -209,6 +230,21 @@ public String getGtauom() {
public void setGtauom(String gtauom) {
this.gtauom = gtauom;
}

/**
* @return the imposition
*/
public Imposition getImposition() {
return imposition;
}

@XmlElement(name = "imposition")
/**
* @param imposition the imposition to set
*/
public void setImposition(Imposition imposition) {
this.imposition = imposition;
}

/**
* @return the lots
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,17 @@
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;


/**
* HabitationController
*
* Used to get article 40, 50 and 60 informations from cadastrapp database
*
* @author pierre
*
*/
public class HabitationController extends CadController {

final static Logger logger = LoggerFactory.getLogger(HabitationController.class);
static final Logger logger = LoggerFactory.getLogger(HabitationController.class);


@GET
Expand All @@ -29,11 +36,13 @@ public class HabitationController extends CadController {
/**
* Returns information about habitation
*
* @param headers http headers used
* @param annee
* @param invar id habitation
* @param headers HttpHeaders http headers used
* information will only be return if user is CNIL2
* @param annee String corresponding to year of wanted information (normally only current year available)
* @param invar String id habitation
*
* @return JSON list
* @return Map<String, Object> containing informations from article 40 50 and 60,
* empty list if missing input parameter or if user doesn't have privilege
*/
public Map<String, Object> getHabitationDetails(@Context HttpHeaders headers,
@QueryParam("annee") String annee,
Expand All @@ -60,9 +69,10 @@ else if(annee != null && invar != null)
}

/**
* getArticle40Details
*
* @param queryParams
* @return
* @param queryParams List composed with year and invar information
* @return List<Map<String, Object>>
*/
private List<Map<String, Object>> getArticle40Details(List<String> queryParams){

Expand All @@ -88,9 +98,10 @@ private List<Map<String, Object>> getArticle40Details(List<String> queryParams){
}

/**
* getArticle50Details
*
* @param queryParams
* @return
* @param ueryParams List composed with year and invar information
* @return List<Map<String, Object>>
*/
private List<Map<String, Object>> getArticle50Details(List<String> queryParams){

Expand All @@ -99,21 +110,24 @@ private List<Map<String, Object>> getArticle50Details(List<String> queryParams){
StringBuilder queryBuilder = new StringBuilder();

// CNIL Niveau 2
queryBuilder.append("select pro.dnudes, pro.vsurzt");
queryBuilder.append("select pro.dnudes, pro.vsurzt, pro.dsupot, pro.dsup1, pro.dsup2, pro.dsup3, pro.dsupk1, pro.dsupk2, pro.ccocac, cco.ccocac_lib");
queryBuilder.append(" from ");
queryBuilder.append(databaseSchema);
queryBuilder.append(".descproffessionnel pro ");
queryBuilder.append(" where pro.annee = ? and pro.invar = ? ;");
queryBuilder.append(".descproffessionnel pro , ");
queryBuilder.append(databaseSchema);
queryBuilder.append(".prop_ccocac cco");
queryBuilder.append(" where pro.annee = ? and pro.invar = ? and pro.ccocac=cco.ccocac;");

JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

return jdbcTemplate.queryForList(queryBuilder.toString(), queryParams.toArray());
}

/**
* getArticle60Details
*
* @param queryParams
* @return
* @param queryParams List composed with year and invar information
* @return List<Map<String, Object>>
*/
private List<Map<String, Object>> getArticle60Details(List<String> queryParams){

Expand All @@ -134,7 +148,6 @@ private List<Map<String, Object>> getArticle60Details(List<String> queryParams){
queryBuilder.append(" where dep.annee = ? and dep.invar = ? ");
queryBuilder.append(" and dep.dmatgm = mur.code and dep.dmatto = toit.code ;");


JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

return jdbcTemplate.queryForList(queryBuilder.toString(), queryParams.toArray());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ private CadastrappConstants() {
public static final String PB_CODE_EVAL = "ccoeva";
public static final String PB_AFFECTATION_PEV = "ccoaff";
public static final String PB_NATURE_LOCAL = "cconlc";
public static final String PB_NATURE_LOCAL_PRO = "ccocac";
public static final String PB_CATEGORIE = "dcapec";
public static final String PB_VAL_LOCAT_TOTAL = "revcad";
public static final String PB_CODE_COLL_EXO = "ccolloc";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,7 @@

public class ReleveProprieteController extends CadController {

final static Logger logger = LoggerFactory.getLogger(ReleveProprieteController.class);

final String xslTemplate = "xsl/relevePropriete.xsl";
final String xslTemplateMinimal = "xsl/releveProprieteMinimal.xsl";
static final Logger logger = LoggerFactory.getLogger(ReleveProprieteController.class);

@Autowired
ReleveProprieteHelper releveProprieteHelper;
Expand Down Expand Up @@ -54,7 +51,6 @@ public Response createRelevePDFPropriete(@Context HttpHeaders headers, @QueryPar
comptesCommunaux = Arrays.asList(comptesCommunaux.get(0).split(","));
}
// Get information about releve de propriete
//RelevePropriete relevePropriete = getReleveProprieteInformation(comptesCommunaux, headers);
RelevePropriete relevePropriete = releveProprieteHelper.getReleveProprieteInformation(comptesCommunaux, headers, idParcelle);

File pdfResult = releveProprieteHelper.generatePDF(relevePropriete, false, false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,18 @@ public final class ReleveProprieteHelper extends CadController {

static final Logger logger = LoggerFactory.getLogger(ReleveProprieteHelper.class);

static final String xslTemplate = "xsl/relevePropriete.xsl";
static final String xslTemplateMinimal = "xsl/releveProprieteMinimal.xsl";
static final String xslTemplateError = "xsl/releveProprieteError.xsl";
static final String XSL_TEMPLATE = "xsl/relevePropriete.xsl";
static final String XSL_TEMPLATE_MINIMAL = "xsl/releveProprieteMinimal.xsl";
static final String XSL_TEMPLATE_ERROR = "xsl/releveProprieteError.xsl";

/**
* Get propertie information using given imput from database
*
* @param idComptesCommunaux
* @param headers
* @return
* @param idComptesCommunaux List<String> composed with comptecommunalid
* @param headers HttpHeaders used to verify user privilege
* @param idParcelle String plot id
*
* @return RelevePropriete fill with database information
*/
public RelevePropriete getReleveProprieteInformation(List<String> idComptesCommunaux, HttpHeaders headers, String idParcelle) {

Expand Down Expand Up @@ -202,7 +205,7 @@ public RelevePropriete getReleveProprieteInformation(List<String> idComptesCommu

StringBuilder queryBuilderProprieteBatie = new StringBuilder();

queryBuilderProprieteBatie.append("select distinct id_local, ccopre, ccosec, dnupla, COALESCE(natvoi,'')||' '||COALESCE(dvoilib,'') as voie, ccoriv, dnubat, descr, dniv, dpor, invar, ccoaff, ccoeva, cconlc, dcapec, ccolloc, gnextl, jandeb, janimp, gtauom, pexb, rcexba2, rcbaia_com, rcbaia_dep, rcbaia_gp, revcad, jdatat, parcelle ");
queryBuilderProprieteBatie.append("select distinct id_local, ccopre, ccosec, dnupla, COALESCE(natvoi,'')||' '||COALESCE(dvoilib,'') as voie, ccoriv, dnubat, descr, dniv, dpor, invar, ccoaff, ccoeva, cconlc, dcapec, ccolloc, gnextl, jandeb, janimp, gtauom, pexb, rcexba2, rcbaia_com, rcbaia_dep, rcbaia_gp, rcbaia_tse, revcad, jdatat, parcelle, ccocac ");
queryBuilderProprieteBatie.append("from ");
queryBuilderProprieteBatie.append(databaseSchema);
queryBuilderProprieteBatie.append(".proprietebatie pb ");
Expand Down Expand Up @@ -259,10 +262,11 @@ public RelevePropriete getReleveProprieteInformation(List<String> idComptesCommu
proprieteBatie.setCcoaff((String) propBat.get(CadastrappConstants.PB_AFFECTATION_PEV)); //AF
proprieteBatie.setCcoeva((String) propBat.get(CadastrappConstants.PB_CODE_EVAL)); //M EVAL
proprieteBatie.setCconlc((String) propBat.get(CadastrappConstants.PB_NATURE_LOCAL)); //NAT LOC
proprieteBatie.setCcocac((String) propBat.get(CadastrappConstants.PB_NATURE_LOCAL_PRO)); //NAT LOC PRO
proprieteBatie.setCcopre((String) propBat.get(CadastrappConstants.PREFIX_SECTION)); //N°SETCION part1
proprieteBatie.setCcoriv((String) propBat.get(CadastrappConstants.CODE_RIVOLI_VOIE)); //code rivoli
proprieteBatie.setCcosec((String) propBat.get(CadastrappConstants.LETTRE_SECTION)); //N°SETCION part2
proprieteBatie.setDcapec((String) propBat.get(CadastrappConstants.PB_CATEGORIE)); //Cat (PAS DANS LE REQUETTE)
proprieteBatie.setDcapec((String) propBat.get(CadastrappConstants.PB_CATEGORIE)); //Cat
proprieteBatie.setDescr((String) propBat.get(CadastrappConstants.PB_NUM_ENTREE)); //Ent
proprieteBatie.setDniv((String) propBat.get(CadastrappConstants.PB_NIV_ETAGE)); //Niv
proprieteBatie.setDnubat((String) propBat.get(CadastrappConstants.PB_LETTRE_BAT)); //Bat
Expand Down Expand Up @@ -312,10 +316,25 @@ public RelevePropriete getReleveProprieteInformation(List<String> idComptesCommu
// Count only one taxable income for one invar
if (!invarTICount.contains(proprieteId)) {
invarTICount.add(proprieteId);

float communeRevenuImposable = propBat.get("rcbaia_com") == null ? 0 : ((BigDecimal) propBat.get("rcbaia_com")).floatValue();
float groupementCommuneRevenuImposable = propBat.get("rcbaia_gp") == null ? 0 : ((BigDecimal) propBat.get("rcbaia_gp")).floatValue();
float departementRevenuImposable = propBat.get("rcbaia_dep") == null ? 0 : ((BigDecimal) propBat.get("rcbaia_dep")).floatValue();
float tseRevenuImposable = propBat.get("rcbaia_tse") == null ? 0 : ((BigDecimal) propBat.get("rcbaia_tse")).floatValue();

Imposition pbImposition = new Imposition();

pbImposition.setCommuneRevenuImposable(communeRevenuImposable);
pbImposition.setGroupementCommuneRevenuImposable(groupementCommuneRevenuImposable);
pbImposition.setDepartementRevenuImposable(departementRevenuImposable);
pbImposition.setTseRevenuImposable(tseRevenuImposable);

proprieteBatie.setImposition(pbImposition);

pbRevenuImposable = pbRevenuImposable + (propBat.get(CadastrappConstants.PB_VAL_LOCAT_TOTAL) == null ? 0 : ((BigDecimal) propBat.get(CadastrappConstants.PB_VAL_LOCAT_TOTAL)).floatValue());
pbCommuneRevenuImposable = pbCommuneRevenuImposable + (propBat.get("rcbaia_com") == null ? 0 : ((BigDecimal) propBat.get("rcbaia_com")).floatValue());
pbDepartementRevenuImposable = pbDepartementRevenuImposable + (propBat.get("rcbaia_dep") == null ? 0 : ((BigDecimal) propBat.get("rcbaia_dep")).floatValue());
pbGroupementCommuneRevenuImposable = pbGroupementCommuneRevenuImposable + (propBat.get("rcbaia_gp") == null ? 0 : ((BigDecimal) propBat.get("rcbaia_gp")).floatValue());
pbCommuneRevenuImposable = pbCommuneRevenuImposable + communeRevenuImposable;
pbDepartementRevenuImposable = pbDepartementRevenuImposable + departementRevenuImposable;
pbGroupementCommuneRevenuImposable = pbGroupementCommuneRevenuImposable + groupementCommuneRevenuImposable;
}

proprietesBaties.add(proprieteBatie);
Expand Down Expand Up @@ -447,7 +466,7 @@ public RelevePropriete getReleveProprieteInformation(List<String> idComptesCommu
int surface = (Integer) propNonBat.get(CadastrappConstants.PNB_CONTENANCE_CA) == null ? 0 : (Integer) propNonBat.get(CadastrappConstants.PNB_CONTENANCE_CA);
proprieteNonBatie.setDcntsf(surface);

float revenu = (propNonBat.get(CadastrappConstants.PNB_REVENU_CADASTRAL) == null ? 0 : ((BigDecimal) propNonBat.get(CadastrappConstants.PNB_REVENU_CADASTRAL)).floatValue());
float revenu = propNonBat.get(CadastrappConstants.PNB_REVENU_CADASTRAL) == null ? 0 : ((BigDecimal) propNonBat.get(CadastrappConstants.PNB_REVENU_CADASTRAL)).floatValue();
proprieteNonBatie.setDrcsuba(revenu);

pnbRevenuImposable = pnbRevenuImposable + revenu;
Expand Down Expand Up @@ -517,9 +536,9 @@ public File generatePDF(RelevePropriete rp, boolean isMinimal, boolean isNoData)
String template = null;

if (isNoData) {
template = xslTemplateError;
template = XSL_TEMPLATE_ERROR;
} else {
template = (isMinimal) ? xslTemplateMinimal : xslTemplate;
template = isMinimal ? XSL_TEMPLATE_MINIMAL : XSL_TEMPLATE;
}

// Pdf temporary filename using tmp folder and timestamp
Expand Down
Loading

0 comments on commit bd736a2

Please sign in to comment.