Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5fbf7975d2 | |||
| a75b66bd53 | |||
| 13439c236d | |||
| 77d5a9cb9e | |||
| d4cfada677 | |||
| 27c6795b9f | |||
| dd9ff5c111 | |||
| 1a4773659a | |||
| 0d2da1a92c | |||
| b203e94836 | |||
| b3c99f7937 | |||
| 6257fd540d | |||
| 635ac0a1c7 | |||
| 8abf441a8a |
2
.idea/sqldialects.xml
generated
2
.idea/sqldialects.xml
generated
@@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="SqlDialectMappings">
|
||||
<file url="file://$PROJECT_DIR$/.idea/queries/Query.sql" dialect="TSQL" />
|
||||
<file url="file://$PROJECT_DIR$/.idea/queries/Query_1.sql" dialect="TSQL" />
|
||||
<file url="file://$PROJECT_DIR$/.idea/queries/Query_2.sql" dialect="TSQL" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -357,8 +357,8 @@ public abstract class BaseEntityExporter implements IEntityExporter {
|
||||
case EMAIL:
|
||||
|
||||
if (UtilityString.isNullOrEmpty(wtbUserInfo.getEmail()) &&
|
||||
UtilityString.isNullOrEmpty(wtbUserInfo.getEmailCc()) &&
|
||||
UtilityString.isNullOrEmpty(wtbUserInfo.getEmailCcn())) {
|
||||
UtilityString.isNullOrEmpty(wtbUserInfo.getEmailCc()) &&
|
||||
UtilityString.isNullOrEmpty(wtbUserInfo.getEmailCcn())) {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -369,7 +369,8 @@ public abstract class BaseEntityExporter implements IEntityExporter {
|
||||
entityExportResponse.setMessageContent("Messaggio creato automaticamente: " + "INVIO " + type + " formato " + format);
|
||||
}
|
||||
|
||||
fileSharerSettings = MailService.readParameter(multiDBTransactionManager.getPrimaryConnection(), null);
|
||||
fileSharerSettings = ApplicationContextProvider.getApplicationContext().getBean(MailService.class)
|
||||
.readParameter(multiDBTransactionManager.getPrimaryConnection(), null);
|
||||
((EmailFileSharerSettings) fileSharerSettings)
|
||||
.withSubject(entityExportResponse.getMessageSubject())
|
||||
.withTextMessage(entityExportResponse.getMessageContent())
|
||||
@@ -403,7 +404,7 @@ public abstract class BaseEntityExporter implements IEntityExporter {
|
||||
}
|
||||
}
|
||||
|
||||
if (counterTotalSend > 0 && counterFailedSend == counterTotalSend && retException != null) {
|
||||
if (counterTotalSend > 0 && counterFailedSend == counterTotalSend && retException != null) {
|
||||
//Se gli invii precedenti sono andati bene usciamo
|
||||
throw retException;
|
||||
}
|
||||
|
||||
@@ -39,6 +39,9 @@ public class RequestDataDTO {
|
||||
@Autowired
|
||||
private ResponseJSONObjectMapper jsonObjectMapper;
|
||||
|
||||
@Autowired
|
||||
private SettingsModel settingsModel;
|
||||
|
||||
private String requestURI;
|
||||
private String requestClientIP;
|
||||
|
||||
@@ -104,13 +107,10 @@ public class RequestDataDTO {
|
||||
jsonObjectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
||||
}
|
||||
|
||||
|
||||
// Logica di fallback o recupero tenant da sessione/utente
|
||||
if (profileDB == null || profileDB.isEmpty()) {
|
||||
// Esempio: recupero da sessione se presente
|
||||
// tenantId = (String) request.getSession().getAttribute("TENANT_ID");
|
||||
|
||||
// Fallback temporaneo per test
|
||||
// tenantId = DEFAULT_TENANT;
|
||||
profileDB = settingsModel.getDefaultProfile();
|
||||
}
|
||||
|
||||
if (profileDB != null) {
|
||||
@@ -130,10 +130,10 @@ public class RequestDataDTO {
|
||||
.setPassword("sql");
|
||||
}
|
||||
|
||||
public static RequestDataDTO scheduledOperationsMockupData() {
|
||||
return new RequestDataDTO()
|
||||
.setUsername("INTEGRY")
|
||||
.setPassword("INTEGRY");
|
||||
public static RequestDataDTO systemMockupData(String profileDb) {
|
||||
final RequestDataDTO requestDataDTO = systemMockupData();
|
||||
requestDataDTO.profileDB = profileDb;
|
||||
return requestDataDTO;
|
||||
}
|
||||
|
||||
public boolean isValidProfileDB() {
|
||||
|
||||
@@ -31,20 +31,20 @@ public class MultiTenantDataSource extends AbstractRoutingDataSource {
|
||||
List<AvailableConnectionModel> connections = settingsModel.getAvailableConnections(false);
|
||||
|
||||
// Imposta il primo come default se necessario, o gestisci il caso null
|
||||
DataSource defaultDataSource = null;
|
||||
// DataSource defaultDataSource = null;
|
||||
|
||||
for (AvailableConnectionModel model : connections) {
|
||||
DataSource ds = basicConnectionPool.getDataSource(model.getProfileName());
|
||||
if (ds != null) {
|
||||
targetDataSources.put(model.getProfileName(), ds);
|
||||
if (defaultDataSource == null) {
|
||||
defaultDataSource = ds;
|
||||
}
|
||||
targetDataSources.put(model.getProfileName().toLowerCase(), ds);
|
||||
// if (defaultDataSource == null) {
|
||||
// defaultDataSource = ds;
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
this.setTargetDataSources(targetDataSources);
|
||||
this.setDefaultTargetDataSource(defaultDataSource);
|
||||
//this.setDefaultTargetDataSource(defaultDataSource);
|
||||
super.afterPropertiesSet();
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,10 @@ public class TenantContext {
|
||||
private static final ThreadLocal<String> currentTenant = new ThreadLocal<>();
|
||||
|
||||
public static void setCurrentTenant(String tenant) {
|
||||
currentTenant.set(tenant);
|
||||
if (tenant == null)
|
||||
throw new IllegalArgumentException("Tenant identifier cannot be null");
|
||||
|
||||
currentTenant.set(tenant.toLowerCase());
|
||||
}
|
||||
|
||||
public static String getCurrentTenant() {
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package it.integry.ems.jpa.repository;
|
||||
|
||||
import it.integry.ems_model.entity.StbEmail;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public interface StbEmailRepository extends BaseRepository<StbEmail, Integer> {
|
||||
|
||||
@Query("SELECT e FROM StbEmail e WHERE e.flagDefault = 'S'")
|
||||
Optional<StbEmail> findByFlagDefaultTrue();
|
||||
|
||||
@Query("SELECT e FROM StbEmail e WHERE UPPER(e.eMail) = UPPER(?1)")
|
||||
Optional<StbEmail> findByEmailIgnoreCase(String email);
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
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_20251217111203 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
enableSaveToRest("maart_equi");
|
||||
|
||||
if ( !isCustomer(IntegryCustomer.Smetar)) return;
|
||||
executeStatement("update mtb_aart_equi set flag_equi_anag = 1");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,7 @@ import it.integry.ems_model.rulescompleting.DroolsDataCompleting;
|
||||
import it.integry.ems_model.types.ApplicationName;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.expression.Expression;
|
||||
import org.springframework.expression.ExpressionParser;
|
||||
import org.springframework.expression.spel.standard.SpelExpressionParser;
|
||||
@@ -1395,4 +1396,61 @@ public class CommonRules extends QueryRules {
|
||||
return chkCompatibilita;
|
||||
|
||||
}
|
||||
|
||||
public static void updArtEqui(Connection conn, MtbAart mtbAart) throws Exception {
|
||||
if (UtilityString.isNullOrEmpty(mtbAart.getIdArtEqui())) return;
|
||||
if (!mtbAart.isUpdArtEqui()) return;
|
||||
|
||||
boolean equiAnag = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn,
|
||||
Query.format("select flag_equi_anag \n" +
|
||||
"FROM mtb_aart_equi \n" +
|
||||
"WHERE id_art_equi = {} ",
|
||||
mtbAart.getIdArtEqui()));
|
||||
|
||||
if (!equiAnag) return;
|
||||
|
||||
boolean modify = true;
|
||||
if (mtbAart.getOriginalEntity() != null) {
|
||||
MtbAart originalMtbAart = (MtbAart) mtbAart.getOriginalEntity();
|
||||
modify = (!UtilityString.isNullOrEmpty(originalMtbAart.getUntMis()) ||
|
||||
!UtilityString.isNullOrEmpty(originalMtbAart.getUntMis2()) ||
|
||||
!UtilityString.isNullOrEmpty(originalMtbAart.getUntMis3()) ||
|
||||
!UtilityBigDecimal.isNullOrZero(originalMtbAart.getRapConv2()) ||
|
||||
!UtilityBigDecimal.isNullOrZero(originalMtbAart.getRapConv3()) ||
|
||||
!UtilityBigDecimal.isNullOrZero(originalMtbAart.getPesoKg()) ||
|
||||
!UtilityBigDecimal.isNullOrZero(originalMtbAart.getQtaCnf()) ||
|
||||
!UtilityBigDecimal.isNullOrZero(originalMtbAart.getColliPedana()) ||
|
||||
!UtilityBigDecimal.isNullOrZero(originalMtbAart.getColliStrato()) ||
|
||||
!UtilityBigDecimal.isNullOrZero(originalMtbAart.getTaraKg()));
|
||||
}
|
||||
|
||||
if (!modify) return;
|
||||
|
||||
List<MtbAart> mtbAarts = UtilityDB.executeSimpleQueryDTO(conn,
|
||||
Query.format("SELECT * \n" +
|
||||
"FROM mtb_aart \n" +
|
||||
"WHERE id_art_equi is not null AND \n" +
|
||||
"id_art_equi = {} AND \n " +
|
||||
"cod_mart <> {}",
|
||||
mtbAart.getIdArtEqui(),
|
||||
mtbAart.getCodMart()), MtbAart.class);
|
||||
|
||||
if ( mtbAarts == null || mtbAarts.isEmpty()) return;
|
||||
for (MtbAart m : mtbAarts) {
|
||||
m.setUntMis(mtbAart.getUntMis())
|
||||
.setUntMis2(mtbAart.getUntMis2())
|
||||
.setUntMis3(mtbAart.getUntMis3())
|
||||
.setRapConv2(mtbAart.getRapConv2())
|
||||
.setRapConv3(mtbAart.getRapConv3())
|
||||
.setPesoKg(mtbAart.getPesoKg())
|
||||
.setQtaCnf(mtbAart.getQtaCnf())
|
||||
.setColliPedana(mtbAart.getColliPedana())
|
||||
.setColliStrato(mtbAart.getColliStrato())
|
||||
.setTaraKg(mtbAart.getTaraKg())
|
||||
.setUpdArtEqui(false)
|
||||
.setOperation(OperationType.UPDATE);
|
||||
}
|
||||
mtbAart.setArticoliEquivalenti(mtbAarts);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -27,7 +27,7 @@ public class DocumentRules extends QueryRules {
|
||||
public static Date getDataRicezioneAllegati(Connection conn, List<DrlDocAttached> drlDocAttached) throws Exception {
|
||||
String minDataRic = setupGest.getSetup(conn, "CTB_MOVI", "SETUP", "SET_DATA_RICEZIONE");
|
||||
|
||||
LocalDateTime dataRicMin = LocalDateTime.parse(minDataRic, CommonConstants.DATETIME_YMD_DASHED_FORMATTER);
|
||||
LocalDateTime dataRicMin = UtilityString.parseLocalDateTime(minDataRic);
|
||||
|
||||
String idAttach = drlDocAttached.get(0).getIdAttach();
|
||||
String sqlAttach =
|
||||
|
||||
@@ -9,6 +9,7 @@ import it.integry.ems.file_sharer.IFileSharerAttachment;
|
||||
import it.integry.ems.file_sharer.sharers.email.EmailFileAttachment;
|
||||
import it.integry.ems.file_sharer.sharers.email.EmailFileSharer;
|
||||
import it.integry.ems.file_sharer.sharers.email.EmailFileSharerSettings;
|
||||
import it.integry.ems.jpa.repository.StbEmailRepository;
|
||||
import it.integry.ems.json.ResponseJSONObjectMapper;
|
||||
import it.integry.ems.media.MimeTypesHandler;
|
||||
import it.integry.ems.response.FileItem;
|
||||
@@ -24,7 +25,6 @@ import it.integry.ems.utility.UtilityDebug;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.entity.StbEmail;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityList;
|
||||
import it.integry.ems_model.utility.UtilityLocalDate;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
@@ -78,6 +78,9 @@ public class MailService {
|
||||
@Autowired
|
||||
private EmsDBConst emsDBConst;
|
||||
|
||||
@Autowired
|
||||
private StbEmailRepository stbEmailRepository;
|
||||
|
||||
private final Logger logger = LogManager.getLogger();
|
||||
|
||||
public enum Level {
|
||||
@@ -87,7 +90,7 @@ public class MailService {
|
||||
ERROR
|
||||
}
|
||||
|
||||
public static EmailFileSharerSettings readParameter(@NotNull Connection connection, String fromEmail) throws Exception {
|
||||
public EmailFileSharerSettings readParameter(@NotNull Connection connection, String fromEmail) throws Exception {
|
||||
if (UtilityDebug.isIntegryServerDev()) {
|
||||
return useSystemParams();
|
||||
}
|
||||
@@ -95,15 +98,16 @@ public class MailService {
|
||||
EmailFileSharerSettings emailSettings = new EmailFileSharerSettings();
|
||||
|
||||
String sql;
|
||||
StbEmail stbEmail = null;
|
||||
if (!UtilityString.isNullOrEmpty(fromEmail)) {
|
||||
sql = "SELECT * from stb_email WHERE e_mail = " + UtilityDB.valueToString(fromEmail);
|
||||
|
||||
stbEmail = stbEmailRepository.findByEmailIgnoreCase(fromEmail)
|
||||
.orElse(null);
|
||||
} else {
|
||||
sql = "SELECT * from stb_email WHERE flag_default = 'S'";
|
||||
stbEmail = stbEmailRepository.findByFlagDefaultTrue()
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
List<StbEmail> listEmail = UtilityDB.executeSimpleQueryDTO(connection, sql, StbEmail.class);
|
||||
|
||||
StbEmail stbEmail = listEmail != null && !listEmail.isEmpty() ? listEmail.get(0) : null;
|
||||
|
||||
if (stbEmail != null && stbEmail.getIdRiga() != null) {
|
||||
EmailFileSharerSettings.ENCRYPTION encryption = EmailFileSharerSettings.ENCRYPTION.NONE;
|
||||
@@ -204,7 +208,7 @@ public class MailService {
|
||||
}
|
||||
|
||||
public Message sendMailPrimary(Connection connection, String from, String
|
||||
fromName, String to, String cc, String ccn,
|
||||
fromName, String to, String cc, String ccn,
|
||||
String subject, String msgText, Boolean isHtml, Boolean isDebug, String replyTo, String
|
||||
replyToName, List<IFileSharerAttachment> emailFileAttachmentList, boolean requestDeliveryNotification,
|
||||
String deliveryNotificationTo) throws
|
||||
@@ -231,7 +235,7 @@ public class MailService {
|
||||
}
|
||||
|
||||
public Message sendMailPrimary(Connection connection, String from, String
|
||||
fromName, List<String> listTo, List<String> listCc, List<String> ListCcn,
|
||||
fromName, List<String> listTo, List<String> listCc, List<String> ListCcn,
|
||||
String subject, String msgText, Boolean isHtml, Boolean isDebug, String replyTo, String
|
||||
replyToName, List<IFileSharerAttachment> emailFileAttachmentList, boolean requestDeliveryNotification,
|
||||
String deliveryNotificationTo) throws
|
||||
@@ -300,7 +304,7 @@ public class MailService {
|
||||
}
|
||||
|
||||
public EmailFileSharerSettings internalReadParameter(Connection connection, String fromEmail) throws Exception {
|
||||
return MailService.readParameter(connection, fromEmail);
|
||||
return readParameter(connection, fromEmail);
|
||||
}
|
||||
|
||||
public Message sendMail(String from, String fromName, String to, String cc, String subject, String msg) throws Exception {
|
||||
@@ -492,56 +496,29 @@ public class MailService {
|
||||
internalSendSystemMail(Level.SUCCESS, mailSubject, mailTitle, mailContent, footerDate);
|
||||
}
|
||||
|
||||
public void sendSystemWarningLog(String mailSubject, String mailTitle, String mailContent, String exceptionMessage, Date footerDate) throws Exception {
|
||||
|
||||
mailContent += "<br /><br /><br />\n" +
|
||||
"<hr noshade size=\"1\"><br />" +
|
||||
"<p style=\"text-align: left; font-weight: bold;font-size: 12px;\">ERROR LOG</p>" +
|
||||
"<p style=\"text-align: left; font-size: 12px; color: gray; font-family: consolas;\">" + exceptionMessage + "</p>";
|
||||
|
||||
internalSendSystemMail(Level.WARNING, mailSubject, mailTitle, mailContent, footerDate);
|
||||
}
|
||||
|
||||
public void sendSystemWarningLog(String mailSubject, String mailTitle, String mailContent, Exception ex, Date footerDate) throws Exception {
|
||||
StringWriter sw = new StringWriter();
|
||||
PrintWriter pw = new PrintWriter(sw);
|
||||
ex.printStackTrace(pw);
|
||||
|
||||
|
||||
mailContent += "<br /><br /><br />\n" +
|
||||
"<hr noshade size=\"1\"><br />" +
|
||||
"<p style=\"text-align: left; font-weight: bold;font-size: 12px;\">ERROR LOG</p>" +
|
||||
"<p style=\"text-align: left; font-size: 12px; color: gray; font-family: consolas;\">" + sw + "</p>";
|
||||
pw.close();
|
||||
sw.close();
|
||||
|
||||
internalSendSystemMail(Level.WARNING, mailSubject, mailTitle, mailContent, footerDate);
|
||||
}
|
||||
|
||||
public void sendSystemErrorLog(String mailSubject, String mailTitle, String mailContent, String exceptionMessage, Date footerDate) throws Exception {
|
||||
|
||||
mailContent += "<br /><br /><br />\n" +
|
||||
"<hr noshade size=\"1\"><br />" +
|
||||
"<p style=\"text-align: left; font-weight: bold;font-size: 12px;\">ERROR LOG</p>" +
|
||||
"<p style=\"text-align: left; font-size: 12px; color: gray; font-family: consolas;\">" + exceptionMessage + "</p>";
|
||||
|
||||
internalSendSystemMail(Level.ERROR, mailSubject, mailTitle, mailContent, footerDate);
|
||||
internalSendSystemLogMail(Level.WARNING, mailSubject, mailTitle, mailContent, ex, footerDate);
|
||||
}
|
||||
|
||||
public void sendSystemErrorLog(String mailSubject, String mailTitle, String mailContent, Exception ex, Date footerDate) throws Exception {
|
||||
StringWriter sw = new StringWriter();
|
||||
PrintWriter pw = new PrintWriter(sw);
|
||||
ex.printStackTrace(pw);
|
||||
internalSendSystemLogMail(Level.ERROR, mailSubject, mailTitle, mailContent, ex, footerDate);
|
||||
}
|
||||
|
||||
private void internalSendSystemLogMail(Level mailLevel, String mailSubject, String mailTitle, String mailContent, Exception ex, Date footerDate) throws Exception {
|
||||
if (ex != null) {
|
||||
StringWriter sw = new StringWriter();
|
||||
PrintWriter pw = new PrintWriter(sw);
|
||||
ex.printStackTrace(pw);
|
||||
|
||||
|
||||
mailContent += "<br /><br /><br />\n" +
|
||||
"<hr noshade size=\"1\"><br />" +
|
||||
"<p style=\"text-align: left; font-weight: bold;font-size: 12px;\">ERROR LOG</p>" +
|
||||
"<p style=\"text-align: left; font-size: 12px; color: gray; font-family: consolas;\">" + sw + "</p>";
|
||||
pw.close();
|
||||
sw.close();
|
||||
mailContent += "<br /><br /><br />\n" +
|
||||
"<p style=\"text-align: left; font-weight: bold;font-size: 12px;\">Stacktrace</p>" +
|
||||
"<pre>" + sw + "</pre>";
|
||||
pw.close();
|
||||
sw.close();
|
||||
}
|
||||
|
||||
internalSendSystemMail(Level.ERROR, mailSubject, mailTitle, mailContent, footerDate);
|
||||
internalSendSystemMail(mailLevel, mailSubject, mailTitle, mailContent, footerDate);
|
||||
}
|
||||
|
||||
private void internalSendSystemMail(Level mailLevel, String mailSubject, String mailTitle, String mailContent, Date footerDate) throws Exception {
|
||||
|
||||
@@ -25,7 +25,7 @@ public class MailTemplateService {
|
||||
URL url = new URL(baseUrl + fileName);
|
||||
|
||||
InputStream inputStream = url.openStream();
|
||||
String htmlMailBody = IOUtils.toString(inputStream, StandardCharsets.ISO_8859_1);
|
||||
String htmlMailBody = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
|
||||
inputStream.close();
|
||||
|
||||
return htmlMailBody;
|
||||
|
||||
@@ -101,7 +101,7 @@ public class MultiDBTransactionManager implements AutoCloseable {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
String profileDb = settingsModel.getDefaultProfile();
|
||||
String profileDb = null;
|
||||
if (requestData != null && requestData.isValidProfileDB()) {
|
||||
profileDb = requestData.getProfileDB();
|
||||
}
|
||||
|
||||
@@ -430,6 +430,9 @@ public class MtbAart extends EntityBase implements EquatableEntityInterface<MtbA
|
||||
@javax.persistence.JoinColumn(name = "unt_mis", insertable = false, updatable = false)
|
||||
private MtbUntMis mtbUntMis;
|
||||
|
||||
@Transient
|
||||
private boolean updArtEqui = true;
|
||||
|
||||
@Priority(1)
|
||||
@Transient
|
||||
//Compatible with EntityBase
|
||||
@@ -443,6 +446,10 @@ public class MtbAart extends EntityBase implements EquatableEntityInterface<MtbA
|
||||
@Transient
|
||||
private MtbAartEqui mtbAartEqui;
|
||||
|
||||
@Priority(value = 101, copyPk = false)
|
||||
@Transient
|
||||
private List<MtbAart> articoliEquivalenti;
|
||||
|
||||
@EntityChild
|
||||
@javax.persistence.OneToMany(fetch = javax.persistence.FetchType.LAZY, mappedBy = "mtbAart")
|
||||
private List<MtbAartBarCode> mtbAartBarCode = new ArrayList<>();
|
||||
@@ -1455,6 +1462,24 @@ public class MtbAart extends EntityBase implements EquatableEntityInterface<MtbA
|
||||
this.mtbAartEqui = mtbAartEqui;
|
||||
}
|
||||
|
||||
public boolean isUpdArtEqui() {
|
||||
return updArtEqui;
|
||||
}
|
||||
|
||||
public MtbAart setUpdArtEqui(boolean updArtEqui) {
|
||||
this.updArtEqui = updArtEqui;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<MtbAart> getArticoliEquivalenti() {
|
||||
return articoliEquivalenti;
|
||||
}
|
||||
|
||||
public MtbAart setArticoliEquivalenti(List<MtbAart> articoliEquivalenti) {
|
||||
this.articoliEquivalenti = articoliEquivalenti;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<JtbCicl> getJtbCicl() {
|
||||
return jtbCicl;
|
||||
}
|
||||
|
||||
@@ -3,10 +3,12 @@ package it.integry.ems_model.entity;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeName;
|
||||
import it.integry.ems_model.annotation.*;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
@javax.persistence.Entity
|
||||
@javax.persistence.Table(name = StbEmail.ENTITY)
|
||||
@Master
|
||||
@PropertyReactive
|
||||
@Table(StbEmail.ENTITY)
|
||||
@@ -19,44 +21,58 @@ public class StbEmail extends EntityBase {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@javax.persistence.Id
|
||||
@javax.persistence.Column(name = "id_riga")
|
||||
@PK
|
||||
@SqlDetailId
|
||||
@SqlField(value = "id_riga", nullable = false)
|
||||
private Integer idRiga;
|
||||
|
||||
@javax.persistence.Column(name = "e_mail")
|
||||
@SqlField(value = "e_mail", maxLength = 255, nullable = false)
|
||||
private String eMail;
|
||||
|
||||
@javax.persistence.Column(name = "smtp")
|
||||
@SqlField(value = "smtp", maxLength = 255)
|
||||
private String smtp;
|
||||
|
||||
@javax.persistence.Column(name = "authentication")
|
||||
@SqlField(value = "authentication", maxLength = 1, nullable = false, defaultObjectValue = "S")
|
||||
private String authentication;
|
||||
|
||||
@javax.persistence.Column(name = "user_name")
|
||||
@SqlField(value = "user_name", maxLength = 255)
|
||||
private String userName;
|
||||
|
||||
@javax.persistence.Column(name = "password")
|
||||
@SqlField(value = "password", maxLength = 255)
|
||||
private String password;
|
||||
|
||||
@javax.persistence.Column(name = "port")
|
||||
@SqlField(value = "port", maxLength = 255)
|
||||
private String port;
|
||||
|
||||
@javax.persistence.Column(name = "SSL")
|
||||
@SqlField(value = "SSL", maxLength = 1, nullable = false, defaultObjectValue = "N")
|
||||
private String ssl;
|
||||
|
||||
@javax.persistence.Column(name = "crypt_password")
|
||||
@SqlField(value = "crypt_password", maxLength = 1, nullable = false, defaultObjectValue = "S")
|
||||
private String cryptPassword;
|
||||
|
||||
@javax.persistence.Column(name = "flag_default")
|
||||
@SqlField(value = "flag_default", maxLength = 1, nullable = false, defaultObjectValue = "N")
|
||||
private String flagDefault;
|
||||
|
||||
@javax.persistence.Column(name = "flag_default_contabilita")
|
||||
@SqlField(value = "flag_default_contabilita", maxLength = 1, nullable = false, defaultObjectValue = "N")
|
||||
private String flagDefaultContabilita;
|
||||
|
||||
@javax.persistence.Column(name = "imap")
|
||||
@SqlField(value = "imap", maxLength = 255)
|
||||
private String imap;
|
||||
|
||||
@javax.persistence.Column(name = "imap_port")
|
||||
@SqlField(value = "imap_port", maxLength = 255)
|
||||
private String imapPort;
|
||||
|
||||
|
||||
@@ -5,9 +5,11 @@ import java.util.Objects;
|
||||
|
||||
public class DtbOrdtKey {
|
||||
|
||||
private final String gestione;
|
||||
private final Date dataOrd;
|
||||
private final Integer numOrd;
|
||||
private String gestione;
|
||||
private Date dataOrd;
|
||||
private Integer numOrd;
|
||||
|
||||
public DtbOrdtKey() {}
|
||||
|
||||
public DtbOrdtKey(String gestione, Date dataOrd, Integer numOrd) {
|
||||
this.gestione = gestione;
|
||||
|
||||
@@ -123,6 +123,7 @@ when
|
||||
then
|
||||
CommonRules.setIdArtEqui(conn, $mtbAart);
|
||||
CommonRules.updateDescrDistintaBase(conn, $mtbAart);
|
||||
CommonRules.updArtEqui(conn, $mtbAart);
|
||||
end
|
||||
|
||||
rule "completeIdRigaCtbScad"
|
||||
|
||||
@@ -687,6 +687,7 @@ public class ActivityService {
|
||||
utenti.add("F0003");
|
||||
utenti.add("F0237");
|
||||
utenti.add("F0060");
|
||||
utenti.add("L0019");
|
||||
} else
|
||||
utenti.add(user.getUsername());
|
||||
|
||||
@@ -1377,6 +1378,7 @@ public class ActivityService {
|
||||
utenti.add("F0003");
|
||||
utenti.add("F0237");
|
||||
utenti.add("F0060");
|
||||
utenti.add("L0019");
|
||||
} else if (!activity.getEsito().equalsIgnoreCase(EmsRestConstants.NULL)) {
|
||||
sql = Query.format(
|
||||
"SELECT CAST(IIF(flag_invio_notifica = 'N', 0, 1) AS BIT)\n" +
|
||||
|
||||
@@ -469,7 +469,7 @@ public class AutofatturaService {
|
||||
mailService.sendSystemErrorLog("[" + model.getProfileName() + " - " + azienda.getNomeDitta() + "][" + UtilityServer.getHostName() + "] Verifica autofatture ",
|
||||
"Verifica autofatture",
|
||||
"Sull'azienda " + azienda.getNomeDitta() + " non è presente nessuna email con flag default contabilità, non sarà possibile inviare la mail di verifica.",
|
||||
(String) null, new Date());
|
||||
(Exception) null, new Date());
|
||||
} else {
|
||||
String elencoMovimenti = String.join(CommonConstants.A_CAPO, listMov);
|
||||
String elencoEmail = String.join(",", email);
|
||||
|
||||
@@ -3,6 +3,7 @@ package it.integry.ems.contabil.service;
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.service.MailService;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityDebug;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
@@ -18,9 +19,6 @@ import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
@@ -279,7 +277,7 @@ public class PassaggioAnno {
|
||||
|
||||
private void sendMail(String message, List<String> email) throws Exception {
|
||||
if (email == null || email.isEmpty()) {
|
||||
mailService.sendSystemErrorLog("ATTENZIONE", "ATTENZIONE", message, (String) null, new Date());
|
||||
mailService.sendSystemErrorLog("ATTENZIONE", "ATTENZIONE", message, (Exception) null, new Date());
|
||||
} else {
|
||||
String elencoEmail = String.join(",", email);
|
||||
mailService.sendMail(elencoEmail, null, "ATTENZIONE", message);
|
||||
|
||||
@@ -46,7 +46,7 @@ public class ScadenzeService {
|
||||
mailService.sendSystemErrorLog("[" + multiDBTransactionManager.getPrimaryConnection().getProfileName() + "][" + UtilityServer.getHostName() + "] Verifica scadenze ",
|
||||
"Verifica scadenze",
|
||||
"Sull'azienda " + multiDBTransactionManager.getPrimaryConnection().getProfileName() + " ci sono scadenze con data documenti disallineata: " + CommonConstants.A_CAPO + elencoScadenze,
|
||||
(String) null, new Date());
|
||||
(Exception) null, new Date());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,6 +74,16 @@ public class DocumentiDirettiService {
|
||||
throw new Exception("Tipo documento obbligatorio");
|
||||
}
|
||||
|
||||
if ( dtbDoct.getDtbDocCarat() != null && !dtbDoct.getDtbDocCarat().isEmpty() ) {
|
||||
dtbDoct.getDtbDocCarat().stream()
|
||||
.filter(dc -> dc.getOperation().equals(OperationType.UPDATE))
|
||||
.forEach(dc -> {
|
||||
if ( UtilityString.isNullOrEmpty( dc.getValoreCarat() ) ) {
|
||||
dc.setOperation( OperationType.DELETE );
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
if ( dtbDoct.getMtbColt() != null ) {
|
||||
dtbDoct.getMtbColt().stream().forEach(ul -> {
|
||||
ul.getMtbColr().stream()
|
||||
|
||||
@@ -148,7 +148,7 @@ public class ContrattiDiAcquistoHandlerService {
|
||||
.setAtbOffr(value));
|
||||
});
|
||||
|
||||
List<EntityBase> ret = entityProcessor.processEntityList(atbOfftsToSave, mdb, false, RequestDataDTO.systemMockupData());
|
||||
List<EntityBase> ret = entityProcessor.processEntityList(atbOfftsToSave, mdb, false, RequestDataDTO.systemMockupData(mdb.getPrimaryConnection().getProfileName()));
|
||||
UtilityEntity.throwEntitiesException(ret);
|
||||
|
||||
return ret;
|
||||
|
||||
@@ -167,7 +167,10 @@ public class ContrattiDiVenditaHandlerService {
|
||||
.setVtbOffr(value));
|
||||
});
|
||||
|
||||
List<EntityBase> ret = entityProcessor.processEntityList(vtbOfftsToSave, multiDBTransactionManager, false, RequestDataDTO.systemMockupData());
|
||||
List<EntityBase> ret = entityProcessor.processEntityList(vtbOfftsToSave,
|
||||
multiDBTransactionManager,
|
||||
false,
|
||||
RequestDataDTO.systemMockupData(multiDBTransactionManager.getPrimaryConnection().getProfileName()));
|
||||
UtilityEntity.throwEntitiesException(ret);
|
||||
|
||||
return ret;
|
||||
|
||||
@@ -39,7 +39,6 @@ import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -214,7 +213,7 @@ public class ListiniVenditaServices {
|
||||
"Allineamento prezzi articoli equivalenti ",
|
||||
"Sull'azienda " + multiDBTransactionManager.getPrimaryConnection().getDbName() +
|
||||
" errore nella procedura di allineamento prezzi articoli equivalenti " + vtbListData.getCodVlis(),
|
||||
vtbListData.getException().getMessage(), new Date());
|
||||
vtbListData.getException(), new Date());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -443,7 +442,7 @@ public class ListiniVenditaServices {
|
||||
mailService.sendSystemErrorLog("Consolida listini di vendita ",
|
||||
"Consolida listini di vendita ",
|
||||
"Sull'azienda " + multiDBTransactionManager.getPrimaryConnection().getDbName() + " errore nella procedura di cosolidamento listini sul listino " + vtbListData.getCodVlis(),
|
||||
vtbListData.getException().getMessage(), new Date());
|
||||
vtbListData.getException(), new Date());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -235,7 +235,7 @@ public class ImportRapportiniCronotime {
|
||||
anomalie.add(AnomalieDTO.warning("Dispositivo : " + disp + " non codificato"));
|
||||
}
|
||||
for (String badge : badgeSet) {
|
||||
anomalie.add(AnomalieDTO.warning("Badge num: " + badge + " non codificato"));
|
||||
anomalie.add(AnomalieDTO.error("Badge num: " + badge + " non codificato"));
|
||||
}
|
||||
List<EntityBase> entities = entityProcessor.processEntityList(rapportini, true);
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package it.integry.ems.retail.pvmRetail.controller;
|
||||
|
||||
import it.integry.ems.javabeans.RequestDataDTO;
|
||||
import it.integry.ems.response.ServiceRestResponse;
|
||||
import it.integry.ems.retail.pvmRetail.service.OrdiniAService;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems_model.entity.key.DtbOrdtKey;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@Scope("request")
|
||||
@RequestMapping("pvm/ordini_a")
|
||||
public class OrdiniAController {
|
||||
|
||||
|
||||
private final RequestDataDTO requestDataDTO;
|
||||
private final MultiDBTransactionManager multiDBTransactionManager;
|
||||
private final OrdiniAService ordiniAService;
|
||||
|
||||
public OrdiniAController(RequestDataDTO requestDataDTO, MultiDBTransactionManager multiDBTransactionManager, OrdiniAService ordiniAService) {
|
||||
this.requestDataDTO = requestDataDTO;
|
||||
this.multiDBTransactionManager = multiDBTransactionManager;
|
||||
this.ordiniAService = ordiniAService;
|
||||
}
|
||||
|
||||
@PostMapping("/checkOrder")
|
||||
public ServiceRestResponse checkOrder(@RequestBody DtbOrdtKey orderKey) throws Exception{
|
||||
return ServiceRestResponse.createPositiveResponse(ordiniAService.checkOrder(multiDBTransactionManager.getPrimaryConnection(),orderKey));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package it.integry.ems.retail.pvmRetail.dto;
|
||||
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
import it.integry.ems_model.entity.DtbOrdr;
|
||||
import it.integry.ems_model.entity.key.DtbOrdtKey;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public class CheckOrderResponseDTO {
|
||||
|
||||
@SqlField("gestione")
|
||||
private String gestione;
|
||||
@SqlField("data_ord")
|
||||
private Date dataOrd;
|
||||
@SqlField("num_ord")
|
||||
private Integer numOrd;
|
||||
@SqlField("tot_merce")
|
||||
private BigDecimal totMerce;
|
||||
@SqlField("valore_min_ord")
|
||||
private BigDecimal valoreMinOrd;
|
||||
@SqlField("valore_minimo_superato")
|
||||
private boolean valoreMinimoSuperato = true;
|
||||
private Integer articoliInPromo = 0;
|
||||
private List<DtbOrdr> articoliFuoriGriglia = new ArrayList<>();
|
||||
private List<DtbOrdr> articoliQtaInvalida = new ArrayList<>();
|
||||
|
||||
public BigDecimal getTotMerce() {
|
||||
return totMerce;
|
||||
}
|
||||
|
||||
public CheckOrderResponseDTO setTotMerce(BigDecimal totMerce) {
|
||||
this.totMerce = totMerce;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getValoreMinOrd() {
|
||||
return valoreMinOrd;
|
||||
}
|
||||
|
||||
public CheckOrderResponseDTO setValoreMinOrd(BigDecimal valoreMinOrd) {
|
||||
this.valoreMinOrd = valoreMinOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isValoreMinimoSuperato() {
|
||||
return valoreMinimoSuperato;
|
||||
}
|
||||
|
||||
public CheckOrderResponseDTO setValoreMinimoSuperato(boolean valoreMinimoSuperato) {
|
||||
this.valoreMinimoSuperato = valoreMinimoSuperato;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getArticoliInPromo() {
|
||||
return articoliInPromo;
|
||||
}
|
||||
|
||||
public CheckOrderResponseDTO setArticoliInPromo(Integer articoliInPromo) {
|
||||
this.articoliInPromo = articoliInPromo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<DtbOrdr> getArticoliFuoriGriglia() {
|
||||
return articoliFuoriGriglia;
|
||||
}
|
||||
|
||||
public CheckOrderResponseDTO setArticoliFuoriGriglia(List<DtbOrdr> articoliFuoriGriglia) {
|
||||
this.articoliFuoriGriglia = articoliFuoriGriglia;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<DtbOrdr> getArticoliQtaInvalida() {
|
||||
return articoliQtaInvalida;
|
||||
}
|
||||
|
||||
public CheckOrderResponseDTO setArticoliQtaInvalida(List<DtbOrdr> articoliQtaInvalida) {
|
||||
this.articoliQtaInvalida = articoliQtaInvalida;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getGestione() {
|
||||
return gestione;
|
||||
}
|
||||
|
||||
public CheckOrderResponseDTO setGestione(String gestione) {
|
||||
this.gestione = gestione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public CheckOrderResponseDTO setDataOrd(Date dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getNumOrd() {
|
||||
return numOrd;
|
||||
}
|
||||
|
||||
public CheckOrderResponseDTO setNumOrd(Integer numOrd) {
|
||||
this.numOrd = numOrd;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package it.integry.ems.retail.pvmRetail.service;
|
||||
|
||||
import it.integry.ems.retail.pvmRetail.dto.CheckOrderResponseDTO;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems_model.entity.DtbOrdr;
|
||||
import it.integry.ems_model.entity.key.DtbOrdtKey;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityList;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class OrdiniAService {
|
||||
|
||||
public CheckOrderResponseDTO checkOrder(Connection connection, DtbOrdtKey orderKey) throws Exception {
|
||||
CheckOrderResponseDTO response = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(connection, Query.format(
|
||||
"select gestione,\n" +
|
||||
"data_ord,\n" +
|
||||
"num_ord,\n" +
|
||||
"tot_merce,\n" +
|
||||
" valore_min_ord,\n" +
|
||||
" cast(case\n" +
|
||||
" when valore_min_ord is not null then\n" +
|
||||
" case when tot_merce > valore_min_ord then 1 else 0 end\n" +
|
||||
" else 1 end as bit) as valore_minimo_superato\n" +
|
||||
"from dtb_ordt\n" +
|
||||
" inner join atb_list al on al.cod_alis = dtb_ordt.listino\n" +
|
||||
"where dtb_ordt.gestione = {}\n" +
|
||||
" and dtb_ordt.data_ord = {}\n" +
|
||||
" and dtb_ordt.num_ord = {}"
|
||||
, orderKey.getGestione(), orderKey.getDataOrd(), orderKey.getNumOrd()), CheckOrderResponseDTO.class);
|
||||
|
||||
Integer articoliInPromo = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection,
|
||||
Query.format("select count(*)\n" +
|
||||
"from dtb_ordt\n" +
|
||||
" inner join dtb_ordr on dtb_ordt.gestione = dtb_ordr.gestione and\n" +
|
||||
" dtb_ordt.data_ord = dtb_ordr.data_ord and\n" +
|
||||
" dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
||||
" inner join mtb_depo on dtb_ordt.cod_mdep = mtb_depo.cod_mdep\n" +
|
||||
"where dtb_ordt.gestione = {}\n" +
|
||||
" AND dtb_ordt.data_ord = {}\n" +
|
||||
" AND dtb_ordt.num_ord = {}\n" +
|
||||
" and dtb_ordr.cod_mart in (\n" +
|
||||
" select distinct griglia.cod_mart\n" +
|
||||
" from dbo.getGrigliaAcquisto({}, dtb_ordt.listino, mtb_depo.cod_mdep, null, null) griglia\n" +
|
||||
" inner join\n" +
|
||||
" dbo.getPromozioneVendita({}, {}, mtb_depo.cod_vlis, null, null) promo_vend\n" +
|
||||
" on griglia.cod_mart = promo_vend.cod_mart\n" +
|
||||
")\n", orderKey.getGestione(), orderKey.getDataOrd(), orderKey.getNumOrd(), orderKey.getDataOrd(), orderKey.getDataOrd(), orderKey.getDataOrd())
|
||||
);
|
||||
|
||||
response.setArticoliInPromo(articoliInPromo);
|
||||
|
||||
List<DtbOrdr> righeFuoriGriglia = UtilityDB.executeSimpleQueryDTO(connection, Query.format(
|
||||
"SELECT dtb_ordr.cod_mart, dtb_ordr.descrizione, dtb_ordr.qta_ord, dtb_ordr.unt_ord\n" +
|
||||
"FROM dtb_ordt\n" +
|
||||
" INNER JOIN dtb_ordr ON dtb_ordt.gestione = dtb_ordr.gestione AND\n" +
|
||||
" dtb_ordt.data_ord = dtb_ordr.data_ord AND\n" +
|
||||
" dtb_ordt.num_ord = dtb_ordr.num_ord\n" +
|
||||
"\n" +
|
||||
"WHERE dtb_ordt.gestione = {}\n" +
|
||||
" AND dtb_ordt.data_ord = {}\n" +
|
||||
" AND dtb_ordt.num_ord = {}\n" +
|
||||
" AND NOT EXISTS (SELECT *\n" +
|
||||
" FROM dbo.getgrigliaacquisto({}, NULL, NULL, NULL, NULL) griglia\n" +
|
||||
" WHERE tipo_variazione <> 'D'\n" +
|
||||
" AND dtb_ordt.listino = griglia.cod_alis\n" +
|
||||
" AND dtb_ordt.cod_mdep = griglia.cod_mdep\n" +
|
||||
" AND dtb_ordr.cod_mart = griglia.cod_mart\n" +
|
||||
" AND (dtb_ordr.cod_art_for IS NULL OR dtb_ordr.cod_art_for = griglia.cod_art_for))\n",
|
||||
orderKey.getGestione(), orderKey.getDataOrd(), orderKey.getNumOrd(), orderKey.getDataOrd()
|
||||
), DtbOrdr.class);
|
||||
|
||||
if (!UtilityList.isNullOrEmpty(righeFuoriGriglia)) {
|
||||
response.setArticoliFuoriGriglia(righeFuoriGriglia);
|
||||
}
|
||||
|
||||
|
||||
List<DtbOrdr> articoliQtaOrdInvalida = UtilityDB.executeSimpleQueryDTO(connection, Query.format(
|
||||
"select gestione,data_ord,num_ord, riga_ord, cod_mart, descrizione, unt_ord , qta_ord, qta_cnf\n" +
|
||||
"from dtb_ordr\n" +
|
||||
"where gestione = {}\n" +
|
||||
" and data_ord = {}\n" +
|
||||
" and num_ord = {}\n" +
|
||||
" and unt_ord = 'pz'\n" +
|
||||
"and not qta_ord %% qta_cnf = 0",
|
||||
orderKey.getGestione(), orderKey.getDataOrd(), orderKey.getNumOrd()
|
||||
), DtbOrdr.class);
|
||||
|
||||
if (!UtilityList.isNullOrEmpty(articoliQtaOrdInvalida)) {
|
||||
response.setArticoliQtaInvalida(articoliQtaOrdInvalida);
|
||||
}
|
||||
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
@@ -1,20 +1,16 @@
|
||||
package it.integry.ems.retail.service;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
|
||||
import it.integry.ems.expansion.RunnableThrowable;
|
||||
import it.integry.ems.javabeans.RequestDataDTO;
|
||||
import it.integry.ems.json.ResponseJSONObjectMapper;
|
||||
import it.integry.ems.retail.dto.GiacenzaDTO;
|
||||
import it.integry.ems.retail.pvmRetail.service.PvmService;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.service.MailService;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.utility.UtilityDebug;
|
||||
import it.integry.ems.utility.UtilityDirs;
|
||||
import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems.utility.UtilityFile;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.CarelliGiacenzaProg;
|
||||
@@ -31,12 +27,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.StringWriter;
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.SQLException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
@@ -209,7 +202,7 @@ public class GiacenzaService {
|
||||
List<CarelliGiacenzaProg> carelliGiacenzaProgs = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, CarelliGiacenzaProg.class, OperationType.INSERT);
|
||||
|
||||
List<EntityBase> entityRet = entityProcessor.processEntityList(carelliGiacenzaProgs, null, false, true, false, multiDBTransactionManager, false, false,
|
||||
RequestDataDTO.systemMockupData());
|
||||
RequestDataDTO.systemMockupData(multiDBTransactionManager.getPrimaryConnection().getProfileName()));
|
||||
UtilityEntity.throwEntitiesException(entityRet);
|
||||
}
|
||||
|
||||
@@ -224,7 +217,7 @@ public class GiacenzaService {
|
||||
List<CarelliGiacenzaProg> carelliGiacenzaProgs = new ResultSetMapper().mapQuerySetToList(multiDBTransactionManager.getPrimaryConnection(), sql, CarelliGiacenzaProg.class, OperationType.DELETE);
|
||||
|
||||
List<EntityBase> entityRet = entityProcessor.processEntityList(carelliGiacenzaProgs, null, false, true, false, multiDBTransactionManager, false, false,
|
||||
RequestDataDTO.systemMockupData());
|
||||
RequestDataDTO.systemMockupData(multiDBTransactionManager.getPrimaryConnection().getProfileName()));
|
||||
|
||||
UtilityEntity.throwEntitiesException(entityRet);
|
||||
}
|
||||
@@ -489,7 +482,9 @@ public class GiacenzaService {
|
||||
.setDataDoc(UtilityLocalDate.localDateToDate(collo.getDataCollo()))
|
||||
.setDataDistribuzione(new Date());
|
||||
collo.setOperation(OperationType.UPDATE);
|
||||
entityProcessor.processEntity(collo, false, false, "", multiDBTransactionManager, RequestDataDTO.systemMockupData(), false, false);
|
||||
entityProcessor.processEntity(collo, false, false, "",
|
||||
multiDBTransactionManager,
|
||||
RequestDataDTO.systemMockupData(multiDBTransactionManager.getPrimaryConnection().getProfileName()), false, false);
|
||||
UtilityEntity.throwEntityException(collo);
|
||||
}
|
||||
}
|
||||
@@ -510,7 +505,8 @@ public class GiacenzaService {
|
||||
calls.add(() -> {
|
||||
try {
|
||||
for (EntityBase entityBase : entityList) {
|
||||
entityProcessor.processEntity(entityBase, false, true, "", multiDBTransactionManager, RequestDataDTO.systemMockupData(), false, false);
|
||||
entityProcessor.processEntity(entityBase, false, true, "", multiDBTransactionManager,
|
||||
RequestDataDTO.systemMockupData(multiDBTransactionManager.getPrimaryConnection().getProfileName()), false, false);
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
@@ -522,7 +518,8 @@ public class GiacenzaService {
|
||||
UtilityThread.executeParallel(calls);
|
||||
} else {
|
||||
for (EntityBase entityBase : entityBases) {
|
||||
entityProcessor.processEntity(entityBase, false, true, "", multiDBTransactionManager, RequestDataDTO.systemMockupData(), false, false);
|
||||
entityProcessor.processEntity(entityBase, false, true, "", multiDBTransactionManager,
|
||||
RequestDataDTO.systemMockupData(multiDBTransactionManager.getPrimaryConnection().getProfileName()), false, false);
|
||||
}
|
||||
}
|
||||
multiDBTransactionManager.commitAll();
|
||||
|
||||
@@ -3144,7 +3144,7 @@ public class WMSGenericService {
|
||||
oldUdc.setMtbColr(WMSUtility.convertMvwItemsToMtbColrs(giacenzaItems));
|
||||
|
||||
WMSUtility.spostaArtsTraUL(multiDBTransactionManager.getPrimaryConnection(),
|
||||
oldUdc, newUdc, false, entityProcessor, RequestDataDTO.systemMockupData());
|
||||
oldUdc, newUdc, false, entityProcessor, RequestDataDTO.systemMockupData(multiDBTransactionManager.getPrimaryConnection().getProfileName()));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import it.integry.ems.dto.ExtendedStbActivity;
|
||||
import it.integry.ems.file_sharer.IFileSharerAttachment;
|
||||
import it.integry.ems.file_sharer.sharers.email.EmailFileAttachment;
|
||||
import it.integry.ems.javabeans.RequestDataDTO;
|
||||
import it.integry.ems.jpa.repository.MtbAartRepository;
|
||||
import it.integry.ems.json.ResponseJSONObjectMapper;
|
||||
import it.integry.ems.license.LicenseStatusDTO;
|
||||
import it.integry.ems.report.dto.JasperDTO;
|
||||
@@ -25,7 +26,6 @@ import it.integry.ems.service.exception.EmptyReportException;
|
||||
import it.integry.ems.settings.Model.AvailableConnectionModel;
|
||||
import it.integry.ems.settings.Model.SettingsModel;
|
||||
import it.integry.ems.status.ServiceChecker;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems.system.dto.ChangeLogDTO;
|
||||
import it.integry.ems.system.dto.GestNameDTO;
|
||||
@@ -70,8 +70,6 @@ import java.lang.reflect.Method;
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -114,6 +112,8 @@ public class SystemController {
|
||||
private NotificationService notificationService;
|
||||
@Autowired
|
||||
private CleanDirectoryComponent cleanDirectoryComponent;
|
||||
@Autowired
|
||||
private MtbAartRepository mtbAartRepository;
|
||||
|
||||
|
||||
@GetMapping(value = "/system/ok")
|
||||
@@ -834,6 +834,7 @@ public class SystemController {
|
||||
utenti.add("F0003");
|
||||
utenti.add("F0237");
|
||||
utenti.add("F0060");
|
||||
utenti.add("L0019");
|
||||
} else {
|
||||
utenti.add(stbActivity.getUserName());
|
||||
}
|
||||
@@ -1471,8 +1472,11 @@ public class SystemController {
|
||||
public ServiceRestResponse test(HttpServletRequest request,
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration) throws Exception {
|
||||
|
||||
final MtbAart byCodMart = mtbAartRepository.findWithBarcodeWithUntMisByCodMartIn(Collections.singletonList("000018"))
|
||||
.stream().findFirst()
|
||||
.orElse(null);
|
||||
|
||||
return ServiceRestResponse.createNegativeResponse("Errore super graveeeee");
|
||||
return ServiceRestResponse.createPositiveResponse(byCodMart);
|
||||
}
|
||||
|
||||
@RequestMapping(value = EmsRestConstants.PATH_STB_EMAIL_CONTENT_FATTURE_PASSIVE_DELETER, method = RequestMethod.POST)
|
||||
|
||||
@@ -351,7 +351,7 @@ public class ExchangeOrdiniImportService {
|
||||
.setDataInizProd(field.getDataInizProd())
|
||||
.setCodVzon(field.getCodVzon())
|
||||
.setDataOrd(field.getDataInizProd());
|
||||
agribookFieldService.createField(multiDb, dto, EXCHANGE_USER, RequestDataDTO.systemMockupData());
|
||||
agribookFieldService.createField(multiDb, dto, EXCHANGE_USER, RequestDataDTO.systemMockupData(multiDb.getPrimaryConnection().getProfileName()));
|
||||
|
||||
break;
|
||||
case UPDATE:
|
||||
|
||||
Reference in New Issue
Block a user