Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -477,7 +477,7 @@ public class ContabilImportService {
|
||||
" AND ctb_part.ser_doc = '/'\n" +
|
||||
" AND ctb_part.num_doc = 0";
|
||||
} else {
|
||||
whereCond = Query.format(" ctb_part.data_doc = %s\n AND ctb_part.num_doc = %s", dataDoc, stringNumDoc);
|
||||
whereCond = Query.format(" ctb_part.anno_part = %s\n AND ctb_part.num_doc = %s", UtilityDate.formatDate(dataDoc, "yyyy"), stringNumDoc);
|
||||
}
|
||||
|
||||
sql = UtilityDB.addwhereCond(sql, whereCond, false);
|
||||
@@ -485,69 +485,86 @@ public class ContabilImportService {
|
||||
ctbPart = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, CtbPart.class);
|
||||
if (ctbPart != null) {
|
||||
ctbPartList.add(ctbPart);
|
||||
} else if (!UtilityString.isNullOrEmpty(numeroPartita)) {
|
||||
String numProt = numeroPartita.substring(0, numeroPartita.indexOf("/")).trim();
|
||||
String serie = numeroPartita.substring(numeroPartita.indexOf("/") + 1).trim();
|
||||
|
||||
sql = Query.format("SELECT ctb_part.*\n" +
|
||||
"FROM ctb_part\n" +
|
||||
" INNER JOIN ctb_parr ON ctb_part.tipo_anag = ctb_parr.tipo_anag AND ctb_part.cod_anag = ctb_parr.cod_anag AND\n" +
|
||||
" ctb_part.anno_part = ctb_parr.anno_part AND ctb_part.ser_doc = ctb_parr.ser_doc AND\n" +
|
||||
" ctb_part.num_doc = ctb_parr.num_doc\n" +
|
||||
" INNER JOIN ctb_movt ON ctb_parr.num_cmov = ctb_movt.num_cmov and IsNUll(ctb_movt.num_prot, 0) <> 0\n" +
|
||||
"\t\t INNER JOIN gtb_anag ON ctb_part.cod_anag = gtb_anag.cod_anag\n" +
|
||||
"where gtb_anag.diacod = %s\n" +
|
||||
"and ctb_movt.num_prot = %s\n" +
|
||||
"and ctb_part.anno_part = %s\n" +
|
||||
"and ctb_part.ser_doc = %s",
|
||||
cacheCodAnag,
|
||||
numProt,
|
||||
UtilityDate.formatDate(dataDoc, "yyyy"),
|
||||
serie
|
||||
);
|
||||
|
||||
ctbPart = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, CtbPart.class);
|
||||
if (ctbPart != null) {
|
||||
ctbPartList.add(ctbPart);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (ctbPart != null) {
|
||||
CtbScad ctbScad = new CtbScad();
|
||||
ctbScad.setDataScad(dataScad);
|
||||
ctbScad.setDataPag(dataScad);
|
||||
ctbScad.setDescrizPag(pagamento);
|
||||
|
||||
BigDecimal impRata = UtilityString.isNullOrEmpty(importoRata) ? null : new BigDecimal(importoRata);
|
||||
BigDecimal impPagato = UtilityString.isNullOrEmpty(importoPagato) ? null : new BigDecimal(importoPagato);
|
||||
BigDecimal residuo = UtilityString.isNullOrEmpty(stringResiduo) ? null : new BigDecimal(stringResiduo);
|
||||
boolean impRataIsNegative = impRata != null && impRata.signum() < 0;
|
||||
boolean impPagatoIsNegative = impPagato != null && impPagato.signum() < 0;
|
||||
boolean residuoIsNegative = residuo != null && residuo.signum() < 0;
|
||||
BigDecimal positiveImpRata = impRataIsNegative ? impRata.multiply(new BigDecimal("-1")) : impRata;
|
||||
BigDecimal positiveImpPagato = impPagatoIsNegative ? impPagato.multiply(new BigDecimal("-1")) : impPagato;
|
||||
BigDecimal positiveResiduo = residuoIsNegative ? residuo.multiply(new BigDecimal("-1")) : residuo;
|
||||
|
||||
if (impPagato != null) {
|
||||
if (impPagato.equals(impRata)) {
|
||||
ctbScad.setImpDare(positiveImpRata);
|
||||
ctbScad.setImpAvere(positiveImpRata);
|
||||
} else {
|
||||
if (impRataIsNegative) {
|
||||
ctbScad.setImpDare(positiveImpPagato);
|
||||
ctbScad.setImpAvere(positiveImpRata);
|
||||
} else {
|
||||
ctbScad.setImpDare(positiveImpRata);
|
||||
ctbScad.setImpAvere(positiveImpPagato);
|
||||
}
|
||||
}
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(stringResiduo)) {
|
||||
CtbScad ctbScadResiduo = new CtbScad();
|
||||
ctbScadResiduo.setDataScad(dataScad);
|
||||
ctbScadResiduo.setDataPag(dataScad);
|
||||
ctbScadResiduo.setDescrizPag(pagamento);
|
||||
if (residuoIsNegative) {
|
||||
ctbScadResiduo.setImpAvere(positiveResiduo);
|
||||
} else {
|
||||
ctbScadResiduo.setImpDare(positiveResiduo);
|
||||
}
|
||||
ctbScadList.add(ctbScadResiduo);
|
||||
}
|
||||
} else {
|
||||
if (impRataIsNegative) {
|
||||
ctbScad.setImpAvere(positiveImpRata);
|
||||
} else {
|
||||
ctbScad.setImpDare(positiveImpRata);
|
||||
}
|
||||
}
|
||||
|
||||
ctbScad.setOperation(OperationType.INSERT);
|
||||
ctbScadList.add(ctbScad);
|
||||
ctbPart.setCtbScad(ctbScadList);
|
||||
ctbPart.setOperation(OperationType.NO_OP);
|
||||
|
||||
previousNumDoc = numDoc;
|
||||
}
|
||||
previousNumDoc = numDoc;
|
||||
} else {
|
||||
ctbPart = null;
|
||||
listAnomalie.add(AnomalieDTO.warning("Formato numero documento (" + stringNumDocCell + ") non valido: " + cacheCodAnag));
|
||||
}
|
||||
|
||||
if (ctbPart != null) {
|
||||
CtbScad ctbScad = new CtbScad();
|
||||
ctbScad.setDataScad(dataScad);
|
||||
ctbScad.setDataPag(dataScad);
|
||||
ctbScad.setDescrizPag(pagamento);
|
||||
|
||||
BigDecimal impRata = UtilityString.isNullOrEmpty(importoRata) ? null : new BigDecimal(importoRata);
|
||||
BigDecimal impPagato = UtilityString.isNullOrEmpty(importoPagato) ? null : new BigDecimal(importoPagato);
|
||||
BigDecimal residuo = UtilityString.isNullOrEmpty(stringResiduo) ? null : new BigDecimal(stringResiduo);
|
||||
boolean impRataIsNegative = impRata != null && impRata.signum() < 0;
|
||||
boolean impPagatoIsNegative = impPagato != null && impPagato.signum() < 0;
|
||||
boolean residuoIsNegative = residuo != null && residuo.signum() < 0;
|
||||
BigDecimal positiveImpRata = impRataIsNegative ? impRata.multiply(new BigDecimal("-1")) : impRata;
|
||||
BigDecimal positiveImpPagato = impPagatoIsNegative ? impPagato.multiply(new BigDecimal("-1")) : impPagato;
|
||||
BigDecimal positiveResiduo = residuoIsNegative ? residuo.multiply(new BigDecimal("-1")) : residuo;
|
||||
|
||||
if (impPagato != null) {
|
||||
ctbScad.setImpDare(positiveImpPagato);
|
||||
ctbScad.setImpAvere(positiveImpPagato);
|
||||
|
||||
if (!impPagato.equals(impRata) && !UtilityString.isNullOrEmpty(stringResiduo)) {
|
||||
CtbScad ctbScadResiduo = new CtbScad();
|
||||
ctbScadResiduo.setOperation(OperationType.INSERT);
|
||||
ctbScadResiduo.setDataScad(dataScad);
|
||||
ctbScadResiduo.setDataPag(dataScad);
|
||||
ctbScadResiduo.setDescrizPag(pagamento);
|
||||
if (residuoIsNegative) {
|
||||
ctbScadResiduo.setImpAvere(positiveResiduo);
|
||||
} else {
|
||||
ctbScadResiduo.setImpDare(positiveResiduo);
|
||||
}
|
||||
ctbScadList.add(ctbScadResiduo);
|
||||
}
|
||||
} else {
|
||||
if (impRataIsNegative) {
|
||||
ctbScad.setImpAvere(positiveImpRata);
|
||||
} else {
|
||||
ctbScad.setImpDare(positiveImpRata);
|
||||
}
|
||||
}
|
||||
|
||||
ctbScad.setOperation(OperationType.INSERT);
|
||||
ctbScadList.add(ctbScad);
|
||||
ctbPart.setCtbScad(ctbScadList);
|
||||
ctbPart.setOperation(OperationType.NO_OP);
|
||||
}
|
||||
}
|
||||
|
||||
return entityProcessor.processEntityList(ctbPartList, multiDBTransactionManager, true);
|
||||
|
||||
Reference in New Issue
Block a user