Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good
This commit is contained in:
@@ -0,0 +1,32 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.IntegryCustomer;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20241015152054 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (isCustomer(IntegryCustomer.RossoGargano)) return;
|
||||||
|
|
||||||
|
executeStatement("ALTER TABLE [dbo].[ctb_part] ADD CONSTRAINT [DF_ctb_part_tot_imponib] DEFAULT (0) FOR tot_imponib",
|
||||||
|
"ALTER TABLE [dbo].[ctb_part] ADD CONSTRAINT [DF_ctb_part_acconto] DEFAULT (0) FOR acconto",
|
||||||
|
"ALTER TABLE [dbo].[ctb_part] ADD CONSTRAINT [DF_ctb_part_tot_iva] DEFAULT (0) FOR tot_iva",
|
||||||
|
"ALTER TABLE [dbo].[ctb_part] ADD CONSTRAINT [DF_ctb_part_dare_part] DEFAULT (0) FOR dare_part",
|
||||||
|
"ALTER TABLE [dbo].[ctb_part] ADD CONSTRAINT [DF_ctb_part_avere_part] DEFAULT (0) FOR avere_part",
|
||||||
|
"ALTER TABLE [dbo].[ctb_part] ADD CONSTRAINT [DF_ctb_part_dare_scad] DEFAULT (0) FOR dare_scad",
|
||||||
|
"ALTER TABLE [dbo].[ctb_part] ADD CONSTRAINT [DF_ctb_part_avere_scad] DEFAULT (0) FOR avere_scad",
|
||||||
|
"ALTER TABLE [dbo].[ctb_part] ADD CONSTRAINT [DF_ctb_part_netto_merce] DEFAULT (0) FOR netto_merce",
|
||||||
|
"ALTER TABLE [dbo].[ctb_part] ADD CONSTRAINT [DF_ctb_part_tot_provvig] DEFAULT (0) FOR tot_provvig");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package it.integry.ems.migration.model;
|
||||||
|
|
||||||
|
import it.integry.ems.migration._base.BaseMigration;
|
||||||
|
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||||
|
|
||||||
|
public class Migration_20241015183012 extends BaseMigration implements MigrationModelInterface {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void up() throws Exception {
|
||||||
|
if (isHistoryDB())
|
||||||
|
return;
|
||||||
|
|
||||||
|
createSetup("TELEMATICO_DOGANA", "SETUP", "DATA_AZZERAMENTO_CALI", null,
|
||||||
|
"Se specificata il calcolo delle giacenze dei CALI partirà dal giorno successivo a tale data", false, null, false, false,
|
||||||
|
false, false, false, null, false, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void down() throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -62,6 +62,8 @@ public class AccountingBusinessLogic {
|
|||||||
testata.setCtbScad(elencoScad);
|
testata.setCtbScad(elencoScad);
|
||||||
}
|
}
|
||||||
public static List<CtbScad> generaScad(Connection conn, CtbMovt testata) throws Exception {
|
public static List<CtbScad> generaScad(Connection conn, CtbMovt testata) throws Exception {
|
||||||
|
if (testata.getDataDoc() == null)
|
||||||
|
throw new Exception("Data documento non presente");
|
||||||
Integer annoPart = Integer.parseInt(new SimpleDateFormat("yyyy").format(testata.getDataDoc()));
|
Integer annoPart = Integer.parseInt(new SimpleDateFormat("yyyy").format(testata.getDataDoc()));
|
||||||
BigDecimal totImponib = testata.getTotImponib();
|
BigDecimal totImponib = testata.getTotImponib();
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import com.annimon.stream.Stream;
|
|||||||
import it.integry.common.var.CommonConstants;
|
import it.integry.common.var.CommonConstants;
|
||||||
import it.integry.ems.Import.dto.AnomalieDTO;
|
import it.integry.ems.Import.dto.AnomalieDTO;
|
||||||
import it.integry.ems.Import.dto.ImportRequestDTO;
|
import it.integry.ems.Import.dto.ImportRequestDTO;
|
||||||
import it.integry.ems.product.export.services.ProdottiLaranciaService;
|
|
||||||
import it.integry.ems.service.EntityProcessor;
|
import it.integry.ems.service.EntityProcessor;
|
||||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||||
import it.integry.ems.utility.UtilityDirs;
|
import it.integry.ems.utility.UtilityDirs;
|
||||||
@@ -13,11 +12,9 @@ import it.integry.ems.utility.UtilityFile;
|
|||||||
import it.integry.ems_model.base.EntityBase;
|
import it.integry.ems_model.base.EntityBase;
|
||||||
import it.integry.ems_model.entity.CtbPart;
|
import it.integry.ems_model.entity.CtbPart;
|
||||||
import it.integry.ems_model.entity.CtbScad;
|
import it.integry.ems_model.entity.CtbScad;
|
||||||
import it.integry.ems_model.service.SetupGest;
|
|
||||||
import it.integry.ems_model.types.OperationType;
|
import it.integry.ems_model.types.OperationType;
|
||||||
import it.integry.ems_model.utility.*;
|
import it.integry.ems_model.utility.*;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.codehaus.stax2.ri.typed.StringBase64Decoder;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -25,10 +22,11 @@ import org.springframework.stereotype.Service;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -38,14 +36,9 @@ public class ScadenzeImportService {
|
|||||||
private EntityProcessor entityProcessor;
|
private EntityProcessor entityProcessor;
|
||||||
@Autowired
|
@Autowired
|
||||||
private MultiDBTransactionManager multiDBTransactionManager;
|
private MultiDBTransactionManager multiDBTransactionManager;
|
||||||
@Autowired
|
|
||||||
private SetupGest setupGest;
|
|
||||||
@Autowired
|
|
||||||
private ProdottiLaranciaService prodottiLaranciaService;
|
|
||||||
|
|
||||||
public List<EntityBase> importDocFinance(String type, String format, ImportRequestDTO requestDTO, List<AnomalieDTO> listAnomalie) throws Exception {
|
public List<EntityBase> importDocFinance(String type, String format, ImportRequestDTO requestDTO, List<AnomalieDTO> listAnomalie) throws Exception {
|
||||||
List<EntityBase> entityList = Collections.emptyList();
|
List<EntityBase> entityList;
|
||||||
List<String> listIntercode = new ArrayList<>();
|
|
||||||
Connection conn = multiDBTransactionManager.getPrimaryConnection();
|
Connection conn = multiDBTransactionManager.getPrimaryConnection();
|
||||||
|
|
||||||
if (requestDTO == null || requestDTO.getRawContent() == null)
|
if (requestDTO == null || requestDTO.getRawContent() == null)
|
||||||
@@ -55,6 +48,15 @@ public class ScadenzeImportService {
|
|||||||
List<String> datiFile = new ArrayList<>();
|
List<String> datiFile = new ArrayList<>();
|
||||||
List<String> lines = UtilityString.splitStringToMultipleLine(requestDTO.getRawContent());
|
List<String> lines = UtilityString.splitStringToMultipleLine(requestDTO.getRawContent());
|
||||||
if (!lines.isEmpty()) {
|
if (!lines.isEmpty()) {
|
||||||
|
//Cancellazione scadenze con intercode
|
||||||
|
String sql =
|
||||||
|
"DELETE FROM ctb_scad WHERE intercode is not null";
|
||||||
|
|
||||||
|
PreparedStatement stmt = conn.prepareStatement(sql);
|
||||||
|
stmt.executeUpdate();
|
||||||
|
conn.commit();
|
||||||
|
stmt.close();
|
||||||
|
|
||||||
for (String line : lines) {
|
for (String line : lines) {
|
||||||
String codPaga = line.substring(0, 2).trim();
|
String codPaga = line.substring(0, 2).trim();
|
||||||
|
|
||||||
@@ -76,10 +78,7 @@ public class ScadenzeImportService {
|
|||||||
String diacod = line.substring(92, 108).trim();
|
String diacod = line.substring(92, 108).trim();
|
||||||
Integer numDoc = UtilityString.isIntNumber(line.substring(185, 197).trim()) ? UtilityInteger.stringToInteger(line.substring(185, 197).trim()) : null;
|
Integer numDoc = UtilityString.isIntNumber(line.substring(185, 197).trim()) ? UtilityInteger.stringToInteger(line.substring(185, 197).trim()) : null;
|
||||||
String intercode = line.substring(197, 223);
|
String intercode = line.substring(197, 223);
|
||||||
|
sql = Query.format(
|
||||||
listIntercode.add(intercode.trim());
|
|
||||||
|
|
||||||
String sql = Query.format(
|
|
||||||
"SELECT CAST(COUNT(*) AS BIT) AS exist FROM gtb_paga WHERE cod_paga = %s",
|
"SELECT CAST(COUNT(*) AS BIT) AS exist FROM gtb_paga WHERE cod_paga = %s",
|
||||||
codPaga
|
codPaga
|
||||||
);
|
);
|
||||||
@@ -133,22 +132,14 @@ public class ScadenzeImportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
boolean forceIn2021 = false;
|
boolean forceIn2021 = false;
|
||||||
List<String> diacodToCheckList = new ArrayList<>();
|
HashMap<String, String> checkList = new HashMap<>();
|
||||||
List<String> intercodeToCheckList = new ArrayList<>();
|
|
||||||
|
|
||||||
diacodToCheckList.add("10216200");
|
checkList.put("10216200", "21001276019001");
|
||||||
diacodToCheckList.add("10407300");
|
checkList.put("10407300", "21 004001");
|
||||||
diacodToCheckList.add("90254600");
|
checkList.put("90254600", "21241137001001");
|
||||||
|
|
||||||
intercodeToCheckList.add("21001276019001");
|
if (checkList.containsKey(diacod) && checkList.get(diacod).equals(intercode.trim())) {
|
||||||
intercodeToCheckList.add("21004001");
|
forceIn2021 = true;
|
||||||
intercodeToCheckList.add("21241137001001");
|
|
||||||
|
|
||||||
for (int i = 0; i < diacodToCheckList.size(); i++) {
|
|
||||||
if (diacodToCheckList.get(i).equals(diacod) && intercodeToCheckList.get(i).equals(intercode)) {
|
|
||||||
forceIn2021 = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (forceIn2021 || (ctbPart == null && (anno != null && (anno < 2021 || dataDoc.before(UtilityDate.StringToDate("2021/07/01", "yyyy/MM/dd")))))) {
|
if (forceIn2021 || (ctbPart == null && (anno != null && (anno < 2021 || dataDoc.before(UtilityDate.StringToDate("2021/07/01", "yyyy/MM/dd")))))) {
|
||||||
@@ -171,8 +162,8 @@ public class ScadenzeImportService {
|
|||||||
" INNER JOIN ctb_movr_intercode\n" +
|
" INNER JOIN ctb_movr_intercode\n" +
|
||||||
" ON ctb_movr.num_cmov = ctb_movr_intercode.num_cmov AND ctb_movr.id_riga = ctb_movr_intercode.id_riga\n" +
|
" ON ctb_movr.num_cmov = ctb_movr_intercode.num_cmov AND ctb_movr.id_riga = ctb_movr_intercode.id_riga\n" +
|
||||||
"WHERE ctb_movr.cod_anag = %s\n" +
|
"WHERE ctb_movr.cod_anag = %s\n" +
|
||||||
" AND ctb_movr_intercode.intercode = %s",
|
" AND IIF(len(ctb_movr_intercode.intercode)<11,Space(11-len(ctb_movr_intercode.intercode)),'') + ctb_movr_intercode.intercode = %s",
|
||||||
codAnag, intercode.substring(0, 8));
|
codAnag, intercode.substring(0, 11));
|
||||||
|
|
||||||
boolean isAcconto = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
boolean isAcconto = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||||
|
|
||||||
@@ -216,7 +207,7 @@ public class ScadenzeImportService {
|
|||||||
CtbScad ctbScad = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, CtbScad.class);
|
CtbScad ctbScad = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, CtbScad.class);
|
||||||
|
|
||||||
if (ctbScad != null) {
|
if (ctbScad != null) {
|
||||||
ctbScad.setDataScad(dataScad)
|
ctbScad.setDataScad(dataScad)
|
||||||
.setIntercode(intercode)
|
.setIntercode(intercode)
|
||||||
.setOperation(OperationType.UPDATE);
|
.setOperation(OperationType.UPDATE);
|
||||||
} else {
|
} else {
|
||||||
@@ -247,21 +238,6 @@ public class ScadenzeImportService {
|
|||||||
|
|
||||||
UtilityEntity.throwEntitiesException(entityList);
|
UtilityEntity.throwEntitiesException(entityList);
|
||||||
|
|
||||||
if ( !listIntercode.isEmpty()) {
|
|
||||||
String sql =
|
|
||||||
"SELECT * FROM ctb_scad WHERE intercode is not null and intercode not in (" + UtilityDB.listValueToString(listIntercode) + ")";
|
|
||||||
|
|
||||||
List<CtbScad> ctbScads = UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, CtbScad.class);
|
|
||||||
|
|
||||||
ctbScads.stream().peek(x->x.setOperation(OperationType.DELETE));
|
|
||||||
|
|
||||||
entityList = entityProcessor.processEntityList(ctbScads, false);
|
|
||||||
|
|
||||||
UtilityEntity.throwEntitiesException(entityList);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return entityList;
|
return entityList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -143,9 +143,9 @@ public class ScadenzeExporterService {
|
|||||||
" '' AS 'sezione',\n" +
|
" '' AS 'sezione',\n" +
|
||||||
" '' AS 'cambio_della_gestione',\n" +
|
" '' AS 'cambio_della_gestione',\n" +
|
||||||
" ISNULL(ctb_movr_intercode.num_doc_orig, '') AS 'numero_doc_origine',\n" +
|
" ISNULL(ctb_movr_intercode.num_doc_orig, '') AS 'numero_doc_origine',\n" +
|
||||||
" IIF(ctb_movr_intercode.intercode IS NOT NULL, ctb_movr_intercode.intercode + FORMAT(\n" +
|
" IIF(ctb_movr_intercode.intercode IS NOT NULL, IIF(len(ctb_movr_intercode.intercode ) < 11,Space(11-Len(ctb_movr_intercode.intercode)),'') + ctb_movr_intercode.intercode + FORMAT(\n" +
|
||||||
" DENSE_RANK() OVER (PARTITION BY ctb_movr.cod_anag, ctb_movt.num_doc, ctb_movr_intercode.intercode ORDER BY ctb_movt.data_cmov), '000'),\n" +
|
" DENSE_RANK() OVER (PARTITION BY ctb_movr.cod_anag, ctb_movt.num_doc, ctb_movr_intercode.intercode ORDER BY ctb_movt.data_cmov), '000'),\n" +
|
||||||
" RIGHT(ctb_movr.num_cmov, LEN(ctb_movr.num_cmov) - 2) + FORMAT(ctb_movr.id_riga, '000') +\n" +
|
" Cast(ctb_movr.num_cmov as varchar) + FORMAT(ctb_movr.id_riga, '000') +\n" +
|
||||||
" '001') AS chiave_coge,\n" +
|
" '001') AS chiave_coge,\n" +
|
||||||
" 'ROSSOGARGA' AS 'azienda',\n" +
|
" 'ROSSOGARGA' AS 'azienda',\n" +
|
||||||
" '' AS 'numero_cc',\n" +
|
" '' AS 'numero_cc',\n" +
|
||||||
|
|||||||
Reference in New Issue
Block a user