Compare commits
425 Commits
feature/Fe
...
feature-re
| Author | SHA1 | Date | |
|---|---|---|---|
| 5ba9035238 | |||
| a0035ad573 | |||
| 203a36cdba | |||
| c18551d630 | |||
| 939cfde0c5 | |||
| 4231f7b6ae | |||
| b7b60491d4 | |||
| 84e46ce609 | |||
| f49c622df0 | |||
| f7f8bee8d0 | |||
| 41e7c24b91 | |||
| 5a6fa368e4 | |||
| 07fdd0a5df | |||
| fd4901c294 | |||
| 6e65992b90 | |||
| 64399d4803 | |||
| c6c4f52e93 | |||
| ab70242ebf | |||
| cf078ced9c | |||
| 6290c18046 | |||
| c544679f1b | |||
| 95bc10950a | |||
| a6415486c3 | |||
| f68f76e5ea | |||
| 8e934b8a38 | |||
| 3e9793eb76 | |||
| ea6cb1e9d7 | |||
| 629cf3bf22 | |||
| 9e8b05cecf | |||
| b7c452d41f | |||
| b3e5c78afb | |||
| 7bd80d9e52 | |||
| 0019f03668 | |||
| d74661153a | |||
| a898ef24eb | |||
| a69466f5db | |||
| cdcb1eb0b6 | |||
| bd706155f6 | |||
| a01025853c | |||
| 884c051b18 | |||
| 20aea0c306 | |||
| 03e6db20b5 | |||
| e53add6f0d | |||
| 2fc60c34c3 | |||
| b2d2bd494a | |||
| 58d900cc6b | |||
| cc21e43bd4 | |||
| 5acf3023b7 | |||
| 9d9ce1f3ac | |||
| 7d6f11272f | |||
| f9ab71462f | |||
| f014e4b959 | |||
| bd2f7126a9 | |||
| 9007eda560 | |||
| 139fc94ed5 | |||
| b51fc95057 | |||
| 0782d0206c | |||
| 1eface5798 | |||
| 3bc9e6629b | |||
| f10e90bc9b | |||
| 997c667f1b | |||
| 6efa6e7293 | |||
| 32229f7157 | |||
| 7b09900a1f | |||
| 71cb4d0d88 | |||
| 0f42d5a2ba | |||
| ebf9af7b8b | |||
| 9476e99476 | |||
| a338077542 | |||
| db9a613fc9 | |||
| 0d4882b818 | |||
| cbbc0739c6 | |||
| e12f00984d | |||
| 5dc20c4e3f | |||
| 4a61a4b60c | |||
| b82a3dd227 | |||
| ca9843f71a | |||
| 41b95b9dcb | |||
| 1d16e2cc13 | |||
| 2abf8b55ac | |||
| 82972a537e | |||
| 5d77838838 | |||
| 9006da1383 | |||
| 026f89d031 | |||
| 1dd6d8b3fa | |||
| 67c1a8fba5 | |||
| c4e8985642 | |||
| d048ea1f9c | |||
| 6f2d485de7 | |||
| 9f46505136 | |||
| 4d2fbf610d | |||
| 3ec8d6d0e1 | |||
| 255de9a955 | |||
| 622c4c903c | |||
| e51fa4fa6b | |||
| febe8be89e | |||
| 3ad15c8457 | |||
| 3ae1d499c2 | |||
| b10c6e837c | |||
| 1d07f15169 | |||
| 18e69f0195 | |||
| 3f4735f953 | |||
| edcd6ecf6b | |||
| b2ac734b5e | |||
| 481e8e35cc | |||
| 725b93be81 | |||
| 7eac47b3b7 | |||
| 8abb7c2842 | |||
| 55e55bd64a | |||
| 7de563abf3 | |||
| 12154ed089 | |||
| 98e518e295 | |||
| 498ce2880e | |||
| b828e5bfae | |||
| 637fdca7ed | |||
| 8778aecbeb | |||
| 724bc750cf | |||
| 4c78c0cf37 | |||
| c8c476f98c | |||
| 0c3cf9095f | |||
| f90688e969 | |||
| c76417b917 | |||
| 332b4fddd8 | |||
| fa2bca9c99 | |||
| 565cbc9f30 | |||
| febd5d7e7f | |||
| 057d7961f2 | |||
| 8ead6d9fdb | |||
| 08215fab9d | |||
| 73aed3e9d6 | |||
| 1ae0ee3567 | |||
| 49f6664874 | |||
| 03fe0c7279 | |||
| 49b4fca63c | |||
| 36c425941a | |||
| 5fa3dc538f | |||
| 280474d038 | |||
| 518263d955 | |||
| 0f298bcd05 | |||
| c8200f3690 | |||
| 08ff9e1940 | |||
| 165e81938c | |||
| c87404a4ee | |||
| 92a9abf978 | |||
| 71e99ed943 | |||
| b1c337a238 | |||
| 21fa20e94f | |||
| bf1b78ccc0 | |||
| 5325f3124a | |||
| fce976b2df | |||
| 8caa0c924b | |||
| 4af7155db9 | |||
| ab682181ce | |||
| d6cda98855 | |||
| 38c1c80abb | |||
| fed416de15 | |||
| d5bf6aef92 | |||
| 5a0cfd160f | |||
| bea182eea9 | |||
| ce6a102f45 | |||
| 9e1a600087 | |||
| 89a6a8c2f4 | |||
| 9fca434612 | |||
| d675ce0e82 | |||
| ef2f2a91b3 | |||
| 49ff0c839b | |||
| bd5eb9c535 | |||
| 0851fe8915 | |||
| fa7e3a55ca | |||
| 52d34fa810 | |||
| 59624c8c17 | |||
| cd53eca2e8 | |||
| a486b6102b | |||
| becfdab1a1 | |||
| e6605c2feb | |||
| 305c79a558 | |||
| edcc08c9da | |||
| 89d0f95834 | |||
| 112dc51ac7 | |||
| a93979c546 | |||
| 6b536b20c6 | |||
| 17c832745f | |||
| fcb62e3689 | |||
| bc88453914 | |||
| a85173bc45 | |||
| ed0c117bac | |||
| 557159cf7f | |||
| 46dcdd7745 | |||
| c30c7ec369 | |||
| 8e99c0898d | |||
| b4ce3f8d27 | |||
| 9549583c86 | |||
| 5b88fa632c | |||
| 64425c2c4a | |||
| e6d5df31dd | |||
| f9be1f4463 | |||
| 1cfc7558ac | |||
| 140c443030 | |||
| 0bfa110d6c | |||
| 374d143090 | |||
| 32dc0b4f4c | |||
| 75edd98223 | |||
| d89ddb447c | |||
| a2b668ed96 | |||
| d7aef97ae0 | |||
| 4f6eed564e | |||
| e3cf9aa115 | |||
| 766e6a18cc | |||
| 45c507cfcc | |||
| ebaee14167 | |||
| 0a56b9dd25 | |||
| 51210cd8df | |||
| e80d8ee151 | |||
| 3b461350d5 | |||
| 5724dc53c9 | |||
| 84ff15687e | |||
| 422e09b072 | |||
| 3dd1cd60cb | |||
| 14cf0d60b5 | |||
| 7a0cbebdfb | |||
| f5e208a973 | |||
| f4189b71e0 | |||
| 0d8101ec05 | |||
| 7f42ee47ce | |||
| 0b1310646c | |||
| ebde200a73 | |||
| 502dc5e7a9 | |||
| 4fca7a604b | |||
| 2b781e795a | |||
| cbfa2482da | |||
| ef9bbe6198 | |||
| 4e78712c2f | |||
| bcb23e8a42 | |||
| 4e9d2615b1 | |||
| f8da37203c | |||
| 29e67b3680 | |||
| 9a7508d05e | |||
| 88da287d33 | |||
| b924e018ab | |||
| b9f2ed0509 | |||
| cecf45cc8f | |||
| 2f6c642ef0 | |||
| c38608d92b | |||
| 08b91b91ef | |||
| 25d266b0f8 | |||
| d9287659d2 | |||
| 9542465064 | |||
| 4901067c3f | |||
| 35727ef0af | |||
| 9aa60b6464 | |||
| c2d9ccf1b1 | |||
| 56764f5918 | |||
| c11ead2b49 | |||
| 219fd1989a | |||
| 78137519ec | |||
| 2010782da4 | |||
| a9718b5fbe | |||
| c995d2334f | |||
| c0340b9863 | |||
| e8d8f7db1a | |||
| e22c467a15 | |||
| 7ba89d3cfa | |||
| fbc13719db | |||
| 5cbc6cce2e | |||
| c3871083b1 | |||
| 33c85e3a18 | |||
| e3863f5992 | |||
| 218f6b9306 | |||
| cf215fae02 | |||
| 358064102e | |||
| 998b63301d | |||
| 3055139b83 | |||
| cf766e190e | |||
| d61cf134fb | |||
| 68238f0d6e | |||
| c3dd5fb59b | |||
| 96a4ab4b39 | |||
| e9411988d2 | |||
| db6319ad6c | |||
| 8a61bc87bc | |||
| e580a12b0e | |||
| 5576834083 | |||
| 715e1fc6c3 | |||
| 090828aa8a | |||
| 7c65f3a8f9 | |||
| 778141da66 | |||
| ceb7deb79f | |||
| 0724f6ab83 | |||
| f910e6855f | |||
| acbd3e8ac2 | |||
| 5e7209f060 | |||
| 5201b5b25d | |||
| 7126f9bf71 | |||
| 5a2ad13068 | |||
| c0dc46935b | |||
| f1c5d7cd2e | |||
| 08c675b662 | |||
| 7d9ca973f5 | |||
| 1b2a3c1203 | |||
| ef7369c2a3 | |||
| 1520d45609 | |||
| 820ae30ab4 | |||
| 60683c0383 | |||
| 90b955f6a4 | |||
| e0d63d5c44 | |||
| d54401cd9e | |||
| 6f6232be13 | |||
| 872503afb5 | |||
| edd50bed65 | |||
| aac8b151dc | |||
| 76785b22fe | |||
| bebf48f6c5 | |||
| 79d0ea1967 | |||
| 069b652035 | |||
| 6b3d579803 | |||
| 5acb744618 | |||
| 0ee6c261e5 | |||
| 0b6ad5d5dc | |||
| 19c8d1eee7 | |||
| 201996e4b5 | |||
| 2bf4edeffe | |||
| 799c3be92d | |||
| 96102328c1 | |||
| 2d458e1836 | |||
| 3f2ad37ff9 | |||
| c343ec70ad | |||
| 4bb59eee38 | |||
| 585771cb2e | |||
| 51ad617bd3 | |||
| 4c71015588 | |||
| 065fb956d3 | |||
| f096f72942 | |||
| f61f8283f0 | |||
| 0682af0dee | |||
| fb09e637ee | |||
| aa4619e323 | |||
| 5e30e340a2 | |||
| ca8fba8d6f | |||
| 7012dca4a6 | |||
| 8256c1e0ce | |||
| f92de927ff | |||
| fe5dc1f55b | |||
| 557ada2363 | |||
| 6b30fea7b8 | |||
| 71df21c003 | |||
| d73f607e21 | |||
| 960f74e7cd | |||
| e1e9a3cbfc | |||
| 48d5190586 | |||
| 36c6ec6c64 | |||
| 7f3c43f263 | |||
| 4d0dfc5341 | |||
| b08e1ef6bb | |||
| 09b8d47c76 | |||
| 43f59ccf3b | |||
| fee5320c37 | |||
| 3a55dcdb58 | |||
| f5ea90a0d0 | |||
| b833fc79e8 | |||
| f52aa4d837 | |||
| fff5faf3be | |||
| 978b42d18a | |||
| c7c8b1be24 | |||
| 6034120f1f | |||
| c2b6d4ba69 | |||
| bc97f9a573 | |||
| ce1f68deb2 | |||
| 45bf3d67d1 | |||
| bf38dfe0d8 | |||
| af68b892f3 | |||
| af29eeba58 | |||
| 5698329cc8 | |||
| d70efd3af2 | |||
| f99957eb41 | |||
| 40104bcce7 | |||
| edda81733d | |||
| ceb11d3261 | |||
| a13671c51a | |||
| b94d9b1177 | |||
| d027f3ff20 | |||
| 8601f4fd90 | |||
| 73ade8691d | |||
| df2a7d6e36 | |||
| c7c6affe3e | |||
| 54fc28eb74 | |||
| ab1200ff84 | |||
| 22f65037f4 | |||
| ec2b83657a | |||
| 2511aabbdb | |||
| 313fa6a8df | |||
| 9bb8751e21 | |||
| 24c4935dad | |||
| 61d76b03c4 | |||
| 0f973c962a | |||
| cffe9082db | |||
| 6c88b7b288 | |||
| ea2121e111 | |||
| 1191f98485 | |||
| 6c0e2d5259 | |||
| 894da40182 | |||
| 749a7e9750 | |||
| e5a66bfd15 | |||
| 9761d05a8e | |||
| 050e8bd19e | |||
| a0c3d3a6b3 | |||
| f06117d5ef | |||
| 75262b5940 | |||
| 0b3f1ee9fc | |||
| 7c19c93814 | |||
| 532c12dd22 | |||
| e81c2ac6b9 | |||
| 161ea5e5dd | |||
| 260019d79f | |||
| 08b68781e9 | |||
| 760be03b18 | |||
| 148a4359b6 | |||
| b65d35cfd6 | |||
| 54eb75a420 | |||
| e9d28c6f63 | |||
| 212f14db36 | |||
| b50e25a0ee | |||
| 0a49695d7c | |||
| 9e5a2e8400 | |||
| f0fb85e6db | |||
| 86081ec113 |
1
.idea/runConfigurations/MenuStaticCreator.xml
generated
1
.idea/runConfigurations/MenuStaticCreator.xml
generated
@@ -2,6 +2,7 @@
|
||||
<configuration default="false" name="MenuStaticCreator" type="Application" factoryName="Application" nameIsGenerated="true">
|
||||
<option name="MAIN_CLASS_NAME" value="it.integry.ems.menu.MenuStaticCreator" />
|
||||
<module name="ems-core" />
|
||||
<shortenClasspath name="MANIFEST" />
|
||||
<extension name="coverage">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="it.integry.ems.menu.*" />
|
||||
|
||||
6
.idea/sqldialects.xml
generated
Normal file
6
.idea/sqldialects.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="SqlDialectMappings">
|
||||
<file url="file://$PROJECT_DIR$/ems-engine/src/main/java/it/integry/ems/document/farm_mes/service/FarmMesImportService.java" dialect="GenericSQL" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -5,16 +5,7 @@
|
||||
"primaryInstance" : true,
|
||||
"enableTokenCaching" : false,
|
||||
"systemPassword" : "?MF!jbI+&OkA",
|
||||
"availableConnections" : [ {
|
||||
"profileName" : "MAGGIOSRL",
|
||||
"connectionType" : "MSSQL",
|
||||
"dbName" : "MaggioSRL",
|
||||
"username" : "sa",
|
||||
"password" : "sZ",
|
||||
"host" : "192.168.2.214",
|
||||
"encryptedDbPsw" : true,
|
||||
"internalDb" : true
|
||||
}, {
|
||||
"availableConnections" : [{
|
||||
"profileName" : "AGRICOPER",
|
||||
"connectionType" : "MSSQL",
|
||||
"dbName" : "agricoper",
|
||||
@@ -33,18 +24,18 @@
|
||||
"encryptedDbPsw" : true,
|
||||
"internalDb" : true
|
||||
}, {
|
||||
"profileName" : "COAP",
|
||||
"profileName" : "RESINA_COLOR",
|
||||
"connectionType" : "MSSQL",
|
||||
"dbName" : "COAP",
|
||||
"dbName" : "RESINACOLOR",
|
||||
"username" : "sa",
|
||||
"password" : "sZ",
|
||||
"host" : "192.168.2.214",
|
||||
"encryptedDbPsw" : true,
|
||||
"internalDb" : true
|
||||
}, {
|
||||
"profileName" : "RESINA_COLOR",
|
||||
"profileName" : "RESINA_COLOR_PASQUALE",
|
||||
"connectionType" : "MSSQL",
|
||||
"dbName" : "RESINACOLOR",
|
||||
"dbName" : "RESINACOLOR_PASQUALE",
|
||||
"username" : "sa",
|
||||
"password" : "sZ",
|
||||
"host" : "192.168.2.214",
|
||||
@@ -242,12 +233,21 @@
|
||||
}, {
|
||||
"profileName" : "GRAMM",
|
||||
"connectionType" : "MSSQL",
|
||||
"dbName" : "gramm",
|
||||
"dbName" : "gramm_peppe",
|
||||
"username" : "SA",
|
||||
"password" : "sZ",
|
||||
"host" : "192.168.2.220",
|
||||
"encryptedDbPsw" : true,
|
||||
"internalDb" : true
|
||||
}, {
|
||||
"profileName" : "MAGGIOSRL",
|
||||
"connectionType" : "MSSQL",
|
||||
"dbName" : "MaggioSRL",
|
||||
"username" : "sa",
|
||||
"password" : "sZ",
|
||||
"host" : "192.168.2.214",
|
||||
"encryptedDbPsw" : true,
|
||||
"internalDb" : true
|
||||
}, {
|
||||
"profileName" : "IDROTECNICA",
|
||||
"connectionType" : "MSSQL",
|
||||
@@ -278,7 +278,7 @@
|
||||
}, {
|
||||
"profileName" : "IME_TE",
|
||||
"connectionType" : "MSSQL",
|
||||
"dbName" : "IME_TE",
|
||||
"dbName" : "IME_TE_peppe",
|
||||
"username" : "SA",
|
||||
"password" : "sZ",
|
||||
"host" : "192.168.2.214",
|
||||
@@ -692,7 +692,7 @@
|
||||
}, {
|
||||
"profileName" : "BIOLEVANTE",
|
||||
"connectionType" : "MSSQL",
|
||||
"dbName" : "biolevante",
|
||||
"dbName": "biolevante",
|
||||
"username" : "SA",
|
||||
"password" : "sZ",
|
||||
"host" : "192.168.2.220",
|
||||
|
||||
@@ -19,6 +19,7 @@ import it.integry.WooCommerce.dto.product.variation.WooCommerceProductVariationD
|
||||
import it.integry.WooCommerce.enums.ArticoloException;
|
||||
import it.integry.WooCommerce.enums.StockStatus;
|
||||
import it.integry.WooCommerce.enums.SyncOrigin;
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.Import.dto.AnomalieDTO;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.service.MailService;
|
||||
@@ -29,7 +30,6 @@ import it.integry.ems_model.entity.WdtbOrds;
|
||||
import it.integry.ems_model.entity.WdtbOrdt;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityDate;
|
||||
import it.integry.ems_model.utility.UtilityStream;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.apache.commons.text.StringEscapeUtils;
|
||||
@@ -41,7 +41,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -445,7 +445,8 @@ public class WooCommerceService {
|
||||
}
|
||||
|
||||
//CHIAVE ORDINE
|
||||
Date dataOrd = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(orderDTO.getDateCreated());
|
||||
LocalDate dataOrd = UtilityString.parseLocalDateTime(orderDTO.getDateCreated(), "yyyy-MM-dd'T'HH:mm:ss")
|
||||
.toLocalDate();
|
||||
|
||||
ordineWeb
|
||||
.setGestione("V")
|
||||
@@ -453,7 +454,7 @@ public class WooCommerceService {
|
||||
.setNumOrd(Integer.parseInt(orderDTO.getNumber()))
|
||||
//CHIAVE RIFERIMENTO ORDINE WOOCOMMERCE
|
||||
.setSerie(dataManager.getSetup("SERIE"))
|
||||
.setRifOrd(UtilityString.left("RIF N." + orderDTO.getNumber() + " DEL " + UtilityDate.formatDate(dataOrd, "dd-MM-yy") + " " + orderDTO.getOrderKey(), 40))
|
||||
.setRifOrd(UtilityString.left("RIF N." + orderDTO.getNumber() + " DEL " + CommonConstants.DATE_DMY_DASHED_FORMATTER.format(dataOrd) + " " + orderDTO.getOrderKey(), 40))
|
||||
.setDataOrdRif(dataOrd)
|
||||
.setNumOrdRif(Integer.parseInt(orderDTO.getNumber()))
|
||||
.setListino(dataManager.getSetup("LISTINO"));
|
||||
|
||||
@@ -20,16 +20,17 @@ public class CommonConstants {
|
||||
public static final String TIMESTAMP = "timestamp";
|
||||
|
||||
|
||||
public static final String DATE_FORMAT_YMD = "yyyy-MM-dd";
|
||||
public static final String DATE_FORMAT_DMY = "dd/MM/yyyy";
|
||||
public static final String DATE_FORMAT_YMD_SLASHED = "yyyy/MM/dd";
|
||||
public static final String DATE_FORMAT_YMD_DASHED = "yyyy-MM-dd";
|
||||
public static final String DATE_FORMAT_DMY_SLASHED = "dd/MM/yyyy";
|
||||
public static final String DATE_FORMAT_DMY_DASHED = "dd-MM-yyyy";
|
||||
public static final String DATE_FORMAT_DMYHMS_UNSPACED = "ddMMyyyyHHmmss";
|
||||
|
||||
public static final String TIME_FORMAT = "HH:mm:ss";
|
||||
|
||||
public static final String DATETIME_FORMAT_YMD = String.format("%s %s", DATE_FORMAT_YMD, TIME_FORMAT);
|
||||
public static final String DATETIME_FORMAT_YMD = String.format("%s %s", DATE_FORMAT_YMD_DASHED, TIME_FORMAT);
|
||||
public static final String DATETIME_FORMAT_DMY = String.format("%s %s", DATE_FORMAT_DMY_DASHED, TIME_FORMAT);
|
||||
public static final String DATETIME_FORMAT_DMY_SLASHED = String.format("%s %s", DATE_FORMAT_DMY, TIME_FORMAT);
|
||||
public static final String DATETIME_FORMAT_DMY_SLASHED = String.format("%s %s", DATE_FORMAT_DMY_SLASHED, TIME_FORMAT);
|
||||
public static final String DATETIME_FORMAT_DMY_DASHED = String.format("%s %s", DATE_FORMAT_DMY_DASHED, TIME_FORMAT);
|
||||
|
||||
|
||||
@@ -46,12 +47,17 @@ public class CommonConstants {
|
||||
.withZone(ZoneId.systemDefault());
|
||||
|
||||
|
||||
public static final DateTimeFormatter DATE_YMD_DASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATE_FORMAT_YMD)
|
||||
public static final DateTimeFormatter DATE_YMD_SLASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATE_FORMAT_YMD_SLASHED)
|
||||
.withZone(ZoneId.systemDefault());
|
||||
public static final DateTimeFormatter DATE_YMD_DASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATE_FORMAT_YMD_DASHED)
|
||||
.withZone(ZoneId.systemDefault());
|
||||
public static final DateTimeFormatter DATETIME_YMD_DASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATETIME_FORMAT_YMD)
|
||||
.withZone(ZoneId.systemDefault());
|
||||
|
||||
public static final DateTimeFormatter DATE_DMY_SLASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATE_FORMAT_DMY)
|
||||
|
||||
public static final DateTimeFormatter DATE_DMY_SLASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATE_FORMAT_DMY_SLASHED)
|
||||
.withZone(ZoneId.systemDefault());
|
||||
public static final DateTimeFormatter DATE_DMY_DASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATE_FORMAT_DMY_DASHED)
|
||||
.withZone(ZoneId.systemDefault());
|
||||
public static final DateTimeFormatter DATETIME_DMY_SLASHED_FORMATTER = DateTimeFormatter.ofPattern(CommonConstants.DATETIME_FORMAT_DMY_SLASHED)
|
||||
.withZone(ZoneId.systemDefault());
|
||||
|
||||
@@ -0,0 +1,269 @@
|
||||
package it.integry.ems.anonymizer;
|
||||
|
||||
import java.security.SecureRandom;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* Generatore di nomi e cognomi italiani per l'anonimizzazione dei dati.
|
||||
* Mantiene la coerenza del sesso tra nome e genere.
|
||||
*/
|
||||
public class ItalianNameGenerator {
|
||||
|
||||
private final Random random;
|
||||
|
||||
// Nomi maschili italiani (200+ nomi)
|
||||
public static final List<String> MALE_NAMES = Arrays.asList(
|
||||
"Alessandro", "Andrea", "Antonio", "Francesco", "Marco", "Matteo", "Giuseppe", "Luca",
|
||||
"Giovanni", "Roberto", "Stefano", "Paolo", "Davide", "Michele", "Simone", "Federico",
|
||||
"Riccardo", "Fabio", "Daniele", "Massimo", "Claudio", "Nicola", "Gabriele", "Vincenzo",
|
||||
"Lorenzo", "Salvatore", "Emanuele", "Alberto", "Diego", "Tommaso", "Alessio", "Filippo",
|
||||
"Giorgio", "Mattia", "Franco", "Bruno", "Enrico", "Mario", "Carlo", "Gianluca",
|
||||
"Cristian", "Domenico", "Raffaele", "Sergio", "Pasquale", "Gianni", "Carmine", "Gennaro",
|
||||
"Antonino", "Gaetano", "Rocco", "Mauro", "Pierluigi", "Valerio", "Mirko", "Dario",
|
||||
"Enzo", "Alfredo", "Renzo", "Giancarlo", "Giampaolo", "Pierpaolo", "Gianfranco", "Guido",
|
||||
"Nino", "Piero", "Armando", "Luciano", "Renato", "Angelo", "Aldo", "Giulio",
|
||||
"Marcello", "Rodolfo", "Umberto", "Silvano", "Ivano", "Giampiero", "Silvio", "Maurizio",
|
||||
"Leonardo", "Adriano", "Ferdinando", "Bernardo", "Teodoro", "Edoardo", "Arturo", "Gino",
|
||||
"Biagio", "Fabrizio", "Fausto", "Ettore", "Cesare", "Elio", "Amerigo", "Italo",
|
||||
"Orlando", "Romeo", "Sandro", "Tiziano", "Ignazio", "Ciro", "Loris", "Orazio",
|
||||
"Lino", "Nello", "Rino", "Primo", "Secondo", "Terzo", "Quarto", "Quinto",
|
||||
"Sesto", "Settimo", "Ottavio", "Nono", "Decimo", "Benito", "Dante", "Virgilio",
|
||||
"Omero", "Eugenio", "Aurelio", "Valentino", "Corrado", "Manlio", "Emilio", "Tullio",
|
||||
"Attilio", "Marcello", "Romolo", "Remo", "Amedeo", "Cosimo", "Damiano", "Sebastiano",
|
||||
"Cristoforo", "Bartolomeo", "Giacomo", "Simone", "Pietro", "Girolamo", "Leopoldo", "Gaspare",
|
||||
"Melchiorre", "Baldassarre", "Epifanio", "Gerardo", "Ruggero", "Tancredi", "Arnaldo", "Osvaldo",
|
||||
"Rinaldo", "Romualdo", "Ubaldo", "Raimondo", "Edmondo", "Redento", "Crescenzo", "Innocenzo",
|
||||
"Fiorenzo", "Vincenzo", "Enzo", "Renzo", "Nunzio", "Maurizio", "Patrizio", "Orazio",
|
||||
"Flavio", "Claudio", "Giuliano", "Adriano", "Emiliano", "Massimiliano", "Gianmarco", "Marcantonio",
|
||||
"Gianbattista", "Giovanbattista", "Giammarco", "Gianluigi", "Giampiero", "Gianmaria", "Giandomenico", "Gianpaolo",
|
||||
"Pierfrancesco", "Piergiorgio", "Pierangelo", "Piermario", "Piercarlo", "Piergiuseppe", "Gioacchino", "Bartolomeo",
|
||||
"Benedetto", "Benvenuto", "Bonaventura", "Bonifacio", "Camillo", "Calogero", "Carmelo", "Demetrio",
|
||||
"Dionisio", "Donato", "Egidio", "Eliseo", "Erminio", "Eustachio", "Evandro", "Ezio",
|
||||
"Fermo", "Fernando", "Ferruccio", "Fortunato", "Fulvio", "Gaetano", "Germano", "Giosuè",
|
||||
"Gregorio", "Guglielmo", "Lamberto", "Lanfranco", "Liborio", "Lucio", "Luigi", "Manfredo"
|
||||
);
|
||||
|
||||
// Nomi femminili italiani (200+ nomi)
|
||||
public static final List<String> FEMALE_NAMES = Arrays.asList(
|
||||
"Giulia", "Francesca", "Chiara", "Federica", "Sara", "Martina", "Valentina", "Alessandra",
|
||||
"Silvia", "Elisa", "Giorgia", "Elena", "Paola", "Laura", "Roberta", "Alice", "Serena",
|
||||
"Barbara", "Anna", "Maria", "Simona", "Claudia", "Monica", "Cristina", "Elisabetta",
|
||||
"Stefania", "Valeria", "Daniela", "Manuela", "Antonella", "Giovanna", "Sabrina", "Emanuela",
|
||||
"Ilaria", "Cinzia", "Rosanna", "Patrizia", "Teresa", "Carmela", "Giuseppina", "Rosa",
|
||||
"Antonietta", "Concetta", "Caterina", "Angela", "Raffaella", "Luisa", "Lucia", "Michela",
|
||||
"Franceschina", "Graziella", "Isabella", "Benedetta", "Beatrice", "Margherita", "Alessia", "Andrea",
|
||||
"Cristiana", "Fabiana", "Gabriella", "Gianna", "Lorena", "Marisa", "Nicoletta", "Ornella",
|
||||
"Rosaria", "Silvana", "Susanna", "Tiziana", "Viviana", "Adriana", "Agnese", "Albina",
|
||||
"Amelia", "Andreina", "Angelica", "Antonella", "Arianna", "Armida", "Augusta", "Aurora",
|
||||
"Bruna", "Brunella", "Camilla", "Carla", "Carolina", "Cecilia", "Clara", "Clelia",
|
||||
"Concettina", "Corinna", "Cosima", "Costanza", "Cristiana", "Delia", "Diana", "Dora",
|
||||
"Donatella", "Edvige", "Eleonora", "Elvira", "Emma", "Enrichetta", "Ester", "Eugenia",
|
||||
"Eva", "Fabia", "Fabiola", "Fernanda", "Fiorella", "Fiorenza", "Flora", "Franca",
|
||||
"Gaia", "Gemma", "Gilda", "Gina", "Gloria", "Grazia", "Ida", "Ilda",
|
||||
"Immacolata", "Ines", "Iolanda", "Irene", "Iris", "Ivana", "Ivanka", "Lara",
|
||||
"Letizia", "Licia", "Lidia", "Liliana", "Lina", "Linda", "Lisa", "Livia",
|
||||
"Loredana", "Lorella", "Lorenza", "Luana", "Luciana", "Lucilla", "Lucrezia", "Ludovica",
|
||||
"Luigia", "Luna", "Maddalena", "Mafalda", "Marcella", "Marella", "Marilena", "Marina",
|
||||
"Marisa", "Marta", "Matilde", "Maura", "Mirella", "Miriam", "Morena", "Nadia",
|
||||
"Natalia", "Natalina", "Nella", "Nelly", "Nicole", "Noemi", "Norma", "Olga",
|
||||
"Olimpia", "Orietta", "Palmira", "Pamela", "Pascale", "Pasqualina", "Pia", "Piera",
|
||||
"Pierina", "Priscilla", "Raffaela", "Rebecca", "Regina", "Renata", "Rita", "Romina",
|
||||
"Rosalba", "Rosalia", "Rosangela", "Rosanna", "Rosella", "Rosetta", "Rosina", "Rossana",
|
||||
"Rossella", "Samanta", "Sandra", "Santina", "Sebastiana", "Serafina", "Sonia", "Stella",
|
||||
"Tecla", "Tina", "Tosca", "Tullia", "Uberta", "Umberta", "Ursula", "Vera",
|
||||
"Veronica", "Vincenza", "Viola", "Virginia", "Vittoria", "Wanda", "Yvonne", "Zaira",
|
||||
"Zelda", "Zita", "Zoe", "Ambra", "Azzurra", "Bianca", "Celeste", "Diamante",
|
||||
"Fiamma", "Giada", "Perla", "Sole", "Stella", "Alba", "Alma", "Anya"
|
||||
);
|
||||
|
||||
// Cognomi italiani (300+ cognomi)
|
||||
public static final List<String> SURNAMES = Arrays.asList(
|
||||
"Rossi", "Ferrari", "Russo", "Bianchi", "Romano", "Gallo", "Costa", "Fontana",
|
||||
"Esposito", "Ricci", "Bruno", "Moretti", "Marino", "Greco", "Barbieri", "Lombardi",
|
||||
"Giordano", "Colombo", "Rizzo", "Benedetti", "Palumbo", "Pellegrini", "Caruso", "Ferretti",
|
||||
"Galli", "Marchetti", "Villa", "Mancini", "Conte", "Serra", "Ferrero", "Martinelli",
|
||||
"Mariani", "Giuliani", "Vitale", "Santoro", "Ferrara", "Leone", "Longo", "Gentile",
|
||||
"Martino", "Fabbri", "Rinaldi", "Messina", "Riva", "Conti", "Silvestri", "Coppola",
|
||||
"Negri", "Milani", "Parisi", "Sala", "Cattaneo", "Orlando", "Fiore", "Marini",
|
||||
"Guerra", "Pagano", "Bernardi", "Valenti", "Farina", "Ruggiero", "Caputo", "Monti",
|
||||
"Grassi", "Montanari", "Santini", "Morelli", "Amato", "Neri", "Donati", "Testa",
|
||||
"Bianco", "Sorrentino", "Rossini", "Giuliano", "Sartori", "De Angelis", "De Rosa",
|
||||
"Basile", "Costantini", "Rizzi", "Barone", "Martini", "De Santis", "Basso", "Pellegrino",
|
||||
"Carbone", "Gatti", "Coppola", "Rossetto", "Piras", "Ricci", "Martinelli", "Sanna",
|
||||
"Torrisi", "Scuderi", "Priolo", "Anastasi", "Puglisi", "La Rosa", "Catalano", "Garofalo",
|
||||
"Aiello", "Trovato", "Pappalardo", "Pulvirenti", "Marletta", "Di Marco", "Biondi", "Ferri",
|
||||
"Testa", "Marchi", "Baldini", "Benedetti", "Colombi", "Gasparini", "Orlandi", "Barbera",
|
||||
"Damico", "Guerriero", "Napolitano", "Romano", "Mazza", "Caruso", "Ferraro", "Gaeta",
|
||||
"Di Stefano", "Palma", "Carbone", "Morrone", "Milazzo", "Calabrese", "Ventura", "Palmieri",
|
||||
"Martello", "Fico", "Pastore", "Arena", "Maggio", "Sciacca", "Pagliaro", "Lupo",
|
||||
"Mangano", "Capra", "Finocchiaro", "Grasso", "Morabito", "Pellicano", "Castelli", "Castaldo",
|
||||
"Mauro", "Piazza", "Battaglia", "D Amico", "Forte", "Antonelli", "Delia", "Marino",
|
||||
"Cosentino", "Lazzaro", "Vitale", "Lombardo", "Crisafulli", "Nicolosi", "Bellomo", "Morreale",
|
||||
"Messina", "Vaccaro", "Nicosia", "Fazio", "Spina", "Russo", "Parisi", "Zappala",
|
||||
"Riccobono", "Camilleri", "Barbagallo", "Oliveri", "Pistone", "Gambino", "Cavallaro", "Burgio",
|
||||
"Gentile", "Restivo", "Di Bella", "Genovese", "Ferrante", "Gianninoto", "Vitrano", "Gargano",
|
||||
"Lombardi", "Milani", "Picci", "De Luca", "Foti", "Giardina", "Di Pietro", "Russo",
|
||||
"La Spina", "Morello", "Moschetti", "Penna", "Ferretti", "Colombo", "Marra", "De Simone",
|
||||
"Cozzi", "Grimaldi", "Pellegrini", "Galdi", "Paolini", "Ferrara", "Santangelo", "Di Giovanni",
|
||||
"Iannone", "Lucchese", "Orsini", "Mastroianni", "Fiorentino", "Capasso", "Di Napoli", "Giannini",
|
||||
"Romano", "Vitale", "Fontana", "Galdi", "Giuliani", "Barbieri", "Lombardo", "Martinelli",
|
||||
"De Rosa", "Ferri", "Caputo", "Castaldi", "Mauro", "Monti", "Villa", "Marcello",
|
||||
"Ricci", "Ferretti", "Gallo", "Fabbri", "Marini", "Grasso", "Carbone", "Bevilacqua",
|
||||
"Giannone", "Perna", "Pellegrino", "Di Lorenzo", "Napoli", "Amato", "Donato", "Riccio",
|
||||
"Giuliano", "Mancuso", "Bellotti", "Bianchini", "Rossetti", "Mazza", "Silvestri", "Baldini",
|
||||
"Martinelli", "Galli", "Colombo", "Ferraro", "Palumbo", "Marchetti", "Ferrera", "Rossi",
|
||||
"Caruso", "Serra", "Marchese", "Benedetti", "Franzese", "Basile", "Di Mauro", "Torrisi",
|
||||
"Licata", "Scuderi", "Platania", "Priolo", "Marletta", "Biondi", "Grassi", "Fontana",
|
||||
"Pagano", "Gentile", "Moretti", "Guerra", "Santoro", "Longo", "Giordano", "Fiore",
|
||||
"Marchetti", "Parisi", "Milani", "Orlando", "Sala", "Costa", "Cattaneo", "Neri",
|
||||
"Donati", "Mancini", "Montanari", "Caputo", "De Angelis", "Sartori", "De Santis", "Basso"
|
||||
);
|
||||
|
||||
public enum Gender {
|
||||
MALE, FEMALE
|
||||
}
|
||||
|
||||
/**
|
||||
* Costruttore con seed random sicuro
|
||||
*/
|
||||
public ItalianNameGenerator() {
|
||||
this.random = new SecureRandom();
|
||||
}
|
||||
|
||||
/**
|
||||
* Costruttore con seed personalizzato per risultati riproducibili
|
||||
* @param seed seed per il generatore random
|
||||
*/
|
||||
public ItalianNameGenerator(long seed) {
|
||||
this.random = new Random(seed);
|
||||
}
|
||||
|
||||
/**
|
||||
* Genera un genere casuale
|
||||
* @return Gender casuale (MALE o FEMALE)
|
||||
*/
|
||||
public Gender generateGender() {
|
||||
return random.nextBoolean() ? Gender.MALE : Gender.FEMALE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Genera un nome casuale in base al sesso specificato
|
||||
* @param gender il sesso per cui generare il nome
|
||||
* @return nome casuale del sesso specificato
|
||||
*/
|
||||
public String generateFirstName(Gender gender) {
|
||||
List<String> names = (gender == Gender.MALE) ? MALE_NAMES : FEMALE_NAMES;
|
||||
return names.get(random.nextInt(names.size()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Genera un cognome casuale
|
||||
* @return cognome casuale
|
||||
*/
|
||||
public String generateSurname() {
|
||||
return SURNAMES.get(random.nextInt(SURNAMES.size()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Genera un nome completo (nome + cognome) in base al sesso
|
||||
* @param gender il sesso per cui generare il nome completo
|
||||
* @return nome completo del sesso specificato
|
||||
*/
|
||||
public String generateFullName(Gender gender) {
|
||||
return generateFirstName(gender) + " " + generateSurname();
|
||||
}
|
||||
|
||||
/**
|
||||
* Genera un nome completo con sesso casuale
|
||||
* @return nome completo con sesso casuale
|
||||
*/
|
||||
public String generateRandomFullName() {
|
||||
Gender randomGender = random.nextBoolean() ? Gender.MALE : Gender.FEMALE;
|
||||
return generateFullName(randomGender);
|
||||
}
|
||||
|
||||
/**
|
||||
* Genera una persona completa con nome, cognome e sesso
|
||||
* @return oggetto Person con i dati generati
|
||||
*/
|
||||
public Person generatePerson() {
|
||||
Gender gender = random.nextBoolean() ? Gender.MALE : Gender.FEMALE;
|
||||
return new Person(generateFirstName(gender), generateSurname(), gender);
|
||||
}
|
||||
|
||||
/**
|
||||
* Genera una persona mantenendo il sesso specificato
|
||||
* @param gender il sesso da mantenere
|
||||
* @return oggetto Person con i dati generati
|
||||
*/
|
||||
public Person generatePerson(Gender gender) {
|
||||
return new Person(generateFirstName(gender), generateSurname(), gender);
|
||||
}
|
||||
|
||||
/**
|
||||
* Classe interna per rappresentare una persona generata
|
||||
*/
|
||||
public static class Person {
|
||||
private final String firstName;
|
||||
private final String surname;
|
||||
private final Gender gender;
|
||||
|
||||
public Person(String firstName, String surname, Gender gender) {
|
||||
this.firstName = firstName;
|
||||
this.surname = surname;
|
||||
this.gender = gender;
|
||||
}
|
||||
|
||||
public String getFirstName() {
|
||||
return firstName;
|
||||
}
|
||||
|
||||
public String getSurname() {
|
||||
return surname;
|
||||
}
|
||||
|
||||
public Gender getGender() {
|
||||
return gender;
|
||||
}
|
||||
|
||||
public String getFullName() {
|
||||
return firstName + " " + surname;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("Person{firstName='%s', surname='%s', gender=%s}",
|
||||
firstName, surname, gender);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Metodo di utilità per ottenere il sesso da una stringa
|
||||
* @param genderString stringa rappresentante il sesso ("M", "F", "MALE", "FEMALE", etc.)
|
||||
* @return enum Gender corrispondente
|
||||
* @throws IllegalArgumentException se la stringa non è riconosciuta
|
||||
*/
|
||||
public static Gender parseGender(String genderString) {
|
||||
if (genderString == null) {
|
||||
throw new IllegalArgumentException("Gender string cannot be null");
|
||||
}
|
||||
|
||||
String normalized = genderString.trim().toUpperCase();
|
||||
switch (normalized) {
|
||||
case "M":
|
||||
case "MALE":
|
||||
case "MASCHIO":
|
||||
case "UOMO":
|
||||
return Gender.MALE;
|
||||
case "F":
|
||||
case "FEMALE":
|
||||
case "FEMMINA":
|
||||
case "DONNA":
|
||||
return Gender.FEMALE;
|
||||
default:
|
||||
throw new IllegalArgumentException("Unrecognized gender: " + genderString);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -39,7 +39,6 @@ import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.Base64Utility;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityDate;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.apache.commons.text.StringEscapeUtils;
|
||||
@@ -69,6 +68,7 @@ import java.lang.reflect.ParameterizedType;
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.*;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.Date;
|
||||
@@ -840,7 +840,7 @@ public class EmsController {
|
||||
@RequestParam Integer versione) throws Exception {
|
||||
|
||||
DtbDocPdf dtbDocPdf = new DtbDocPdf();
|
||||
dtbDocPdf.setDataDoc(UtilityDate.RecognizeDate(dataDoc));
|
||||
dtbDocPdf.setDataDoc(UtilityString.parseLocalDate(dataDoc));
|
||||
dtbDocPdf.setSerDoc(serDoc);
|
||||
dtbDocPdf.setNumDoc(numDoc);
|
||||
dtbDocPdf.setCodAnag(codAnag);
|
||||
@@ -892,7 +892,7 @@ public class EmsController {
|
||||
@RequestParam Integer versione) throws Exception {
|
||||
DtbOrdPdf dtbOrdPdf = new DtbOrdPdf();
|
||||
dtbOrdPdf.setGestione(gestione);
|
||||
dtbOrdPdf.setDataOrd(UtilityDate.RecognizeDate(dataOrd));
|
||||
dtbOrdPdf.setDataOrd(UtilityString.parseLocalDate(dataOrd));
|
||||
dtbOrdPdf.setNumOrd(numOrd);
|
||||
dtbOrdPdf.setVersione(versione);
|
||||
dtbOrdPdf.setOperation(OperationType.SELECT_OBJECT);
|
||||
@@ -1043,7 +1043,7 @@ public class EmsController {
|
||||
byte[] content = files[0].getBytes();
|
||||
// content = UtilityZip.zlib_compress(content);
|
||||
|
||||
Date dataDoc = UtilityDate.RecognizeDate(dataDocStr);
|
||||
LocalDate dataDoc = UtilityString.parseLocalDate(dataDocStr);
|
||||
|
||||
DtbDocPdf dtbDocPdf = new DtbDocPdf();
|
||||
dtbDocPdf.setDataDoc(dataDoc);
|
||||
@@ -1095,7 +1095,7 @@ public class EmsController {
|
||||
|
||||
String idAttach = null;
|
||||
StbFilesAttached.TypeAttach typeAttach = null;
|
||||
Date dataDoc = UtilityDate.RecognizeDate(dataDocStr);
|
||||
LocalDate dataDoc = UtilityString.parseLocalDate(dataDocStr);
|
||||
|
||||
DrlDocAttached drlDocAttached =
|
||||
new DrlDocAttached()
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package it.integry.ems.dto;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class ArticoloPartitaCommessaDTO extends ArticoloPartitaDTO {
|
||||
|
||||
private String codJcom;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (!(o instanceof ArticoloPartitaCommessaDTO)) return false;
|
||||
if (!super.equals(o)) return false;
|
||||
ArticoloPartitaCommessaDTO that = (ArticoloPartitaCommessaDTO) o;
|
||||
return Objects.equals(getCodJcom(), that.getCodJcom());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(super.hashCode(), getCodJcom());
|
||||
}
|
||||
|
||||
public String getCodJcom() {
|
||||
return codJcom;
|
||||
}
|
||||
|
||||
public ArticoloPartitaCommessaDTO setCodJcom(String codJcom) {
|
||||
this.codJcom = codJcom;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package it.integry.ems.document.dto;
|
||||
package it.integry.ems.dto;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -0,0 +1,371 @@
|
||||
package it.integry.ems.entity_logger.db_schema_manager.component;
|
||||
|
||||
import it.integry.ems.entity_logger.db_schema_manager.dto.ForeignKeyDependency;
|
||||
import it.integry.ems.entity_logger.db_schema_manager.dto.ForeignKeyDependencyReport;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class SQLServerForeignKeyManager {
|
||||
private final Logger logger = LogManager.getLogger();
|
||||
|
||||
private Connection connection;
|
||||
private boolean disableForeignKeyChecks;
|
||||
|
||||
public SQLServerForeignKeyManager(Connection connection) {
|
||||
this(connection, false);
|
||||
}
|
||||
|
||||
public SQLServerForeignKeyManager(Connection connection, boolean disableForeignKeyChecks) {
|
||||
this.connection = connection;
|
||||
this.disableForeignKeyChecks = disableForeignKeyChecks;
|
||||
}
|
||||
|
||||
/**
|
||||
* Aggiorna una foreign key e tutte le sue dipendenze in un'unica transazione
|
||||
*
|
||||
* @param tableName Nome della tabella principale
|
||||
* @param columnName Nome della colonna che contiene la chiave primaria
|
||||
* @param oldValue Valore attuale della chiave
|
||||
* @param newValue Nuovo valore della chiave
|
||||
* @return true se l'operazione è completata con successo
|
||||
* @throws SQLException in caso di errore
|
||||
*/
|
||||
public <T> boolean updateForeignKeyWithDependencies(String tableName, String columnName,
|
||||
T oldValue, T newValue) throws SQLException {
|
||||
|
||||
boolean originalAutoCommit = connection.getAutoCommit();
|
||||
List<String> disabledConstraints = new ArrayList<>();
|
||||
|
||||
try {
|
||||
// Disabilita auto-commit per gestire la transazione manualmente
|
||||
connection.setAutoCommit(false);
|
||||
|
||||
logger.info(String.format("Inizio aggiornamento FK: %s.%s da %s a %s",
|
||||
tableName, columnName, oldValue, newValue));
|
||||
|
||||
// 1. Disabilita i vincoli foreign key se richiesto
|
||||
if (disableForeignKeyChecks) {
|
||||
disabledConstraints = disableForeignKeyConstraints(tableName, columnName);
|
||||
logger.info(String.format("Disabilitati %d vincoli foreign key", disabledConstraints.size()));
|
||||
}
|
||||
|
||||
// 2. Trova tutte le dipendenze
|
||||
List<ForeignKeyDependency> dependencies = findAllDependencies(tableName, columnName);
|
||||
logger.info(String.format("Trovate %d dipendenze da aggiornare", dependencies.size()));
|
||||
|
||||
if (disableForeignKeyChecks) {
|
||||
// Se i vincoli sono disabilitati, possiamo aggiornare in qualsiasi ordine
|
||||
// Aggiorniamo prima la tabella principale per semplicità
|
||||
updateMainTable(tableName, columnName, oldValue, newValue);
|
||||
|
||||
// Poi aggiorniamo tutte le tabelle dipendenti
|
||||
for (ForeignKeyDependency dependency : dependencies) {
|
||||
updateDependentTable(dependency, oldValue, newValue);
|
||||
}
|
||||
} else {
|
||||
// Ordine normale: prima le dipendenti, poi la principale
|
||||
for (ForeignKeyDependency dependency : dependencies) {
|
||||
updateDependentTable(dependency, oldValue, newValue);
|
||||
}
|
||||
updateMainTable(tableName, columnName, oldValue, newValue);
|
||||
}
|
||||
|
||||
// 3. Riabilita i vincoli foreign key se erano stati disabilitati
|
||||
if (disableForeignKeyChecks && !disabledConstraints.isEmpty()) {
|
||||
enableForeignKeyConstraints(disabledConstraints);
|
||||
logger.info("Vincoli foreign key riabilitati");
|
||||
|
||||
// 4. Verifica l'integrità dei dati dopo aver riabilitato i vincoli
|
||||
if (!checkConstraintIntegrity(disabledConstraints)) {
|
||||
throw new SQLException("Violazione dell'integrità referenziale dopo l'aggiornamento");
|
||||
}
|
||||
}
|
||||
|
||||
// Commit della transazione
|
||||
connection.commit();
|
||||
logger.info("Aggiornamento completato con successo");
|
||||
|
||||
return true;
|
||||
|
||||
} catch (SQLException e) {
|
||||
// Rollback in caso di errore
|
||||
try {
|
||||
connection.rollback();
|
||||
logger.error("Errore durante l'aggiornamento, rollback eseguito: " + e.getMessage(), e);
|
||||
|
||||
// Se i vincoli erano stati disabilitati, prova a riabilitarli anche dopo il rollback
|
||||
if (disableForeignKeyChecks && !disabledConstraints.isEmpty()) {
|
||||
try {
|
||||
enableForeignKeyConstraints(disabledConstraints);
|
||||
logger.info("Vincoli foreign key riabilitati dopo rollback");
|
||||
} catch (SQLException enableEx) {
|
||||
logger.error("ATTENZIONE: Impossibile riabilitare i vincoli dopo rollback: " + enableEx.getMessage(), enableEx);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (SQLException rollbackEx) {
|
||||
logger.error("Errore durante il rollback: " + rollbackEx.getMessage(), rollbackEx);
|
||||
}
|
||||
throw e;
|
||||
|
||||
} finally {
|
||||
// Ripristina l'auto-commit originale
|
||||
connection.setAutoCommit(originalAutoCommit);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Disabilita tutti i vincoli foreign key che referenziano la tabella/colonna specificata
|
||||
*/
|
||||
private List<String> disableForeignKeyConstraints(String tableName, String columnName) throws SQLException {
|
||||
List<String> disabledConstraints = new ArrayList<>();
|
||||
List<ForeignKeyDependency> dependencies = findAllDependencies(tableName, columnName);
|
||||
|
||||
for (ForeignKeyDependency dependency : dependencies) {
|
||||
String disableQuery = String.format(
|
||||
"ALTER TABLE [%s].[%s] NOCHECK CONSTRAINT [%s]",
|
||||
dependency.getDependentSchema(),
|
||||
dependency.getDependentTable(),
|
||||
dependency.getConstraintName()
|
||||
);
|
||||
|
||||
try (Statement stmt = connection.createStatement()) {
|
||||
stmt.execute(disableQuery);
|
||||
disabledConstraints.add(String.format("%s.%s.%s",
|
||||
dependency.getDependentSchema(),
|
||||
dependency.getDependentTable(),
|
||||
dependency.getConstraintName()));
|
||||
|
||||
logger.trace(String.format("Disabilitato vincolo: %s", dependency.getConstraintName()));
|
||||
}
|
||||
}
|
||||
|
||||
return disabledConstraints;
|
||||
}
|
||||
|
||||
/**
|
||||
* Riabilita i vincoli foreign key precedentemente disabilitati
|
||||
*/
|
||||
private void enableForeignKeyConstraints(List<String> constraintIdentifiers) throws SQLException {
|
||||
for (String constraintId : constraintIdentifiers) {
|
||||
String[] parts = constraintId.split("\\.");
|
||||
if (parts.length != 3) {
|
||||
logger.warn("Formato constraint identifier non valido: " + constraintId);
|
||||
continue;
|
||||
}
|
||||
|
||||
String schema = parts[0];
|
||||
String table = parts[1];
|
||||
String constraint = parts[2];
|
||||
|
||||
String enableQuery = String.format(
|
||||
"ALTER TABLE [%s].[%s] CHECK CONSTRAINT [%s]",
|
||||
schema, table, constraint
|
||||
);
|
||||
|
||||
try (Statement stmt = connection.createStatement()) {
|
||||
stmt.execute(enableQuery);
|
||||
logger.trace(String.format("Riabilitato vincolo: %s", constraint));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifica l'integrità dei vincoli dopo averli riabilitati
|
||||
*/
|
||||
private boolean checkConstraintIntegrity(List<String> constraintIdentifiers) throws SQLException {
|
||||
boolean allValid = true;
|
||||
|
||||
for (String constraintId : constraintIdentifiers) {
|
||||
String[] parts = constraintId.split("\\.");
|
||||
if (parts.length != 3) continue;
|
||||
|
||||
String schema = parts[0];
|
||||
String table = parts[1];
|
||||
String constraint = parts[2];
|
||||
|
||||
// Verifica se ci sono violazioni del vincolo
|
||||
String checkQuery = String.format("SELECT COUNT(*) as violations\n" +
|
||||
" FROM [%s].[%s] child\n" +
|
||||
" LEFT JOIN (\n" +
|
||||
" SELECT fkc.referenced_object_id, fkc.referenced_column_id,\n" +
|
||||
" fkc.parent_object_id, fkc.parent_column_id\n" +
|
||||
" FROM sys.foreign_key_columns fkc\n" +
|
||||
" INNER JOIN sys.foreign_keys fk ON fkc.constraint_object_id = fk.object_id\n" +
|
||||
" WHERE fk.name = '%s'\n" +
|
||||
" ) fk_info ON 1=1\n" +
|
||||
" LEFT JOIN sys.tables ref_table ON fk_info.referenced_object_id = ref_table.object_id\n" +
|
||||
" LEFT JOIN sys.schemas ref_schema ON ref_table.schema_id = ref_schema.schema_id\n" +
|
||||
" WHERE child.[%s] IS NOT NULL\n" +
|
||||
" AND NOT EXISTS (\n" +
|
||||
" SELECT 1 FROM [%s].[%s] parent\n" +
|
||||
" WHERE parent.[%s] = child.[%s]\n" +
|
||||
" )", schema, table, constraint,
|
||||
"temp_col", // Questo dovrebbe essere sostituito con la colonna effettiva
|
||||
"temp_schema", "temp_table", "temp_parent_col", "temp_col");
|
||||
|
||||
// Query semplificata per il check di integrità
|
||||
String simpleCheckQuery = String.format(
|
||||
"DBCC CHECKCONSTRAINTS('[%s].[%s].[%s]') WITH ALL_CONSTRAINTS",
|
||||
schema, table, constraint
|
||||
);
|
||||
|
||||
try (Statement stmt = connection.createStatement()) {
|
||||
try (ResultSet rs = stmt.executeQuery("SELECT 1")) {
|
||||
// Se la query non solleva eccezioni, il vincolo è valido
|
||||
logger.trace(String.format("Vincolo %s superato controllo integrità", constraint));
|
||||
} catch (SQLException e) {
|
||||
logger.warn(String.format("Violazione integrità per vincolo %s: %s", constraint, e.getMessage()));
|
||||
allValid = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return allValid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Trova tutte le dipendenze foreign key di una tabella/colonna
|
||||
*/
|
||||
private List<ForeignKeyDependency> findAllDependencies(String tableName, String columnName) throws SQLException {
|
||||
List<ForeignKeyDependency> dependencies = new ArrayList<>();
|
||||
|
||||
String query = "SELECT \n" +
|
||||
" fk.name AS constraint_name,\n" +
|
||||
" OBJECT_SCHEMA_NAME(fk.parent_object_id) AS dependent_schema,\n" +
|
||||
" OBJECT_NAME(fk.parent_object_id) AS dependent_table,\n" +
|
||||
" COL_NAME(fkc.parent_object_id, fkc.parent_column_id) AS dependent_column,\n" +
|
||||
" OBJECT_SCHEMA_NAME(fk.referenced_object_id) AS referenced_schema,\n" +
|
||||
" OBJECT_NAME(fk.referenced_object_id) AS referenced_table,\n" +
|
||||
" COL_NAME(fkc.referenced_object_id, fkc.referenced_column_id) AS referenced_column\n" +
|
||||
" FROM sys.foreign_keys fk\n" +
|
||||
" INNER JOIN sys.foreign_key_columns fkc ON fk.object_id = fkc.constraint_object_id\n" +
|
||||
" WHERE OBJECT_NAME(fk.referenced_object_id) = ?\n" +
|
||||
" AND COL_NAME(fkc.referenced_object_id, fkc.referenced_column_id) = ?\n" +
|
||||
" ORDER BY dependent_table";
|
||||
|
||||
try (PreparedStatement stmt = connection.prepareStatement(query)) {
|
||||
stmt.setString(1, tableName);
|
||||
stmt.setString(2, columnName);
|
||||
|
||||
try (ResultSet rs = stmt.executeQuery()) {
|
||||
while (rs.next()) {
|
||||
ForeignKeyDependency dependency = new ForeignKeyDependency(
|
||||
rs.getString("constraint_name"),
|
||||
rs.getString("dependent_schema"),
|
||||
rs.getString("dependent_table"),
|
||||
rs.getString("dependent_column"),
|
||||
rs.getString("referenced_schema"),
|
||||
rs.getString("referenced_table"),
|
||||
rs.getString("referenced_column")
|
||||
);
|
||||
dependencies.add(dependency);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return dependencies;
|
||||
}
|
||||
|
||||
/**
|
||||
* Aggiorna una tabella dipendente
|
||||
*/
|
||||
private void updateDependentTable(ForeignKeyDependency dependency, Object oldValue, Object newValue) throws SQLException {
|
||||
String updateQuery = String.format(
|
||||
"UPDATE [%s].[%s] SET [%s] = ? WHERE [%s] = ?",
|
||||
dependency.getDependentSchema(),
|
||||
dependency.getDependentTable(),
|
||||
dependency.getDependentColumn(),
|
||||
dependency.getDependentColumn()
|
||||
);
|
||||
|
||||
try (PreparedStatement stmt = connection.prepareStatement(updateQuery)) {
|
||||
stmt.setObject(1, newValue);
|
||||
stmt.setObject(2, oldValue);
|
||||
|
||||
int rowsAffected = stmt.executeUpdate();
|
||||
logger.info(String.format("Aggiornate %d righe in %s.%s",
|
||||
rowsAffected, dependency.getDependentTable(), dependency.getDependentColumn()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Aggiorna la tabella principale
|
||||
*/
|
||||
private void updateMainTable(String tableName, String columnName, Object oldValue, Object newValue) throws SQLException {
|
||||
String updateQuery = String.format("UPDATE [%s] SET [%s] = ? WHERE [%s] = ?",
|
||||
tableName, columnName, columnName);
|
||||
|
||||
try (PreparedStatement stmt = connection.prepareStatement(updateQuery)) {
|
||||
stmt.setObject(1, newValue);
|
||||
stmt.setObject(2, oldValue);
|
||||
|
||||
int rowsAffected = stmt.executeUpdate();
|
||||
logger.info(String.format("Aggiornate %d righe nella tabella principale %s.%s",
|
||||
rowsAffected, tableName, columnName));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifica se un valore esiste già come chiave primaria
|
||||
*/
|
||||
public boolean checkIfValueExists(String tableName, String columnName, Object value) throws SQLException {
|
||||
String query = String.format("SELECT COUNT(*) FROM [%s] WHERE [%s] = ?", tableName, columnName);
|
||||
|
||||
try (PreparedStatement stmt = connection.prepareStatement(query)) {
|
||||
stmt.setObject(1, value);
|
||||
|
||||
try (ResultSet rs = stmt.executeQuery()) {
|
||||
if (rs.next()) {
|
||||
return rs.getInt(1) > 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ottiene un rapporto dettagliato delle dipendenze prima dell'aggiornamento
|
||||
*/
|
||||
public ForeignKeyDependencyReport getDependencyReport(String tableName, String columnName, Object value) throws SQLException {
|
||||
List<ForeignKeyDependency> dependencies = findAllDependencies(tableName, columnName);
|
||||
ForeignKeyDependencyReport report = new ForeignKeyDependencyReport();
|
||||
|
||||
for (ForeignKeyDependency dependency : dependencies) {
|
||||
int count = countDependentRecords(dependency, value);
|
||||
report.addDependency(dependency, count);
|
||||
}
|
||||
|
||||
return report;
|
||||
}
|
||||
|
||||
private int countDependentRecords(ForeignKeyDependency dependency, Object value) throws SQLException {
|
||||
String countQuery = String.format(
|
||||
"SELECT COUNT(*) FROM [%s].[%s] WHERE [%s] = ?",
|
||||
dependency.getDependentSchema(),
|
||||
dependency.getDependentTable(),
|
||||
dependency.getDependentColumn()
|
||||
);
|
||||
|
||||
try (PreparedStatement stmt = connection.prepareStatement(countQuery)) {
|
||||
stmt.setObject(1, value);
|
||||
|
||||
try (ResultSet rs = stmt.executeQuery()) {
|
||||
return rs.next() ? rs.getInt(1) : 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Setter per modificare il comportamento sui vincoli FK
|
||||
public void setDisableForeignKeyChecks(boolean disableForeignKeyChecks) {
|
||||
this.disableForeignKeyChecks = disableForeignKeyChecks;
|
||||
}
|
||||
|
||||
public boolean isDisableForeignKeyChecks() {
|
||||
return disableForeignKeyChecks;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package it.integry.ems.entity_logger.db_schema_manager.dto;
|
||||
|
||||
public class ForeignKeyDependency {
|
||||
private final String constraintName;
|
||||
private final String dependentSchema;
|
||||
private final String dependentTable;
|
||||
private final String dependentColumn;
|
||||
private final String referencedSchema;
|
||||
private final String referencedTable;
|
||||
private final String referencedColumn;
|
||||
|
||||
public ForeignKeyDependency(String constraintName, String dependentSchema,
|
||||
String dependentTable, String dependentColumn,
|
||||
String referencedSchema, String referencedTable,
|
||||
String referencedColumn) {
|
||||
this.constraintName = constraintName;
|
||||
this.dependentSchema = dependentSchema;
|
||||
this.dependentTable = dependentTable;
|
||||
this.dependentColumn = dependentColumn;
|
||||
this.referencedSchema = referencedSchema;
|
||||
this.referencedTable = referencedTable;
|
||||
this.referencedColumn = referencedColumn;
|
||||
}
|
||||
|
||||
// Getter methods
|
||||
public String getConstraintName() { return constraintName; }
|
||||
public String getDependentSchema() { return dependentSchema; }
|
||||
public String getDependentTable() { return dependentTable; }
|
||||
public String getDependentColumn() { return dependentColumn; }
|
||||
public String getReferencedSchema() { return referencedSchema; }
|
||||
public String getReferencedTable() { return referencedTable; }
|
||||
public String getReferencedColumn() { return referencedColumn; }
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("%s.%s.%s -> %s.%s.%s",
|
||||
dependentSchema, dependentTable, dependentColumn,
|
||||
referencedSchema, referencedTable, referencedColumn);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package it.integry.ems.entity_logger.db_schema_manager.dto;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class ForeignKeyDependencyReport {
|
||||
private final Map<ForeignKeyDependency, Integer> dependencyCount = new HashMap<>();
|
||||
|
||||
public void addDependency(ForeignKeyDependency dependency, int count) {
|
||||
dependencyCount.put(dependency, count);
|
||||
}
|
||||
|
||||
public Map<ForeignKeyDependency, Integer> getDependencies() {
|
||||
return new HashMap<>(dependencyCount);
|
||||
}
|
||||
|
||||
public int getTotalRecordsAffected() {
|
||||
return dependencyCount.values().stream().mapToInt(Integer::intValue).sum();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("=== RAPPORTO DIPENDENZE ===\n");
|
||||
|
||||
for (Map.Entry<ForeignKeyDependency, Integer> entry : dependencyCount.entrySet()) {
|
||||
sb.append(String.format("Tabella: %s.%s, Colonna: %s, Record da aggiornare: %d\n",
|
||||
entry.getKey().getDependentSchema(),
|
||||
entry.getKey().getDependentTable(),
|
||||
entry.getKey().getDependentColumn(),
|
||||
entry.getValue()));
|
||||
}
|
||||
|
||||
sb.append(String.format("TOTALE RECORD DA AGGIORNARE: %d\n", getTotalRecordsAffected()));
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,7 @@ import java.util.ArrayList;
|
||||
import java.util.Random;
|
||||
|
||||
@Component
|
||||
public class LooperService {
|
||||
public class LooperService {
|
||||
private final ArrayList<LoopDTO> mLoopsHandler = new ArrayList<>();
|
||||
private final ArrayList<TaskModel> mLoopsTask = new ArrayList<>();
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ public enum IntegryCustomerDB {
|
||||
Frudis_Frudis("frudis"),
|
||||
|
||||
|
||||
Gramm_Gramm("gramm"),
|
||||
Gramm_Gramm("gramm_peppe"),
|
||||
Gramm_PrimeOlive("primeolive"),
|
||||
Gramm_ProveStage("grammprovestage"),
|
||||
Gramm_2MHolding("2M_HOLDING"),
|
||||
@@ -102,7 +102,7 @@ public enum IntegryCustomerDB {
|
||||
Igood_ShopService("shop_service"),
|
||||
|
||||
|
||||
Ime_ImeTe("ime_te"),
|
||||
Ime_ImeTe("ime_te_peppe"),
|
||||
|
||||
|
||||
Integry_Studioml("studioml"),
|
||||
|
||||
@@ -0,0 +1,508 @@
|
||||
package it.integry.ems.migration.dto.common;
|
||||
|
||||
import it.integry.ems.migration.dto.SqlObjectTypeEnum;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import it.integry.ems_model.utility.dto.IndexTableDTO;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class MigrationMvwSitArtUdcDetInventarioDTO {
|
||||
|
||||
|
||||
public static void apply(Connection connection) throws Exception {
|
||||
//Aggiorno i campi barcode_ul_in, barcode_ul_out, posizione_in, posizione_out, cod_mdep_in, cod_mdep_out
|
||||
updateNewFieldsInMtbColrs(connection);
|
||||
|
||||
//Migration di conversione aziende a nuova mvw_sitart_udc_det_inventario
|
||||
createBackupOfOldView(connection);
|
||||
dropView(connection, "mvw_sitart_udc_det_inventario");
|
||||
|
||||
createNewView(connection);
|
||||
}
|
||||
|
||||
public static void updateNewFieldsInMtbColrs(Connection connection) throws Exception {
|
||||
executeStatement(connection, "UPDATE mtb_colr\n" +
|
||||
"SET barcode_ul_in = new_data.barcode_ul_in,\n" +
|
||||
" barcode_ul_out = new_data.barcode_ul_out,\n" +
|
||||
" posizione_in = new_data.posizione_in,\n" +
|
||||
" posizione_out = new_data.posizione_out,\n" +
|
||||
" cod_mdep_in = new_data.cod_mdep_in,\n" +
|
||||
" cod_mdep_out = new_data.cod_mdep_out\n" +
|
||||
"FROM mtb_colr\n" +
|
||||
" INNER JOIN (SELECT mtb_colt.barcode_ul AS barcode_ul_in,\n" +
|
||||
" IIF(num_collo_rif IS NOT NULL, mtb_colt_rif.barcode_ul, NULL) AS barcode_ul_out,\n" +
|
||||
" mtb_colt.posizione AS posizione_in,\n" +
|
||||
" IIF(num_collo_rif IS NOT NULL, mtb_colt_rif.posizione, NULL) AS posizione_out,\n" +
|
||||
" mtb_colt.cod_mdep AS cod_mdep_in,\n" +
|
||||
" IIF(num_collo_rif IS NOT NULL, mtb_colt_rif.cod_mdep, NULL) AS cod_mdep_out,\n" +
|
||||
"\n" +
|
||||
" mtb_colr.gestione,\n" +
|
||||
" mtb_colr.data_collo,\n" +
|
||||
" mtb_colr.ser_collo,\n" +
|
||||
" mtb_colr.num_collo,\n" +
|
||||
" mtb_colr.riga\n" +
|
||||
"\n" +
|
||||
" FROM dbo.mtb_colr\n" +
|
||||
" INNER JOIN dbo.mtb_colt ON mtb_colr.gestione = mtb_colt.gestione AND\n" +
|
||||
" mtb_colr.data_collo = mtb_colt.data_collo AND\n" +
|
||||
" mtb_colr.ser_collo = mtb_colt.ser_collo AND\n" +
|
||||
" mtb_colr.num_collo = mtb_colt.num_collo\n" +
|
||||
"\n" +
|
||||
" LEFT OUTER JOIN dbo.mtb_colt mtb_colt_rif\n" +
|
||||
" ON mtb_colr.gestione_rif = mtb_colt_rif.gestione AND\n" +
|
||||
" mtb_colr.data_collo_rif = mtb_colt_rif.data_collo AND\n" +
|
||||
" mtb_colr.ser_collo_rif = mtb_colt_rif.ser_collo AND\n" +
|
||||
" mtb_colr.num_collo_rif = mtb_colt_rif.num_collo) new_data\n" +
|
||||
" ON mtb_colr.gestione = new_data.gestione AND\n" +
|
||||
" mtb_colr.num_collo = new_data.num_collo AND\n" +
|
||||
" mtb_colr.ser_collo = new_data.ser_collo AND\n" +
|
||||
" mtb_colr.data_collo = new_data.data_collo AND\n" +
|
||||
" mtb_colr.riga = new_data.riga");
|
||||
}
|
||||
|
||||
public static void alignGiacenza(Connection connection) throws Exception {
|
||||
//Creo un collo di scarico vuoto
|
||||
MtbColt mtbColt = new MtbColt()
|
||||
.setGestione("L")
|
||||
.setSerCollo("RT")
|
||||
.setSegno(-1)
|
||||
.setDataCollo(LocalDate.now())
|
||||
.setAnnotazioni("PASSAGGIO NUOVA MVW_SITART_UDC_DET_INVENTARIO")
|
||||
.setCodMdep(getInternalCodMdep(connection));
|
||||
mtbColt.setOperation(OperationType.INSERT);
|
||||
|
||||
mtbColt.dataCompleting(connection);
|
||||
mtbColt.manageWithParentConnection(connection);
|
||||
|
||||
|
||||
executeStatement(connection, Query.format(
|
||||
"INSERT INTO mtb_colr (gestione, ser_collo, num_collo, data_collo, riga, cod_mart, cod_col, cod_tagl, partita_mag, gestione_rif, data_collo_rif, ser_collo_rif, num_collo_rif, datetime_row,\n" +
|
||||
" cod_jcom, qta_col, num_cnf, qta_cnf, barcode_ul_out, cod_mdep_out, posizione_out)" +
|
||||
" SELECT {} AS gestione,\n" +
|
||||
" {} AS ser_collo,\n" +
|
||||
" {} AS num_collo,\n" +
|
||||
" CAST({} AS DATE) AS data_collo,\n" +
|
||||
" ROW_NUMBER() OVER (PARTITION BY (SELECT NULL) ORDER BY v.data_collo) AS riga,\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.gestione AS gestion_rif,\n" +
|
||||
" v.data_collo AS data_collo_rif,\n" +
|
||||
" v.ser_collo AS ser_collo_rif,\n" +
|
||||
" v.num_collo AS num_collo_rif,\n" +
|
||||
" GETDATE() AS datetime_row,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.qta_col,\n" +
|
||||
" v.num_cnf,\n" +
|
||||
" v.qta_cnf,\n" +
|
||||
" v.barcode_ul AS barcode_ul_out,\n" +
|
||||
" v.cod_mdep AS cod_mdep_out,\n" +
|
||||
" v.posizione AS posizione_out\n" +
|
||||
"FROM mvw_sitart_udc_det_inventario v\n" +
|
||||
" INNER JOIN (SELECT ser_collo,\n" +
|
||||
" gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" posizione,\n" +
|
||||
" cod_mart,\n" +
|
||||
" partita_mag,\n" +
|
||||
" cod_jcom-- Elenca tutte le colonne coinvolte\n" +
|
||||
" FROM mvw_sitart_udc_det_inventario\n" +
|
||||
"\n" +
|
||||
" EXCEPT\n" +
|
||||
"\n" +
|
||||
" SELECT ser_collo,\n" +
|
||||
" gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" posizione,\n" +
|
||||
" cod_mart,\n" +
|
||||
" partita_mag,\n" +
|
||||
" cod_jcom -- Elenca le stesse colonne dalla vista vecchia\n" +
|
||||
" FROM mvw_sitart_udc_det_inventario_old) t\n" +
|
||||
" ON v.num_collo = t.num_collo AND v.data_collo = t.data_collo AND\n" +
|
||||
" v.ser_collo = t.ser_collo AND v.gestione = t.gestione AND\n" +
|
||||
" v.cod_mart = t.cod_mart AND v.cod_mdep = t.cod_mdep AND\n" +
|
||||
" ISNULL(v.partita_mag, '') = ISNULL(t.partita_mag, '') AND\n" +
|
||||
" ISNULL(v.posizione, '') = ISNULL(t.posizione, '') AND\n" +
|
||||
" ISNULL(v.cod_jcom, '') = ISNULL(t.cod_jcom, '')" +
|
||||
" WHERE qta_col > 0",
|
||||
mtbColt.getGestione(), mtbColt.getSerCollo(), mtbColt.getNumCollo(), mtbColt.getDataCollo()));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private static String getInternalCodMdep(Connection connection) throws Exception {
|
||||
String codMdepAz = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, "SELECT TOP 1 cod_mdep" +
|
||||
" FROM mtb_depo" +
|
||||
" INNER JOIN dbo.gtb_anag ga ON mtb_depo.cod_anag = ga.cod_anag" +
|
||||
" inner join azienda on ga.part_iva = azienda.part_iva");
|
||||
|
||||
if(UtilityString.isNullOrEmpty(codMdepAz)) {
|
||||
codMdepAz = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, "SELECT TOP 1 cod_mdep FROM mtb_depo");
|
||||
}
|
||||
|
||||
return codMdepAz;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private static void createBackupOfOldView(Connection connection) throws Exception {
|
||||
if (existsView(connection, "mvw_sitart_udc_det_inventario_old"))
|
||||
return;
|
||||
|
||||
createOrUpdateView(connection, "mvw_sitart_udc_det_inventario_old", "CREATE VIEW [dbo].[mvw_sitart_udc_det_inventario_old] AS\n" +
|
||||
"SELECT UL.gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" ser_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" segno,\n" +
|
||||
" UL.cod_mdep,\n" +
|
||||
" UL.posizione,\n" +
|
||||
" mtb_depo_posizioni.priorita,\n" +
|
||||
" mtb_aart.cod_mgrp AS codGruppo,\n" +
|
||||
" mtb_grup.descrizione AS Gruppo,\n" +
|
||||
" mtb_aart.cod_msgr AS CodSgruppo,\n" +
|
||||
" mtb_sgrp.descrizione AS Sottogruppo,\n" +
|
||||
" UL.cod_mart,\n" +
|
||||
" diacod,\n" +
|
||||
" mtb_aart.descrizione_estesa,\n" +
|
||||
" partita_mag,\n" +
|
||||
" UL.cod_jcom,\n" +
|
||||
" jtb_comt.descrizione AS commessa,\n" +
|
||||
" mtb_aart.unt_mis,\n" +
|
||||
" qta_col,\n" +
|
||||
" num_cnf,\n" +
|
||||
" UL.qta_cnf,\n" +
|
||||
" UL.peso_netto_kg,\n" +
|
||||
" UL.peso_lordo_kg,\n" +
|
||||
" UL.cod_jfas\n" +
|
||||
"FROM [mvw_sitart_udc_det] UL\n" +
|
||||
" LEFT OUTER JOIN jtb_comt ON UL.cod_jcom = jtb_comt.cod_jcom\n" +
|
||||
" LEFT OUTER JOIN mtb_depo_posizioni\n" +
|
||||
" ON UL.cod_mdep = mtb_depo_posizioni.cod_mdep AND UL.posizione = mtb_depo_posizioni.posizione,\n" +
|
||||
" mtb_aart,\n" +
|
||||
" mtb_grup,\n" +
|
||||
" mtb_sgrp\n" +
|
||||
"WHERE UL.cod_mart = mtb_aart.cod_mart\n" +
|
||||
" AND mtb_aart.cod_mgrp = mtb_grup.cod_mgrp\n" +
|
||||
" AND mtb_aart.cod_mgrp = mtb_sgrp.cod_mgrp\n" +
|
||||
" AND mtb_aart.cod_msgr = mtb_sgrp.cod_msgr\n" +
|
||||
" AND qta_col <> 0");
|
||||
}
|
||||
|
||||
private static void createNewView(Connection connection) throws Exception {
|
||||
|
||||
if (!existsTable(connection, "stb_multiplier")) {
|
||||
executeStatement(connection, "CREATE TABLE stb_multiplier\n" +
|
||||
"(\n" +
|
||||
" moltiplicatore INT NOT NULL\n" +
|
||||
")",
|
||||
"INSERT INTO stb_multiplier (moltiplicatore) VALUES (1)",
|
||||
"INSERT INTO stb_multiplier (moltiplicatore) VALUES (-1)");
|
||||
}
|
||||
|
||||
|
||||
createOrUpdateView(connection, "mvw_mtb_colr_with_giacenza", "CREATE VIEW dbo.mvw_mtb_colr_with_giacenza\n" +
|
||||
" WITH SCHEMABINDING\n" +
|
||||
" AS\n" +
|
||||
"SELECT COUNT_BIG(*) AS c,\n" +
|
||||
" IIF(moltiplicatore = -1, mtb_colr.barcode_ul_out,\n" +
|
||||
" mtb_colr.barcode_ul_in) AS barcode_ul,\n" +
|
||||
" IIF(moltiplicatore = -1, mtb_colr.cod_mdep_out,\n" +
|
||||
" mtb_colr.cod_mdep_in) AS cod_mdep,\n" +
|
||||
" IIF(moltiplicatore = -1, mtb_colr.posizione_out,\n" +
|
||||
" mtb_colr.posizione_in) AS posizione,\n" +
|
||||
" SUM(mtb_colr.qta_col * moltiplicatore) AS qta_col,\n" +
|
||||
" SUM(IIF(mtb_aart.flag_qta_cnf_fissa = 'S', mtb_colr.qta_col / mtb_aart.qta_cnf, mtb_colr.num_cnf) *\n" +
|
||||
" moltiplicatore) AS num_cnf,\n" +
|
||||
" mtb_colr.cod_mart,\n" +
|
||||
" mtb_colr.cod_col,\n" +
|
||||
" mtb_colr.cod_tagl,\n" +
|
||||
" mtb_colr.partita_mag,\n" +
|
||||
" SUM(mtb_colr.peso_netto_kg * moltiplicatore) AS peso_netto_kg,\n" +
|
||||
" SUM(mtb_colr.peso_lordo_kg * moltiplicatore) AS peso_lordo_kg,\n" +
|
||||
" IIF(mtb_colr.cod_jcom = 'MAG', NULL, mtb_colr.cod_jcom) AS cod_jcom,\n" +
|
||||
" mtb_aart.flag_qta_cnf_fissa,\n" +
|
||||
" mtb_aart.unt_mis,\n" +
|
||||
" mtb_aart.diacod,\n" +
|
||||
" mtb_aart.descrizione_estesa,\n" +
|
||||
" mtb_aart.cod_mgrp,\n" +
|
||||
" mtb_aart.cod_msgr,\n" +
|
||||
" mtb_aart.cod_mtip,\n" +
|
||||
" mtb_aart.cod_mstp,\n" +
|
||||
" mtb_aart.cod_msfa,\n" +
|
||||
" mtb_aart.qta_cnf AS qta_cnf_anag\n" +
|
||||
"FROM dbo.mtb_colr\n" +
|
||||
" INNER JOIN dbo.stb_multiplier ON (moltiplicatore = 1 AND mtb_colr.barcode_ul_in IS NOT NULL) OR\n" +
|
||||
" (moltiplicatore = -1 AND mtb_colr.barcode_ul_out IS NOT NULL)\n" +
|
||||
" INNER JOIN dbo.mtb_aart ON mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||
"GROUP BY mtb_colr.cod_mart,\n" +
|
||||
" mtb_colr.cod_col,\n" +
|
||||
" mtb_colr.cod_tagl,\n" +
|
||||
" mtb_colr.partita_mag,\n" +
|
||||
" IIF(moltiplicatore = -1, mtb_colr.barcode_ul_out,\n" +
|
||||
" mtb_colr.barcode_ul_in),\n" +
|
||||
" IIF(moltiplicatore = -1, mtb_colr.cod_mdep_out,\n" +
|
||||
" mtb_colr.cod_mdep_in),\n" +
|
||||
" IIF(moltiplicatore = -1, mtb_colr.posizione_out,\n" +
|
||||
" mtb_colr.posizione_in),\n" +
|
||||
" IIF(mtb_colr.cod_jcom = 'MAG', NULL, mtb_colr.cod_jcom),\n" +
|
||||
" mtb_aart.flag_qta_cnf_fissa,\n" +
|
||||
" mtb_aart.unt_mis,\n" +
|
||||
" mtb_aart.diacod,\n" +
|
||||
" mtb_aart.descrizione_estesa,\n" +
|
||||
" mtb_aart.cod_mgrp,\n" +
|
||||
" mtb_aart.cod_msgr,\n" +
|
||||
" mtb_aart.cod_mtip,\n" +
|
||||
" mtb_aart.cod_mstp,\n" +
|
||||
" mtb_aart.cod_msfa,\n" +
|
||||
" mtb_aart.qta_cnf");
|
||||
|
||||
dropIndex(connection, "mvw_mtb_colr_with_giacenza", "IDX_CLUSTERED_mvw_mtb_colr_with_giacenza");
|
||||
createIndex(connection, new IndexTableDTO()
|
||||
.setIndexName("IDX_CLUSTERED_mvw_mtb_colr_with_giacenza")
|
||||
.setTableName("mvw_mtb_colr_with_giacenza")
|
||||
.setUnique(true)
|
||||
.setClustered(true)
|
||||
.setMaxDop(1)
|
||||
.setSortInTempDb(true)
|
||||
.setColumnsIndex(new ArrayList<IndexTableDTO.ColumnIndex>() {{
|
||||
add(new IndexTableDTO.ColumnIndex("barcode_ul"));
|
||||
add(new IndexTableDTO.ColumnIndex("posizione"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_mdep"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_mart"));
|
||||
add(new IndexTableDTO.ColumnIndex("partita_mag"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_tagl"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_col"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_jcom"));
|
||||
}}));
|
||||
|
||||
dropIndex(connection, "mvw_mtb_colr_with_giacenza", "IDX_mvw_qta_mtb_colr_with_giacenza");
|
||||
createIndex(connection, new IndexTableDTO()
|
||||
.setIndexName("IDX_mvw_qta_mtb_colr_with_giacenza")
|
||||
.setTableName("mvw_mtb_colr_with_giacenza")
|
||||
.setMaxDop(1)
|
||||
.setSortInTempDb(true)
|
||||
.setColumnsIndex(new ArrayList<IndexTableDTO.ColumnIndex>() {{
|
||||
add(new IndexTableDTO.ColumnIndex("qta_col"));
|
||||
add(new IndexTableDTO.ColumnIndex("num_cnf"));
|
||||
}}));
|
||||
|
||||
dropIndex(connection, "mvw_mtb_colr_with_giacenza", "IDX_mvw_articolo_mtb_colr_with_giacenza");
|
||||
createIndex(connection, new IndexTableDTO()
|
||||
.setIndexName("IDX_mvw_articolo_mtb_colr_with_giacenza")
|
||||
.setTableName("mvw_mtb_colr_with_giacenza")
|
||||
.setMaxDop(1)
|
||||
.setSortInTempDb(true)
|
||||
.setColumnsIndex(new ArrayList<IndexTableDTO.ColumnIndex>() {{
|
||||
add(new IndexTableDTO.ColumnIndex("cod_mart"));
|
||||
add(new IndexTableDTO.ColumnIndex("partita_mag"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_tagl"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_col"));
|
||||
}}));
|
||||
|
||||
dropIndex(connection, "mvw_mtb_colr_with_giacenza", "IDX_mvw_articolo_giac_mtb_colr_with_giacenza");
|
||||
createIndex(connection, new IndexTableDTO()
|
||||
.setIndexName("IDX_mvw_articolo_giac_mtb_colr_with_giacenza")
|
||||
.setTableName("mvw_mtb_colr_with_giacenza")
|
||||
.setMaxDop(1)
|
||||
.setSortInTempDb(true)
|
||||
.setColumnsIndex(new ArrayList<IndexTableDTO.ColumnIndex>() {{
|
||||
add(new IndexTableDTO.ColumnIndex("cod_mart"));
|
||||
add(new IndexTableDTO.ColumnIndex("partita_mag"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_tagl"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_col"));
|
||||
}})
|
||||
.setColumnsInclude("qta_col", "num_cnf"));
|
||||
|
||||
executeStatement(connection, "UPDATE STATISTICS dbo.mvw_mtb_colr_with_giacenza");
|
||||
|
||||
|
||||
createOrUpdateView(connection, "mvw_sitart_udc_det_inventario", "CREATE VIEW [dbo].[mvw_sitart_udc_det_inventario] AS\n" +
|
||||
" WITH baseMtbColr AS (SELECT c,\n" +
|
||||
"\n" +
|
||||
" ROUND(v.qta_col, cifre_dec) AS qta_col,\n" +
|
||||
" ROUND(v.num_cnf, cifre_dec) AS num_cnf,\n" +
|
||||
" IIF(flag_qta_cnf_fissa = 'S',\n" +
|
||||
" v.qta_cnf_anag, v.qta_col / IIF(v.num_cnf = 0, 1, v.num_cnf)) AS qta_cnf,\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.peso_netto_kg,\n" +
|
||||
" v.peso_lordo_kg,\n" +
|
||||
" mtb_colt.gestione,\n" +
|
||||
" mtb_colt.data_collo,\n" +
|
||||
" mtb_colt.ser_collo,\n" +
|
||||
" mtb_colt.num_collo,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.flag_qta_cnf_fissa,\n" +
|
||||
" v.unt_mis,\n" +
|
||||
" v.diacod,\n" +
|
||||
" v.descrizione_estesa,\n" +
|
||||
" v.cod_mgrp,\n" +
|
||||
" mtb_grup.descrizione AS descrizione_gruppo,\n" +
|
||||
" v.cod_msgr,\n" +
|
||||
" mtb_sgrp.descrizione AS descrizione_sottogruppo,\n" +
|
||||
" mtb_unt_mis.flag_dig,\n" +
|
||||
" mtb_unt_mis.cifre_dec,\n" +
|
||||
" mtb_colt.segno,\n" +
|
||||
" v.cod_mdep,\n" +
|
||||
" v.posizione,\n" +
|
||||
" mtb_colt.cod_dtip,\n" +
|
||||
" mtb_colt.cod_jfas,\n" +
|
||||
" v.barcode_ul,\n" +
|
||||
" v.qta_cnf_anag\n" +
|
||||
" FROM mvw_mtb_colr_with_giacenza v WITH (NOEXPAND)\n" +
|
||||
" INNER JOIN mtb_colt\n" +
|
||||
" ON v.barcode_ul = mtb_colt.barcode_ul\n" +
|
||||
" INNER JOIN dbo.mtb_unt_mis ON v.unt_mis = mtb_unt_mis.unt_mis\n" +
|
||||
"\n" +
|
||||
" INNER JOIN dbo.mtb_grup ON v.cod_mgrp = mtb_grup.cod_mgrp\n" +
|
||||
" INNER JOIN dbo.mtb_sgrp ON v.cod_mgrp = mtb_sgrp.cod_mgrp\n" +
|
||||
" AND v.cod_msgr = mtb_sgrp.cod_msgr\n" +
|
||||
" WHERE qta_col > 0\n" +
|
||||
" AND (segno = 1 OR (segno = -1 AND cod_dtip IS NULL AND mtb_colt.gestione = 'V'))\n" +
|
||||
" ),\n" +
|
||||
" final_stock AS (SELECT v.qta_col,\n" +
|
||||
" v.num_cnf,\n" +
|
||||
" v.qta_cnf,\n" +
|
||||
" v.gestione,\n" +
|
||||
" v.data_collo,\n" +
|
||||
" v.ser_collo,\n" +
|
||||
" v.num_collo,\n" +
|
||||
" v.cod_mdep AS cod_mdep,\n" +
|
||||
" v.posizione AS posizione,\n" +
|
||||
" mtb_depo_posizioni.priorita,\n" +
|
||||
" v.cod_mgrp AS codGruppo,\n" +
|
||||
" v.descrizione_gruppo AS Gruppo,\n" +
|
||||
" v.cod_msgr AS CodSgruppo,\n" +
|
||||
" v.descrizione_sottogruppo AS Sottogruppo,\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.diacod,\n" +
|
||||
" v.descrizione_estesa,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.peso_netto_kg,\n" +
|
||||
" v.peso_lordo_kg,\n" +
|
||||
" v.cod_jfas,\n" +
|
||||
" v.flag_qta_cnf_fissa,\n" +
|
||||
" v.unt_mis,\n" +
|
||||
" v.segno,\n" +
|
||||
" v.barcode_ul\n" +
|
||||
" FROM baseMtbColr v\n" +
|
||||
"\n" +
|
||||
" LEFT OUTER JOIN mtb_depo_posizioni\n" +
|
||||
" ON v.cod_mdep = mtb_depo_posizioni.cod_mdep\n" +
|
||||
" AND v.posizione = mtb_depo_posizioni.posizione)\n" +
|
||||
"\n" +
|
||||
" SELECT qta_col,\n" +
|
||||
" num_cnf,\n" +
|
||||
" qta_cnf,\n" +
|
||||
" gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" ser_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" posizione,\n" +
|
||||
" priorita,\n" +
|
||||
" codGruppo,\n" +
|
||||
" Gruppo,\n" +
|
||||
" CodSgruppo,\n" +
|
||||
" Sottogruppo,\n" +
|
||||
" cod_mart,\n" +
|
||||
" diacod,\n" +
|
||||
" descrizione_estesa,\n" +
|
||||
" partita_mag,\n" +
|
||||
" cod_col,\n" +
|
||||
" cod_tagl,\n" +
|
||||
" cod_jcom,\n" +
|
||||
" peso_netto_kg,\n" +
|
||||
" peso_lordo_kg,\n" +
|
||||
" cod_jfas,\n" +
|
||||
" flag_qta_cnf_fissa,\n" +
|
||||
" unt_mis,\n" +
|
||||
" segno,\n" +
|
||||
" barcode_ul\n" +
|
||||
" FROM final_stock");
|
||||
}
|
||||
|
||||
|
||||
private static boolean existsView(Connection connection, String objectName) throws SQLException {
|
||||
return UtilityDB.<Integer>executeSimpleQueryOnlyFirstRowFirstColumn(connection, "SELECT COUNT(*) FROM SYSOBJECTS WHERE id = object_id('" + objectName + "')") > 0;
|
||||
}
|
||||
|
||||
|
||||
private static void dropView(Connection connection, String objectName) throws SQLException, IOException {
|
||||
UtilityDB.executeStatement(connection, "IF EXISTS (SELECT * FROM SYSOBJECTS WHERE id = object_id('" + objectName + "'))\r\n" +
|
||||
"\tDROP " + SqlObjectTypeEnum.VIEW.toString() + " " + objectName);
|
||||
}
|
||||
|
||||
private static boolean existsTable(Connection connection, String tableName) throws SQLException, IOException {
|
||||
String schema = null;
|
||||
if (tableName.contains(".")) {
|
||||
schema = tableName.substring(0, tableName.indexOf("."));
|
||||
tableName = tableName.replace(schema + ".", "");
|
||||
}
|
||||
|
||||
String sql = Query.format("SELECT CAST(COUNT(*) AS BIT) AS exist FROM INFORMATION_SCHEMA.TABLES " +
|
||||
"WHERE TABLE_NAME = N%s ", tableName);
|
||||
|
||||
if (schema != null)
|
||||
sql += Query.format("AND TABLE_SCHEMA = N%s", schema);
|
||||
|
||||
return UtilityDB.<Boolean>executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private static void createIndex(Connection connection, IndexTableDTO indexTableDTO) throws Exception {
|
||||
UtilityDB.createIndex(connection, indexTableDTO);
|
||||
}
|
||||
|
||||
private static void dropIndex(Connection connection, String tableName, String indexName) throws Exception {
|
||||
UtilityDB.dropIndex(connection, tableName, indexName);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private static void executeStatement(Connection connection, String... sqls) throws SQLException {
|
||||
try (Statement statement = connection.createStatement()) {
|
||||
for (String sql : sqls) {
|
||||
statement.execute(sql);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private static void createOrUpdateView(Connection connection, String objectName, String createViewSql) throws SQLException, IOException {
|
||||
alterObject(connection, SqlObjectTypeEnum.VIEW, objectName, createViewSql);
|
||||
}
|
||||
|
||||
private static void alterObject(Connection connection, SqlObjectTypeEnum sqlObject, String objectName, String sql) throws SQLException, IOException {
|
||||
executeStatement(connection, "IF EXISTS (SELECT * FROM SYSOBJECTS WHERE id = object_id('" + objectName + "'))\r\n" +
|
||||
"\tDROP " + sqlObject.toString() + " " + objectName,
|
||||
sql);
|
||||
}
|
||||
}
|
||||
@@ -3,14 +3,7 @@ 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;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.dto.IndexTableDTO;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import it.integry.ems.migration.dto.common.MigrationMvwSitArtUdcDetInventarioDTO;
|
||||
|
||||
public class Migration_20241213163759 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@@ -22,381 +15,8 @@ public class Migration_20241213163759 extends BaseMigration implements Migration
|
||||
if (!isCustomer(IntegryCustomer.RossoGargano))
|
||||
return;
|
||||
|
||||
//Migration di conversione aziende a nuova mvw_sitart_udc_det_inventario
|
||||
createBackupOfOldView();
|
||||
dropView("mvw_sitart_udc_det_inventario");
|
||||
|
||||
createNewView();
|
||||
|
||||
alignGiacenza();
|
||||
|
||||
}
|
||||
|
||||
private void createBackupOfOldView() throws Exception {
|
||||
if (existsView("mvw_sitart_udc_det_inventario_old"))
|
||||
return;
|
||||
|
||||
createOrUpdateView("mvw_sitart_udc_det_inventario_old", "CREATE VIEW [dbo].[mvw_sitart_udc_det_inventario_old] AS\n" +
|
||||
"SELECT UL.gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" ser_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" segno,\n" +
|
||||
" UL.cod_mdep,\n" +
|
||||
" UL.posizione,\n" +
|
||||
" mtb_depo_posizioni.priorita,\n" +
|
||||
" mtb_aart.cod_mgrp AS codGruppo,\n" +
|
||||
" mtb_grup.descrizione AS Gruppo,\n" +
|
||||
" mtb_aart.cod_msgr AS CodSgruppo,\n" +
|
||||
" mtb_sgrp.descrizione AS Sottogruppo,\n" +
|
||||
" UL.cod_mart,\n" +
|
||||
" diacod,\n" +
|
||||
" mtb_aart.descrizione_estesa,\n" +
|
||||
" partita_mag,\n" +
|
||||
" UL.cod_jcom,\n" +
|
||||
" jtb_comt.descrizione AS commessa,\n" +
|
||||
" mtb_aart.unt_mis,\n" +
|
||||
" qta_col,\n" +
|
||||
" num_cnf,\n" +
|
||||
" UL.qta_cnf,\n" +
|
||||
" UL.peso_netto_kg,\n" +
|
||||
" UL.peso_lordo_kg,\n" +
|
||||
" UL.cod_jfas\n" +
|
||||
"FROM [mvw_sitart_udc_det] UL\n" +
|
||||
" LEFT OUTER JOIN jtb_comt ON UL.cod_jcom = jtb_comt.cod_jcom\n" +
|
||||
" LEFT OUTER JOIN mtb_depo_posizioni\n" +
|
||||
" ON UL.cod_mdep = mtb_depo_posizioni.cod_mdep AND UL.posizione = mtb_depo_posizioni.posizione,\n" +
|
||||
" mtb_aart,\n" +
|
||||
" mtb_grup,\n" +
|
||||
" mtb_sgrp\n" +
|
||||
"WHERE UL.cod_mart = mtb_aart.cod_mart\n" +
|
||||
" AND mtb_aart.cod_mgrp = mtb_grup.cod_mgrp\n" +
|
||||
" AND mtb_aart.cod_mgrp = mtb_sgrp.cod_mgrp\n" +
|
||||
" AND mtb_aart.cod_msgr = mtb_sgrp.cod_msgr\n" +
|
||||
" AND qta_col <> 0");
|
||||
}
|
||||
|
||||
private void createNewView() throws Exception {
|
||||
|
||||
if (!existsTable("stb_multiplier")) {
|
||||
executeStatement("CREATE TABLE stb_multiplier\n" +
|
||||
"(\n" +
|
||||
" moltiplicatore INT NOT NULL\n" +
|
||||
")",
|
||||
"INSERT INTO stb_multiplier (moltiplicatore) VALUES (1)",
|
||||
"INSERT INTO stb_multiplier (moltiplicatore) VALUES (-1)");
|
||||
}
|
||||
|
||||
|
||||
createOrUpdateView("mvw_mtb_colr_with_giacenza", "CREATE VIEW dbo.mvw_mtb_colr_with_giacenza\n" +
|
||||
" WITH SCHEMABINDING\n" +
|
||||
"AS\n" +
|
||||
"SELECT COUNT_BIG(*) AS c,\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.gestione_rif,\n" +
|
||||
" mtb_colr.gestione) AS gestione,\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.data_collo_rif,\n" +
|
||||
" mtb_colr.data_collo) AS data_collo,\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.ser_collo_rif,\n" +
|
||||
" mtb_colr.ser_collo) AS ser_collo,\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.num_collo_rif,\n" +
|
||||
" mtb_colr.num_collo) AS num_collo,\n" +
|
||||
" SUM(mtb_colr.qta_col * moltiplicatore) AS qta_col,\n" +
|
||||
"\n" +
|
||||
" SUM(IIF(mtb_aart.flag_qta_cnf_fissa = 'S', mtb_colr.qta_col / mtb_aart.qta_cnf, mtb_colr.num_cnf) *\n" +
|
||||
" moltiplicatore) AS num_cnf,\n" +
|
||||
" mtb_colr.cod_mart,\n" +
|
||||
" mtb_colr.cod_col,\n" +
|
||||
" mtb_colr.cod_tagl,\n" +
|
||||
" mtb_colr.partita_mag,\n" +
|
||||
" SUM(mtb_colr.peso_netto_kg * moltiplicatore) AS peso_netto_kg,\n" +
|
||||
" SUM(mtb_colr.peso_lordo_kg * moltiplicatore) AS peso_lordo_kg,\n" +
|
||||
" IIF(mtb_colr.cod_jcom = 'MAG', NULL, mtb_colr.cod_jcom) AS cod_jcom,\n" +
|
||||
" mtb_aart.flag_qta_cnf_fissa,\n" +
|
||||
" mtb_aart.unt_mis,\n" +
|
||||
" mtb_aart.diacod,\n" +
|
||||
" mtb_aart.descrizione_estesa,\n" +
|
||||
" mtb_aart.cod_mgrp,\n" +
|
||||
" mtb_aart.cod_msgr,\n" +
|
||||
" mtb_aart.cod_mtip,\n" +
|
||||
" mtb_aart.cod_mstp,\n" +
|
||||
" mtb_aart.cod_msfa,\n" +
|
||||
" mtb_aart.qta_cnf AS qta_cnf_anag\n" +
|
||||
"FROM dbo.mtb_colr\n" +
|
||||
" INNER JOIN dbo.stb_multiplier ON moltiplicatore = 1 OR mtb_colr.num_collo_rif IS NOT NULL\n" +
|
||||
" INNER JOIN dbo.mtb_aart ON mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||
"GROUP BY mtb_colr.cod_mart,\n" +
|
||||
" mtb_colr.cod_col,\n" +
|
||||
" mtb_colr.cod_tagl,\n" +
|
||||
" mtb_colr.partita_mag,\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.gestione_rif, mtb_colr.gestione),\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.data_collo_rif,\n" +
|
||||
" mtb_colr.data_collo),\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.ser_collo_rif,\n" +
|
||||
" mtb_colr.ser_collo),\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.num_collo_rif,\n" +
|
||||
" mtb_colr.num_collo),\n" +
|
||||
" IIF(mtb_colr.cod_jcom = 'MAG', NULL, mtb_colr.cod_jcom),\n" +
|
||||
" mtb_aart.flag_qta_cnf_fissa,\n" +
|
||||
" mtb_aart.unt_mis,\n" +
|
||||
" mtb_aart.diacod,\n" +
|
||||
" mtb_aart.descrizione_estesa,\n" +
|
||||
" mtb_aart.cod_mgrp,\n" +
|
||||
" mtb_aart.cod_msgr,\n" +
|
||||
" mtb_aart.cod_mtip,\n" +
|
||||
" mtb_aart.cod_mstp,\n" +
|
||||
" mtb_aart.cod_msfa,\n" +
|
||||
" mtb_aart.qta_cnf");
|
||||
|
||||
dropIndex("mvw_mtb_colr_with_giacenza", "IDX_CLUSTERED_mvw_mtb_colr_with_giacenza");
|
||||
createIndex(new IndexTableDTO()
|
||||
.setIndexName("IDX_CLUSTERED_mvw_mtb_colr_with_giacenza")
|
||||
.setTableName("mvw_mtb_colr_with_giacenza")
|
||||
.setUnique(true)
|
||||
.setClustered(true)
|
||||
.setMaxDop(1)
|
||||
.setSortInTempDb(true)
|
||||
.setColumnsIndex(new ArrayList<IndexTableDTO.ColumnIndex>() {{
|
||||
add(new IndexTableDTO.ColumnIndex("gestione"));
|
||||
add(new IndexTableDTO.ColumnIndex("data_collo"));
|
||||
add(new IndexTableDTO.ColumnIndex("num_collo"));
|
||||
add(new IndexTableDTO.ColumnIndex("ser_collo"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_mart"));
|
||||
add(new IndexTableDTO.ColumnIndex("partita_mag"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_tagl"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_col"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_jcom"));
|
||||
}}));
|
||||
|
||||
dropIndex("mvw_mtb_colr_with_giacenza", "IDX_mvw_qta_mtb_colr_with_giacenza");
|
||||
createIndex(new IndexTableDTO()
|
||||
.setIndexName("IDX_mvw_qta_mtb_colr_with_giacenza")
|
||||
.setTableName("mvw_mtb_colr_with_giacenza")
|
||||
.setMaxDop(1)
|
||||
.setSortInTempDb(true)
|
||||
.setColumnsIndex(new ArrayList<IndexTableDTO.ColumnIndex>() {{
|
||||
add(new IndexTableDTO.ColumnIndex("qta_col"));
|
||||
add(new IndexTableDTO.ColumnIndex("num_cnf"));
|
||||
}}));
|
||||
|
||||
dropIndex("mvw_mtb_colr_with_giacenza", "IDX_mvw_articolo_mtb_colr_with_giacenza");
|
||||
createIndex(new IndexTableDTO()
|
||||
.setIndexName("IDX_mvw_articolo_mtb_colr_with_giacenza")
|
||||
.setTableName("mvw_mtb_colr_with_giacenza")
|
||||
.setMaxDop(1)
|
||||
.setSortInTempDb(true)
|
||||
.setColumnsIndex(new ArrayList<IndexTableDTO.ColumnIndex>() {{
|
||||
add(new IndexTableDTO.ColumnIndex("cod_mart"));
|
||||
add(new IndexTableDTO.ColumnIndex("partita_mag"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_tagl"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_col"));
|
||||
}}));
|
||||
|
||||
dropIndex("mvw_mtb_colr_with_giacenza", "IDX_mvw_articolo_giac_mtb_colr_with_giacenza");
|
||||
createIndex(new IndexTableDTO()
|
||||
.setIndexName("IDX_mvw_articolo_giac_mtb_colr_with_giacenza")
|
||||
.setTableName("mvw_mtb_colr_with_giacenza")
|
||||
.setMaxDop(1)
|
||||
.setSortInTempDb(true)
|
||||
.setColumnsIndex(new ArrayList<IndexTableDTO.ColumnIndex>() {{
|
||||
add(new IndexTableDTO.ColumnIndex("cod_mart"));
|
||||
add(new IndexTableDTO.ColumnIndex("partita_mag"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_tagl"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_col"));
|
||||
}})
|
||||
.setColumnsInclude("qta_col", "num_cnf"));
|
||||
|
||||
executeStatement("UPDATE STATISTICS dbo.mvw_mtb_colr_with_giacenza");
|
||||
|
||||
|
||||
createOrUpdateView("mvw_sitart_udc_det_inventario", "CREATE VIEW mvw_sitart_udc_det_inventario AS\n" +
|
||||
" WITH baseMtbColr AS (SELECT c,\n" +
|
||||
"\n" +
|
||||
" ROUND(v.qta_col, cifre_dec) AS qta_col,\n" +
|
||||
" ROUND(v.num_cnf, cifre_dec) AS num_cnf,\n" +
|
||||
" IIF(flag_qta_cnf_fissa = 'S',\n" +
|
||||
" v.qta_cnf_anag, v.qta_col / IIF(v.num_cnf = 0, 1, v.num_cnf)) AS qta_cnf,\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.peso_netto_kg,\n" +
|
||||
" v.peso_lordo_kg,\n" +
|
||||
" v.gestione,\n" +
|
||||
" v.data_collo,\n" +
|
||||
" v.ser_collo,\n" +
|
||||
" v.num_collo,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.flag_qta_cnf_fissa,\n" +
|
||||
" v.unt_mis,\n" +
|
||||
" v.diacod,\n" +
|
||||
" v.descrizione_estesa,\n" +
|
||||
" v.cod_mgrp,\n" +
|
||||
" mtb_grup.descrizione AS descrizione_gruppo,\n" +
|
||||
" v.cod_msgr,\n" +
|
||||
" mtb_sgrp.descrizione AS descrizione_sottogruppo,\n" +
|
||||
" mtb_unt_mis.flag_dig,\n" +
|
||||
" mtb_unt_mis.cifre_dec,\n" +
|
||||
" mtb_colt.segno,\n" +
|
||||
" mtb_colt.cod_mdep,\n" +
|
||||
" mtb_colt.posizione,\n" +
|
||||
" mtb_colt.cod_dtip,\n" +
|
||||
" mtb_colt.cod_jfas,\n" +
|
||||
" mtb_colt.barcode_ul,\n" +
|
||||
" v.qta_cnf_anag\n" +
|
||||
" FROM mvw_mtb_colr_with_giacenza v WITH (NOEXPAND)\n" +
|
||||
" INNER JOIN mtb_colt\n" +
|
||||
" ON v.num_collo = mtb_colt.num_collo AND v.gestione = mtb_colt.gestione AND\n" +
|
||||
" v.ser_collo = mtb_colt.ser_collo AND v.data_collo = mtb_colt.data_collo\n" +
|
||||
" INNER JOIN dbo.mtb_unt_mis ON v.unt_mis = mtb_unt_mis.unt_mis\n" +
|
||||
"\n" +
|
||||
" INNER JOIN dbo.mtb_grup ON v.cod_mgrp = mtb_grup.cod_mgrp\n" +
|
||||
" INNER JOIN dbo.mtb_sgrp ON v.cod_mgrp = mtb_sgrp.cod_mgrp\n" +
|
||||
" AND v.cod_msgr = mtb_sgrp.cod_msgr\n" +
|
||||
" WHERE qta_col > 0\n" +
|
||||
" AND (segno = 1 OR (segno = -1 AND cod_dtip IS NULL AND v.gestione = 'V'))),\n" +
|
||||
" final_stock AS (SELECT v.qta_col,\n" +
|
||||
" v.num_cnf,\n" +
|
||||
" v.qta_cnf,\n" +
|
||||
" v.gestione,\n" +
|
||||
" v.data_collo,\n" +
|
||||
" v.ser_collo,\n" +
|
||||
" v.num_collo,\n" +
|
||||
" v.cod_mdep AS cod_mdep,\n" +
|
||||
" v.posizione AS posizione,\n" +
|
||||
" mtb_depo_posizioni.priorita,\n" +
|
||||
" v.cod_mgrp AS codGruppo,\n" +
|
||||
" v.descrizione_gruppo AS Gruppo,\n" +
|
||||
" v.cod_msgr AS CodSgruppo,\n" +
|
||||
" v.descrizione_sottogruppo AS Sottogruppo,\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.diacod,\n" +
|
||||
" v.descrizione_estesa,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.peso_netto_kg,\n" +
|
||||
" v.peso_lordo_kg,\n" +
|
||||
" v.cod_jfas,\n" +
|
||||
" v.flag_qta_cnf_fissa,\n" +
|
||||
" v.unt_mis,\n" +
|
||||
" v.segno,\n" +
|
||||
" v.barcode_ul\n" +
|
||||
" FROM baseMtbColr v\n" +
|
||||
"\n" +
|
||||
" LEFT OUTER JOIN mtb_depo_posizioni\n" +
|
||||
" ON v.cod_mdep = mtb_depo_posizioni.cod_mdep\n" +
|
||||
" AND v.posizione = mtb_depo_posizioni.posizione)\n" +
|
||||
"\n" +
|
||||
" SELECT qta_col,\n" +
|
||||
" num_cnf,\n" +
|
||||
" qta_cnf,\n" +
|
||||
" gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" ser_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" posizione,\n" +
|
||||
" priorita,\n" +
|
||||
" codGruppo,\n" +
|
||||
" Gruppo,\n" +
|
||||
" CodSgruppo,\n" +
|
||||
" Sottogruppo,\n" +
|
||||
" cod_mart,\n" +
|
||||
" diacod,\n" +
|
||||
" descrizione_estesa,\n" +
|
||||
" partita_mag,\n" +
|
||||
" cod_col,\n" +
|
||||
" cod_tagl,\n" +
|
||||
" cod_jcom,\n" +
|
||||
" peso_netto_kg,\n" +
|
||||
" peso_lordo_kg,\n" +
|
||||
" cod_jfas,\n" +
|
||||
" flag_qta_cnf_fissa,\n" +
|
||||
" unt_mis,\n" +
|
||||
" segno,\n" +
|
||||
" barcode_ul\n" +
|
||||
" FROM final_stock");
|
||||
}
|
||||
|
||||
private void alignGiacenza() throws Exception {
|
||||
//Creo un collo di scarico vuoto
|
||||
MtbColt mtbColt = new MtbColt()
|
||||
.setGestione("L")
|
||||
.setSerCollo("RT")
|
||||
.setSegno(-1)
|
||||
.setDataCollo(LocalDate.now())
|
||||
.setAnnotazioni("PASSAGGIO NUOVA MVW_SITART_UDC_DET_INVENTARIO")
|
||||
.setCodMdep(getInternalCodMdep());
|
||||
mtbColt.setOperation(OperationType.INSERT);
|
||||
|
||||
mtbColt.dataCompleting(connection);
|
||||
mtbColt.manageWithParentConnection(connection);
|
||||
|
||||
|
||||
executeStatement(Query.format(
|
||||
"INSERT INTO mtb_colr (gestione, ser_collo, num_collo, data_collo, riga, cod_mart, cod_col, cod_tagl, partita_mag, gestione_rif, data_collo_rif, ser_collo_rif, num_collo_rif, datetime_row,\n" +
|
||||
" cod_jcom, qta_col, num_cnf, qta_cnf)" +
|
||||
" SELECT {} AS gestione,\n" +
|
||||
" {} AS ser_collo,\n" +
|
||||
" {} AS num_collo,\n" +
|
||||
" CAST({} AS DATE) AS data_collo,\n" +
|
||||
" ROW_NUMBER() OVER (PARTITION BY (SELECT NULL) ORDER BY v.data_collo) AS riga,\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.gestione AS gestion_rif,\n" +
|
||||
" v.data_collo AS data_collo_rif,\n" +
|
||||
" v.ser_collo AS ser_collo_rif,\n" +
|
||||
" v.num_collo AS num_collo_rif,\n" +
|
||||
" GETDATE() AS datetime_row,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.qta_col,\n" +
|
||||
" v.num_cnf,\n" +
|
||||
" v.qta_cnf\n" +
|
||||
"FROM mvw_sitart_udc_det_inventario v\n" +
|
||||
" INNER JOIN (SELECT ser_collo,\n" +
|
||||
" gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" posizione,\n" +
|
||||
" cod_mart,\n" +
|
||||
" partita_mag,\n" +
|
||||
" cod_jcom-- Elenca tutte le colonne coinvolte\n" +
|
||||
" FROM mvw_sitart_udc_det_inventario\n" +
|
||||
"\n" +
|
||||
" EXCEPT\n" +
|
||||
"\n" +
|
||||
" SELECT ser_collo,\n" +
|
||||
" gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" posizione,\n" +
|
||||
" cod_mart,\n" +
|
||||
" partita_mag,\n" +
|
||||
" cod_jcom -- Elenca le stesse colonne dalla vista vecchia\n" +
|
||||
" FROM mvw_sitart_udc_det_inventario_old) t\n" +
|
||||
" ON v.num_collo = t.num_collo AND v.data_collo = t.data_collo AND\n" +
|
||||
" v.ser_collo = t.ser_collo AND v.gestione = t.gestione AND\n" +
|
||||
" v.cod_mart = t.cod_mart AND v.cod_mdep = t.cod_mdep AND\n" +
|
||||
" ISNULL(v.partita_mag, '') = ISNULL(t.partita_mag, '') AND\n" +
|
||||
" ISNULL(v.posizione, '') = ISNULL(t.posizione, '') AND\n" +
|
||||
" ISNULL(v.cod_jcom, '') = ISNULL(t.cod_jcom, '')" +
|
||||
" WHERE qta_col > 0",
|
||||
mtbColt.getGestione(), mtbColt.getSerCollo(), mtbColt.getNumCollo(), mtbColt.getDataCollo()));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private String getInternalCodMdep() throws Exception {
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, "SELECT TOP 1 cod_mdep" +
|
||||
" FROM mtb_depo" +
|
||||
" INNER JOIN dbo.gtb_anag ga ON mtb_depo.cod_anag = ga.cod_anag" +
|
||||
" inner join azienda on ga.part_iva = azienda.part_iva");
|
||||
MigrationMvwSitArtUdcDetInventarioDTO.apply(connection);
|
||||
MigrationMvwSitArtUdcDetInventarioDTO.alignGiacenza(connection);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,323 +0,0 @@
|
||||
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;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.dto.IndexTableDTO;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class Migration_20250320121611 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if (!isCustomer(IntegryCustomer.Tosca))
|
||||
return;
|
||||
|
||||
//Migration di conversione aziende a nuova mvw_sitart_udc_det_inventario
|
||||
createBackupOfOldView();
|
||||
dropView("mvw_sitart_udc_det_inventario");
|
||||
|
||||
createNewView();
|
||||
|
||||
}
|
||||
|
||||
private void createBackupOfOldView() throws Exception {
|
||||
if (existsView("mvw_sitart_udc_det_inventario_old"))
|
||||
return;
|
||||
|
||||
createOrUpdateView("mvw_sitart_udc_det_inventario_old", "CREATE VIEW [dbo].[mvw_sitart_udc_det_inventario_old] AS\n" +
|
||||
"SELECT UL.gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" ser_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" segno,\n" +
|
||||
" UL.cod_mdep,\n" +
|
||||
" UL.posizione,\n" +
|
||||
" mtb_depo_posizioni.priorita,\n" +
|
||||
" mtb_aart.cod_mgrp AS codGruppo,\n" +
|
||||
" mtb_grup.descrizione AS Gruppo,\n" +
|
||||
" mtb_aart.cod_msgr AS CodSgruppo,\n" +
|
||||
" mtb_sgrp.descrizione AS Sottogruppo,\n" +
|
||||
" UL.cod_mart,\n" +
|
||||
" diacod,\n" +
|
||||
" mtb_aart.descrizione_estesa,\n" +
|
||||
" partita_mag,\n" +
|
||||
" UL.cod_jcom,\n" +
|
||||
" jtb_comt.descrizione AS commessa,\n" +
|
||||
" mtb_aart.unt_mis,\n" +
|
||||
" qta_col,\n" +
|
||||
" num_cnf,\n" +
|
||||
" UL.qta_cnf,\n" +
|
||||
" UL.peso_netto_kg,\n" +
|
||||
" UL.peso_lordo_kg,\n" +
|
||||
" UL.cod_jfas\n" +
|
||||
"FROM [mvw_sitart_udc_det] UL\n" +
|
||||
" LEFT OUTER JOIN jtb_comt ON UL.cod_jcom = jtb_comt.cod_jcom\n" +
|
||||
" LEFT OUTER JOIN mtb_depo_posizioni\n" +
|
||||
" ON UL.cod_mdep = mtb_depo_posizioni.cod_mdep AND UL.posizione = mtb_depo_posizioni.posizione,\n" +
|
||||
" mtb_aart,\n" +
|
||||
" mtb_grup,\n" +
|
||||
" mtb_sgrp\n" +
|
||||
"WHERE UL.cod_mart = mtb_aart.cod_mart\n" +
|
||||
" AND mtb_aart.cod_mgrp = mtb_grup.cod_mgrp\n" +
|
||||
" AND mtb_aart.cod_mgrp = mtb_sgrp.cod_mgrp\n" +
|
||||
" AND mtb_aart.cod_msgr = mtb_sgrp.cod_msgr\n" +
|
||||
" AND qta_col <> 0");
|
||||
}
|
||||
|
||||
private void createNewView() throws Exception {
|
||||
|
||||
if (!existsTable("stb_multiplier")) {
|
||||
executeStatement("CREATE TABLE stb_multiplier\n" +
|
||||
"(\n" +
|
||||
" moltiplicatore INT NOT NULL\n" +
|
||||
")",
|
||||
"INSERT INTO stb_multiplier (moltiplicatore) VALUES (1)",
|
||||
"INSERT INTO stb_multiplier (moltiplicatore) VALUES (-1)");
|
||||
}
|
||||
|
||||
|
||||
createOrUpdateView("mvw_mtb_colr_with_giacenza", "CREATE VIEW dbo.mvw_mtb_colr_with_giacenza\n" +
|
||||
" WITH SCHEMABINDING\n" +
|
||||
"AS\n" +
|
||||
"SELECT COUNT_BIG(*) AS c,\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.gestione_rif,\n" +
|
||||
" mtb_colr.gestione) AS gestione,\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.data_collo_rif,\n" +
|
||||
" mtb_colr.data_collo) AS data_collo,\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.ser_collo_rif,\n" +
|
||||
" mtb_colr.ser_collo) AS ser_collo,\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.num_collo_rif,\n" +
|
||||
" mtb_colr.num_collo) AS num_collo,\n" +
|
||||
" SUM(mtb_colr.qta_col * moltiplicatore) AS qta_col,\n" +
|
||||
"\n" +
|
||||
" SUM(IIF(mtb_aart.flag_qta_cnf_fissa = 'S', mtb_colr.qta_col / mtb_aart.qta_cnf, mtb_colr.num_cnf) *\n" +
|
||||
" moltiplicatore) AS num_cnf,\n" +
|
||||
" mtb_colr.cod_mart,\n" +
|
||||
" mtb_colr.cod_col,\n" +
|
||||
" mtb_colr.cod_tagl,\n" +
|
||||
" mtb_colr.partita_mag,\n" +
|
||||
" SUM(mtb_colr.peso_netto_kg * moltiplicatore) AS peso_netto_kg,\n" +
|
||||
" SUM(mtb_colr.peso_lordo_kg * moltiplicatore) AS peso_lordo_kg,\n" +
|
||||
" IIF(mtb_colr.cod_jcom = 'MAG', NULL, mtb_colr.cod_jcom) AS cod_jcom,\n" +
|
||||
" mtb_aart.flag_qta_cnf_fissa,\n" +
|
||||
" mtb_aart.unt_mis,\n" +
|
||||
" mtb_aart.diacod,\n" +
|
||||
" mtb_aart.descrizione_estesa,\n" +
|
||||
" mtb_aart.cod_mgrp,\n" +
|
||||
" mtb_aart.cod_msgr,\n" +
|
||||
" mtb_aart.cod_mtip,\n" +
|
||||
" mtb_aart.cod_mstp,\n" +
|
||||
" mtb_aart.cod_msfa,\n" +
|
||||
" mtb_aart.qta_cnf AS qta_cnf_anag\n" +
|
||||
"FROM dbo.mtb_colr\n" +
|
||||
" INNER JOIN dbo.stb_multiplier ON moltiplicatore = 1 OR mtb_colr.num_collo_rif IS NOT NULL\n" +
|
||||
" INNER JOIN dbo.mtb_aart ON mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||
"GROUP BY mtb_colr.cod_mart,\n" +
|
||||
" mtb_colr.cod_col,\n" +
|
||||
" mtb_colr.cod_tagl,\n" +
|
||||
" mtb_colr.partita_mag,\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.gestione_rif, mtb_colr.gestione),\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.data_collo_rif,\n" +
|
||||
" mtb_colr.data_collo),\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.ser_collo_rif,\n" +
|
||||
" mtb_colr.ser_collo),\n" +
|
||||
" IIF(moltiplicatore = -1 AND num_collo_rif IS NOT NULL, mtb_colr.num_collo_rif,\n" +
|
||||
" mtb_colr.num_collo),\n" +
|
||||
" IIF(mtb_colr.cod_jcom = 'MAG', NULL, mtb_colr.cod_jcom),\n" +
|
||||
" mtb_aart.flag_qta_cnf_fissa,\n" +
|
||||
" mtb_aart.unt_mis,\n" +
|
||||
" mtb_aart.diacod,\n" +
|
||||
" mtb_aart.descrizione_estesa,\n" +
|
||||
" mtb_aart.cod_mgrp,\n" +
|
||||
" mtb_aart.cod_msgr,\n" +
|
||||
" mtb_aart.cod_mtip,\n" +
|
||||
" mtb_aart.cod_mstp,\n" +
|
||||
" mtb_aart.cod_msfa,\n" +
|
||||
" mtb_aart.qta_cnf");
|
||||
|
||||
dropIndex("mvw_mtb_colr_with_giacenza", "IDX_CLUSTERED_mvw_mtb_colr_with_giacenza");
|
||||
createIndex(new IndexTableDTO()
|
||||
.setIndexName("IDX_CLUSTERED_mvw_mtb_colr_with_giacenza")
|
||||
.setTableName("mvw_mtb_colr_with_giacenza")
|
||||
.setUnique(true)
|
||||
.setClustered(true)
|
||||
.setMaxDop(1)
|
||||
.setSortInTempDb(true)
|
||||
.setColumnsIndex(new ArrayList<IndexTableDTO.ColumnIndex>() {{
|
||||
add(new IndexTableDTO.ColumnIndex("gestione"));
|
||||
add(new IndexTableDTO.ColumnIndex("data_collo"));
|
||||
add(new IndexTableDTO.ColumnIndex("num_collo"));
|
||||
add(new IndexTableDTO.ColumnIndex("ser_collo"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_mart"));
|
||||
add(new IndexTableDTO.ColumnIndex("partita_mag"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_tagl"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_col"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_jcom"));
|
||||
}}));
|
||||
|
||||
dropIndex("mvw_mtb_colr_with_giacenza", "IDX_mvw_qta_mtb_colr_with_giacenza");
|
||||
createIndex(new IndexTableDTO()
|
||||
.setIndexName("IDX_mvw_qta_mtb_colr_with_giacenza")
|
||||
.setTableName("mvw_mtb_colr_with_giacenza")
|
||||
.setMaxDop(1)
|
||||
.setSortInTempDb(true)
|
||||
.setColumnsIndex(new ArrayList<IndexTableDTO.ColumnIndex>() {{
|
||||
add(new IndexTableDTO.ColumnIndex("qta_col"));
|
||||
add(new IndexTableDTO.ColumnIndex("num_cnf"));
|
||||
}}));
|
||||
|
||||
dropIndex("mvw_mtb_colr_with_giacenza", "IDX_mvw_articolo_mtb_colr_with_giacenza");
|
||||
createIndex(new IndexTableDTO()
|
||||
.setIndexName("IDX_mvw_articolo_mtb_colr_with_giacenza")
|
||||
.setTableName("mvw_mtb_colr_with_giacenza")
|
||||
.setMaxDop(1)
|
||||
.setSortInTempDb(true)
|
||||
.setColumnsIndex(new ArrayList<IndexTableDTO.ColumnIndex>() {{
|
||||
add(new IndexTableDTO.ColumnIndex("cod_mart"));
|
||||
add(new IndexTableDTO.ColumnIndex("partita_mag"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_tagl"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_col"));
|
||||
}}));
|
||||
|
||||
dropIndex("mvw_mtb_colr_with_giacenza", "IDX_mvw_articolo_giac_mtb_colr_with_giacenza");
|
||||
createIndex(new IndexTableDTO()
|
||||
.setIndexName("IDX_mvw_articolo_giac_mtb_colr_with_giacenza")
|
||||
.setTableName("mvw_mtb_colr_with_giacenza")
|
||||
.setMaxDop(1)
|
||||
.setSortInTempDb(true)
|
||||
.setColumnsIndex(new ArrayList<IndexTableDTO.ColumnIndex>() {{
|
||||
add(new IndexTableDTO.ColumnIndex("cod_mart"));
|
||||
add(new IndexTableDTO.ColumnIndex("partita_mag"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_tagl"));
|
||||
add(new IndexTableDTO.ColumnIndex("cod_col"));
|
||||
}})
|
||||
.setColumnsInclude("qta_col", "num_cnf"));
|
||||
|
||||
executeStatement("UPDATE STATISTICS dbo.mvw_mtb_colr_with_giacenza");
|
||||
|
||||
|
||||
createOrUpdateView("mvw_sitart_udc_det_inventario", "CREATE VIEW mvw_sitart_udc_det_inventario AS\n" +
|
||||
" WITH baseMtbColr AS (SELECT c,\n" +
|
||||
"\n" +
|
||||
" ROUND(v.qta_col, cifre_dec) AS qta_col,\n" +
|
||||
" ROUND(v.num_cnf, cifre_dec) AS num_cnf,\n" +
|
||||
" IIF(flag_qta_cnf_fissa = 'S',\n" +
|
||||
" v.qta_cnf_anag, v.qta_col / IIF(v.num_cnf = 0, 1, v.num_cnf)) AS qta_cnf,\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.peso_netto_kg,\n" +
|
||||
" v.peso_lordo_kg,\n" +
|
||||
" v.gestione,\n" +
|
||||
" v.data_collo,\n" +
|
||||
" v.ser_collo,\n" +
|
||||
" v.num_collo,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.flag_qta_cnf_fissa,\n" +
|
||||
" v.unt_mis,\n" +
|
||||
" v.diacod,\n" +
|
||||
" v.descrizione_estesa,\n" +
|
||||
" v.cod_mgrp,\n" +
|
||||
" mtb_grup.descrizione AS descrizione_gruppo,\n" +
|
||||
" v.cod_msgr,\n" +
|
||||
" mtb_sgrp.descrizione AS descrizione_sottogruppo,\n" +
|
||||
" mtb_unt_mis.flag_dig,\n" +
|
||||
" mtb_unt_mis.cifre_dec,\n" +
|
||||
" mtb_colt.segno,\n" +
|
||||
" mtb_colt.cod_mdep,\n" +
|
||||
" mtb_colt.posizione,\n" +
|
||||
" mtb_colt.cod_dtip,\n" +
|
||||
" mtb_colt.cod_jfas,\n" +
|
||||
" mtb_colt.barcode_ul,\n" +
|
||||
" v.qta_cnf_anag\n" +
|
||||
" FROM mvw_mtb_colr_with_giacenza v WITH (NOEXPAND)\n" +
|
||||
" INNER JOIN mtb_colt\n" +
|
||||
" ON v.num_collo = mtb_colt.num_collo AND v.gestione = mtb_colt.gestione AND\n" +
|
||||
" v.ser_collo = mtb_colt.ser_collo AND v.data_collo = mtb_colt.data_collo\n" +
|
||||
" INNER JOIN dbo.mtb_unt_mis ON v.unt_mis = mtb_unt_mis.unt_mis\n" +
|
||||
"\n" +
|
||||
" INNER JOIN dbo.mtb_grup ON v.cod_mgrp = mtb_grup.cod_mgrp\n" +
|
||||
" INNER JOIN dbo.mtb_sgrp ON v.cod_mgrp = mtb_sgrp.cod_mgrp\n" +
|
||||
" AND v.cod_msgr = mtb_sgrp.cod_msgr\n" +
|
||||
" WHERE qta_col > 0\n" +
|
||||
" AND (segno = 1 OR (segno = -1 AND cod_dtip IS NULL AND v.gestione = 'V'))),\n" +
|
||||
" final_stock AS (SELECT v.qta_col,\n" +
|
||||
" v.num_cnf,\n" +
|
||||
" v.qta_cnf,\n" +
|
||||
" v.gestione,\n" +
|
||||
" v.data_collo,\n" +
|
||||
" v.ser_collo,\n" +
|
||||
" v.num_collo,\n" +
|
||||
" v.cod_mdep AS cod_mdep,\n" +
|
||||
" v.posizione AS posizione,\n" +
|
||||
" mtb_depo_posizioni.priorita,\n" +
|
||||
" v.cod_mgrp AS codGruppo,\n" +
|
||||
" v.descrizione_gruppo AS Gruppo,\n" +
|
||||
" v.cod_msgr AS CodSgruppo,\n" +
|
||||
" v.descrizione_sottogruppo AS Sottogruppo,\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.diacod,\n" +
|
||||
" v.descrizione_estesa,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.peso_netto_kg,\n" +
|
||||
" v.peso_lordo_kg,\n" +
|
||||
" v.cod_jfas,\n" +
|
||||
" v.flag_qta_cnf_fissa,\n" +
|
||||
" v.unt_mis,\n" +
|
||||
" v.segno,\n" +
|
||||
" v.barcode_ul\n" +
|
||||
" FROM baseMtbColr v\n" +
|
||||
"\n" +
|
||||
" LEFT OUTER JOIN mtb_depo_posizioni\n" +
|
||||
" ON v.cod_mdep = mtb_depo_posizioni.cod_mdep\n" +
|
||||
" AND v.posizione = mtb_depo_posizioni.posizione)\n" +
|
||||
"\n" +
|
||||
" SELECT qta_col,\n" +
|
||||
" num_cnf,\n" +
|
||||
" qta_cnf,\n" +
|
||||
" gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" ser_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" posizione,\n" +
|
||||
" priorita,\n" +
|
||||
" codGruppo,\n" +
|
||||
" Gruppo,\n" +
|
||||
" CodSgruppo,\n" +
|
||||
" Sottogruppo,\n" +
|
||||
" cod_mart,\n" +
|
||||
" diacod,\n" +
|
||||
" descrizione_estesa,\n" +
|
||||
" partita_mag,\n" +
|
||||
" cod_col,\n" +
|
||||
" cod_tagl,\n" +
|
||||
" cod_jcom,\n" +
|
||||
" peso_netto_kg,\n" +
|
||||
" peso_lordo_kg,\n" +
|
||||
" cod_jfas,\n" +
|
||||
" flag_qta_cnf_fissa,\n" +
|
||||
" unt_mis,\n" +
|
||||
" segno,\n" +
|
||||
" barcode_ul\n" +
|
||||
" FROM final_stock");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250402112610 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
// //Gia aggiornato
|
||||
// if (isCustomer(IntegryCustomer.RossoGargano) ||
|
||||
// isCustomer(IntegryCustomer.Tosca))
|
||||
// return;
|
||||
//
|
||||
// //Azienda da aggiornare
|
||||
// if (!isCustomer(IntegryCustomer.Gramm))
|
||||
// return;
|
||||
//
|
||||
// MigrationMvwSitArtUdcDetInventarioDTO.apply(connection);
|
||||
// MigrationMvwSitArtUdcDetInventarioDTO.alignGiacenza(connection);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
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;
|
||||
import it.integry.ems.migration.dto.common.MigrationMvwSitArtUdcDetInventarioDTO;
|
||||
import it.integry.ems.rules.completing.PackagesRules;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class Migration_20250403174531 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if (!isCustomer(IntegryCustomer.RossoGargano))
|
||||
return;
|
||||
|
||||
//Rigenero barcodeUl testate con barcode duplicato
|
||||
regenerateDuplicatedBarcodeUlTestate();
|
||||
|
||||
//Aggiorno la view mvw_mtb_colr_with_giacenza
|
||||
MigrationMvwSitArtUdcDetInventarioDTO.apply(connection);
|
||||
|
||||
MigrationMvwSitArtUdcDetInventarioDTO.alignGiacenza(connection);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
|
||||
|
||||
private void regenerateDuplicatedBarcodeUlTestate() throws Exception {
|
||||
String retrieveDuplicatedSql = "SELECT barcode_ul\n" +
|
||||
"FROM mtb_colt\n" +
|
||||
"GROUP BY barcode_ul, ser_collo\n" +
|
||||
"HAVING COUNT(barcode_ul) > 1";
|
||||
|
||||
|
||||
final List<String> duplicatedBarcodes = UtilityDB.executeSimpleQueryOnlyFirstColumn(connection, retrieveDuplicatedSql);
|
||||
|
||||
for (String barcode : duplicatedBarcodes) {
|
||||
String sql = Query.format("SELECT * FROM mtb_colt WHERE barcode_ul = {}", barcode);
|
||||
List<MtbColt> loadedMtbColts = executeQueryDTO(sql, MtbColt.class);
|
||||
|
||||
for (MtbColt colt : loadedMtbColts) {
|
||||
if (colt.getSerCollo().equalsIgnoreCase("T")) {
|
||||
String newBarcodeUl = PackagesRules.completeBarcodeUl(connection,
|
||||
colt.getGestione(),
|
||||
colt.getDataCollo(),
|
||||
colt.getSerCollo(),
|
||||
colt.getNumCollo(),
|
||||
null,
|
||||
null);
|
||||
|
||||
colt.setBarcodeUl(newBarcodeUl);
|
||||
colt.setOperation(OperationType.UPDATE);
|
||||
colt.manageWithParentConnection(connection);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,181 @@
|
||||
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_20250403174532 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
if (isCustomer(IntegryCustomer.Gramm) ||
|
||||
isCustomer(IntegryCustomer.RossoGargano) ||
|
||||
isCustomer(IntegryCustomer.Carelli) ||
|
||||
isDMS())
|
||||
return;
|
||||
|
||||
//Cancello tutti i barcode UL dalle testate degli scarichi a lavorazione
|
||||
executeStatement("UPDATE mtb_colt SET barcode_ul = NULL\n" +
|
||||
"WHERE gestione = 'L' AND segno = -1\n" +
|
||||
"AND barcode_ul IS NOT NULL");
|
||||
|
||||
|
||||
executeStatement("UPDATE mtb_colt\n" +
|
||||
"SET barcode_ul = EAN128.AI_00\n" +
|
||||
"FROM mtb_colt\n" +
|
||||
" CROSS APPLY (SELECT TOP 1 * FROM (SELECT DISTINCT AI_00\n" +
|
||||
" FROM f_getEAN128UL(mtb_colt.gestione, mtb_colt.data_collo, mtb_colt.ser_collo,\n" +
|
||||
" mtb_colt.num_collo,\n" +
|
||||
" NULL)" +
|
||||
" WHERE mtb_colt.ser_collo <> 'UL'\n" +
|
||||
" UNION\n" +
|
||||
" SELECT CONCAT('U', RIGHT(YEAR(mtb_colt.data_collo), 2), FORMAT(mtb_colt.num_collo, '0000000')) AS AI_00\n" +
|
||||
" WHERE mtb_colt.ser_collo = 'UL') tmp) EAN128");
|
||||
|
||||
createOrUpdateFunction("f_getEAN128UL", "CREATE FUNCTION [dbo].[f_getEAN128UL](@gestione VARCHAR(1), @dataCollo DATETIME, @serCollo VARCHAR(2), @numCollo INT,\n" +
|
||||
" @customPrefissoEan VARCHAR(7))\n" +
|
||||
" RETURNS TABLE AS\n" +
|
||||
" RETURN\n" +
|
||||
" -- DECLARE @gestione AS VARCHAR(1) = 'L'\n" +
|
||||
"-- DECLARE @serCollo AS VARCHAR(10) = 'GG'\n" +
|
||||
"-- DECLARE @numCollo AS INT = 7837\n" +
|
||||
"-- DECLARE @dataCollo AS DATETIME = '2025-03-10';\n" +
|
||||
"-- DECLARE @customPrefissoEan AS VARCHAR(7);-- = '8017596';\n" +
|
||||
"\n" +
|
||||
" WITH barcodes AS (SELECT mtb_colt.barcode_ul AS AI_00,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN mtb_aart.cod_barre_imb IS NOT NULL AND LEN(mtb_aart.cod_barre_imb) < 14 THEN\n" +
|
||||
" FORMAT(CONVERT(NUMERIC, ISNULL(NULLIF(mtb_aart.cod_barre_imb, ''), '0')),\n" +
|
||||
" REPLICATE('0', 14))\n" +
|
||||
" ELSE mtb_aart.cod_barre_imb\n" +
|
||||
" END AS AI_01,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN mtb_aart.bar_code IS NOT NULL AND LEN(mtb_aart.bar_code) < 14\n" +
|
||||
" THEN\n" +
|
||||
" FORMAT(CONVERT(BIGINT, mtb_aart.bar_code), REPLICATE('0', 14))\n" +
|
||||
" ELSE mtb_aart.bar_code\n" +
|
||||
" END AS AI_02,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN mtb_colr.partita_mag IS NOT NULL THEN\n" +
|
||||
" mtb_colr.partita_mag + CHAR(29)\n" +
|
||||
" END AS AI_10,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN mtb_partita_mag.data_scad IS NOT NULL THEN\n" +
|
||||
" REPLACE(CONVERT(VARCHAR(10), mtb_partita_mag.data_scad, 2), '.', '')\n" +
|
||||
" END AS AI_15,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN LEN(CAST(mtb_aart.peso_kg * mtb_colr.qta_cnf AS INTEGER)) <= 6 THEN\n" +
|
||||
" REPLACE(FORMAT(mtb_aart.peso_kg * mtb_colr.qta_cnf, '000000'), '.', '')\n" +
|
||||
" END AS AI_3100,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN LEN(CAST(mtb_aart.peso_kg * mtb_colr.qta_cnf AS INTEGER)) <= 5 THEN\n" +
|
||||
" REPLACE(FORMAT(mtb_aart.peso_kg * mtb_colr.qta_cnf, '00000.0'), '.', '')\n" +
|
||||
" END AS AI_3101,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN LEN(CAST(mtb_aart.peso_kg * mtb_colr.qta_cnf AS INTEGER)) <= 4 THEN\n" +
|
||||
" REPLACE(FORMAT(mtb_aart.peso_kg * mtb_colr.qta_cnf, '0000.00'), '.', '')\n" +
|
||||
" END AS AI_3102,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN LEN(CAST(mtb_aart.peso_kg * mtb_colr.qta_cnf AS INTEGER)) <= 3 THEN\n" +
|
||||
" REPLACE(FORMAT(mtb_aart.peso_kg * mtb_colr.qta_cnf, '000.000'), '.', '')\n" +
|
||||
" END AS AI_3103,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN LEN(CAST(mtb_aart.peso_kg * mtb_colr.qta_cnf AS INTEGER)) <= 2 THEN\n" +
|
||||
" REPLACE(FORMAT(mtb_aart.peso_kg * mtb_colr.qta_cnf, '00.0000'), '.', '')\n" +
|
||||
" END AS AI_3104,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN LEN(CAST(mtb_aart.peso_kg * mtb_colr.qta_cnf AS INTEGER)) <= 1 THEN\n" +
|
||||
" REPLACE(FORMAT(mtb_aart.peso_kg * mtb_colr.qta_cnf, '0.00000'), '.', '')\n" +
|
||||
" END AS AI_3105,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN LEN(CAST(mtb_colt.peso_kg AS INTEGER)) <= 6 THEN\n" +
|
||||
" REPLACE(FORMAT(mtb_colt.peso_kg, '000000'), '.', '')\n" +
|
||||
" END AS AI_3300,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN LEN(CAST(mtb_colt.peso_kg AS INTEGER)) <= 5 THEN\n" +
|
||||
" REPLACE(FORMAT(mtb_colt.peso_kg, '00000.0'), '.', '')\n" +
|
||||
" END AS AI_3301,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN LEN(CAST(mtb_colt.peso_kg AS INTEGER)) <= 4 THEN\n" +
|
||||
" REPLACE(FORMAT(mtb_colt.peso_kg, '0000.00'), '.', '')\n" +
|
||||
" END AS AI_3302,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN LEN(CAST(mtb_colt.peso_kg AS INTEGER)) <= 3 THEN\n" +
|
||||
" REPLACE(FORMAT(mtb_colt.peso_kg, '000.000'), '.', '')\n" +
|
||||
" END AS AI_3303,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN LEN(CAST(mtb_colt.peso_kg AS INTEGER)) <= 2 THEN\n" +
|
||||
" REPLACE(FORMAT(mtb_colt.peso_kg, '00.0000'), '.', '')\n" +
|
||||
" END AS AI_3304,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN LEN(CAST(mtb_colt.peso_kg AS INTEGER)) <= 1 THEN\n" +
|
||||
" REPLACE(FORMAT(mtb_colt.peso_kg, '0.00000'), '.', '')\n" +
|
||||
" END AS AI_3305,\n" +
|
||||
" CONVERT(VARCHAR, CONVERT(INTEGER, SUM(mtb_colr.qta_col / mtb_colr.qta_cnf))) AS AI_37\n" +
|
||||
" FROM mtb_colt\n" +
|
||||
" INNER JOIN mtb_colr\n" +
|
||||
" ON mtb_colt.gestione = mtb_colr.gestione AND\n" +
|
||||
" mtb_colt.data_collo = mtb_colr.data_collo AND\n" +
|
||||
" mtb_colt.ser_collo = mtb_colr.ser_collo AND\n" +
|
||||
" mtb_colt.num_collo = mtb_colr.num_collo\n" +
|
||||
" INNER JOIN mtb_aart ON mtb_colr.cod_mart = mtb_aart.cod_mart\n" +
|
||||
" LEFT OUTER JOIN mtb_partita_mag ON mtb_colr.cod_mart = mtb_partita_mag.cod_mart AND\n" +
|
||||
" mtb_colr.partita_mag =\n" +
|
||||
" mtb_partita_mag.partita_mag,\n" +
|
||||
" azienda\n" +
|
||||
" WHERE mtb_colt.gestione = @gestione\n" +
|
||||
" AND mtb_colt.data_collo = @dataCollo\n" +
|
||||
" AND mtb_colt.ser_collo = @serCollo\n" +
|
||||
" AND mtb_colt.num_collo = @numCollo\n" +
|
||||
" GROUP BY mtb_colr.qta_cnf,\n" +
|
||||
" mtb_colt.data_vers,\n" +
|
||||
" nome_ditta,\n" +
|
||||
" azienda.indirizzo,\n" +
|
||||
" azienda.cap,\n" +
|
||||
" azienda.citta,\n" +
|
||||
" azienda.prov,\n" +
|
||||
" prefisso_ean,\n" +
|
||||
" mtb_colt.data_collo,\n" +
|
||||
" mtb_colt.num_collo,\n" +
|
||||
" mtb_aart.cod_barre_imb,\n" +
|
||||
" mtb_aart.bar_code,\n" +
|
||||
" mtb_aart.descrizione_estesa,\n" +
|
||||
" mtb_colr.partita_mag,\n" +
|
||||
" mtb_partita_mag.data_scad,\n" +
|
||||
" mtb_colt.peso_netto_kg,\n" +
|
||||
" mtb_colr.cod_mart,\n" +
|
||||
" mtb_colt.gestione,\n" +
|
||||
" mtb_colt.peso_kg,\n" +
|
||||
" mtb_aart.peso_kg, \n" +
|
||||
" mtb_colt.barcode_ul)\n" +
|
||||
" SELECT AI_00,\n" +
|
||||
" IIF(AI_01 IS NOT NULL AND LEN(AI_01) = 13,\n" +
|
||||
" CONCAT(AI_01, dbo.getCheckDigitITF14(AI_01)), AI_01) AS AI_01,\n" +
|
||||
" AI_02,\n" +
|
||||
" AI_10,\n" +
|
||||
" AI_15,\n" +
|
||||
" AI_3100,\n" +
|
||||
" AI_3101,\n" +
|
||||
" AI_3102,\n" +
|
||||
" AI_3103,\n" +
|
||||
" AI_3104,\n" +
|
||||
" AI_3105,\n" +
|
||||
" AI_3300,\n" +
|
||||
" AI_3301,\n" +
|
||||
" AI_3302,\n" +
|
||||
" AI_3303,\n" +
|
||||
" AI_3304,\n" +
|
||||
" AI_3305,\n" +
|
||||
" AI_37\n" +
|
||||
" FROM barcodes\n" +
|
||||
"GO");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
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.IntegryCustomerDB;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
import it.integry.ems.migration.dto.common.MigrationMvwSitArtUdcDetInventarioDTO;
|
||||
|
||||
public class Migration_20250417110238 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
//Migration per aggiornare la view mvw_sitart_udc_det_inventario
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
if (!isCustomer(IntegryCustomer.Maggio) &&
|
||||
!isCustomer(IntegryCustomer.Biolevante) &&
|
||||
!isCustomer(IntegryCustomer.Ime) &&
|
||||
!isCustomerDb(IntegryCustomerDB.Gramm_Gramm))
|
||||
return;
|
||||
|
||||
//Aggiorno la view mvw_mtb_colr_with_giacenza
|
||||
MigrationMvwSitArtUdcDetInventarioDTO.apply(connection);
|
||||
|
||||
MigrationMvwSitArtUdcDetInventarioDTO.alignGiacenza(connection);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,207 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250604172635 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
createOrUpdateView("WMS_OrdPrelievo", "CREATE VIEW [dbo].[WMS_OrdPrelievo] AS\n" +
|
||||
"WITH elencoFornitoriInterni AS (SELECT value_string AS fornitore\n" +
|
||||
" FROM dbo.ParseStringIntoArray((SELECT value\n" +
|
||||
" FROM stb_gest_setup\n" +
|
||||
" WHERE gest_name = 'PICKING'\n" +
|
||||
" AND section = 'SPEDIZIONE'\n" +
|
||||
" AND key_section = 'ELENCO_FORNITORI_INTERNI'),\n" +
|
||||
" '|')),\n" +
|
||||
" riservatoPerOrd AS (\n" +
|
||||
"\n" +
|
||||
"\n" +
|
||||
"SELECT mtb_colt.gestione,\n" +
|
||||
" mtb_colr.data_ord,\n" +
|
||||
" mtb_colr.num_ord,\n" +
|
||||
" mtb_colr.riga_ord,\n" +
|
||||
" SUM(mtb_colr.qta_col) AS qtaCollo,\n" +
|
||||
" SUM(mtb_colr.num_cnf) AS numCnfCollo,\n" +
|
||||
" COUNT(DISTINCT mtb_colr.num_ord) AS ColliRiservati\n" +
|
||||
" FROM mtb_colr\n" +
|
||||
" INNER JOIN mtb_colt ON mtb_colr.gestione = mtb_colt.gestione AND\n" +
|
||||
" mtb_colr.data_collo = mtb_colt.data_collo AND\n" +
|
||||
" mtb_colr.ser_collo = mtb_colt.ser_collo AND\n" +
|
||||
" mtb_colr.num_collo = mtb_colt.num_collo\n" +
|
||||
" WHERE segno = - 1\n" +
|
||||
" AND mtb_colr.gestione IN ('L', 'V')\n" +
|
||||
" AND mtb_colr.data_ord IS NOT NULL\n" +
|
||||
" GROUP BY mtb_colt.gestione, mtb_colr.data_ord, mtb_colr.num_ord, mtb_colr.riga_ord\n" +
|
||||
"\n" +
|
||||
" ), OrdVr AS (\n" +
|
||||
" SELECT dtb_ordr.gestione,\n" +
|
||||
" dtb_ordr.data_ord,\n" +
|
||||
" dtb_ordr.num_ord,\n" +
|
||||
" dtb_ordt.cod_vdes,\n" +
|
||||
" IIF(dtb_ordr.gestione = 'V', LEFT(ISNULL(vtb_dest.citta + ' - ', '') + vtb_dest.indirizzo, 40),\n" +
|
||||
" dtb_ordt.rif_ord) AS rif_ord,\n" +
|
||||
" dtb_ordt.cod_anag,\n" +
|
||||
" dtb_ordt.cod_prod,\n" +
|
||||
" CASE dtb_ordr.gestione WHEN 'L' THEN '2' WHEN 'V' THEN '3' END +\n" +
|
||||
" REPLACE(CONVERT(VARCHAR(10), dtb_ordr.data_ord, 105), '-', '') +\n" +
|
||||
" REPLICATE('0', 5 - LEN(dtb_ordr.num_ord)) +\n" +
|
||||
" CONVERT(VARCHAR(6), dtb_ordr.num_ord) AS chiave_ordine,\n" +
|
||||
" dtb_ordr.cod_jcom,\n" +
|
||||
" dtb_ordr.cod_mart,\n" +
|
||||
" SUM(ROUND(dtb_ordr.qta_ord - dtb_ordr.qta_evasa, mtb_unt_mis.cifre_dec)) *\n" +
|
||||
" dtb_ordr.rap_conv AS qta_inevasa,\n" +
|
||||
" dtb_ordt.listino,\n" +
|
||||
" dtb_ordt.term_cons,\n" +
|
||||
" dtb_ordt.cod_auto,\n" +
|
||||
" dtb_ordt.cod_vvet,\n" +
|
||||
" dtb_ordt.data_iniz_trasp,\n" +
|
||||
" dtb_ordt.cod_mdep,\n" +
|
||||
" dtb_ordr.data_cons AS data_cons,\n" +
|
||||
" dtb_ordr.id_viaggio,\n" +
|
||||
" dtb_ordt.cod_vage,\n" +
|
||||
" SUM(colli.qtaCollo) AS qtaCollo,\n" +
|
||||
" SUM(ROUND((dtb_ordr.qta_ord - dtb_ordr.qta_evasa) * dtb_ordr.rap_conv -\n" +
|
||||
" ISNULL(colli.qtaCollo, 0),\n" +
|
||||
" mtb_unt_mis.cifre_dec)) AS qtaInevasaColli,\n" +
|
||||
" SUM(colli.numCnfCollo) AS numCnfCollo,\n" +
|
||||
" SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa -\n" +
|
||||
" ISNULL(colli.numCnfCollo, 0)) AS numCnfInevasaColli,\n" +
|
||||
" IIF((dtb_ordr.gestione = 'L' AND dtb_ordt.gestione_rif = 'T') OR\n" +
|
||||
" elencoFornitoriInterni.fornitore IS NOT NULL, 'S', 'N') AS ord_trasf\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_unt_mis ON mtb_unt_mis.unt_mis = dtb_ordr.unt_ord\n" +
|
||||
" INNER JOIN mtb_aart ON dtb_ordr.cod_mart = mtb_aart.cod_mart\n" +
|
||||
" LEFT OUTER JOIN vtb_dest ON dtb_ordt.cod_anag = vtb_dest.cod_anag AND\n" +
|
||||
" dtb_ordt.cod_vdes = vtb_dest.cod_vdes\n" +
|
||||
" LEFT OUTER JOIN riservatoPerOrd colli\n" +
|
||||
" ON dtb_ordt.gestione = colli.gestione AND\n" +
|
||||
" dtb_ordt.data_ord = colli.data_ord AND\n" +
|
||||
" dtb_ordt.num_ord = colli.num_ord\n" +
|
||||
" LEFT OUTER JOIN elencoFornitoriInterni ON fornitore = dtb_ordt.cod_anag\n" +
|
||||
" WHERE dtb_ordt.flag_annulla = 'N'\n" +
|
||||
" AND dtb_ordt.flag_sospeso = 'N'\n" +
|
||||
" AND dtb_ordr.flag_evaso = 'I'\n" +
|
||||
" AND dtb_ordt.flag_evaso_forzato = 'N'\n" +
|
||||
" AND dtb_ordt.gestione IN ('L', 'V')\n" +
|
||||
" AND ((mtb_aart.flag_qta_cnf_fissa = 'S' AND qta_ord > qta_evasa) OR\n" +
|
||||
" (mtb_aart.flag_qta_cnf_fissa <> 'S' AND num_cnf > num_cnf_evasa))\n" +
|
||||
" GROUP BY dtb_ordr.gestione, dtb_ordr.data_ord, dtb_ordr.num_ord, dtb_ordt.cod_vdes,\n" +
|
||||
" vtb_dest.indirizzo,\n" +
|
||||
" vtb_dest.citta, dtb_ordt.rif_ord, dtb_ordt.cod_anag, dtb_ordr.cod_jcom, dtb_ordr.cod_mart,\n" +
|
||||
" dtb_ordt.cod_prod, dtb_ordt.listino, dtb_ordt.term_cons, dtb_ordt.cod_auto,\n" +
|
||||
" dtb_ordt.cod_vvet, fornitore,\n" +
|
||||
" dtb_ordt.data_iniz_trasp, dtb_ordt.cod_mdep, dtb_ordt.cod_vage, dtb_ordr.id_viaggio,\n" +
|
||||
" colli.num_ord, dtb_ordr.data_cons, dtb_ordt.gestione_rif, dtb_ordr.rap_conv\n" +
|
||||
"\n" +
|
||||
"\n" +
|
||||
" ), OrdV AS (\n" +
|
||||
" SELECT gestione,\n" +
|
||||
" data_ord,\n" +
|
||||
" num_ord,\n" +
|
||||
" rif_ord,\n" +
|
||||
" cod_anag,\n" +
|
||||
" chiave_ordine,\n" +
|
||||
" cod_jcom,\n" +
|
||||
" cod_prod,\n" +
|
||||
" listino,\n" +
|
||||
" term_cons,\n" +
|
||||
" cod_auto,\n" +
|
||||
" cod_vvet,\n" +
|
||||
" data_iniz_trasp,\n" +
|
||||
" data_cons,\n" +
|
||||
" cod_vdes,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" COUNT(DISTINCT cod_mart) AS arts_da_evadere,\n" +
|
||||
" SUM(qtaInevasaColli) AS qtaInevasa,\n" +
|
||||
" SUM(numCnfInevasaColli) AS numCnfInevasa,\n" +
|
||||
" id_viaggio,\n" +
|
||||
" cod_vage,\n" +
|
||||
" COUNT(DISTINCT qtaCollo) AS colliRiservati,\n" +
|
||||
" ord_trasf\n" +
|
||||
" FROM OrdVr\n" +
|
||||
" GROUP BY gestione, data_ord, num_ord, rif_ord, cod_anag, chiave_ordine, cod_jcom, cod_prod, listino,\n" +
|
||||
" term_cons, cod_auto, cod_vvet, data_iniz_trasp, data_cons, cod_vdes, cod_mdep, cod_vage,\n" +
|
||||
" id_viaggio, ord_trasf\n" +
|
||||
"\n" +
|
||||
" ),\n" +
|
||||
" OrdV2 AS (SELECT OrdV.gestione,\n" +
|
||||
" OrdV.data_ord,\n" +
|
||||
" OrdV.num_ord,\n" +
|
||||
" rif_ord,\n" +
|
||||
" OrdV.cod_anag,\n" +
|
||||
" chiave_ordine,\n" +
|
||||
" cod_jcom,\n" +
|
||||
" cod_prod,\n" +
|
||||
" listino,\n" +
|
||||
" term_cons,\n" +
|
||||
" OrdV.cod_auto,\n" +
|
||||
" ISNULL(vtb_viaggi.cod_vvet, OrdV.cod_vvet) AS cod_vvet,\n" +
|
||||
" data_iniz_trasp,\n" +
|
||||
" ISNULL(CONVERT(DATETIME, CONVERT(VARCHAR(10), vtb_viaggi.data_ora_iniz_trasp, 121)),\n" +
|
||||
" data_cons) AS data_cons,\n" +
|
||||
" cod_vdes,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" arts_da_evadere AS ArtDaEvadere,\n" +
|
||||
" OrdV.id_viaggio,\n" +
|
||||
" cod_vage,\n" +
|
||||
" ISNULL(ordV.ColliRiservati, 0) AS colli_riservati,\n" +
|
||||
" qtaInevasa,\n" +
|
||||
" numCnfInevasa,\n" +
|
||||
" CAST(IIF(ISNULL(ordV.ColliRiservati, 0) > 0, 1, 0) AS BIT) exist_collo,\n" +
|
||||
" CAST(IIF(ISNULL(qtaInevasa, 0) > 0,\n" +
|
||||
" IIF(ISNULL(numCnfInevasa, 0) > 0, 0, IIF(ordV.colliRiservati > 0, 1, 0)), 1) AS BIT) AS flag_evaso,\n" +
|
||||
" ord_trasf,\n" +
|
||||
" IIF((SELECT azienda.part_iva\n" +
|
||||
" FROM azienda\n" +
|
||||
" WHERE azienda.part_iva = gtb_anag.part_iva) IS NULL, 'N', 'S') AS ord_aziendale\n" +
|
||||
" FROM Ordv\n" +
|
||||
" INNER JOIN gtb_anag ON OrdV.cod_anag = gtb_anag.cod_anag\n" +
|
||||
" LEFT OUTER JOIN vtb_viaggi ON OrdV.id_viaggio = vtb_viaggi.id_viaggio\n" +
|
||||
" WHERE (arts_da_evadere > 0 OR ISNULL(ColliRiservati, 0) > 0))\n" +
|
||||
"SELECT gestione,\n" +
|
||||
" data_ord,\n" +
|
||||
" num_ord,\n" +
|
||||
" rif_ord,\n" +
|
||||
" cod_anag,\n" +
|
||||
" chiave_ordine,\n" +
|
||||
" cod_jcom,\n" +
|
||||
" cod_prod,\n" +
|
||||
" listino,\n" +
|
||||
" term_cons,\n" +
|
||||
" cod_auto,\n" +
|
||||
" cod_vvet,\n" +
|
||||
" data_iniz_trasp,\n" +
|
||||
" data_cons,\n" +
|
||||
" cod_vdes,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" SUM(ArtDaEvadere) AS ArtDaEvadere,\n" +
|
||||
" id_viaggio,\n" +
|
||||
" cod_vage,\n" +
|
||||
" SUM(colli_riservati) AS colli_riservati,\n" +
|
||||
" SUM(qtaInevasa) AS qtaInevasa,\n" +
|
||||
" SUM(numCnfInevasa) AS numCnfInevasa,\n" +
|
||||
" exist_collo,\n" +
|
||||
" flag_evaso,\n" +
|
||||
" ord_trasf,\n" +
|
||||
" ord_aziendale\n" +
|
||||
"FROM OrdV2\n" +
|
||||
"GROUP BY gestione, data_ord, num_ord, rif_ord, cod_anag, chiave_ordine, cod_jcom, cod_prod, listino, term_cons,\n" +
|
||||
" cod_auto, cod_vvet, data_iniz_trasp, data_cons, cod_vdes, cod_mdep, id_viaggio, cod_vage, exist_collo,\n" +
|
||||
" flag_evaso, ord_trasf, ord_aziendale");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,130 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250618195259 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
createOrUpdateView("dvw_situazione_qta_docs", "CREATE VIEW dvw_situazione_qta_docs AS\n" +
|
||||
"SELECT dtb_docr.[cod_anag],\n" +
|
||||
" dtb_docr.[cod_dtip],\n" +
|
||||
" dtb_docr.[data_doc],\n" +
|
||||
" dtb_docr.[ser_doc],\n" +
|
||||
" dtb_docr.[num_doc],\n" +
|
||||
" dtb_docr.[id_riga],\n" +
|
||||
" dtb_docr.[cod_mart],\n" +
|
||||
" dtb_docr.[descrizione],\n" +
|
||||
" dtb_docr.[unt_doc],\n" +
|
||||
" (dtb_docr.[rap_conv] / dtb_docr.[rap_conv]) AS rap_conv,\n" +
|
||||
" (dtb_docr.[qta_doc] * dtb_docr.[rap_conv]) - ISNULL(mtb_colr.qta_col, 0) AS qta_doc,\n" +
|
||||
" dtb_docr.[val_unt],\n" +
|
||||
" dtb_docr.[sconto5],\n" +
|
||||
" dtb_docr.[sconto6],\n" +
|
||||
" dtb_docr.[sconto7],\n" +
|
||||
" dtb_docr.[sconto8],\n" +
|
||||
" dtb_docr.[cod_aliq],\n" +
|
||||
" dtb_docr.[perc_prov],\n" +
|
||||
" dtb_docr.[val_prov],\n" +
|
||||
" dtb_docr.[data_ord],\n" +
|
||||
" dtb_docr.[num_ord],\n" +
|
||||
" dtb_docr.[riga_ord],\n" +
|
||||
" dtb_docr.[importo_riga],\n" +
|
||||
" dtb_docr.[cod_col],\n" +
|
||||
" dtb_docr.[cod_tagl],\n" +
|
||||
" dtb_docr.[cod_jcom],\n" +
|
||||
" dtb_docr.[cod_mdep],\n" +
|
||||
" dtb_docr.[perc_gest],\n" +
|
||||
" dtb_docr.[val_gest],\n" +
|
||||
" dtb_docr.[partita_mag],\n" +
|
||||
" dtb_docr.[val_unt_iva],\n" +
|
||||
" (dtb_docr.[qta_cnf] * dtb_docr.[rap_conv]) AS qta_cnf,\n" +
|
||||
" dtb_docr.[descrizione_estesa],\n" +
|
||||
" dtb_docr.[costo_unt],\n" +
|
||||
" dtb_docr.[perc_ispe],\n" +
|
||||
" dtb_docr.[val_ispe],\n" +
|
||||
" dtb_docr.[perc_promo],\n" +
|
||||
" dtb_docr.[val_promo],\n" +
|
||||
" dtb_docr.[perc_oneri],\n" +
|
||||
" dtb_docr.[val_oneri],\n" +
|
||||
" dtb_docr.[flag_evaso_forzato],\n" +
|
||||
" dtb_docr.[cod_dtip_comp],\n" +
|
||||
" dtb_docr.[data_doc_comp],\n" +
|
||||
" dtb_docr.[ser_doc_comp],\n" +
|
||||
" dtb_docr.[num_doc_comp],\n" +
|
||||
" dtb_docr.[cod_promo],\n" +
|
||||
" dtb_docr.[perc_prov2],\n" +
|
||||
" dtb_docr.[val_prov2],\n" +
|
||||
" dtb_docr.[cod_art_for],\n" +
|
||||
" dtb_docr.[unt_doc2],\n" +
|
||||
" dtb_docr.[qta_doc2],\n" +
|
||||
" dtb_docr.[unt_doc3],\n" +
|
||||
" dtb_docr.[qta_doc3],\n" +
|
||||
" dtb_docr.[num_cnf] - ISNULL(mtb_colr.num_cnf, 0) AS num_cnf,\n" +
|
||||
" dtb_docr.[peso_lordo],\n" +
|
||||
" dtb_docr.[posizione],\n" +
|
||||
" dtb_docr.[cod_anag_comp],\n" +
|
||||
" dtb_docr.[cod_mtip],\n" +
|
||||
" dtb_docr.[matricola],\n" +
|
||||
" dtb_docr.[data_iniz_comp],\n" +
|
||||
" dtb_docr.[data_fine_comp],\n" +
|
||||
" dtb_docr.[cod_kit],\n" +
|
||||
" dtb_docr.[cod_alis],\n" +
|
||||
" dtb_docr.[data_ins_row],\n" +
|
||||
" dtb_docr.[note],\n" +
|
||||
" dtb_doct.[gestione],\n" +
|
||||
" mtb_partita_mag.[data_scad] AS data_scad_partita_mag\n" +
|
||||
"FROM dtb_docr\n" +
|
||||
" INNER JOIN dtb_doct ON dtb_docr.num_doc = dtb_doct.num_doc AND dtb_docr.data_doc = dtb_doct.data_doc AND\n" +
|
||||
" dtb_docr.cod_anag = dtb_doct.cod_anag AND dtb_docr.cod_dtip = dtb_doct.cod_dtip AND\n" +
|
||||
" dtb_docr.ser_doc = dtb_doct.ser_doc\n" +
|
||||
" INNER JOIN mtb_aart ON dtb_docr.cod_mart = mtb_aart.cod_mart\n" +
|
||||
" LEFT OUTER JOIN mtb_partita_mag ON dtb_docr.cod_mart = mtb_partita_mag.cod_mart AND\n" +
|
||||
" dtb_docr.partita_mag = mtb_partita_mag.partita_mag\n" +
|
||||
" LEFT OUTER JOIN ctb_cont ON mtb_aart.cod_ccon_ricavi = ctb_cont.cod_ccon\n" +
|
||||
" LEFT OUTER JOIN ctb_grup ON ctb_cont.cod_cgrp = ctb_grup.cod_cgrp\n" +
|
||||
" LEFT OUTER JOIN (SELECT gestione,\n" +
|
||||
" cod_mart,\n" +
|
||||
" cod_col,\n" +
|
||||
" cod_tagl,\n" +
|
||||
" SUM(qta_col) AS qta_col,\n" +
|
||||
" data_ord,\n" +
|
||||
" num_ord,\n" +
|
||||
" riga_ord,\n" +
|
||||
" partita_mag,\n" +
|
||||
" qta_cnf,\n" +
|
||||
" gestione_rif,\n" +
|
||||
" data_collo_rif,\n" +
|
||||
" ser_collo_rif,\n" +
|
||||
" num_collo_rif,\n" +
|
||||
" cod_jcom,\n" +
|
||||
" SUM(num_cnf) AS num_cnf,\n" +
|
||||
" cod_anag_doc,\n" +
|
||||
" cod_dtip_doc,\n" +
|
||||
" data_doc,\n" +
|
||||
" ser_doc,\n" +
|
||||
" num_doc,\n" +
|
||||
" id_riga_doc\n" +
|
||||
" FROM mtb_colr\n" +
|
||||
" GROUP BY gestione, cod_barre, cod_mart, cod_col, cod_tagl, data_ord, num_ord, riga_ord,\n" +
|
||||
" partita_mag, qta_cnf, gestione_rif, data_collo_rif, ser_collo_rif, num_collo_rif,\n" +
|
||||
" cod_jcom, cod_anag_doc, cod_dtip_doc, data_doc, ser_doc, num_doc,\n" +
|
||||
" id_riga_doc) mtb_colr\n" +
|
||||
" ON dtb_docr.cod_anag = mtb_colr.cod_anag_doc AND dtb_docr.cod_dtip = mtb_colr.cod_dtip_doc AND\n" +
|
||||
" dtb_docr.ser_doc = mtb_colr.ser_doc AND dtb_docr.data_doc = mtb_colr.data_doc AND\n" +
|
||||
" dtb_docr.num_doc = mtb_colr.num_doc AND dtb_docr.id_riga = mtb_colr.id_riga_doc\n" +
|
||||
"WHERE (ctb_grup.sezione <> 1 OR ctb_grup.sezione IS NULL)\n" +
|
||||
" AND (dtb_docr.[qta_doc] * dtb_docr.[rap_conv]) - ISNULL(mtb_colr.qta_col, 0) > 0");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250625155432 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
createOrUpdateView("mvw_sitart_udc_det_inventario", "CREATE VIEW [dbo].[mvw_sitart_udc_det_inventario] AS\n" +
|
||||
"WITH baseMtbColr AS (SELECT c,\n" +
|
||||
"\n" +
|
||||
" ROUND(v.qta_col, cifre_dec) AS qta_col,\n" +
|
||||
" ROUND(v.num_cnf, cifre_dec) AS num_cnf,\n" +
|
||||
" IIF(flag_qta_cnf_fissa = 'S',\n" +
|
||||
" v.qta_cnf_anag, v.qta_col / IIF(v.num_cnf = 0, 1, v.num_cnf)) AS qta_cnf,\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.peso_netto_kg,\n" +
|
||||
" v.peso_lordo_kg,\n" +
|
||||
" mtb_colt.gestione,\n" +
|
||||
" mtb_colt.data_collo,\n" +
|
||||
" mtb_colt.ser_collo,\n" +
|
||||
" mtb_colt.num_collo,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.flag_qta_cnf_fissa,\n" +
|
||||
" v.unt_mis,\n" +
|
||||
" v.diacod,\n" +
|
||||
" v.descrizione_estesa,\n" +
|
||||
" v.cod_mgrp,\n" +
|
||||
" mtb_grup.descrizione AS descrizione_gruppo,\n" +
|
||||
" v.cod_msgr,\n" +
|
||||
" mtb_sgrp.descrizione AS descrizione_sottogruppo,\n" +
|
||||
" mtb_unt_mis.flag_dig,\n" +
|
||||
" mtb_unt_mis.cifre_dec,\n" +
|
||||
" mtb_colt.segno,\n" +
|
||||
" v.cod_mdep,\n" +
|
||||
" v.posizione,\n" +
|
||||
" mtb_colt.cod_dtip,\n" +
|
||||
" mtb_colt.cod_jfas,\n" +
|
||||
" v.barcode_ul,\n" +
|
||||
" v.qta_cnf_anag,\n" +
|
||||
" mtb_colr.datetime_row AS datetime_posizionamento\n" +
|
||||
" FROM mvw_mtb_colr_with_giacenza v WITH (NOEXPAND)\n" +
|
||||
" INNER JOIN mtb_colt\n" +
|
||||
" ON v.barcode_ul = mtb_colt.barcode_ul\n" +
|
||||
" LEFT OUTER JOIN mtb_colr ON\n" +
|
||||
" v.barcode_ul = mtb_colr.barcode_ul_in AND\n" +
|
||||
" v.cod_mart = mtb_colr.cod_mart AND\n" +
|
||||
" ISNULL(v.partita_mag, '') = ISNULL(mtb_colr.partita_mag, '') AND\n" +
|
||||
" ISNULL(v.cod_col, '') = ISNULL(mtb_colr.cod_col, '') AND\n" +
|
||||
" ISNULL(v.cod_tagl, '') = ISNULL(mtb_colr.cod_tagl, '') AND\n" +
|
||||
" ISNULL(v.cod_jcom, '') = ISNULL(mtb_colr.cod_jcom, '') AND\n" +
|
||||
" ISNULL(v.posizione, '') = ISNULL(mtb_colr.posizione_in, '') AND\n" +
|
||||
" ISNULL(v.cod_mdep, '') = ISNULL(mtb_colr.cod_mdep_in, '') AND\n" +
|
||||
" ISNULL(mtb_colr.posizione_in, '') <> ISNULL(mtb_colr.posizione_out, '')\n" +
|
||||
" INNER JOIN dbo.mtb_unt_mis ON v.unt_mis = mtb_unt_mis.unt_mis\n" +
|
||||
"\n" +
|
||||
" INNER JOIN dbo.mtb_grup ON v.cod_mgrp = mtb_grup.cod_mgrp\n" +
|
||||
" INNER JOIN dbo.mtb_sgrp ON v.cod_mgrp = mtb_sgrp.cod_mgrp\n" +
|
||||
" AND v.cod_msgr = mtb_sgrp.cod_msgr\n" +
|
||||
" WHERE v.qta_col > 0\n" +
|
||||
" AND (segno = 1 OR (segno = -1 AND cod_dtip IS NULL AND mtb_colt.gestione = 'V'))),\n" +
|
||||
" final_stock AS (SELECT v.qta_col,\n" +
|
||||
" v.num_cnf,\n" +
|
||||
" v.qta_cnf,\n" +
|
||||
" v.gestione,\n" +
|
||||
" v.data_collo,\n" +
|
||||
" v.ser_collo,\n" +
|
||||
" v.num_collo,\n" +
|
||||
" v.cod_mdep AS cod_mdep,\n" +
|
||||
" v.posizione AS posizione,\n" +
|
||||
" mtb_depo_posizioni.priorita,\n" +
|
||||
" v.cod_mgrp AS codGruppo,\n" +
|
||||
" v.descrizione_gruppo AS Gruppo,\n" +
|
||||
" v.cod_msgr AS CodSgruppo,\n" +
|
||||
" v.descrizione_sottogruppo AS Sottogruppo,\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.diacod,\n" +
|
||||
" v.descrizione_estesa,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.peso_netto_kg,\n" +
|
||||
" v.peso_lordo_kg,\n" +
|
||||
" v.cod_jfas,\n" +
|
||||
" v.flag_qta_cnf_fissa,\n" +
|
||||
" v.unt_mis,\n" +
|
||||
" v.segno,\n" +
|
||||
" v.barcode_ul,\n" +
|
||||
" v.datetime_posizionamento\n" +
|
||||
" FROM baseMtbColr v\n" +
|
||||
"\n" +
|
||||
" LEFT OUTER JOIN mtb_depo_posizioni\n" +
|
||||
" ON v.cod_mdep = mtb_depo_posizioni.cod_mdep\n" +
|
||||
" AND v.posizione = mtb_depo_posizioni.posizione)\n" +
|
||||
"\n" +
|
||||
"SELECT qta_col,\n" +
|
||||
" num_cnf,\n" +
|
||||
" qta_cnf,\n" +
|
||||
" gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" ser_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" posizione,\n" +
|
||||
" priorita,\n" +
|
||||
" codGruppo,\n" +
|
||||
" Gruppo,\n" +
|
||||
" CodSgruppo,\n" +
|
||||
" Sottogruppo,\n" +
|
||||
" cod_mart,\n" +
|
||||
" diacod,\n" +
|
||||
" descrizione_estesa,\n" +
|
||||
" partita_mag,\n" +
|
||||
" cod_col,\n" +
|
||||
" cod_tagl,\n" +
|
||||
" cod_jcom,\n" +
|
||||
" peso_netto_kg,\n" +
|
||||
" peso_lordo_kg,\n" +
|
||||
" cod_jfas,\n" +
|
||||
" flag_qta_cnf_fissa,\n" +
|
||||
" unt_mis,\n" +
|
||||
" segno,\n" +
|
||||
" barcode_ul,\n" +
|
||||
" datetime_posizionamento\n" +
|
||||
"FROM final_stock");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
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_20250626142053 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
String reportNamePackingList = null;
|
||||
if (isCustomer(IntegryCustomer.RossoGargano)) {
|
||||
reportNamePackingList = "PackingListScarico";
|
||||
}
|
||||
createSetup("PVM", "CONTROLLO_GIACENZE", "REPORT_NAME_PACKING_LIST", reportNamePackingList, "Nome report per stampa packing list post trasferimento", "REPORT_NAME");
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
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_20250627184608 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
String value = null;
|
||||
if (isCustomer(IntegryCustomer.RossoGargano)){
|
||||
value = "ControlloGiacenzeSintetico";
|
||||
}
|
||||
createSetup("PVM","CONTROLLO_GIACENZE","REPORT_NAME_ELENCO_SINTETICO",value,"Report name per report giacenze sintetico da portale web","REPORT_NAME");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250630164505 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
createOrUpdateView("mvw_sitart_udc_det_inventario", "CREATE VIEW [dbo].[mvw_sitart_udc_det_inventario] AS\n" +
|
||||
"WITH baseMtbColr AS (SELECT c,\n" +
|
||||
"\n" +
|
||||
" ROUND(v.qta_col, cifre_dec) AS qta_col,\n" +
|
||||
" ROUND(v.num_cnf, cifre_dec) AS num_cnf,\n" +
|
||||
" IIF(flag_qta_cnf_fissa = 'S',\n" +
|
||||
" v.qta_cnf_anag, v.qta_col / IIF(v.num_cnf = 0, 1, v.num_cnf)) AS qta_cnf,\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.peso_netto_kg,\n" +
|
||||
" v.peso_lordo_kg,\n" +
|
||||
" mtb_colt.gestione,\n" +
|
||||
" mtb_colt.data_collo,\n" +
|
||||
" mtb_colt.ser_collo,\n" +
|
||||
" mtb_colt.num_collo,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.flag_qta_cnf_fissa,\n" +
|
||||
" v.unt_mis,\n" +
|
||||
" v.diacod,\n" +
|
||||
" v.descrizione_estesa,\n" +
|
||||
" v.cod_mgrp,\n" +
|
||||
" mtb_grup.descrizione AS descrizione_gruppo,\n" +
|
||||
" v.cod_msgr,\n" +
|
||||
" mtb_sgrp.descrizione AS descrizione_sottogruppo,\n" +
|
||||
" mtb_unt_mis.flag_dig,\n" +
|
||||
" mtb_unt_mis.cifre_dec,\n" +
|
||||
" mtb_colt.segno,\n" +
|
||||
" v.cod_mdep,\n" +
|
||||
" v.posizione,\n" +
|
||||
" mtb_colt.cod_dtip,\n" +
|
||||
" mtb_colt.cod_jfas,\n" +
|
||||
" v.barcode_ul,\n" +
|
||||
" v.qta_cnf_anag,\n" +
|
||||
" MAX(mtb_colr.datetime_row) AS datetime_posizionamento\n" +
|
||||
" FROM mvw_mtb_colr_with_giacenza v WITH (NOEXPAND)\n" +
|
||||
" INNER JOIN mtb_colt\n" +
|
||||
" ON v.barcode_ul = mtb_colt.barcode_ul\n" +
|
||||
" LEFT OUTER JOIN mtb_colr ON\n" +
|
||||
" v.barcode_ul = mtb_colr.barcode_ul_in AND\n" +
|
||||
" v.cod_mart = mtb_colr.cod_mart AND\n" +
|
||||
" ((v.partita_mag IS NULL AND mtb_colr.partita_mag IS NULL) OR\n" +
|
||||
" (v.partita_mag = mtb_colr.partita_mag)) AND\n" +
|
||||
" ((v.cod_col IS NULL AND mtb_colr.cod_col IS NULL) OR (v.cod_col = mtb_colr.cod_col)) AND\n" +
|
||||
" ((v.cod_tagl IS NULL AND mtb_colr.cod_tagl IS NULL) OR (v.cod_tagl = mtb_colr.cod_tagl)) AND\n" +
|
||||
" ((v.cod_jcom IS NULL AND mtb_colr.cod_jcom IS NULL) OR (v.cod_jcom = mtb_colr.cod_jcom)) AND\n" +
|
||||
" ((v.posizione IS NULL AND mtb_colr.posizione_in IS NULL) OR (v.posizione = mtb_colr.posizione_in)) AND\n" +
|
||||
" ((v.cod_mdep IS NULL AND mtb_colr.cod_mdep_in IS NULL) OR (v.cod_mdep = mtb_colr.cod_mdep_in)) AND\n" +
|
||||
" ISNULL(mtb_colr.posizione_in, '') <> ISNULL(mtb_colr.posizione_out, '')\n" +
|
||||
" INNER JOIN dbo.mtb_unt_mis ON v.unt_mis = mtb_unt_mis.unt_mis\n" +
|
||||
"\n" +
|
||||
" INNER JOIN dbo.mtb_grup ON v.cod_mgrp = mtb_grup.cod_mgrp\n" +
|
||||
" INNER JOIN dbo.mtb_sgrp ON v.cod_mgrp = mtb_sgrp.cod_mgrp\n" +
|
||||
" AND v.cod_msgr = mtb_sgrp.cod_msgr\n" +
|
||||
" WHERE v.qta_col > 0\n" +
|
||||
" AND (segno = 1 OR (segno = -1 AND cod_dtip IS NULL AND mtb_colt.gestione = 'V'))\n" +
|
||||
" GROUP BY c,\n" +
|
||||
" ROUND(v.qta_col, cifre_dec),\n" +
|
||||
" ROUND(v.num_cnf, cifre_dec),\n" +
|
||||
" IIF(flag_qta_cnf_fissa = 'S',\n" +
|
||||
" v.qta_cnf_anag, v.qta_col / IIF(v.num_cnf = 0, 1, v.num_cnf)),\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.peso_netto_kg,\n" +
|
||||
" v.peso_lordo_kg,\n" +
|
||||
" mtb_colt.gestione,\n" +
|
||||
" mtb_colt.data_collo,\n" +
|
||||
" mtb_colt.ser_collo,\n" +
|
||||
" mtb_colt.num_collo,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.flag_qta_cnf_fissa,\n" +
|
||||
" v.unt_mis,\n" +
|
||||
" v.diacod,\n" +
|
||||
" v.descrizione_estesa,\n" +
|
||||
" v.cod_mgrp,\n" +
|
||||
" mtb_grup.descrizione,\n" +
|
||||
" v.cod_msgr,\n" +
|
||||
" mtb_sgrp.descrizione,\n" +
|
||||
" mtb_unt_mis.flag_dig,\n" +
|
||||
" mtb_unt_mis.cifre_dec,\n" +
|
||||
" mtb_colt.segno,\n" +
|
||||
" v.cod_mdep,\n" +
|
||||
" v.posizione,\n" +
|
||||
" mtb_colt.cod_dtip,\n" +
|
||||
" mtb_colt.cod_jfas,\n" +
|
||||
" v.barcode_ul,\n" +
|
||||
" v.qta_cnf_anag),\n" +
|
||||
" final_stock AS (SELECT v.qta_col,\n" +
|
||||
" v.num_cnf,\n" +
|
||||
" v.qta_cnf,\n" +
|
||||
" v.gestione,\n" +
|
||||
" v.data_collo,\n" +
|
||||
" v.ser_collo,\n" +
|
||||
" v.num_collo,\n" +
|
||||
" v.cod_mdep AS cod_mdep,\n" +
|
||||
" v.posizione AS posizione,\n" +
|
||||
" mtb_depo_posizioni.priorita,\n" +
|
||||
" v.cod_mgrp AS codGruppo,\n" +
|
||||
" v.descrizione_gruppo AS Gruppo,\n" +
|
||||
" v.cod_msgr AS CodSgruppo,\n" +
|
||||
" v.descrizione_sottogruppo AS Sottogruppo,\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.diacod,\n" +
|
||||
" v.descrizione_estesa,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.peso_netto_kg,\n" +
|
||||
" v.peso_lordo_kg,\n" +
|
||||
" v.cod_jfas,\n" +
|
||||
" v.flag_qta_cnf_fissa,\n" +
|
||||
" v.unt_mis,\n" +
|
||||
" v.segno,\n" +
|
||||
" v.barcode_ul,\n" +
|
||||
" v.datetime_posizionamento\n" +
|
||||
" FROM baseMtbColr v\n" +
|
||||
"\n" +
|
||||
" LEFT OUTER JOIN mtb_depo_posizioni\n" +
|
||||
" ON v.cod_mdep = mtb_depo_posizioni.cod_mdep\n" +
|
||||
" AND v.posizione = mtb_depo_posizioni.posizione)\n" +
|
||||
"\n" +
|
||||
"SELECT qta_col,\n" +
|
||||
" num_cnf,\n" +
|
||||
" qta_cnf,\n" +
|
||||
" gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" ser_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" posizione,\n" +
|
||||
" priorita,\n" +
|
||||
" codGruppo,\n" +
|
||||
" Gruppo,\n" +
|
||||
" CodSgruppo,\n" +
|
||||
" Sottogruppo,\n" +
|
||||
" cod_mart,\n" +
|
||||
" diacod,\n" +
|
||||
" descrizione_estesa,\n" +
|
||||
" partita_mag,\n" +
|
||||
" cod_col,\n" +
|
||||
" cod_tagl,\n" +
|
||||
" cod_jcom,\n" +
|
||||
" peso_netto_kg,\n" +
|
||||
" peso_lordo_kg,\n" +
|
||||
" cod_jfas,\n" +
|
||||
" flag_qta_cnf_fissa,\n" +
|
||||
" unt_mis,\n" +
|
||||
" segno,\n" +
|
||||
" barcode_ul,\n" +
|
||||
" datetime_posizionamento\n" +
|
||||
"FROM final_stock");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250714164813 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
createOrUpdateFunction("WMS_GetUltimeConsegneClienti", "CREATE FUNCTION [dbo].[WMS_GetUltimeConsegneClienti](@numConsegnePerClie INT, @codAnag VARCHAR(5), @codMart VARCHAR(15),\n" +
|
||||
" @codMdep VARCHAR(5), @daysDiff INT)\n" +
|
||||
"/*Funzione che restituisce le ultime consegne effettuate per conto di un cliente con possibilitàdi filtrare per articolo/deposito.\n" +
|
||||
"Se il cliente non viene passato allora la funzione restituiràle ultime consegne di tutti i clienti. */\n" +
|
||||
" RETURNS TABLE AS RETURN\n" +
|
||||
" SELECT DISTINCT *\n" +
|
||||
" FROM (SELECT dtb_doct.cod_anag,\n" +
|
||||
" DENSE_RANK() OVER (PARTITION BY dtb_doct.cod_anag ORDER BY dtb_doct.cod_anag ASC, dtb_doct.data_doc DESC, dtb_doct.num_doc) AS counter_consegna,\n" +
|
||||
" dtb_doct.cod_dtip,\n" +
|
||||
" dtb_doct.data_doc,\n" +
|
||||
" dtb_doct.ser_doc,\n" +
|
||||
" dtb_doct.num_doc,\n" +
|
||||
" dtb_doct.compilato_da,\n" +
|
||||
" dtb_doct.rif_ord,\n" +
|
||||
" dtb_doct.data_ord,\n" +
|
||||
" vtb_dest.destinatario,\n" +
|
||||
" vtb_dest.indirizzo,\n" +
|
||||
" dtb_doct.data_iniz_trasp\n" +
|
||||
" FROM dtb_doct\n" +
|
||||
" INNER JOIN dtb_docr ON dtb_doct.cod_anag = dtb_docr.cod_anag AND\n" +
|
||||
" dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
|
||||
" dtb_doct.num_doc = dtb_docr.num_doc AND\n" +
|
||||
" dtb_doct.data_doc = dtb_docr.data_doc AND\n" +
|
||||
" dtb_doct.ser_doc = dtb_docr.ser_doc\n" +
|
||||
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||
" LEFT OUTER JOIN vtb_dest\n" +
|
||||
" ON dtb_doct.cod_anag = vtb_dest.cod_anag\n" +
|
||||
" AND dtb_doct.cod_vdes = vtb_dest.cod_vdes\n" +
|
||||
"\n" +
|
||||
" WHERE dtb_doct.gestione = 'V'\n" +
|
||||
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
|
||||
" AND dtb_tipi.segno_qta_scar = 1\n" +
|
||||
" AND DATEDIFF(DAY, dtb_doct.data_doc, GETDATE()) <= @daysDiff\n" +
|
||||
"\n" +
|
||||
"\n" +
|
||||
" AND (@codMdep IS NULL\n" +
|
||||
" OR dtb_doct.cod_mdep = @codMdep)\n" +
|
||||
" AND (@codMart IS NULL\n" +
|
||||
" OR dtb_docr.cod_mart = @codMart)\n" +
|
||||
" AND (@codAnag IS NULL\n" +
|
||||
" OR dtb_doct.cod_anag = @codAnag)) grouped_consegne\n" +
|
||||
" WHERE @numConsegnePerClie IS NULL\n" +
|
||||
" OR grouped_consegne.counter_consegna <= @numConsegnePerClie");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250715110408 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
createOrUpdateFunction("WMS_GetUltimeConsegneClienti", "CREATE FUNCTION [dbo].[WMS_GetUltimeConsegneClienti](@numConsegnePerClie INT, @codAnag VARCHAR(5), @codVdes VARCHAR(5), @codMart VARCHAR(15),\n" +
|
||||
" @codMdep VARCHAR(5), @daysDiff INT)\n" +
|
||||
"/*Funzione che restituisce le ultime consegne effettuate per conto di un cliente con possibilitàdi filtrare per articolo/deposito.\n" +
|
||||
"Se il cliente non viene passato allora la funzione restituiràle ultime consegne di tutti i clienti. */\n" +
|
||||
" RETURNS TABLE AS RETURN\n" +
|
||||
" SELECT DISTINCT *\n" +
|
||||
" FROM (SELECT dtb_doct.cod_anag,\n" +
|
||||
" DENSE_RANK() OVER (PARTITION BY dtb_doct.cod_anag ORDER BY dtb_doct.cod_anag ASC, dtb_doct.data_doc DESC, dtb_doct.num_doc) AS counter_consegna,\n" +
|
||||
" dtb_doct.cod_dtip,\n" +
|
||||
" dtb_doct.data_doc,\n" +
|
||||
" dtb_doct.ser_doc,\n" +
|
||||
" dtb_doct.num_doc,\n" +
|
||||
" dtb_doct.compilato_da,\n" +
|
||||
" dtb_doct.rif_ord,\n" +
|
||||
" dtb_doct.data_ord,\n" +
|
||||
" vtb_dest.destinatario,\n" +
|
||||
" vtb_dest.indirizzo,\n" +
|
||||
" dtb_doct.data_iniz_trasp\n" +
|
||||
" FROM dtb_doct\n" +
|
||||
" INNER JOIN dtb_docr ON dtb_doct.cod_anag = dtb_docr.cod_anag AND\n" +
|
||||
" dtb_doct.cod_dtip = dtb_docr.cod_dtip AND\n" +
|
||||
" dtb_doct.num_doc = dtb_docr.num_doc AND\n" +
|
||||
" dtb_doct.data_doc = dtb_docr.data_doc AND\n" +
|
||||
" dtb_doct.ser_doc = dtb_docr.ser_doc\n" +
|
||||
" INNER JOIN dtb_tipi ON dtb_doct.cod_dtip = dtb_tipi.cod_dtip\n" +
|
||||
" LEFT OUTER JOIN vtb_dest\n" +
|
||||
" ON dtb_doct.cod_anag = vtb_dest.cod_anag\n" +
|
||||
" AND dtb_doct.cod_vdes = vtb_dest.cod_vdes\n" +
|
||||
"\n" +
|
||||
" WHERE dtb_doct.gestione = 'V'\n" +
|
||||
" AND dtb_tipi.tipo_emissione = 'DIRETTA'\n" +
|
||||
" AND dtb_tipi.segno_qta_scar = 1\n" +
|
||||
" AND DATEDIFF(DAY, dtb_doct.data_doc, GETDATE()) <= @daysDiff\n" +
|
||||
"\n" +
|
||||
"\n" +
|
||||
" AND (@codMdep IS NULL\n" +
|
||||
" OR dtb_doct.cod_mdep = @codMdep)\n" +
|
||||
" AND (@codMart IS NULL\n" +
|
||||
" OR dtb_docr.cod_mart = @codMart)\n" +
|
||||
" AND (@codAnag IS NULL\n" +
|
||||
" OR dtb_doct.cod_anag = @codAnag)\n" +
|
||||
" AND (@codVdes IS NULL\n" +
|
||||
" OR dtb_doct.cod_vdes = @codVdes)) grouped_consegne\n" +
|
||||
" WHERE @numConsegnePerClie IS NULL\n" +
|
||||
" OR grouped_consegne.counter_consegna <= @numConsegnePerClie");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
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_20250728095637 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
executeStatement("alter table dbo.atb_tipi add socio_aziendale BIT default 0 not null");
|
||||
|
||||
|
||||
if (isCustomer(IntegryCustomer.RossoGargano)) {
|
||||
executeStatement("UPDATE dbo.atb_tipi SET socio_aziendale = 1 where cod_atip in (N'C1050', N'C1055')");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
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_20250728125101 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
String reportNameScar = null;
|
||||
String reportNameLav = null;
|
||||
|
||||
if (isCustomer(IntegryCustomer.RossoGargano)) {
|
||||
reportNameScar = "ReportScaricoProdotto";
|
||||
reportNameLav = "RiepilogoLavorazioniMateriaPrimaGrezza";
|
||||
}
|
||||
|
||||
createSetup("PVM","PIAN_ACC_ROSSG","REPORT_NAME_RIEP_SCARICO_PRODOTTO",reportNameScar,"Nome report stampa riepilogo scarico prodotti (da tab omonima in pagina accettazione da campo)","REPORT_NAME");
|
||||
createSetup("PVM","PIAN_ACC_ROSSG","REPORT_NAME_RIEP_LAV_MATERIALE",reportNameLav,"Nome report stampa riepilogo lavorazioni del giorno (da tab Laborazioni in pagina accettazione da campo)","REPORT_NAME");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
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.IntegryCustomerDB;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250909162127 extends BaseMigration implements MigrationModelInterface {
|
||||
@@ -10,7 +10,8 @@ public class Migration_20250909162127 extends BaseMigration implements Migration
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
if (!isCustomer(IntegryCustomer.Biolevante))
|
||||
|
||||
if (!isCustomerDb(IntegryCustomerDB.Biolevante_Biolevante))
|
||||
return;
|
||||
|
||||
executeStatement(
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20250925103840 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
String sqlCreateMaster = "CREATE TABLE dbo.mtb_missione_mag_auto\n" +
|
||||
"(\n" +
|
||||
" id BIGINT IDENTITY\n" +
|
||||
" CONSTRAINT mtb_missione_mag_auto_pk\n" +
|
||||
" PRIMARY KEY,\n" +
|
||||
" cod_mdep VARCHAR(5) NOT NULL,\n" +
|
||||
" cod_area VARCHAR(15) NOT NULL,\n" +
|
||||
" CONSTRAINT table_name_mtb_depo_area_cod_area_cod_mdep_fk\n" +
|
||||
" FOREIGN KEY (cod_mdep, cod_area) REFERENCES dbo.mtb_depo_area (cod_mdep, cod_area),\n" +
|
||||
" created_by VARCHAR(40) NOT NULL\n" +
|
||||
" CONSTRAINT mtb_missione_mag_auto_stb_user_user_name_fk\n" +
|
||||
" REFERENCES dbo.stb_user,\n" +
|
||||
" created_at DATETIME DEFAULT GETDATE() NOT NULL\n" +
|
||||
")";
|
||||
|
||||
String sqlCreateDetail = "CREATE TABLE dbo.mtb_missione_mag_auto_det\n" +
|
||||
"(\n" +
|
||||
" id BIGINT IDENTITY\n" +
|
||||
" CONSTRAINT mtb_missione_mag_auto_det_pk\n" +
|
||||
" PRIMARY KEY,\n" +
|
||||
" parent_id BIGINT NOT NULL\n" +
|
||||
" CONSTRAINT mtb_missione_mag_auto_det_mtb_missione_mag_auto_id_fk\n" +
|
||||
" REFERENCES dbo.mtb_missione_mag_auto (id),\n" +
|
||||
" sscc VARCHAR(18),\n" +
|
||||
" posizione_in VARCHAR(40),\n" +
|
||||
" posizione_out VARCHAR(40),\n" +
|
||||
" error_message VARCHAR(MAX),\n" +
|
||||
" completed BIT DEFAULT 0 NOT NULL,\n" +
|
||||
" skipped BIT DEFAULT 0 NOT NULL,\n" +
|
||||
" started_at DATETIME,\n" +
|
||||
" ended_at DATETIME,\n" +
|
||||
" created_at DATETIME DEFAULT GETDATE(),\n" +
|
||||
" updated_at DATETIME DEFAULT GETDATE() NOT NULL\n" +
|
||||
")";
|
||||
|
||||
executeStatement(sqlCreateMaster, sqlCreateDetail);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20251015111009 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
executeStatement("alter table dbo.dtb_ord_steps add posizione_out varchar(40)");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,610 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20251015111701 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
|
||||
createOrUpdateFunction("MES_GetWorkOrders", "CREATE FUNCTION [dbo].[MES_GetWorkOrders](@codJfas VARCHAR(50), @dateStart DATE, @dateEnd DATE, @flagEvaso VARCHAR(1),\n" +
|
||||
" @codAnag VARCHAR(5))\n" +
|
||||
" RETURNS TABLE\n" +
|
||||
" AS RETURN\n" +
|
||||
" -- DECLARE @codJfas VARCHAR(5) = 'L1'\n" +
|
||||
" -- DECLARE @dateStart DATE = DATEADD(MONTH, -1, GETDATE())\n" +
|
||||
" -- DECLARE @dateEnd DATE = DATEADD(MONTH, 1, GETDATE())\n" +
|
||||
" -- DECLARE @flagEvaso VARCHAR(1) = 'I'\n" +
|
||||
" -- DECLARE @codAnag VARCHAR(5) = null;\n" +
|
||||
"\n" +
|
||||
"--Funzione per calcolare la sequenza di ordini su una linea e il RunTimeEND\n" +
|
||||
" WITH setup AS (SELECT ISNULL(@dateStart, DATEADD(DAY, -14, GETDATE())) AS date_start,\n" +
|
||||
" ISNULL(@dateEnd, GETDATE()) AS date_end,\n" +
|
||||
" ISNULL(@flagEvaso, 'I') AS flag_evaso,\n" +
|
||||
" @codJfas AS cod_jfas,\n" +
|
||||
" @codAnag AS cod_anag),\n" +
|
||||
"\n" +
|
||||
" setup_depo AS (SELECT cod_mdep, value AS flag_carico_scarico_immediato\n" +
|
||||
" FROM stb_gest_setup_depo\n" +
|
||||
" WHERE gest_name = 'CARICO_SCARICO_PF'\n" +
|
||||
" AND section = 'SETUP'\n" +
|
||||
" AND key_section = 'GENERA_CARICO_SCARICO_IMMEDIATO'),\n" +
|
||||
"\n" +
|
||||
" setup_run_time AS (SELECT value AS flag_restart\n" +
|
||||
" FROM stb_gest_setup\n" +
|
||||
" WHERE gest_name = 'PVM'\n" +
|
||||
" AND section = 'MONITORAGGIO_LINEE_V2'\n" +
|
||||
" AND key_section = 'RESTART_RUN_TIME_END'),\n" +
|
||||
"\n" +
|
||||
" mtb_colr_sum_filtered_rows AS (SELECT gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" ser_collo,\n" +
|
||||
" cod_mart,\n" +
|
||||
" data_ord,\n" +
|
||||
" num_ord,\n" +
|
||||
" qta_col,\n" +
|
||||
" num_cnf\n" +
|
||||
" FROM mtb_colr\n" +
|
||||
" WHERE gestione_rif IS NULL\n" +
|
||||
" AND data_collo_rif IS NULL\n" +
|
||||
" AND ser_collo_rif IS NULL\n" +
|
||||
" AND num_collo_rif IS NULL),\n" +
|
||||
"\n" +
|
||||
" mtb_colr_sum_valid_colli AS (SELECT DISTINCT gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" ser_collo,\n" +
|
||||
" num_collo\n" +
|
||||
" FROM mtb_colt\n" +
|
||||
" CROSS APPLY setup\n" +
|
||||
" WHERE segno = 1\n" +
|
||||
" AND data_ord BETWEEN setup.date_start AND setup.date_end),\n" +
|
||||
"\n" +
|
||||
" mtb_colr_sum AS (SELECT colr.gestione,\n" +
|
||||
" colr.data_collo,\n" +
|
||||
" colr.num_collo,\n" +
|
||||
" colr.ser_collo,\n" +
|
||||
" colr.cod_mart,\n" +
|
||||
" colr.data_ord,\n" +
|
||||
" colr.num_ord,\n" +
|
||||
" SUM(colr.qta_col) AS qta_col,\n" +
|
||||
" SUM(colr.num_cnf) AS num_cnf\n" +
|
||||
" FROM mtb_colr_sum_valid_colli colt\n" +
|
||||
" INNER JOIN mtb_colr_sum_filtered_rows colr\n" +
|
||||
" ON colr.gestione = colt.gestione\n" +
|
||||
" AND colr.data_collo = colt.data_collo\n" +
|
||||
" AND colr.num_collo = colt.num_collo\n" +
|
||||
" AND colr.ser_collo = colt.ser_collo\n" +
|
||||
" GROUP BY colr.gestione,\n" +
|
||||
" colr.data_collo,\n" +
|
||||
" colr.num_collo,\n" +
|
||||
" colr.ser_collo,\n" +
|
||||
" colr.cod_mart,\n" +
|
||||
" colr.data_ord,\n" +
|
||||
" colr.num_ord),\n" +
|
||||
"\n" +
|
||||
" machine_last_event AS (SELECT gestione,\n" +
|
||||
" data_ord,\n" +
|
||||
" num_ord,\n" +
|
||||
" cod_cmac,\n" +
|
||||
" MAX(data_mov) AS max_data_mov\n" +
|
||||
" FROM dtb_ord_macc\n" +
|
||||
" GROUP BY gestione, data_ord, num_ord, cod_cmac),\n" +
|
||||
"\n" +
|
||||
" machine_event_values AS (SELECT evento,\n" +
|
||||
" IIF(tipologia = 'ENTRATA', 1, -1) AS value\n" +
|
||||
" FROM dtb_ord_macc_eventi),\n" +
|
||||
"\n" +
|
||||
" in_production_machines AS (SELECT dtb.gestione,\n" +
|
||||
" dtb.data_ord,\n" +
|
||||
" dtb.num_ord,\n" +
|
||||
" LAST_VALUE(dtb.data_mov) OVER (ORDER BY dtb.gestione,\n" +
|
||||
" dtb.data_ord,\n" +
|
||||
" dtb.num_ord) AS max_data_mov,\n" +
|
||||
" LAST_VALUE(ev.value) OVER (ORDER BY dtb.gestione,\n" +
|
||||
" dtb.data_ord,\n" +
|
||||
" dtb.num_ord) AS final_value\n" +
|
||||
" FROM dtb_ord_macc dtb\n" +
|
||||
" INNER JOIN machine_last_event le\n" +
|
||||
" ON dtb.data_ord = le.data_ord\n" +
|
||||
" AND dtb.num_ord = le.num_ord\n" +
|
||||
" AND dtb.gestione = le.gestione\n" +
|
||||
" AND dtb.cod_cmac = le.cod_cmac\n" +
|
||||
" AND dtb.data_mov = le.max_data_mov\n" +
|
||||
" INNER JOIN machine_event_values ev\n" +
|
||||
" ON dtb.evento = ev.evento\n" +
|
||||
" CROSS APPLY setup\n" +
|
||||
" WHERE dtb.data_ord BETWEEN setup.date_start AND setup.date_end),\n" +
|
||||
"\n" +
|
||||
" dtb_ord_with_max_step AS (SELECT gestione,\n" +
|
||||
" data_ord,\n" +
|
||||
" num_ord,\n" +
|
||||
" id_step AS id_step,\n" +
|
||||
" MAX(id_step) OVER (PARTITION BY gestione,\n" +
|
||||
" data_ord,\n" +
|
||||
" num_ord,\n" +
|
||||
" dtb_ord_steps.cod_jfas,\n" +
|
||||
" dtb_ord_steps.num_fase) AS max_id_step,\n" +
|
||||
" num_fase,\n" +
|
||||
" MAX(num_fase) OVER (PARTITION BY gestione,\n" +
|
||||
" data_ord,\n" +
|
||||
" num_ord) AS max_fase,\n" +
|
||||
" dtb_ord_steps.cod_jfas,\n" +
|
||||
" dtb_ord_steps.flag_step_attivo,\n" +
|
||||
" dtb_ord_steps.data_iniz,\n" +
|
||||
" dtb_ord_steps.data_fine,\n" +
|
||||
" dtb_ord_steps.qta_lav,\n" +
|
||||
" dtb_ord_steps.qta_prod,\n" +
|
||||
" dtb_ord_steps.hr_num,\n" +
|
||||
" dtb_ord_steps.posizione_out,\n" +
|
||||
" dtb_ord_steps.descrizione_attivita,\n" +
|
||||
" SUM(CAST(DATEDIFF(S, data_iniz, ISNULL(data_fine, GETDATE())) AS BIGINT))\n" +
|
||||
" OVER (PARTITION BY gestione,\n" +
|
||||
" data_ord,\n" +
|
||||
" num_ord,\n" +
|
||||
" num_fase,\n" +
|
||||
" dtb_ord_steps.cod_jfas) AS elapsed_time\n" +
|
||||
" FROM dtb_ord_steps\n" +
|
||||
" CROSS APPLY setup\n" +
|
||||
" WHERE data_ord BETWEEN setup.date_start AND setup.date_end\n" +
|
||||
" AND gestione = 'L'),\n" +
|
||||
"\n" +
|
||||
" dtb_ord_max_step AS (SELECT DISTINCT IIF(in_production_machines.max_data_mov IS NOT NULL AND\n" +
|
||||
" (dtb_ord_with_max_step.id_step = 0 OR\n" +
|
||||
" (dtb_ord_with_max_step.id_step > 0 AND\n" +
|
||||
" dtb_ord_with_max_step.data_fine IS NOT NULL AND\n" +
|
||||
" DATEDIFF(MINUTE,\n" +
|
||||
" dtb_ord_with_max_step.data_fine,\n" +
|
||||
" in_production_machines.max_data_mov) >\n" +
|
||||
" 5)), 1, 0) AS starting_machines,\n" +
|
||||
" dtb_ord_with_max_step.*\n" +
|
||||
" FROM dtb_ord_with_max_step\n" +
|
||||
" LEFT OUTER JOIN in_production_machines\n" +
|
||||
" ON dtb_ord_with_max_step.data_ord =\n" +
|
||||
" in_production_machines.data_ord\n" +
|
||||
" AND\n" +
|
||||
" dtb_ord_with_max_step.num_ord =\n" +
|
||||
" in_production_machines.num_ord\n" +
|
||||
" AND\n" +
|
||||
" dtb_ord_with_max_step.gestione =\n" +
|
||||
" in_production_machines.gestione\n" +
|
||||
" AND in_production_machines.final_value = 1\n" +
|
||||
"\n" +
|
||||
" WHERE max_id_step = id_step),\n" +
|
||||
"\n" +
|
||||
" riga_ord_prod_w_materia_prima AS (SELECT dtb_ordr.data_ord AS data_ord_prod,\n" +
|
||||
" dtb_ordr.num_ord AS num_ord_prod,\n" +
|
||||
" dtb_ordr.riga_ord AS riga_ord_prod,\n" +
|
||||
" dtb_ordr.gestione AS gestione_ord_prod,\n" +
|
||||
" IIF(CONVERT(DATE, dtb_ordr.data_ord) >= CONVERT(DATE, GETDATE()),\n" +
|
||||
" 'S',\n" +
|
||||
" 'N') AS flag_avviabile,\n" +
|
||||
" mtb_aart_prod.flag_tracciabilita,\n" +
|
||||
" dtb_ordr.unt_ord,\n" +
|
||||
" dtb_ordr.rap_conv,\n" +
|
||||
" dtb_ordr.unt_ord2,\n" +
|
||||
" CAST(ROUND(dtb_ordr.qta_ord2 /\n" +
|
||||
" ISNULL(NULLIF(dtb_ordr.qta_ord, 0), 1),\n" +
|
||||
" 5) AS NUMERIC(20, 5)) AS rap_conv2,\n" +
|
||||
" dtb_ordr.unt_ord3,\n" +
|
||||
" CAST(ROUND(dtb_ordr.qta_ord3 /\n" +
|
||||
" ISNULL(NULLIF(dtb_ordr.qta_ord, 0), 1),\n" +
|
||||
" 5) AS NUMERIC(20, 5)) AS rap_conv3,\n" +
|
||||
" dtb_ordr.qta_ord,\n" +
|
||||
" dtb_ordr.qta_ord2,\n" +
|
||||
" dtb_ordr.qta_ord3,\n" +
|
||||
" dtb_ordr.num_cnf,\n" +
|
||||
" IIF(mtb_aart_prod.unt_mis IN ('PZ', 'NR'), mtb_aart_prod.qta_cnf,\n" +
|
||||
" IIF(mtb_aart_prod.unt_mis2 IN ('PZ', 'NR'),\n" +
|
||||
" mtb_aart_prod.qta_cnf /\n" +
|
||||
" ISNULL(NULLIF(mtb_aart_prod.rap_conv2, 0), 1),\n" +
|
||||
" mtb_aart_prod.qta_cnf)) AS cal_qta_cnf,\n" +
|
||||
" IIF(dtb_ordr.colli_pedana = 0 OR dtb_ordr.colli_pedana = 1,\n" +
|
||||
" IIF(mtb_aart_prod.colli_pedana = 0, 1, mtb_aart_prod.colli_pedana),\n" +
|
||||
" dtb_ordr.colli_pedana)\n" +
|
||||
" AS colli_pedana,\n" +
|
||||
" dtb_ordr.pos_riga,\n" +
|
||||
" dtb_ordr.cod_mdep,\n" +
|
||||
"\n" +
|
||||
" IIF(mtb_aart_prod.unt_mis IN ('PZ', 'NR'), 1,\n" +
|
||||
" IIF(mtb_aart_prod.unt_mis2 IN ('PZ', 'NR') AND\n" +
|
||||
" NULLIF(mtb_aart_prod.rap_conv2, 0) IS NOT NULL,\n" +
|
||||
" mtb_aart_prod.rap_conv2,\n" +
|
||||
" 1)) AS calc_rap_conv,\n" +
|
||||
" mtb_aart_prod.gg_scad_partita,\n" +
|
||||
" mtb_aart_prod.qta_cnf\n" +
|
||||
" FROM dtb_ordr\n" +
|
||||
" INNER JOIN mtb_aart mtb_aart_prod ON mtb_aart_prod.cod_mart = dtb_ordr.cod_mart\n" +
|
||||
" WHERE dtb_ordr.gestione = 'A'),\n" +
|
||||
"\n" +
|
||||
" ord_lav AS (SELECT dtb_ordt.cod_jcom,\n" +
|
||||
" riga_ord_prod_w_materia_prima.data_ord_prod,\n" +
|
||||
" riga_ord_prod_w_materia_prima.num_ord_prod,\n" +
|
||||
" riga_ord_prod_w_materia_prima.riga_ord_prod,\n" +
|
||||
" riga_ord_prod_w_materia_prima.flag_avviabile,\n" +
|
||||
" riga_ord_prod_w_materia_prima.flag_tracciabilita,\n" +
|
||||
" riga_ord_prod_w_materia_prima.unt_ord,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN mtb_partita_mag.partita_mag IS NULL THEN\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv\n" +
|
||||
" ELSE CASE\n" +
|
||||
" WHEN riga_ord_prod_w_materia_prima.unt_ord = mtb_aart.unt_mis THEN\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv\n" +
|
||||
" WHEN riga_ord_prod_w_materia_prima.unt_ord = mtb_aart.unt_mis2 THEN\n" +
|
||||
" IIF(mtb_partita_mag.rap_conv2 IS NULL OR mtb_partita_mag.rap_conv2 = 0,\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv2, mtb_partita_mag.rap_conv2)\n" +
|
||||
" WHEN riga_ord_prod_w_materia_prima.unt_ord = mtb_aart.unt_mis3 THEN\n" +
|
||||
" IIF(mtb_partita_mag.rap_conv3 IS NULL OR mtb_partita_mag.rap_conv3 = 0,\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv3, mtb_partita_mag.rap_conv3)\n" +
|
||||
" END\n" +
|
||||
" END\n" +
|
||||
" AS rap_conv,\n" +
|
||||
" riga_ord_prod_w_materia_prima.unt_ord2,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN mtb_partita_mag.partita_mag IS NULL THEN\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv2\n" +
|
||||
" ELSE CASE\n" +
|
||||
" WHEN riga_ord_prod_w_materia_prima.unt_ord2 = mtb_aart.unt_mis THEN\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv2\n" +
|
||||
" WHEN riga_ord_prod_w_materia_prima.unt_ord2 = mtb_aart.unt_mis2 THEN\n" +
|
||||
" IIF(mtb_partita_mag.rap_conv2 IS NULL OR mtb_partita_mag.rap_conv2 = 0,\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv2, mtb_partita_mag.rap_conv2)\n" +
|
||||
" WHEN riga_ord_prod_w_materia_prima.unt_ord2 = mtb_aart.unt_mis3 THEN\n" +
|
||||
" IIF(mtb_partita_mag.rap_conv3 IS NULL OR mtb_partita_mag.rap_conv3 = 0,\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv3, mtb_partita_mag.rap_conv3)\n" +
|
||||
" END\n" +
|
||||
" END\n" +
|
||||
" AS rap_conv2,\n" +
|
||||
" riga_ord_prod_w_materia_prima.unt_ord3,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN mtb_partita_mag.partita_mag IS NULL THEN\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv3\n" +
|
||||
" ELSE CASE\n" +
|
||||
" WHEN riga_ord_prod_w_materia_prima.unt_ord3 = mtb_aart.unt_mis THEN\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv3\n" +
|
||||
" WHEN riga_ord_prod_w_materia_prima.unt_ord3 = mtb_aart.unt_mis2 THEN\n" +
|
||||
" IIF(mtb_partita_mag.rap_conv2 IS NULL OR mtb_partita_mag.rap_conv2 = 0,\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv2, mtb_partita_mag.rap_conv2)\n" +
|
||||
" WHEN riga_ord_prod_w_materia_prima.unt_ord3 = mtb_aart.unt_mis3 THEN\n" +
|
||||
" IIF(mtb_partita_mag.rap_conv3 IS NULL OR mtb_partita_mag.rap_conv3 = 0,\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv3, mtb_partita_mag.rap_conv3)\n" +
|
||||
" END\n" +
|
||||
" END\n" +
|
||||
" AS rap_conv3,\n" +
|
||||
" ISNULL(dtb_ordt.descr_estesa_prod, dtb_ordt.descrizione_prod) AS descrizione_prod,\n" +
|
||||
" riga_ord_prod_w_materia_prima.num_cnf *\n" +
|
||||
" riga_ord_prod_w_materia_prima.cal_qta_cnf AS num_pezzi,\n" +
|
||||
" riga_ord_prod_w_materia_prima.num_cnf,\n" +
|
||||
" riga_ord_prod_w_materia_prima.gg_scad_partita,\n" +
|
||||
" riga_ord_prod_w_materia_prima.qta_cnf,\n" +
|
||||
" riga_ord_prod_w_materia_prima.colli_pedana,\n" +
|
||||
" riga_ord_prod_w_materia_prima.num_cnf /\n" +
|
||||
" riga_ord_prod_w_materia_prima.colli_pedana AS num_pedane,\n" +
|
||||
" riga_ord_prod_w_materia_prima.pos_riga,\n" +
|
||||
" dtb_ordt.flag_evaso_prod,\n" +
|
||||
" dtb_ordt.flag_evaso_forzato,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN (dtb_ordt.flag_evaso_prod = 'I' OR\n" +
|
||||
" (setupCaricoImmediato.flag_carico_scarico_immediato = 'S' AND\n" +
|
||||
" flag_evaso_prod = 'E'))\n" +
|
||||
" AND dtb_ordt.flag_evaso_forzato = 'N'\n" +
|
||||
" THEN 'I'\n" +
|
||||
" WHEN flag_evaso_prod <> 'I' AND dtb_ordt.flag_evaso_forzato = 'S'\n" +
|
||||
" THEN flag_evaso_prod\n" +
|
||||
" END AS flag_ordine_evaso,\n" +
|
||||
" dtb_ordt.gestione,\n" +
|
||||
" dtb_ordt.data_ord,\n" +
|
||||
" dtb_ordt.cod_tcol_UL,\n" +
|
||||
" mtb_tcol.descrizione AS descrizione_tcol,\n" +
|
||||
" dtb_ordt.cod_anag,\n" +
|
||||
" gtb_anag.rag_soc AS rag_soc_anag,\n" +
|
||||
" gtb_anag.part_iva,\n" +
|
||||
" dtb_ordt.rif_ord,\n" +
|
||||
" dtb_ordt.cod_vdes,\n" +
|
||||
" dtb_ordt.cod_mdep,\n" +
|
||||
" ISNULL(riga_ord_prod_w_materia_prima.cod_mdep, dtb_ordt.cod_mdep) AS cod_mdep_prod,\n" +
|
||||
" dtb_ordt.num_ord,\n" +
|
||||
" dtb_ord_steps.cod_jfas,\n" +
|
||||
" dtb_ordt.cod_jfas AS cod_jfas_lav,\n" +
|
||||
" mtb_partita_mag.partita_mag,\n" +
|
||||
" ISNULL(mtb_partita_mag.partita_mag_prod,\n" +
|
||||
" mtb_partita_mag.partita_mag) AS partita_mag_prod,\n" +
|
||||
" dtb_ordt.note AS note_lav,\n" +
|
||||
" mtb_partita_mag.data_scad,\n" +
|
||||
" dtb_ordt.cod_prod,\n" +
|
||||
" jtb_comt.descrizione AS descrizione_commessa,\n" +
|
||||
" dtb_ordt.data_iniz_prod,\n" +
|
||||
" dtb_ord_steps.id_step,\n" +
|
||||
" dtb_ord_steps.max_fase,\n" +
|
||||
" dtb_ord_steps.num_fase,\n" +
|
||||
" IIF(mtb_aart.flag_qta_cnf_fissa = 'S' AND\n" +
|
||||
" (mtb_aart.qta_cnf > 1 OR riga_ord_prod_w_materia_prima.colli_pedana > 1), 'Colli',\n" +
|
||||
" jtb_cicl.unt_mis_prod)\n" +
|
||||
" AS unt_mis_prod,\n" +
|
||||
" IIF(mtb_aart.flag_qta_cnf_fissa = 'S' AND\n" +
|
||||
" (mtb_aart.qta_cnf > 1 OR riga_ord_prod_w_materia_prima.colli_pedana > 1),\n" +
|
||||
" riga_ord_prod_w_materia_prima.colli_pedana, jtb_cicl.qta_prod)\n" +
|
||||
" AS qta_batch_prod,\n" +
|
||||
" IIF(mtb_aart.qta_cnf > 1 OR riga_ord_prod_w_materia_prima.colli_pedana > 1,\n" +
|
||||
" mtb_aart.qta_cnf,\n" +
|
||||
" jtb_cicl.rap_conv_prod) AS rap_conv_prod,\n" +
|
||||
" dtb_ord_steps.data_iniz,\n" +
|
||||
" dtb_ord_steps.data_fine,\n" +
|
||||
" dtb_ord_steps.qta_lav AS qta_lav,\n" +
|
||||
" IIF(dtb_ord_steps.qta_prod <> 0, dtb_ord_steps.qta_prod,\n" +
|
||||
" dtb_ordt.qta_prod) AS qta_prod,\n" +
|
||||
" dtb_ord_steps.hr_num,\n" +
|
||||
" dtb_ord_steps.descrizione_attivita,\n" +
|
||||
" dtb_ord_steps.posizione_out,\n" +
|
||||
" 3600 / (ISNULL(NULLIF(jtb_dist_clav_dir.duration, 0), 1) /\n" +
|
||||
" ISNULL(NULLIF(jtb_cicl.rap_conv_prod, 0), 1)) AS prod_std,\n" +
|
||||
" dtb_ord_steps.elapsed_time,\n" +
|
||||
" SUM(ISNULL(mtb_colr_carico.qta_col, 0)) AS qta_trasferite,\n" +
|
||||
" COUNT(mtb_colr_carico.num_collo) AS udc_trasferiti,\n" +
|
||||
" COUNT(colli_lotto.num_collo) AS uds_scaricati,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN dtb_ord_steps.id_step = 0\n" +
|
||||
" THEN IIF(dtb_ord_steps.starting_machines = 1, 'IN AVVIO', 'PROGRAMMATO')\n" +
|
||||
" WHEN dtb_ord_steps.data_fine IS NULL\n" +
|
||||
" THEN 'IN CORSO'\n" +
|
||||
" ELSE 'IN PAUSA'\n" +
|
||||
" END AS stato,\n" +
|
||||
" CONVERT(INT, SUM(ISNULL(\n" +
|
||||
" mtb_colr_carico.qta_col / riga_ord_prod_w_materia_prima.calc_rap_conv,\n" +
|
||||
" 0))) AS pz_trasferiti,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN (jtb_dist_clav_dir.duration / ISNULL(NULLIF(jtb_cicl.rap_conv_prod, 0), 1)) *\n" +
|
||||
" (dtb_ordt.qta_prod * dtb_ordt.rap_conv_prod -\n" +
|
||||
" SUM(ISNULL(mtb_colr_carico.qta_col, 0))) > 0\n" +
|
||||
" THEN\n" +
|
||||
" (jtb_dist_clav_dir.duration /\n" +
|
||||
" ISNULL(NULLIF(jtb_cicl.rap_conv_prod, 0), 1)) *\n" +
|
||||
" (dtb_ordt.qta_prod * dtb_ordt.rap_conv_prod -\n" +
|
||||
" SUM(ISNULL(mtb_colr_carico.qta_col, 0)))\n" +
|
||||
" ELSE 0 END AS run_time_sec,\n" +
|
||||
" jl.id_lotto,\n" +
|
||||
" jlt.data_lotto,\n" +
|
||||
" mtb_aart.peso_kg,\n" +
|
||||
" dtb_ordt.data_cons_prod_max\n" +
|
||||
" FROM dtb_ord_max_step dtb_ord_steps\n" +
|
||||
" INNER JOIN dtb_ordt ON dtb_ord_steps.data_ord = dtb_ordt.data_ord\n" +
|
||||
" AND dtb_ord_steps.num_ord = dtb_ordt.num_ord\n" +
|
||||
" AND dtb_ord_steps.gestione = dtb_ordt.gestione\n" +
|
||||
" LEFT OUTER JOIN setup_depo setupCaricoImmediato\n" +
|
||||
" ON dtb_ordt.cod_mdep = setupCaricoImmediato.cod_mdep\n" +
|
||||
" LEFT OUTER JOIN jtb_dist_clav_dir\n" +
|
||||
" ON dtb_ordt.cod_prod = jtb_dist_clav_dir.cod_prod AND\n" +
|
||||
" dtb_ordt.cod_jfas = jtb_dist_clav_dir.cod_jfas\n" +
|
||||
" LEFT OUTER JOIN mtb_partita_mag\n" +
|
||||
" ON dtb_ordt.partita_mag = mtb_partita_mag.partita_mag AND\n" +
|
||||
" dtb_ordt.cod_prod = mtb_partita_mag.cod_mart AND\n" +
|
||||
" mtb_partita_mag.flag_stato = 'A'\n" +
|
||||
" LEFT OUTER JOIN mtb_colr_sum mtb_colr_carico\n" +
|
||||
" ON dtb_ordt.data_ord = mtb_colr_carico.data_ord AND\n" +
|
||||
" dtb_ordt.gestione = mtb_colr_carico.gestione AND\n" +
|
||||
" dtb_ordt.num_ord = mtb_colr_carico.num_ord AND\n" +
|
||||
" dtb_ordt.cod_prod = mtb_colr_carico.cod_mart\n" +
|
||||
" LEFT OUTER JOIN jtb_comt ON dtb_ordt.cod_jcom = jtb_comt.cod_jcom\n" +
|
||||
" LEFT OUTER JOIN riga_ord_prod_w_materia_prima\n" +
|
||||
" ON riga_ord_prod_w_materia_prima.gestione_ord_prod =\n" +
|
||||
" dtb_ordt.gestione_rif AND\n" +
|
||||
" riga_ord_prod_w_materia_prima.data_ord_prod =\n" +
|
||||
" dtb_ordt.data_ord_rif AND\n" +
|
||||
" riga_ord_prod_w_materia_prima.num_ord_prod =\n" +
|
||||
" dtb_ordt.num_ord_rif AND\n" +
|
||||
" riga_ord_prod_w_materia_prima.riga_ord_prod = dtb_ordt.riga_ord_rif\n" +
|
||||
" LEFT OUTER JOIN jtb_cicl ON jtb_cicl.cod_prod = dtb_ordt.cod_prod\n" +
|
||||
" LEFT OUTER JOIN mtb_aart ON mtb_aart.cod_mart = dtb_ordt.cod_prod\n" +
|
||||
" LEFT OUTER JOIN gtb_anag ON dtb_ordt.cod_anag = gtb_anag.cod_anag\n" +
|
||||
" LEFT OUTER JOIN mtb_tcol ON dtb_ordt.cod_tcol_UL = mtb_tcol.cod_tcol\n" +
|
||||
" LEFT OUTER JOIN jtb_lotr jl\n" +
|
||||
" ON dtb_ord_steps.cod_jfas = jl.cod_jfas AND\n" +
|
||||
" dtb_ordt.gestione = jl.gestione AND\n" +
|
||||
" dtb_ordt.data_ord = jl.data_ord AND\n" +
|
||||
" dtb_ordt.num_ord = jl.num_ord\n" +
|
||||
" LEFT OUTER JOIN jtb_lott jlt\n" +
|
||||
" ON jl.cod_jfas = jlt.cod_jfas AND jl.id_lotto = jlt.id_lotto\n" +
|
||||
" LEFT OUTER JOIN mtb_colt colli_lotto ON jlt.id_lotto = colli_lotto.id_lotto\n" +
|
||||
"\n" +
|
||||
" CROSS APPLY setup\n" +
|
||||
" WHERE dtb_ordt.flag_annulla = 'N'\n" +
|
||||
" AND dtb_ord_steps.data_ord BETWEEN setup.date_start AND setup.date_end\n" +
|
||||
" AND (setup.flag_evaso IS NULL\n" +
|
||||
" OR (\n" +
|
||||
" (setup.flag_evaso = 'I'\n" +
|
||||
" AND\n" +
|
||||
" dtb_ord_steps.flag_step_attivo = 'S'\n" +
|
||||
" AND (flag_evaso_prod = 'I'\n" +
|
||||
" OR\n" +
|
||||
" (setupCaricoImmediato.flag_carico_scarico_immediato = 'S'\n" +
|
||||
" AND\n" +
|
||||
" flag_evaso_prod = 'E'))\n" +
|
||||
" AND dtb_ordt.flag_evaso_forzato = 'N'\n" +
|
||||
" )\n" +
|
||||
" OR (setup.flag_evaso = 'E'\n" +
|
||||
" AND (flag_evaso_prod = 'E' OR jlt.data_chiusura IS NOT NULL)\n" +
|
||||
" AND dtb_ordt.flag_evaso_forzato = 'S')\n" +
|
||||
" )\n" +
|
||||
" )\n" +
|
||||
" AND (setup.cod_jfas IS NULL\n" +
|
||||
" OR dtb_ord_steps.cod_jfas = setup.cod_jfas)\n" +
|
||||
" AND (setup.cod_anag IS NULL\n" +
|
||||
" OR dtb_ordt.cod_anag = setup.cod_anag)\n" +
|
||||
" GROUP BY riga_ord_prod_w_materia_prima.data_ord_prod,\n" +
|
||||
" riga_ord_prod_w_materia_prima.num_ord_prod,\n" +
|
||||
" riga_ord_prod_w_materia_prima.riga_ord_prod,\n" +
|
||||
" riga_ord_prod_w_materia_prima.flag_avviabile,\n" +
|
||||
" riga_ord_prod_w_materia_prima.flag_tracciabilita,\n" +
|
||||
" riga_ord_prod_w_materia_prima.unt_ord,\n" +
|
||||
" mtb_partita_mag.rap_conv2,\n" +
|
||||
" mtb_partita_mag.rap_conv3,\n" +
|
||||
" dtb_ordt.note,\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv,\n" +
|
||||
" dtb_ordt.descrizione_prod,\n" +
|
||||
" dtb_ordt.descr_estesa_prod,\n" +
|
||||
" riga_ord_prod_w_materia_prima.num_cnf,\n" +
|
||||
" mtb_aart.qta_cnf,\n" +
|
||||
" mtb_aart.gg_scad_partita,\n" +
|
||||
" mtb_aart.flag_qta_cnf_fissa,\n" +
|
||||
" riga_ord_prod_w_materia_prima.pos_riga,\n" +
|
||||
" dtb_ordt.flag_evaso_prod,\n" +
|
||||
" dtb_ordt.flag_evaso_forzato,\n" +
|
||||
" dtb_ordt.gestione,\n" +
|
||||
" dtb_ordt.data_ord,\n" +
|
||||
" dtb_ordt.num_ord,\n" +
|
||||
" dtb_ord_steps.cod_jfas,\n" +
|
||||
" dtb_ordt.cod_jfas,\n" +
|
||||
" dtb_ordt.cod_jcom,\n" +
|
||||
" mtb_partita_mag.partita_mag,\n" +
|
||||
" mtb_partita_mag.partita_mag_prod,\n" +
|
||||
" mtb_partita_mag.data_scad,\n" +
|
||||
" dtb_ordt.cod_prod,\n" +
|
||||
" dtb_ordt.data_iniz_prod,\n" +
|
||||
" dtb_ord_steps.id_step,\n" +
|
||||
" dtb_ord_steps.data_iniz,\n" +
|
||||
" dtb_ord_steps.data_fine,\n" +
|
||||
" dtb_ordt.cod_tcol_UL,\n" +
|
||||
" dtb_ordt.cod_anag,\n" +
|
||||
" gtb_anag.rag_soc,\n" +
|
||||
" gtb_anag.part_iva,\n" +
|
||||
" dtb_ordt.rif_ord,\n" +
|
||||
" dtb_ordt.cod_vdes,\n" +
|
||||
" dtb_ordt.cod_mdep,\n" +
|
||||
" riga_ord_prod_w_materia_prima.cod_mdep,\n" +
|
||||
" mtb_aart.colli_pedana,\n" +
|
||||
" dtb_ord_steps.qta_prod,\n" +
|
||||
" dtb_ordt.qta_prod,\n" +
|
||||
" jtb_dist_clav_dir.duration,\n" +
|
||||
" jtb_comt.descrizione,\n" +
|
||||
" dtb_ord_steps.elapsed_time,\n" +
|
||||
" riga_ord_prod_w_materia_prima.colli_pedana,\n" +
|
||||
" dtb_ord_steps.hr_num,\n" +
|
||||
" mtb_aart.unt_mis,\n" +
|
||||
" mtb_aart.unt_mis2,\n" +
|
||||
" mtb_aart.rap_conv2,\n" +
|
||||
" mtb_aart.unt_mis3,\n" +
|
||||
" mtb_aart.rap_conv3,\n" +
|
||||
" riga_ord_prod_w_materia_prima.unt_ord2,\n" +
|
||||
" riga_ord_prod_w_materia_prima.unt_ord3,\n" +
|
||||
" riga_ord_prod_w_materia_prima.qta_ord,\n" +
|
||||
" riga_ord_prod_w_materia_prima.qta_ord2,\n" +
|
||||
" riga_ord_prod_w_materia_prima.qta_ord3,\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv2,\n" +
|
||||
" riga_ord_prod_w_materia_prima.rap_conv3,\n" +
|
||||
" riga_ord_prod_w_materia_prima.qta_cnf,\n" +
|
||||
" riga_ord_prod_w_materia_prima.cal_qta_cnf,\n" +
|
||||
" riga_ord_prod_w_materia_prima.gg_scad_partita,\n" +
|
||||
" jtb_cicl.qta_prod,\n" +
|
||||
" jtb_cicl.rap_conv_prod,\n" +
|
||||
" dtb_ord_steps.descrizione_attivita,\n" +
|
||||
" dtb_ord_steps.posizione_out,\n" +
|
||||
" jtb_cicl.unt_mis_prod,\n" +
|
||||
" mtb_tcol.descrizione,\n" +
|
||||
" dtb_ordt.qta_prod,\n" +
|
||||
" dtb_ordt.rap_conv_prod,\n" +
|
||||
" setupCaricoImmediato.flag_carico_scarico_immediato,\n" +
|
||||
" dtb_ord_steps.num_fase, dtb_ord_steps.qta_lav,\n" +
|
||||
" jl.id_lotto, jlt.data_lotto, mtb_aart.peso_kg, dtb_ordt.data_cons_prod_max,\n" +
|
||||
" dtb_ord_steps.id_step,\n" +
|
||||
" dtb_ord_steps.max_fase,\n" +
|
||||
" dtb_ord_steps.starting_machines)\n" +
|
||||
" SELECT ROW_NUMBER() OVER (ORDER BY data_ord, num_ord_prod, pos_riga, num_ord) AS sort,\n" +
|
||||
" cod_jcom,\n" +
|
||||
" data_ord_prod,\n" +
|
||||
" num_ord_prod,\n" +
|
||||
" riga_ord_prod,\n" +
|
||||
" flag_avviabile,\n" +
|
||||
" flag_tracciabilita,\n" +
|
||||
" unt_ord,\n" +
|
||||
" rap_conv,\n" +
|
||||
" unt_ord2,\n" +
|
||||
" rap_conv2,\n" +
|
||||
" unt_ord3,\n" +
|
||||
" rap_conv3,\n" +
|
||||
" descrizione_prod,\n" +
|
||||
" num_pezzi,\n" +
|
||||
" num_cnf,\n" +
|
||||
" gg_scad_partita,\n" +
|
||||
" qta_cnf,\n" +
|
||||
" colli_pedana,\n" +
|
||||
" num_pedane,\n" +
|
||||
" pos_riga,\n" +
|
||||
" flag_evaso_prod,\n" +
|
||||
" flag_evaso_forzato,\n" +
|
||||
" flag_ordine_evaso,\n" +
|
||||
" gestione,\n" +
|
||||
" data_ord,\n" +
|
||||
" cod_tcol_UL,\n" +
|
||||
" descrizione_tcol,\n" +
|
||||
" cod_anag,\n" +
|
||||
" rag_soc_anag,\n" +
|
||||
" part_iva,\n" +
|
||||
" rif_ord,\n" +
|
||||
" cod_vdes,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" cod_mdep_prod,\n" +
|
||||
" num_ord,\n" +
|
||||
" cod_jfas,\n" +
|
||||
" cod_jfas_lav,\n" +
|
||||
" partita_mag,\n" +
|
||||
" partita_mag_prod,\n" +
|
||||
" note_lav,\n" +
|
||||
" data_scad,\n" +
|
||||
" cod_prod,\n" +
|
||||
" descrizione_commessa,\n" +
|
||||
" data_iniz_prod,\n" +
|
||||
" id_step,\n" +
|
||||
" unt_mis_prod,\n" +
|
||||
" qta_batch_prod,\n" +
|
||||
" rap_conv_prod,\n" +
|
||||
" data_iniz,\n" +
|
||||
" data_fine,\n" +
|
||||
" qta_prod,\n" +
|
||||
" qta_lav,\n" +
|
||||
" max_fase,\n" +
|
||||
" num_fase,\n" +
|
||||
" hr_num,\n" +
|
||||
" descrizione_attivita,\n" +
|
||||
" posizione_out,\n" +
|
||||
" prod_std,\n" +
|
||||
" elapsed_time,\n" +
|
||||
" qta_trasferite,\n" +
|
||||
" udc_trasferiti,\n" +
|
||||
" uds_scaricati,\n" +
|
||||
" stato,\n" +
|
||||
" pz_trasferiti,\n" +
|
||||
" run_time_sec,\n" +
|
||||
" SUM(run_time_sec) OVER (PARTITION BY cod_jfas, data_ord_prod) AS cumulative_run_time_sec,\n" +
|
||||
" CONVERT(INT, run_time_sec / 3600) AS run_time_hour,\n" +
|
||||
" ROUND((run_time_sec / 3600 - CONVERT(INT, run_time_sec / 3600)) * 60, 0) AS run_time_min,\n" +
|
||||
" CASE\n" +
|
||||
" WHEN setup_run_time.flag_restart = 'S' THEN\n" +
|
||||
" DATEADD(SECOND, SUM(run_time_sec)\n" +
|
||||
" OVER (PARTITION BY cod_jfas, data_ord_prod ORDER BY stato, cod_jfas, data_ord_prod, pos_riga ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW),\n" +
|
||||
" CASE\n" +
|
||||
" WHEN (data_ord_prod > GETDATE() AND (data_iniz IS NULL OR data_fine IS NOT NULL))\n" +
|
||||
" THEN DATEADD(HH, 7, data_ord_prod)\n" +
|
||||
" ELSE GETDATE() END)\n" +
|
||||
" ELSE\n" +
|
||||
" DATEADD(SECOND, SUM(run_time_sec)\n" +
|
||||
" OVER (PARTITION BY cod_jfas ORDER BY stato, cod_jfas, data_ord_prod, num_ord_prod, pos_riga ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW),\n" +
|
||||
" GETDATE())\n" +
|
||||
" END AS run_time_end,\n" +
|
||||
" id_lotto,\n" +
|
||||
" data_lotto,\n" +
|
||||
" peso_kg,\n" +
|
||||
" data_cons_prod_max\n" +
|
||||
" FROM ord_lav\n" +
|
||||
" CROSS APPLY setup_run_time");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,179 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20251015120629 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
createOrUpdateView("mvw_sitart_udc_det_inventario", "CREATE VIEW [dbo].[mvw_sitart_udc_det_inventario] AS\n" +
|
||||
"WITH baseMtbColr AS (SELECT c,\n" +
|
||||
"\n" +
|
||||
" ROUND(v.qta_col, cifre_dec) AS qta_col,\n" +
|
||||
" ROUND(v.num_cnf, cifre_dec) AS num_cnf,\n" +
|
||||
" IIF(flag_qta_cnf_fissa = 'S',\n" +
|
||||
" v.qta_cnf_anag, v.qta_col / IIF(v.num_cnf = 0, 1, v.num_cnf)) AS qta_cnf,\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.peso_netto_kg,\n" +
|
||||
" v.peso_lordo_kg,\n" +
|
||||
" mtb_colt.gestione,\n" +
|
||||
" mtb_colt.data_collo,\n" +
|
||||
" mtb_colt.ser_collo,\n" +
|
||||
" mtb_colt.num_collo,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.flag_qta_cnf_fissa,\n" +
|
||||
" v.unt_mis,\n" +
|
||||
" v.diacod,\n" +
|
||||
" v.descrizione_estesa,\n" +
|
||||
" v.cod_mgrp,\n" +
|
||||
" mtb_grup.descrizione AS descrizione_gruppo,\n" +
|
||||
" v.cod_msgr,\n" +
|
||||
" mtb_sgrp.descrizione AS descrizione_sottogruppo,\n" +
|
||||
" mtb_unt_mis.flag_dig,\n" +
|
||||
" mtb_unt_mis.cifre_dec,\n" +
|
||||
" mtb_colt.segno,\n" +
|
||||
" v.cod_mdep,\n" +
|
||||
" v.posizione,\n" +
|
||||
" mtb_colt.cod_dtip,\n" +
|
||||
" mtb_colt.cod_jfas,\n" +
|
||||
" v.barcode_ul,\n" +
|
||||
" v.qta_cnf_anag,\n" +
|
||||
" MAX(mtb_colr.datetime_row) AS datetime_posizionamento,\n" +
|
||||
" mtb_colt.progressivo_ul\n" +
|
||||
" FROM mvw_mtb_colr_with_giacenza v WITH (NOEXPAND)\n" +
|
||||
" INNER JOIN mtb_colt\n" +
|
||||
" ON v.barcode_ul = mtb_colt.barcode_ul\n" +
|
||||
" LEFT OUTER JOIN mtb_colr ON\n" +
|
||||
" v.barcode_ul = mtb_colr.barcode_ul_in AND\n" +
|
||||
" v.cod_mart = mtb_colr.cod_mart AND\n" +
|
||||
" ((v.partita_mag IS NULL AND mtb_colr.partita_mag IS NULL) OR\n" +
|
||||
" (v.partita_mag = mtb_colr.partita_mag)) AND\n" +
|
||||
" ((v.cod_col IS NULL AND mtb_colr.cod_col IS NULL) OR (v.cod_col = mtb_colr.cod_col)) AND\n" +
|
||||
" ((v.cod_tagl IS NULL AND mtb_colr.cod_tagl IS NULL) OR (v.cod_tagl = mtb_colr.cod_tagl)) AND\n" +
|
||||
" ((v.cod_jcom IS NULL AND mtb_colr.cod_jcom IS NULL) OR (v.cod_jcom = mtb_colr.cod_jcom)) AND\n" +
|
||||
" ((v.posizione IS NULL AND mtb_colr.posizione_in IS NULL) OR (v.posizione = mtb_colr.posizione_in)) AND\n" +
|
||||
" ((v.cod_mdep IS NULL AND mtb_colr.cod_mdep_in IS NULL) OR (v.cod_mdep = mtb_colr.cod_mdep_in)) AND\n" +
|
||||
" ISNULL(mtb_colr.posizione_in, '') <> ISNULL(mtb_colr.posizione_out, '')\n" +
|
||||
" INNER JOIN dbo.mtb_unt_mis ON v.unt_mis = mtb_unt_mis.unt_mis\n" +
|
||||
"\n" +
|
||||
" INNER JOIN dbo.mtb_grup ON v.cod_mgrp = mtb_grup.cod_mgrp\n" +
|
||||
" INNER JOIN dbo.mtb_sgrp ON v.cod_mgrp = mtb_sgrp.cod_mgrp\n" +
|
||||
" AND v.cod_msgr = mtb_sgrp.cod_msgr\n" +
|
||||
" WHERE v.qta_col > 0\n" +
|
||||
" AND (segno = 1 OR (segno = -1 AND cod_dtip IS NULL AND mtb_colt.gestione = 'V'))\n" +
|
||||
" GROUP BY c,\n" +
|
||||
" ROUND(v.qta_col, cifre_dec),\n" +
|
||||
" ROUND(v.num_cnf, cifre_dec),\n" +
|
||||
" IIF(flag_qta_cnf_fissa = 'S',\n" +
|
||||
" v.qta_cnf_anag, v.qta_col / IIF(v.num_cnf = 0, 1, v.num_cnf)),\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.peso_netto_kg,\n" +
|
||||
" v.peso_lordo_kg,\n" +
|
||||
" mtb_colt.gestione,\n" +
|
||||
" mtb_colt.data_collo,\n" +
|
||||
" mtb_colt.ser_collo,\n" +
|
||||
" mtb_colt.num_collo,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.flag_qta_cnf_fissa,\n" +
|
||||
" v.unt_mis,\n" +
|
||||
" v.diacod,\n" +
|
||||
" v.descrizione_estesa,\n" +
|
||||
" v.cod_mgrp,\n" +
|
||||
" mtb_grup.descrizione,\n" +
|
||||
" v.cod_msgr,\n" +
|
||||
" mtb_sgrp.descrizione,\n" +
|
||||
" mtb_unt_mis.flag_dig,\n" +
|
||||
" mtb_unt_mis.cifre_dec,\n" +
|
||||
" mtb_colt.segno,\n" +
|
||||
" v.cod_mdep,\n" +
|
||||
" v.posizione,\n" +
|
||||
" mtb_colt.cod_dtip,\n" +
|
||||
" mtb_colt.cod_jfas,\n" +
|
||||
" v.barcode_ul,\n" +
|
||||
" v.qta_cnf_anag,\n" +
|
||||
" mtb_colt.progressivo_ul),\n" +
|
||||
" final_stock AS (SELECT v.qta_col,\n" +
|
||||
" v.num_cnf,\n" +
|
||||
" v.qta_cnf,\n" +
|
||||
" v.gestione,\n" +
|
||||
" v.data_collo,\n" +
|
||||
" v.ser_collo,\n" +
|
||||
" v.num_collo,\n" +
|
||||
" v.cod_mdep AS cod_mdep,\n" +
|
||||
" v.posizione AS posizione,\n" +
|
||||
" mtb_depo_posizioni.priorita,\n" +
|
||||
" v.cod_mgrp AS codGruppo,\n" +
|
||||
" v.descrizione_gruppo AS Gruppo,\n" +
|
||||
" v.cod_msgr AS CodSgruppo,\n" +
|
||||
" v.descrizione_sottogruppo AS Sottogruppo,\n" +
|
||||
" v.cod_mart,\n" +
|
||||
" v.diacod,\n" +
|
||||
" v.descrizione_estesa,\n" +
|
||||
" v.partita_mag,\n" +
|
||||
" v.cod_col,\n" +
|
||||
" v.cod_tagl,\n" +
|
||||
" v.cod_jcom,\n" +
|
||||
" v.peso_netto_kg,\n" +
|
||||
" v.peso_lordo_kg,\n" +
|
||||
" v.cod_jfas,\n" +
|
||||
" v.flag_qta_cnf_fissa,\n" +
|
||||
" v.unt_mis,\n" +
|
||||
" v.segno,\n" +
|
||||
" v.barcode_ul,\n" +
|
||||
" v.datetime_posizionamento,\n" +
|
||||
" v.progressivo_ul\n" +
|
||||
" FROM baseMtbColr v\n" +
|
||||
"\n" +
|
||||
" LEFT OUTER JOIN mtb_depo_posizioni\n" +
|
||||
" ON v.cod_mdep = mtb_depo_posizioni.cod_mdep\n" +
|
||||
" AND v.posizione = mtb_depo_posizioni.posizione)\n" +
|
||||
"\n" +
|
||||
"SELECT qta_col,\n" +
|
||||
" num_cnf,\n" +
|
||||
" qta_cnf,\n" +
|
||||
" gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" ser_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" cod_mdep,\n" +
|
||||
" posizione,\n" +
|
||||
" priorita,\n" +
|
||||
" codGruppo,\n" +
|
||||
" Gruppo,\n" +
|
||||
" CodSgruppo,\n" +
|
||||
" Sottogruppo,\n" +
|
||||
" cod_mart,\n" +
|
||||
" diacod,\n" +
|
||||
" descrizione_estesa,\n" +
|
||||
" partita_mag,\n" +
|
||||
" cod_col,\n" +
|
||||
" cod_tagl,\n" +
|
||||
" cod_jcom,\n" +
|
||||
" peso_netto_kg,\n" +
|
||||
" peso_lordo_kg,\n" +
|
||||
" cod_jfas,\n" +
|
||||
" flag_qta_cnf_fissa,\n" +
|
||||
" unt_mis,\n" +
|
||||
" segno,\n" +
|
||||
" barcode_ul,\n" +
|
||||
" datetime_posizionamento,\n" +
|
||||
" progressivo_ul\n" +
|
||||
"FROM final_stock");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20251021114611 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
|
||||
executeStatement("ALTER TABLE mtb_missione_mag_auto\n" +
|
||||
" ADD priorita SMALLINT DEFAULT 0 NOT NULL");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,10 @@ public enum IntegryApplicationEnum {
|
||||
TASK("478f3a4c51824ad23cb50c1c60670c0f"),
|
||||
SALESBOOK("f0484398-1f8b-42f5-ab79-5282c164e1d8"),
|
||||
CONSEGNA("c012124f-4f11-471c-ae12-81bd4a97626c"),
|
||||
WINCLOCK("54ceebf0-494f-49f1-850b-b15c57666146");
|
||||
WINCLOCK("54ceebf0-494f-49f1-850b-b15c57666146"),
|
||||
|
||||
//Service Applications
|
||||
SERVICE_EUROFORK_CONNECTOR("eadadd1c-13bb-4aae-87fd-4672573f8088");
|
||||
|
||||
private final String text;
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ public class AccountingBusinessLogic {
|
||||
"Attezione, codice pagamento non presente nel documento %s/%s del %s, %s %s",
|
||||
testata.getSerDoc(),
|
||||
testata.getNumDoc(),
|
||||
new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(testata.getDataDoc()),
|
||||
new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY_SLASHED).format(testata.getDataDoc()),
|
||||
(testata.getTipoAnag().equalsIgnoreCase("F") ? "fornitore" : "cliente"),
|
||||
testata.getCodAnag()));
|
||||
|
||||
@@ -120,7 +120,7 @@ public class AccountingBusinessLogic {
|
||||
"Convert(numeric(20,5), importo_enasarco * cambio_divi_cont) as importo_enasarco " +
|
||||
" FROM ctb_rit_acc " +
|
||||
" WHERE num_cmov_fat = " + UtilityDB.valueToString(testata.getNumCmov()) + " AND " +
|
||||
" data_doc = " + UtilityDB.valueDateToString(testata.getDataDoc(), CommonConstants.DATE_FORMAT_YMD) + " AND " +
|
||||
" data_doc = " + UtilityDB.valueDateToString(testata.getDataDoc(), CommonConstants.DATE_FORMAT_YMD_DASHED) + " AND " +
|
||||
" ser_doc = " + UtilityDB.valueToString(testata.getSerDoc()) + " AND " +
|
||||
" num_doc = " + UtilityDB.valueToString(testata.getNumDoc());
|
||||
|
||||
@@ -186,7 +186,7 @@ public class AccountingBusinessLogic {
|
||||
"SELECT " + UtilityDB.valueToString(testata.getCodAnag()) + " as cod_anag, "
|
||||
+ UtilityDB.valueToString(testata.getTipoAnag()) + " as tipo_anag, "
|
||||
+ "Cast(" + UtilityDB.valueToString(annoPart) + " as int) as anno_part, "
|
||||
+ "Convert(datetime, " + UtilityDB.valueDateToString(testata.getDataDoc(), CommonConstants.DATE_FORMAT_YMD) + ") as data_doc, "
|
||||
+ "Convert(datetime, " + UtilityDB.valueDateToString(testata.getDataDoc(), CommonConstants.DATE_FORMAT_YMD_DASHED) + ") as data_doc, "
|
||||
+ UtilityDB.valueToString(testata.getSerDoc()) + " as ser_doc, "
|
||||
+ "Cast( " + UtilityDB.valueToString(testata.getNumDoc()) + " as int ) as num_doc, "
|
||||
+ UtilityDB.valueToString(testata.getCodPaga()) + " as cod_paga, "
|
||||
@@ -340,7 +340,7 @@ public class AccountingBusinessLogic {
|
||||
+ "ctb_caur_rc.cod_ccon as 'cod_ccon',"
|
||||
+ "ctb_caur_rc.tipo_anag as 'tipo_anag', "
|
||||
+ "CASE WHEN ctb_caur_rc.tipo_anag is not null and ctb_grup.tipo = 2 and ctb_grup.sezione = 1 then " + UtilityDB.valueToString(testata.getCodAnag()) + " else null end as 'cod_anag', "
|
||||
+ "CAST(CASE WHEN ctb_caur_rc.tipo_anag is not null and ctb_grup.tipo = 2 and ctb_grup.sezione = 1 then Cast(DatePart(yy, " + UtilityDB.valueDateToString(testata.getDataDoc(), CommonConstants.DATE_FORMAT_YMD) + ") as varchar) else null end as int) as 'anno_part', "
|
||||
+ "CAST(CASE WHEN ctb_caur_rc.tipo_anag is not null and ctb_grup.tipo = 2 and ctb_grup.sezione = 1 then Cast(DatePart(yy, " + UtilityDB.valueDateToString(testata.getDataDoc(), CommonConstants.DATE_FORMAT_YMD_DASHED) + ") as varchar) else null end as int) as 'anno_part', "
|
||||
+ "CASE WHEN ctb_caur_rc.tipo_anag is not null and ctb_grup.tipo = 2 and ctb_grup.sezione = 1 then " + UtilityDB.valueToString(testata.getSerDoc()) + " else null end as 'ser_doc', "
|
||||
+ "CAST( CASE WHEN ctb_caur_rc.tipo_anag is not null and ctb_grup.tipo = 2 and ctb_grup.sezione = 1 then " + UtilityDB.valueToString(testata.getNumDoc()) + " else null end as int) as 'num_doc', "
|
||||
+ "CONVERT ( numeric(20,5), CASE ctb_caur_rc.imp_dare "
|
||||
@@ -554,7 +554,7 @@ public class AccountingBusinessLogic {
|
||||
String whereCond = String.format("%s BETWEEN data_iniz AND data_fine", UtilityDB.valueToString(data));
|
||||
GtbPeriodoFisc gtbPeriodoFisc = getPeriodoFisc(conn, whereCond);
|
||||
if (gtbPeriodoFisc == null) {
|
||||
throw new Exception("Impossibile individuare il periodo fiscale per la data " + new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(data));
|
||||
throw new Exception("Impossibile individuare il periodo fiscale per la data " + new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY_SLASHED).format(data));
|
||||
}
|
||||
return gtbPeriodoFisc;
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.Timestamp;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -83,7 +84,7 @@ public class DocumentBusinessLogic {
|
||||
Optional<DtbDoct> bollaMax = Stream.of(dtbDoct.getDtbDoctBolle()).max((o1, o2) -> o1.getDataDoc().compareTo(o2.getDataDoc()));
|
||||
|
||||
if (bollaMax.isPresent()) {
|
||||
ctbMovt.setDataCompIva(bollaMax.get().getDataDoc());
|
||||
ctbMovt.setDataCompIva(UtilityLocalDate.localDateToDate(bollaMax.get().getDataDoc()));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -141,11 +142,11 @@ public class DocumentBusinessLogic {
|
||||
codCconPaga = (String) datiCausPaga.get("cod_ccon_cassa");
|
||||
}
|
||||
|
||||
Date dataReg = dtbDoct.getDataCmov();
|
||||
LocalDate dataReg = UtilityLocalDate.localDateFromDate(dtbDoct.getDataCmov());
|
||||
if (dataReg == null) {
|
||||
dataReg = dtbDoct.getDataReg();
|
||||
}
|
||||
Date dataDoc = dtbDoct.getDataDoc();
|
||||
LocalDate dataDoc = dtbDoct.getDataDoc();
|
||||
String serDoc = dtbDoct.getSerDoc();
|
||||
Integer numDoc = dtbDoct.getNumDoc();
|
||||
String codJcom = dtbDoct.getCodJcom();
|
||||
@@ -166,10 +167,10 @@ public class DocumentBusinessLogic {
|
||||
//TESTATA
|
||||
ctbMovt
|
||||
.setNumCmov(numCmov)
|
||||
.setDataCmov(dataReg)
|
||||
.setDataCmov(UtilityLocalDate.localDateToDate(dataReg))
|
||||
.setCodJcom(codJcom)
|
||||
.setCodCcau(codCcau)
|
||||
.setDataDoc(dataDoc)
|
||||
.setDataDoc(UtilityLocalDate.localDateToDate(dataDoc))
|
||||
.setNumDoc(numDoc)
|
||||
.setSerDoc(serDoc)
|
||||
.setNumProt(numProt)
|
||||
@@ -195,7 +196,7 @@ public class DocumentBusinessLogic {
|
||||
|
||||
String idAttach = dtbDoct.getDrlDocAttached().get(0).getIdAttach();
|
||||
String sqlAttach =
|
||||
"SELECT CASE WHEN " + UtilityDB.valueDateToString(dataRicMin, CommonConstants.DATE_FORMAT_YMD) + " is not null AND datetime_attach >= " + UtilityDB.valueDateToString(dataRicMin, CommonConstants.DATE_FORMAT_YMD) + " THEN datetime_attach ELSE null END " +
|
||||
"SELECT CASE WHEN " + UtilityDB.valueDateToString(dataRicMin, CommonConstants.DATE_FORMAT_YMD_DASHED) + " is not null AND datetime_attach >= " + UtilityDB.valueDateToString(dataRicMin, CommonConstants.DATE_FORMAT_YMD_DASHED) + " THEN datetime_attach ELSE null END " +
|
||||
" FROM stb_files_attached " +
|
||||
" WHERE id_attach = " + UtilityDB.valueToString(idAttach);
|
||||
|
||||
@@ -218,7 +219,7 @@ public class DocumentBusinessLogic {
|
||||
"SELECT * " +
|
||||
" FROM ctb_part " +
|
||||
"WHERE cod_anag = " + UtilityDB.valueToString(dtbDoct.getCodAnag()) + " AND " +
|
||||
" data_doc = " + UtilityDB.valueDateToString(dtbDoct.getDataDoc(), CommonConstants.DATE_FORMAT_YMD) + " AND " +
|
||||
" data_doc = " + UtilityDB.valueToString(dtbDoct.getDataDoc()) + " AND " +
|
||||
" ser_doc = " + UtilityDB.valueToString(dtbDoct.getSerDoc()) + " AND " +
|
||||
" num_doc = " + UtilityDB.valueToString(dtbDoct.getNumDoc()) + " AND " +
|
||||
" tipo_partita = " + UtilityDB.valueToString(tipoPartita);
|
||||
@@ -346,9 +347,9 @@ public class DocumentBusinessLogic {
|
||||
|
||||
//REGISTRAZIONE ACCONTO
|
||||
if (!UtilityString.isNullOrEmpty(codCcauAnt) && acconto.compareTo(BigDecimal.ZERO) != 0) {
|
||||
Integer annoPart = Integer.parseInt(new SimpleDateFormat("yyyy").format(dataDoc));
|
||||
Integer annoPart = dataDoc.getYear();
|
||||
regAcconto(insImpDare, codIreg, codCcauAnt, codCconAnt, numIreg, numProt, riga, ctbMovt, righeMov,
|
||||
dataReg, tipoAnag, codAnag, codJcom, acconto, numCmov, codCconAnag,
|
||||
UtilityLocalDate.localDateToDate(dataReg), tipoAnag, codAnag, codJcom, acconto, numCmov, codCconAnag,
|
||||
annoPart, serDoc, numDoc);
|
||||
if ("S".equalsIgnoreCase(ctbMovt.getGeneraScad()) && stornaAcconto) {
|
||||
AccountingBusinessLogic.pagaScadenze(ctbMovt.getDataCmov(), acconto, elencoScad);
|
||||
@@ -361,7 +362,7 @@ public class DocumentBusinessLogic {
|
||||
if (!UtilityString.isNullOrEmpty(codCcauAnt)) {
|
||||
totDoc = totDoc.subtract(acconto);
|
||||
}
|
||||
regPagamento(insImpDare, regIva, riga, righeMov, dataDoc, tipoAnag, codAnag, serDoc, numDoc, totDoc,
|
||||
regPagamento(insImpDare, regIva, riga, righeMov, UtilityLocalDate.localDateToDate(dataDoc), tipoAnag, codAnag, serDoc, numDoc, totDoc,
|
||||
codCconAnag, codCconPaga, codCcauPaga, elencoScad,
|
||||
ctbMovt.getGeneraScad(), ctbMovt.getDataCmov());
|
||||
|
||||
@@ -564,7 +565,7 @@ public class DocumentBusinessLogic {
|
||||
|
||||
if (regIva) {
|
||||
ctbMovr
|
||||
.setAnnoPart(Integer.parseInt(new SimpleDateFormat("yyyy").format(dtbDoct.getDataDoc())))
|
||||
.setAnnoPart(dtbDoct.getDataDoc().getYear())
|
||||
.setSerDoc(dtbDoct.getSerDoc())
|
||||
.setNumDoc(dtbDoct.getNumDoc());
|
||||
}
|
||||
@@ -786,7 +787,7 @@ public class DocumentBusinessLogic {
|
||||
.setCodAnag(dtbDoct.getCodAnag());
|
||||
if (regIva) {
|
||||
ctbMovr
|
||||
.setAnnoPart(Integer.parseInt(new SimpleDateFormat("yyyy").format(dtbDoct.getDataDoc())))
|
||||
.setAnnoPart(dtbDoct.getDataDoc().getYear())
|
||||
.setSerDoc(dtbDoct.getSerDoc())
|
||||
.setNumDoc(dtbDoct.getNumDoc());
|
||||
|
||||
|
||||
@@ -8,9 +8,9 @@ import it.integry.ems.rules.businessLogic.enums.FlagSezione;
|
||||
import it.integry.ems.rules.completing.PackagesRules;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.entity.key.MtbColtKey;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.*;
|
||||
@@ -24,6 +24,7 @@ import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static it.integry.ems.rules.completing.QueryRules.getSingleValue;
|
||||
|
||||
@@ -55,12 +56,24 @@ public class LoadColliService {
|
||||
|
||||
this.currentAzienda = Azienda.getDefaultAzienda(multiDBTransactionManager.getPrimaryConnection());
|
||||
|
||||
String whereCond = "";
|
||||
|
||||
for (MtbColt mtbColt : loadColli.getColli()) {
|
||||
mtbColt.setOperation(OperationType.SELECT_OBJECT);
|
||||
mtbColt.getMtbColr().forEach(mtbColr -> mtbColr.setOperation(OperationType.SELECT_OBJECT));
|
||||
mtbColt.getMtbCols().forEach(mtbCols -> mtbCols.setOperation(OperationType.SELECT_OBJECT));
|
||||
|
||||
if(loadDatiFromDB){
|
||||
entityProcessor.processEntity(mtbColt, true, multiDBTransactionManager);
|
||||
}
|
||||
|
||||
if (mtbColt.getNumCollo() == null && mtbColt.getDataCollo() == null) {
|
||||
mtbColt.setDataCollo(UtilityLocalDate.getNow());
|
||||
int numCollo = PackagesRules.completeNumCollo(multiDBTransactionManager.getPrimaryConnection(),
|
||||
mtbColt.getSerCollo(),
|
||||
mtbColt.getDataCollo(),
|
||||
mtbColt.getGestione());
|
||||
mtbColt.setNumCollo(numCollo);
|
||||
}
|
||||
}
|
||||
|
||||
if (UtilityString.isNullOrEmpty(loadColli.getGestione()) && !UtilityString.isNullOrEmpty(loadColli.getCodDtip())) {
|
||||
@@ -74,35 +87,31 @@ public class LoadColliService {
|
||||
}
|
||||
|
||||
|
||||
if (loadDatiFromDB) {
|
||||
for (EntityBase entity : loadColli.getColli()) {
|
||||
entityProcessor.processEntity(entity, false, multiDBTransactionManager);
|
||||
}
|
||||
}
|
||||
// String whereCond = "";
|
||||
// for (MtbColt collo : loadColli.getColli()) {
|
||||
// if (!UtilityString.isNullOrEmpty(whereCond)) {
|
||||
// whereCond += " OR ";
|
||||
// }
|
||||
//
|
||||
// whereCond += "( mtb_colt.gestione = " + UtilityDB.valueToString(collo.getGestione()) + " AND " +
|
||||
// " mtb_colt.data_collo = " + UtilityDB.valueToString(collo.getDataCollo()) + " AND " +
|
||||
// " mtb_colt.ser_collo = " + UtilityDB.valueToString(collo.getSerCollo()) + " AND " +
|
||||
// " mtb_colt.num_collo = " + UtilityDB.valueToString(collo.getNumCollo()) + ") ";
|
||||
// }
|
||||
checkColli(loadColli.getColli().stream()
|
||||
.map(MtbColt::getKey)
|
||||
.collect(Collectors.toList()), loadColli);
|
||||
|
||||
for (MtbColt mtbColt : loadColli.getColli()) {
|
||||
if (mtbColt.getNumCollo() == null && mtbColt.getDataCollo() == null) {
|
||||
mtbColt.setDataCollo(UtilityLocalDate.getNow());
|
||||
int numCollo = PackagesRules.completeNumCollo(multiDBTransactionManager.getPrimaryConnection(),
|
||||
mtbColt.getSerCollo(),
|
||||
mtbColt.getDataCollo(),
|
||||
mtbColt.getGestione());
|
||||
mtbColt.setNumCollo(numCollo);
|
||||
}
|
||||
}
|
||||
String whereCondColli = UtilityQuery.concatFieldListInWhereCond(loadColli.getColli().stream()
|
||||
.map(x -> new HashMap<String, Object>() {{
|
||||
put("mtb_colt.gestione", x.getGestione());
|
||||
put("mtb_colt.num_collo", x.getNumCollo());
|
||||
put("mtb_colt.data_collo", x.getDataCollo());
|
||||
put("mtb_colt.ser_collo", x.getSerCollo());
|
||||
}})
|
||||
.collect(Collectors.toList()));
|
||||
|
||||
for (MtbColt collo : loadColli.getColli()) {
|
||||
if (!UtilityString.isNullOrEmpty(whereCond)) {
|
||||
whereCond += " OR ";
|
||||
}
|
||||
|
||||
whereCond += "( mtb_colt.gestione = " + UtilityDB.valueToString(collo.getGestione()) + " AND " +
|
||||
" mtb_colt.data_collo = " + UtilityDB.valueToString(collo.getDataCollo()) + " AND " +
|
||||
" mtb_colt.ser_collo = " + UtilityDB.valueToString(collo.getSerCollo()) + " AND " +
|
||||
" mtb_colt.num_collo = " + UtilityDB.valueToString(collo.getNumCollo()) + ") ";
|
||||
}
|
||||
|
||||
checkColli(whereCond, loadColli);
|
||||
|
||||
DtbDoct dtbDoct;
|
||||
String query;
|
||||
@@ -175,7 +184,7 @@ public class LoadColliService {
|
||||
" gtb_divi," +
|
||||
"(SELECT segno_qta_scar FROM dtb_tipi WHERE cod_dtip = " + UtilityDB.valueToString(loadColli.getCodDtip()) + ") tipoDoc " +
|
||||
" WHERE dtb_ordt.gestione =" + UtilityDB.valueToString(loadColli.getGestione()) + " AND" +
|
||||
" dtb_ordt.data_ord = " + UtilityDB.valueDateToString(loadColli.getDataOrd(), CommonConstants.DATE_FORMAT_YMD) + " AND" +
|
||||
" dtb_ordt.data_ord = " + UtilityDB.valueToString(loadColli.getDataOrd()) + " AND" +
|
||||
" dtb_ordt.num_ord = " + UtilityDB.valueToString(loadColli.getNumOrd()) + " AND" +
|
||||
" gtb_divi.cod_divi = dtb_ordt.cod_divi ";
|
||||
|
||||
@@ -185,15 +194,17 @@ public class LoadColliService {
|
||||
throw new Exception("Codice Deposito obbligatorio");
|
||||
}
|
||||
|
||||
|
||||
if (loadDatiFromDB) {
|
||||
query = "SELECT DISTINCT mtb_colt.cod_vlis AS listino, " +
|
||||
" mtb_colt.cod_vdes " +
|
||||
" FROM mtb_colt, mtb_colr " +
|
||||
"WHERE mtb_colr.gestione = mtb_colt.gestione AND " +
|
||||
" FROM mtb_colt " +
|
||||
" INNER JOIN mtb_colr ON mtb_colr.gestione = mtb_colt.gestione AND " +
|
||||
" mtb_colr.data_collo = mtb_colt.data_collo AND " +
|
||||
" mtb_colr.ser_collo = mtb_colt.ser_collo AND " +
|
||||
" mtb_colr.num_collo = mtb_colt.num_collo ";
|
||||
query = UtilityDB.addwhereCond(query, whereCond, false);
|
||||
" mtb_colr.num_collo = mtb_colt.num_collo " +
|
||||
" WHERE " + whereCondColli;
|
||||
|
||||
dtbDoct = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), query, DtbDoct.class);
|
||||
} else {
|
||||
dtbDoct = new DtbDoct();
|
||||
@@ -229,7 +240,7 @@ public class LoadColliService {
|
||||
" vtb_list.descrizione ";
|
||||
|
||||
|
||||
query = UtilityDB.addwhereCond(query, whereCond, false);
|
||||
query = UtilityDB.addwhereCond(query, whereCondColli, false);
|
||||
List<HashMap<String, Object>> results = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
if (!results.isEmpty()) {
|
||||
dtbDoct.setCodDivi(UtilityHashMap.<String>getValueIfExists(results.get(0), "cod_divi"));
|
||||
@@ -242,7 +253,7 @@ public class LoadColliService {
|
||||
if (loadColli.getColli().isEmpty() && loadDatiFromDB) {
|
||||
query = "SELECT gestione, data_collo, ser_collo, num_collo " +
|
||||
" FROM mtb_colt ";
|
||||
query = UtilityDB.addwhereCond(query, whereCond, false);
|
||||
query = UtilityDB.addwhereCond(query, whereCondColli, false);
|
||||
PreparedStatement ps = multiDBTransactionManager.prepareStatement(query);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
|
||||
@@ -256,7 +267,7 @@ public class LoadColliService {
|
||||
// Acquisizione ID_LOTTO del primo collo da agganciare
|
||||
if (loadDatiFromDB) {
|
||||
query = "SELECT TOP 1 id_lotto FROM mtb_colt ";
|
||||
query = UtilityDB.addwhereCond(query, whereCond, false);
|
||||
query = UtilityDB.addwhereCond(query, whereCondColli, false);
|
||||
Integer idLotto = (Integer) getSingleValue(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
if (idLotto != null) {
|
||||
dtbDoct.setIdLotto(idLotto);
|
||||
@@ -300,7 +311,7 @@ public class LoadColliService {
|
||||
|
||||
|
||||
//VERIFICARE CHE USERNAME VENGA PASSATO
|
||||
List<DtbDocr> dtbDocr = loadRigheCollo(whereCond, loadColli);
|
||||
List<DtbDocr> dtbDocr = loadRigheCollo(whereCondColli, loadColli);
|
||||
|
||||
if (!dtbDocr.isEmpty()) {
|
||||
dtbDocr.stream()
|
||||
@@ -321,9 +332,19 @@ public class LoadColliService {
|
||||
|
||||
}
|
||||
|
||||
private void checkColli(String whereCond, final LoadColliDTO loadColliDTO) throws Exception {
|
||||
private void checkColli(final List<MtbColtKey> mtbColtKeys, final LoadColliDTO loadColliDTO) throws Exception {
|
||||
String query;
|
||||
|
||||
|
||||
String whereCondColli = UtilityQuery.concatFieldListInWhereCond(mtbColtKeys.stream()
|
||||
.map(x -> new HashMap<String, Object>() {{
|
||||
put("mtb_colt.gestione", x.getGestione());
|
||||
put("mtb_colt.num_collo", x.getNumCollo());
|
||||
put("mtb_colt.data_collo", x.getDataCollo());
|
||||
put("mtb_colt.ser_collo", x.getSerCollo());
|
||||
}})
|
||||
.collect(Collectors.toList()));
|
||||
|
||||
//CONTROLLO COLLI AGGANCIATI A DOCUMENTI
|
||||
if (loadDatiFromDB) {
|
||||
query =
|
||||
@@ -341,7 +362,7 @@ public class LoadColliService {
|
||||
" mtb_colt.ser_collo = mtb_colr.ser_collo and " +
|
||||
" mtb_colt.num_collo = mtb_colr.num_collo ";
|
||||
|
||||
query = UtilityDB.addwhereCond(query, whereCond, false);
|
||||
query = UtilityDB.addwhereCond(query, whereCondColli, false);
|
||||
|
||||
List<HashMap<String, Object>> results = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
for (HashMap<String, Object> result : results) {
|
||||
@@ -353,20 +374,21 @@ public class LoadColliService {
|
||||
int numDoc = UtilityHashMap.getValueIfExists(result, "num_doc");
|
||||
|
||||
throw new Exception("Il collo n° " + numCollo +
|
||||
" del " + new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(dataCollo) +
|
||||
" del " + new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY_SLASHED).format(dataCollo) +
|
||||
" già agganciato al documento " + codDtip +
|
||||
" del " + new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(dataDoc) +
|
||||
" del " + new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY_SLASHED).format(dataDoc) +
|
||||
" n. " + numDoc);
|
||||
}
|
||||
} else {
|
||||
List<MtbColt> mtbColtWithDocAlready = Stream.of(loadColliDTO.getColli())
|
||||
.filter(mtbColt -> !UtilityString.isNullOrEmpty(mtbColt.getCodDtip())).toList();
|
||||
List<MtbColt> mtbColtWithDocAlready = loadColliDTO.getColli().stream()
|
||||
.filter(mtbColt -> !UtilityString.isNullOrEmpty(mtbColt.getCodDtip()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (mtbColtWithDocAlready != null && !mtbColtWithDocAlready.isEmpty()) {
|
||||
if (!mtbColtWithDocAlready.isEmpty()) {
|
||||
throw new Exception("Il collo n° " + mtbColtWithDocAlready.get(0).getNumCollo() +
|
||||
" del " + new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(mtbColtWithDocAlready.get(0).getDataCollo()) +
|
||||
" del " + CommonConstants.DATE_DMY_SLASHED_FORMATTER.format(mtbColtWithDocAlready.get(0).getDataCollo()) +
|
||||
" già agganciato al documento " + mtbColtWithDocAlready.get(0).getCodDtip() +
|
||||
" del " + new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(mtbColtWithDocAlready.get(0).getDataDoc()) +
|
||||
" del " + CommonConstants.DATE_DMY_SLASHED_FORMATTER.format(mtbColtWithDocAlready.get(0).getDataDoc()) +
|
||||
" n. " + mtbColtWithDocAlready.get(0).getNumDoc());
|
||||
}
|
||||
}
|
||||
@@ -381,7 +403,7 @@ public class LoadColliService {
|
||||
"FROM mtb_colt " +
|
||||
"WHERE mtb_colt.cod_mdep <> " + UtilityDB.valueToString(loadColliDTO.getCodMdep());
|
||||
|
||||
query = UtilityDB.addwhereCond(query, whereCond, false);
|
||||
query = UtilityDB.addwhereCond(query, whereCondColli, false);
|
||||
List<HashMap<String, Object>> results = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
|
||||
if (!results.isEmpty()) {
|
||||
@@ -407,7 +429,7 @@ public class LoadColliService {
|
||||
" mtb_colr.data_ord = dtb_ordt.data_ord AND " +
|
||||
" mtb_colr.num_ord = dtb_ordt.num_ord ";
|
||||
|
||||
query = UtilityDB.addwhereCond(query, whereCond, false);
|
||||
query = UtilityDB.addwhereCond(query, whereCondColli, false);
|
||||
List<HashMap<String, Object>> results = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
|
||||
if (!results.isEmpty()) {
|
||||
@@ -431,7 +453,7 @@ public class LoadColliService {
|
||||
" mtb_colr.num_ord = dtb_ordt.num_ord " +
|
||||
"WHERE dtb_ordt.flag_sospeso = 'S'";
|
||||
|
||||
query = UtilityDB.addwhereCond(query, whereCond, false);
|
||||
query = UtilityDB.addwhereCond(query, whereCondColli, false);
|
||||
|
||||
List<HashMap<String, Object>> results = UtilityDB.executeSimpleQuery(multiDBTransactionManager.getPrimaryConnection(), query);
|
||||
|
||||
@@ -682,7 +704,7 @@ public class LoadColliService {
|
||||
mtbTcol.setOperation(OperationType.SELECT_OBJECT);
|
||||
mtbTcol.setCodTcol(mtbColt.getCodTcol());
|
||||
|
||||
entityProcessor.processEntity(mtbTcol, multiDBTransactionManager);
|
||||
entityProcessor.processEntity(mtbTcol,true, multiDBTransactionManager);
|
||||
|
||||
if (mtbColt.getPesoKg() == null) mtbColt.setPesoKg(BigDecimal.ZERO);
|
||||
|
||||
@@ -704,18 +726,18 @@ public class LoadColliService {
|
||||
MtbAart mtbAart = new MtbAart();
|
||||
mtbAart.setCodMart(mtbColr.getCodMart());
|
||||
mtbAart.setOperation(OperationType.SELECT_OBJECT);
|
||||
entityProcessor.processEntity(mtbAart, multiDBTransactionManager);
|
||||
entityProcessor.processEntity(mtbAart,true, multiDBTransactionManager);
|
||||
|
||||
//Retrieve della riga ordine
|
||||
DtbOrdr dtbOrdr = null;
|
||||
if (mtbColr.getNumOrd() != null && mtbColr.getRigaOrd() != null && mtbColr.getDataOrd() != null) {
|
||||
dtbOrdr = new DtbOrdr();
|
||||
dtbOrdr.setNumOrd(mtbColr.getNumOrd());
|
||||
dtbOrdr.setDataOrd(UtilityLocalDate.localDateToDate(mtbColr.getDataOrd()));
|
||||
dtbOrdr.setDataOrd(mtbColr.getDataOrd());
|
||||
dtbOrdr.setRigaOrd(mtbColr.getRigaOrd());
|
||||
dtbOrdr.setOperation(OperationType.SELECT_OBJECT);
|
||||
|
||||
entityProcessor.processEntity(dtbOrdr, multiDBTransactionManager);
|
||||
entityProcessor.processEntity(dtbOrdr,true, multiDBTransactionManager);
|
||||
}
|
||||
|
||||
DtbDocr dtbDocr = new DtbDocr();
|
||||
|
||||
@@ -3,6 +3,7 @@ package it.integry.ems.rules.businessLogic.dto;
|
||||
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -13,13 +14,13 @@ public class LoadColliDTO {
|
||||
private String codDtip;
|
||||
private String codAnag;
|
||||
private String codVdes;
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
private String serDoc;
|
||||
private Integer numDoc;
|
||||
private String codMdep;
|
||||
private String calcPrz;
|
||||
private boolean flagLeggiDatiOrd;
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
private Integer numOrd;
|
||||
private String flagEvasoForzato;
|
||||
private Date dataVers;
|
||||
@@ -74,11 +75,11 @@ public class LoadColliDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public LoadColliDTO setDataDoc(Date dataDoc) {
|
||||
public LoadColliDTO setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
return this;
|
||||
}
|
||||
@@ -128,11 +129,11 @@ public class LoadColliDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public LoadColliDTO setDataOrd(Date dataOrd) {
|
||||
public LoadColliDTO setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -20,6 +20,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
@@ -38,7 +39,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
segno = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
|
||||
}
|
||||
|
||||
Date dataReg = null, dataValidita = null;
|
||||
LocalDate dataReg = null, dataValidita = null;
|
||||
if (row instanceof DtbDocr) {
|
||||
dataReg = ((DtbDocr) row).getDataReg();
|
||||
dataValidita = ((DtbDocr) row).getDataDoc();
|
||||
@@ -189,22 +190,22 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
componenti.add(rigaDocOrd);
|
||||
} else if (!esponiComp && "C".equals(flagCalcPrz)) {
|
||||
if (CommonConstants.ULTC.equalsIgnoreCase(listino)) {
|
||||
sql = " SELECT dbo.f_GetCostoUltArt_depo( " + UtilityDB.valueDateToString(dataReg, CommonConstants.DATE_FORMAT_YMD) + ", "
|
||||
sql = " SELECT dbo.f_GetCostoUltArt_depo( " + UtilityDB.valueToString(dataReg) + ", "
|
||||
+ UtilityDB.valueToString(codMdep) + ", "
|
||||
+ UtilityDB.valueToString(codComp) + ") as val_unt ";
|
||||
} else if ("V".equalsIgnoreCase(gestione)) {
|
||||
if (flagPrzIva) {
|
||||
sql = "SELECT dbo.f_getPrzVendIva(" + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + ", "
|
||||
sql = "SELECT dbo.f_getPrzVendIva(" + UtilityDB.valueToString(dataValidita) + ", "
|
||||
+ UtilityDB.valueToString(listino) + ","
|
||||
+ UtilityDB.valueToString(codComp) + ", 'S' ) as val_unt ";
|
||||
} else {
|
||||
sql = "SELECT dbo.f_getPrzVend(" + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + ", "
|
||||
sql = "SELECT dbo.f_getPrzVend(" + UtilityDB.valueToString(dataValidita) + ", "
|
||||
+ UtilityDB.valueToString(listino) + ","
|
||||
+ UtilityDB.valueToString(codComp) + ", 'S' ) as val_unt ";
|
||||
}
|
||||
|
||||
} else if ("A".equalsIgnoreCase(gestione)) {
|
||||
sql = "SELECT dbo.f_getPrzNettoAcqArt (" + UtilityDB.valueDateToString(dataValidita, CommonConstants.DATE_FORMAT_YMD) + ", "
|
||||
sql = "SELECT dbo.f_getPrzNettoAcqArt (" + UtilityDB.valueToString(dataValidita) + ", "
|
||||
+ UtilityDB.valueToString(listino) + ", "
|
||||
+ "NULL, "
|
||||
+ UtilityDB.valueToString(codComp) + ") as val_unt ";
|
||||
@@ -239,7 +240,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
public static void calcSconti(Connection conn, DtbDoct testata) throws Exception {
|
||||
List<DtbDocOrdR> rows = new ArrayList<>(Stream.of(testata.getDtbDocr()).filter(x -> x.getRigaOrd() == null).toList());
|
||||
|
||||
calcSconti(conn, testata.getDataDoc(), rows);
|
||||
calcSconti(conn, UtilityLocalDate.localDateToDate(testata.getDataDoc()), rows);
|
||||
|
||||
testata.setDtbDocr(Stream.of(rows).map(x -> (DtbDocr) x).toList());
|
||||
testata.getDtbDocr().addAll(Stream.of(testata.getDtbDocr()).filter(x -> x.getRigaOrd() != null).toList());
|
||||
@@ -264,7 +265,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
|
||||
for (HashMap<String, String> artLisv : distinctArtLisv) {
|
||||
String sql = "SELECT cod_mart, sconto_cartoni, sconto_strato, sconto_pedane " +
|
||||
"FROM getListinoVendita (" + UtilityDB.valueDateToString(dataListino, CommonConstants.DATE_FORMAT_YMD) + ", " +
|
||||
"FROM getListinoVendita (" + UtilityDB.valueDateToString(dataListino, CommonConstants.DATE_FORMAT_YMD_DASHED) + ", " +
|
||||
UtilityDB.valueToString(UtilityHashMap.getValueIfExists(artLisv, "listino")) + ", " +
|
||||
UtilityDB.valueToString(UtilityHashMap.getValueIfExists(artLisv, "cod_mart")) + ")";
|
||||
|
||||
@@ -471,7 +472,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
|
||||
//Dati Bolla
|
||||
String codDtipBolla = null, serDocBolla = null;
|
||||
Date dataDocBolla = null;
|
||||
LocalDate dataDocBolla = null;
|
||||
Integer numDocBolla = null;
|
||||
|
||||
if (testata.getOperation() == OperationType.NO_OP) {
|
||||
@@ -646,12 +647,12 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
}
|
||||
throw new Exception(String.format(
|
||||
"Impossibile salvare l'ordine %s del %s n. %s, riga %s senza aliquota IVA",
|
||||
gestione, UtilityDate.formatDate(row.getDataOrd(), CommonConstants.DATE_FORMAT_DMY), row.getNumOrd(), riga));
|
||||
gestione, CommonConstants.DATE_DMY_SLASHED_FORMATTER.format(row.getDataOrd()), row.getNumOrd(), riga));
|
||||
} else {
|
||||
throw new Exception(String.format(
|
||||
"Impossibile salvare il documento %s del %s n. %s/%s, articolo %s senza aliquota IVA",
|
||||
((DtbBaseDocR) row).getCodDtip(),
|
||||
UtilityDate.formatDate(((DtbBaseDocR) row).getDataDoc(), CommonConstants.DATE_FORMAT_DMY),
|
||||
CommonConstants.DATE_DMY_SLASHED_FORMATTER.format(((DtbBaseDocR) row).getDataDoc()),
|
||||
((DtbBaseDocR) row).getSerDoc(),
|
||||
((DtbBaseDocR) row).getNumDoc(), (codMart == null ? "" : codMart + " - ") + row.getDescrizione()
|
||||
));
|
||||
@@ -720,7 +721,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
" FROM dtb_docr " +
|
||||
" WHERE dtb_docr.cod_anag = " + UtilityDB.valueToString(dtbDocr.getCodAnag()) + " AND " +
|
||||
"dtb_docr.cod_dtip = " + UtilityDB.valueToString(dtbDocr.getCodDtipBolla()) + " AND " +
|
||||
"dtb_docr.data_doc = " + UtilityDB.valueDateToString(dtbDocr.getDataDocBolla(), CommonConstants.DATE_FORMAT_YMD) + " AND " +
|
||||
"dtb_docr.data_doc = " + UtilityDB.valueDateToString(dtbDocr.getDataDocBolla(), CommonConstants.DATE_FORMAT_YMD_DASHED) + " AND " +
|
||||
"dtb_docr.ser_doc = " + UtilityDB.valueToString(dtbDocr.getSerDocBolla()) + " AND " +
|
||||
"dtb_docr.num_doc = " + UtilityDB.valueToString(dtbDocr.getNumDocBolla()) + " AND " +
|
||||
"dtb_docr.id_riga = " + UtilityDB.valueToString(dtbDocr.getIdRigaBolla());
|
||||
@@ -1178,7 +1179,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
}
|
||||
|
||||
private static List<CostiDTO> addCosti(final DtbDocr dtbDocr, List<
|
||||
BigDecimal> sconti, List<CostiDTO> listaCosti, String codJfasTestata) throws Exception {
|
||||
BigDecimal> sconti, List<CostiDTO> listaCosti, String codJfasTestata) {
|
||||
BigDecimal importo = dtbDocr.getImportoRiga();
|
||||
for (BigDecimal sconto : sconti) {
|
||||
if (sconto != null) {
|
||||
@@ -1189,8 +1190,8 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
|
||||
if (!UtilityBigDecimal.isNullOrZero(importo)) {
|
||||
String codJfas = UtilityString.isNull(dtbDocr.getCodJfas(), codJfasTestata);
|
||||
Date dataInizComp = UtilityDate.isNull(dtbDocr.getDataInizComp(), dtbDocr.getDataDoc());
|
||||
Date dataFineComp = UtilityDate.isNull(dtbDocr.getDataFineComp(), dtbDocr.getDataDoc());
|
||||
Date dataInizComp = UtilityDate.isNull(dtbDocr.getDataInizComp(), UtilityLocalDate.localDateToDate(dtbDocr.getDataDoc()));
|
||||
Date dataFineComp = UtilityDate.isNull(dtbDocr.getDataFineComp(), UtilityLocalDate.localDateToDate(dtbDocr.getDataDoc()));
|
||||
Optional<CostiDTO> optCosti = Stream.of(listaCosti)
|
||||
.filter(value -> UtilityString.equalsIgnoreCase(value.getCodCcon(), dtbDocr.getCodCcon()) &&
|
||||
UtilityString.equalsIgnoreCase(value.getCodJcom(), dtbDocr.getCodJcom()) &&
|
||||
@@ -1255,7 +1256,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
" FROM mtb_spes INNER JOIN gtb_spes ON gtb_spes.cod_spes = mtb_spes.cod_spes " +
|
||||
" INNER JOIN mtb_aart ON mtb_aart.cod_mart = mtb_spes.cod_mart " +
|
||||
" LEFT OUTER JOIN mtb_unt_mis ON gtb_spes.unt_mis = mtb_unt_mis.unt_mis " +
|
||||
" LEFT OUTER JOIN dbo.getDatiCodSpesCONAI(null, " + UtilityDB.valueToString(testata.getCodAnag()) + ", " + UtilityDB.valueDateToString(testata.getDataDoc(), CommonConstants.DATE_FORMAT_YMD) + ")spesConai ON mtb_spes.cod_spes = spesConai.cod_conai " +
|
||||
" LEFT OUTER JOIN dbo.getDatiCodSpesCONAI(null, " + UtilityDB.valueToString(testata.getCodAnag()) + ", " + UtilityDB.valueToString(testata.getDataDoc()) + ")spesConai ON mtb_spes.cod_spes = spesConai.cod_conai " +
|
||||
" WHERE mtb_spes.cod_mart = " + UtilityDB.valueToString(row.getCodMart()) + " AND " +
|
||||
" mtb_spes.flag_inc_in_prz = 'N' AND " +
|
||||
" dbo.f_chkFlagSpesaArtGestione(mtb_spes.cod_mart, mtb_spes.cod_spes, " + UtilityDB.valueToString(testata.getGestione()) + ") = 'S'";
|
||||
@@ -1405,7 +1406,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
private static Integer setDtbDocs(DtbDoct testata, List<CtbMovi> castelletto,
|
||||
GtbSpes gtbSpes, BigDecimal qta, BigDecimal importo,
|
||||
List<DtbDocs> speseCalc, Integer maxRigaSpesa,
|
||||
Boolean ventilazione) throws Exception {
|
||||
Boolean ventilazione) {
|
||||
maxRigaSpesa++;
|
||||
DtbDocs dtbDocs = new DtbDocs();
|
||||
dtbDocs.setEntityHolder(testata.getEntityHolder());
|
||||
@@ -1631,7 +1632,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
"SELECT saldo " +
|
||||
" FROM dbo.GetSaldoContoAnalitico(" + UtilityDB.valueToString(testata.getDtbTipi().getCodCcauAnt()) + ','
|
||||
+ UtilityDB.valueToString(testata.getCodAnag()) + ","
|
||||
+ UtilityDB.valueDateToString(testata.getDataDoc(), CommonConstants.DATE_FORMAT_YMD) + ")";
|
||||
+ UtilityDB.valueToString(testata.getDataDoc()) + ")";
|
||||
BigDecimal saldoAcconto = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
|
||||
|
||||
if (UtilityBigDecimal.isNullOrZero(saldoAcconto)) {
|
||||
@@ -1649,7 +1650,7 @@ public class DocOrdCalTotaliRules extends QueryRules {
|
||||
} else if (DtbTipi.AccontoDa.fromValue(testata.getDtbTipi().getFlagAcconto()) == DtbTipi.AccontoDa.BOLLA && testata.getDtbTipi().getTipoEmissioneEnum() == TipoEmissione.DIFFERITA) {
|
||||
List<DtbDoct> elencoBolle = Stream.of(testata.getDtbDoctBolle()).distinctBy(dtbDoct -> dtbDoct.getCodAnag() + " - " +
|
||||
dtbDoct.getCodDtip() + " - " +
|
||||
UtilityDate.formatDate(dtbDoct.getDataDoc(), CommonConstants.DATETIME_FORMAT_YMD) + " - " +
|
||||
CommonConstants.DATE_YMD_DASHED_FORMATTER.format(dtbDoct.getDataDoc()) + " - " +
|
||||
dtbDoct.getSerDoc() + " - " +
|
||||
dtbDoct.getNumDoc()).toList();
|
||||
for (DtbDoct bolla : elencoBolle) {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -44,7 +44,7 @@ public class PackagesRules extends QueryRules {
|
||||
return value;
|
||||
}
|
||||
|
||||
public static String completeBarcodeUl(Connection connection, String gestione, LocalDate dataCollo, String serCollo, Integer numCollo, String codJfas) throws Exception {
|
||||
public static String completeBarcodeUl(Connection connection, String gestione, LocalDate dataCollo, String serCollo, Integer numCollo, String codJfas, String customPrefissoEan) throws Exception {
|
||||
|
||||
CallableStatement cs = connection.prepareCall("{call dbo.NextIdBarcodeUl(?, ?, ?, ?, ?, ?)}");
|
||||
cs.setString(1, gestione);
|
||||
@@ -56,7 +56,7 @@ public class PackagesRules extends QueryRules {
|
||||
cs.execute();
|
||||
Integer numBarcode = cs.getInt(6);
|
||||
cs.close();
|
||||
String sql = Query.format("SELECT dbo.f_suggestBarcodeUl(%s,%s,%s,%s,%s,%s,%s)", gestione, UtilityLocalDate.localDateToDate(dataCollo), serCollo, codJfas, numCollo, null, numBarcode);
|
||||
String sql = Query.format("SELECT dbo.f_suggestBarcodeUl(%s,%s,%s,%s,%s,%s,%s)", gestione, UtilityLocalDate.localDateToDate(dataCollo), serCollo, codJfas, numCollo, customPrefissoEan, numBarcode);
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package it.integry.ems.rules.completing;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.entity.DtbOrdt;
|
||||
import it.integry.ems_model.entity.PtbPrevn;
|
||||
@@ -9,8 +9,6 @@ import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
|
||||
import java.sql.Statement;
|
||||
|
||||
public class PreventRules extends QueryRules {
|
||||
@@ -58,7 +56,7 @@ public class PreventRules extends QueryRules {
|
||||
"SELECT rif_ord " +
|
||||
"FROM dtb_ordt " +
|
||||
" WHERE gestione = " + UtilityDB.valueToString(entity.getGestione()) + " AND " +
|
||||
" data_ord = " + UtilityDB.valueDateToString(entity.getDataOrd(), CommonConstants.DATE_FORMAT_YMD) + " AND " +
|
||||
" data_ord = " + UtilityDB.valueToString(entity.getDataOrd()) + " AND " +
|
||||
" num_ord = " + UtilityDB.valueToString(entity.getNumOrd());
|
||||
String rifOrdOffertaOld = UtilityString.streNull((String) QueryRules.getSingleValue(conn, sql));
|
||||
|
||||
@@ -87,7 +85,7 @@ public class PreventRules extends QueryRules {
|
||||
sql =
|
||||
"UPDATE ptb_prevt " +
|
||||
" SET gestione = " + UtilityDB.valueToString(entity.getGestione()) + ", " +
|
||||
" data_ord = " + UtilityDB.valueDateToString(entity.getDataOrd(), CommonConstants.DATE_FORMAT_YMD) + ", " +
|
||||
" data_ord = " + UtilityDB.valueToString(entity.getDataOrd()) + ", " +
|
||||
" num_ord = " + UtilityDB.valueToString(entity.getNumOrd()) + " " +
|
||||
" WHERE id_offerta = " + UtilityDB.valueToString(idOfferta);
|
||||
Statement cmd = conn.createStatement();
|
||||
|
||||
@@ -1,436 +1,433 @@
|
||||
package it.integry.ems.rules.completing;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.utility.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
|
||||
import java.sql.*;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static it.integry.ems_model.config.EmsRestConstants.DATE_NULL;
|
||||
|
||||
public class ProductionsRules extends QueryRules {
|
||||
public static String completeCodJflavNew(Connection connection, String precode) throws SQLException {
|
||||
String sql = "SELECT dbo.f_suggestCodeCodJflav(" + UtilityDB.valueToString(precode) + ")";
|
||||
PreparedStatement ps = connection.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
|
||||
String codJflav = null;
|
||||
if (rs.next()) {
|
||||
codJflav = rs.getString(1);
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
return codJflav;
|
||||
}
|
||||
|
||||
public static void checkDistintaKitVendita(Connection connection, String codProd) throws Exception {
|
||||
String sql =
|
||||
"select count(*) " +
|
||||
" from mtb_aart " +
|
||||
" where articolo_composto = 'S' and esposizione_comp = 'S' and " +
|
||||
" cod_mart = " + UtilityDB.valueToString(codProd);
|
||||
PreparedStatement ps = connection.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
|
||||
Integer isKit = 0;
|
||||
if (rs.next()) {
|
||||
isKit = rs.getInt(1);
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
|
||||
if (isKit != 0) {
|
||||
throw new Exception("Impossibile associare la distinta base al prodotto " + codProd + ", perchè risulta evere un kit di vendita con esplosione dei componenti già associato.");
|
||||
}
|
||||
}
|
||||
|
||||
public static String completeDescMacchinari(Connection connection, String codMart)
|
||||
throws SQLException {
|
||||
String sql = "SELECT ISNULL(descrizione_estesa, descrizione) as desc" +
|
||||
" FROM mtb_aart WHERE cod_mart = " + UtilityDB.valueToString(codMart);
|
||||
List<HashMap<String, Object>> list = execQuery(connection, sql);
|
||||
if (list.isEmpty()) {
|
||||
return "";
|
||||
} else {
|
||||
return list.get(0).get("desc").toString();
|
||||
}
|
||||
}
|
||||
|
||||
public static String completeCodJfas(Connection connection, String codJflav) throws SQLException {
|
||||
String sql = "SELECT jtb_flav.cod_jfas " + " FROM jtb_flav"
|
||||
+ " WHERE jtb_flav.cod_jflav = '" + codJflav + "'";
|
||||
|
||||
List<HashMap<String, Object>> list = execQuery(connection, sql);
|
||||
if (list.isEmpty()) {
|
||||
return null;
|
||||
} else if (UtilityString.isNullOrEmpty(list.get(0).get("cod_jfas"))) {
|
||||
return null;
|
||||
} else {
|
||||
return list.get(0).get("cod_jfas").toString();
|
||||
}
|
||||
}
|
||||
|
||||
public static String completeCostoOra(Connection connection, String tipoOrelav, JtbRLavt jtbRLavt) throws SQLException {
|
||||
// if("O".equals(tipoOrelav))
|
||||
// return jtbRLavt.getc
|
||||
// else if("S".equals(tipoOrelav))
|
||||
// return
|
||||
// else if("V".equals(tipoOrelav))
|
||||
// return
|
||||
return null;
|
||||
}
|
||||
|
||||
public static BigDecimal completeOre(Connection connection, JtbRLavr jtbRLavr) {
|
||||
BigDecimal ore = BigDecimal.ZERO;
|
||||
|
||||
LocalDateTime daOra = jtbRLavr.getDaOra();
|
||||
LocalDateTime aOra = jtbRLavr.getaOra();
|
||||
|
||||
/*FABIO (21-09-2018): ho dovuto gestire DATR_NULL = 01/01/1900 00:00:00, perchè da PB pur passando NULL veniva sempre
|
||||
impostato 01/01/1900 00:00:00 nella classe e quindi tutte le regole che lavorano sul NULL partivano comunque e a
|
||||
CARELLI avevano la necessità di poter modificare direttamente dalla gestione dei rapportini di WINGEST per manutenzione.
|
||||
todo Dobbiamo capire come mai accade ciò, ma credo sia un problema comune. */
|
||||
if (!daOra.equals(EmsRestConstants.LOCAL_DATE_TIME_NULL) && !aOra.equals(EmsRestConstants.LOCAL_DATE_TIME_NULL)) {
|
||||
Duration diff = Duration.between(daOra, aOra);
|
||||
|
||||
// Ore intere
|
||||
long minute = diff.toMinutes();
|
||||
ore = BigDecimal.valueOf(minute / 60);
|
||||
//ore = diff.divide(dividendo, 2, RoundingMode.HALF_UP);
|
||||
}
|
||||
|
||||
return ore;
|
||||
}
|
||||
|
||||
public static String completeFlagAutorizza(Connection connection, String codJcau) throws SQLException {
|
||||
String flagRichiediAutor = "", flagAutorizza = "";
|
||||
String query = "SELECT flag_richiedi_autoriz FROM jtb_caus_eventi WHERE cod_jcau = '" + codJcau + "'";
|
||||
PreparedStatement ps = connection.prepareStatement(query);
|
||||
ResultSet res = ps.executeQuery();
|
||||
if (res.next()) {
|
||||
flagRichiediAutor = res.getString("flag_richiedi_autoriz");
|
||||
}
|
||||
res.close();
|
||||
ps.close();
|
||||
if (("N").equals(flagRichiediAutor)) {
|
||||
flagAutorizza = "S";
|
||||
} else {
|
||||
flagAutorizza = "N";
|
||||
}
|
||||
return flagAutorizza;
|
||||
}
|
||||
|
||||
//TODO da finire
|
||||
public static void completeAutorizzazione(Connection connection, JtbFlav jtbFlav,
|
||||
JtbFlavEventi jtbFlavEventi) throws SQLException {
|
||||
/*
|
||||
String query = "SELECT tipo_evento, flag_ripeti FROM jtb_caus_eventi WHERE cod_jcau = '" + jtbFlavEventi.getCodJcau() + "'";
|
||||
PreparedStatement ps = connection.prepareStatement(query);
|
||||
ResultSet res = ps.executeQuery();
|
||||
String tipoEvento, flagRipeti;
|
||||
if(res.next()){
|
||||
tipoEvento = res.getString("tipo_evento");
|
||||
flagRipeti = res.getString("flag_ripeti");
|
||||
}
|
||||
res.close();ps.close();
|
||||
|
||||
if("INIZIO LAVORO".equals(tipoEvento)){
|
||||
jtbFlav.setDataInizLav(jtbFlavEventi.getDataEvento());
|
||||
} else if("ASSUNZIONE".equals(tipoEvento)){
|
||||
jtbFlav.setDataAssunz(jtbFlavEventi.getDataEvento());
|
||||
} else if("FINE LAVORO".equals(tipoEvento)){
|
||||
jtbFlav.setDataFineLavoro(jtbFlavEventi.getDataEvento());
|
||||
} else if("VARIAZIONE PAGA BASE".equals(tipoEvento)){
|
||||
if ("S".equals(jtbFlavEventi.getFlagAutorizza())) {
|
||||
valore = jtbFlav.getCostoOrd() + getValPagaBase(ai_rowID);
|
||||
} else {
|
||||
if (lb_existRow) {
|
||||
valore = jtbFlav.getCostoOrd() - getValPagaBase(ai_rowID);
|
||||
} else {
|
||||
valore = jtbFlav.getCostoOrd();
|
||||
}
|
||||
}
|
||||
jtbFlav.setCostoOrd(valore);
|
||||
} else if("VARIAZIONE INDENNITA".equals(tipoEvento)){
|
||||
if ("S".equals(jtbFlavEventi.getFlagAutorizza())) {
|
||||
valore = jtbFlav.getIndennita() + getValIndennita(ai_rowID);
|
||||
} else {
|
||||
if (lb_existRow){
|
||||
valore = jtbFlav.getIndennita() - getValIndennita(ai_rowID);
|
||||
} else {
|
||||
valore = jtbFlav.getIndennita();
|
||||
}
|
||||
}
|
||||
|
||||
jtbFlav.setIndennita(valore);
|
||||
}
|
||||
// jtbCausFlav.setRipetiEvento(ls_flagRipeti);*/
|
||||
}
|
||||
|
||||
public static String completeCausaleTrasp(String gestione) {
|
||||
if ("A".equals(gestione)) {
|
||||
return "ACQUISTO";
|
||||
} else if ("V".equals(gestione)) {
|
||||
return "VENDITA";
|
||||
} else if ("L".equals(gestione)) {
|
||||
return "LAVORAZIONE";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String completePorto(Connection connection, String codAnag) throws SQLException {
|
||||
String sql = "SELECT vtb_clie.porto FROM vtb_clie "
|
||||
+ " WHERE vtb_clie.cod_anag = " + UtilityDB.valueToString(codAnag);
|
||||
PreparedStatement ps = connection.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
String porto = null;
|
||||
if (rs.next()) {
|
||||
porto = rs.getString(1);
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
return porto;
|
||||
}
|
||||
|
||||
/*public static List<HashMap<String, Object>> completeSconto(
|
||||
Connection connection, String codAnag, String field)
|
||||
throws SQLException {
|
||||
String sql = "SELECT vtb_clie." + field + " FROM vtb_clie "
|
||||
+ " WHERE vtb_clie.cod_anag = '" + codAnag + "'";
|
||||
return execQuery(connection, sql);
|
||||
}*/
|
||||
|
||||
public static String completeMezzo(Connection connection, String codAnag) throws SQLException {
|
||||
String sql = "SELECT vtb_clie.mezzo FROM vtb_clie "
|
||||
+ " WHERE vtb_clie.cod_anag = " + UtilityDB.valueToString(codAnag);
|
||||
PreparedStatement ps = connection.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
String mezzo = null;
|
||||
if (rs.next()) {
|
||||
mezzo = rs.getString(1);
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
return mezzo;
|
||||
}
|
||||
|
||||
public static String completeCodLingua(Connection connection, String codAnag) throws SQLException {
|
||||
String sql = "SELECT case when gtb_anag.nazione is null then (select cod_lingua from azienda inner join gtb_nazi on azienda.nazione = gtb_nazi.nazione) else gtb_nazi.cod_lingua end " +
|
||||
" FROM gtb_anag left outer join gtb_nazi on gtb_anag.nazione = gtb_nazi.nazione " +
|
||||
" left outer join gtb_lingue on gtb_nazi.cod_lingua = gtb_lingue.cod_lingua " +
|
||||
" WHERE gtb_anag.cod_anag = " + UtilityDB.valueToString(codAnag);
|
||||
PreparedStatement ps = connection.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
String codLingua = null;
|
||||
if (rs.next()) {
|
||||
codLingua = rs.getString(1);
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
return codLingua;
|
||||
}
|
||||
|
||||
public static Integer completeNumOrdWeb(Connection connection, String serie,
|
||||
String gestione, Date dataOrd) throws Exception {
|
||||
|
||||
Short anno = new Short(new SimpleDateFormat("yyyy").format(dataOrd));
|
||||
CallableStatement cs = connection.prepareCall("{call dbo.NextNumOrdWeb(?, ?, ?, ?)}");
|
||||
cs.setString(1, serie);
|
||||
cs.setString(2, gestione);
|
||||
cs.setShort(3, anno);
|
||||
cs.setInt(4, 0);
|
||||
cs.registerOutParameter(4, Types.INTEGER);
|
||||
cs.execute();
|
||||
Integer numOrd = cs.getInt(4);
|
||||
return numOrd;
|
||||
}
|
||||
|
||||
public static Integer completeRigaOrdWeb(Connection connection,
|
||||
String gestione, Date dataOrd, Integer numOrd, String serie)
|
||||
throws SQLException {
|
||||
String sql = "SELECT IsNull(max(riga_ord), 0) as riga "
|
||||
+ " FROM wdtb_ordr WHERE gestione = '" + gestione + "' "
|
||||
+ " AND data_ord = '" + new SimpleDateFormat(CommonConstants.DATETIME_FORMAT_YMD).format(dataOrd) + "' "
|
||||
+ " AND num_ord = " + numOrd + " AND serie = '" + serie + "'";
|
||||
List<HashMap<String, Object>> list = execQuery(connection, sql);
|
||||
if (list.isEmpty()) {
|
||||
return new Integer("0");
|
||||
} else {
|
||||
return new Integer(list.get(0).get("riga").toString()) + 1;
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
||||
//RosannaR 08/02/17 spostata nelle regole generiche su documenti e ordini
|
||||
|
||||
public static BigDecimal completeValUnt(Connection conn, WdtbOrdr row) throws SQLException {
|
||||
Double cambioDiviCont = completeCambioDiviCont(conn);
|
||||
|
||||
String query;
|
||||
Double valUnt = new Double(0);
|
||||
|
||||
String listino = row.getListino();
|
||||
String gestione = row.getGestione();
|
||||
String codMart = row.getCodMart();
|
||||
String codCol = row.getCodCol();
|
||||
String codTagl = row.getCodTagl();
|
||||
// Date dataOrd = row.getDataOrd();
|
||||
Double rapConv = row.getRapConv();
|
||||
|
||||
String applName = getApplicationName(conn);
|
||||
if (ApplicationName.WINGEST.toString().equals(applName)) {
|
||||
// ACQUISIZIONE PREZZO VENDITA
|
||||
if ("V".equals(gestione)) {
|
||||
if (listino == null) {
|
||||
// SE IL LISTINO E' NUL ALLORA IL PREZZO DEVE ESSERE PRESO DALL'ULTIMO PREZZO DI VENDITA
|
||||
query = "SELECT val_ult_scar FROM mtb_aart WHERE cod_mart = "
|
||||
+ UtilityDB.valueToString(codMart);
|
||||
|
||||
List<HashMap<String, String>> res = execQuery(conn, query);
|
||||
Double valUntScar = Double.valueOf(res.get(0).get("val_ult_scar").toString());
|
||||
valUnt = valUntScar * rapConv * cambioDiviCont;
|
||||
valUnt = IntegerUtility.round(valUnt, EmsRestConstants.cifreDecMax);
|
||||
} else {
|
||||
}
|
||||
} else if ("A".equals(gestione)) {
|
||||
} else if ("L".equals(gestione)) {
|
||||
}
|
||||
} else if (ApplicationName.TEXTILES.toString().equals(applName)) {
|
||||
if (CommonConstants.ULTC.equals(listino)){
|
||||
// ACQUISIZIONE COSTO ULTIMO
|
||||
// getCostoUltimo(conn, codMart, dataOrd, codMdep);
|
||||
// valUnt = InfoCosti.getCostoUltimo() * rapConv;
|
||||
return BigDecimal.ONE;
|
||||
}else if (CommonConstants.CMPPF.equals(listino)) {
|
||||
// COSTO DA ANAGRAFICA
|
||||
// calcCostoArticolo(getProfileDB(), codMart, codCol, codTagl, cambioDiviCont);
|
||||
// valUnt = InfoCosti.getCostoUltimo() * rapConv;
|
||||
return BigDecimal.ONE;
|
||||
}else{
|
||||
// ACQUISIZIONE PREZZO DI VENDITA
|
||||
if ("V".equals(gestione)) {
|
||||
BigDecimal przVend = BigDecimal.ZERO;
|
||||
String sql = "select dbo.f_CalcPrzTextiles("+UtilityDB.valueToString(codMart)+", "+
|
||||
UtilityDB.valueToString(codCol) +", "+ UtilityDB.valueToString(codTagl) + ", " +
|
||||
UtilityDB.valueToString(listino) + ", 'N') as prz_vend";
|
||||
PreparedStatement ps = conn.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
if(rs.next()){
|
||||
przVend = rs.getBigDecimal("prz_vend");
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
|
||||
return przVend.multiply(BigDecimal.valueOf(rapConv));
|
||||
}
|
||||
}
|
||||
}
|
||||
row.setValUnt(BigDecimal.valueOf(valUnt));
|
||||
return BigDecimal.valueOf(valUnt);
|
||||
}
|
||||
*/
|
||||
|
||||
public static LocalDateTime recalcDataRapp(LocalDate dataLav, LocalDateTime dateTime) {
|
||||
|
||||
/*FABIO (21-09-2018): ho dovuto gestire DATR_NULL = 01/01/1900 00:00:00, perchè da PB pur passando NULL veniva sempre
|
||||
impostato 01/01/1900 00:00:00 nella classe e quindi tutte le regole che lavorano sul NULL partivano comunque e a
|
||||
CARELLI avevano la necessità di poter modificare direttamente dalla gestione dei rapportini di WINGEST per manutenzione.
|
||||
todo Dobbiamo capire come mai accade ciò, ma credo sia un problema comune. */
|
||||
if (dateTime != EmsRestConstants.LOCAL_DATE_TIME_NULL) {
|
||||
dateTime = dataLav.atStartOfDay().plusHours(dateTime.getHour())
|
||||
.plusMinutes(dateTime.getMinute())
|
||||
.plusSeconds(dateTime.getSecond());
|
||||
}
|
||||
|
||||
return dateTime;
|
||||
}
|
||||
|
||||
public static void checkCanCloseOrder(Connection connection, DtbOrdt dtbOrdt) throws Exception {
|
||||
String sql = Query.format(
|
||||
"WITH steps AS (SELECT DISTINCT gestione,\n" +
|
||||
" data_ord,\n" +
|
||||
" num_ord,\n" +
|
||||
" MAX(id_step)\n" +
|
||||
" OVER (PARTITION BY gestione, data_ord, num_ord, id_riga ORDER BY id_riga) AS id_step,\n" +
|
||||
" id_riga\n" +
|
||||
" FROM dtb_ord_steps\n" +
|
||||
" WHERE gestione = %s\n" +
|
||||
" AND data_ord = %s\n" +
|
||||
" AND num_ord = %s\n" +
|
||||
" AND cod_jfas <> %s)\n" +
|
||||
"SELECT dos.gestione,\n" +
|
||||
" dos.data_ord,\n" +
|
||||
" dos.num_ord,\n" +
|
||||
" dos.id_step,\n" +
|
||||
" dos.id_riga,\n" +
|
||||
" dos.cod_jfas,\n" +
|
||||
" dos.data_iniz,\n" +
|
||||
" dos.data_fine,\n" +
|
||||
" dos.qta_prod,\n" +
|
||||
" dos.qta_allocata,\n" +
|
||||
" dos.descrizione_attivita,\n" +
|
||||
" dos.note,\n" +
|
||||
" dos.qta_trasferite,\n" +
|
||||
" dos.qta_scartate,\n" +
|
||||
" dos.qta_in_prod,\n" +
|
||||
" dos.qta_disp,\n" +
|
||||
" dos.qta_immesse,\n" +
|
||||
" dos.qta_disp_immessa,\n" +
|
||||
" dos.cod_mdep,\n" +
|
||||
" dos.cod_dtip,\n" +
|
||||
" dos.cod_anag,\n" +
|
||||
" dos.data_doc,\n" +
|
||||
" dos.ser_doc,\n" +
|
||||
" dos.num_doc,\n" +
|
||||
" dos.id_riga_doc,\n" +
|
||||
" dos.num_fase,\n" +
|
||||
" dos.flag_tipo_tempo,\n" +
|
||||
" dos.hr_time,\n" +
|
||||
" dos.hr_num,\n" +
|
||||
" dos.qta_lav,\n" +
|
||||
" dos.unt_mis_lav,\n" +
|
||||
" dos.rap_conv_lav,\n" +
|
||||
" dos.cod_prod_pri,\n" +
|
||||
" dos.activity_id,\n" +
|
||||
" dos.flag_step_attivo\n" +
|
||||
"FROM dtb_ord_steps dos\n" +
|
||||
" INNER JOIN steps ON dos.gestione = steps.gestione AND dos.data_ord = steps.data_ord AND\n" +
|
||||
" dos.num_ord = steps.num_ord AND dos.id_step = steps.id_step AND\n" +
|
||||
" dos.id_riga = steps.id_riga\n" +
|
||||
"WHERE dos.data_iniz IS NOT NULL\n" +
|
||||
" AND (dos.data_fine IS NULL OR dos.flag_step_attivo = 'S')\n" +
|
||||
"ORDER BY dos.id_riga",
|
||||
dtbOrdt.getGestione(),
|
||||
dtbOrdt.getDataOrd(),
|
||||
dtbOrdt.getNumOrd(),
|
||||
dtbOrdt.getDtbOrdSteps().get(0).getCodJfas()
|
||||
);
|
||||
|
||||
List<DtbOrdSteps> ordSteps = UtilityDB.executeSimpleQueryDTO(connection, sql, DtbOrdSteps.class);
|
||||
|
||||
if (ordSteps == null || ordSteps.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
String message = String.format(
|
||||
"Impossibile chiudere un ordine con fasi aperte. Fasi aperte:\n%s\n",
|
||||
ordSteps.stream().map(DtbOrdSteps::getCodJfas).collect(Collectors.joining("\n"))
|
||||
);
|
||||
|
||||
throw new Exception(message);
|
||||
}
|
||||
package it.integry.ems.rules.completing;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.*;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ProductionsRules extends QueryRules {
|
||||
public static String completeCodJflavNew(Connection connection, String precode) throws SQLException {
|
||||
String sql = "SELECT dbo.f_suggestCodeCodJflav(" + UtilityDB.valueToString(precode) + ")";
|
||||
PreparedStatement ps = connection.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
|
||||
String codJflav = null;
|
||||
if (rs.next()) {
|
||||
codJflav = rs.getString(1);
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
return codJflav;
|
||||
}
|
||||
|
||||
public static void checkDistintaKitVendita(Connection connection, String codProd) throws Exception {
|
||||
String sql =
|
||||
"select count(*) " +
|
||||
" from mtb_aart " +
|
||||
" where articolo_composto = 'S' and esposizione_comp = 'S' and " +
|
||||
" cod_mart = " + UtilityDB.valueToString(codProd);
|
||||
PreparedStatement ps = connection.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
|
||||
Integer isKit = 0;
|
||||
if (rs.next()) {
|
||||
isKit = rs.getInt(1);
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
|
||||
if (isKit != 0) {
|
||||
throw new Exception("Impossibile associare la distinta base al prodotto " + codProd + ", perchè risulta evere un kit di vendita con esplosione dei componenti già associato.");
|
||||
}
|
||||
}
|
||||
|
||||
public static String completeDescMacchinari(Connection connection, String codMart)
|
||||
throws SQLException {
|
||||
String sql = "SELECT ISNULL(descrizione_estesa, descrizione) as desc" +
|
||||
" FROM mtb_aart WHERE cod_mart = " + UtilityDB.valueToString(codMart);
|
||||
List<HashMap<String, Object>> list = execQuery(connection, sql);
|
||||
if (list.isEmpty()) {
|
||||
return "";
|
||||
} else {
|
||||
return list.get(0).get("desc").toString();
|
||||
}
|
||||
}
|
||||
|
||||
public static String completeCodJfas(Connection connection, String codJflav) throws SQLException {
|
||||
String sql = "SELECT jtb_flav.cod_jfas " + " FROM jtb_flav"
|
||||
+ " WHERE jtb_flav.cod_jflav = '" + codJflav + "'";
|
||||
|
||||
List<HashMap<String, Object>> list = execQuery(connection, sql);
|
||||
if (list.isEmpty()) {
|
||||
return null;
|
||||
} else if (UtilityString.isNullOrEmpty(list.get(0).get("cod_jfas"))) {
|
||||
return null;
|
||||
} else {
|
||||
return list.get(0).get("cod_jfas").toString();
|
||||
}
|
||||
}
|
||||
|
||||
public static String completeCostoOra(Connection connection, String tipoOrelav, JtbRLavt jtbRLavt) throws SQLException {
|
||||
// if("O".equals(tipoOrelav))
|
||||
// return jtbRLavt.getc
|
||||
// else if("S".equals(tipoOrelav))
|
||||
// return
|
||||
// else if("V".equals(tipoOrelav))
|
||||
// return
|
||||
return null;
|
||||
}
|
||||
|
||||
public static BigDecimal completeOre(Connection connection, JtbRLavr jtbRLavr) {
|
||||
BigDecimal ore = BigDecimal.ZERO;
|
||||
|
||||
LocalDateTime daOra = jtbRLavr.getDaOra();
|
||||
LocalDateTime aOra = jtbRLavr.getaOra();
|
||||
|
||||
/*FABIO (21-09-2018): ho dovuto gestire DATR_NULL = 01/01/1900 00:00:00, perchè da PB pur passando NULL veniva sempre
|
||||
impostato 01/01/1900 00:00:00 nella classe e quindi tutte le regole che lavorano sul NULL partivano comunque e a
|
||||
CARELLI avevano la necessità di poter modificare direttamente dalla gestione dei rapportini di WINGEST per manutenzione.
|
||||
todo Dobbiamo capire come mai accade ciò, ma credo sia un problema comune. */
|
||||
if (!daOra.equals(EmsRestConstants.LOCAL_DATE_TIME_NULL) && !aOra.equals(EmsRestConstants.LOCAL_DATE_TIME_NULL)) {
|
||||
Duration diff = Duration.between(daOra, aOra);
|
||||
|
||||
// Ore intere
|
||||
long minute = diff.toMinutes();
|
||||
ore = BigDecimal.valueOf(minute / 60);
|
||||
//ore = diff.divide(dividendo, 2, RoundingMode.HALF_UP);
|
||||
}
|
||||
|
||||
return ore;
|
||||
}
|
||||
|
||||
public static String completeFlagAutorizza(Connection connection, String codJcau) throws SQLException {
|
||||
String flagRichiediAutor = "", flagAutorizza = "";
|
||||
String query = "SELECT flag_richiedi_autoriz FROM jtb_caus_eventi WHERE cod_jcau = '" + codJcau + "'";
|
||||
PreparedStatement ps = connection.prepareStatement(query);
|
||||
ResultSet res = ps.executeQuery();
|
||||
if (res.next()) {
|
||||
flagRichiediAutor = res.getString("flag_richiedi_autoriz");
|
||||
}
|
||||
res.close();
|
||||
ps.close();
|
||||
if (("N").equals(flagRichiediAutor)) {
|
||||
flagAutorizza = "S";
|
||||
} else {
|
||||
flagAutorizza = "N";
|
||||
}
|
||||
return flagAutorizza;
|
||||
}
|
||||
|
||||
//TODO da finire
|
||||
public static void completeAutorizzazione(Connection connection, JtbFlav jtbFlav,
|
||||
JtbFlavEventi jtbFlavEventi) throws SQLException {
|
||||
/*
|
||||
String query = "SELECT tipo_evento, flag_ripeti FROM jtb_caus_eventi WHERE cod_jcau = '" + jtbFlavEventi.getCodJcau() + "'";
|
||||
PreparedStatement ps = connection.prepareStatement(query);
|
||||
ResultSet res = ps.executeQuery();
|
||||
String tipoEvento, flagRipeti;
|
||||
if(res.next()){
|
||||
tipoEvento = res.getString("tipo_evento");
|
||||
flagRipeti = res.getString("flag_ripeti");
|
||||
}
|
||||
res.close();ps.close();
|
||||
|
||||
if("INIZIO LAVORO".equals(tipoEvento)){
|
||||
jtbFlav.setDataInizLav(jtbFlavEventi.getDataEvento());
|
||||
} else if("ASSUNZIONE".equals(tipoEvento)){
|
||||
jtbFlav.setDataAssunz(jtbFlavEventi.getDataEvento());
|
||||
} else if("FINE LAVORO".equals(tipoEvento)){
|
||||
jtbFlav.setDataFineLavoro(jtbFlavEventi.getDataEvento());
|
||||
} else if("VARIAZIONE PAGA BASE".equals(tipoEvento)){
|
||||
if ("S".equals(jtbFlavEventi.getFlagAutorizza())) {
|
||||
valore = jtbFlav.getCostoOrd() + getValPagaBase(ai_rowID);
|
||||
} else {
|
||||
if (lb_existRow) {
|
||||
valore = jtbFlav.getCostoOrd() - getValPagaBase(ai_rowID);
|
||||
} else {
|
||||
valore = jtbFlav.getCostoOrd();
|
||||
}
|
||||
}
|
||||
jtbFlav.setCostoOrd(valore);
|
||||
} else if("VARIAZIONE INDENNITA".equals(tipoEvento)){
|
||||
if ("S".equals(jtbFlavEventi.getFlagAutorizza())) {
|
||||
valore = jtbFlav.getIndennita() + getValIndennita(ai_rowID);
|
||||
} else {
|
||||
if (lb_existRow){
|
||||
valore = jtbFlav.getIndennita() - getValIndennita(ai_rowID);
|
||||
} else {
|
||||
valore = jtbFlav.getIndennita();
|
||||
}
|
||||
}
|
||||
|
||||
jtbFlav.setIndennita(valore);
|
||||
}
|
||||
// jtbCausFlav.setRipetiEvento(ls_flagRipeti);*/
|
||||
}
|
||||
|
||||
public static String completeCausaleTrasp(String gestione) {
|
||||
if ("A".equals(gestione)) {
|
||||
return "ACQUISTO";
|
||||
} else if ("V".equals(gestione)) {
|
||||
return "VENDITA";
|
||||
} else if ("L".equals(gestione)) {
|
||||
return "LAVORAZIONE";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String completePorto(Connection connection, String codAnag) throws SQLException {
|
||||
String sql = "SELECT vtb_clie.porto FROM vtb_clie "
|
||||
+ " WHERE vtb_clie.cod_anag = " + UtilityDB.valueToString(codAnag);
|
||||
PreparedStatement ps = connection.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
String porto = null;
|
||||
if (rs.next()) {
|
||||
porto = rs.getString(1);
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
return porto;
|
||||
}
|
||||
|
||||
/*public static List<HashMap<String, Object>> completeSconto(
|
||||
Connection connection, String codAnag, String field)
|
||||
throws SQLException {
|
||||
String sql = "SELECT vtb_clie." + field + " FROM vtb_clie "
|
||||
+ " WHERE vtb_clie.cod_anag = '" + codAnag + "'";
|
||||
return execQuery(connection, sql);
|
||||
}*/
|
||||
|
||||
public static String completeMezzo(Connection connection, String codAnag) throws SQLException {
|
||||
String sql = "SELECT vtb_clie.mezzo FROM vtb_clie "
|
||||
+ " WHERE vtb_clie.cod_anag = " + UtilityDB.valueToString(codAnag);
|
||||
PreparedStatement ps = connection.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
String mezzo = null;
|
||||
if (rs.next()) {
|
||||
mezzo = rs.getString(1);
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
return mezzo;
|
||||
}
|
||||
|
||||
public static String completeCodLingua(Connection connection, String codAnag) throws SQLException {
|
||||
String sql = "SELECT case when gtb_anag.nazione is null then (select cod_lingua from azienda inner join gtb_nazi on azienda.nazione = gtb_nazi.nazione) else gtb_nazi.cod_lingua end " +
|
||||
" FROM gtb_anag left outer join gtb_nazi on gtb_anag.nazione = gtb_nazi.nazione " +
|
||||
" left outer join gtb_lingue on gtb_nazi.cod_lingua = gtb_lingue.cod_lingua " +
|
||||
" WHERE gtb_anag.cod_anag = " + UtilityDB.valueToString(codAnag);
|
||||
PreparedStatement ps = connection.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
String codLingua = null;
|
||||
if (rs.next()) {
|
||||
codLingua = rs.getString(1);
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
return codLingua;
|
||||
}
|
||||
|
||||
public static Integer completeNumOrdWeb(Connection connection, String serie,
|
||||
String gestione, LocalDate dataOrd) throws Exception {
|
||||
|
||||
Short anno = (short) dataOrd.getYear();
|
||||
CallableStatement cs = connection.prepareCall("{call dbo.NextNumOrdWeb(?, ?, ?, ?)}");
|
||||
cs.setString(1, serie);
|
||||
cs.setString(2, gestione);
|
||||
cs.setShort(3, anno);
|
||||
cs.setInt(4, 0);
|
||||
cs.registerOutParameter(4, Types.INTEGER);
|
||||
cs.execute();
|
||||
Integer numOrd = cs.getInt(4);
|
||||
return numOrd;
|
||||
}
|
||||
|
||||
public static Integer completeRigaOrdWeb(Connection connection,
|
||||
String gestione, Date dataOrd, Integer numOrd, String serie)
|
||||
throws SQLException {
|
||||
String sql = "SELECT IsNull(max(riga_ord), 0) as riga "
|
||||
+ " FROM wdtb_ordr WHERE gestione = '" + gestione + "' "
|
||||
+ " AND data_ord = '" + new SimpleDateFormat(CommonConstants.DATETIME_FORMAT_YMD).format(dataOrd) + "' "
|
||||
+ " AND num_ord = " + numOrd + " AND serie = '" + serie + "'";
|
||||
List<HashMap<String, Object>> list = execQuery(connection, sql);
|
||||
if (list.isEmpty()) {
|
||||
return new Integer("0");
|
||||
} else {
|
||||
return new Integer(list.get(0).get("riga").toString()) + 1;
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
||||
//RosannaR 08/02/17 spostata nelle regole generiche su documenti e ordini
|
||||
|
||||
public static BigDecimal completeValUnt(Connection conn, WdtbOrdr row) throws SQLException {
|
||||
Double cambioDiviCont = completeCambioDiviCont(conn);
|
||||
|
||||
String query;
|
||||
Double valUnt = new Double(0);
|
||||
|
||||
String listino = row.getListino();
|
||||
String gestione = row.getGestione();
|
||||
String codMart = row.getCodMart();
|
||||
String codCol = row.getCodCol();
|
||||
String codTagl = row.getCodTagl();
|
||||
// Date dataOrd = row.getDataOrd();
|
||||
Double rapConv = row.getRapConv();
|
||||
|
||||
String applName = getApplicationName(conn);
|
||||
if (ApplicationName.WINGEST.toString().equals(applName)) {
|
||||
// ACQUISIZIONE PREZZO VENDITA
|
||||
if ("V".equals(gestione)) {
|
||||
if (listino == null) {
|
||||
// SE IL LISTINO E' NUL ALLORA IL PREZZO DEVE ESSERE PRESO DALL'ULTIMO PREZZO DI VENDITA
|
||||
query = "SELECT val_ult_scar FROM mtb_aart WHERE cod_mart = "
|
||||
+ UtilityDB.valueToString(codMart);
|
||||
|
||||
List<HashMap<String, String>> res = execQuery(conn, query);
|
||||
Double valUntScar = Double.valueOf(res.get(0).get("val_ult_scar").toString());
|
||||
valUnt = valUntScar * rapConv * cambioDiviCont;
|
||||
valUnt = IntegerUtility.round(valUnt, EmsRestConstants.cifreDecMax);
|
||||
} else {
|
||||
}
|
||||
} else if ("A".equals(gestione)) {
|
||||
} else if ("L".equals(gestione)) {
|
||||
}
|
||||
} else if (ApplicationName.TEXTILES.toString().equals(applName)) {
|
||||
if (CommonConstants.ULTC.equals(listino)){
|
||||
// ACQUISIZIONE COSTO ULTIMO
|
||||
// getCostoUltimo(conn, codMart, dataOrd, codMdep);
|
||||
// valUnt = InfoCosti.getCostoUltimo() * rapConv;
|
||||
return BigDecimal.ONE;
|
||||
}else if (CommonConstants.CMPPF.equals(listino)) {
|
||||
// COSTO DA ANAGRAFICA
|
||||
// calcCostoArticolo(getProfileDB(), codMart, codCol, codTagl, cambioDiviCont);
|
||||
// valUnt = InfoCosti.getCostoUltimo() * rapConv;
|
||||
return BigDecimal.ONE;
|
||||
}else{
|
||||
// ACQUISIZIONE PREZZO DI VENDITA
|
||||
if ("V".equals(gestione)) {
|
||||
BigDecimal przVend = BigDecimal.ZERO;
|
||||
String sql = "select dbo.f_CalcPrzTextiles("+UtilityDB.valueToString(codMart)+", "+
|
||||
UtilityDB.valueToString(codCol) +", "+ UtilityDB.valueToString(codTagl) + ", " +
|
||||
UtilityDB.valueToString(listino) + ", 'N') as prz_vend";
|
||||
PreparedStatement ps = conn.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
if(rs.next()){
|
||||
przVend = rs.getBigDecimal("prz_vend");
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
|
||||
return przVend.multiply(BigDecimal.valueOf(rapConv));
|
||||
}
|
||||
}
|
||||
}
|
||||
row.setValUnt(BigDecimal.valueOf(valUnt));
|
||||
return BigDecimal.valueOf(valUnt);
|
||||
}
|
||||
*/
|
||||
|
||||
public static LocalDateTime recalcDataRapp(LocalDate dataLav, LocalDateTime dateTime) {
|
||||
|
||||
/*FABIO (21-09-2018): ho dovuto gestire DATR_NULL = 01/01/1900 00:00:00, perchè da PB pur passando NULL veniva sempre
|
||||
impostato 01/01/1900 00:00:00 nella classe e quindi tutte le regole che lavorano sul NULL partivano comunque e a
|
||||
CARELLI avevano la necessità di poter modificare direttamente dalla gestione dei rapportini di WINGEST per manutenzione.
|
||||
todo Dobbiamo capire come mai accade ciò, ma credo sia un problema comune. */
|
||||
if (dateTime != EmsRestConstants.LOCAL_DATE_TIME_NULL) {
|
||||
dateTime = dataLav.atStartOfDay().plusHours(dateTime.getHour())
|
||||
.plusMinutes(dateTime.getMinute())
|
||||
.plusSeconds(dateTime.getSecond());
|
||||
}
|
||||
|
||||
return dateTime;
|
||||
}
|
||||
|
||||
public static void checkCanCloseOrder(Connection connection, DtbOrdt dtbOrdt) throws Exception {
|
||||
String sql = Query.format(
|
||||
"WITH steps AS (SELECT DISTINCT gestione,\n" +
|
||||
" data_ord,\n" +
|
||||
" num_ord,\n" +
|
||||
" MAX(id_step)\n" +
|
||||
" OVER (PARTITION BY gestione, data_ord, num_ord, id_riga ORDER BY id_riga) AS id_step,\n" +
|
||||
" id_riga\n" +
|
||||
" FROM dtb_ord_steps\n" +
|
||||
" WHERE gestione = %s\n" +
|
||||
" AND data_ord = %s\n" +
|
||||
" AND num_ord = %s\n" +
|
||||
" AND cod_jfas <> %s)\n" +
|
||||
"SELECT dos.gestione,\n" +
|
||||
" dos.data_ord,\n" +
|
||||
" dos.num_ord,\n" +
|
||||
" dos.id_step,\n" +
|
||||
" dos.id_riga,\n" +
|
||||
" dos.cod_jfas,\n" +
|
||||
" dos.data_iniz,\n" +
|
||||
" dos.data_fine,\n" +
|
||||
" dos.qta_prod,\n" +
|
||||
" dos.qta_allocata,\n" +
|
||||
" dos.descrizione_attivita,\n" +
|
||||
" dos.note,\n" +
|
||||
" dos.qta_trasferite,\n" +
|
||||
" dos.qta_scartate,\n" +
|
||||
" dos.qta_in_prod,\n" +
|
||||
" dos.qta_disp,\n" +
|
||||
" dos.qta_immesse,\n" +
|
||||
" dos.qta_disp_immessa,\n" +
|
||||
" dos.cod_mdep,\n" +
|
||||
" dos.cod_dtip,\n" +
|
||||
" dos.cod_anag,\n" +
|
||||
" dos.data_doc,\n" +
|
||||
" dos.ser_doc,\n" +
|
||||
" dos.num_doc,\n" +
|
||||
" dos.id_riga_doc,\n" +
|
||||
" dos.num_fase,\n" +
|
||||
" dos.flag_tipo_tempo,\n" +
|
||||
" dos.hr_time,\n" +
|
||||
" dos.hr_num,\n" +
|
||||
" dos.qta_lav,\n" +
|
||||
" dos.unt_mis_lav,\n" +
|
||||
" dos.rap_conv_lav,\n" +
|
||||
" dos.cod_prod_pri,\n" +
|
||||
" dos.activity_id,\n" +
|
||||
" dos.flag_step_attivo\n" +
|
||||
"FROM dtb_ord_steps dos\n" +
|
||||
" INNER JOIN steps ON dos.gestione = steps.gestione AND dos.data_ord = steps.data_ord AND\n" +
|
||||
" dos.num_ord = steps.num_ord AND dos.id_step = steps.id_step AND\n" +
|
||||
" dos.id_riga = steps.id_riga\n" +
|
||||
"WHERE dos.data_iniz IS NOT NULL\n" +
|
||||
" AND (dos.data_fine IS NULL OR dos.flag_step_attivo = 'S')\n" +
|
||||
"ORDER BY dos.id_riga",
|
||||
dtbOrdt.getGestione(),
|
||||
dtbOrdt.getDataOrd(),
|
||||
dtbOrdt.getNumOrd(),
|
||||
dtbOrdt.getDtbOrdSteps().get(0).getCodJfas()
|
||||
);
|
||||
|
||||
List<DtbOrdSteps> ordSteps = UtilityDB.executeSimpleQueryDTO(connection, sql, DtbOrdSteps.class);
|
||||
|
||||
if (ordSteps == null || ordSteps.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
String message = String.format(
|
||||
"Impossibile chiudere un ordine con fasi aperte. Fasi aperte:\n%s\n",
|
||||
ordSteps.stream().map(DtbOrdSteps::getCodJfas).collect(Collectors.joining("\n"))
|
||||
);
|
||||
|
||||
throw new Exception(message);
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,245 +1,244 @@
|
||||
package it.integry.ems.rules.completing;
|
||||
|
||||
import com.annimon.stream.Optional;
|
||||
import com.annimon.stream.Stream;
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.*;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.NumberFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class ReceiptRules extends QueryRules {
|
||||
|
||||
|
||||
public static MtbDepoCasse completeMtbDepoCasse(Connection connection, String codMdep, String codCassa) throws Exception {
|
||||
String sql = "select * from mtb_depo_casse where cod_mdep='" + codMdep + "' and cod_cassa = " + codCassa;
|
||||
|
||||
List<HashMap<String, Object>> list = execQuery(connection, sql);
|
||||
if (list.isEmpty()) {
|
||||
MtbDepoCasse casse = new MtbDepoCasse();
|
||||
casse.setCodMdep(codMdep);
|
||||
casse.setCodCassa(codCassa);
|
||||
casse.setMatricola(codCassa);
|
||||
return casse;
|
||||
} else
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void completeUntMisVend(Connection conn, NtbDoct ntbDoct) throws Exception {
|
||||
List<String> articoli =
|
||||
Stream.of(ntbDoct.getNtbDocr())
|
||||
.filter(x -> x.getUntMis() == null)
|
||||
.map(NtbDocr::getCodMart)
|
||||
.withoutNulls()
|
||||
.distinct()
|
||||
.toList();
|
||||
|
||||
if (!articoli.isEmpty()) {
|
||||
String whereCondArt = StringUtils.join(articoli, "','");
|
||||
if (!UtilityString.isNullOrEmpty(whereCondArt)) {
|
||||
whereCondArt = "lisv.cod_mart in ('" + whereCondArt + "')";
|
||||
}
|
||||
|
||||
String sql =
|
||||
"SELECT cod_mart, unt_mis_ven " +
|
||||
" FROM dbo.getListinoVendita(" + UtilityDB.valueToString(ntbDoct.getDataDoc()) + ", "
|
||||
+ UtilityDB.valueToString(ntbDoct.getCodVlis()) + ", null ) lisv ";
|
||||
|
||||
sql = UtilityDB.addwhereCond(sql, whereCondArt, true);
|
||||
List<HashMap<String, Object>> datiListino = UtilityDB.executeSimpleQuery(conn, sql);
|
||||
|
||||
if (datiListino == null) return;
|
||||
|
||||
for (String articolo : articoli) {
|
||||
Optional<HashMap<String, Object>> firstUntMis = Stream.of(datiListino)
|
||||
.filter(x -> UtilityString.equalsIgnoreCase(UtilityHashMap.getValueIfExists(x, "cod_mart"), articolo))
|
||||
.findFirst();
|
||||
|
||||
|
||||
if (firstUntMis.isPresent()) {
|
||||
String untMisVen = UtilityHashMap.getValueIfExists(firstUntMis.get(), "unt_mis_ven");
|
||||
Stream.of(ntbDoct.getNtbDocr()).filter(x -> UtilityString.equalsIgnoreCase(x.getCodMart(), articolo)).forEach(x -> {
|
||||
x.setUntMis(untMisVen);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static MtbDepoOper completeMtbDepoOper(Connection connection, String codMdep, String codOper) throws Exception {
|
||||
String sql = "select * from mtb_depo_oper where cod_mdep='" + codMdep + "' and cod_mdep_oper='" + codOper + "'";
|
||||
|
||||
List<HashMap<String, Object>> list = execQuery(connection, sql);
|
||||
if (list.isEmpty()) {
|
||||
MtbDepoOper oper = new MtbDepoOper();
|
||||
|
||||
Pattern p = Pattern.compile("^[0-9]+");
|
||||
Matcher matcher = p.matcher(codOper);
|
||||
String codBarreOp;
|
||||
if (matcher.find()) {
|
||||
NumberFormat formatter = new DecimalFormat("00");
|
||||
String s = formatter.format(Integer.parseInt(codOper));
|
||||
codBarreOp = "O" + codMdep + s;
|
||||
} else {
|
||||
codBarreOp = codOper;
|
||||
}
|
||||
oper.setCodMdep(codMdep);
|
||||
oper.setCodMdepOper(codOper);
|
||||
oper.setDescrizione("NUOVO OPERATORE");
|
||||
oper.setFlagStorno("N");
|
||||
oper.setCodBarre(codBarreOp);
|
||||
return oper;
|
||||
} else
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String completeCodMart(Connection connection, String codBarre) throws Exception {
|
||||
String sql =
|
||||
"SELECT DISTINCT mvw_barcode_det.cod_mart " +
|
||||
" FROM mvw_barcode_det, mtb_aart " +
|
||||
" WHERE ( mvw_barcode_det.cod_barre = " + UtilityDB.valueToString(codBarre) + " OR " +
|
||||
" ( LEN('" + codBarre + "') = 7 and left('" + codBarre + "', 1) = '2' and right('" + codBarre + "', 6) = cod_barre ) OR " +
|
||||
" mvw_barcode_det.cod_barre + Replicate('0', 13 - len(mvw_barcode_det.cod_barre)) = " + UtilityDB.valueToString(codBarre) + ") ";
|
||||
String codMart = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
|
||||
return codMart;
|
||||
}
|
||||
|
||||
|
||||
public static String completeCodAliq(Connection connection, String codMart) throws Exception {
|
||||
String codAliq = CommonRules.completeCodAliqSimple(connection, codMart);
|
||||
if (UtilityString.isNullOrEmpty(codAliq)) {
|
||||
String codAliqDefault = setupGest.getImportSetup(connection, "SCONTRINI", "MMPOS_SERVICES", "IVA_DEFAULT");
|
||||
codAliq = codAliqDefault;
|
||||
}
|
||||
return codAliq;
|
||||
}
|
||||
|
||||
public static String completePromozione(Connection connection, String codMart,
|
||||
String codMdep, LocalDateTime dataDoc) throws Exception {
|
||||
/*ESCLUDI_PROMO_INFORMATIVE*/
|
||||
boolean esludiPromo = setupGest.getSetupBoolean(connection, "NTB_DOCT", "PROMOZIONI", "ESCLUDI_PROMO_INFORMATIVE");
|
||||
String whereCond = "";
|
||||
if (esludiPromo) {
|
||||
whereCond = "(flag_tipologia is null or flag_tipologia <> 'I')";
|
||||
}
|
||||
|
||||
String sql =
|
||||
Query.format(
|
||||
"SELECT cod_promo " +
|
||||
" FROM dbo.getPromozioneVendita(%s, null, null, null, %s) as promo_vend , " +
|
||||
" mtb_depo WHERE promo_vend.cod_vlis = mtb_depo.cod_vlis AND " +
|
||||
" mtb_depo.cod_mdep = %s",
|
||||
dataDoc,
|
||||
codMart,
|
||||
codMdep);
|
||||
sql = UtilityDB.addwhereCond(sql, whereCond, true);
|
||||
String codPromo = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
|
||||
return codPromo;
|
||||
}
|
||||
|
||||
public static NtbTipiInca insTipiInca(Connection connection, EntityBase entity) throws Exception {
|
||||
String codMdep = null, tipoInca = null, descrPaga = null;
|
||||
|
||||
if (entity instanceof NtbDocp) {
|
||||
codMdep = ((NtbDocp) entity).getCodMdep();
|
||||
tipoInca = ((NtbDocp) entity).getTipoInca();
|
||||
descrPaga = ((NtbDocp) entity).getDescrPaga();
|
||||
} else if (entity instanceof NtbRapp) {
|
||||
codMdep = ((NtbRapp) entity).getCodMdep();
|
||||
tipoInca = ((NtbRapp) entity).getTipoInca();
|
||||
}
|
||||
|
||||
if (UtilityString.isNullOrEmpty(descrPaga)) {
|
||||
descrPaga = tipoInca;
|
||||
}
|
||||
|
||||
String sql =
|
||||
"SELECT count(*) FROM ntb_tipi_inca "
|
||||
+ "WHERE cod_mdep = " + UtilityDB.valueToString(codMdep)
|
||||
+ " AND tipo_inca = " + UtilityDB.valueToString(tipoInca);
|
||||
Integer countTipiInca = (Integer) getSingleValue(connection, sql);
|
||||
|
||||
NtbTipiInca ntbTipiInca = new NtbTipiInca();
|
||||
OperationType operationType = OperationType.NO_OP;
|
||||
ntbTipiInca.setCodMdep(codMdep);
|
||||
ntbTipiInca.setTipoInca(tipoInca);
|
||||
ntbTipiInca.setDescrizione(descrPaga);
|
||||
if (countTipiInca == 0) {
|
||||
operationType = OperationType.INSERT;
|
||||
}
|
||||
ntbTipiInca.setOperation(operationType);
|
||||
return ntbTipiInca;
|
||||
}
|
||||
|
||||
public static DtbOrdt evadiOrdine(Connection conn, NtbDocr ntbDocr) throws Exception {
|
||||
|
||||
List<DtbOrdr> righe = new ArrayList<DtbOrdr>();
|
||||
String sql = "SELECT qta_ord - qta_evasa, qta_evasa, riga_ord from dtb_ordt inner join dtb_ordr on dtb_ordt.gestione = dtb_ordr.gestione and dtb_ordt.data_ord = dtb_ordr.data_ord and dtb_ordt.num_ord = dtb_ordr.num_ord " +
|
||||
"WHERE dtb_ordr.cod_mart = " + UtilityDB.valueToString(ntbDocr.getCodMart()) + " and " +
|
||||
"dtb_ordt.num_ord = " + UtilityDB.valueToString(ntbDocr.getNumOrd()) + " and " +
|
||||
"dtb_ordt.data_ord = " + UtilityDB.valueToString(ntbDocr.getDataOrd()) + " and " +
|
||||
"dtb_ordt.flag_prz_iva = 'S' and " +
|
||||
"qta_ord > qta_evasa and " +
|
||||
"dtb_ordt.flag_sospeso = 'N'";
|
||||
|
||||
PreparedStatement ps = conn.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
|
||||
BigDecimal qtaDoc = ntbDocr.getQtaDoc();
|
||||
|
||||
while (rs.next() && qtaDoc.doubleValue() > 0) {
|
||||
BigDecimal qtaOrd = rs.getBigDecimal(1);
|
||||
BigDecimal qtaEvasa = rs.getBigDecimal(2);
|
||||
Integer rigaOrd = rs.getInt(3);
|
||||
|
||||
DtbOrdr dtbOrdr = new DtbOrdr();
|
||||
dtbOrdr.setGestione("V");
|
||||
dtbOrdr.setDataOrd(UtilityLocalDate.localDateToDate(ntbDocr.getDataOrd()));
|
||||
dtbOrdr.setNumOrd(ntbDocr.getNumOrd());
|
||||
dtbOrdr.setRigaOrd(rigaOrd);
|
||||
dtbOrdr.setOperation(OperationType.UPDATE);
|
||||
|
||||
if (qtaDoc.doubleValue() >= qtaOrd.doubleValue()) {
|
||||
dtbOrdr.setQtaEvasa(qtaEvasa.add(qtaOrd));
|
||||
qtaDoc.subtract(qtaOrd);
|
||||
} else {
|
||||
dtbOrdr.setQtaEvasa(qtaEvasa.add(qtaDoc));
|
||||
qtaDoc = BigDecimal.ZERO;
|
||||
}
|
||||
righe.add(dtbOrdr);
|
||||
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
DtbOrdt dtbOrdt = new DtbOrdt();
|
||||
dtbOrdt.setGestione("V")
|
||||
.setDataOrd(UtilityLocalDate.localDateToDate(ntbDocr.getDataOrd()))
|
||||
.setNumOrd(ntbDocr.getNumOrd())
|
||||
.setDtbOrdr(righe);
|
||||
|
||||
return dtbOrdt;
|
||||
}
|
||||
public static BigDecimal calcValScoArt(NtbDocr ntbDocr) {
|
||||
if ( ntbDocr.getNtbDocs().size() > 0 ) {
|
||||
return ntbDocr.getNtbDocs().stream().map(NtbDocs::getValSco).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
} else
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
}
|
||||
package it.integry.ems.rules.completing;
|
||||
|
||||
import com.annimon.stream.Optional;
|
||||
import com.annimon.stream.Stream;
|
||||
import it.integry.ems.sync.MultiDBTransaction.Connection;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityHashMap;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.NumberFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class ReceiptRules extends QueryRules {
|
||||
|
||||
|
||||
public static MtbDepoCasse completeMtbDepoCasse(Connection connection, String codMdep, String codCassa) throws Exception {
|
||||
String sql = "select * from mtb_depo_casse where cod_mdep='" + codMdep + "' and cod_cassa = " + codCassa;
|
||||
|
||||
List<HashMap<String, Object>> list = execQuery(connection, sql);
|
||||
if (list.isEmpty()) {
|
||||
MtbDepoCasse casse = new MtbDepoCasse();
|
||||
casse.setCodMdep(codMdep);
|
||||
casse.setCodCassa(codCassa);
|
||||
casse.setMatricola(codCassa);
|
||||
return casse;
|
||||
} else
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void completeUntMisVend(Connection conn, NtbDoct ntbDoct) throws Exception {
|
||||
List<String> articoli =
|
||||
Stream.of(ntbDoct.getNtbDocr())
|
||||
.filter(x -> x.getUntMis() == null)
|
||||
.map(NtbDocr::getCodMart)
|
||||
.withoutNulls()
|
||||
.distinct()
|
||||
.toList();
|
||||
|
||||
if (!articoli.isEmpty()) {
|
||||
String whereCondArt = StringUtils.join(articoli, "','");
|
||||
if (!UtilityString.isNullOrEmpty(whereCondArt)) {
|
||||
whereCondArt = "lisv.cod_mart in ('" + whereCondArt + "')";
|
||||
}
|
||||
|
||||
String sql =
|
||||
"SELECT cod_mart, unt_mis_ven " +
|
||||
" FROM dbo.getListinoVendita(" + UtilityDB.valueToString(ntbDoct.getDataDoc()) + ", "
|
||||
+ UtilityDB.valueToString(ntbDoct.getCodVlis()) + ", null ) lisv ";
|
||||
|
||||
sql = UtilityDB.addwhereCond(sql, whereCondArt, true);
|
||||
List<HashMap<String, Object>> datiListino = UtilityDB.executeSimpleQuery(conn, sql);
|
||||
|
||||
if (datiListino == null) return;
|
||||
|
||||
for (String articolo : articoli) {
|
||||
Optional<HashMap<String, Object>> firstUntMis = Stream.of(datiListino)
|
||||
.filter(x -> UtilityString.equalsIgnoreCase(UtilityHashMap.getValueIfExists(x, "cod_mart"), articolo))
|
||||
.findFirst();
|
||||
|
||||
|
||||
if (firstUntMis.isPresent()) {
|
||||
String untMisVen = UtilityHashMap.getValueIfExists(firstUntMis.get(), "unt_mis_ven");
|
||||
Stream.of(ntbDoct.getNtbDocr()).filter(x -> UtilityString.equalsIgnoreCase(x.getCodMart(), articolo)).forEach(x -> {
|
||||
x.setUntMis(untMisVen);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static MtbDepoOper completeMtbDepoOper(Connection connection, String codMdep, String codOper) throws Exception {
|
||||
String sql = "select * from mtb_depo_oper where cod_mdep='" + codMdep + "' and cod_mdep_oper='" + codOper + "'";
|
||||
|
||||
List<HashMap<String, Object>> list = execQuery(connection, sql);
|
||||
if (list.isEmpty()) {
|
||||
MtbDepoOper oper = new MtbDepoOper();
|
||||
|
||||
Pattern p = Pattern.compile("^[0-9]+");
|
||||
Matcher matcher = p.matcher(codOper);
|
||||
String codBarreOp;
|
||||
if (matcher.find()) {
|
||||
NumberFormat formatter = new DecimalFormat("00");
|
||||
String s = formatter.format(Integer.parseInt(codOper));
|
||||
codBarreOp = "O" + codMdep + s;
|
||||
} else {
|
||||
codBarreOp = codOper;
|
||||
}
|
||||
oper.setCodMdep(codMdep);
|
||||
oper.setCodMdepOper(codOper);
|
||||
oper.setDescrizione("NUOVO OPERATORE");
|
||||
oper.setFlagStorno("N");
|
||||
oper.setCodBarre(codBarreOp);
|
||||
return oper;
|
||||
} else
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String completeCodMart(Connection connection, String codBarre) throws Exception {
|
||||
String sql =
|
||||
"SELECT DISTINCT mvw_barcode_det.cod_mart " +
|
||||
" FROM mvw_barcode_det, mtb_aart " +
|
||||
" WHERE ( mvw_barcode_det.cod_barre = " + UtilityDB.valueToString(codBarre) + " OR " +
|
||||
" ( LEN('" + codBarre + "') = 7 and left('" + codBarre + "', 1) = '2' and right('" + codBarre + "', 6) = cod_barre ) OR " +
|
||||
" mvw_barcode_det.cod_barre + Replicate('0', 13 - len(mvw_barcode_det.cod_barre)) = " + UtilityDB.valueToString(codBarre) + ") ";
|
||||
String codMart = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
|
||||
return codMart;
|
||||
}
|
||||
|
||||
|
||||
public static String completeCodAliq(Connection connection, String codMart) throws Exception {
|
||||
String codAliq = CommonRules.completeCodAliqSimple(connection, codMart);
|
||||
if (UtilityString.isNullOrEmpty(codAliq)) {
|
||||
String codAliqDefault = setupGest.getImportSetup(connection, "SCONTRINI", "MMPOS_SERVICES", "IVA_DEFAULT");
|
||||
codAliq = codAliqDefault;
|
||||
}
|
||||
return codAliq;
|
||||
}
|
||||
|
||||
public static String completePromozione(Connection connection, String codMart,
|
||||
String codMdep, LocalDateTime dataDoc) throws Exception {
|
||||
/*ESCLUDI_PROMO_INFORMATIVE*/
|
||||
boolean esludiPromo = setupGest.getSetupBoolean(connection, "NTB_DOCT", "PROMOZIONI", "ESCLUDI_PROMO_INFORMATIVE");
|
||||
String whereCond = "";
|
||||
if (esludiPromo) {
|
||||
whereCond = "(flag_tipologia is null or flag_tipologia <> 'I')";
|
||||
}
|
||||
|
||||
String sql =
|
||||
Query.format(
|
||||
"SELECT cod_promo " +
|
||||
" FROM dbo.getPromozioneVendita(%s, null, null, null, %s) as promo_vend , " +
|
||||
" mtb_depo WHERE promo_vend.cod_vlis = mtb_depo.cod_vlis AND " +
|
||||
" mtb_depo.cod_mdep = %s",
|
||||
dataDoc,
|
||||
codMart,
|
||||
codMdep);
|
||||
sql = UtilityDB.addwhereCond(sql, whereCond, true);
|
||||
String codPromo = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(connection, sql);
|
||||
return codPromo;
|
||||
}
|
||||
|
||||
public static NtbTipiInca insTipiInca(Connection connection, EntityBase entity) throws Exception {
|
||||
String codMdep = null, tipoInca = null, descrPaga = null;
|
||||
|
||||
if (entity instanceof NtbDocp) {
|
||||
codMdep = ((NtbDocp) entity).getCodMdep();
|
||||
tipoInca = ((NtbDocp) entity).getTipoInca();
|
||||
descrPaga = ((NtbDocp) entity).getDescrPaga();
|
||||
} else if (entity instanceof NtbRapp) {
|
||||
codMdep = ((NtbRapp) entity).getCodMdep();
|
||||
tipoInca = ((NtbRapp) entity).getTipoInca();
|
||||
}
|
||||
|
||||
if (UtilityString.isNullOrEmpty(descrPaga)) {
|
||||
descrPaga = tipoInca;
|
||||
}
|
||||
|
||||
String sql =
|
||||
"SELECT count(*) FROM ntb_tipi_inca "
|
||||
+ "WHERE cod_mdep = " + UtilityDB.valueToString(codMdep)
|
||||
+ " AND tipo_inca = " + UtilityDB.valueToString(tipoInca);
|
||||
Integer countTipiInca = (Integer) getSingleValue(connection, sql);
|
||||
|
||||
NtbTipiInca ntbTipiInca = new NtbTipiInca();
|
||||
OperationType operationType = OperationType.NO_OP;
|
||||
ntbTipiInca.setCodMdep(codMdep);
|
||||
ntbTipiInca.setTipoInca(tipoInca);
|
||||
ntbTipiInca.setDescrizione(descrPaga);
|
||||
if (countTipiInca == 0) {
|
||||
operationType = OperationType.INSERT;
|
||||
}
|
||||
ntbTipiInca.setOperation(operationType);
|
||||
return ntbTipiInca;
|
||||
}
|
||||
|
||||
public static DtbOrdt evadiOrdine(Connection conn, NtbDocr ntbDocr) throws Exception {
|
||||
|
||||
List<DtbOrdr> righe = new ArrayList<DtbOrdr>();
|
||||
String sql = "SELECT qta_ord - qta_evasa, qta_evasa, riga_ord from dtb_ordt inner join dtb_ordr on dtb_ordt.gestione = dtb_ordr.gestione and dtb_ordt.data_ord = dtb_ordr.data_ord and dtb_ordt.num_ord = dtb_ordr.num_ord " +
|
||||
"WHERE dtb_ordr.cod_mart = " + UtilityDB.valueToString(ntbDocr.getCodMart()) + " and " +
|
||||
"dtb_ordt.num_ord = " + UtilityDB.valueToString(ntbDocr.getNumOrd()) + " and " +
|
||||
"dtb_ordt.data_ord = " + UtilityDB.valueToString(ntbDocr.getDataOrd()) + " and " +
|
||||
"dtb_ordt.flag_prz_iva = 'S' and " +
|
||||
"qta_ord > qta_evasa and " +
|
||||
"dtb_ordt.flag_sospeso = 'N'";
|
||||
|
||||
PreparedStatement ps = conn.prepareStatement(sql);
|
||||
ResultSet rs = ps.executeQuery();
|
||||
|
||||
BigDecimal qtaDoc = ntbDocr.getQtaDoc();
|
||||
|
||||
while (rs.next() && qtaDoc.doubleValue() > 0) {
|
||||
BigDecimal qtaOrd = rs.getBigDecimal(1);
|
||||
BigDecimal qtaEvasa = rs.getBigDecimal(2);
|
||||
Integer rigaOrd = rs.getInt(3);
|
||||
|
||||
DtbOrdr dtbOrdr = new DtbOrdr();
|
||||
dtbOrdr.setGestione("V");
|
||||
dtbOrdr.setDataOrd(ntbDocr.getDataOrd());
|
||||
dtbOrdr.setNumOrd(ntbDocr.getNumOrd());
|
||||
dtbOrdr.setRigaOrd(rigaOrd);
|
||||
dtbOrdr.setOperation(OperationType.UPDATE);
|
||||
|
||||
if (qtaDoc.doubleValue() >= qtaOrd.doubleValue()) {
|
||||
dtbOrdr.setQtaEvasa(qtaEvasa.add(qtaOrd));
|
||||
qtaDoc.subtract(qtaOrd);
|
||||
} else {
|
||||
dtbOrdr.setQtaEvasa(qtaEvasa.add(qtaDoc));
|
||||
qtaDoc = BigDecimal.ZERO;
|
||||
}
|
||||
righe.add(dtbOrdr);
|
||||
|
||||
}
|
||||
rs.close();
|
||||
ps.close();
|
||||
DtbOrdt dtbOrdt = new DtbOrdt();
|
||||
dtbOrdt.setGestione("V")
|
||||
.setDataOrd(ntbDocr.getDataOrd())
|
||||
.setNumOrd(ntbDocr.getNumOrd())
|
||||
.setDtbOrdr(righe);
|
||||
|
||||
return dtbOrdt;
|
||||
}
|
||||
public static BigDecimal calcValScoArt(NtbDocr ntbDocr) {
|
||||
if ( ntbDocr.getNtbDocs().size() > 0 ) {
|
||||
return ntbDocr.getNtbDocs().stream().map(NtbDocs::getValSco).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
} else
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,16 +3,14 @@ package it.integry.ems.rules.completing.dto;
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
public class DatiPartitaMagDTO {
|
||||
private String codMart;
|
||||
private String partitaMag;
|
||||
private String codAnag;
|
||||
private String gestione;
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
private Integer numOrd;
|
||||
private String codJfas;
|
||||
private LocalDate dataScad;
|
||||
@@ -55,11 +53,11 @@ public class DatiPartitaMagDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public DatiPartitaMagDTO setDataOrd(Date dataOrd) {
|
||||
public DatiPartitaMagDTO setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
@@ -115,7 +113,7 @@ public class DatiPartitaMagDTO {
|
||||
UtilityString.streNull(this.getPartitaMag()) + ";" +
|
||||
UtilityString.streNull(this.getCodAnag()) + ";" +
|
||||
UtilityString.streNull(this.getGestione()) + ";" +
|
||||
(this.getDataOrd() == null ? "" : new SimpleDateFormat(CommonConstants.DATE_FORMAT_YMD).format(this.getDataOrd())) + ";" +
|
||||
(this.getDataOrd() == null ? "" : CommonConstants.DATE_YMD_DASHED_FORMATTER.format(this.getDataOrd())) + ";" +
|
||||
(this.getNumOrd() == null ? "" : this.getNumOrd().toString()) + ";" +
|
||||
UtilityString.streNull(this.getCodJfas()) + ";" +
|
||||
(this.getDataScad() == null ? "" : CommonConstants.DATE_YMD_DASHED_FORMATTER.format(this.getDataScad())) + ";" +
|
||||
|
||||
@@ -7,6 +7,7 @@ import java.util.HashMap;
|
||||
public class ForeignKeyDTO {
|
||||
|
||||
public static HashMap<String, String> tableConstraintBindings = new HashMap<String, String>() {{
|
||||
put(CtbAmac.ENTITY, "Codice macchina inesistente");
|
||||
put(MtbAart.ENTITY, "Codice articolo inesistente");
|
||||
put(MtbPartitaMag.ENTITY, "Partita di magazzino inesistente");
|
||||
put(DtbDoct.ENTITY, "Documento inesistente");
|
||||
|
||||
@@ -21,6 +21,8 @@ public class InsertPartitaMagRequestDTO {
|
||||
|
||||
private Integer numOrd;
|
||||
|
||||
private LocalDate dataProd;
|
||||
|
||||
public String getCodMart() {
|
||||
return codMart;
|
||||
}
|
||||
@@ -101,4 +103,13 @@ public class InsertPartitaMagRequestDTO {
|
||||
this.numOrd = numOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public LocalDate getDataProd() {
|
||||
return dataProd;
|
||||
}
|
||||
|
||||
public InsertPartitaMagRequestDTO setDataProd(LocalDate dataProd) {
|
||||
this.dataProd = dataProd;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,22 +19,6 @@ public class TaskExecutorService {
|
||||
private static final Logger logger = LoggerFactory.getLogger(TaskExecutorService.class);
|
||||
|
||||
|
||||
public <T> List<T> executeTasksWithTimeout(List<Callable<T>> tasks, long timeout, TimeUnit unit)
|
||||
throws InterruptedException, ExecutionException, TimeoutException {
|
||||
List<T> results = new ArrayList<>();
|
||||
List<Future<T>> futures = executorService.invokeAll(tasks, timeout, unit);
|
||||
|
||||
for (Future<T> future : futures) {
|
||||
try {
|
||||
results.add(future.get(0, TimeUnit.MILLISECONDS)); // timeout immediato poiché il task dovrebbe essere già completato
|
||||
} catch (CancellationException e) {
|
||||
throw new TimeoutException("Task cancelled due to timeout");
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
public <T> T executeTask(Callable<T> tasks)
|
||||
throws InterruptedException, ExecutionException, TimeoutException {
|
||||
|
||||
@@ -69,7 +53,24 @@ public class TaskExecutorService {
|
||||
// Metodo per eseguire task senza timeout
|
||||
public <T> List<T> executeTasks(List<Callable<T>> tasks)
|
||||
throws InterruptedException, ExecutionException, TimeoutException {
|
||||
return executeTasksWithTimeout(tasks, Long.MAX_VALUE, TimeUnit.MINUTES);
|
||||
return executeTasks(tasks, true);
|
||||
}
|
||||
|
||||
public <T> List<T> executeTasks(List<Callable<T>> tasks, boolean waitForCompletion)
|
||||
throws InterruptedException, ExecutionException, TimeoutException {
|
||||
List<T> results = new ArrayList<>();
|
||||
List<Future<T>> futures = executorService.invokeAll(tasks);
|
||||
|
||||
for (Future<T> future : futures) {
|
||||
try {
|
||||
if (waitForCompletion)
|
||||
results.add(future.get()); // timeout immediato poiché il task dovrebbe essere già completato
|
||||
} catch (CancellationException e) {
|
||||
throw new TimeoutException("Task cancelled due to timeout");
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
@PreDestroy
|
||||
|
||||
@@ -33,7 +33,7 @@ public class UserSession {
|
||||
|
||||
if(currentUser != null) currentUserDepo = UtilityUser.getDefaultUserDepo(multiDBTransactionManager, currentUser);
|
||||
} catch (Exception ex) {
|
||||
logger.trace(UserSession.class.getName() + ": errore durante l'inizializzazione", ex);
|
||||
//logger.trace(UserSession.class.getName() + ": errore durante l'inizializzazione", ex);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,4 +60,22 @@ public class UserSession {
|
||||
public MtbDepo getDefaultDepo() {
|
||||
return currentUserDepo;
|
||||
}
|
||||
|
||||
public void checkUser() throws Exception {
|
||||
if (currentUser == null) {
|
||||
throw new Exception("Utente non trovato");
|
||||
}
|
||||
|
||||
if (!isAttivo()) {
|
||||
throw new Exception("Utente " + getUsername() + " non riconoscuto!");
|
||||
}
|
||||
}
|
||||
|
||||
public void checkUserDepo() throws Exception {
|
||||
checkUser();
|
||||
|
||||
if (currentUserDepo == null) {
|
||||
throw new Exception("Deposito non trovato per l'utente " + getUsername());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,70 +1,69 @@
|
||||
package it.integry.ems.utility;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems_model.entity.DtbOrdt;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
public class BarcodeUtility {
|
||||
|
||||
public static DtbOrdt getOrdineFromBarcode(String barcodeOrdine) throws Exception {
|
||||
String gestione = null;
|
||||
|
||||
char first = barcodeOrdine.charAt(0);
|
||||
char c = barcodeOrdine.charAt(1);
|
||||
int offset = 0;
|
||||
if (first != '0') {
|
||||
c = first;
|
||||
offset = -1;
|
||||
}
|
||||
|
||||
if (c == '1')
|
||||
gestione = "A";
|
||||
else if (c == '2')
|
||||
gestione = "L";
|
||||
else if (c == '3')
|
||||
gestione = "V";
|
||||
else
|
||||
throw new Exception("gestione non prevista!");
|
||||
String dataOrdStr = barcodeOrdine.substring(2 + offset, 10 + offset);
|
||||
dataOrdStr = dataOrdStr.substring(0, 2) + "/" + dataOrdStr.substring(2, 4) + "/" + dataOrdStr.substring(4);
|
||||
Date dataOrd = UtilityString.parseDate(dataOrdStr);
|
||||
Integer numOrd = Integer.parseInt(barcodeOrdine.substring(10 + offset));
|
||||
|
||||
DtbOrdt dtbOrdt = new DtbOrdt();
|
||||
dtbOrdt.setGestione(gestione);
|
||||
dtbOrdt.setDataOrd(dataOrd);
|
||||
dtbOrdt.setNumOrd(numOrd);
|
||||
return dtbOrdt;
|
||||
}
|
||||
|
||||
|
||||
public static MtbColt getColloFromBarcode(String barcodeCollo) throws Exception {
|
||||
String gestione = null;
|
||||
String c = barcodeCollo.substring(3, 5);
|
||||
if (c.equals("01"))
|
||||
gestione = "A";
|
||||
else if (c.equals("02"))
|
||||
gestione = "L";
|
||||
else if (c.equals("03"))
|
||||
gestione = "V";
|
||||
else
|
||||
throw new Exception("gestione non prevista!");
|
||||
|
||||
String date = barcodeCollo.substring(5, 11);
|
||||
LocalDate data = LocalDate.parse(date, CommonConstants.DATESTAMP_DMY_FORMATTER);
|
||||
|
||||
String serie = barcodeCollo.substring(11, 13).trim();
|
||||
Integer numCollo = Integer.parseInt(barcodeCollo.substring(13));
|
||||
|
||||
MtbColt mtbColt = new MtbColt();
|
||||
mtbColt.setGestione(gestione);
|
||||
mtbColt.setDataCollo(data);
|
||||
mtbColt.setNumCollo(numCollo);
|
||||
mtbColt.setSerCollo(serie);
|
||||
return mtbColt;
|
||||
}
|
||||
}
|
||||
package it.integry.ems.utility;
|
||||
|
||||
import it.integry.common.var.CommonConstants;
|
||||
import it.integry.ems_model.entity.DtbOrdt;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
public class BarcodeUtility {
|
||||
|
||||
public static DtbOrdt getOrdineFromBarcode(String barcodeOrdine) throws Exception {
|
||||
String gestione = null;
|
||||
|
||||
char first = barcodeOrdine.charAt(0);
|
||||
char c = barcodeOrdine.charAt(1);
|
||||
int offset = 0;
|
||||
if (first != '0') {
|
||||
c = first;
|
||||
offset = -1;
|
||||
}
|
||||
|
||||
if (c == '1')
|
||||
gestione = "A";
|
||||
else if (c == '2')
|
||||
gestione = "L";
|
||||
else if (c == '3')
|
||||
gestione = "V";
|
||||
else
|
||||
throw new Exception("gestione non prevista!");
|
||||
String dataOrdStr = barcodeOrdine.substring(2 + offset, 10 + offset);
|
||||
dataOrdStr = dataOrdStr.substring(0, 2) + "/" + dataOrdStr.substring(2, 4) + "/" + dataOrdStr.substring(4);
|
||||
LocalDate dataOrd = UtilityString.parseLocalDate(dataOrdStr);
|
||||
Integer numOrd = Integer.parseInt(barcodeOrdine.substring(10 + offset));
|
||||
|
||||
DtbOrdt dtbOrdt = new DtbOrdt();
|
||||
dtbOrdt.setGestione(gestione);
|
||||
dtbOrdt.setDataOrd(dataOrd);
|
||||
dtbOrdt.setNumOrd(numOrd);
|
||||
return dtbOrdt;
|
||||
}
|
||||
|
||||
|
||||
public static MtbColt getColloFromBarcode(String barcodeCollo) throws Exception {
|
||||
String gestione = null;
|
||||
String c = barcodeCollo.substring(3, 5);
|
||||
if (c.equals("01"))
|
||||
gestione = "A";
|
||||
else if (c.equals("02"))
|
||||
gestione = "L";
|
||||
else if (c.equals("03"))
|
||||
gestione = "V";
|
||||
else
|
||||
throw new Exception("gestione non prevista!");
|
||||
|
||||
String date = barcodeCollo.substring(5, 11);
|
||||
LocalDate data = LocalDate.parse(date, CommonConstants.DATESTAMP_DMY_FORMATTER);
|
||||
|
||||
String serie = barcodeCollo.substring(11, 13).trim();
|
||||
Integer numCollo = Integer.parseInt(barcodeCollo.substring(13));
|
||||
|
||||
MtbColt mtbColt = new MtbColt();
|
||||
mtbColt.setGestione(gestione);
|
||||
mtbColt.setDataCollo(data);
|
||||
mtbColt.setNumCollo(numCollo);
|
||||
mtbColt.setSerCollo(serie);
|
||||
return mtbColt;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ import java.sql.SQLException;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -46,7 +47,7 @@ public class GeneraOrdLav {
|
||||
public static void generateOrdLav(Connection conn, DtbOrdt dtbOrdt) throws Exception {
|
||||
// Acquisizione dati testata ordine di produzione
|
||||
String gestione = dtbOrdt.getGestione();
|
||||
Date dataOrd = dtbOrdt.getDataOrd();
|
||||
LocalDate dataOrd = dtbOrdt.getDataOrd();
|
||||
Integer numOrd = dtbOrdt.getNumOrd();
|
||||
|
||||
OrdProdSetupDTO ordProdSetupDTO = UtilityProduction.retrieveSetup(conn);
|
||||
@@ -144,7 +145,7 @@ public class GeneraOrdLav {
|
||||
if (existOrd && row.getOperation() == OperationType.DELETE) {
|
||||
DtbOrdt ordtDel = new DtbOrdt()
|
||||
.setGestione((String) datiOrdLav.get("gestione"))
|
||||
.setDataOrd((Date) datiOrdLav.get("data_ord"))
|
||||
.setDataOrd(UtilityLocalDate.localDateFromDate((Date) datiOrdLav.get("data_ord")))
|
||||
.setNumOrd((Integer) datiOrdLav.get("num_ord"));
|
||||
ordtDel.setOperation(row.getOperation());
|
||||
row.addOrdLav(ordtDel);
|
||||
@@ -181,7 +182,7 @@ public class GeneraOrdLav {
|
||||
String partitaMag = row.getPartitaMag();
|
||||
String descrProd = (ordProdSetupDTO.isFlagDescrizDaOrdine() && !UtilityString.isNullOrEmpty(row.getDescrizione()) ? row.getDescrizione() : null);
|
||||
String descrEstesaProd = (ordProdSetupDTO.isFlagDescrizDaOrdine() && !UtilityString.isNullOrEmpty(row.getDescrizioneEstesa()) ? row.getDescrizioneEstesa() : null);
|
||||
Date dataCons = row.getDataCons();
|
||||
LocalDateTime dataCons = row.getDataCons();
|
||||
if (codProd != null) {
|
||||
// Verifica esistenza distinta in anagrafica, se non presente
|
||||
// blocca la procedura
|
||||
@@ -220,7 +221,7 @@ public class GeneraOrdLav {
|
||||
qtaProdDist = UtilityHashMap.getValueIfExists(datiDistinta, "qta_prod");
|
||||
}
|
||||
|
||||
if ( row.getDistinta() != null && !row.getDistinta().isEmpty()) {
|
||||
if (row.getDistinta() != null && !row.getDistinta().isEmpty()) {
|
||||
datiDistinta.put("qta_prod", row.getQta());
|
||||
datiDistinta.put("rap_conv_prod", row.getRapConv());
|
||||
}
|
||||
@@ -333,7 +334,7 @@ public class GeneraOrdLav {
|
||||
.setColliPedana(row.getColliPedana())
|
||||
.setCodTcolUl(row.getCodTcolUl())
|
||||
.setCodTcolUi(row.getCodTcolUi())
|
||||
.setFlagEvasoProd(flagEvasoProd!=null?flagEvasoProd.getValue().toString():null)
|
||||
.setFlagEvasoProd(flagEvasoProd != null ? flagEvasoProd.getValue().toString() : null)
|
||||
.setGeneraOrdLavDaProd(dtbOrdt.isGeneraOrdLavDaProd());
|
||||
|
||||
String flagAnnulla = "N";
|
||||
@@ -398,12 +399,12 @@ public class GeneraOrdLav {
|
||||
}
|
||||
}
|
||||
|
||||
private static void addJtbLott(DtbOrdt dtbOrdt, String codJfas, Date dataOrd, String codJflav, String gestioneLav, Integer numOrdLav) {
|
||||
private static void addJtbLott(DtbOrdt dtbOrdt, String codJfas, LocalDate dataOrd, String codJflav, String gestioneLav, Integer numOrdLav) {
|
||||
if (dtbOrdt.getJtbLott() == null) {
|
||||
String tipoLotto = "P";
|
||||
JtbLott jtbLott = new JtbLott()
|
||||
.setCodJfas(codJfas)
|
||||
.setDataLotto(dataOrd)
|
||||
.setDataLotto(UtilityLocalDate.localDateToDate(dataOrd))
|
||||
.setTipoLotto(tipoLotto)
|
||||
.setCodJflav(codJflav);
|
||||
jtbLott.setOperation(OperationType.INSERT);
|
||||
@@ -411,7 +412,7 @@ public class GeneraOrdLav {
|
||||
}
|
||||
JtbLotr lotr = new JtbLotr()
|
||||
.setGestione(gestioneLav)
|
||||
.setDataOrd(dataOrd)
|
||||
.setDataOrd(UtilityLocalDate.localDateToDate(dataOrd))
|
||||
.setNumOrd(numOrdLav)
|
||||
.setIdRiga(0);
|
||||
lotr.setOperation(OperationType.INSERT);
|
||||
@@ -451,7 +452,7 @@ public class GeneraOrdLav {
|
||||
}
|
||||
|
||||
private static void assegnaCodJcom(Connection conn, OrdProdSetupDTO ordProdSetupDTO, String tipoAnag, String codAnag,
|
||||
String gestioneLav, Date dataOrd, Integer numOrdLav, Date dataCons, Date dataInizProd,
|
||||
String gestioneLav, LocalDate dataOrd, Integer numOrdLav, LocalDateTime dataCons, Date dataInizProd,
|
||||
String descrizioneCommessa, DtbOrdr dtbOrdr) throws Exception {
|
||||
String statoCommessa = ordProdSetupDTO.getStatoCommessa();
|
||||
String tipoCommessa = ordProdSetupDTO.getTipoCommessa();
|
||||
@@ -459,8 +460,8 @@ public class GeneraOrdLav {
|
||||
CommessaDTO datiComm = new CommessaDTO()
|
||||
.setCodAnag(codAnag)
|
||||
.setGestione(gestioneLav)
|
||||
.setDataOrd(dataOrd)
|
||||
.setDataCons(dataCons)
|
||||
.setDataOrd(UtilityLocalDate.localDateToDate(dataOrd))
|
||||
.setDataCons(UtilityLocalDate.localDateTimeToDate(dataCons))
|
||||
.setDataInizLav(dataInizProd)
|
||||
.setNumOrd(numOrdLav)
|
||||
.setTipoAnag(tipoAnag)
|
||||
@@ -520,9 +521,9 @@ public class GeneraOrdLav {
|
||||
return codJflav;
|
||||
}
|
||||
|
||||
private static String generateActivity(Connection connect, DtbOrdr dtbOrdr, String codProd, String codJcom, String gestione, Date dataOrd, Integer numOrd, String userName, String activityID, Enum operationType, List<ActivityCicloProdDTO> activityCicloProd) throws Exception {
|
||||
private static String generateActivity(Connection connect, DtbOrdr dtbOrdr, String codProd, String codJcom, String gestione, LocalDate dataOrd, Integer numOrd, String userName, String activityID, Enum operationType, List<ActivityCicloProdDTO> activityCicloProd) throws Exception {
|
||||
Integer durataFasiPrec = 0;
|
||||
Date dataIniz = null, dataFine = null;
|
||||
LocalDateTime dataIniz = null, dataFine = null;
|
||||
String classNameOrdProd = "W_PORDI_RC", activityIDRoot = null, activityTypeID = null, flagTipologia = null, sql;
|
||||
StbActivity activity = new StbActivity();
|
||||
List<StbActivity> activityList = new ArrayList<StbActivity>();
|
||||
@@ -551,7 +552,7 @@ public class GeneraOrdLav {
|
||||
" from (select activity_id, cod_prod from dtb_ordt " +
|
||||
" where dtb_ordt.gestione = " + UtilityDB.valueToString(gestione) + " and " +
|
||||
" dtb_ordt.num_ord = " + UtilityDB.valueToString(numOrd) + " and " +
|
||||
" dtb_ordt.data_ord = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " )actOrd, " +
|
||||
" dtb_ordt.data_ord = " + UtilityDB.valueToString(dataOrd) + " )actOrd, " +
|
||||
" stb_activity, " +
|
||||
" jtb_dist_clav_dir " +
|
||||
" where (actOrd.activity_id = stb_activity.activity_id or " +
|
||||
@@ -564,7 +565,7 @@ public class GeneraOrdLav {
|
||||
" select activity_id, 0 from dtb_ordt " +
|
||||
" where dtb_ordt.gestione = " + UtilityDB.valueToString(gestione) + " and " +
|
||||
" dtb_ordt.num_ord = " + UtilityDB.valueToString(numOrd) + " and " +
|
||||
" dtb_ordt.data_ord = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD);
|
||||
" dtb_ordt.data_ord = " + UtilityDB.valueToString(dataOrd);
|
||||
|
||||
ps = connect.prepareStatement(sql);
|
||||
rs = ps.executeQuery();
|
||||
@@ -607,13 +608,8 @@ public class GeneraOrdLav {
|
||||
activityIDRoot = getNextActivityId(connect);
|
||||
|
||||
// Calcolo data inizio e fine prevista attività
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(dtbOrdr.getDataCons());
|
||||
cal.add(Calendar.DATE, durataFasiPrec);
|
||||
dataIniz = cal.getTime();
|
||||
cal.setTime(dataIniz);
|
||||
cal.add(Calendar.DATE, durataFase);
|
||||
dataFine = cal.getTime();
|
||||
dataIniz = dtbOrdr.getDataCons().plusDays(durataFasiPrec);
|
||||
dataFine = dataIniz.plusDays(durataFase);
|
||||
|
||||
// Inserimento attività
|
||||
activity = new StbActivity();
|
||||
@@ -624,10 +620,10 @@ public class GeneraOrdLav {
|
||||
activity.setFlagTipologia(flagTipologia);
|
||||
activity.setUserName(userName);
|
||||
activity.setActivityDescription(activityTypeID + " N° " + numOrd.toString() + " DEL + " + new SimpleDateFormat("yyyy/MM/dd").format(dataOrd));
|
||||
activity.setEstimatedTime(UtilityLocalDate.localDateTimeFromDate(dataIniz));
|
||||
activity.setEstimatedEndtime(UtilityLocalDate.localDateTimeFromDate(dataFine));
|
||||
activity.setEstimatedTime(dataIniz);
|
||||
activity.setEstimatedEndtime(dataFine);
|
||||
activity.setGestione("L");
|
||||
activity.setDataOrd(UtilityLocalDate.localDateFromDate(dataOrd));
|
||||
activity.setDataOrd(dataOrd);
|
||||
activity.setNumOrd(numOrd);
|
||||
activityList.add(activity);
|
||||
}
|
||||
@@ -659,13 +655,8 @@ public class GeneraOrdLav {
|
||||
activityCicloProd.add(activityCicloProdDTO);
|
||||
|
||||
// Calcolo data iniizo e fine prevista attività
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(dtbOrdr.getDataCons());
|
||||
cal.add(Calendar.DATE, durataFasiPrec);
|
||||
dataIniz = cal.getTime();
|
||||
cal.setTime(dataIniz);
|
||||
cal.add(Calendar.DATE, durataFase);
|
||||
dataFine = cal.getTime();
|
||||
dataIniz = dtbOrdr.getDataCons().plusDays(durataFasiPrec);
|
||||
dataFine = dataIniz.plusDays(durataFase);
|
||||
durataFasiPrec += durataFase;
|
||||
|
||||
// Inserimento attività
|
||||
@@ -678,10 +669,10 @@ public class GeneraOrdLav {
|
||||
activity.setFlagTipologia(flagTipologia);
|
||||
activity.setUserName(userName);
|
||||
activity.setActivityDescription(activityTypeID);
|
||||
activity.setEstimatedTime(UtilityLocalDate.localDateTimeFromDate(dataIniz));
|
||||
activity.setEstimatedEndtime(UtilityLocalDate.localDateTimeFromDate(dataFine));
|
||||
activity.setEstimatedTime(dataIniz);
|
||||
activity.setEstimatedEndtime(dataFine);
|
||||
activity.setGestione("L");
|
||||
activity.setDataOrd(UtilityLocalDate.localDateFromDate(dataOrd));
|
||||
activity.setDataOrd(dataOrd);
|
||||
activity.setNumOrd(numOrd);
|
||||
activityList.add(activity);
|
||||
}
|
||||
@@ -708,13 +699,8 @@ public class GeneraOrdLav {
|
||||
activityIDRoot = getNextActivityId(connect);
|
||||
|
||||
// Calcolo data iniizo e fine prevista attività
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(dtbOrdr.getDataCons());
|
||||
cal.add(Calendar.DATE, durataFasiPrec);
|
||||
dataIniz = cal.getTime();
|
||||
cal.setTime(dataIniz);
|
||||
cal.add(Calendar.DATE, durataFase);
|
||||
dataFine = cal.getTime();
|
||||
dataIniz = dtbOrdr.getDataCons().plusDays(durataFasiPrec);
|
||||
dataFine = dataIniz.plusDays(durataFase);
|
||||
durataFasiPrec += durataFase;
|
||||
}
|
||||
|
||||
@@ -724,13 +710,13 @@ public class GeneraOrdLav {
|
||||
activity.setCodJcom(codJcom);
|
||||
activity.setActivityTypeId(activityTypeID);
|
||||
activity.setFlagTipologia(flagTipologia);
|
||||
activity.setEstimatedTime(UtilityLocalDate.localDateTimeFromDate(dataIniz));
|
||||
activity.setEstimatedEndtime(UtilityLocalDate.localDateTimeFromDate(dataFine));
|
||||
activity.setEstimatedTime(dataIniz);
|
||||
activity.setEstimatedEndtime(dataFine);
|
||||
activity.setUserName(userName);
|
||||
activity.setGestione("L");
|
||||
activity.setDataOrd(UtilityLocalDate.localDateFromDate(dataOrd));
|
||||
activity.setDataOrd(dataOrd);
|
||||
activity.setNumOrd(numOrd);
|
||||
activity.setActivityDescription("PRODUZIONE N° " + numOrd.toString() + " DEL + " + new SimpleDateFormat("yyyy/MM/dd").format(dataOrd));
|
||||
activity.setActivityDescription("PRODUZIONE N° " + numOrd.toString() + " DEL + " + CommonConstants.DATE_YMD_SLASHED_FORMATTER.format(dataOrd));
|
||||
activityList.add(activity);
|
||||
}
|
||||
}
|
||||
@@ -750,9 +736,9 @@ public class GeneraOrdLav {
|
||||
String codMart = dtbOrdr.getCodMart();
|
||||
String partitaMag = dtbOrdr.getPartitaMag();
|
||||
String codAnag = dtbOrdr.getCodAnag();
|
||||
Date dataOrd = dtbOrdr.getDataOrd();
|
||||
LocalDate dataOrd = dtbOrdr.getDataOrd();
|
||||
Integer numOrd = dtbOrdr.getNumOrd();
|
||||
Date dataCons = dtbOrdr.getDataCons();
|
||||
LocalDateTime dataCons = dtbOrdr.getDataCons();
|
||||
|
||||
boolean generaLottoProdAutomatico = ordProdSetupDTO.isGeneraLottoAut(codMdep);
|
||||
boolean partitaMagRequired = ordProdSetupDTO.isPartitaMagRequired();
|
||||
@@ -848,7 +834,7 @@ public class GeneraOrdLav {
|
||||
boolean isTerzista) throws Exception {
|
||||
|
||||
Integer numFaseOld = 0;
|
||||
Date dataConsRow = null;
|
||||
LocalDateTime dataConsRow = null;
|
||||
|
||||
|
||||
boolean assPeriodoFase = ordProdSetupDTO.isAssPeriodoFase();
|
||||
@@ -856,7 +842,7 @@ public class GeneraOrdLav {
|
||||
boolean isSameLav;
|
||||
|
||||
String codProd = UtilityHashMap.getValueIfExists(datiProd, "cod_prod");
|
||||
Date dataConsDist = UtilityHashMap.getValueIfExists(datiProd, "data_cons");
|
||||
LocalDateTime dataConsDist = UtilityHashMap.getValueIfExists(datiProd, "data_cons");
|
||||
|
||||
// -----------------------------------------------------------
|
||||
// GENERAZIONE TESTATE E RIGHE ORDINE DI LAVORAZIONE
|
||||
@@ -896,7 +882,10 @@ public class GeneraOrdLav {
|
||||
}
|
||||
|
||||
if (jtbDistMates == null || jtbDistMates.isEmpty()) {
|
||||
artDist.add(new ExplodeDistDTO().setCodProd(codProd).setRoot(true).setNumFase(1)
|
||||
artDist.add(new ExplodeDistDTO()
|
||||
.setCodProd(codProd)
|
||||
.setRoot(true)
|
||||
.setNumFase(1)
|
||||
.setQtaProd(qtaProd)
|
||||
.setUntMis(untMisProd)
|
||||
.setCodJfasRow(codJfasDist)
|
||||
@@ -944,12 +933,9 @@ public class GeneraOrdLav {
|
||||
|
||||
// Calcolo data consegna materiali per fase di lavoro
|
||||
if (assPeriodoFase) {
|
||||
if (numFase != numFaseOld) {
|
||||
if (!Objects.equals(numFase, numFaseOld)) {
|
||||
Integer durataFase = getDurataFase(conn, codProd);
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(dataConsDist);
|
||||
cal.add(Calendar.DATE, durataFase);
|
||||
dataConsRow = cal.getTime();
|
||||
dataConsRow = dataConsDist.plusDays(durataFase);
|
||||
durataFasiPrec += durataFase;
|
||||
}
|
||||
}
|
||||
@@ -1103,7 +1089,7 @@ public class GeneraOrdLav {
|
||||
boolean assPeriodoFase = ordProdSetupDTO.isAssPeriodoFase();
|
||||
boolean pesoInQtaLav = ordProdSetupDTO.isPesoInQtaLav();
|
||||
boolean visCodJfas = ordProdSetupDTO.isVisCodJfas();
|
||||
Date dataIniz = null, dataFine = null;
|
||||
LocalDateTime dataIniz = null, dataFine = null;
|
||||
|
||||
List<ExplodeDistDTO> explodeDistDistinct = explodeDistDTOList.stream().map(x -> {
|
||||
ExplodeDistDTO e = new ExplodeDistDTO()
|
||||
@@ -1223,13 +1209,8 @@ public class GeneraOrdLav {
|
||||
}
|
||||
// Calcolo periodo produzione per fase
|
||||
if (assPeriodoFase) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(explodeDistDTO.getDataCons());
|
||||
cal.add(Calendar.DATE, durataFasiPrec);
|
||||
dataIniz = cal.getTime();
|
||||
cal.setTime(dataIniz);
|
||||
cal.add(Calendar.DATE, durataFase);
|
||||
dataFine = cal.getTime();
|
||||
dataIniz = explodeDistDTO.getDataCons().plusDays(durataFasiPrec);
|
||||
dataFine = dataIniz.plusDays(durataFase);
|
||||
durataFasiPrec += durataFase;
|
||||
}
|
||||
|
||||
@@ -1299,7 +1280,7 @@ public class GeneraOrdLav {
|
||||
// Acquisizione ID Attività associato al processo padre
|
||||
if (!activityCicloProd.isEmpty()) {
|
||||
for (int i = 0; i < activityCicloProd.size(); i++) {
|
||||
if (activityCicloProd.get(i).getNumFase() == numFaseDist) {
|
||||
if (Objects.equals(activityCicloProd.get(i).getNumFase(), numFaseDist)) {
|
||||
ordStep.setActivityId(activityCicloProd.get(i).getActivityID());
|
||||
}
|
||||
}
|
||||
@@ -1429,7 +1410,7 @@ public class GeneraOrdLav {
|
||||
}
|
||||
}
|
||||
|
||||
private static void aggornaDataInizProd(Connection conn, String gestione, Date dataOrd, Integer numOrd, Integer rigaOrd, DtbOrdt ordT, DtbOrdr row, boolean assegnaAttivita) throws SQLException, IllegalAccessException, DataConverterNotFoundException, InstantiationException {
|
||||
private static void aggornaDataInizProd(Connection conn, String gestione, LocalDate dataOrd, Integer numOrd, Integer rigaOrd, DtbOrdt ordT, DtbOrdr row, boolean assegnaAttivita) throws SQLException, IllegalAccessException, DataConverterNotFoundException, InstantiationException {
|
||||
String sql;
|
||||
sql =
|
||||
Query.format(
|
||||
@@ -1463,7 +1444,7 @@ public class GeneraOrdLav {
|
||||
|
||||
if (dtbOrdrL != null && !dtbOrdrL.isEmpty()) {
|
||||
dtbOrdrL.stream().forEach(x -> {
|
||||
x.setDataCons(UtilityDate.dateAdd(x.getDataCons(), ggDiff));
|
||||
x.setDataCons(x.getDataCons().plusDays(ggDiff));
|
||||
x.setOperation(OperationType.UPDATE);
|
||||
});
|
||||
|
||||
@@ -1475,8 +1456,8 @@ public class GeneraOrdLav {
|
||||
List<DtbOrdSteps> dtbOrdSteps = UtilityDB.executeSimpleQueryDTO(conn, sql, DtbOrdSteps.class);
|
||||
|
||||
dtbOrdSteps.stream().forEach(x -> {
|
||||
x.setDataIniz(x.getDataIniz()!=null?UtilityDate.dateAdd(x.getDataIniz(), ggDiff):null);
|
||||
x.setDataFine(x.getDataFine() != null ?UtilityDate.dateAdd(x.getDataFine(), ggDiff):null);
|
||||
x.setDataIniz(x.getDataIniz() != null ? x.getDataIniz().plusDays(ggDiff) : null);
|
||||
x.setDataFine(x.getDataFine() != null ? x.getDataFine().plusDays(ggDiff) : null);
|
||||
x.setOperation(OperationType.UPDATE);
|
||||
});
|
||||
|
||||
@@ -1501,7 +1482,7 @@ public class GeneraOrdLav {
|
||||
}
|
||||
}
|
||||
|
||||
private static void riproporzionaQtaOrd(Connection conn, String gestione, Date dataOrd, Integer numOrd, Integer rigaOrd, BigDecimal qtaProd, BigDecimal rapConv, DtbOrdt ordT, BigDecimal valUntProd) throws SQLException, IllegalAccessException, DataConverterNotFoundException, InstantiationException {
|
||||
private static void riproporzionaQtaOrd(Connection conn, String gestione, LocalDate dataOrd, Integer numOrd, Integer rigaOrd, BigDecimal qtaProd, BigDecimal rapConv, DtbOrdt ordT, BigDecimal valUntProd) throws SQLException, IllegalAccessException, DataConverterNotFoundException, InstantiationException {
|
||||
String sql;
|
||||
sql =
|
||||
Query.format(
|
||||
@@ -1623,7 +1604,7 @@ public class GeneraOrdLav {
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(conn, sql);
|
||||
}
|
||||
|
||||
private static HashMap<String, Object> checkOrdLav(Connection conn, boolean checkLockProd, String gestione, Date dataOrd, Integer numOrd, Integer rigaOrd) throws Exception {
|
||||
private static HashMap<String, Object> checkOrdLav(Connection conn, boolean checkLockProd, String gestione, LocalDate dataOrd, Integer numOrd, Integer rigaOrd) throws Exception {
|
||||
// Controllo se l'ordine di lavorazione è stato avviato
|
||||
String sql = "select distinct " +
|
||||
" CAST(case when dtb_ordt.flag_evaso_prod = 'E' or dtb_ordt.flag_evaso_forzato = 'S' or ordSteps.prodAvviata <> 0 then 1 else 0 end as bit) as flag_lock, " +
|
||||
@@ -1632,7 +1613,7 @@ public class GeneraOrdLav {
|
||||
"from (select gestione, data_ord, num_ord " +
|
||||
" from dtb_ordt " +
|
||||
" where dtb_ordt.gestione_rif = " + UtilityDB.valueToString(gestione) + " AND " +
|
||||
" dtb_ordt.data_ord_rif = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " AND " +
|
||||
" dtb_ordt.data_ord_rif = " + UtilityDB.valueToString(dataOrd) + " AND " +
|
||||
" dtb_ordt.num_ord_rif = " + UtilityDB.valueToString(numOrd) + " AND " +
|
||||
" dtb_ordt.riga_ord_rif = " + UtilityDB.valueToString(rigaOrd) + ") ordlav, " +
|
||||
" dtb_ordt left outer join dtb_ordr on dtb_ordr.gestione = dtb_ordt.gestione " +
|
||||
@@ -1648,7 +1629,7 @@ public class GeneraOrdLav {
|
||||
" dtb_ordt.data_ord = dtb_ord_steps.data_ord and " +
|
||||
" dtb_ordt.num_ord = dtb_ord_steps.num_ord and " +
|
||||
" dtb_ordt.gestione_rif = " + UtilityDB.valueToString(gestione) + " AND " +
|
||||
" dtb_ordt.data_ord_rif = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " AND " +
|
||||
" dtb_ordt.data_ord_rif = " + UtilityDB.valueToString(dataOrd) + " AND " +
|
||||
" dtb_ordt.num_ord_rif = " + UtilityDB.valueToString(numOrd) + " AND " +
|
||||
" dtb_ordt.riga_ord_rif = " + UtilityDB.valueToString(rigaOrd) + " " +
|
||||
" group by dtb_ordt.gestione, " +
|
||||
@@ -1664,17 +1645,17 @@ public class GeneraOrdLav {
|
||||
HashMap<String, Object> datiOrdine = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
|
||||
if (datiOrdine != null && !datiOrdine.isEmpty()) {
|
||||
boolean flagLock = UtilityHashMap.getValueIfExists(datiOrdine, "flag_lock");
|
||||
Date dataOrdLav = UtilityHashMap.getValueIfExists(datiOrdine, "data_ord");
|
||||
LocalDate dataOrdLav = UtilityLocalDate.localDateFromDate(UtilityHashMap.getValueIfExists(datiOrdine, "data_ord"));
|
||||
Integer numOrdLav = UtilityHashMap.getValueIfExists(datiOrdine, "num_ord");
|
||||
if (flagLock && checkLockProd) {
|
||||
throw new Exception("La produzione num. " + numOrdLav + " del " + (new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(dataOrdLav)) + " è stata già avviata, non è pertanto possibile apportare modifiche");
|
||||
throw new Exception("La produzione num. " + numOrdLav + " del " + (CommonConstants.DATE_DMY_SLASHED_FORMATTER.format(dataOrdLav)) + " è stata già avviata, non è pertanto possibile apportare modifiche");
|
||||
}
|
||||
}
|
||||
|
||||
// Acquisizione fase da testa ordine di lavorazione
|
||||
sql = " select cod_jfas, activity_id, cod_jflav from dtb_ordt "
|
||||
+ "WHERE gestione_rif = " + UtilityDB.valueToString(gestione) + " AND "
|
||||
+ " data_ord_rif = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " AND "
|
||||
+ " data_ord_rif = " + UtilityDB.valueToString(dataOrd) + " AND "
|
||||
+ " num_ord_rif = " + UtilityDB.valueToString(numOrd.toString()) + " AND "
|
||||
+ " riga_ord_rif = " + UtilityDB.valueToString(rigaOrd.toString());
|
||||
HashMap<String, Object> dati = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
|
||||
|
||||
@@ -18,7 +18,6 @@ import it.integry.ems_model.db.ResultSetMapper;
|
||||
import it.integry.ems_model.entity.*;
|
||||
import it.integry.ems_model.entity._enum.FlagEvaso;
|
||||
import it.integry.ems_model.entity._enum.TipoValore;
|
||||
import it.integry.ems_model.rules.util.DroolsUtil;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.*;
|
||||
@@ -33,6 +32,7 @@ import java.sql.Statement;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
|
||||
import static it.integry.ems.rules.completing.QueryRules.getSingleValue;
|
||||
@@ -99,9 +99,10 @@ public class ProductionBusinessLogic {
|
||||
return ConfigActivityRules.completeActivityId(connect);
|
||||
}
|
||||
|
||||
private static String generateActivity(Connection connect, DtbOrdr dtbOrdr, String codProd, String codJcom, String gestione, Date dataOrd, Integer numOrd, String userName, String activityID, Enum operationType, List<ActivityCicloProdDTO> activityCicloProd) throws Exception {
|
||||
private static String generateActivity(Connection connect, DtbOrdr dtbOrdr, String codProd, String codJcom, String gestione, LocalDate dataOrd, Integer numOrd, String userName, String activityID, Enum operationType, List<ActivityCicloProdDTO> activityCicloProd) throws Exception {
|
||||
Integer durataFasiPrec = 0;
|
||||
Date dataIniz = null, dataFine = null;
|
||||
LocalDateTime dataIniz = null;
|
||||
LocalDateTime dataFine = null;
|
||||
String classNameOrdProd = "W_PORDI_RC", activityIDRoot = null, activityTypeID = null, flagTipologia = null, sql;
|
||||
StbActivity activity = new StbActivity();
|
||||
List<StbActivity> activityList = new ArrayList<StbActivity>();
|
||||
@@ -130,7 +131,7 @@ public class ProductionBusinessLogic {
|
||||
" from (select activity_id, cod_prod from dtb_ordt " +
|
||||
" where dtb_ordt.gestione = " + UtilityDB.valueToString(gestione) + " and " +
|
||||
" dtb_ordt.num_ord = " + UtilityDB.valueToString(numOrd) + " and " +
|
||||
" dtb_ordt.data_ord = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " )actOrd, " +
|
||||
" dtb_ordt.data_ord = " + UtilityDB.valueToString(dataOrd) + " )actOrd, " +
|
||||
" stb_activity, " +
|
||||
" jtb_dist_clav_dir " +
|
||||
" where (actOrd.activity_id = stb_activity.activity_id or " +
|
||||
@@ -143,7 +144,7 @@ public class ProductionBusinessLogic {
|
||||
" select activity_id, 0 from dtb_ordt " +
|
||||
" where dtb_ordt.gestione = " + UtilityDB.valueToString(gestione) + " and " +
|
||||
" dtb_ordt.num_ord = " + UtilityDB.valueToString(numOrd) + " and " +
|
||||
" dtb_ordt.data_ord = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD);
|
||||
" dtb_ordt.data_ord = " + UtilityDB.valueToString(dataOrd);
|
||||
|
||||
ps = connect.prepareStatement(sql);
|
||||
rs = ps.executeQuery();
|
||||
@@ -186,13 +187,8 @@ public class ProductionBusinessLogic {
|
||||
activityIDRoot = getNextActivityId(connect);
|
||||
|
||||
// Calcolo data inizio e fine prevista attività
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(dtbOrdr.getDataCons());
|
||||
cal.add(Calendar.DATE, durataFasiPrec);
|
||||
dataIniz = cal.getTime();
|
||||
cal.setTime(dataIniz);
|
||||
cal.add(Calendar.DATE, durataFase);
|
||||
dataFine = cal.getTime();
|
||||
dataIniz = dtbOrdr.getDataCons().plusDays(durataFasiPrec);
|
||||
dataFine = dataIniz.plusDays(durataFase);
|
||||
|
||||
// Inserimento attività
|
||||
activity = new StbActivity();
|
||||
@@ -202,11 +198,11 @@ public class ProductionBusinessLogic {
|
||||
activity.setActivityTypeId(activityTypeID);
|
||||
activity.setFlagTipologia(flagTipologia);
|
||||
activity.setUserName(userName);
|
||||
activity.setActivityDescription(activityTypeID + " N° " + numOrd.toString() + " DEL + " + new SimpleDateFormat("yyyy/MM/dd").format(dataOrd));
|
||||
activity.setEstimatedTime(UtilityLocalDate.localDateTimeFromDate(dataIniz));
|
||||
activity.setEstimatedEndtime(UtilityLocalDate.localDateTimeFromDate(dataFine));
|
||||
activity.setActivityDescription(activityTypeID + " N° " + numOrd.toString() + " DEL + " + CommonConstants.DATE_YMD_SLASHED_FORMATTER.format(dataOrd));
|
||||
activity.setEstimatedTime(dataIniz);
|
||||
activity.setEstimatedEndtime(dataFine);
|
||||
activity.setGestione("L");
|
||||
activity.setDataOrd(UtilityLocalDate.localDateFromDate(dataOrd));
|
||||
activity.setDataOrd(dataOrd);
|
||||
activity.setNumOrd(numOrd);
|
||||
activityList.add(activity);
|
||||
}
|
||||
@@ -238,13 +234,8 @@ public class ProductionBusinessLogic {
|
||||
activityCicloProd.add(activityCicloProdDTO);
|
||||
|
||||
// Calcolo data iniizo e fine prevista attività
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(dtbOrdr.getDataCons());
|
||||
cal.add(Calendar.DATE, durataFasiPrec);
|
||||
dataIniz = cal.getTime();
|
||||
cal.setTime(dataIniz);
|
||||
cal.add(Calendar.DATE, durataFase);
|
||||
dataFine = cal.getTime();
|
||||
dataIniz = dtbOrdr.getDataCons().plusDays(durataFasiPrec);
|
||||
dataFine = dataIniz.plusDays(durataFase);
|
||||
durataFasiPrec += durataFase;
|
||||
|
||||
// Inserimento attività
|
||||
@@ -257,10 +248,10 @@ public class ProductionBusinessLogic {
|
||||
activity.setFlagTipologia(flagTipologia);
|
||||
activity.setUserName(userName);
|
||||
activity.setActivityDescription(activityTypeID);
|
||||
activity.setEstimatedTime(UtilityLocalDate.localDateTimeFromDate(dataIniz));
|
||||
activity.setEstimatedEndtime(UtilityLocalDate.localDateTimeFromDate(dataFine));
|
||||
activity.setEstimatedTime(dataIniz);
|
||||
activity.setEstimatedEndtime(dataFine);
|
||||
activity.setGestione("L");
|
||||
activity.setDataOrd(UtilityLocalDate.localDateFromDate(dataOrd));
|
||||
activity.setDataOrd(dataOrd);
|
||||
activity.setNumOrd(numOrd);
|
||||
activityList.add(activity);
|
||||
}
|
||||
@@ -286,14 +277,9 @@ public class ProductionBusinessLogic {
|
||||
Integer durataFase = rs.getInt(3);
|
||||
activityIDRoot = getNextActivityId(connect);
|
||||
|
||||
// Calcolo data iniizo e fine prevista attività
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(dtbOrdr.getDataCons());
|
||||
cal.add(Calendar.DATE, durataFasiPrec);
|
||||
dataIniz = cal.getTime();
|
||||
cal.setTime(dataIniz);
|
||||
cal.add(Calendar.DATE, durataFase);
|
||||
dataFine = cal.getTime();
|
||||
// Calcolo data inizio e fine prevista attività
|
||||
dataIniz = dtbOrdr.getDataCons().plusDays(durataFasiPrec);
|
||||
dataFine = dataIniz.plusDays(durataFase);
|
||||
durataFasiPrec += durataFase;
|
||||
}
|
||||
|
||||
@@ -303,13 +289,13 @@ public class ProductionBusinessLogic {
|
||||
activity.setCodJcom(codJcom);
|
||||
activity.setActivityTypeId(activityTypeID);
|
||||
activity.setFlagTipologia(flagTipologia);
|
||||
activity.setEstimatedTime(UtilityLocalDate.localDateTimeFromDate(dataIniz));
|
||||
activity.setEstimatedEndtime(UtilityLocalDate.localDateTimeFromDate(dataFine));
|
||||
activity.setEstimatedTime(dataIniz);
|
||||
activity.setEstimatedEndtime(dataFine);
|
||||
activity.setUserName(userName);
|
||||
activity.setGestione("L");
|
||||
activity.setDataOrd(UtilityLocalDate.localDateFromDate(dataOrd));
|
||||
activity.setDataOrd(dataOrd);
|
||||
activity.setNumOrd(numOrd);
|
||||
activity.setActivityDescription("PRODUZIONE N° " + numOrd.toString() + " DEL + " + new SimpleDateFormat("yyyy/MM/dd").format(dataOrd));
|
||||
activity.setActivityDescription("PRODUZIONE N° " + numOrd.toString() + " DEL + " + CommonConstants.DATE_YMD_SLASHED_FORMATTER.format(dataOrd));
|
||||
activityList.add(activity);
|
||||
}
|
||||
}
|
||||
@@ -331,9 +317,9 @@ public class ProductionBusinessLogic {
|
||||
String codMart = dtbOrdr.getCodMart();
|
||||
String partitaMag = dtbOrdr.getPartitaMag();
|
||||
String codAnag = dtbOrdr.getCodAnag();
|
||||
Date dataOrd = dtbOrdr.getDataOrd();
|
||||
LocalDate dataOrd = dtbOrdr.getDataOrd();
|
||||
Integer numOrd = dtbOrdr.getNumOrd();
|
||||
Date dataCons = dtbOrdr.getDataCons();
|
||||
LocalDateTime dataCons = dtbOrdr.getDataCons();
|
||||
|
||||
boolean generaLottoProdAutomatico = UtilityString.equalsIgnoreCase(new SetupGest().getSetupDepo(conn, classNameOrdProd, "GENERA_LOTTO_PROD", "GENERA_LOTTO_AUTOMATICO", codMdep), "S");
|
||||
|
||||
@@ -424,7 +410,7 @@ public class ProductionBusinessLogic {
|
||||
String codJfasRow = null;
|
||||
Integer durataFasiPrec = 0, numFaseOld = 0;
|
||||
String untMisPRI = null, sql = null, fasiCicloProdOrdine = null, columnFaseCicloProdOrd = "", tableCicloProdOrd = "", columnFaseParentCicloProdOrd = "";
|
||||
Date dataConsRow = null, dataIniz = null, dataFine = null;
|
||||
LocalDateTime dataConsRow = null, dataIniz = null, dataFine = null;
|
||||
PreparedStatement ps = null;
|
||||
ResultSet rs = null;
|
||||
BigDecimal rapConvPRI = BigDecimal.ZERO;
|
||||
@@ -571,10 +557,7 @@ public class ProductionBusinessLogic {
|
||||
// Calcolo data consegna materiali per fase di lavoro
|
||||
if (assPeriodoFase) {
|
||||
if (numFase != numFaseOld) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(datiDist.getDataCons());
|
||||
cal.add(Calendar.DATE, durataFase);
|
||||
dataConsRow = cal.getTime();
|
||||
dataConsRow = datiDist.getDataCons().plusDays(durataFase);
|
||||
durataFasiPrec += durataFase;
|
||||
}
|
||||
}
|
||||
@@ -650,7 +633,7 @@ public class ProductionBusinessLogic {
|
||||
sql = "select id_attach " +
|
||||
"from drl_ord_attached " +
|
||||
" where gestione = " + UtilityDB.valueToString(ordT.getGestione()) + " AND " +
|
||||
" data_ord = " + UtilityDB.valueDateToString(ordT.getDataOrd(), CommonConstants.DATE_FORMAT_YMD) + " and " +
|
||||
" data_ord = " + UtilityDB.valueToString(ordT.getDataOrd()) + " and " +
|
||||
" num_ord = " + UtilityDB.valueToString(ordT.getNumOrd());
|
||||
ps = conn.prepareStatement(sql);
|
||||
rs = ps.executeQuery();
|
||||
@@ -752,13 +735,9 @@ public class ProductionBusinessLogic {
|
||||
}
|
||||
// Calcolo periodo produzione per fase
|
||||
if (assPeriodoFase) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(datiDist.getDataCons());
|
||||
cal.add(Calendar.DATE, durataFasiPrec);
|
||||
dataIniz = cal.getTime();
|
||||
cal.setTime(dataIniz);
|
||||
cal.add(Calendar.DATE, durataFase);
|
||||
dataFine = cal.getTime();
|
||||
|
||||
dataIniz = datiDist.getDataCons().plusDays(durataFasiPrec);
|
||||
dataFine = dataIniz.plusDays(durataFase);
|
||||
durataFasiPrec += durataFase;
|
||||
}
|
||||
|
||||
@@ -1073,7 +1052,7 @@ public class ProductionBusinessLogic {
|
||||
String codMdep = dtbOrdt.getCodMdep();
|
||||
String codVdes = dtbOrdt.getCodVdes();
|
||||
String activityID = dtbOrdt.getActivityId();
|
||||
Date dataOrd = dtbOrdt.getDataOrd();
|
||||
LocalDate dataOrd = dtbOrdt.getDataOrd();
|
||||
Integer numOrd = dtbOrdt.getNumOrd();
|
||||
String compilatoDa = dtbOrdt.getCompilatoDa();
|
||||
String userName = dtbOrdt.getUsername();
|
||||
@@ -1190,7 +1169,7 @@ public class ProductionBusinessLogic {
|
||||
|
||||
String codProd = row.getCodMart();
|
||||
LocalDate dataInizProd = row.getDataInizProd();
|
||||
Date dataOrdRif = row.getDataOrdRif();
|
||||
LocalDate dataOrdRif = row.getDataOrdRif();
|
||||
String descrizione = row.getDescrizione();
|
||||
String descrizioneEstesa = row.getDescrizioneEstesa();
|
||||
String partitaMag = row.getPartitaMag();
|
||||
@@ -1199,7 +1178,7 @@ public class ProductionBusinessLogic {
|
||||
BigDecimal rapConv = row.getRapConv();
|
||||
BigDecimal valUnt = row.getValUnt();
|
||||
Integer rigaOrd = row.getRigaOrd();
|
||||
Date dataCons = row.getDataCons();
|
||||
LocalDateTime dataCons = row.getDataCons();
|
||||
Integer numOrdRif = row.getNumOrdRif();
|
||||
String codJcom = row.getCodJcom();
|
||||
String note = row.getNote();
|
||||
@@ -1269,7 +1248,7 @@ public class ProductionBusinessLogic {
|
||||
"from (select gestione, data_ord, num_ord " +
|
||||
" from dtb_ordt " +
|
||||
" where dtb_ordt.gestione_rif = " + UtilityDB.valueToString(gestione) + " AND " +
|
||||
" dtb_ordt.data_ord_rif = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " AND " +
|
||||
" dtb_ordt.data_ord_rif = " + UtilityDB.valueToString(dataOrd) + " AND " +
|
||||
" dtb_ordt.num_ord_rif = " + UtilityDB.valueToString(numOrd.toString()) + " AND " +
|
||||
" dtb_ordt.riga_ord_rif = " + UtilityDB.valueToString(rigaOrd.toString()) + ") ordlav, " +
|
||||
" dtb_ordt, " +
|
||||
@@ -1284,7 +1263,7 @@ public class ProductionBusinessLogic {
|
||||
" dtb_ordt.data_ord = dtb_ord_steps.data_ord and " +
|
||||
" dtb_ordt.num_ord = dtb_ord_steps.num_ord and " +
|
||||
" dtb_ordt.gestione_rif = " + UtilityDB.valueToString(gestione) + " AND " +
|
||||
" dtb_ordt.data_ord_rif = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " AND " +
|
||||
" dtb_ordt.data_ord_rif = " + UtilityDB.valueToString(dataOrd) + " AND " +
|
||||
" dtb_ordt.num_ord_rif = " + UtilityDB.valueToString(numOrd.toString()) + " AND " +
|
||||
" dtb_ordt.riga_ord_rif = " + UtilityDB.valueToString(rigaOrd.toString()) + " " +
|
||||
" group by dtb_ordt.gestione, " +
|
||||
@@ -1306,7 +1285,7 @@ public class ProductionBusinessLogic {
|
||||
Date dataOrdLav = UtilityHashMap.getValueIfExists(datiOrdine, "data_ord");
|
||||
Integer numOrdLav = UtilityHashMap.getValueIfExists(datiOrdine, "num_ord");
|
||||
if (flagLock && checkLockProd) {
|
||||
throw new Exception("La produzione num. " + numOrdLav + " del " + (new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY).format(dataOrdLav)) + " è stata già avviata, non è pertanto possibile apportare modifiche");
|
||||
throw new Exception("La produzione num. " + numOrdLav + " del " + (new SimpleDateFormat(CommonConstants.DATE_FORMAT_DMY_SLASHED).format(dataOrdLav)) + " è stata già avviata, non è pertanto possibile apportare modifiche");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1314,7 +1293,7 @@ public class ProductionBusinessLogic {
|
||||
existOrd = true;
|
||||
sql = " select cod_jfas, activity_id, cod_jflav from dtb_ordt "
|
||||
+ "WHERE gestione_rif = " + UtilityDB.valueToString(gestione) + " AND "
|
||||
+ " data_ord_rif = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + " AND "
|
||||
+ " data_ord_rif = " + UtilityDB.valueToString(dataOrd) + " AND "
|
||||
+ " num_ord_rif = " + UtilityDB.valueToString(numOrd.toString()) + " AND "
|
||||
+ " riga_ord_rif = " + UtilityDB.valueToString(rigaOrd.toString());
|
||||
HashMap<String, Object> dati = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
|
||||
@@ -1396,7 +1375,7 @@ public class ProductionBusinessLogic {
|
||||
+ " jtb_cicl.qta_prod as qta_prod, "
|
||||
+ " jtb_cicl.gg_tot as gg_tot, "
|
||||
+ " DATEADD(day, " + ggLav + ", "
|
||||
+ UtilityDB.valueDateToString(dataCons, CommonConstants.DATE_FORMAT_YMD) + ") as data_cons "
|
||||
+ UtilityDB.valueToString(dataCons) + ") as data_cons "
|
||||
+ "FROM jtb_cicl "
|
||||
+ "WHERE jtb_cicl.cod_prod = " + UtilityDB.valueToString(codProd);
|
||||
|
||||
@@ -1432,7 +1411,7 @@ public class ProductionBusinessLogic {
|
||||
+ colCodJfas + " "
|
||||
+ " 1.0 as qta_prod, "
|
||||
+ " CAST(0 AS SMALLINT) as gg_tot, "
|
||||
+ UtilityDB.valueDateToString(dataCons, CommonConstants.DATE_FORMAT_YMD) + " as data_cons ";
|
||||
+ UtilityDB.valueToString(dataCons) + " as data_cons ";
|
||||
|
||||
HashMap<String, Object> datiArt = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
|
||||
if (UtilityHashMap.isPresent(datiArt)) {
|
||||
@@ -1464,7 +1443,7 @@ public class ProductionBusinessLogic {
|
||||
String tipoLotto = "P";
|
||||
JtbLott jtbLott = new JtbLott()
|
||||
.setCodJfas(codJfas)
|
||||
.setDataLotto(dataOrd)
|
||||
.setDataLotto(UtilityLocalDate.localDateToDate(dataOrd))
|
||||
.setTipoLotto(tipoLotto)
|
||||
.setCodJflav(codJflav);
|
||||
jtbLott.setOperation(OperationType.INSERT);
|
||||
@@ -1472,7 +1451,7 @@ public class ProductionBusinessLogic {
|
||||
}
|
||||
JtbLotr lotr = new JtbLotr()
|
||||
.setGestione(gestioneLav)
|
||||
.setDataOrd(dataOrd)
|
||||
.setDataOrd(UtilityLocalDate.localDateToDate(dataOrd))
|
||||
.setNumOrd(numOrdLav)
|
||||
.setIdRiga(0);
|
||||
lotr.setOperation(OperationType.INSERT);
|
||||
@@ -1489,8 +1468,8 @@ public class ProductionBusinessLogic {
|
||||
CommessaDTO datiComm = new CommessaDTO()
|
||||
.setCodAnag(codAnag)
|
||||
.setGestione(gestioneLav)
|
||||
.setDataOrd(dataOrd)
|
||||
.setDataCons(dataCons)
|
||||
.setDataOrd(UtilityLocalDate.localDateToDate(dataOrd))
|
||||
.setDataCons(UtilityLocalDate.localDateTimeToDate(dataCons))
|
||||
.setDataInizLav(UtilityLocalDate.localDateToDate(dataInizProd))
|
||||
.setNumOrd(numOrdLav)
|
||||
.setTipoAnag(tipoAnag)
|
||||
@@ -1601,7 +1580,7 @@ public class ProductionBusinessLogic {
|
||||
ExplodeDistDTO datiDist =
|
||||
new ExplodeDistDTO()
|
||||
.setGestione(gestione)
|
||||
.setDataOrd(dataOrd)
|
||||
.setDataOrd(UtilityLocalDate.localDateToDate(dataOrd))
|
||||
.setNumOrd(numOrd)
|
||||
.setCodProd(codProd)
|
||||
.setDataCons(dataCons)
|
||||
@@ -1684,7 +1663,7 @@ public class ProductionBusinessLogic {
|
||||
}
|
||||
}
|
||||
|
||||
public static void GenerateOrdLavTx(Connection conn, EntityBase dtbOrdt) throws Exception {
|
||||
public static void GenerateOrdLavTx(Connection conn, DtbOrdt dtbOrdt) throws Exception {
|
||||
String query;
|
||||
final String gestName = "W_TLPROD_RC";
|
||||
final String gestioneLav = "L";
|
||||
@@ -1696,23 +1675,23 @@ public class ProductionBusinessLogic {
|
||||
|
||||
|
||||
// Acquisizione dati testata ordine di produzione
|
||||
String gestione = (String) DroolsUtil.getEntityFieldValue(dtbOrdt, "gestione");
|
||||
Date dataOrd = (Date) DroolsUtil.getEntityFieldValue(dtbOrdt, "data_ord");
|
||||
Integer numOrd = (Integer) DroolsUtil.getEntityFieldValue(dtbOrdt, "num_ord");
|
||||
String codAnagDep = (String) DroolsUtil.getEntityFieldValue(dtbOrdt, "cod_anag");
|
||||
String codJcom = (String) DroolsUtil.getEntityFieldValue(dtbOrdt, "cod_jcom");
|
||||
String codJfas = (String) DroolsUtil.getEntityFieldValue(dtbOrdt, "cod_jfas");
|
||||
String itemID = (String) DroolsUtil.getEntityFieldValue(dtbOrdt, "item_id");
|
||||
String listino = (String) DroolsUtil.getEntityFieldValue(dtbOrdt, "listino");
|
||||
String codProd = (String) DroolsUtil.getEntityFieldValue(dtbOrdt, "cod_prod");
|
||||
String descrProd = (String) DroolsUtil.getEntityFieldValue(dtbOrdt, "descrizione_prod");
|
||||
String untMisProd = (String) DroolsUtil.getEntityFieldValue(dtbOrdt, "unt_mis_prod");
|
||||
BigDecimal rapConvProd = (BigDecimal) DroolsUtil.getEntityFieldValue(dtbOrdt, "rap_conv_prod");
|
||||
BigDecimal qtaProd = (BigDecimal) DroolsUtil.getEntityFieldValue(dtbOrdt, "qta_prod");
|
||||
String noteTestata = (String) DroolsUtil.getEntityFieldValue(dtbOrdt, "note");
|
||||
String rifOrd = (String) DroolsUtil.getEntityFieldValue(dtbOrdt, "rif_ord");
|
||||
Integer numFase = (Integer) DroolsUtil.getEntityFieldValue(dtbOrdt, "num_fase");
|
||||
String compilatoDa = (String) DroolsUtil.getEntityFieldValue(dtbOrdt, "compilato_da");
|
||||
String gestione = dtbOrdt.getGestione();
|
||||
LocalDate dataOrd = dtbOrdt.getDataOrd();
|
||||
Integer numOrd = dtbOrdt.getNumOrd();
|
||||
String codAnagDep = dtbOrdt.getCodAnag();
|
||||
String codJcom = dtbOrdt.getCodJcom();
|
||||
String codJfas = dtbOrdt.getCodJfas();
|
||||
String itemID = dtbOrdt.getItemId();
|
||||
String listino = dtbOrdt.getListino();
|
||||
String codProd = dtbOrdt.getCodProd();
|
||||
String descrProd = dtbOrdt.getDescrizioneProd();
|
||||
String untMisProd = dtbOrdt.getUntMisProd();
|
||||
BigDecimal rapConvProd = dtbOrdt.getRapConvProd();
|
||||
BigDecimal qtaProd = dtbOrdt.getQtaProd();
|
||||
String noteTestata = dtbOrdt.getNote();
|
||||
String rifOrd = dtbOrdt.getRifOrd();
|
||||
Integer numFase = dtbOrdt.getNumFase();
|
||||
String compilatoDa = dtbOrdt.getCompilatoDa();
|
||||
String userName = dtbOrdt.getUsername();
|
||||
|
||||
query = "select cod_mdep from mtb_depo where cod_anag = " + UtilityDB.valueToString(codAnagDep);
|
||||
@@ -1805,7 +1784,7 @@ public class ProductionBusinessLogic {
|
||||
|
||||
HashMap<String, Object> datiOrdL = UtilityDB.executeSimpleQueryOnlyFirstRow(conn, sql);
|
||||
if (datiOrdL != null && !datiOrdL.isEmpty()) {
|
||||
dtbOrdtTrasf.setDataOrd((Date) datiOrdL.get("data_ord"));
|
||||
dtbOrdtTrasf.setDataOrd(UtilityLocalDate.localDateFromDate((Date) datiOrdL.get("data_ord")));
|
||||
dtbOrdtTrasf.setNumOrd((Integer) datiOrdL.get("num_ord"));
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package it.integry.ems_model.business_logic.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -14,7 +15,7 @@ public class ExplodeDistDTO {
|
||||
private String codMdep;
|
||||
private BigDecimal qtaProd;
|
||||
private BigDecimal rapConv;
|
||||
private Date dataCons;
|
||||
private LocalDateTime dataCons;
|
||||
private String codJfasRow;
|
||||
private String codJfasDist;
|
||||
private String tipoValCosto;
|
||||
@@ -104,11 +105,11 @@ public class ExplodeDistDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataCons() {
|
||||
public LocalDateTime getDataCons() {
|
||||
return dataCons;
|
||||
}
|
||||
|
||||
public ExplodeDistDTO setDataCons(Date dataCons) {
|
||||
public ExplodeDistDTO setDataCons(LocalDateTime dataCons) {
|
||||
this.dataCons = dataCons;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ public class EmsRestConstants {
|
||||
|
||||
public static final String NIL = "NIL#";
|
||||
public static final String NULL = "[NULL]";
|
||||
public static final String NOT_NULL = "[NOT_NULL]";
|
||||
public static final Date DATE_NULL = new Date(-2208992400000L); // 1/1/1900
|
||||
public static final LocalDate LOCAL_DATE_NULL = LocalDate.of(1900, 1, 1); // 1/1/1900
|
||||
public static final LocalTime LOCAL_TIME_NULL = LocalTime.MAX; // 23:59:59.99999
|
||||
@@ -115,6 +116,7 @@ public class EmsRestConstants {
|
||||
public static final String PATH_USERS = PATH + "getUser";
|
||||
public static final String PATH_EXPORT_ORDINI_ACQ = PATH + "exportOrdiniAcquisto";
|
||||
public static final String PATH_PROCESS_REPORT = PATH + "processReport";
|
||||
public static final String PATH_DOWNLOAD_REPORT_LIST = PATH + "downloadReportList";
|
||||
public static final String PATH_DOWNLOAD_REPORT = PATH + "downloadReport";
|
||||
public static final String PATH_PROCESS_REPORT_TYPE = PATH + "processReportType";
|
||||
public static final String PATH_PRINT_REPORT_TYPE = PATH + "printReportType";
|
||||
@@ -178,6 +180,7 @@ public class EmsRestConstants {
|
||||
public static final String PATH_SAVE_PROPOSTA_ORDINE = PATH + "savePropostaOrdine";
|
||||
public static final String PATH_GET_COSTO_PRODOTTO = PATH + "getCostoProdotto";
|
||||
public static final String PATH_GET_COSTO_PRODOTTO_CC = PATH + "getCostoProdottoCC";
|
||||
public static final String PATH_GET_COLLI_BY_BARCODES = PATH + "getColliByBarcodes";
|
||||
public static final String PATH_GET_COLLO_BY_BARCODE = PATH + "getColloByBarcode";
|
||||
public static final String PATH_GET_COLLO_IN_GIAC = PATH + "getColloInGiac";
|
||||
public static final String PATH_GET_COLLI_IN_BASKET = PATH + "getColliInBasket";
|
||||
@@ -515,7 +518,7 @@ public class EmsRestConstants {
|
||||
public static final String PATH_WOO_SYNC_IMMAGINI = PATH + "syncImmagini";
|
||||
// PRODUCTION WAREHOUSE SERVICES
|
||||
public static final String PATH_WAREHOUSE_PRODUCTION_RETTIFICA = PATH + "rettificaMagazzinoProduzione";
|
||||
public static final String PATH_WAREHOUSE_PRODUCTION_DELETE_COLLO = PATH + "cancellaColloDaProduzione";
|
||||
public static final String PATH_WAREHOUSE_PRODUCTION_DELETE_CARICO = PATH + "cancellaCaricoDaProduzione";
|
||||
|
||||
// NOTIFICATION SERVICES
|
||||
public static final String GROUP_NOTIF = PATH + "notification";
|
||||
|
||||
@@ -113,6 +113,11 @@ public class ResultSetMapper {
|
||||
fields = outputClass.getDeclaredFields();
|
||||
}
|
||||
|
||||
if(outputClass.getSuperclass() != null && !outputClass.getSuperclass().isPrimitive() && !EntityBase.class.isAssignableFrom(outputClass)) {
|
||||
Field[] superFields = outputClass.getSuperclass().getDeclaredFields();
|
||||
fields = java.util.stream.Stream.concat(Arrays.stream(fields), Arrays.stream(superFields)).toArray(Field[]::new);
|
||||
}
|
||||
|
||||
outputList = internalMappingList(rs, outputClass, fields);
|
||||
|
||||
if (outputList != null && !outputList.isEmpty() && EntityBase.class.isAssignableFrom(outputClass)) {
|
||||
|
||||
@@ -10,6 +10,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
@PropertyReactive
|
||||
@@ -40,7 +41,7 @@ public class ArlSchaccDoc extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_doc", nullable = false, defaultObjectValue = CommonConstants.SYSDATE)
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "num_doc", nullable = false, defaultObjectValue = "0")
|
||||
@@ -86,11 +87,11 @@ public class ArlSchaccDoc extends EntityBase {
|
||||
this.codDtip = codDtip;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public void setDataDoc(Date dataDoc) {
|
||||
public void setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
@PropertyReactive
|
||||
@@ -37,7 +38,7 @@ public class ArlSchaccOrd extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_ord", nullable = false, defaultObjectValue = CommonConstants.SYSDATE)
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "num_ord", nullable = false, defaultObjectValue = "0")
|
||||
@@ -71,11 +72,11 @@ public class ArlSchaccOrd extends EntityBase {
|
||||
this.gestione = gestione;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public void setDataOrd(Date dataOrd) {
|
||||
public void setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,9 @@ public class AtbTipi extends EntityBase {
|
||||
@SqlField(value = "descrizione", maxLength = 40, nullable = false)
|
||||
private String descrizione;
|
||||
|
||||
@SqlField(value = "socio_aziendale", nullable = false)
|
||||
private Boolean socioAziendale = false;
|
||||
|
||||
public AtbTipi() {
|
||||
super(logger);
|
||||
}
|
||||
@@ -48,4 +51,13 @@ public class AtbTipi extends EntityBase {
|
||||
public void setDescrizione(String descrizione) {
|
||||
this.descrizione = descrizione;
|
||||
}
|
||||
|
||||
public Boolean getSocioAziendale() {
|
||||
return socioAziendale;
|
||||
}
|
||||
|
||||
public AtbTipi setSocioAziendale(Boolean socioAziendale) {
|
||||
this.socioAziendale = socioAziendale;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.SQLException;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
|
||||
@@ -70,7 +71,7 @@ public class Azienda extends EntityBase {
|
||||
private Integer annoAttuale;
|
||||
|
||||
@SqlField(value = "ult_data_gio")
|
||||
private Date ultDataGio;
|
||||
private LocalDate ultDataGio;
|
||||
|
||||
@SqlField(value = "ult_num_gio")
|
||||
private Integer ultNumGio;
|
||||
@@ -406,11 +407,11 @@ public class Azienda extends EntityBase {
|
||||
this.annoAttuale = annoAttuale;
|
||||
}
|
||||
|
||||
public Date getUltDataGio() {
|
||||
public LocalDate getUltDataGio() {
|
||||
return ultDataGio;
|
||||
}
|
||||
|
||||
public void setUltDataGio(Date ultDataGio) {
|
||||
public void setUltDataGio(LocalDate ultDataGio) {
|
||||
this.ultDataGio = ultDataGio;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.util.Date;
|
||||
import java.time.LocalDate;
|
||||
|
||||
@PropertyReactive
|
||||
@Table(DrlDocAttached.ENTITY)
|
||||
@@ -32,7 +32,7 @@ public class DrlDocAttached extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_doc", nullable = false)
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "num_doc", nullable = false)
|
||||
@@ -68,11 +68,11 @@ public class DrlDocAttached extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public DrlDocAttached setDataDoc(Date dataDoc) {
|
||||
public DrlDocAttached setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.util.Date;
|
||||
import java.time.LocalDate;
|
||||
|
||||
@PropertyReactive
|
||||
@Table(DrlOrdAttached.ENTITY)
|
||||
@@ -28,7 +28,7 @@ public class DrlOrdAttached extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_ord", nullable = false)
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "num_ord", nullable = false)
|
||||
@@ -50,11 +50,11 @@ public class DrlOrdAttached extends EntityBase {
|
||||
this.gestione = gestione;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public void setDataOrd(Date dataOrd) {
|
||||
public void setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.util.Date;
|
||||
import java.time.LocalDate;
|
||||
|
||||
@PropertyReactive
|
||||
@Table(DtbDocCarat.ENTITY)
|
||||
@@ -36,7 +36,7 @@ public class DtbDocCarat extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_doc", nullable = false)
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "num_doc", nullable = false)
|
||||
@@ -80,11 +80,11 @@ public class DtbDocCarat extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public DtbDocCarat setDataDoc(Date dataDoc) {
|
||||
public DtbDocCarat setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.util.Date;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
@PropertyReactive()
|
||||
@@ -43,7 +43,7 @@ public class DtbDocImb extends EntityBase {
|
||||
@Unique
|
||||
@SqlField(value = "data_doc", nullable = false)
|
||||
@FK(tableName = DtbDoct.ENTITY, columnName = "data_doc")
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@Unique
|
||||
@SqlField(value = "ser_doc", maxLength = 2, nullable = false)
|
||||
@@ -96,11 +96,11 @@ public class DtbDocImb extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public DtbDocImb setDataDoc(Date dataDoc) {
|
||||
public DtbDocImb setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
@Master
|
||||
@@ -44,7 +45,7 @@ public class DtbDocLogImport extends EntityBase {
|
||||
private String codDtip;
|
||||
|
||||
@SqlField(value = "data_doc")
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@SqlField(value = "descrizione", maxLength = 4096)
|
||||
private String descrizione;
|
||||
@@ -126,11 +127,11 @@ public class DtbDocLogImport extends EntityBase {
|
||||
this.codDtip = codDtip;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public void setDataDoc(Date dataDoc) {
|
||||
public void setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
@Master
|
||||
@@ -37,7 +38,7 @@ public class DtbDocPdf extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_doc", nullable = false)
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "num_doc", nullable = false)
|
||||
@@ -100,11 +101,11 @@ public class DtbDocPdf extends EntityBase {
|
||||
this.codDtip = codDtip;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public void setDataDoc(Date dataDoc) {
|
||||
public void setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
@Master
|
||||
@@ -38,7 +39,7 @@ public class DtbDocXml extends EntityBase {
|
||||
private String codDtip;
|
||||
|
||||
@SqlField(value = "data_doc", nullable = false)
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@SqlField(value = "num_doc", nullable = false)
|
||||
private Integer numDoc;
|
||||
@@ -140,11 +141,11 @@ public class DtbDocXml extends EntityBase {
|
||||
this.codDtip = codDtip;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public void setDataDoc(Date dataDoc) {
|
||||
public void setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.util.Date;
|
||||
import java.time.LocalDate;
|
||||
|
||||
@PropertyReactive()
|
||||
@Table(value = DtbDocp.ENTITY)
|
||||
@@ -39,7 +39,7 @@ public class DtbDocp extends EntityBase {
|
||||
|
||||
@SqlField(value = "data_doc", nullable = false)
|
||||
@FK(tableName = DtbDoct.ENTITY, columnName = "data_doc")
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@SqlField(value = "ser_doc", maxLength = 2, nullable = false)
|
||||
@FK(tableName = DtbDoct.ENTITY, columnName = "ser_doc")
|
||||
@@ -79,11 +79,11 @@ public class DtbDocp extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public DtbDocp setDataDoc(Date dataDoc) {
|
||||
public DtbDocp setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ public class DtbDocr extends DtbBaseDocR implements EquatableEntityInterface<Dtb
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_doc", nullable = false)
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@PK
|
||||
@SqlDetailId
|
||||
@@ -91,10 +91,10 @@ public class DtbDocr extends DtbBaseDocR implements EquatableEntityInterface<Dtb
|
||||
private BigDecimal costoUnt;
|
||||
|
||||
@SqlField(value = "data_doc_comp", nullable = false)
|
||||
private Date dataDocComp;
|
||||
private LocalDate dataDocComp;
|
||||
|
||||
@SqlField(value = "data_ord")
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@SqlField(value = "descrizione", maxLength = 40, nullable = false)
|
||||
private String descrizione;
|
||||
@@ -345,7 +345,7 @@ public class DtbDocr extends DtbBaseDocR implements EquatableEntityInterface<Dtb
|
||||
private String tipoEmissione;
|
||||
|
||||
@ImportFromParent
|
||||
private Date dataReg;
|
||||
private LocalDate dataReg;
|
||||
|
||||
private String codCcon;
|
||||
|
||||
@@ -402,11 +402,11 @@ public class DtbDocr extends DtbBaseDocR implements EquatableEntityInterface<Dtb
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public DtbDocr setDataDoc(Date dataDoc) {
|
||||
public DtbDocr setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
return this;
|
||||
}
|
||||
@@ -537,20 +537,20 @@ public class DtbDocr extends DtbBaseDocR implements EquatableEntityInterface<Dtb
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataDocComp() {
|
||||
public LocalDate getDataDocComp() {
|
||||
return dataDocComp;
|
||||
}
|
||||
|
||||
public DtbDocr setDataDocComp(Date dataDocComp) {
|
||||
public DtbDocr setDataDocComp(LocalDate dataDocComp) {
|
||||
this.dataDocComp = dataDocComp;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public DtbDocr setDataOrd(Date dataOrd) {
|
||||
public DtbDocr setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
@@ -1303,11 +1303,11 @@ public class DtbDocr extends DtbBaseDocR implements EquatableEntityInterface<Dtb
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataReg() {
|
||||
public LocalDate getDataReg() {
|
||||
return dataReg;
|
||||
}
|
||||
|
||||
public DtbDocr setDataReg(Date dataReg) {
|
||||
public DtbDocr setDataReg(LocalDate dataReg) {
|
||||
this.dataReg = dataReg;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -33,7 +34,7 @@ public class DtbDocs extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_doc", nullable = false)
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "num_doc", nullable = false)
|
||||
@@ -149,11 +150,11 @@ public class DtbDocs extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public DtbDocs setDataDoc(Date dataDoc) {
|
||||
public DtbDocs setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -11,9 +11,11 @@ import it.integry.ems_model.annotation.*;
|
||||
import it.integry.ems_model.base.EquatableEntityInterface;
|
||||
import it.integry.ems_model.entity.common.DtbBaseDocT;
|
||||
import it.integry.ems_model.entity.common.DtbDocOrdR;
|
||||
import it.integry.ems_model.entity.key.DtbDoctKey;
|
||||
import it.integry.ems_model.rules.completing.DocumentExtEntityRules;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityLocalDate;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
@@ -21,8 +23,9 @@ import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.*;
|
||||
import java.util.Date;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.Date;
|
||||
|
||||
@Master
|
||||
@PropertyReactive
|
||||
@@ -47,7 +50,7 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_doc", nullable = false, defaultObjectValue = CommonConstants.SYSDATE)
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "num_doc", nullable = false, defaultObjectValue = "0")
|
||||
@@ -154,10 +157,10 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
|
||||
private Date dataIns;
|
||||
|
||||
@SqlField(value = "data_ord")
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@SqlField(value = "data_reg", nullable = false, defaultObjectValue = CommonConstants.SYSDATE)
|
||||
private Date dataReg;
|
||||
private LocalDate dataReg;
|
||||
|
||||
@SqlField(value = "data_rif_scad")
|
||||
private Date dataRifScad;
|
||||
@@ -417,7 +420,7 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
|
||||
super(logger);
|
||||
}
|
||||
|
||||
public DtbDoct(String codAnag, String codDtip, Date dataDoc, Integer numDoc, String serDoc) {
|
||||
public DtbDoct(String codAnag, String codDtip, LocalDate dataDoc, Integer numDoc, String serDoc) {
|
||||
super(logger);
|
||||
this.codAnag = codAnag;
|
||||
this.codDtip = codDtip;
|
||||
@@ -426,6 +429,17 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
|
||||
this.serDoc = serDoc;
|
||||
}
|
||||
|
||||
|
||||
public DtbDoctKey getKey() {
|
||||
return UtilityString.isNullOrEmpty(gestione) ||
|
||||
UtilityString.isNullOrEmpty(codDtip) ||
|
||||
UtilityString.isNullOrEmpty(codAnag) ||
|
||||
dataDoc == null ||
|
||||
numDoc == null ?
|
||||
null :
|
||||
new DtbDoctKey(codAnag, codDtip, dataDoc, numDoc, serDoc);
|
||||
}
|
||||
|
||||
public String getCodAnag() {
|
||||
return codAnag;
|
||||
}
|
||||
@@ -444,11 +458,11 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public DtbDoct setDataDoc(Date dataDoc) {
|
||||
public DtbDoct setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
return this;
|
||||
}
|
||||
@@ -750,20 +764,20 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public DtbDoct setDataOrd(Date dataOrd) {
|
||||
public DtbDoct setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataReg() {
|
||||
public LocalDate getDataReg() {
|
||||
return dataReg;
|
||||
}
|
||||
|
||||
public DtbDoct setDataReg(Date dataReg) {
|
||||
public DtbDoct setDataReg(LocalDate dataReg) {
|
||||
this.dataReg = dataReg;
|
||||
return this;
|
||||
}
|
||||
@@ -1660,7 +1674,7 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
|
||||
|
||||
private void deleteDocVal() throws Exception {
|
||||
if (UtilityString.equalsIgnoreCase(tipoEmissione, String.valueOf(TipoEmissione.DIFFERITA)) && getOperation() != OperationType.NO_OP) {
|
||||
String sql = "UPDATE dtb_doct " + " SET cod_dtip_val = null, " + " data_doc_val = null, " + " ser_doc_val = null, " + " num_doc_val = null " + " WHERE cod_dtip_val = " + UtilityDB.valueToString(this.getCodDtip()) + " AND " + " data_doc_val = " + UtilityDB.valueDateToString(this.getDataDoc(), CommonConstants.DATE_FORMAT_YMD) + " AND " + " ser_doc_val = " + UtilityDB.valueToString(this.getSerDoc()) + " AND " + " num_doc_val = " + UtilityDB.valueToString(this.getNumDoc()) + " AND " + " cod_anag = " + UtilityDB.valueToString(this.getCodAnag()) + " AND " + " cod_dtip <> cod_dtip_val";
|
||||
String sql = "UPDATE dtb_doct " + " SET cod_dtip_val = null, " + " data_doc_val = null, " + " ser_doc_val = null, " + " num_doc_val = null " + " WHERE cod_dtip_val = " + UtilityDB.valueToString(this.getCodDtip()) + " AND " + " data_doc_val = " + UtilityDB.valueToString(this.getDataDoc()) + " AND " + " ser_doc_val = " + UtilityDB.valueToString(this.getSerDoc()) + " AND " + " num_doc_val = " + UtilityDB.valueToString(this.getNumDoc()) + " AND " + " cod_anag = " + UtilityDB.valueToString(this.getCodAnag()) + " AND " + " cod_dtip <> cod_dtip_val";
|
||||
Statement cmd = connection.createStatement();
|
||||
cmd.executeUpdate(sql);
|
||||
cmd.close();
|
||||
@@ -1707,7 +1721,7 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
|
||||
ctbMovt.setNumCmov(numCmov);
|
||||
ctbMovt.setCodAnag(getCodAnag());
|
||||
ctbMovt.setTipoAnag(getTipoAnag());
|
||||
ctbMovt.setDataDoc(getDataDoc());
|
||||
ctbMovt.setDataDoc(UtilityLocalDate.localDateToDate(getDataDoc()));
|
||||
ctbMovt.setFlagCheckPlafond(getFlagCheckPlafond());
|
||||
ctbMovt.setCodCcau(getDtbTipi().getCodCcau());
|
||||
}
|
||||
@@ -1722,7 +1736,7 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
|
||||
return;
|
||||
String codAnag, codDtip, serDoc, codAnagOld, codDtipOld, serDocOld;
|
||||
Integer numDoc, numDocOld;
|
||||
Date dataDoc, dataDocOld;
|
||||
LocalDate dataDoc, dataDocOld;
|
||||
codAnag = getCodAnag();
|
||||
codDtip = getCodDtip();
|
||||
dataDoc = getDataDoc();
|
||||
@@ -1744,9 +1758,9 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
|
||||
}else if (fieldName.equalsIgnoreCase("dataDoc")) {
|
||||
Object value = dati.getValue();
|
||||
if (value instanceof String )
|
||||
dataDocOld = UtilityString.parseDate((String) oldPk.get("dataDoc"));
|
||||
dataDocOld = UtilityString.parseLocalDate((String) oldPk.get("dataDoc"));
|
||||
else
|
||||
dataDocOld = (Date) value;
|
||||
dataDocOld = UtilityLocalDate.localDateFromDate((Date) value);
|
||||
} else if (fieldName.equalsIgnoreCase("serDoc")) {
|
||||
serDocOld = (String) dati.getValue();
|
||||
}
|
||||
@@ -1779,13 +1793,13 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
|
||||
//CallableStatement StoredProcedure = connection.prepareCall("{call UpdProgMaga(?,?,?,?,?,?,?,?,?,?,?,?)}");
|
||||
StoredProcedure.setString(1, codAnag);
|
||||
StoredProcedure.setString(2, codDtip);
|
||||
StoredProcedure.setTimestamp(3, new Timestamp(dataDoc.getTime()));
|
||||
StoredProcedure.setTimestamp(3, new Timestamp(UtilityLocalDate.localDateToDate(dataDoc).getTime()));
|
||||
StoredProcedure.setString(4, serDoc);
|
||||
StoredProcedure.setInt(5, numDoc.intValue());
|
||||
StoredProcedure.setLong(6, segno);
|
||||
StoredProcedure.setString(7, codAnagOld);
|
||||
StoredProcedure.setString(8, codDtipOld);
|
||||
StoredProcedure.setTimestamp(9, new Timestamp(dataDocOld.getTime()));
|
||||
StoredProcedure.setTimestamp(9, new Timestamp(UtilityLocalDate.localDateToDate(dataDocOld).getTime()));
|
||||
StoredProcedure.setString(10, serDocOld);
|
||||
StoredProcedure.setInt(11, numDocOld.intValue());
|
||||
StoredProcedure.setString(12, operation);
|
||||
@@ -1805,7 +1819,7 @@ public class DtbDoct extends DtbBaseDocT implements EquatableEntityInterface<Dtb
|
||||
}
|
||||
|
||||
private void updateNtbDoct(NtbDoct ntbDoct) throws SQLException {
|
||||
String sql = "UPDATE ntb_doct " + " SET ntb_doct.cod_anag_val = " + UtilityDB.valueToString(getCodAnag()) + ", " + "ntb_doct.cod_dtip_val = " + UtilityDB.valueToString(getCodDtip()) + ", " + "ntb_doct.data_doc_val = " + UtilityDB.valueDateToString(getDataDoc(), CommonConstants.DATE_FORMAT_YMD) + ", " + "ntb_doct.ser_doc_val = " + UtilityDB.valueToString(getSerDoc()) + " , " + "ntb_doct.num_doc_val = " + UtilityDB.valueToString(getNumDoc()) + " WHERE ntb_doct.cod_dtip_val is null ";
|
||||
String sql = "UPDATE ntb_doct " + " SET ntb_doct.cod_anag_val = " + UtilityDB.valueToString(getCodAnag()) + ", " + "ntb_doct.cod_dtip_val = " + UtilityDB.valueToString(getCodDtip()) + ", " + "ntb_doct.data_doc_val = " + UtilityDB.valueToString(getDataDoc()) + ", " + "ntb_doct.ser_doc_val = " + UtilityDB.valueToString(getSerDoc()) + " , " + "ntb_doct.num_doc_val = " + UtilityDB.valueToString(getNumDoc()) + " WHERE ntb_doct.cod_dtip_val is null ";
|
||||
sql = UtilityDB.addwhereCond(sql, ntbDoct.getWhereCond(), false);
|
||||
PreparedStatement ps = connection.prepareStatement(sql);
|
||||
ps.executeUpdate();
|
||||
|
||||
@@ -7,6 +7,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
@Master
|
||||
@@ -43,7 +44,7 @@ public class DtbDoctCambioTipoDoc extends EntityBase {
|
||||
private Date dataChk;
|
||||
|
||||
@SqlField(value = "data_doc", nullable = false)
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@SqlField(value = "data_cmov", nullable = false)
|
||||
private Date dataCmov;
|
||||
@@ -111,11 +112,11 @@ public class DtbDoctCambioTipoDoc extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public DtbDoctCambioTipoDoc setDataDoc(Date dataDoc) {
|
||||
public DtbDoctCambioTipoDoc setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
@Master
|
||||
@@ -50,7 +51,7 @@ public class DtbDocuLog extends EntityBase {
|
||||
private String codDtip;
|
||||
|
||||
@SqlField(value = "data_doc", nullable = false)
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@SqlField(value = "note", maxLength = 1024)
|
||||
private String note;
|
||||
@@ -134,11 +135,11 @@ public class DtbDocuLog extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public DtbDocuLog setDataDoc(Date dataDoc) {
|
||||
public DtbDocuLog setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -11,8 +11,8 @@ import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Master
|
||||
@@ -36,7 +36,7 @@ public class DtbFatturePassive extends EntityBase {
|
||||
private String idAttach;
|
||||
|
||||
@SqlField(value = "data_doc")
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@SqlField(value = "iban", maxLength = 40)
|
||||
private String iban;
|
||||
@@ -77,11 +77,11 @@ public class DtbFatturePassive extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public DtbFatturePassive setDataDoc(Date dataDoc) {
|
||||
public DtbFatturePassive setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -3,11 +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 it.integry.ems_model.entity._enum.TipoValore;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
import it.integry.ems_model.entity._enum.TipoValore;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -25,7 +26,7 @@ public class DtbOrdCq extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_ord", nullable = false)
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "gestione", maxLength = 1, nullable = false)
|
||||
@@ -74,11 +75,11 @@ public class DtbOrdCq extends EntityBase {
|
||||
super(logger);
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public DtbOrdCq setDataOrd(Date dataOrd) {
|
||||
public DtbOrdCq setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
@PropertyReactive
|
||||
@@ -25,7 +26,7 @@ public class DtbOrdCqr extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_ord", nullable = false)
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "gestione", maxLength = 1, nullable = false)
|
||||
@@ -59,11 +60,11 @@ public class DtbOrdCqr extends EntityBase {
|
||||
super(logger);
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public void setDataOrd(Date dataOrd) {
|
||||
public void setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.util.Date;
|
||||
import java.time.LocalDate;
|
||||
|
||||
@PropertyReactive
|
||||
@Table(DtbOrdL.ENTITY)
|
||||
@@ -25,7 +25,7 @@ public class DtbOrdL extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_ord", nullable = false)
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "gestione", maxLength = 1, nullable = false)
|
||||
@@ -50,11 +50,11 @@ public class DtbOrdL extends EntityBase {
|
||||
super(logger);
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public void setDataOrd(Date dataOrd) {
|
||||
public void setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Master
|
||||
@@ -37,7 +38,7 @@ public class DtbOrdLogImport extends EntityBase {
|
||||
private String gestione;
|
||||
|
||||
@SqlField(value = "data_ord")
|
||||
private LocalDateTime dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@SqlField(value = "num_ord")
|
||||
private Integer numOrd;
|
||||
@@ -100,11 +101,11 @@ public class DtbOrdLogImport extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public LocalDateTime getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public DtbOrdLogImport setDataOrd(LocalDateTime dataOrd) {
|
||||
public DtbOrdLogImport setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
@PropertyReactive
|
||||
@@ -26,7 +27,7 @@ public class DtbOrdMacc extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_ord", nullable = false)
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "gestione", maxLength = 1, nullable = false)
|
||||
@@ -66,11 +67,11 @@ public class DtbOrdMacc extends EntityBase {
|
||||
super(logger);
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public void setDataOrd(Date dataOrd) {
|
||||
public void setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
@Master
|
||||
@@ -33,7 +34,7 @@ public class DtbOrdPdf extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_ord", nullable = false)
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "num_ord", nullable = false)
|
||||
@@ -80,11 +81,11 @@ public class DtbOrdPdf extends EntityBase {
|
||||
this.gestione = gestione;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public void setDataOrd(Date dataOrd) {
|
||||
public void setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,8 @@ import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@PropertyReactive
|
||||
@Table(DtbOrdSteps.ENTITY)
|
||||
@@ -26,7 +27,7 @@ public class DtbOrdSteps extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_ord", nullable = false)
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "gestione", maxLength = 1, nullable = false)
|
||||
@@ -67,10 +68,10 @@ public class DtbOrdSteps extends EntityBase {
|
||||
private String dataDoc;
|
||||
|
||||
@SqlField(value = "data_fine")
|
||||
private Date dataFine;
|
||||
private LocalDateTime dataFine;
|
||||
|
||||
@SqlField(value = "data_iniz")
|
||||
private Date dataIniz;
|
||||
private LocalDateTime dataIniz;
|
||||
|
||||
@SqlField(value = "descrizione_attivita", maxLength = 1024)
|
||||
private String descrizioneAttivita;
|
||||
@@ -135,15 +136,18 @@ public class DtbOrdSteps extends EntityBase {
|
||||
@SqlField(value = "flag_step_attivo", maxLength = 1, nullable = false, defaultObjectValue = "S")
|
||||
private String flagStepAttivo;
|
||||
|
||||
@SqlField(value = "posizione_out", maxLength = 40)
|
||||
private String posizioneOut;
|
||||
|
||||
public DtbOrdSteps() {
|
||||
super(logger);
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public DtbOrdSteps setDataOrd(Date dataOrd) {
|
||||
public DtbOrdSteps setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
@@ -247,20 +251,20 @@ public class DtbOrdSteps extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataFine() {
|
||||
public LocalDateTime getDataFine() {
|
||||
return dataFine;
|
||||
}
|
||||
|
||||
public DtbOrdSteps setDataFine(Date dataFine) {
|
||||
public DtbOrdSteps setDataFine(LocalDateTime dataFine) {
|
||||
this.dataFine = dataFine;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataIniz() {
|
||||
public LocalDateTime getDataIniz() {
|
||||
return dataIniz;
|
||||
}
|
||||
|
||||
public DtbOrdSteps setDataIniz(Date dataIniz) {
|
||||
public DtbOrdSteps setDataIniz(LocalDateTime dataIniz) {
|
||||
this.dataIniz = dataIniz;
|
||||
return this;
|
||||
}
|
||||
@@ -453,4 +457,13 @@ public class DtbOrdSteps extends EntityBase {
|
||||
this.flagStepAttivo = flagStepAttivo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getPosizioneOut() {
|
||||
return posizioneOut;
|
||||
}
|
||||
|
||||
public DtbOrdSteps setPosizioneOut(String posizioneOut) {
|
||||
this.posizioneOut = posizioneOut;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
|
||||
@PropertyReactive
|
||||
@@ -31,7 +32,7 @@ public class DtbOrdr extends DtbOrdCommonR implements EquatableEntityInterface<D
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_ord", nullable = false)
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "gestione", maxLength = 1, nullable = false)
|
||||
@@ -91,7 +92,7 @@ public class DtbOrdr extends DtbOrdCommonR implements EquatableEntityInterface<D
|
||||
private BigDecimal colliPedana;
|
||||
|
||||
@SqlField(value = "data_cons", format = CommonConstants.SYSDATE)
|
||||
private Date dataCons;
|
||||
private LocalDateTime dataCons;
|
||||
|
||||
@SqlField(value = "descrizione", maxLength = 40, nullable = false)
|
||||
private String descrizione;
|
||||
@@ -337,7 +338,7 @@ public class DtbOrdr extends DtbOrdCommonR implements EquatableEntityInterface<D
|
||||
|
||||
private LocalDate dataInizProd;
|
||||
|
||||
private Date dataOrdRif;
|
||||
private LocalDate dataOrdRif;
|
||||
|
||||
private Integer numOrdRif;
|
||||
|
||||
@@ -368,11 +369,11 @@ public class DtbOrdr extends DtbOrdCommonR implements EquatableEntityInterface<D
|
||||
super(logger);
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public DtbOrdr setDataOrd(Date dataOrd) {
|
||||
public DtbOrdr setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
@@ -542,11 +543,11 @@ public class DtbOrdr extends DtbOrdCommonR implements EquatableEntityInterface<D
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataCons() {
|
||||
public LocalDateTime getDataCons() {
|
||||
return dataCons;
|
||||
}
|
||||
|
||||
public DtbOrdr setDataCons(Date dataCons) {
|
||||
public DtbOrdr setDataCons(LocalDateTime dataCons) {
|
||||
this.dataCons = dataCons;
|
||||
return this;
|
||||
}
|
||||
@@ -1314,11 +1315,11 @@ public class DtbOrdr extends DtbOrdCommonR implements EquatableEntityInterface<D
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrdRif() {
|
||||
public LocalDate getDataOrdRif() {
|
||||
return dataOrdRif;
|
||||
}
|
||||
|
||||
public DtbOrdr setDataOrdRif(Date dataOrdRif) {
|
||||
public DtbOrdr setDataOrdRif(LocalDate dataOrdRif) {
|
||||
this.dataOrdRif = dataOrdRif;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -86,7 +87,7 @@ public class DtbOrdrPianProd extends EntityBase {
|
||||
private String gestione;
|
||||
|
||||
@SqlField(value = "data_ord")
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@SqlField(value = "num_ord")
|
||||
private Integer numOrd;
|
||||
@@ -284,11 +285,11 @@ public class DtbOrdrPianProd extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public DtbOrdrPianProd setDataOrd(Date dataOrd) {
|
||||
public DtbOrdrPianProd setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Objects;
|
||||
|
||||
@PropertyReactive
|
||||
@@ -26,7 +26,7 @@ public class DtbOrds extends EntityBase implements EquatableEntityInterface<DtbO
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_ord", nullable = false)
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "gestione", maxLength = 1, nullable = false)
|
||||
@@ -91,11 +91,11 @@ public class DtbOrds extends EntityBase implements EquatableEntityInterface<DtbO
|
||||
super(logger);
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public DtbOrds setDataOrd(Date dataOrd) {
|
||||
public DtbOrds setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ import it.integry.ems_model.types.ApplicationName;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.Query;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityLocalDate;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
@@ -27,6 +26,7 @@ import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -46,7 +46,7 @@ public class DtbOrdt extends DtbDocOrdT implements EquatableEntityInterface<DtbO
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_ord", nullable = false, format = CommonConstants.SYSDATE)
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "gestione", maxLength = 1, nullable = false)
|
||||
@@ -150,7 +150,7 @@ public class DtbOrdt extends DtbDocOrdT implements EquatableEntityInterface<DtbO
|
||||
private String controllatoDa;
|
||||
|
||||
@SqlField(value = "data_cons_prod")
|
||||
private Date dataConsProd;
|
||||
private LocalDateTime dataConsProd;
|
||||
|
||||
@SqlField(value = "data_cons_prod_max")
|
||||
private Date dataConsProdMax;
|
||||
@@ -171,7 +171,7 @@ public class DtbOrdt extends DtbDocOrdT implements EquatableEntityInterface<DtbO
|
||||
private Date dataInsOrd;
|
||||
|
||||
@SqlField(value = "data_ord_rif")
|
||||
private Date dataOrdRif;
|
||||
private LocalDate dataOrdRif;
|
||||
|
||||
@SqlField(value = "rif_data_ord")
|
||||
private Date rifDataOrd;
|
||||
@@ -485,15 +485,15 @@ public class DtbOrdt extends DtbDocOrdT implements EquatableEntityInterface<DtbO
|
||||
public DtbOrdt(String gestione, LocalDate dataOrd,Integer numOrd) {
|
||||
super(logger);
|
||||
this.gestione = gestione;
|
||||
this.dataOrd = UtilityLocalDate.localDateToDate(dataOrd);
|
||||
this.dataOrd = dataOrd;
|
||||
this.numOrd = numOrd;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public DtbOrdt setDataOrd(Date dataOrd) {
|
||||
public DtbOrdt setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
@@ -795,11 +795,11 @@ public class DtbOrdt extends DtbDocOrdT implements EquatableEntityInterface<DtbO
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataConsProd() {
|
||||
public LocalDateTime getDataConsProd() {
|
||||
return dataConsProd;
|
||||
}
|
||||
|
||||
public DtbOrdt setDataConsProd(Date dataConsProd) {
|
||||
public DtbOrdt setDataConsProd(LocalDateTime dataConsProd) {
|
||||
this.dataConsProd = dataConsProd;
|
||||
return this;
|
||||
}
|
||||
@@ -858,11 +858,11 @@ public class DtbOrdt extends DtbDocOrdT implements EquatableEntityInterface<DtbO
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrdRif() {
|
||||
public LocalDate getDataOrdRif() {
|
||||
return dataOrdRif;
|
||||
}
|
||||
|
||||
public DtbOrdt setDataOrdRif(Date dataOrdRif) {
|
||||
public DtbOrdt setDataOrdRif(LocalDate dataOrdRif) {
|
||||
this.dataOrdRif = dataOrdRif;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.time.LocalDate;
|
||||
|
||||
@PropertyReactive
|
||||
@Table(JrlDisOrd.ENTITY)
|
||||
@@ -30,7 +30,7 @@ public class JrlDisOrd extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_ord", nullable = false)
|
||||
private Date dataOrd;
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "gestione", maxLength = 1, nullable = false)
|
||||
@@ -61,11 +61,11 @@ public class JrlDisOrd extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
public LocalDate getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public JrlDisOrd setDataOrd(Date dataOrd) {
|
||||
public JrlDisOrd setDataOrd(LocalDate dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.util.Date;
|
||||
import java.time.LocalDate;
|
||||
|
||||
@PropertyReactive
|
||||
@Table(JrlSchmacDoc.ENTITY)
|
||||
@@ -37,7 +37,7 @@ public class JrlSchmacDoc extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data_doc", nullable = false, defaultObjectValue = CommonConstants.SYSDATE)
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@PK
|
||||
@SqlField(value = "num_doc", nullable = false, defaultObjectValue = "0")
|
||||
@@ -75,11 +75,11 @@ public class JrlSchmacDoc extends EntityBase {
|
||||
this.codDtip = codDtip;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public void setDataDoc(Date dataDoc) {
|
||||
public void setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
|
||||
import java.util.Date;
|
||||
import java.time.LocalDate;
|
||||
|
||||
@Master
|
||||
@PropertyReactive
|
||||
@@ -35,7 +35,7 @@ public class JtbRicorrenze extends EntityBase {
|
||||
|
||||
@PK
|
||||
@SqlField(value = "data", nullable = false)
|
||||
private Date data;
|
||||
private LocalDate data;
|
||||
|
||||
@SqlField(value = "flag_reply", maxLength = 1, nullable = false, defaultObjectValue = "S")
|
||||
private String flagReply;
|
||||
@@ -55,11 +55,11 @@ public class JtbRicorrenze extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getData() {
|
||||
public LocalDate getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public JtbRicorrenze setData(Date data) {
|
||||
public JtbRicorrenze setData(LocalDate data) {
|
||||
this.data = data;
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import it.integry.ems_model.annotation.*;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.base.EquatableEntityInterface;
|
||||
import it.integry.ems_model.entity._enum.IBaseEnum;
|
||||
import it.integry.ems_model.entity.key.MtbColrKey;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
@@ -204,6 +205,12 @@ public class MtbColr extends EntityBase implements EquatableEntityInterface<MtbC
|
||||
super(logger);
|
||||
}
|
||||
|
||||
|
||||
public MtbColrKey getKey() {
|
||||
return new MtbColrKey(gestione, serCollo, dataCollo, numCollo, riga);
|
||||
}
|
||||
|
||||
|
||||
public LocalDate getDataCollo() {
|
||||
return dataCollo;
|
||||
}
|
||||
@@ -707,12 +714,83 @@ public class MtbColr extends EntityBase implements EquatableEntityInterface<MtbC
|
||||
if (this == o) return true;
|
||||
if (!(o instanceof MtbColr)) return false;
|
||||
MtbColr mtbColr = (MtbColr) o;
|
||||
return Objects.equals(getDataCollo(), mtbColr.getDataCollo()) && Objects.equals(getGestione(), mtbColr.getGestione()) && Objects.equals(getSerCollo(), mtbColr.getSerCollo()) && Objects.equals(getNumCollo(), mtbColr.getNumCollo()) && Objects.equals(getRiga(), mtbColr.getRiga()) && Objects.equals(getRigaOrd(), mtbColr.getRigaOrd()) && Objects.equals(getCodMart(), mtbColr.getCodMart()) && Objects.equals(getCodBarre(), mtbColr.getCodBarre()) && Objects.equals(getCodCol(), mtbColr.getCodCol()) && Objects.equals(getCodTagl(), mtbColr.getCodTagl()) && Objects.equals(getPartitaMag(), mtbColr.getPartitaMag()) && Objects.equals(getGestioneRif(), mtbColr.getGestioneRif()) && Objects.equals(getSerColloRif(), mtbColr.getSerColloRif()) && Objects.equals(getNote(), mtbColr.getNote()) && Objects.equals(getDataOrd(), mtbColr.getDataOrd()) && Objects.equals(getDataColloRif(), mtbColr.getDataColloRif()) && Objects.equals(getQtaCnf(), mtbColr.getQtaCnf()) && Objects.equals(getQtaCol(), mtbColr.getQtaCol()) && Objects.equals(getNumOrd(), mtbColr.getNumOrd()) && Objects.equals(getNumEtich(), mtbColr.getNumEtich()) && Objects.equals(getNumColloRif(), mtbColr.getNumColloRif()) && Objects.equals(getDatetimeRow(), mtbColr.getDatetimeRow()) && Objects.equals(getCodJcom(), mtbColr.getCodJcom()) && Objects.equals(getNumCnf(), mtbColr.getNumCnf()) && getCausale() == mtbColr.getCausale() && Objects.equals(getUtente(), mtbColr.getUtente()) && Objects.equals(getCodAnagDoc(), mtbColr.getCodAnagDoc()) && Objects.equals(getCodDtipDoc(), mtbColr.getCodDtipDoc()) && Objects.equals(getDataDoc(), mtbColr.getDataDoc()) && Objects.equals(getSerDoc(), mtbColr.getSerDoc()) && Objects.equals(getNumDoc(), mtbColr.getNumDoc()) && Objects.equals(getIdRigaDoc(), mtbColr.getIdRigaDoc()) && Objects.equals(getPesoNettoKg(), mtbColr.getPesoNettoKg()) && Objects.equals(getPesoLordoKg(), mtbColr.getPesoLordoKg()) && Objects.equals(getInsPartitaMag(), mtbColr.getInsPartitaMag()) && Objects.equals(getMtbPartitaMag_descrizione(), mtbColr.getMtbPartitaMag_descrizione()) && Objects.equals(getDataScadPartita(), mtbColr.getDataScadPartita()) && Objects.equals(getDescrizione(), mtbColr.getDescrizione()) && Objects.equals(getFlagQtaCnfFissa(), mtbColr.getFlagQtaCnfFissa()) && Objects.equals(getArtAPeso(), mtbColr.getArtAPeso());
|
||||
return Objects.equals(getDataCollo(), mtbColr.getDataCollo()) &&
|
||||
Objects.equals(getGestione(), mtbColr.getGestione()) &&
|
||||
Objects.equals(getSerCollo(), mtbColr.getSerCollo()) &&
|
||||
Objects.equals(getNumCollo(), mtbColr.getNumCollo()) &&
|
||||
Objects.equals(getRiga(), mtbColr.getRiga()) &&
|
||||
Objects.equals(getRigaOrd(), mtbColr.getRigaOrd()) &&
|
||||
Objects.equals(getCodMart(), mtbColr.getCodMart()) &&
|
||||
Objects.equals(getCodBarre(), mtbColr.getCodBarre()) &&
|
||||
Objects.equals(getCodCol(), mtbColr.getCodCol()) &&
|
||||
Objects.equals(getCodTagl(), mtbColr.getCodTagl()) &&
|
||||
Objects.equals(getPartitaMag(), mtbColr.getPartitaMag()) &&
|
||||
Objects.equals(getGestioneRif(), mtbColr.getGestioneRif()) &&
|
||||
Objects.equals(getSerColloRif(), mtbColr.getSerColloRif()) &&
|
||||
Objects.equals(getNote(), mtbColr.getNote()) &&
|
||||
Objects.equals(getDataOrd(), mtbColr.getDataOrd()) &&
|
||||
Objects.equals(getDataColloRif(), mtbColr.getDataColloRif()) &&
|
||||
Objects.equals(getQtaCnf(), mtbColr.getQtaCnf()) &&
|
||||
Objects.equals(getQtaCol(), mtbColr.getQtaCol()) &&
|
||||
Objects.equals(getNumOrd(), mtbColr.getNumOrd()) &&
|
||||
Objects.equals(getNumEtich(), mtbColr.getNumEtich()) &&
|
||||
Objects.equals(getNumColloRif(), mtbColr.getNumColloRif()) &&
|
||||
Objects.equals(getDatetimeRow(), mtbColr.getDatetimeRow()) &&
|
||||
Objects.equals(getCodJcom(), mtbColr.getCodJcom()) &&
|
||||
Objects.equals(getNumCnf(), mtbColr.getNumCnf()) &&
|
||||
getCausale() == mtbColr.getCausale() &&
|
||||
Objects.equals(getUtente(), mtbColr.getUtente()) &&
|
||||
Objects.equals(getCodAnagDoc(), mtbColr.getCodAnagDoc()) &&
|
||||
Objects.equals(getCodDtipDoc(), mtbColr.getCodDtipDoc()) &&
|
||||
Objects.equals(getDataDoc(), mtbColr.getDataDoc()) &&
|
||||
Objects.equals(getSerDoc(), mtbColr.getSerDoc()) &&
|
||||
Objects.equals(getNumDoc(), mtbColr.getNumDoc()) &&
|
||||
Objects.equals(getIdRigaDoc(), mtbColr.getIdRigaDoc()) &&
|
||||
Objects.equals(getPesoNettoKg(), mtbColr.getPesoNettoKg()) &&
|
||||
Objects.equals(getPesoLordoKg(), mtbColr.getPesoLordoKg()) &&
|
||||
Objects.equals(getInsPartitaMag(), mtbColr.getInsPartitaMag()) &&
|
||||
Objects.equals(getMtbPartitaMag_descrizione(), mtbColr.getMtbPartitaMag_descrizione()) &&
|
||||
Objects.equals(getDataScadPartita(), mtbColr.getDataScadPartita()) &&
|
||||
Objects.equals(getDescrizione(), mtbColr.getDescrizione()) &&
|
||||
Objects.equals(getFlagQtaCnfFissa(), mtbColr.getFlagQtaCnfFissa()) &&
|
||||
Objects.equals(getArtAPeso(), mtbColr.getArtAPeso()) &&
|
||||
Objects.equals(getBarcodeUlIn(), mtbColr.getBarcodeUlIn()) &&
|
||||
Objects.equals(getCodMdepIn(), mtbColr.getCodMdepIn()) &&
|
||||
Objects.equals(getPosizioneIn(), mtbColr.getPosizioneIn()) &&
|
||||
Objects.equals(getBarcodeUlOut(), mtbColr.getBarcodeUlOut()) &&
|
||||
Objects.equals(getCodMdepOut(), mtbColr.getCodMdepOut()) &&
|
||||
Objects.equals(getPosizioneOut(), mtbColr.getPosizioneOut());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(getDataCollo(), getGestione(), getSerCollo(), getNumCollo(), getRiga(), getRigaOrd(), getCodMart(), getCodBarre(), getCodCol(), getCodTagl(), getPartitaMag(), getGestioneRif(), getSerColloRif(), getNote(), getDataOrd(), getDataColloRif(), getQtaCnf(), getQtaCol(), getNumOrd(), getNumEtich(), getNumColloRif(), getDatetimeRow(), getCodJcom(), getNumCnf(), getCausale(), getUtente(), getCodAnagDoc(), getCodDtipDoc(), getDataDoc(), getSerDoc(), getNumDoc(), getIdRigaDoc(), getPesoNettoKg(), getPesoLordoKg(), getInsPartitaMag(), getMtbPartitaMag_descrizione(), getDataScadPartita(), getDescrizione(), getFlagQtaCnfFissa(), getArtAPeso());
|
||||
return Objects.hash(getDataCollo(),
|
||||
getGestione(), getSerCollo(),
|
||||
getNumCollo(), getRiga(),
|
||||
getRigaOrd(), getCodMart(),
|
||||
getCodBarre(), getCodCol(),
|
||||
getCodTagl(), getPartitaMag(),
|
||||
getGestioneRif(), getSerColloRif(),
|
||||
getNote(), getDataOrd(),
|
||||
getDataColloRif(), getQtaCnf(),
|
||||
getQtaCol(), getNumOrd(),
|
||||
getNumEtich(), getNumColloRif(),
|
||||
getDatetimeRow(), getCodJcom(),
|
||||
getNumCnf(), getCausale(),
|
||||
getUtente(), getCodAnagDoc(),
|
||||
getCodDtipDoc(), getDataDoc(),
|
||||
getSerDoc(), getNumDoc(),
|
||||
getIdRigaDoc(), getPesoNettoKg(),
|
||||
getPesoLordoKg(), getInsPartitaMag(),
|
||||
getMtbPartitaMag_descrizione(), getDataScadPartita(),
|
||||
getDescrizione(), getFlagQtaCnfFissa(),
|
||||
getArtAPeso(),
|
||||
getBarcodeUlIn(),
|
||||
getCodMdepIn(),
|
||||
getPosizioneIn(),
|
||||
getBarcodeUlOut(),
|
||||
getCodMdepOut(),
|
||||
getPosizioneOut());
|
||||
}
|
||||
|
||||
public enum Causale implements IBaseEnum<Causale> {
|
||||
|
||||
@@ -6,10 +6,9 @@ import it.integry.ems.utility.UtilityEntity;
|
||||
import it.integry.ems_model.annotation.*;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.base.EquatableEntityInterface;
|
||||
import it.integry.ems_model.entity.key.MtbColtKey;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityHashMap;
|
||||
import it.integry.ems_model.utility.UtilityString;
|
||||
import it.integry.ems_model.utility.*;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.kie.api.definition.type.PropertyReactive;
|
||||
@@ -19,7 +18,10 @@ import java.sql.CallableStatement;
|
||||
import java.sql.Timestamp;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@Master
|
||||
@PropertyReactive
|
||||
@@ -99,7 +101,7 @@ public class MtbColt extends EntityBase implements EquatableEntityInterface<MtbC
|
||||
private LocalDate dataOrd;
|
||||
|
||||
@SqlField(value = "data_doc")
|
||||
private Date dataDoc;
|
||||
private LocalDate dataDoc;
|
||||
|
||||
@SqlField(value = "ora_iniz_prep")
|
||||
private Date oraInizPrep;
|
||||
@@ -197,6 +199,14 @@ public class MtbColt extends EntityBase implements EquatableEntityInterface<MtbC
|
||||
super(logger);
|
||||
}
|
||||
|
||||
public MtbColt(MtbColtKey mtbColtKey) {
|
||||
this();
|
||||
this.dataCollo = mtbColtKey.getDataCollo();
|
||||
this.gestione = mtbColtKey.getGestione();
|
||||
this.serCollo = mtbColtKey.getSerCollo();
|
||||
this.numCollo = mtbColtKey.getNumCollo();
|
||||
}
|
||||
|
||||
public MtbColt(String gestione, LocalDate dataCollo, Integer numCollo, String serCollo) {
|
||||
this();
|
||||
this.dataCollo = dataCollo;
|
||||
@@ -205,6 +215,16 @@ public class MtbColt extends EntityBase implements EquatableEntityInterface<MtbC
|
||||
this.numCollo = numCollo;
|
||||
}
|
||||
|
||||
|
||||
public MtbColtKey getKey() {
|
||||
return UtilityString.isNullOrEmpty(gestione) ||
|
||||
UtilityString.isNullOrEmpty(dataCollo) ||
|
||||
dataCollo == null ||
|
||||
numCollo == null ?
|
||||
null :
|
||||
new MtbColtKey(gestione, serCollo, getDataCollo(), numCollo);
|
||||
}
|
||||
|
||||
public String getGestione() {
|
||||
return gestione;
|
||||
}
|
||||
@@ -385,11 +405,11 @@ public class MtbColt extends EntityBase implements EquatableEntityInterface<MtbC
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataDoc() {
|
||||
public LocalDate getDataDoc() {
|
||||
return dataDoc;
|
||||
}
|
||||
|
||||
public MtbColt setDataDoc(Date dataDoc) {
|
||||
public MtbColt setDataDoc(LocalDate dataDoc) {
|
||||
this.dataDoc = dataDoc;
|
||||
return this;
|
||||
}
|
||||
@@ -665,7 +685,10 @@ public class MtbColt extends EntityBase implements EquatableEntityInterface<MtbC
|
||||
}
|
||||
|
||||
public boolean hasDocument() {
|
||||
return !(UtilityString.isNullOrEmpty(getCodDtip()) && UtilityString.isNullOrEmpty(getSerDoc()) && getNumDoc() == null && getDataDoc() == null);
|
||||
return !(UtilityString.isNullOrEmpty(getCodDtip()) &&
|
||||
UtilityString.isNullOrEmpty(getSerDoc()) &&
|
||||
UtilityInteger.isNull(getNumDoc()) &&
|
||||
UtilityLocalDate.isNull(getDataDoc()));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -693,17 +716,35 @@ public class MtbColt extends EntityBase implements EquatableEntityInterface<MtbC
|
||||
|
||||
@Override
|
||||
public void execStoredProcedure() throws Exception {
|
||||
if (this.getOperation() != OperationType.DELETE && dataCollo != null) {
|
||||
if (this.getOperation() != OperationType.DELETE &&
|
||||
getOperation() != OperationType.SELECT_OBJECT &&
|
||||
getOperation() != OperationType.SELECT &&
|
||||
getKey() != null) {
|
||||
if (this.getCalcPeso()) {
|
||||
String whereCond = "mtb_colt.gestione = " + UtilityDB.valueToString(this.getGestione()) + " AND " + "mtb_colt.data_collo = " + UtilityDB.valueToString(this.getDataCollo()) + " AND " + "mtb_colt.ser_collo = " + UtilityDB.valueToString(this.getSerCollo()) + " AND " + "mtb_colt.num_collo = " + UtilityDB.valueToString(this.getNumCollo());
|
||||
String sql = "SELECT ISNULL(SUM(mtb_colr.peso_netto_kg), 0) AS peso_netto_kg, " + "ISNULL(SUM(mtb_colr.peso_lordo_kg), 0) AS peso_lordo_kg\n" + "FROM mtb_colt\n" + " INNER JOIN mtb_colr ON mtb_colt.gestione = mtb_colr.gestione AND mtb_colt.data_collo = mtb_colr.data_collo AND\n" + " mtb_colt.ser_collo = mtb_colr.ser_collo AND mtb_colt.num_collo = mtb_colr.num_collo\n";
|
||||
sql = UtilityDB.addwhereCond(sql, whereCond, false);
|
||||
HashMap<String, Object> peso = UtilityDB.executeSimpleQueryOnlyFirstRow(connection, sql);
|
||||
BigDecimal pesoNettoKg = UtilityHashMap.getValueIfExists(peso, "peso_netto_kg", BigDecimal.ZERO);
|
||||
BigDecimal pesoLordoKg = UtilityHashMap.getValueIfExists(peso, "peso_lordo_kg", BigDecimal.ZERO);
|
||||
sql = "UPDATE mtb_colt\n" + " SET peso_kg = " + UtilityDB.valueToString(pesoLordoKg) + ",\n" + " peso_netto_kg = " + UtilityDB.valueToString(pesoNettoKg);
|
||||
sql = UtilityDB.addwhereCond(sql, whereCond, false);
|
||||
UtilityDB.executeSimpleUpdate(connection, sql);
|
||||
|
||||
String updateSql = Query.format("UPDATE mtb_colt\n" +
|
||||
"SET peso_kg = ISNULL(mtb_colr.peso_lordo_kg, 0),\n" +
|
||||
" peso_netto_kg = ISNULL(mtb_colr.peso_netto_kg, 0)\n" +
|
||||
"FROM mtb_colt\n" +
|
||||
" INNER JOIN (SELECT gestione,\n" +
|
||||
" data_collo,\n" +
|
||||
" ser_collo,\n" +
|
||||
" num_collo,\n" +
|
||||
" SUM(mtb_colr.peso_lordo_kg) AS peso_lordo_kg,\n" +
|
||||
" SUM(mtb_colr.peso_netto_kg) AS peso_netto_kg\n" +
|
||||
" FROM mtb_colr\n" +
|
||||
" GROUP BY gestione, data_collo, ser_collo, num_collo) mtb_colr ON\n" +
|
||||
" mtb_colt.gestione = mtb_colr.gestione AND\n" +
|
||||
" mtb_colt.ser_collo = mtb_colr.ser_collo AND\n" +
|
||||
" mtb_colt.num_collo = mtb_colr.num_collo AND\n" +
|
||||
" mtb_colt.data_collo = mtb_colr.data_collo\n" +
|
||||
" WHERE mtb_colt.gestione = %s\n" +
|
||||
" AND mtb_colt.data_collo = %s\n" +
|
||||
" AND mtb_colt.ser_collo = %s\n" +
|
||||
" AND mtb_colt.num_collo = %s",
|
||||
getGestione(), getDataCollo(), getSerCollo(), getNumCollo());
|
||||
|
||||
UtilityDB.executeSimpleUpdate(connection, updateSql);
|
||||
}
|
||||
CallableStatement StoredProcedure = connection.prepareCall("{call dbo.mtbColt_storedProcedurePers(?,?,?,?)}");
|
||||
StoredProcedure.setString(1, gestione);
|
||||
@@ -738,7 +779,7 @@ public class MtbColt extends EntityBase implements EquatableEntityInterface<MtbC
|
||||
if (this == other)
|
||||
return true;
|
||||
|
||||
if(hashCodeKey() != other.hashCodeKey())
|
||||
if (hashCodeKey() != other.hashCodeKey())
|
||||
return false;
|
||||
|
||||
return Objects.equals(getGestione(), other.getGestione()) && Objects.equals(getDataCollo(), other.getDataCollo()) && Objects.equals(getSerCollo(), other.getSerCollo()) && Objects.equals(getNumCollo(), other.getNumCollo());
|
||||
@@ -762,15 +803,15 @@ public class MtbColt extends EntityBase implements EquatableEntityInterface<MtbC
|
||||
return Objects.hash(getGestione(), getDataCollo(), getSerCollo(), getNumCollo(), getRifOrd(), getCodAnag(), getCodVdes(), getCodMdep(), getCodVlis(), getCodDtip(), getCodTcol(), getSerDoc(), getFiltroOrdini(), getPreparatoDa(), getAnnotazioni(), getPosizione(), getCodDtipProvv(), getSerDocProvv(), getCodJfas(), getDataOrd(), getDataDoc(), getOraInizPrep(), getOraFinePrep(), getDataDocProvv(), getDataVers(), getSegno(), getNumOrd(), getNumDoc(), getNumDocProvv(), getPesoKg(), getLunghezzaCm(), getLarghezzaCm(), getAltezzaCm(), getPesoNettoKg(), getDataDistribuzione(), getFlagColloAnonimo(), getFlagStampato(), getActivityId(), getTrackNumber(), getDataIns(), getModificatoDa(), getDataUltMod(), getIdLotto(), getBarcodeUl(), getIdPesata(), getInsPartitaMag(), getStpPrz(), getCalcPeso());
|
||||
}
|
||||
|
||||
public static MtbColt fromMtbColr(MtbColr mtbColr){
|
||||
return new MtbColt(mtbColr.getGestione(),mtbColr.getDataCollo(),mtbColr.getNumCollo(),mtbColr.getSerCollo());
|
||||
public static MtbColt fromMtbColr(MtbColr mtbColr) {
|
||||
return new MtbColt(mtbColr.getGestione(), mtbColr.getDataCollo(), mtbColr.getNumCollo(), mtbColr.getSerCollo());
|
||||
}
|
||||
|
||||
public DtbOrdt getOrdine(){
|
||||
if (UtilityEntity.anyNull(this.getGestione(),this.getDataOrd(),this.getNumOrd())){
|
||||
public DtbOrdt getOrdine() {
|
||||
if (UtilityEntity.anyNull(this.getGestione(), this.getDataOrd(), this.getNumOrd())) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return new DtbOrdt(this.getGestione(),this.getDataOrd(),this.getNumOrd());
|
||||
return new DtbOrdt(this.getGestione(), this.getDataOrd(), this.getNumOrd());
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user