diff --git a/.gitignore b/.gitignore
index 094d2fb..994b0b8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,8 @@
/dist/
/src/META-INF/private.key
/teste.h2.db
-/teste.trace.db
\ No newline at end of file
+/teste.trace.db
+/arquivos/modelo/mfd.txt
+/arquivos/modelo/leitura.txt
+/arquivos/modelo/rodape.txt
+/arquivos/modelo/cabecalho.txt
\ No newline at end of file
diff --git a/arquivos/importar/.DS_Store b/arquivos/importar/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/arquivos/importar/.DS_Store differ
diff --git a/build.xml b/build.xml
index 5003ca2..3f555d6 100755
--- a/build.xml
+++ b/build.xml
@@ -77,6 +77,7 @@
+
@@ -93,7 +94,7 @@
-
+
@@ -103,6 +104,10 @@
+
+
+
+
diff --git a/conf/auxiliar.bak b/conf/auxiliar.bak
index 1bf9d7d..0f025d3 100644
--- a/conf/auxiliar.bak
+++ b/conf/auxiliar.bak
@@ -1 +1 @@
-ozkd2dkMpGQ5e9FC5YjhKh+DZHnJsWLiYcfkbk1XSCiwq0MLdtMY6Z7jhoAaRh424Y09HYHSWl4RSjPgTBBqnRtY23lt1AJ6WvoW5TOsWZaAOzzRt327BjjKd883rU/MITNj1cT92zMv233ph7CVHvvHXty8HzGNaqma8uZ3x1iaVRe8CgokuOistfsP4H79Enm/zdNJmwYlJ7wkGDOEPkfqfYd3EAJyVI5l/k7eV2v9ZCZyTa+EVERPv5ok9AfRp7R+28rHwlhL+rQH7oGYlwxlK0ovwhYuUeADTvQGsw+xzehYiIi2Ei0kJea9xTwF9Kq1y6Zd/zEn2FGUyTg7LIRxc9wYtaNjE8xM/XIAODLpB4OA1lGHWBSfv+qRL254gPLzssliY52rWS7P+9t86/dbE2SqxCooCq9T8Q1GcL4221rq7gWW7350d59MkRup6fAvwG7+Hq7e8JHpcrdW5g0U/HYxaXuyUseTPCi4oZvyMok3M6Ul04ckUoWMPoWSAE+6im4CiF0mMA6QA2M8+lkQ0vAKWfXcV0lisEgMUyyz8nD4EBHBLfG8PSfXfP1EJknRedU7x5c/OCwOw/BohpZXOHgZth4DS3GoZFs8z4HJFvkLaveBB71YK5v2D56qZBQJ4GBkPon9HYrjZOEYxPYKA0N9/Mzr+t63GtSbmquGezMahebdIBp9eV21dzroVV7AzzCFrCXVAL8cxlm7hWvSsIG3sAbr68yIe9GfovtsuqSJKVyAOGS+80VePj8O7cO6FZm7EInNcW/mWYsnT+fc71Tv8NnnwNHDtYfUJ1WTK9be4zc93JdEQorrMaQAZulDfdeFA4+umPtdK/HLB/PFroiHHL9LvWp6YEKyr+NyPFrSQYSmXgRrxg+OsCrSfGnuUvq01Xaquq9+aXoXiw==
\ No newline at end of file
+D/TbSW0vTEc5Es8uzKGmBLdsMbbN0upZZx35BMkerc6rN/EPRTCJzFgw3OISR3gTEckUOHCWMfbHy4PHuqXZ+7ouH9/lPq66LxE3+yF+cEoSnyQDjunDRmovsgqmQA5/TASXNkohloCQQAbEJdWj/urkmp9Yi5IPK4bhfRGJmysQbleNKSb6IcHz4edKZIt6E7peJRB2KuaBZT5Fk6ATa9LWXT8WGQ9IscJzmKDPE5zTH2+NFFRPYaAP3h7tbR5RCBGi6Nfep1VT14mRj3tJcnawCG+iYASycKgQxBO2yT0Xv8ruMQ5HevtL7yy440mL7OOqgNoJepRw4JPrkmJu11JPfRgc/2ZJ0N3ef9PE1G+iNM7aFqqMAUG0CSHnwBU8BtVfn3NJ5d0DpHCYYNf1tjmbI+uV9pNOa10GEizezMJGvfonT4WAEP81nUNolJoZQK2SI7DeTv9EE6ACqIY88Ie6NN8rXcxebQjVAYw4+k6laFwh0fuxBZ5KtSVDv82UOTYpdFsxOJt8O9gv0unRGskzRY5BnhVX5kpPZzrTIjaNhOqVQlfFpa5lWZoeFEAs6tuHs4VUSC1c3LlS+mp7DqJTU3So/3uhkJEt/XLP8YU3uvhPyROI+UiHwWcGRMCmOWNYDiMFSIQVmbwIK3m0Wzt0+SdEkchRf2I0HEduo92CbnTJtBaHQoLckZA4XCC1+xa1bV1bHdsw67B39JSG695EJNR9Vi64R70tkcvX9hJilMmLQkRB+Z6mgD6iiAivz8xi0q2q3DRUITbd8TlzHYoOUIq2v0xA95+u4F5RfiZgDHdi9hCRrDOqBw8mbCjsOLfQ7B323HgIkGUUwbjxIN1F6sR8w0Ea6I0HNvndJaytaweMnTBig3V3l75GthQfturBzl/tiYqIbgfda4mrk2vpD1VjewB08hT7vi82mhdxvcomdtHr1anbV5WISfxIlvvm4DNySxtWMGzcJ+7d1fBy70w3kupe207YNypUEomtMdeWEpzEK6Z3cHXBUBrT5BzDHHf2heZHjnroE5yIxtgkBdWlkP8+rbPTD1l7Ds+nLFvE/9B/O4AhEPtwn+AejZtgT9I4AUdnYVjeUKeP61Ow7kDtNrB6OaoQsDz75ZFrfh0MKWcTK/zgRjc8g/OSNroTzva2J9qUmneKHOKNMvTZv8Cq6VbT1uru8qRGvCV+nrsHkzfnF7EqziWds3rnl4kiWAKsUMvQ7g2615JNd0+e4V7VuRtzUYkl3TGlQAik0LC9CACXAw==
\ No newline at end of file
diff --git a/conf/auxiliar.txt b/conf/auxiliar.txt
index c5510d9..0f025d3 100644
--- a/conf/auxiliar.txt
+++ b/conf/auxiliar.txt
@@ -1 +1 @@
-QQ0K92tjU6qHypGJq3iyIXOkKfV74/tFSmQ35/4X6V1G2Sw+8/bXIjH4LbMqmdExwB3aXnL3bMkjm8kn7Ns5a6DYtmZEWL0FNcM8v4Elx1iC51BKYj7ML0OKuAc1LOfsFfJzHaICQJAS0TBW8NifYeJtSRz1kYiQqFXgomWfJwqDbuz1kdXmgS/bBtjIYAz5jsWJUmL7l83uYRv+xI6Er0lHTa9rmTTDts8cn5jyNbp/86pMmpee3OYN4APsmpV/U0tm5pN43wmRrScdwTOYIOH/BO29XtUozhafNJeubH/dIGA47zJW3B4/d39zrE0TJcXbqYLxjAcJwdjOUfQ1HYIIqqoZYIJffYt3l4KpF73SU5pQQIcIVKk06m2ChkQ54EP67hfuFe4zuehLXN1RonIPcov1SJxJiav1setw4B14Y4a0050fgr4ahvNv4mIuOmgm6/Yfepm0vN1CaYymk8RQVWq1bgNDOklBbeS69M9CY7ttGAZ82CKCQ81hewUegLCt0mF5iw8KvVE9nRmV3ysWFRXSZissQAatlv4D1N3EhW028E/hjzgQsELZclxM+5h1TpDBJlYuE1IAywUzs1sAeUoJAGTkCyuvAMYXzhHXHhMVRJmRuCfVnf429ee9WwDrMxwRFxdfhPbl8cPy4oRhtemhW5+tMi4gGL2hz2mTjyg0IR4ScuTK77xJFV/ROtEv1fh55M2JaTtbjmVe5mhwkIDhDQmt5YzzpbMC88YpahYkOukc10j6UK2HWOK4ftJgPyEUE5Uh84G5Q5gLARMuIWKwKMWBkWUO2PsOZBksvdcBdd8BoKIcrXquYw6eE84fzkopZrgte0/YMajBAC6wkiXYDVCtnYxXJrclghERXYzEP4cpNVFDb8ZAfc2yVsrtLPn8eLjql8dCf/18IIKmjouawvWtlyGnpHb5UnesBf4BUCOoINC8nm3X1Tqh3GY8VFGsKaE5OrCdEZ7PTrfX7iZMLXLHldsHqCNPkqRRPnx7rn3MgRMkJG6nNWmxbDLjGtDKrrRO60wLeTM+bbmFcJqSHo131pqRucK8Kv55ynLGZJ7z1SluDQp4knZAAyWERuf8B5OjFKQCXwoHxG9DaJmAC41OQwmEjS5ROOh8mN2WpdOGNYUkqiAW7Hzcyh8Le+hMQ/EcmtbJYW3BJMAptA6dmMTShUVBkHMGbfmqR2Fk19DbhDDIcZxxENBEpMicTLgGYytUjcEJ/mKdJWCjCyMfYRJOVReU4Oms/6DVPIP5Zm6h7Q==
\ No newline at end of file
+D/TbSW0vTEc5Es8uzKGmBLdsMbbN0upZZx35BMkerc6rN/EPRTCJzFgw3OISR3gTEckUOHCWMfbHy4PHuqXZ+7ouH9/lPq66LxE3+yF+cEoSnyQDjunDRmovsgqmQA5/TASXNkohloCQQAbEJdWj/urkmp9Yi5IPK4bhfRGJmysQbleNKSb6IcHz4edKZIt6E7peJRB2KuaBZT5Fk6ATa9LWXT8WGQ9IscJzmKDPE5zTH2+NFFRPYaAP3h7tbR5RCBGi6Nfep1VT14mRj3tJcnawCG+iYASycKgQxBO2yT0Xv8ruMQ5HevtL7yy440mL7OOqgNoJepRw4JPrkmJu11JPfRgc/2ZJ0N3ef9PE1G+iNM7aFqqMAUG0CSHnwBU8BtVfn3NJ5d0DpHCYYNf1tjmbI+uV9pNOa10GEizezMJGvfonT4WAEP81nUNolJoZQK2SI7DeTv9EE6ACqIY88Ie6NN8rXcxebQjVAYw4+k6laFwh0fuxBZ5KtSVDv82UOTYpdFsxOJt8O9gv0unRGskzRY5BnhVX5kpPZzrTIjaNhOqVQlfFpa5lWZoeFEAs6tuHs4VUSC1c3LlS+mp7DqJTU3So/3uhkJEt/XLP8YU3uvhPyROI+UiHwWcGRMCmOWNYDiMFSIQVmbwIK3m0Wzt0+SdEkchRf2I0HEduo92CbnTJtBaHQoLckZA4XCC1+xa1bV1bHdsw67B39JSG695EJNR9Vi64R70tkcvX9hJilMmLQkRB+Z6mgD6iiAivz8xi0q2q3DRUITbd8TlzHYoOUIq2v0xA95+u4F5RfiZgDHdi9hCRrDOqBw8mbCjsOLfQ7B323HgIkGUUwbjxIN1F6sR8w0Ea6I0HNvndJaytaweMnTBig3V3l75GthQfturBzl/tiYqIbgfda4mrk2vpD1VjewB08hT7vi82mhdxvcomdtHr1anbV5WISfxIlvvm4DNySxtWMGzcJ+7d1fBy70w3kupe207YNypUEomtMdeWEpzEK6Z3cHXBUBrT5BzDHHf2heZHjnroE5yIxtgkBdWlkP8+rbPTD1l7Ds+nLFvE/9B/O4AhEPtwn+AejZtgT9I4AUdnYVjeUKeP61Ow7kDtNrB6OaoQsDz75ZFrfh0MKWcTK/zgRjc8g/OSNroTzva2J9qUmneKHOKNMvTZv8Cq6VbT1uru8qRGvCV+nrsHkzfnF7EqziWds3rnl4kiWAKsUMvQ7g2615JNd0+e4V7VuRtzUYkl3TGlQAik0LC9CACXAw==
\ No newline at end of file
diff --git a/conf/config.properties b/conf/config.properties
index 03ee75f..8c5ebe2 100644
--- a/conf/config.properties
+++ b/conf/config.properties
@@ -47,16 +47,20 @@ pag.troca=true
pag.pos=true
## ECF ##
-# ip ou url da maquina que esta com o ACBr rodando (padrao = localhost)
-ecf.servidor=localhost
-# porta onde o ACBr responde (padrao = 3434)
+# nome da marca do ECF, se for acesso direto e fiscal [BEMATECH ou DARUMA], se for acesso direto e nao fiscal [BEMATECH_NF ou DARUMA_NF], se for fiscal com acesso pelo ACRRmonitor [ACBR]
+ecf.marca=ACBR
+# utilizar um numero para identificar o modelo usado, somente para as Nao Fiscal, veja a documentacao para saber qual numero usar
+ecf.modelo=
+# porta onde o ECF esta configurado [COM1, COM2, USB e etc], se ACBR usar 3434
ecf.porta=3434
+# velocidade de comunicacao da porta [9600 ou 115200], se ACBR colocar o timeout 10000
+ecf.velocidade=10000
# tempo em segundos de espera para recuperar a Z
ecf.tempo=30
# quantidade de tentativas de recuperar os dados da Z
ecf.tentativas=3
-# gerar arquivo cat52 para NFA ou NFP
-ecf.cat52=true
+# gerar arquivo cat52 para NFA ou NFP, caso seja pra gerar colocar o nome do arquivo de acordo com o ECF.
+ecf.cat52=
# nome de suprimento
ecf.suprimento=Suprimento
# nome de sangria
diff --git a/dlls/Bematech.zip b/dlls/Bematech.zip
old mode 100755
new mode 100644
index 95fd8b4..0fe0f7f
Binary files a/dlls/Bematech.zip and b/dlls/Bematech.zip differ
diff --git a/dlls/Daruma.zip b/dlls/Daruma.zip
old mode 100755
new mode 100644
index 8b84993..ec32fd0
Binary files a/dlls/Daruma.zip and b/dlls/Daruma.zip differ
diff --git a/dlls/Elgin.zip b/dlls/Elgin.zip
deleted file mode 100644
index 6ddd87f..0000000
Binary files a/dlls/Elgin.zip and /dev/null differ
diff --git a/dlls/Epson.zip b/dlls/Epson.zip
deleted file mode 100644
index b1f5d53..0000000
Binary files a/dlls/Epson.zip and /dev/null differ
diff --git a/dlls/Leiame.txt b/dlls/Leiame.txt
index 12b2d92..f4ae2c8 100755
--- a/dlls/Leiame.txt
+++ b/dlls/Leiame.txt
@@ -1,5 +1,5 @@
## Leiame ##
-# Descompacte o zip correspondente da impressora que ira usar, e coloque todos os arquivos dentro da pasta ACBrMonitor.
+# Descompacte o zip correspondente da impressora que ira usar, e coloque todos os arquivos dentro da pasta ACBrMonitor caso utilize o ACRB, se for usar acesso direto coloque os arquivos na pasta C:\Windows\system32\
-# Caso nao tenha um zip para sua impressora entre no site do fabricante para fazer o download, ou melhor entre em contato conosco suporte@phdss.com.br
\ No newline at end of file
+# Caso nao tenha um zip para sua impressora entre no site do fabricante para fazer o download, ou se desejar entre em contato conosco suporte@phdss.com.br
\ No newline at end of file
diff --git a/dlls/Sweda.zip b/dlls/Sweda.zip
deleted file mode 100644
index 6feba87..0000000
Binary files a/dlls/Sweda.zip and /dev/null differ
diff --git a/lib/h2.jar b/lib/db/h2.jar
similarity index 100%
rename from lib/h2.jar
rename to lib/db/h2.jar
diff --git a/lib/mysql.jar b/lib/db/mysql.jar
similarity index 100%
rename from lib/mysql.jar
rename to lib/db/mysql.jar
diff --git a/lib/postgresql.jar b/lib/db/postgresql.jar
similarity index 100%
rename from lib/postgresql.jar
rename to lib/db/postgresql.jar
diff --git a/lib/ecf/BematechFrameworkJNA.jar b/lib/ecf/BematechFrameworkJNA.jar
new file mode 100644
index 0000000..d463676
Binary files /dev/null and b/lib/ecf/BematechFrameworkJNA.jar differ
diff --git a/lib/ecf/DarumaFrameworkJNA.jar b/lib/ecf/DarumaFrameworkJNA.jar
new file mode 100644
index 0000000..22c686d
Binary files /dev/null and b/lib/ecf/DarumaFrameworkJNA.jar differ
diff --git a/lib/jna.jar b/lib/ecf/jna.jar
similarity index 100%
rename from lib/jna.jar
rename to lib/ecf/jna.jar
diff --git a/lib/platform.jar b/lib/ecf/platform.jar
similarity index 100%
rename from lib/platform.jar
rename to lib/ecf/platform.jar
diff --git a/lib/beanio.jar b/lib/file/beanio.jar
similarity index 100%
rename from lib/beanio.jar
rename to lib/file/beanio.jar
diff --git a/lib/ini4j.jar b/lib/file/ini4j.jar
similarity index 100%
rename from lib/ini4j.jar
rename to lib/file/ini4j.jar
diff --git a/lib/jasypt.jar b/lib/file/jasypt.jar
similarity index 100%
rename from lib/jasypt.jar
rename to lib/file/jasypt.jar
diff --git a/lib/log4j.jar b/lib/file/log4j.jar
similarity index 100%
rename from lib/log4j.jar
rename to lib/file/log4j.jar
diff --git a/lib/jaxb/.DS_Store b/lib/jaxb/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/lib/jaxb/.DS_Store differ
diff --git a/lib/jpa/.DS_Store b/lib/jpa/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/lib/jpa/.DS_Store differ
diff --git a/lib/libs.txt b/lib/libs.txt
index 9ddca67..8289dee 100644
--- a/lib/libs.txt
+++ b/lib/libs.txt
@@ -31,6 +31,7 @@ jersey-json-1.8.jar
jersey-multipart-1.8.jar
jersey-server-1.8.jar
jersey-simple-server-1.8.jar
+simple-4.1.21.jar
# NFe 2.00
nfexml2.jar
@@ -66,20 +67,25 @@ poi.jar
saaj.jar
xalan-2.7.0.jar
-# Projetos
-OpenECF.jar
-OpenPAF.jar
-OpenTEF.jar
-
-# Outras
-jasypt-1.9.0.jar
-beanio.jar
-ini4j-0.5.2.jar
+# Bancos
h2-1.3.170.jar
mysql-connector-java-5.1.18-bin.jar
postgresql-9.2-1000.jdbc4.jar
-simple-4.1.21.jar
-loj4j-1.2.16.jar
+
+# ECFs
jna.jar
plataform.jar
-swing-layout-1.0.4.jar
\ No newline at end of file
+BematechFrameworkJNA.jar
+FrameworkJNA.jar
+
+# Arquivos
+jasypt-1.9.0.jar
+beanio.jar
+ini4j-0.5.2.jar
+loj4j-1.2.16.jar
+swing-layout-1.0.4.jar
+
+# Projetos
+OpenECF.jar
+OpenPAF.jar
+OpenTEF.jar
\ No newline at end of file
diff --git a/lib/nblibraries.properties b/lib/nblibraries.properties
index 1862991..48da38c 100755
--- a/lib/nblibraries.properties
+++ b/lib/nblibraries.properties
@@ -71,7 +71,8 @@ libs.restlib.classpath=\
${base}/rest/jersey-json.jar:\
${base}/rest/jersey-multipart.jar:\
${base}/rest/jersey-server.jar:\
- ${base}/rest/jersey-simple-server.jar
+ ${base}/rest/jersey-simple-server.jar:\
+ ${base}/rest/simple.jar
libs.restlib.displayName=REST
libs.swing-layout.classpath=\
${base}/swing-layout/swing-layout-1.0.4.jar
diff --git a/lib/rest/.DS_Store b/lib/rest/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/lib/rest/.DS_Store differ
diff --git a/lib/simple.jar b/lib/rest/simple.jar
similarity index 100%
rename from lib/simple.jar
rename to lib/rest/simple.jar
diff --git a/nbproject/.DS_Store b/nbproject/.DS_Store
new file mode 100644
index 0000000..aaf98ad
Binary files /dev/null and b/nbproject/.DS_Store differ
diff --git a/nbproject/build-impl.xml b/nbproject/build-impl.xml
index 1f2008e..f66c055 100755
--- a/nbproject/build-impl.xml
+++ b/nbproject/build-impl.xml
@@ -918,6 +918,13 @@ is divided into following sections:
+
+
+
+
+
+
+
@@ -1421,6 +1428,13 @@ is divided into following sections:
+
+
+
+
+
+
+
diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties
index 964d545..4822a41 100755
--- a/nbproject/genfiles.properties
+++ b/nbproject/genfiles.properties
@@ -3,6 +3,6 @@ build.xml.script.CRC32=9293e70a
build.xml.stylesheet.CRC32=28e38971@1.50.2.46
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
-nbproject/build-impl.xml.data.CRC32=6a4ff81a
-nbproject/build-impl.xml.script.CRC32=55f2abc8
+nbproject/build-impl.xml.data.CRC32=c46a48d1
+nbproject/build-impl.xml.script.CRC32=50a3ba7b
nbproject/build-impl.xml.stylesheet.CRC32=5a01deb7@1.68.1.46
diff --git a/nbproject/private/.DS_Store b/nbproject/private/.DS_Store
new file mode 100644
index 0000000..59f1bc5
Binary files /dev/null and b/nbproject/private/.DS_Store differ
diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml
index 6d7387a..9eccfe4 100755
--- a/nbproject/private/private.xml
+++ b/nbproject/private/private.xml
@@ -11,7 +11,7 @@
src/br/com/openpdv/visao/core/Caixa.java
- 1453
+ 1456
diff --git a/nbproject/project.properties b/nbproject/project.properties
index 4e9e87b..4d8af80 100755
--- a/nbproject/project.properties
+++ b/nbproject/project.properties
@@ -31,17 +31,18 @@ dist.jar=${dist.dir}/OpenPDV.jar
dist.javadoc.dir=${dist.dir}/javadoc
endorsed.classpath=
excludes=
-file.reference.beanio.jar=lib/beanio.jar
-file.reference.h2.jar=lib/h2.jar
-file.reference.ini4j.jar=lib/ini4j.jar
-file.reference.jasypt.jar=lib/jasypt.jar
-file.reference.jna.jar=lib/jna.jar
-file.reference.log4j.jar=lib/log4j.jar
-file.reference.mysql.jar=lib/mysql.jar
+file.reference.beanio.jar=lib/file/beanio.jar
+file.reference.BematechFrameworkJNA.jar=lib/ecf/BematechFrameworkJNA.jar
+file.reference.DarumaFrameworkJNA.jar=lib/ecf/DarumaFrameworkJNA.jar
+file.reference.h2.jar=lib/db/h2.jar
+file.reference.ini4j.jar=lib/file/ini4j.jar
+file.reference.jasypt.jar=lib/file/jasypt.jar
+file.reference.jna.jar=lib/ecf/jna.jar
+file.reference.log4j.jar=lib/file/log4j.jar
+file.reference.mysql.jar=lib/db/mysql.jar
file.reference.OpenPDV-conf=conf
-file.reference.platform.jar=lib/platform.jar
-file.reference.postgresql.jar=lib/postgresql.jar
-file.reference.simple.jar=lib/simple.jar
+file.reference.platform.jar=lib/ecf/platform.jar
+file.reference.postgresql.jar=lib/db/postgresql.jar
includes=**
jar.archive.disabled=${jnlp.enabled}
jar.compress=true
@@ -51,20 +52,22 @@ javac.classpath=\
${libs.jaxb.classpath}:\
${libs.restlib.classpath}:\
${libs.NFe_2.0.classpath}:\
+ ${libs.swing-layout.classpath}:\
+ ${reference.AdmPDV.jar}:\
${reference.OpenECF.jar}:\
${reference.OpenPAF.jar}:\
${reference.OpenTEF.jar}:\
${file.reference.beanio.jar}:\
+ ${file.reference.BematechFrameworkJNA.jar}:\
+ ${file.reference.DarumaFrameworkJNA.jar}:\
+ ${file.reference.jna.jar}:\
+ ${file.reference.platform.jar}:\
${file.reference.ini4j.jar}:\
${file.reference.jasypt.jar}:\
- ${file.reference.jna.jar}:\
${file.reference.log4j.jar}:\
- ${file.reference.platform.jar}:\
- ${file.reference.simple.jar}:\
${file.reference.h2.jar}:\
${file.reference.mysql.jar}:\
- ${file.reference.postgresql.jar}:\
- ${libs.swing-layout.classpath}
+ ${file.reference.postgresql.jar}
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=true
@@ -103,9 +106,11 @@ manifest.file=manifest.mf
meta.inf.dir=${src.dir}/META-INF
mkdist.disabled=false
platform.active=default_platform
+project.AdmPDV=../AdmPDV
project.OpenECF=../OpenECF
project.OpenPAF=../OpenPAF
project.OpenTEF=../OpenTEF
+reference.AdmPDV.jar=${project.AdmPDV}/dist/AdmPDV.jar
reference.OpenECF.jar=${project.OpenECF}/dist/OpenECF.jar
reference.OpenPAF.jar=${project.OpenPAF}/dist/OpenPAF.jar
reference.OpenTEF.jar=${project.OpenTEF}/dist/OpenTEF.jar
diff --git a/nbproject/project.xml b/nbproject/project.xml
index 00a5cd2..6ca85b5 100755
--- a/nbproject/project.xml
+++ b/nbproject/project.xml
@@ -15,6 +15,14 @@
./lib/nblibraries.properties
+
+ AdmPDV
+ jar
+
+ jar
+ clean
+ jar
+
OpenECF
jar
diff --git a/src/.DS_Store b/src/.DS_Store
new file mode 100644
index 0000000..977a042
Binary files /dev/null and b/src/.DS_Store differ
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoAbrirVenda.java b/src/br/com/openpdv/controlador/comandos/ComandoAbrirVenda.java
index 753ee08..7d359a7 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoAbrirVenda.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoAbrirVenda.java
@@ -1,7 +1,7 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.controlador.permissao.Login;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.EcfVenda;
@@ -9,7 +9,8 @@
import br.com.openpdv.modelo.sistema.SisCliente;
import br.com.openpdv.visao.core.Caixa;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
+import br.com.phdss.EComando;
+import br.com.phdss.IECF;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -26,6 +27,7 @@ public class ComandoAbrirVenda implements IComando {
private Logger log;
private SisCliente cliente;
private String[] resp;
+ private IECF ecf;
/**
* Costrutor padrao.
@@ -42,6 +44,7 @@ public ComandoAbrirVenda() {
public ComandoAbrirVenda(SisCliente cliente) {
this.log = Logger.getLogger(ComandoAbrirVenda.class);
this.cliente = cliente;
+ this.ecf = ECF.getInstancia();
}
@Override
@@ -52,7 +55,7 @@ public void executar() throws OpenPdvException {
try {
AbrirVendaBanco();
} catch (OpenPdvException ex) {
- ECF.enviar(EComandoECF.ECF_CancelaCupom);
+ ecf.enviar(EComando.ECF_CancelaCupom);
throw ex;
}
// coloca na tela
@@ -70,9 +73,9 @@ public void desfazer() throws OpenPdvException {
* @exception OpenPdvException dispara caso nao consiga executar.
*/
public void abrirVendaECF() throws OpenPdvException {
- ECF.enviar(EComandoECF.ECF_CorrigeEstadoErro);
- resp = ECF.enviar(EComandoECF.ECF_AbreCupom);
- if (ECF.ERRO.equals(resp[0])) {
+ ecf.enviar(EComando.ECF_CorrigeEstadoErro);
+ resp = ecf.enviar(EComando.ECF_AbreCupom);
+ if (IECF.ERRO.equals(resp[0])) {
log.error("Erro ao abrir a venda no ECF. -> " + resp[1]);
throw new OpenPdvException(resp[1]);
}
@@ -96,24 +99,24 @@ public void AbrirVendaBanco() throws OpenPdvException {
venda.setSisCliente(cliente);
venda.setInformouCliente(cliente != null);
// ccf
- resp = ECF.enviar(EComandoECF.ECF_NumCCF);
- if (ECF.OK.equals(resp[0])) {
+ resp = ecf.enviar(EComando.ECF_NumCCF);
+ if (IECF.OK.equals(resp[0])) {
venda.setEcfVendaCcf(Integer.valueOf(resp[1]));
} else {
log.error("Erro ao abrir a venda no BD. -> " + resp[1]);
throw new OpenPdvException(resp[1]);
}
// coo
- resp = ECF.enviar(EComandoECF.ECF_NumCupom);
- if (ECF.OK.equals(resp[0])) {
+ resp = ecf.enviar(EComando.ECF_NumCupom);
+ if (IECF.OK.equals(resp[0])) {
venda.setEcfVendaCoo(Integer.valueOf(resp[1]));
} else {
log.error("Erro ao abrir a venda no BD. -> " + resp[1]);
throw new OpenPdvException(resp[1]);
}
// data
- resp = ECF.enviar(EComandoECF.ECF_DataHora);
- if (ECF.OK.equals(resp[0])) {
+ resp = ecf.enviar(EComando.ECF_DataHora);
+ if (IECF.OK.equals(resp[0])) {
Date data = null;
try {
data = new SimpleDateFormat("dd/MM/yy HH:mm:ss").parse(resp[1]);
@@ -147,7 +150,7 @@ public void AbrirVendaBanco() throws OpenPdvException {
*/
public void abrirVendaTela() throws OpenPdvException {
Caixa.getInstancia().getBobina().removeAllElements();
- Caixa.getInstancia().getBobina().addElement(ECF.LS);
+ Caixa.getInstancia().getBobina().addElement(IECF.LS);
EcfVenda venda = Caixa.getInstancia().getVenda();
String data = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(venda.getEcfVendaData());
Caixa.getInstancia().getBobina().addElement(data
@@ -158,7 +161,7 @@ public void abrirVendaTela() throws OpenPdvException {
Caixa.getInstancia().getBobina().addElement("ITEM CÓDIGO DESCRIÇÃO ");
// linha 2
Caixa.getInstancia().getBobina().addElement("QTD. UN VL.UNIT.(R$) ST VL.ITEM(R$)");
- Caixa.getInstancia().getBobina().addElement(ECF.LS);
+ Caixa.getInstancia().getBobina().addElement(IECF.LS);
}
public SisCliente getCliente() {
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoAdicionarItem.java b/src/br/com/openpdv/controlador/comandos/ComandoAdicionarItem.java
index 09529d5..74b696e 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoAdicionarItem.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoAdicionarItem.java
@@ -1,12 +1,13 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.EcfVendaProduto;
import br.com.openpdv.visao.core.Caixa;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
+import br.com.phdss.EComando;
+import br.com.phdss.IECF;
import br.com.phdss.controlador.PAF;
import org.apache.log4j.Logger;
@@ -19,6 +20,7 @@ public class ComandoAdicionarItem implements IComando {
private Logger log;
private EcfVendaProduto vendaProduto;
+ private IECF ecf;
/**
* Construtor padrao.
@@ -35,6 +37,7 @@ public ComandoAdicionarItem() {
public ComandoAdicionarItem(EcfVendaProduto vendaProduto) {
this.log = Logger.getLogger(ComandoCancelarItem.class);
this.vendaProduto = vendaProduto;
+ this.ecf = ECF.getInstancia();
}
@Override
@@ -42,7 +45,7 @@ public void executar() throws OpenPdvException {
// adicionar o item no ECF
adicionarItemEcf();
// pega o ultimo numero
- String[] resp = ECF.enviar(EComandoECF.ECF_NumUltItem);
+ String[] resp = ecf.enviar(EComando.ECF_NumUltItem);
// salva no bd
adicionarItemBanco(resp[1]);
// mostra na tela
@@ -66,18 +69,18 @@ public void adicionarItemEcf() throws OpenPdvException {
String qtd = Util.formataNumero(vendaProduto.getEcfVendaProdutoQuantidade(), 1, 2, false).replace(",", ".");
String valor = Util.formataNumero(vendaProduto.getEcfVendaProdutoBruto(), 1, 2, false).replace(",", ".");
String und = vendaProduto.getProdEmbalagem().getProdEmbalagemNome();
- if (und.length() > 3) {
- und = und.substring(0, 3);
+ if (und.length() > 2) {
+ und = und.substring(0, 2);
}
- String[] resp = ECF.enviar(EComandoECF.ECF_VendeItem, new String[]{codigo, descricao, aliquota, qtd, valor, "0", und});
- if (ECF.OK.equals(resp[0])) {
+ String[] resp = ecf.enviar(EComando.ECF_VendeItem, new String[]{codigo, descricao, aliquota, qtd, valor, "0", und});
+ if (IECF.OK.equals(resp[0])) {
// atualiza o gt
try {
- resp = ECF.enviar(EComandoECF.ECF_GrandeTotal);
- if (ECF.OK.equals(resp[0])) {
+ resp = ecf.enviar(EComando.ECF_GrandeTotal);
+ if (IECF.OK.equals(resp[0])) {
PAF.AUXILIAR.setProperty("ecf.gt", resp[1]);
- PAF.criptografar();
+ Util.criptografar(null, PAF.AUXILIAR);
} else {
throw new Exception(resp[1]);
}
@@ -117,21 +120,21 @@ public void adicionarItemTela(String ordem) throws OpenPdvException {
StringBuilder linha1 = new StringBuilder();
linha1.append(Util.formataNumero(ordem, 3, 0, false));
linha1.append(" ");
- linha1.append(Util.formataTexto(vendaProduto.getEcfVendaProdutoCodigo(), " ", 14, false));
+ linha1.append(Util.formataTexto(vendaProduto.getEcfVendaProdutoCodigo(), " ", 14, Util.EDirecao.ESQUERDA));
linha1.append(" ");
linha1.append(vendaProduto.getProdProduto().getProdProdutoDescricao().length() > 28
? vendaProduto.getProdProduto().getProdProdutoDescricao().substring(0, 28) : vendaProduto.getProdProduto().getProdProdutoDescricao());
Caixa.getInstancia().getBobina().addElement(linha1.toString());
// linha 2
StringBuilder linha2 = new StringBuilder();
- linha2.append(Util.formataTexto(Util.formataNumero(vendaProduto.getEcfVendaProdutoQuantidade(), 1, 2, false), " ", 8, true));
+ linha2.append(Util.formataTexto(Util.formataNumero(vendaProduto.getEcfVendaProdutoQuantidade(), 1, 2, false), " ", 8, Util.EDirecao.DIREITA));
linha2.append(" ");
linha2.append(vendaProduto.getProdEmbalagem().getProdEmbalagemNome().length() > 3
? vendaProduto.getProdEmbalagem().getProdEmbalagemNome().subSequence(0, 3) : vendaProduto.getProdEmbalagem().getProdEmbalagemNome());
linha2.append(" x ");
- linha2.append(Util.formataTexto(Util.formataNumero(vendaProduto.getEcfVendaProdutoLiquido(), 1, 2, false), " ", 13, true));
- linha2.append(Util.formataTexto(getAliquota(), " ", 5, false));
- linha2.append(Util.formataTexto(Util.formataNumero(vendaProduto.getEcfVendaProdutoTotal(), 1, 2, false), " ", 13, false));
+ linha2.append(Util.formataTexto(Util.formataNumero(vendaProduto.getEcfVendaProdutoLiquido(), 1, 2, false), " ", 13, Util.EDirecao.DIREITA));
+ linha2.append(Util.formataTexto(getAliquota(), " ", 5, Util.EDirecao.ESQUERDA));
+ linha2.append(Util.formataTexto(Util.formataNumero(vendaProduto.getEcfVendaProdutoTotal(), 1, 2, false), " ", 13, Util.EDirecao.ESQUERDA));
Caixa.getInstancia().getBobina().addElement(linha2.toString());
// colocando no foco selecionado
Caixa.getInstancia().getLstBobina().setSelectedIndex(Caixa.getInstancia().getBobina().getSize() - 1);
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoCancelarCartao.java b/src/br/com/openpdv/controlador/comandos/ComandoCancelarCartao.java
index 535df7b..dd22c24 100644
--- a/src/br/com/openpdv/controlador/comandos/ComandoCancelarCartao.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoCancelarCartao.java
@@ -1,10 +1,11 @@
package br.com.openpdv.controlador.comandos;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.EcfPagamento;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
+import br.com.phdss.EComando;
+import br.com.phdss.IECF;
import br.com.phdss.TEF;
/**
@@ -15,6 +16,7 @@
public class ComandoCancelarCartao implements IComando {
private EcfPagamento pag;
+ private IECF ecf;
/**
* Construtor padrao.
@@ -23,6 +25,7 @@ public class ComandoCancelarCartao implements IComando {
*/
public ComandoCancelarCartao(EcfPagamento pag) {
this.pag = pag;
+ this.ecf = ECF.getInstancia();
}
@Override
@@ -34,22 +37,22 @@ public void executar() throws OpenPdvException {
try {
TEF.bloquear(true);
- ECF.enviar(EComandoECF.ECF_FechaRelatorio);
- ECF.enviar(EComandoECF.ECF_AbreRelatorioGerencial, Util.getConfig().get("ecf.reltef"));
- TEF.imprimirVias(TEF.getDados(), EComandoECF.ECF_LinhaRelatorioGerencial);
- ECF.enviar(EComandoECF.ECF_FechaRelatorio);
+ ecf.enviar(EComando.ECF_FechaRelatorio);
+ ecf.enviar(EComando.ECF_AbreRelatorioGerencial, Util.getConfig().get("ecf.reltef"));
+ TEF.imprimirVias(TEF.getDados(), EComando.ECF_LinhaRelatorioGerencial);
+ ecf.enviar(EComando.ECF_FechaRelatorio);
pag.setEcfPagamentoEstornoNsu(TEF.getDados().get("012-000"));
TEF.confirmarTransacao(id, true);
// pega o numero GNF da impressao do cartao
- String[] resp = ECF.enviar(EComandoECF.ECF_NumGNF);
+ String[] resp = ecf.enviar(EComando.ECF_NumGNF);
pag.setEcfPagamentoGnf(Integer.valueOf(resp[1]));
// salva o documento para relatorio
new ComandoSalvarDocumento("RG").executar();
TEF.bloquear(false);
} catch (Exception ex) {
TEF.bloquear(false);
- ECF.enviar(EComandoECF.ECF_FechaRelatorio);
+ ecf.enviar(EComando.ECF_FechaRelatorio);
TEF.confirmarTransacao(id, false);
throw new OpenPdvException(ex);
}
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoCancelarItem.java b/src/br/com/openpdv/controlador/comandos/ComandoCancelarItem.java
index d3823b1..a063acc 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoCancelarItem.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoCancelarItem.java
@@ -1,7 +1,7 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.EComandoSQL;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.Sql;
@@ -11,9 +11,8 @@
import br.com.openpdv.modelo.ecf.EcfVendaProduto;
import br.com.openpdv.visao.core.Caixa;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
-import java.util.ArrayList;
-import java.util.List;
+import br.com.phdss.EComando;
+import br.com.phdss.IECF;
import org.apache.log4j.Logger;
/**
@@ -25,6 +24,7 @@ public class ComandoCancelarItem implements IComando {
private Logger log;
private EcfVendaProduto vendaProduto;
+ private IECF ecf;
/**
* Construtor padrao.
@@ -41,6 +41,7 @@ public ComandoCancelarItem() {
public ComandoCancelarItem(EcfVendaProduto vendaProduto) {
this.log = Logger.getLogger(ComandoCancelarItem.class);
this.vendaProduto = vendaProduto;
+ this.ecf = ECF.getInstancia();
}
@Override
@@ -64,8 +65,17 @@ public void desfazer() throws OpenPdvException {
* @exception OpenPdvException dispara caso nao consiga executar.
*/
public void cancelarItemEcf() throws OpenPdvException {
- String[] resp = ECF.enviar(EComandoECF.ECF_CancelaItemVendido, vendaProduto.getEcfVendaProdutoOrdem() + "");
- if (ECF.ERRO.equals(resp[0])) {
+ String codigo = vendaProduto.getEcfVendaProdutoCodigo();
+ String aliquota = getAliquota().replace(",", ".");
+ String qtd = Util.formataNumero(vendaProduto.getEcfVendaProdutoQuantidade(), 1, 2, false).replace(",", ".");
+ String valor = Util.formataNumero(vendaProduto.getEcfVendaProdutoBruto(), 1, 2, false).replace(",", ".");
+ String und = vendaProduto.getProdEmbalagem().getProdEmbalagemNome();
+ if (und.length() > 3) {
+ und = und.substring(0, 3);
+ }
+
+ String[] resp = ecf.enviar(EComando.ECF_CancelaItemVendido, new String[]{vendaProduto.getEcfVendaProdutoOrdem() + "", codigo, aliquota, qtd, valor, und});
+ if (IECF.ERRO.equals(resp[0])) {
log.error("Erro ao cancelar o item no ECF. -> " + resp[1]);
throw new OpenPdvException(resp[1]);
}
@@ -91,24 +101,54 @@ public void cancelarItemBanco() throws OpenPdvException {
* @exception OpenPdvException dispara caso nao consiga executar.
*/
public void cancelarItemTela() throws OpenPdvException {
- Caixa.getInstancia().getBobina().addElement(Util.formataTexto("", "*", ECF.COL, true));
+ String aliquota = getAliquota().replace(",", ".");
+ String qtd = Util.formataNumero(vendaProduto.getEcfVendaProdutoQuantidade(), 1, 2, false).replace(",", ".");
+ String valor = Util.formataNumero(vendaProduto.getEcfVendaProdutoBruto(), 1, 2, false).replace(",", ".");
+ double total = Double.valueOf(qtd) * Double.valueOf(valor);
+ String und = vendaProduto.getProdEmbalagem().getProdEmbalagemNome();
+ if (und.length() > 3) {
+ und = und.substring(0, 3);
+ }
+
// linha 1
- StringBuilder linha1 = new StringBuilder();
- linha1.append(Util.formataNumero(vendaProduto.getEcfVendaProdutoOrdem(), 3, 0, false));
- linha1.append(" ");
- linha1.append(Util.formataTexto(vendaProduto.getEcfVendaProdutoCodigo(), " ", 14, true));
- linha1.append(" ");
- linha1.append(vendaProduto.getProdProduto().getProdProdutoDescricao().length() > 28
- ? vendaProduto.getProdProduto().getProdProdutoDescricao().substring(0, 28) : vendaProduto.getProdProduto().getProdProdutoDescricao());
+ StringBuilder linha1 = new StringBuilder("cancelamento item:");
+ linha1.append(Util.formataNumero(vendaProduto.getEcfVendaProdutoOrdem(), 3, 0, false)).append(" ");
+ linha1.append(Util.formataTexto(vendaProduto.getEcfVendaProdutoCodigo(), " ", 14, Util.EDirecao.DIREITA));
Caixa.getInstancia().getBobina().addElement(linha1.toString());
// linha 2
- Caixa.getInstancia().getBobina().addElement("ITEM CANCELADO");
- Caixa.getInstancia().getBobina().addElement(Util.formataTexto("", "*", ECF.COL, true));
+ StringBuilder linha2 = new StringBuilder();
+ linha2.append(Util.formataTexto(Util.formataNumero(qtd, 1, 0, false), " ", 8, Util.EDirecao.ESQUERDA));
+ linha2.append(und).append(" X ");
+ linha2.append(Util.formataTexto(Util.formataNumero(valor, 1, 2, false), " ", 11, Util.EDirecao.DIREITA));
+ linha2.append(Util.formataTexto(aliquota, " ", 9, Util.EDirecao.DIREITA));
+ linha2.append(Util.formataTexto("-" + Util.formataNumero(total, 1, 2, false) + " ", " ", 14, Util.EDirecao.ESQUERDA));
+ Caixa.getInstancia().getBobina().addElement(linha2.toString());
// colocando no foco selecionado
Caixa.getInstancia().getLstBobina().setSelectedIndex(Caixa.getInstancia().getBobina().getSize() - 1);
Caixa.getInstancia().getLstBobina().ensureIndexIsVisible(Caixa.getInstancia().getBobina().getSize() - 1);
}
+ /**
+ * Metodo que identifica o tipo e porcentagem da aliquota.
+ *
+ * @return no formato requerido.
+ */
+ private String getAliquota() {
+ String aliquota;
+ switch (vendaProduto.getEcfVendaProdutoTributacao()) {
+ case 'T':
+ aliquota = Util.formataNumero(vendaProduto.getEcfVendaProdutoIcms(), 2, 2, false) + "T";
+ break;
+ case 'S':
+ aliquota = Util.formataNumero(vendaProduto.getEcfVendaProdutoIssqn(), 2, 2, false) + "S";
+ break;
+ default:
+ aliquota = String.valueOf(vendaProduto.getEcfVendaProdutoTributacao()) + String.valueOf(vendaProduto.getEcfVendaProdutoTributacao());
+ break;
+ }
+ return aliquota;
+ }
+
public EcfVendaProduto getVendaProduto() {
return vendaProduto;
}
@@ -116,4 +156,4 @@ public EcfVendaProduto getVendaProduto() {
public void setVendaProduto(EcfVendaProduto vendaProduto) {
this.vendaProduto = vendaProduto;
}
-}
\ No newline at end of file
+}
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoCancelarPagamento.java b/src/br/com/openpdv/controlador/comandos/ComandoCancelarPagamento.java
index 28353d0..0c09eb7 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoCancelarPagamento.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoCancelarPagamento.java
@@ -1,7 +1,7 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.EcfPagamento;
import br.com.phdss.TEF;
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoCancelarVenda.java b/src/br/com/openpdv/controlador/comandos/ComandoCancelarVenda.java
index 5c16e36..bb8a4ff 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoCancelarVenda.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoCancelarVenda.java
@@ -1,7 +1,7 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.EComandoSQL;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.Sql;
@@ -21,7 +21,8 @@
import br.com.openpdv.visao.core.Aguarde;
import br.com.openpdv.visao.core.Caixa;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
+import br.com.phdss.EComando;
+import br.com.phdss.IECF;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
@@ -38,6 +39,7 @@ public class ComandoCancelarVenda implements IComando {
private CoreService service;
private EcfVenda venda;
private boolean auto;
+ private IECF ecf;
/**
* Construtor padrao.
@@ -67,6 +69,7 @@ public ComandoCancelarVenda(boolean auto, SisUsuario gerente) {
this.log = Logger.getLogger(ComandoCancelarVenda.class);
this.service = new CoreService();
this.auto = auto;
+ this.ecf = ECF.getInstancia();
try {
List vendas = service.selecionar(new EcfVenda(), 0, 1, null);
@@ -89,6 +92,28 @@ public void executar() throws OpenPdvException {
cancelarVendaBanco();
// cancela na tela
cancelarVendaTela();
+ // atualizando o servidor
+ if (!Util.getConfig().get("sinc.servidor").endsWith("localhost")) {
+ new Thread(new Runnable() {
+
+ @Override
+ public void run() {
+ try {
+ List lista = new ArrayList<>();
+ lista.add(venda);
+ lista = ComandoEnviarDados.getInstancia().enviar("venda", lista);
+ // marca a venda como sincronizada
+ if (!lista.isEmpty()) {
+ CoreService service = new CoreService();
+ venda.setEcfVendaSinc(true);
+ service.salvar(venda);
+ }
+ } catch (Exception ex) {
+ log.error("Nao enviou no momento a venda com id -> " + venda.getId(), ex);
+ }
+ }
+ }).start();
+ }
} catch (OpenPdvException ex) {
if (!auto) {
throw new OpenPdvException("A última venda já está cancelada.");
@@ -106,12 +131,11 @@ public void executar() throws OpenPdvException {
Caixa.getInstancia().modoIndisponivel();
JOptionPane.showMessageDialog(null, "Ocorreram problemas ao cancelar os cartões!\nSistema ficará indisponível até resolver o problema!", "TEF", JOptionPane.ERROR_MESSAGE);
}
+ // cancela a venda na tela
+ cancelarVendaTela();
} else {
throw new OpenPdvException("A última venda já está cancelada.");
}
-
- // cancela a venda na tela
- cancelarVendaTela();
}
@Override
@@ -125,8 +149,8 @@ public void desfazer() throws OpenPdvException {
* @exception OpenPdvException dispara caso nao consiga executar.
*/
public void cancelarVendaECF() throws OpenPdvException {
- String[] resp = ECF.enviar(EComandoECF.ECF_CancelaCupom);
- if (ECF.ERRO.equals(resp[0])) {
+ String[] resp = ecf.enviar(EComando.ECF_CancelaCupom, venda.getEcfVendaCcf() + "", venda.getEcfVendaCoo() + "", venda.getEcfVendaLiquido().toString());
+ if (IECF.ERRO.equals(resp[0])) {
log.error("Erro ao cancelar a venda. -> " + resp[1]);
throw new OpenPdvException(resp[1]);
}
@@ -216,6 +240,8 @@ public void cancelarVendaBanco() throws OpenPdvException {
}
ParametroBinario pb = new ParametroBinario("ecfVendaCancelada", true);
gp.add(pb);
+ ParametroBinario pb1 = new ParametroBinario("ecfVendaSinc", false);
+ gp.add(pb1);
ParametroObjeto po = new ParametroObjeto("sisGerente", venda.getSisGerente());
gp.add(po);
Sql sql = new Sql(new EcfVenda(), EComandoSQL.ATUALIZAR, fn, gp);
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoCupomPresente.java b/src/br/com/openpdv/controlador/comandos/ComandoCupomPresente.java
index 225f8d8..9176b82 100644
--- a/src/br/com/openpdv/controlador/comandos/ComandoCupomPresente.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoCupomPresente.java
@@ -1,7 +1,7 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.filtro.ECompara;
import br.com.openpdv.modelo.core.filtro.FiltroNumero;
@@ -9,7 +9,8 @@
import br.com.openpdv.modelo.ecf.EcfVendaProduto;
import br.com.openpdv.visao.core.Caixa;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
+import br.com.phdss.EComando;
+import br.com.phdss.IECF;
import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Comparator;
@@ -26,6 +27,7 @@ public class ComandoCupomPresente implements IComando {
private Logger log = Logger.getLogger(ComandoCupomPresente.class);
private CoreService service = new CoreService();
private EcfVenda venda;
+ private IECF ecf;
/**
* Construtor padrao.
@@ -38,6 +40,8 @@ public ComandoCupomPresente(int ccf) {
this.venda = (EcfVenda) service.selecionar(new EcfVenda(), fn);
} catch (OpenPdvException ex) {
this.venda = null;
+ } finally {
+ this.ecf = ECF.getInstancia();
}
}
@@ -48,6 +52,7 @@ public ComandoCupomPresente(int ccf) {
*/
public ComandoCupomPresente(EcfVenda venda) {
this.venda = venda;
+ this.ecf = ECF.getInstancia();
}
@Override
@@ -112,7 +117,7 @@ public int compare(EcfVendaProduto o1, EcfVendaProduto o2) {
try {
int item = Integer.valueOf(texto);
if (item < 1 || item > venda.getEcfVendaProdutos().size()) {
- JOptionPane.showMessageDialog(Caixa.getInstancia(), "O número informado não corresponde a nenhum item da venda.", "Cancelar Item", JOptionPane.WARNING_MESSAGE);
+ JOptionPane.showMessageDialog(Caixa.getInstancia(), "O número informado não corresponde a nenhum item da venda.", "Cupom Presente", JOptionPane.WARNING_MESSAGE);
} else {
EcfVendaProduto vp = venda.getEcfVendaProdutos().get(item - 1);
if (vp.getEcfVendaProdutoCancelado() == false) {
@@ -128,7 +133,7 @@ public int compare(EcfVendaProduto o1, EcfVendaProduto o2) {
}
}
} catch (NumberFormatException nfe) {
- JOptionPane.showMessageDialog(Caixa.getInstancia(), "Não foi informado um número inteiro.", "Cancelar Item", JOptionPane.WARNING_MESSAGE);
+ JOptionPane.showMessageDialog(Caixa.getInstancia(), "Não foi informado um número inteiro.", "Cupom Presente", JOptionPane.WARNING_MESSAGE);
}
}
}
@@ -144,9 +149,9 @@ public void desfazer() throws OpenPdvException {
private void abrirCupom() throws OpenPdvException {
// abrindo o relatorio
- String[] resp = ECF.enviar(EComandoECF.ECF_AbreRelatorioGerencial, Util.getConfig().get("ecf.relpresente"));
+ String[] resp = ecf.enviar(EComando.ECF_AbreRelatorioGerencial, Util.getConfig().get("ecf.relpresente"));
if (resp[0].equals("ERRO")) {
- ECF.enviar(EComandoECF.ECF_CorrigeEstadoErro);
+ ecf.enviar(EComando.ECF_CorrigeEstadoErro);
throw new OpenPdvException(resp[1]);
}
}
@@ -154,16 +159,16 @@ private void abrirCupom() throws OpenPdvException {
private String cabecalho() {
StringBuilder sb = new StringBuilder();
// cabecalho
- sb.append(ECF.LD).append(ECF.SL);
- sb.append("CUPOM PRESENTE").append(ECF.SL);
- sb.append(ECF.LD).append(ECF.SL);
+ sb.append(IECF.LD).append(IECF.SL);
+ sb.append("").append(Util.formataTexto("CUPOM PRESENTE", " ", IECF.COL, Util.EDirecao.AMBOS)).append("").append(IECF.SL);
+ sb.append(IECF.LD).append(IECF.SL);
// dados da venda
- sb.append("Venda: ").append(new SimpleDateFormat("dd/MM/yyyy").format(venda.getEcfVendaData()));
+ sb.append("Venda: ").append(new SimpleDateFormat("dd/MM/yyyy").format(venda.getEcfVendaData()));
sb.append(" CCF: ").append(Util.formataNumero(venda.getEcfVendaCcf(), 6, 0, false));
sb.append(" COO: ").append(Util.formataNumero(venda.getEcfVendaCoo(), 6, 0, false));
- sb.append(ECF.SL);
- sb.append("ITEM CODIGO DESCRICAO QTD.").append(ECF.SL);
- sb.append(ECF.LS);
+ sb.append(IECF.SL);
+ sb.append("ITEM CODIGO DESCRICAO QTD.").append(IECF.SL);
+ sb.append(IECF.LS).append(IECF.SL);
return sb.toString();
}
@@ -171,37 +176,37 @@ private String item(EcfVendaProduto vp) {
StringBuilder sb = new StringBuilder();
sb.append(Util.formataNumero(vp.getEcfVendaProdutoOrdem(), 3, 0, false));
sb.append(" ");
- sb.append(Util.formataTexto(vp.getEcfVendaProdutoCodigo(), " ", 14, true));
+ sb.append(Util.formataTexto(vp.getEcfVendaProdutoCodigo(), " ", 14, Util.EDirecao.DIREITA));
sb.append(" ");
String desc = vp.getProdProduto().getProdProdutoDescricao().length() > 23 ? vp.getProdProduto().getProdProdutoDescricao().substring(0, 23) : vp.getProdProduto().getProdProdutoDescricao();
- sb.append(Util.formataTexto(desc, " ", 23, true));
+ sb.append(Util.formataTexto(desc, " ", 23, Util.EDirecao.DIREITA));
sb.append(" ");
- sb.append(Util.formataTexto(Util.formataNumero(vp.getEcfVendaProdutoQuantidade(), 1, 0, false), " ", 3, false));
- sb.append(ECF.SL);
+ sb.append(Util.formataTexto(Util.formataNumero(vp.getEcfVendaProdutoQuantidade(), 1, 0, false), " ", 3, Util.EDirecao.ESQUERDA));
+ sb.append(IECF.SL);
return sb.toString();
}
private String rodape() {
StringBuilder sb = new StringBuilder();
// rodape
- sb.append(ECF.LD).append(ECF.SL);
- sb.append(Util.getConfig().get("ecf.msgpresente")).append(ECF.SL);
+ sb.append(IECF.LD).append(IECF.SL);
+ sb.append(Util.getConfig().get("ecf.msgpresente")).append(IECF.SL);
sb.append("OPERADOR: ").append(venda.getSisUsuario().getSisUsuarioLogin());
if (venda.getSisVendedor() != null) {
sb.append(" - VENDEDOR: ").append(venda.getSisVendedor().getSisUsuarioLogin());
}
- sb.append(ECF.SL).append(ECF.LD).append(ECF.SL);
+ sb.append(IECF.SL).append(IECF.LD).append(IECF.SL);
return sb.toString();
}
private void fecharCupom(String texto) throws OpenPdvException {
// envia o comando com todo o texto
- String[] resp = ECF.enviar(EComandoECF.ECF_LinhaRelatorioGerencial, texto);
- if (resp[0].equals("ERRO")) {
- ECF.enviar(EComandoECF.ECF_CorrigeEstadoErro);
+ String[] resp = ecf.enviar(EComando.ECF_LinhaRelatorioGerencial, texto);
+ if (resp[0].equals(IECF.ERRO)) {
+ ecf.enviar(EComando.ECF_CorrigeEstadoErro);
throw new OpenPdvException(resp[1]);
} else {
- ECF.enviar(EComandoECF.ECF_FechaRelatorio);
+ ecf.enviar(EComando.ECF_FechaRelatorio);
}
}
}
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoEmitirMovimentoECF.java b/src/br/com/openpdv/controlador/comandos/ComandoEmitirMovimentoECF.java
index 71661c4..777beb8 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoEmitirMovimentoECF.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoEmitirMovimentoECF.java
@@ -1,12 +1,13 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.filtro.*;
import br.com.openpdv.modelo.ecf.*;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
+import br.com.phdss.EComando;
+import br.com.phdss.IECF;
import br.com.phdss.controlador.PAF;
import br.com.phdss.modelo.anexo.vi.*;
import java.text.SimpleDateFormat;
@@ -26,6 +27,7 @@ public class ComandoEmitirMovimentoECF implements IComando {
private Date inicio;
private Date fim;
private String path;
+ private IECF ecf;
/**
* Construtor padrao passando os parametros necessarios.
@@ -40,6 +42,7 @@ public ComandoEmitirMovimentoECF(EcfImpressora impressora, Date inicio, Date fim
this.inicio = inicio;
this.fim = fim;
this.service = new CoreService();
+ this.ecf = ECF.getInstancia();
}
@Override
@@ -60,12 +63,12 @@ public void executar() throws OpenPdvException {
r01.setUsuario(1);
r01.setTipoECF(impressora.getEcfImpressoraTipo());
r01.setMarcaECF(impressora.getEcfImpressoraMarca());
- String[] resp = ECF.enviar(EComandoECF.ECF_NumVersao);
- if (ECF.OK.equals(resp[0])) {
+ String[] resp = ecf.enviar(EComando.ECF_NumVersao);
+ if (IECF.OK.equals(resp[0])) {
r01.setVersaoSB(resp[1]);
}
- resp = ECF.enviar(EComandoECF.ECF_DataHoraSB);
- if (ECF.OK.equals(resp[0])) {
+ resp = ecf.enviar(EComando.ECF_DataHoraSB);
+ if (IECF.OK.equals(resp[0])) {
r01.setDataSB(new SimpleDateFormat("dd/MM/yy HH:mm:ss").parse(resp[1]));
}
r01.setNumeroECF(impressora.getEcfImpressoraCaixa());
@@ -82,7 +85,7 @@ public void executar() throws OpenPdvException {
arquivoMD5.append("arquivos");
arquivoMD5.append(System.getProperty("file.separator"));
arquivoMD5.append("arquivoMD5.txt");
- r01.setPafMD5(PAF.gerarMD5(arquivoMD5.toString()));
+ r01.setPafMD5(Util.gerarMD5(arquivoMD5.toString()));
r01.setPafER(PAF.AUXILIAR.getProperty("paf.er"));
r01.setInicio(inicio);
r01.setFim(fim);
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoEmitirReducaoZ.java b/src/br/com/openpdv/controlador/comandos/ComandoEmitirReducaoZ.java
index b2765c9..7b517f5 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoEmitirReducaoZ.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoEmitirReducaoZ.java
@@ -1,8 +1,7 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
-import br.com.openpdv.controlador.permissao.Login;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.EComandoSQL;
import br.com.openpdv.modelo.core.EDirecao;
import br.com.openpdv.modelo.core.OpenPdvException;
@@ -20,8 +19,9 @@
import br.com.openpdv.modelo.ecf.EcfZTotais;
import br.com.openpdv.visao.core.Caixa;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
-import br.com.phdss.EEstadoECF;
+import br.com.phdss.EComando;
+import br.com.phdss.EEstado;
+import br.com.phdss.IECF;
import br.com.phdss.controlador.PAF;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
@@ -41,6 +41,7 @@ public class ComandoEmitirReducaoZ implements IComando {
private Logger log;
private CoreService service;
private Date dataMovimento;
+ private IECF ecf;
/**
* Construtor padrao.
@@ -48,6 +49,7 @@ public class ComandoEmitirReducaoZ implements IComando {
public ComandoEmitirReducaoZ() {
this.log = Logger.getLogger(ComandoEmitirReducaoZ.class);
this.service = new CoreService();
+ this.ecf = ECF.getInstancia();
}
@Override
@@ -63,7 +65,7 @@ public void executar() throws OpenPdvException {
// gera os totais dos pagamentos
new ComandoTotalizarPagamentos(dataMovimento).executar();
// gera o arquivo do cat52
- if (Boolean.valueOf(Util.getConfig().get("ecf.cat52"))) {
+ if (Util.getConfig().get("ecf.cat52") != null) {
new ComandoGerarCat52(Caixa.getInstancia().getEmpresa(), Caixa.getInstancia().getImpressora(), dataMovimento).executar();
}
// atualizando o servidor
@@ -83,25 +85,25 @@ public void desfazer() throws OpenPdvException {
* @exception OpenPdvException dispara caso nao consiga executar.
*/
public void emitirReducaoZEcf() throws OpenPdvException {
- ECF.enviar(EComandoECF.ECF_ReducaoZ);
+ ecf.enviar(EComando.ECF_ReducaoZ);
- // enquanto o estado nao for bloquado(Z emitida) ou o limite superar 3 tentativas
- EEstadoECF estado;
+ // enquanto o estado nao for bloqueado(Z emitida) ou o limite superar 3 tentativas
+ EEstado estado;
int tempo = Integer.valueOf(Util.getConfig().get("ecf.tempo"));
int tentativas = Integer.valueOf(Util.getConfig().get("ecf.tentativas"));
do {
// recupera o estado
try {
- estado = ECF.validarEstado();
+ estado = ecf.validarEstado();
} catch (Exception ex) {
- estado = EEstadoECF.estDesconhecido;
+ estado = EEstado.estDesconhecido;
} finally {
tentativas--;
}
// espera alguns segundos
- if (estado != EEstadoECF.estBloqueada) {
+ if (estado != EEstado.estBloqueada) {
try {
Thread.sleep(tempo * 1000);
} catch (InterruptedException ex) {
@@ -119,8 +121,8 @@ public void emitirReducaoZEcf() throws OpenPdvException {
* @exception OpenPdvException dispara caso nao consiga executar.
*/
public void emitirReducaoZBanco() throws OpenPdvException {
- String[] resp = ECF.enviar(EComandoECF.ECF_DadosUltimaReducaoZ);
- if (ECF.OK.equals(resp[0])) {
+ String[] resp = ecf.enviar(EComando.ECF_DadosUltimaReducaoZ);
+ if (IECF.OK.equals(resp[0])) {
try {
// pega os dados
InputStream stream = new ByteArrayInputStream(resp[1].replace(",", ".").getBytes("UTF-8"));
@@ -141,7 +143,7 @@ public void emitirReducaoZBanco() throws OpenPdvException {
// gera o registro EcfZ
EcfZ z = new EcfZ();
z.setEcfImpressora(Caixa.getInstancia().getImpressora());
- z.setEcfZUsuario(Login.getOperador() == null ? 0 : Login.getOperador().getId());
+ z.setEcfZUsuario(1);
z.setEcfZCrz(ini.get("ECF", "NumCRZ", int.class));
z.setEcfZCooIni(cooIni);
z.setEcfZCooFin(ini.get("ECF", "NumCOO", int.class));
@@ -301,7 +303,7 @@ public void emitirReducaoZBanco() throws OpenPdvException {
// salva os totais do z
service.salvar(totais.values());
} catch (Exception ex) {
- log.error("Erro ao gerar ao salvar os dados da reducao Z -> " + resp[1], ex);
+ log.error("Erro ao gerar e salvar os dados da reducao Z -> " + resp[1], ex);
throw new OpenPdvException("Nao foi possivel salvar os dados da Z no banco!\nAvise o administrador pra realizar manualmente!");
}
} else {
@@ -319,8 +321,8 @@ public void emitirLMFC() throws OpenPdvException {
Date data;
// data atual do ECF
- String[] resp = ECF.enviar(EComandoECF.ECF_DataHora);
- if (ECF.OK.equals(resp[0])) {
+ String[] resp = ecf.enviar(EComando.ECF_DataHora);
+ if (IECF.OK.equals(resp[0])) {
try {
data = new SimpleDateFormat("dd/MM/yy HH:mm:ss").parse(resp[1]);
} catch (ParseException ex) {
@@ -345,7 +347,7 @@ public void emitirLMFC() throws OpenPdvException {
String inicio = new SimpleDateFormat("dd/MM/yyyy").format(cal.getTime());
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
String fim = new SimpleDateFormat("dd/MM/yyyy").format(cal.getTime());
- PAF.leituraMF(EComandoECF.ECF_PafMf_Lmfc_Impressao, new String[]{inicio, fim});
+ PAF.leituraMF(EComando.ECF_PafMf_Lmfc_Impressao, new String[]{inicio, fim});
}
}
}
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoEnviarDados.java b/src/br/com/openpdv/controlador/comandos/ComandoEnviarDados.java
index cf6b76a..222ca03 100644
--- a/src/br/com/openpdv/controlador/comandos/ComandoEnviarDados.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoEnviarDados.java
@@ -1,14 +1,13 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.Dados;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.filtro.ECompara;
import br.com.openpdv.modelo.core.filtro.EJuncao;
import br.com.openpdv.modelo.core.filtro.FiltroBinario;
import br.com.openpdv.modelo.core.filtro.FiltroData;
-import br.com.openpdv.modelo.core.filtro.FiltroNumero;
import br.com.openpdv.modelo.core.filtro.GrupoFiltro;
import br.com.openpdv.modelo.ecf.EcfNota;
import br.com.openpdv.modelo.ecf.EcfNotaEletronica;
@@ -223,7 +222,7 @@ private void zs() {
private void salvar() throws OpenPdvException {
try {
PAF.AUXILIAR.setProperty("out.recebimento", Util.getData(new Date()));
- PAF.criptografar();
+ Util.criptografar(null, PAF.AUXILIAR);
} catch (Exception ex) {
throw new OpenPdvException("Erro ao salvar no arquivo auxiliar.\nVerifique o log do sistema.", ex);
}
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoEnviarDadosLocal.java b/src/br/com/openpdv/controlador/comandos/ComandoEnviarDadosLocal.java
index f2cfd5b..89eb40b 100644
--- a/src/br/com/openpdv/controlador/comandos/ComandoEnviarDadosLocal.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoEnviarDadosLocal.java
@@ -2,7 +2,7 @@
import br.com.openpdv.modelo.core.Dados;
import br.com.openpdv.rest.RestContexto;
-import br.com.phdss.controlador.PAF;
+import br.com.phdss.Util;
import java.io.FileWriter;
import java.util.Date;
import java.util.List;
@@ -30,7 +30,7 @@ public ComandoEnviarDadosLocal(Date inicio, Date fim) {
@Override
protected List enviar(String tipo, List lista) throws Exception {
- StringBuilder sb = new StringBuilder(PAF.getPathArquivos());
+ StringBuilder sb = new StringBuilder(Util.getPathArquivos());
sb.append("exportar").append(System.getProperty("file.separator"));
sb.append(tipo).append("_").append(new Date().getTime()).append(".json");
fw = new FileWriter(sb.toString());
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoEnviarDadosRemoto.java b/src/br/com/openpdv/controlador/comandos/ComandoEnviarDadosRemoto.java
index 7e77cf9..f530109 100644
--- a/src/br/com/openpdv/controlador/comandos/ComandoEnviarDadosRemoto.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoEnviarDadosRemoto.java
@@ -1,6 +1,7 @@
package br.com.openpdv.controlador.comandos;
-import br.com.openpdv.controlador.core.Util;
+import br.com.openpdv.controlador.core.Conexao;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.Dados;
import com.sun.jersey.api.client.WebResource;
import java.util.ArrayList;
@@ -27,7 +28,7 @@ public ComandoEnviarDadosRemoto(Date inicio, Date fim) {
@Override
protected List enviar(String tipo, List lista) throws Exception {
- wr = Util.getRest(Util.getConfig().get("sinc.server") + "/" + tipo);
+ wr = Conexao.getRest(Util.getConfig().get("sinc.server") + "/" + tipo);
List enviados = new ArrayList<>();
for (E obj : lista) {
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoEnviarNFe.java b/src/br/com/openpdv/controlador/comandos/ComandoEnviarNFe.java
index 434006d..384b401 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoEnviarNFe.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoEnviarNFe.java
@@ -1,7 +1,7 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.NFe;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.ENotaStatus;
import br.com.openpdv.modelo.ecf.EcfNotaEletronica;
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoEnviarNFeCancelada.java b/src/br/com/openpdv/controlador/comandos/ComandoEnviarNFeCancelada.java
index 0bb5385..2ef842e 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoEnviarNFeCancelada.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoEnviarNFeCancelada.java
@@ -1,7 +1,7 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.NFe;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.ENotaStatus;
import br.com.openpdv.modelo.ecf.EcfNotaEletronica;
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoEnviarNFeInutilizada.java b/src/br/com/openpdv/controlador/comandos/ComandoEnviarNFeInutilizada.java
index f687f1b..e2d8ec8 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoEnviarNFeInutilizada.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoEnviarNFeInutilizada.java
@@ -1,7 +1,7 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.NFe;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.ENotaStatus;
import br.com.openpdv.modelo.ecf.EcfNotaEletronica;
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoFecharVenda.java b/src/br/com/openpdv/controlador/comandos/ComandoFecharVenda.java
index 4bded99..63c6a54 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoFecharVenda.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoFecharVenda.java
@@ -1,7 +1,7 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.EComandoSQL;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.Sql;
@@ -17,7 +17,8 @@
import br.com.openpdv.visao.core.Aguarde;
import br.com.openpdv.visao.core.Caixa;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
+import br.com.phdss.EComando;
+import br.com.phdss.IECF;
import br.com.phdss.TEF;
import br.com.phdss.controlador.PAF;
import java.util.ArrayList;
@@ -41,6 +42,7 @@ public class ComandoFecharVenda implements IComando {
private double acres_desc;
private String obs;
private EcfVenda venda;
+ private IECF ecf;
/**
* Construtor padrao.
@@ -58,6 +60,7 @@ public ComandoFecharVenda(List pagamentos, double bruto, double ac
this.acres_desc = acres_desc;
this.venda = Caixa.getInstancia().getVenda();
this.obs = obs;
+ this.ecf = ECF.getInstancia();
}
@Override
@@ -85,11 +88,13 @@ public void run() {
List lista = new ArrayList<>();
venda.setEcfPagamentos(pagamentos);
lista.add(venda);
- ComandoEnviarDados.getInstancia().enviar("venda", lista);
+ lista = ComandoEnviarDados.getInstancia().enviar("venda", lista);
// marca a venda como sincronizada
- CoreService service = new CoreService();
- venda.setEcfVendaSinc(true);
- service.salvar(venda);
+ if (!lista.isEmpty()) {
+ CoreService service = new CoreService();
+ venda.setEcfVendaSinc(true);
+ service.salvar(venda);
+ }
} catch (Exception ex) {
log.error("Nao enviou no momento a venda com id -> " + venda.getId(), ex);
}
@@ -119,27 +124,25 @@ public void fecharVendaECF() throws OpenPdvException {
// sub totaliza
String AD = Util.formataNumero(acres_desc, 1, 2, false).replace(",", ".");
StringBuilder sb = new StringBuilder();
- //sb.append(Util.formataTexto("MD5: " + PAF.AUXILIAR.getProperty("out.autenticado"), " ", ECF.COL, true));
- // @TODO remover esta linha abaixo.
- sb.append(Util.formataTexto("MD5: 33b5a11f390b986c5b2163270db0b6c6", " ", ECF.COL, true));
-
+ sb.append("MD5: ").append(PAF.AUXILIAR.getProperty("out.autenticado")).append(IECF.SL);
+
// identifica o operador do caixa e o vendedor
String operador = "OPERADOR: " + venda.getSisUsuario().getSisUsuarioLogin();
if (venda.getSisVendedor() != null) {
operador += " - VENDEDOR: " + venda.getSisVendedor().getSisUsuarioLogin();
}
- sb.append(Util.formataTexto(operador, " ", ECF.COL, true));
+ sb.append(operador).append(IECF.SL);
// caso nao tenha sido informado o cliente
if (venda.getSisCliente() == null) {
- sb.append(Util.formataTexto("CONSUMIDOR NAO INFORMOU O CPF/CNPJ", " ", ECF.COL, true));
+ sb.append("CONSUMIDOR NAO INFORMOU O CPF/CNPJ").append(IECF.SL);
} else if (Caixa.getInstancia().getVenda().isInformouCliente() == false) {
- sb.append("CNPJ/CPF: ").append(venda.getSisCliente().getSisClienteDoc()).append(ECF.SL);
+ sb.append("CNPJ/CPF consumidor:").append(venda.getSisCliente().getSisClienteDoc()).append(IECF.SL);
if (!venda.getSisCliente().getSisClienteNome().equals("")) {
- sb.append("NOME: ").append(venda.getSisCliente().getSisClienteNome()).append(ECF.SL);
+ sb.append("NOME:").append(venda.getSisCliente().getSisClienteNome()).append(IECF.SL);
}
if (!venda.getSisCliente().getSisClienteEndereco().equals("")) {
- sb.append("ENDEREÇO: ").append(venda.getSisCliente().getSisClienteEndereco()).append(ECF.SL);
+ sb.append("END:").append(venda.getSisCliente().getSisClienteEndereco()).append(IECF.SL);
}
}
@@ -148,15 +151,15 @@ public void fecharVendaECF() throws OpenPdvException {
sb.append("MINAS LEGAL: ");
sb.append(PAF.AUXILIAR.getProperty("cli.cnpj")).append(" ");
sb.append(Util.formataData(venda.getEcfVendaData(), "ddMMyyyy")).append(" ");
- sb.append(Util.formataNumero(bruto + acres_desc, 0, 2, true).replace(",", ""));
+ sb.append(Util.formataNumero(bruto + acres_desc, 0, 2, true).replace(",", "")).append(IECF.SL);
} else if (PAF.AUXILIAR.getProperty("paf.cupom_mania").equalsIgnoreCase("SIM")) {
// caso seja no estado de RJ, colocar o cupom mania
- sb.append(Util.formataTexto("CUPOM MANIA - CONCORRA A PREMIOS", " ", ECF.COL, true));
+ sb.append("CUPOM MANIA - CONCORRA A PREMIOS").append(IECF.SL);
sb.append("ENVIE SMS P/ 6789: ");
sb.append(Util.formataNumero(PAF.AUXILIAR.getProperty("cli.ie"), 8, 0, false));
sb.append(Util.formataData(venda.getEcfVendaData(), "ddMMyyyy"));
sb.append(Util.formataNumero(venda.getEcfVendaCoo(), 6, 0, false));
- sb.append(Util.formataNumero(Caixa.getInstancia().getImpressora().getEcfImpressoraCaixa(), 3, 0, false));
+ sb.append(Util.formataNumero(Caixa.getInstancia().getImpressora().getEcfImpressoraCaixa(), 3, 0, false)).append(IECF.SL);
}
// caso a opcao de mostrar os valores de impostos esteja ativa
@@ -176,11 +179,11 @@ public void fecharVendaECF() throws OpenPdvException {
double porcentagem = impostos / (bruto + acres_desc) * 100;
sb.append("Val Aprox Trib R$ ");
sb.append(Util.formataNumero(impostos, 1, 2, false).replace(",", ".")).append(" [");
- sb.append(Util.formataNumero(porcentagem, 1, 2, false).replace(",", ".")).append("%] Fonte: IBPT").append(ECF.SL);
+ sb.append(Util.formataNumero(porcentagem, 1, 2, false).replace(",", ".")).append("%] Fonte: IBPT").append(IECF.SL);
}
- String[] resp = ECF.enviar(EComandoECF.ECF_SubtotalizaCupom, AD, sb.toString());
- if (ECF.ERRO.equals(resp[0])) {
+ String[] resp = ecf.enviar(EComando.ECF_SubtotalizaCupom, AD, sb.toString());
+ if (IECF.ERRO.equals(resp[0])) {
log.error("Erro ao fechar a venda. -> " + resp[1]);
throw new OpenPdvException(resp[1]);
}
@@ -198,8 +201,8 @@ public void fecharVendaECF() throws OpenPdvException {
String dinheiro = Util.getConfig().get("ecf.dinheiro");
if (pags.containsKey(dinheiro)) {
String valor = Util.formataNumero(pags.remove(dinheiro), 1, 2, false).replace(",", ".");
- resp = ECF.enviar(EComandoECF.ECF_EfetuaPagamento, dinheiro, valor);
- if (ECF.ERRO.equals(resp[0])) {
+ resp = ecf.enviar(EComando.ECF_EfetuaPagamento, dinheiro, valor);
+ if (IECF.ERRO.equals(resp[0])) {
log.error("Erro ao fechar a venda. -> " + resp[1]);
throw new OpenPdvException(resp[1]);
}
@@ -208,8 +211,8 @@ public void fecharVendaECF() throws OpenPdvException {
String troca = Util.getConfig().get("ecf.troca");
if (pags.containsKey(troca)) {
String valor = Util.formataNumero(pags.remove(troca), 1, 2, false).replace(",", ".");
- resp = ECF.enviar(EComandoECF.ECF_EfetuaPagamento, troca, valor);
- if (ECF.ERRO.equals(resp[0])) {
+ resp = ecf.enviar(EComando.ECF_EfetuaPagamento, troca, valor);
+ if (IECF.ERRO.equals(resp[0])) {
log.error("Erro ao fechar a venda. -> " + resp[1]);
throw new OpenPdvException(resp[1]);
}
@@ -217,24 +220,24 @@ public void fecharVendaECF() throws OpenPdvException {
// imprime os demais
for (Entry pag : pags.entrySet()) {
String valor = Util.formataNumero(pag.getValue(), 1, 2, false).replace(",", ".");
- resp = ECF.enviar(EComandoECF.ECF_EfetuaPagamento, pag.getKey(), valor);
- if (ECF.ERRO.equals(resp[0])) {
+ resp = ecf.enviar(EComando.ECF_EfetuaPagamento, pag.getKey(), valor);
+ if (IECF.ERRO.equals(resp[0])) {
log.error("Erro ao fechar a venda. -> " + resp[1]);
throw new OpenPdvException(resp[1]);
}
}
// fecha a venda
- resp = ECF.enviar(EComandoECF.ECF_FechaCupom);
- if (ECF.ERRO.equals(resp[0])) {
+ resp = ecf.enviar(EComando.ECF_FechaCupom);
+ if (IECF.ERRO.equals(resp[0])) {
log.error("Erro ao fechar a venda. -> " + resp[1]);
throw new OpenPdvException(resp[1]);
} else {
// atualiza o gt
try {
- resp = ECF.enviar(EComandoECF.ECF_GrandeTotal);
- if (ECF.OK.equals(resp[0])) {
+ resp = ecf.enviar(EComando.ECF_GrandeTotal);
+ if (IECF.OK.equals(resp[0])) {
PAF.AUXILIAR.setProperty("ecf.gt", resp[1]);
- PAF.criptografar();
+ Util.criptografar(null, PAF.AUXILIAR);
} else {
throw new Exception(resp[1]);
}
@@ -243,7 +246,7 @@ public void fecharVendaECF() throws OpenPdvException {
throw new OpenPdvException("Erro ao atualizar o GT.");
}
}
- } catch (Exception ex) {
+ } catch (OpenPdvException ex) {
TEF.bloquear(false);
int escolha = JOptionPane.showOptionDialog(null, "Impressora não responde, tentar novamente?", "TEF",
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[]{"SIM", "NÃO"}, JOptionPane.YES_OPTION);
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoGerarCat52.java b/src/br/com/openpdv/controlador/comandos/ComandoGerarCat52.java
index d00f044..ad27b70 100644
--- a/src/br/com/openpdv/controlador/comandos/ComandoGerarCat52.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoGerarCat52.java
@@ -1,7 +1,7 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.filtro.ECompara;
import br.com.openpdv.modelo.core.filtro.EJuncao;
@@ -18,7 +18,8 @@
import br.com.openpdv.modelo.ecf.EcfZTotais;
import br.com.openpdv.modelo.sistema.SisEmpresa;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
+import br.com.phdss.EComando;
+import br.com.phdss.IECF;
import br.com.phdss.controlador.PAF;
import br.com.phdss.modelo.cat52.Cat52;
import br.com.phdss.modelo.cat52.E00;
@@ -50,6 +51,8 @@ public class ComandoGerarCat52 implements IComando {
private EcfImpressora impressora;
private EcfZ ecfZ;
private String path;
+ private IECF ecf;
+ private final int usuario = 1;
/**
* Construtor padrao passando os parametros necessarios.
@@ -62,6 +65,7 @@ public ComandoGerarCat52(SisEmpresa empresa, EcfImpressora impressora, Date data
this.log = Logger.getLogger(ComandoGerarCat52.class);
this.empresa = empresa;
this.impressora = impressora;
+ this.ecf = ECF.getInstancia();
// seleciona a Z
CoreService service = new CoreService();
@@ -108,7 +112,7 @@ public void executar() throws OpenPdvException {
e00.setSerie(impressora.getEcfImpressoraSerie());
e00.setMfAdicional(impressora.getEcfImpressoraMfadicional());
e00.setModelo(impressora.getEcfImpressoraModelo());
- e00.setUsuario(1);
+ e00.setUsuario(usuario);
e00.setTipoEcf(impressora.getEcfImpressoraTipo());
e00.setMarcaEcf(impressora.getEcfImpressoraMarca());
e00.setCnpj_cpf(PAF.AUXILIAR.getProperty("sh.cnpj").replaceAll("\\D", ""));
@@ -122,20 +126,13 @@ public void executar() throws OpenPdvException {
e01.setSerie(impressora.getEcfImpressoraSerie());
e01.setMfAdicional(impressora.getEcfImpressoraMfadicional());
e01.setModelo(impressora.getEcfImpressoraModelo());
- e01.setUsuario(1);
- String[] resp = ECF.enviar(EComandoECF.ECF_NumVersao);
- if (ECF.OK.equals(resp[0])) {
- e01.setVersaoSB(resp[1]);
- } else {
- e01.setVersaoSB("01.00.00");
- }
- resp = ECF.enviar(EComandoECF.ECF_DataHoraSB);
- Date dataSB;
- if (ECF.OK.equals(resp[0])) {
- dataSB = new SimpleDateFormat("dd/MM/yy HH:mm:ss").parse(resp[1]);
- } else {
- dataSB = new Date();
- }
+ e01.setTipoEcf(impressora.getEcfImpressoraTipo());
+ e01.setMarcaEcf(impressora.getEcfImpressoraMarca());
+ String[] resp = ecf.enviar(EComando.ECF_NumVersao);
+ String versaoSB = IECF.OK.equals(resp[0]) ? resp[1] : "010000";
+ e01.setVersaoSB(versaoSB.substring(0, 2) + "." + versaoSB.substring(2, 4) + "." + versaoSB.substring(4));
+ resp = ecf.enviar(EComando.ECF_DataHoraSB);
+ Date dataSB = IECF.OK.equals(resp[0]) ? new SimpleDateFormat("dd/MM/yy HH:mm:ss").parse(resp[1]) : new Date();
e01.setDataSB(dataSB);
e01.setSequencial(impressora.getEcfImpressoraCaixa());
e01.setCnpj(empresa.getSisEmpresaCnpj().replaceAll("\\D", ""));
@@ -152,7 +149,7 @@ public void executar() throws OpenPdvException {
e02.setSerie(impressora.getEcfImpressoraSerie());
e02.setMfAdicional(impressora.getEcfImpressoraMfadicional());
e02.setModelo(impressora.getEcfImpressoraModelo());
- e02.setUsuario(1);
+ e02.setUsuario(usuario);
e02.setCnpj(empresa.getSisEmpresaCnpj().replaceAll("\\D", ""));
e02.setIe(empresa.getSisEmpresaIe().replaceAll("\\D", ""));
e02.setRazao(empresa.getSisEmpresaRazao());
@@ -165,7 +162,7 @@ public void executar() throws OpenPdvException {
e12.setSerie(impressora.getEcfImpressoraSerie());
e12.setMfAdicional(impressora.getEcfImpressoraMfadicional());
e12.setModelo(impressora.getEcfImpressoraModelo());
- e12.setUsuario(1);
+ e12.setUsuario(usuario);
e12.setCrz(ecfZ.getEcfZCrz());
e12.setCoo(ecfZ.getEcfZCooFin());
e12.setCro(ecfZ.getEcfZCro());
@@ -181,7 +178,7 @@ public void executar() throws OpenPdvException {
e13.setSerie(impressora.getEcfImpressoraSerie());
e13.setMfAdicional(impressora.getEcfImpressoraMfadicional());
e13.setModelo(impressora.getEcfImpressoraModelo());
- e13.setUsuario(1);
+ e13.setUsuario(usuario);
e13.setCrz(ecfZ.getEcfZCrz());
e13.setTotalizador(total.getEcfZTotaisCodigo());
e13.setValor(total.getEcfZTotaisValor());
@@ -196,7 +193,7 @@ public void executar() throws OpenPdvException {
e14.setSerie(impressora.getEcfImpressoraSerie());
e14.setMfAdicional(impressora.getEcfImpressoraMfadicional());
e14.setModelo(impressora.getEcfImpressoraModelo());
- e14.setUsuario(1);
+ e14.setUsuario(usuario);
e14.setCcf(venda.getEcfVendaCcf());
e14.setCoo(venda.getEcfVendaCoo());
e14.setData(venda.getEcfVendaData());
@@ -221,7 +218,7 @@ public void executar() throws OpenPdvException {
e15.setSerie(impressora.getEcfImpressoraSerie());
e15.setMfAdicional(impressora.getEcfImpressoraMfadicional());
e15.setModelo(impressora.getEcfImpressoraModelo());
- e15.setUsuario(1);
+ e15.setUsuario(usuario);
e15.setCoo(venda.getEcfVendaCoo());
e15.setCcf(venda.getEcfVendaCcf());
e15.setItem(vp.getEcfVendaProdutoOrdem());
@@ -266,7 +263,7 @@ public void executar() throws OpenPdvException {
e21.setSerie(impressora.getEcfImpressoraSerie());
e21.setMfAdicional(impressora.getEcfImpressoraMfadicional());
e21.setModelo(impressora.getEcfImpressoraModelo());
- e21.setUsuario(1);
+ e21.setUsuario(usuario);
e21.setCoo(venda.getEcfVendaCoo());
e21.setCcf(venda.getEcfVendaCcf());
e21.setGnf(pag.getEcfPagamentoGnf());
@@ -282,7 +279,7 @@ public void executar() throws OpenPdvException {
e21a.setSerie(impressora.getEcfImpressoraSerie());
e21a.setMfAdicional(impressora.getEcfImpressoraMfadicional());
e21a.setModelo(impressora.getEcfImpressoraModelo());
- e21a.setUsuario(1);
+ e21a.setUsuario(usuario);
e21a.setCoo(venda.getEcfVendaCoo());
e21a.setCcf(venda.getEcfVendaCcf());
e21a.setGnf(pag.getEcfPagamentoGnf());
@@ -301,7 +298,7 @@ public void executar() throws OpenPdvException {
e16.setSerie(impressora.getEcfImpressoraSerie());
e16.setMfAdicional(impressora.getEcfImpressoraMfadicional());
e16.setModelo(impressora.getEcfImpressoraModelo());
- e16.setUsuario(1);
+ e16.setUsuario(usuario);
e16.setCoo(doc.getEcfDocumentoCoo());
e16.setGnf(doc.getEcfDocumentoGnf());
e16.setGrg(doc.getEcfDocumentoGrg());
@@ -325,7 +322,7 @@ public void executar() throws OpenPdvException {
cat52.setListaE21(listaE21);
// gera o arquivo
- path = PAF.gerarArquivoCat52(cat52);
+ path = PAF.gerarArquivoCat52(cat52, Util.getConfig().get("ecf.cat52"));
}
} catch (Exception ex) {
log.error("Erro ao gerar o arquivo cat52 do ECF.", ex);
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoGerarNFe.java b/src/br/com/openpdv/controlador/comandos/ComandoGerarNFe.java
index edc2530..1f4e3cc 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoGerarNFe.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoGerarNFe.java
@@ -1,7 +1,8 @@
package br.com.openpdv.controlador.comandos;
+import br.com.openpdv.controlador.core.Conexao;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.Ibpt;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.filtro.ECompara;
@@ -52,7 +53,6 @@
import br.com.opensig.nfe.TNFe.InfNFe.Transp;
import br.com.opensig.nfe.TUf;
import br.com.opensig.nfe.TUfEmi;
-import br.com.phdss.ECF;
import br.com.phdss.controlador.PAF;
import com.sun.jersey.api.client.WebResource;
import java.util.Date;
@@ -134,7 +134,7 @@ public void executar() throws OpenPdvException {
nfe.setInfNFe(infNFe);
element = new br.com.opensig.nfe.ObjectFactory().createNFe(nfe);
- } catch (Exception ex) {
+ } catch (OpenPdvException ex) {
log.error("Erro na montagem do xml.", ex);
throw new OpenPdvException(ex);
}
@@ -169,7 +169,7 @@ private void getNumero() throws OpenPdvException {
numero += Integer.valueOf(Util.getConfig().get("nfe.numero")) + 1;
}
} else {
- WebResource wr = Util.getRest(Util.getConfig().get("sinc.host") + "/nfe");
+ WebResource wr = Conexao.getRest(Util.getConfig().get("sinc.host") + "/nfe");
numero += wr.accept(MediaType.TEXT_PLAIN_TYPE).get(String.class);
}
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoGerarNFeCancelada.java b/src/br/com/openpdv/controlador/comandos/ComandoGerarNFeCancelada.java
index 57f89ab..1d72784 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoGerarNFeCancelada.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoGerarNFeCancelada.java
@@ -1,6 +1,6 @@
package br.com.openpdv.controlador.comandos;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.EcfNotaEletronica;
import br.com.opensig.eventocancnfe.TEvento;
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoGerarNFeInutilizada.java b/src/br/com/openpdv/controlador/comandos/ComandoGerarNFeInutilizada.java
index b316a4c..ebabb77 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoGerarNFeInutilizada.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoGerarNFeInutilizada.java
@@ -1,6 +1,6 @@
package br.com.openpdv.controlador.comandos;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.EcfNotaEletronica;
import br.com.openpdv.modelo.sistema.SisEmpresa;
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoGerarSintegra.java b/src/br/com/openpdv/controlador/comandos/ComandoGerarSintegra.java
index e4ddee2..e5bedc5 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoGerarSintegra.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoGerarSintegra.java
@@ -2,7 +2,7 @@
import br.com.openpdv.controlador.core.CoreService;
import br.com.openpdv.controlador.core.NFe;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.EDirecao;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.filtro.*;
@@ -202,7 +202,7 @@ private List getDados50() {
Util.normaliza(d50);
ld50.add(d50);
} catch (Exception ex) {
- continue;
+ // nada
}
}
@@ -258,7 +258,7 @@ private List getDados54() {
}
}
} catch (Exception ex) {
- continue;
+ // nada
}
}
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoGerarSped.java b/src/br/com/openpdv/controlador/comandos/ComandoGerarSped.java
index dd16605..9bc0665 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoGerarSped.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoGerarSped.java
@@ -2,7 +2,7 @@
import br.com.openpdv.controlador.core.CoreService;
import br.com.openpdv.controlador.core.NFe;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.EDirecao;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.filtro.*;
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoImprimirCartao.java b/src/br/com/openpdv/controlador/comandos/ComandoImprimirCartao.java
index d228623..a10db1d 100644
--- a/src/br/com/openpdv/controlador/comandos/ComandoImprimirCartao.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoImprimirCartao.java
@@ -1,11 +1,12 @@
package br.com.openpdv.controlador.comandos;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.EcfPagamento;
import br.com.openpdv.modelo.ecf.EcfPagamentoParcela;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
+import br.com.phdss.EComando;
+import br.com.phdss.IECF;
import br.com.phdss.TEF;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -23,21 +24,24 @@
public class ComandoImprimirCartao implements IComando {
private EcfPagamento pag;
- private EComandoECF comando = null;
+ private EComando comando = null;
+ private IECF ecf;
/**
* Construtor padrao.
*/
public ComandoImprimirCartao() {
+ this.ecf = ECF.getInstancia();
}
/**
* Metodo que abre as operacoes com cartao
*
* @param pag o pagamento em cartao.
- * @param total o total geral de todos os cartoes.
+ * @param vCard o total geral de todos os cartoes.
+ * @param total o total da venda.
*/
- public void abrir(EcfPagamento pag, double total) {
+ public void abrir(EcfPagamento pag, double vCard, double total) {
this.pag = pag;
if (comando == null) {
@@ -45,13 +49,14 @@ public void abrir(EcfPagamento pag, double total) {
// abre o relatorio vinculado
String coo = pag.getEcfVenda().getEcfVendaCoo() + "";
String codigo = pag.getEcfPagamentoTipo().getEcfPagamentoTipoCodigo();
- String valor = Util.formataNumero(total, 1, 2, false).replace(",", ".");
- ECF.enviar(EComandoECF.ECF_AbreCupomVinculado, coo, codigo, "", valor);
- comando = EComandoECF.ECF_LinhaCupomVinculado;
+ String sCard = Util.formataNumero(vCard, 1, 2, false).replace(",", ".");
+ String sTotal = Util.formataNumero(total, 1, 2, false).replace(",", ".");
+ ecf.enviar(EComando.ECF_AbreCupomVinculado, coo, codigo, "", sCard, sTotal);
+ comando = EComando.ECF_LinhaCupomVinculado;
} catch (Exception ex) {
// abre o relatorio gerencial
- ECF.enviar(EComandoECF.ECF_AbreRelatorioGerencial);
- comando = EComandoECF.ECF_LinhaRelatorioGerencial;
+ ecf.enviar(EComando.ECF_AbreRelatorioGerencial);
+ comando = EComando.ECF_LinhaRelatorioGerencial;
}
}
}
@@ -73,15 +78,15 @@ public void executar() throws OpenPdvException {
// se for o pendente, precisa confirmar no GP e sera o ultimo cartao
if (pag.getArquivo().contains("pendente")) {
String id = pag.getArquivo().replaceAll("\\D", "");
- ECF.enviar(EComandoECF.ECF_FechaRelatorio);
+ ecf.enviar(EComando.ECF_FechaRelatorio);
TEF.confirmarTransacao(id, true);
// pega o numero GNF da impressao do cartao
- String[] resp = ECF.enviar(EComandoECF.ECF_NumGNF);
+ String[] resp = ecf.enviar(EComando.ECF_NumGNF);
pag.setEcfPagamentoGnf(Integer.valueOf(resp[1]));
// salva o documento para relatorio
- new ComandoSalvarDocumento(comando == EComandoECF.ECF_LinhaCupomVinculado ? "CC" : "RG").executar();
+ new ComandoSalvarDocumento(comando == EComando.ECF_LinhaCupomVinculado ? "CC" : "RG").executar();
}
// gerar as parcelas
@@ -99,7 +104,7 @@ public void executar() throws OpenPdvException {
public void fechar() {
if (comando != null) {
comando = null;
- ECF.enviar(EComandoECF.ECF_FechaRelatorio);
+ ecf.enviar(EComando.ECF_FechaRelatorio);
}
}
@@ -109,7 +114,8 @@ public void desfazer() throws OpenPdvException {
}
/**
- * Metodo que adiciona a lista de parcelas as parcelas correspondente do pagamento informado.
+ * Metodo que adiciona a lista de parcelas as parcelas correspondente do
+ * pagamento informado.
*
* @param dados o mapa de dados lidos do arquivo.
* @param pagamento o objeto de pagamento a ser considerado.
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoReceberDados.java b/src/br/com/openpdv/controlador/comandos/ComandoReceberDados.java
index 3fd91a7..e4dbf9d 100644
--- a/src/br/com/openpdv/controlador/comandos/ComandoReceberDados.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoReceberDados.java
@@ -2,7 +2,7 @@
import br.com.openpdv.controlador.core.Conexao;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.Dados;
import br.com.openpdv.modelo.core.EBusca;
import br.com.openpdv.modelo.core.EComandoSQL;
@@ -106,6 +106,12 @@ public void executar() throws OpenPdvException {
throw new OpenPdvException(erros.toString());
}
}
+
+ // fecha a conexao
+ if (em != null && emf != null) {
+ em.close();
+ emf.close();
+ }
}
@Override
@@ -163,22 +169,22 @@ private void usuarios() {
* Metodo que salva os clientes.
*/
private void clientes() {
+ MultivaluedMap mm = new MultivaluedMapImpl();
try {
+ Date da = (Date) service.buscar(new SisCliente(), "sisClienteData", EBusca.MAXIMO, null);
+ mm.putSingle("data", da != null ? Util.getData(da) : "");
List clientes = receber("cliente", new GenericType>() {
- });
+ }, mm);
+ em.getTransaction().begin();
for (SisCliente cli : clientes) {
- try {
- em.getTransaction().begin();
- service.salvar(em, cli);
- em.getTransaction().commit();
- } catch (Exception ex) {
- if (em != null && em.getTransaction().isActive()) {
- em.getTransaction().rollback();
- }
- }
+ service.salvar(em, cli);
}
+ em.getTransaction().commit();
log.info("Dados clientes recebidos -> " + clientes.size());
} catch (Exception ex) {
+ if (em != null && em.getTransaction().isActive()) {
+ em.getTransaction().rollback();
+ }
erros.append("Erro no recebimento dos Clientes.\n");
log.error("Erro no recebimento dos Clientes.", ex);
}
@@ -421,6 +427,9 @@ private void produtosAtualizados() {
}
em.getTransaction().commit();
} catch (Exception ex) {
+ if (em != null && em.getTransaction().isActive()) {
+ em.getTransaction().rollback();
+ }
prodSinc = false;
log.error("Nao atualizou o produto com ID = " + prod.getProdProdutoId(), ex);
}
@@ -442,7 +451,7 @@ private void produtosAtualizados() {
private void salvar() throws OpenPdvException {
try {
PAF.AUXILIAR.setProperty("out.recebimento", Util.getData(new Date()));
- PAF.criptografar();
+ Util.criptografar(null, PAF.AUXILIAR);
} catch (Exception ex) {
throw new OpenPdvException("Erro ao salvar no arquivo auxiliar.\nVerifique o log do sistema.", ex);
}
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoReceberDadosLocal.java b/src/br/com/openpdv/controlador/comandos/ComandoReceberDadosLocal.java
index 4631392..82746b7 100644
--- a/src/br/com/openpdv/controlador/comandos/ComandoReceberDadosLocal.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoReceberDadosLocal.java
@@ -2,7 +2,7 @@
import br.com.openpdv.modelo.core.Dados;
import br.com.openpdv.rest.RestContexto;
-import br.com.phdss.controlador.PAF;
+import br.com.phdss.Util;
import com.sun.jersey.api.client.GenericType;
import java.io.File;
import java.util.ArrayList;
@@ -24,7 +24,7 @@ public class ComandoReceberDadosLocal extends ComandoReceberDados {
@Override
public List receber(String tipo, GenericType> classe) throws Exception {
- StringBuilder sb = new StringBuilder(PAF.getPathArquivos());
+ StringBuilder sb = new StringBuilder(Util.getPathArquivos());
sb.append("importar").append(System.getProperty("file.separator"));
sb.append(tipo).append(".json");
arq = new File(sb.toString());
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoReceberDadosRemoto.java b/src/br/com/openpdv/controlador/comandos/ComandoReceberDadosRemoto.java
index c707d39..1ec8e4b 100644
--- a/src/br/com/openpdv/controlador/comandos/ComandoReceberDadosRemoto.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoReceberDadosRemoto.java
@@ -1,6 +1,7 @@
package br.com.openpdv.controlador.comandos;
-import br.com.openpdv.controlador.core.Util;
+import br.com.openpdv.controlador.core.Conexao;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.Dados;
import com.sun.jersey.api.client.GenericType;
import com.sun.jersey.api.client.WebResource;
@@ -19,14 +20,14 @@ public class ComandoReceberDadosRemoto extends ComandoReceberDados {
@Override
public List receber(String tipo, GenericType> classe) throws Exception {
- wr = Util.getRest(Util.getConfig().get("sinc.host") + "/" + tipo);
+ wr = Conexao.getRest(Util.getConfig().get("sinc.host") + "/" + tipo);
List lista = wr.accept(MediaType.APPLICATION_JSON).get(classe);
return lista;
}
@Override
public List receber(String tipo, GenericType> classe, MultivaluedMap mm) throws Exception {
- wr = Util.getRest(Util.getConfig().get("sinc.host") + "/" + tipo);
+ wr = Conexao.getRest(Util.getConfig().get("sinc.host") + "/" + tipo);
List lista = wr.queryParams(mm).accept(MediaType.APPLICATION_JSON).get(classe);
return lista;
}
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoRecuperarNFe.java b/src/br/com/openpdv/controlador/comandos/ComandoRecuperarNFe.java
index 591d32f..819b210 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoRecuperarNFe.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoRecuperarNFe.java
@@ -1,7 +1,7 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.NFe;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.ENotaStatus;
import br.com.openpdv.modelo.ecf.EcfNotaEletronica;
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoSalvarDocumento.java b/src/br/com/openpdv/controlador/comandos/ComandoSalvarDocumento.java
index 376e477..33f07be 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoSalvarDocumento.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoSalvarDocumento.java
@@ -1,12 +1,12 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.permissao.Login;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.EcfDocumento;
import br.com.openpdv.visao.core.Caixa;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
+import br.com.phdss.EComando;
+import br.com.phdss.IECF;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -19,6 +19,7 @@
public class ComandoSalvarDocumento implements IComando {
private String tipo;
+ private IECF ecf;
/**
* Costrutor padrao passando o tipo de documento a ser salvo.
@@ -27,6 +28,7 @@ public class ComandoSalvarDocumento implements IComando {
*/
public ComandoSalvarDocumento(String tipo) {
this.tipo = tipo;
+ this.ecf = ECF.getInstancia();
}
@Override
@@ -34,22 +36,22 @@ public void executar() throws OpenPdvException {
// seta os dados do documento.
EcfDocumento doc = new EcfDocumento();
doc.setEcfImpressora(Caixa.getInstancia().getImpressora());
- doc.setEcfDocumentoUsuario(Login.getOperador() == null ? 0 : Login.getOperador().getId());
- String[] resp = ECF.enviar(EComandoECF.ECF_NumCupom);
+ doc.setEcfDocumentoUsuario(1);
+ String[] resp = ecf.enviar(EComando.ECF_NumCupom);
doc.setEcfDocumentoCoo(Integer.valueOf(resp[1]));
- if(!tipo.equals("RV")){
- resp = ECF.enviar(EComandoECF.ECF_NumGNF);
- doc.setEcfDocumentoGnf(Integer.valueOf(resp[1]));
+ if (!tipo.equals("RV")) {
+ resp = ecf.enviar(EComando.ECF_NumGNF);
+ doc.setEcfDocumentoGnf(Integer.valueOf(resp[1]));
}
if (tipo.equals("RG")) {
- resp = ECF.enviar(EComandoECF.ECF_NumGRG);
+ resp = ecf.enviar(EComando.ECF_NumGRG);
doc.setEcfDocumentoGrg(Integer.valueOf(resp[1]));
} else if (tipo.equals("CC")) {
- resp = ECF.enviar(EComandoECF.ECF_NumCDC);
+ resp = ecf.enviar(EComando.ECF_NumCDC);
doc.setEcfDocumentoCdc(Integer.valueOf(resp[1]));
}
doc.setEcfDocumentoTipo(tipo);
- resp = ECF.enviar(EComandoECF.ECF_DataHora);
+ resp = ecf.enviar(EComando.ECF_DataHora);
Date data;
try {
data = new SimpleDateFormat("dd/MM/yy HH:mm:ss").parse(resp[1]);
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoSalvarPagamento.java b/src/br/com/openpdv/controlador/comandos/ComandoSalvarPagamento.java
index 4c9c55c..adea129 100755
--- a/src/br/com/openpdv/controlador/comandos/ComandoSalvarPagamento.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoSalvarPagamento.java
@@ -2,7 +2,7 @@
import br.com.openpdv.controlador.core.Conexao;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.EcfPagamento;
import br.com.openpdv.modelo.ecf.EcfPagamentoParcela;
@@ -38,19 +38,21 @@ public ComandoSalvarPagamento(List pagamentos) {
public void executar() throws OpenPdvException {
List impressos = new ArrayList<>();
- // soma os valores de todos os cartoes, para colocar no CCD
+ // soma os valores de todos os cartoes, para colocar no CCD e o total da venda
double valCard = 0.00;
+ double total = 0.00;
for (EcfPagamento pag : pagamentos) {
if (pag.getEcfPagamentoTipo().isEcfPagamentoTipoTef()) {
valCard += pag.getEcfPagamentoValor();
}
+ total += pag.getEcfPagamentoValor();
}
// percorre os pagamentos para inserir no banco e imprimir cartoes
ComandoImprimirCartao cmdCartao = new ComandoImprimirCartao();
for (EcfPagamento pag : pagamentos) {
if (pag.getEcfPagamentoTipo().isEcfPagamentoTipoTef() && Boolean.valueOf(Util.getConfig().get("pag.cartao"))) {
- cmdCartao.abrir(pag, valCard);
+ cmdCartao.abrir(pag, valCard, total);
cmdCartao.executar();
impressos.add(new File(pag.getArquivo()));
} else if (pag.getEcfPagamentoParcelas() == null) {
@@ -79,7 +81,8 @@ public void desfazer() throws OpenPdvException {
}
/**
- * Metodo que a operacao de salvar os dados no banco de dados para posterior uso, ate mesmo de cancelamento.
+ * Metodo que a operacao de salvar os dados no banco de dados para posterior
+ * uso, ate mesmo de cancelamento.
*
* @param pagamento objeto de pagamento a ser salvo.
* @throws OpenPdvException dispara caso nao consiga salvar.
diff --git a/src/br/com/openpdv/controlador/comandos/ComandoTotalizarPagamentos.java b/src/br/com/openpdv/controlador/comandos/ComandoTotalizarPagamentos.java
index fa40235..9239c5e 100644
--- a/src/br/com/openpdv/controlador/comandos/ComandoTotalizarPagamentos.java
+++ b/src/br/com/openpdv/controlador/comandos/ComandoTotalizarPagamentos.java
@@ -5,7 +5,7 @@
package br.com.openpdv.controlador.comandos;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.EBusca;
import br.com.openpdv.modelo.core.EComandoSQL;
import br.com.openpdv.modelo.core.OpenPdvException;
diff --git a/src/br/com/openpdv/controlador/core/Conexao.java b/src/br/com/openpdv/controlador/core/Conexao.java
index 5d415cf..7ee3110 100755
--- a/src/br/com/openpdv/controlador/core/Conexao.java
+++ b/src/br/com/openpdv/controlador/core/Conexao.java
@@ -1,6 +1,14 @@
package br.com.openpdv.controlador.core;
+import br.com.openpdv.rest.RestContexto;
+import br.com.phdss.Util;
import br.com.phdss.controlador.PAF;
+import com.sun.jersey.api.client.Client;
+import com.sun.jersey.api.client.WebResource;
+import com.sun.jersey.api.client.config.ClientConfig;
+import com.sun.jersey.api.client.config.DefaultClientConfig;
+import com.sun.jersey.api.client.filter.GZIPContentEncodingFilter;
+import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter;
import java.util.Properties;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
@@ -22,7 +30,7 @@ public class Conexao {
static {
// descriptografando os dados de acesso do BD
try {
- PAF.descriptografar("db" + System.getProperty("file.separator") + "banco.txt", DADOS);
+ Util.descriptografar("db" + System.getProperty("file.separator") + "banco.txt", DADOS);
// arrumando a url do banco
String url = DADOS.getProperty("eclipselink.jdbc.url", "").replace("+", "=");
DADOS.setProperty("eclipselink.jdbc.url", url);
@@ -73,4 +81,52 @@ public static EntityManagerFactory getInstancia(String pu, Properties dados) thr
throw new Exception("Dados vazios, verificar arquivo db/banco.txt");
}
}
+
+ /**
+ * Metodo que gera um objeto de comunicaxao com o RESTful do sistema.
+ *
+ * @param path o caminho especifico do comando no servidor.
+ * @return um objeto de referencia web.
+ */
+ public static WebResource getRest(String path) {
+ Client c = getClientRest();
+
+ // set a url completa
+ StringBuilder sb = new StringBuilder();
+ sb.append(Util.getConfig().get("sinc.servidor")).append(":");
+ sb.append(Util.getConfig().get("sinc.porta")).append(path);
+ WebResource wr = c.resource(sb.toString());
+
+ return wr;
+ }
+
+ /**
+ * Metodo que gera um cliente rest usando os parametros padroes de
+ * comunicacao.
+ *
+ * @return um objeto de acesso ao RestFull.
+ */
+ public static Client getClientRest() {
+ // seta o cliente
+ ClientConfig cc = new DefaultClientConfig();
+ cc.getClasses().add(RestContexto.class);
+ Client c = Client.create(cc);
+ c.setFollowRedirects(true);
+ c.setConnectTimeout(Integer.valueOf(Util.getConfig().get("sinc.timeout")) * 1000);
+ c.setReadTimeout(Integer.valueOf(Util.getConfig().get("sinc.timeout")) * 1000);
+
+ // cria a autenticacao
+ String usuario = PAF.AUXILIAR.getProperty("cli.cnpj");
+ String senha = PAF.AUXILIAR.getProperty("ecf.serie").split(";")[0];
+
+ // criptografa a senha se estiver setado no config
+ if (Boolean.valueOf(Util.getConfig().get("sinc.criptografar"))) {
+ senha = Util.encriptar(senha);
+ }
+
+ // seta os filtros
+ c.addFilter(new HTTPBasicAuthFilter(usuario, senha));
+ c.addFilter(new GZIPContentEncodingFilter(true));
+ return c;
+ }
}
diff --git a/src/br/com/openpdv/controlador/core/NFe.java b/src/br/com/openpdv/controlador/core/NFe.java
index a399f60..65bf420 100755
--- a/src/br/com/openpdv/controlador/core/NFe.java
+++ b/src/br/com/openpdv/controlador/core/NFe.java
@@ -2,6 +2,7 @@
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.ENotaStatus;
+import br.com.phdss.Util;
import br.com.phdss.controlador.PAF;
import br.inf.portalfiscal.www.nfe.wsdl.nfeinutilizacao2.NfeInutilizacao2Stub;
import br.inf.portalfiscal.www.nfe.wsdl.nferecepcao2.NfeRecepcao2Stub;
@@ -332,7 +333,7 @@ private Object[] lerCertificado(XMLSignatureFactory signatureFactory) throws Exc
// chave
PrivateKey pk = null;
// descriptografa a senha
- String senha = PAF.descriptar(Util.getConfig().get("nfe.senha"));
+ String senha = Util.descriptar(Util.getConfig().get("nfe.senha"));
// le o certificado
InputStream entrada = new FileInputStream("nfe/certificado.pfx");
diff --git a/src/br/com/openpdv/controlador/core/Util.java b/src/br/com/openpdv/controlador/core/Util.java
deleted file mode 100755
index ddf8e6d..0000000
--- a/src/br/com/openpdv/controlador/core/Util.java
+++ /dev/null
@@ -1,396 +0,0 @@
-package br.com.openpdv.controlador.core;
-
-import br.com.openpdv.rest.RestContexto;
-import br.com.phdss.controlador.PAF;
-import com.sun.jersey.api.client.Client;
-import com.sun.jersey.api.client.WebResource;
-import com.sun.jersey.api.client.config.ClientConfig;
-import com.sun.jersey.api.client.config.DefaultClientConfig;
-import com.sun.jersey.api.client.filter.GZIPContentEncodingFilter;
-import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter;
-import java.io.FileInputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.text.Normalizer;
-import java.text.NumberFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import javax.swing.JComboBox;
-import javax.swing.text.MaskFormatter;
-
-/**
- * Classe responsavel para funcoes utilitarias.
- *
- * @author Pedro H. Lira
- */
-public class Util {
-
- // tabela com vinculos das letras
- private static Map config;
- private static final int[] pesoCPF = {11, 10, 9, 8, 7, 6, 5, 4, 3, 2};
- private static final int[] pesoCNPJ = {6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2};
- public static final String[] OPCOES = {"Sim", "Não"};
-
- /**
- * Constutor padrao.
- */
- private Util() {
- }
-
- /**
- * Metodo que normaliza os caracteres removendo os acentos.
- *
- * @param texto o texto acentuado.
- * @return o texto sem acentos.
- */
- public static String normaliza(String texto) {
- CharSequence cs = new StringBuilder(texto == null ? "" : texto);
- return Normalizer.normalize(cs, Normalizer.Form.NFKD).replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
- }
-
- /**
- * Metodo que normaliza os caracteres removendo os acentos de todos os
- * campos de um objeto.
- *
- * @param bloco o objeto que sera modificado.
- */
- public static void normaliza(Object bloco) {
- for (Method metodo : bloco.getClass().getMethods()) {
- try {
- if (isGetter(metodo)) {
- Object valorMetodo = metodo.invoke(bloco, new Object[]{});
-
- if (metodo.getReturnType() == String.class) {
- String nomeMetodo = metodo.getName().replaceFirst("get", "set");
- Method set = bloco.getClass().getMethod(nomeMetodo, new Class[]{String.class});
- String valor = valorMetodo == null ? "" : valorMetodo.toString();
- valor = normaliza(valor);
- set.invoke(bloco, new Object[]{valor.trim()});
- }
- }
- } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException ex) {
- // pula o item
- }
- }
- }
-
- /**
- * Metodo que informa se o metodo da classe é do tipo GET.
- *
- * @param method usando reflection para descrobrir os metodos.
- * @return verdadeiro se o metodo for GET, falso caso contrario.
- */
- public static boolean isGetter(Method method) {
- if (!method.getName().startsWith("get")) {
- return false;
- }
- if (method.getParameterTypes().length != 0) {
- return false;
- }
- if (void.class.equals(method.getReturnType())) {
- return false;
- }
- return true;
- }
-
- /**
- * Metodo que informa se o metodo da classe é do tipo SET.
- *
- * @param method usando reflection para descrobrir os metodos.
- * @return verdadeiro se o metodo for SET, falso caso contrario.
- */
- public static boolean isSetter(Method method) {
- if (!method.getName().startsWith("set")) {
- return false;
- }
- if (method.getParameterTypes().length == 0) {
- return false;
- }
- if (!void.class.equals(method.getReturnType())) {
- return false;
- }
- return true;
- }
-
- /**
- * Metodo que formata um texto em data no padrao dd/MM/aaaa
- *
- * @param data o texto da data.
- * @return um objeto Date ou null caso nao consiga fazer o parser.
- */
- public static Date getData(String data) {
- return formataData(data, "dd/MM/yyyy");
- }
-
- /**
- * Metodo que formata uma data em texto no padrao dd/MM/aaaa
- *
- * @param data o objeto Date.
- * @return uma String formatada ou null caso a data nao seja valida.
- */
- public static String getData(Date data) {
- return formataData(data, "dd/MM/yyyy");
- }
-
- /**
- * Metodo que formata um texto em data no padrao dd/MM/aaaa HH:mm:ss
- *
- * @param data o texto da data.
- * @return um objeto Date ou null caso nao consiga fazer o parser.
- */
- public static Date getDataHora(String data) {
- return formataData(data, "dd/MM/yyyy HH:mm:ss");
- }
-
- /**
- * Metodo que formata uma data em texto no padrao dd/MM/aaaa HH:mm:ss
- *
- * @param data o objeto Date.
- * @return uma String formatada ou null caso a data nao seja valida.
- */
- public static String getDataHora(Date data) {
- return formataData(data, "dd/MM/yyyy HH:mm:ss");
- }
-
- /**
- * Metodo que formata a data.
- *
- * @param data a data do tipo Date.
- * @param formato o formado desejado.
- * @return a data formatada como solicidato.
- */
- public static String formataData(Date data, String formato) {
- try {
- return new SimpleDateFormat(formato).format(data);
- } catch (Exception ex) {
- return null;
- }
- }
-
- /**
- * Metodo que formata a data.
- *
- * @param data a data em formato string.
- * @param formato o formado desejado.
- * @return a data como objeto ou null se tiver erro.
- */
- public static Date formataData(String data, String formato) {
- try {
- return new SimpleDateFormat(formato).parse(data);
- } catch (Exception ex) {
- return null;
- }
- }
-
- /**
- * @see #formataNumero(double, int, int, boolean)
- */
- public static String formataNumero(String valor, int inteiros, int decimal, boolean grupo) {
- return formataNumero(Double.valueOf(valor), inteiros, decimal, grupo);
- }
-
- /**
- * Metodo que faz a formatacao de numeros com inteiros e fracoes
- *
- * @param valor o valor a ser formatado
- * @param inteiros o minimo de inteiros, que serao completados com ZEROS se
- * preciso
- * @param decimal o minimo de decimais, que serao completados com ZEROS se
- * preciso
- * @param grupo se sera colocado separador de grupo de milhar
- * @return uma String com o numero formatado
- */
- public static String formataNumero(double valor, int inteiros, int decimal, boolean grupo) {
- NumberFormat nf = NumberFormat.getIntegerInstance();
- nf.setMinimumIntegerDigits(inteiros);
- nf.setMinimumFractionDigits(decimal);
- nf.setMaximumFractionDigits(decimal);
- nf.setGroupingUsed(grupo);
- return nf.format(valor);
- }
-
- /**
- * Metodo que formata o texto usando a mascara passada.
- *
- * @param texto o texto a ser formatado.
- * @param mascara a mascara a ser usada.
- * @return o texto formatado.
- * @throws ParseException caso ocorra erro.
- */
- public static String formataTexto(String texto, String mascara) throws ParseException {
- MaskFormatter mf = new MaskFormatter(mascara);
- mf.setValueContainsLiteralCharacters(false);
- return mf.valueToString(texto);
- }
-
- /**
- * Metodo que formata o texto.
- *
- * @param texto o texto a ser formatado.
- * @param caracter o caracter que sera repetido.
- * @param tamanho o tamanho total do texto de resposta.
- * @param direita a direcao onde colocar os caracteres.
- * @return o texto formatado.
- */
- public static String formataTexto(String texto, String caracter, int tamanho, boolean direita) {
- StringBuilder sb = new StringBuilder();
- int fim = tamanho - texto.length();
- for (int i = 0; i < fim; i++) {
- sb.append(caracter);
- }
- return direita ? texto + sb.toString() : sb.toString() + texto;
- }
-
- /**
- * Metodo que calcula o digito.
- *
- * @param str valor do texto.
- * @param peso array de pesos.
- * @return um numero calculado.
- */
- private static int calcularDigito(String str, int[] peso) {
- int soma = 0;
- for (int indice = str.length() - 1, digito; indice >= 0; indice--) {
- digito = Integer.parseInt(str.substring(indice, indice + 1));
- soma += digito * peso[peso.length - str.length() + indice];
- }
- soma = 11 - soma % 11;
- return soma > 9 ? 0 : soma;
- }
-
- /**
- * Metodo que valida se e CPF
- *
- * @param cpf o valor do texto.
- * @return verdadeiro se valido, falso caso contrario.
- */
- public static boolean isCPF(String cpf) {
- if ((cpf == null) || (cpf.length() != 11)) {
- return false;
- } else {
- Pattern p = Pattern.compile(cpf.charAt(0) + "{11}");
- Matcher m = p.matcher(cpf);
- if (m.find()) {
- return false;
- }
- }
-
- Integer digito1 = calcularDigito(cpf.substring(0, 9), pesoCPF);
- Integer digito2 = calcularDigito(cpf.substring(0, 9) + digito1, pesoCPF);
- return cpf.equals(cpf.substring(0, 9) + digito1.toString() + digito2.toString());
- }
-
- /**
- * Metodo que valida se e CNPJ
- *
- * @param cnpj o valor do texto.
- * @return verdadeiro se valido, falso caso contrario.
- */
- public static boolean isCNPJ(String cnpj) {
- if ((cnpj == null) || (cnpj.length() != 14)) {
- return false;
- } else {
- Pattern p = Pattern.compile(cnpj.charAt(0) + "{14}");
- Matcher m = p.matcher(cnpj);
- if (m.find()) {
- return false;
- }
- }
-
- Integer digito1 = calcularDigito(cnpj.substring(0, 12), pesoCNPJ);
- Integer digito2 = calcularDigito(cnpj.substring(0, 12) + digito1, pesoCNPJ);
- return cnpj.equals(cnpj.substring(0, 12) + digito1.toString() + digito2.toString());
- }
-
- /**
- * Metodo que recupera as configuracoes do sistema.
- *
- * @return Um mapa de String contendo chave/valor.
- */
- public static Map getConfig() {
- if (config == null) {
- Properties props = new Properties();
- try (FileInputStream fis = new FileInputStream("conf" + System.getProperty("file.separator") + "config.properties")) {
- props.load(fis);
- config = new HashMap<>();
- for (String chave : props.stringPropertyNames()) {
- config.put(chave, props.getProperty(chave));
- }
- } catch (Exception ex) {
- config = null;
- }
- }
- return config;
- }
-
- /**
- * Metodo que gera um objeto de comunicaxao com o RESTful do sistema.
- *
- * @param path o caminho especifico do comando no servidor.
- * @return um objeto de referencia web.
- */
- public static WebResource getRest(String path) {
- Client c = getClientRest();
-
- // set a url completa
- StringBuilder sb = new StringBuilder();
- sb.append(Util.getConfig().get("sinc.servidor")).append(":");
- sb.append(Util.getConfig().get("sinc.porta")).append(path);
- WebResource wr = c.resource(sb.toString());
-
- return wr;
- }
-
- /**
- * Metodo que gera um cliente rest usando os parametros padroes de
- * comunicacao.
- *
- * @return um objeto de acesso ao RestFull.
- */
- public static Client getClientRest() {
- // seta o cliente
- ClientConfig cc = new DefaultClientConfig();
- cc.getClasses().add(RestContexto.class);
- Client c = Client.create(cc);
- c.setFollowRedirects(true);
- c.setConnectTimeout(Integer.valueOf(config.get("sinc.timeout")) * 1000);
- c.setReadTimeout(Integer.valueOf(config.get("sinc.timeout")) * 1000);
-
- // cria a autenticacao
- String usuario = PAF.AUXILIAR.getProperty("cli.cnpj");
- String senha = PAF.AUXILIAR.getProperty("ecf.serie").split(";")[0];
-
- // criptografa a senha se estiver setado no config
- if(Boolean.valueOf(config.get("sinc.criptografar"))){
- senha = PAF.encriptar(senha);
- }
-
- // seta os filtros
- c.addFilter(new HTTPBasicAuthFilter(usuario, senha));
- c.addFilter(new GZIPContentEncodingFilter(true));
- return c;
- }
-
-
- /**
- * Metodo que seleciona um item da combo pelo valor.
- *
- * @param combo a ser verificada.
- * @param valor a ser comparado.
- */
- public static void selecionarCombo(JComboBox combo, String valor) {
- for (int i = 0; i < combo.getItemCount(); i++) {
- String item = combo.getItemAt(i).toString();
- if (item.startsWith(valor)) {
- combo.setSelectedIndex(i);
- break;
- }
- }
- }
-}
diff --git a/src/br/com/openpdv/modelo/ecf/EcfNota.java b/src/br/com/openpdv/modelo/ecf/EcfNota.java
index 7d0f331..67f8891 100755
--- a/src/br/com/openpdv/modelo/ecf/EcfNota.java
+++ b/src/br/com/openpdv/modelo/ecf/EcfNota.java
@@ -3,7 +3,6 @@
import br.com.openpdv.modelo.core.Dados;
import br.com.openpdv.modelo.core.EDirecao;
import br.com.openpdv.modelo.sistema.SisCliente;
-import br.com.openpdv.modelo.sistema.SisEmpresa;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
diff --git a/src/br/com/openpdv/modelo/ecf/EcfNotaEletronica.java b/src/br/com/openpdv/modelo/ecf/EcfNotaEletronica.java
index 0954564..d82b2b2 100755
--- a/src/br/com/openpdv/modelo/ecf/EcfNotaEletronica.java
+++ b/src/br/com/openpdv/modelo/ecf/EcfNotaEletronica.java
@@ -3,7 +3,6 @@
import br.com.openpdv.modelo.core.Dados;
import br.com.openpdv.modelo.core.EDirecao;
import br.com.openpdv.modelo.sistema.SisCliente;
-import br.com.openpdv.modelo.sistema.SisEmpresa;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
diff --git a/src/br/com/openpdv/modelo/ecf/EcfNotaProduto.java b/src/br/com/openpdv/modelo/ecf/EcfNotaProduto.java
index 6050cdd..f08d2e2 100755
--- a/src/br/com/openpdv/modelo/ecf/EcfNotaProduto.java
+++ b/src/br/com/openpdv/modelo/ecf/EcfNotaProduto.java
@@ -1,6 +1,6 @@
package br.com.openpdv.modelo.ecf;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.Dados;
import br.com.openpdv.modelo.produto.ProdEmbalagem;
import br.com.openpdv.modelo.produto.ProdProduto;
diff --git a/src/br/com/openpdv/modelo/ecf/EcfTrocaProduto.java b/src/br/com/openpdv/modelo/ecf/EcfTrocaProduto.java
index 2f9cefc..c341a60 100644
--- a/src/br/com/openpdv/modelo/ecf/EcfTrocaProduto.java
+++ b/src/br/com/openpdv/modelo/ecf/EcfTrocaProduto.java
@@ -1,6 +1,6 @@
package br.com.openpdv.modelo.ecf;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.Dados;
import br.com.openpdv.modelo.produto.ProdEmbalagem;
import br.com.openpdv.modelo.produto.ProdProduto;
diff --git a/src/br/com/openpdv/modelo/ecf/EcfVendaProduto.java b/src/br/com/openpdv/modelo/ecf/EcfVendaProduto.java
index 3d229fd..e06dfea 100755
--- a/src/br/com/openpdv/modelo/ecf/EcfVendaProduto.java
+++ b/src/br/com/openpdv/modelo/ecf/EcfVendaProduto.java
@@ -1,6 +1,6 @@
package br.com.openpdv.modelo.ecf;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.Dados;
import br.com.openpdv.modelo.produto.ProdEmbalagem;
import br.com.openpdv.modelo.produto.ProdProduto;
diff --git a/src/br/com/openpdv/rest/.DS_Store b/src/br/com/openpdv/rest/.DS_Store
new file mode 100644
index 0000000..86ad00f
Binary files /dev/null and b/src/br/com/openpdv/rest/.DS_Store differ
diff --git a/src/br/com/openpdv/rest/ARest.java b/src/br/com/openpdv/rest/ARest.java
index 6798f08..b7e7510 100644
--- a/src/br/com/openpdv/rest/ARest.java
+++ b/src/br/com/openpdv/rest/ARest.java
@@ -3,6 +3,7 @@
import br.com.openpdv.controlador.core.CoreService;
import br.com.openpdv.modelo.core.filtro.*;
import br.com.openpdv.modelo.ecf.EcfImpressora;
+import br.com.phdss.Util;
import br.com.phdss.controlador.PAF;
import com.sun.jersey.core.util.Base64;
import javax.ws.rs.core.Context;
@@ -98,7 +99,7 @@ protected void autorizar() throws RestException {
header = header.substring("Basic ".length());
String[] creds = Base64.base64Decode(header).split(":");
cnpj = creds[0];
- serie = PAF.descriptar(creds[1]);
+ serie = Util.descriptar(creds[1]);
// realiza a validacao
if (cnpj.equals(PAF.AUXILIAR.getProperty("cli.cnpj"))) {
diff --git a/src/br/com/openpdv/rest/RestCliente.java b/src/br/com/openpdv/rest/RestCliente.java
index 53d598d..3c1341a 100644
--- a/src/br/com/openpdv/rest/RestCliente.java
+++ b/src/br/com/openpdv/rest/RestCliente.java
@@ -1,6 +1,6 @@
package br.com.openpdv.rest;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.EBusca;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.filtro.*;
diff --git a/src/br/com/openpdv/rest/RestContexto.java b/src/br/com/openpdv/rest/RestContexto.java
index 95d8e9e..2d78383 100644
--- a/src/br/com/openpdv/rest/RestContexto.java
+++ b/src/br/com/openpdv/rest/RestContexto.java
@@ -23,8 +23,8 @@
@Provider
public class RestContexto extends MOXyJsonProvider implements ContextResolver {
- private JAXBContext context;
- private Class[] types = {SisEmpresa.class, SisEstado.class, SisMunicipio.class, SisUsuario.class, SisCliente.class,
+ private final JAXBContext context;
+ private final Class[] types = {SisEmpresa.class, SisEstado.class, SisMunicipio.class, SisUsuario.class, SisCliente.class,
EcfPagamentoTipo.class, ProdEmbalagem.class, ProdProduto.class, ProdPreco.class, ProdComposicao.class, ProdGrade.class, ProdGradeTipo.class,
EcfImpressora.class, EcfDocumento.class, EcfNota.class, EcfNotaProduto.class, EcfNotaEletronica.class, ENotaStatus.class,
EcfZ.class, EcfZTotais.class, EcfVenda.class, EcfVendaProduto.class, EcfPagamentoTipo.class, EcfPagamento.class,
diff --git a/src/br/com/openpdv/rest/RestServidor.java b/src/br/com/openpdv/rest/RestServidor.java
index de793c5..45c25f5 100644
--- a/src/br/com/openpdv/rest/RestServidor.java
+++ b/src/br/com/openpdv/rest/RestServidor.java
@@ -17,6 +17,7 @@
import br.com.openpdv.modelo.core.parametro.ParametroObjeto;
import br.com.openpdv.modelo.ecf.*;
import br.com.openpdv.modelo.produto.ProdEmbalagem;
+import br.com.openpdv.modelo.produto.ProdGrade;
import br.com.openpdv.modelo.produto.ProdProduto;
import br.com.openpdv.modelo.sistema.SisCliente;
import br.com.opensig.nfe.TNFe;
@@ -76,36 +77,44 @@ public void setNota(EcfNota ecfNota) throws RestException {
EntityManager em = null;
try {
- emf = Conexao.getInstancia();
- em = emf.createEntityManager();
- em.getTransaction().begin();
-
- // identifica o cliente
- if (ecfNota.getSisCliente() != null) {
- SisCliente cliente = getCliente(em, ecfNota.getSisCliente());
- ecfNota.setSisCliente(cliente);
- }
+ // valida se ja existe
+ FiltroTexto ft = new FiltroTexto("ecfNotaSerie", ECompara.IGUAL, ecfNota.getEcfNotaSerie());
+ FiltroTexto ft1 = new FiltroTexto("ecfNotaSubserie", ECompara.IGUAL, ecfNota.getEcfNotaSubserie());
+ FiltroNumero fn = new FiltroNumero("ecfNotaNumero", ECompara.IGUAL, ecfNota.getEcfNotaNumero());
+ GrupoFiltro gf = new GrupoFiltro(EJuncao.E, new IFiltro[]{ft, ft1, fn});
+ EcfNota aux = (EcfNota) service.selecionar(ecfNota, gf);
+
+ if (aux == null) {
+ emf = Conexao.getInstancia();
+ em = emf.createEntityManager();
+ em.getTransaction().begin();
+
+ // identifica o cliente
+ if (ecfNota.getSisCliente() != null) {
+ SisCliente cliente = getCliente(em, ecfNota.getSisCliente());
+ ecfNota.setSisCliente(cliente);
+ }
- // salva a nota
- List nps = ecfNota.getEcfNotaProdutos();
- ecfNota.setEcfNotaProdutos(null);
- ecfNota.setId(0);
- ecfNota = (EcfNota) service.salvar(em, ecfNota);
- em.getTransaction().commit();
+ // salva a nota
+ List nps = ecfNota.getEcfNotaProdutos();
+ ecfNota.setEcfNotaProdutos(null);
+ ecfNota.setId(0);
+ ecfNota = (EcfNota) service.salvar(em, ecfNota);
+ em.getTransaction().commit();
- // salva os produtos vendidos
- List sqls = new ArrayList<>();
- for (EcfNotaProduto np : nps) {
- np.setId(0);
- np.setEcfNota(ecfNota);
- Sql sql = getEstoque(np.getEcfNotaProdutoQuantidade(), np.getProdEmbalagem(), np.getProdProduto());
- sqls.add(sql);
- }
- service.salvar(nps);
+ // salva os produtos vendidos
+ List sqls = new ArrayList<>();
+ for (EcfNotaProduto np : nps) {
+ np.setId(0);
+ np.setEcfNota(ecfNota);
+ getEstoque(sqls, np.getEcfNotaProdutoQuantidade(), np.getProdEmbalagem(), np.getProdProduto(), np.getEcfNotaProdutoBarra());
+ }
+ service.salvar(nps);
- // atualiza o estoque se nao cancelada
- if (ecfNota.isEcfNotaCancelada() == false) {
- service.executar(sqls.toArray(new Sql[]{}));
+ // atualiza o estoque se nao cancelada
+ if (ecfNota.isEcfNotaCancelada() == false) {
+ service.executar(sqls.toArray(new Sql[]{}));
+ }
}
} catch (Exception ex) {
if (em != null && em.getTransaction().isActive()) {
@@ -138,99 +147,104 @@ public void setNfe(EcfNotaEletronica ecfNfe) throws RestException {
EntityManager em = null;
try {
- emf = Conexao.getInstancia();
- em = emf.createEntityManager();
- em.getTransaction().begin();
-
- // identifica o cliente
- if (ecfNfe.getSisCliente() != null) {
- SisCliente cliente = getCliente(em, ecfNfe.getSisCliente());
- ecfNfe.setSisCliente(cliente);
- }
-
- // salva a nfe
- ecfNfe.setId(0);
- ecfNfe = (EcfNotaEletronica) service.salvar(em, ecfNfe);
+ FiltroTexto ft1 = new FiltroTexto("ecfNotaEletronicaChave", ECompara.IGUAL, ecfNfe.getEcfNotaEletronicaChave());
+ EcfNotaEletronica aux = (EcfNotaEletronica) service.selecionar(ecfNfe, ft1);
+
+ if (aux == null) {
+ emf = Conexao.getInstancia();
+ em = emf.createEntityManager();
+ em.getTransaction().begin();
+
+ // identifica o cliente
+ if (ecfNfe.getSisCliente() != null) {
+ SisCliente cliente = getCliente(em, ecfNfe.getSisCliente());
+ ecfNfe.setSisCliente(cliente);
+ }
- // atualiza o estoque
- if (ecfNfe.getEcfNotaEletronicaStatus().equals(ENotaStatus.AUTORIZADO.toString())) {
- TNfeProc produtos = NFe.xmlToObj(ecfNfe.getEcfNotaEletronicaXml(), TNfeProc.class);
- List sqls = new ArrayList<>();
- for (TNFe.InfNFe.Det det : produtos.getNFe().getInfNFe().getDet()) {
- // achando o produto
- IFiltro filtro;
- if (det.getProd().getCEAN() == null || det.getProd().getCEAN().equals("")) {
- filtro = new FiltroNumero("prodProdutoId", ECompara.IGUAL, det.getProd().getCProd());
- } else {
- filtro = new FiltroTexto("prodProdutoBarra", ECompara.IGUAL, det.getProd().getCEAN());
+ // salva a nfe
+ ecfNfe.setId(0);
+ ecfNfe = (EcfNotaEletronica) service.salvar(em, ecfNfe);
+
+ // atualiza o estoque
+ if (ecfNfe.getEcfNotaEletronicaStatus().equals(ENotaStatus.AUTORIZADO.toString())) {
+ TNfeProc produtos = NFe.xmlToObj(ecfNfe.getEcfNotaEletronicaXml(), TNfeProc.class);
+ List sqls = new ArrayList<>();
+ for (TNFe.InfNFe.Det det : produtos.getNFe().getInfNFe().getDet()) {
+ // achando o produto
+ IFiltro filtro;
+ if (det.getProd().getCEAN() == null || det.getProd().getCEAN().equals("")) {
+ filtro = new FiltroNumero("prodProdutoId", ECompara.IGUAL, det.getProd().getCProd());
+ } else {
+ filtro = new FiltroTexto("prodProdutoBarra", ECompara.IGUAL, det.getProd().getCEAN());
+ }
+ ProdProduto prod = (ProdProduto) service.selecionar(new ProdProduto(), filtro);
+ // achando a embalagem usada na venda
+ FiltroTexto ft = new FiltroTexto("prodEmbalagemNome", ECompara.IGUAL, det.getProd().getUCom());
+ ProdEmbalagem emb = (ProdEmbalagem) service.selecionar(new ProdEmbalagem(), ft);
+ double qtd = Double.valueOf(det.getProd().getQCom());
+ // monta a atualizacao do estoque
+ getEstoque(sqls, qtd, emb, prod, "");
+ }
+ em.getTransaction().commit();
+ // remove do estoque
+ service.executar(sqls.toArray(new Sql[]{}));
+
+ // salva o xml no arquivo
+ File xml = new File("nfe/" + ecfNfe.getEcfNotaEletronicaChave() + "-procNFe.xml");
+ try (FileWriter fw = new FileWriter(xml)) {
+ fw.write(ecfNfe.getEcfNotaEletronicaXml());
+ } catch (IOException io) {
+ log.error("Erro ao salvar o arquivo xml.", io);
}
- ProdProduto prod = (ProdProduto) service.selecionar(new ProdProduto(), filtro);
- // achando a embalagem usada na venda
- FiltroTexto ft = new FiltroTexto("prodEmbalagemNome", ECompara.IGUAL, det.getProd().getUCom());
- ProdEmbalagem emb = (ProdEmbalagem) service.selecionar(new ProdEmbalagem(), ft);
- double qtd = Double.valueOf(det.getProd().getQCom());
- // monta a atualizacao do estoque
- sqls.add(getEstoque(qtd, emb, prod));
- }
- em.getTransaction().commit();
- // remove do estoque
- service.executar(sqls.toArray(new Sql[]{}));
-
- // salva o xml no arquivo
- File xml = new File("nfe/" + ecfNfe.getEcfNotaEletronicaChave() + "-procNFe.xml");
- try (FileWriter fw = new FileWriter(xml)) {
- fw.write(ecfNfe.getEcfNotaEletronicaXml());
- } catch (IOException io) {
- log.error("Erro ao salvar o arquivo xml.", io);
- }
- // salva o danfe no arquivo
- File danfe = new File("nfe/" + ecfNfe.getEcfNotaEletronicaChave() + "-procNFe.pdf");
- try (FileOutputStream fos = new FileOutputStream(danfe)) {
- byte[] pdf = NFe.getDanfe(ecfNfe.getEcfNotaEletronicaXml());
- fos.write(pdf);
- fos.flush();
- } catch (IOException io) {
- log.error("Erro ao salvar o arquivo danfe.", io);
- }
- } else if (ecfNfe.getEcfNotaEletronicaStatus().equals(ENotaStatus.CANCELADO.toString())) {
- TNfeProc produtos = NFe.xmlToObj(ecfNfe.getEcfNotaEletronicaXml(), TNfeProc.class);
- List sqls = new ArrayList<>();
- for (TNFe.InfNFe.Det det : produtos.getNFe().getInfNFe().getDet()) {
- // achando o produto
- IFiltro filtro;
- if (det.getProd().getCEAN() == null || det.getProd().getCEAN().equals("")) {
- filtro = new FiltroNumero("prodProdutoId", ECompara.IGUAL, det.getProd().getCProd());
- } else {
- filtro = new FiltroTexto("prodProdutoBarra", ECompara.IGUAL, det.getProd().getCEAN());
+ // salva o danfe no arquivo
+ File danfe = new File("nfe/" + ecfNfe.getEcfNotaEletronicaChave() + "-procNFe.pdf");
+ try (FileOutputStream fos = new FileOutputStream(danfe)) {
+ byte[] pdf = NFe.getDanfe(ecfNfe.getEcfNotaEletronicaXml());
+ fos.write(pdf);
+ fos.flush();
+ } catch (IOException io) {
+ log.error("Erro ao salvar o arquivo danfe.", io);
+ }
+ } else if (ecfNfe.getEcfNotaEletronicaStatus().equals(ENotaStatus.CANCELADO.toString())) {
+ TNfeProc produtos = NFe.xmlToObj(ecfNfe.getEcfNotaEletronicaXml(), TNfeProc.class);
+ List sqls = new ArrayList<>();
+ for (TNFe.InfNFe.Det det : produtos.getNFe().getInfNFe().getDet()) {
+ // achando o produto
+ IFiltro filtro;
+ if (det.getProd().getCEAN() == null || det.getProd().getCEAN().equals("")) {
+ filtro = new FiltroNumero("prodProdutoId", ECompara.IGUAL, det.getProd().getCProd());
+ } else {
+ filtro = new FiltroTexto("prodProdutoBarra", ECompara.IGUAL, det.getProd().getCEAN());
+ }
+ ProdProduto prod = (ProdProduto) service.selecionar(new ProdProduto(), filtro);
+ // achando a embalagem usada na venda
+ FiltroTexto ft = new FiltroTexto("prodEmbalagemNome", ECompara.IGUAL, det.getProd().getUCom());
+ ProdEmbalagem emb = (ProdEmbalagem) service.selecionar(new ProdEmbalagem(), ft);
+ double qtd = Double.valueOf(det.getProd().getQCom());
+ // devolve ao estoque
+ getEstoque(sqls, -1 * qtd, emb, prod, "");
+ }
+ em.getTransaction().commit();
+ // remove do estoque
+ service.executar(sqls.toArray(new Sql[]{}));
+
+ // salva o xml no arquivo
+ File xml = new File("nfe/" + ecfNfe.getEcfNotaEletronicaChave() + "-procCanNFe.xml");
+ try (FileWriter fw = new FileWriter(xml)) {
+ fw.write(ecfNfe.getEcfNotaEletronicaXmlCancelado());
+ } catch (IOException io) {
+ log.error("Erro ao salvar o arquivo xml de cancelamento.", io);
+ }
+ } else if (ecfNfe.getEcfNotaEletronicaStatus().equals(ENotaStatus.INUTILIZADO.toString())) {
+ em.getTransaction().commit();
+ // salva o xml no arquivo
+ File xml = new File("nfe/" + ecfNfe.getEcfNotaEletronicaChave() + "-procInutNFe.xml");
+ try (FileWriter fw = new FileWriter(xml)) {
+ fw.write(ecfNfe.getEcfNotaEletronicaXml());
+ } catch (IOException io) {
+ log.error("Erro ao salvar o arquivo xml de inutilizacao.", io);
}
- ProdProduto prod = (ProdProduto) service.selecionar(new ProdProduto(), filtro);
- // achando a embalagem usada na venda
- FiltroTexto ft = new FiltroTexto("prodEmbalagemNome", ECompara.IGUAL, det.getProd().getUCom());
- ProdEmbalagem emb = (ProdEmbalagem) service.selecionar(new ProdEmbalagem(), ft);
- double qtd = Double.valueOf(det.getProd().getQCom());
- // devolve ao estoque
- sqls.add(getEstoque(-1 * qtd, emb, prod));
- }
- em.getTransaction().commit();
- // remove do estoque
- service.executar(sqls.toArray(new Sql[]{}));
-
- // salva o xml no arquivo
- File xml = new File("nfe/" + ecfNfe.getEcfNotaEletronicaChave() + "-procCanNFe.xml");
- try (FileWriter fw = new FileWriter(xml)) {
- fw.write(ecfNfe.getEcfNotaEletronicaXmlCancelado());
- } catch (IOException io) {
- log.error("Erro ao salvar o arquivo xml de cancelamento.", io);
- }
- } else if (ecfNfe.getEcfNotaEletronicaStatus().equals(ENotaStatus.INUTILIZADO.toString())) {
- em.getTransaction().commit();
- // salva o xml no arquivo
- File xml = new File("nfe/" + ecfNfe.getEcfNotaEletronicaChave() + "-procInutNFe.xml");
- try (FileWriter fw = new FileWriter(xml)) {
- fw.write(ecfNfe.getEcfNotaEletronicaXml());
- } catch (IOException io) {
- log.error("Erro ao salvar o arquivo xml de inutilizacao.", io);
}
}
} catch (Exception ex) {
@@ -282,6 +296,27 @@ public void setVenda(EcfVenda venda) throws RestException {
List vps = venda.getEcfVendaProdutos();
List pags = venda.getEcfPagamentos();
List trocas = venda.getEcfTrocas();
+ List sqls = new ArrayList<>();
+
+ // caso a venda esteja cancelada e ja estava salva no servidor
+ if (venda.getEcfVendaCancelada()) {
+ // filtro pra deletar a venda ja salva antes
+ FiltroObjeto fo = new FiltroObjeto("ecfImpressora", ECompara.IGUAL, imp);
+ FiltroNumero fn = new FiltroNumero("ecfVendaCcf", ECompara.IGUAL, venda.getEcfVendaCcf());
+ FiltroNumero fn1 = new FiltroNumero("ecfVendaCoo", ECompara.IGUAL, venda.getEcfVendaCoo());
+ GrupoFiltro gf = new GrupoFiltro(EJuncao.E, new IFiltro[]{fo, fn, fn1});
+ // executa o comando
+ Sql sql = new Sql(venda, EComandoSQL.EXCLUIR, gf);
+ List resp = service.executar(sql);
+ // caso ja exista e tenha deletado, remove do estoque
+ if (resp.get(0) == 1) {
+ for (EcfVendaProduto vp : vps) {
+ if (!vp.getEcfVendaProdutoCancelado()) {
+ getEstoque(sqls, vp.getEcfVendaProdutoQuantidade() * -1, vp.getProdEmbalagem(), vp.getProdProduto(), vp.getEcfVendaProdutoBarra());
+ }
+ }
+ }
+ }
// salva a venda
venda.setId(0);
@@ -296,22 +331,29 @@ public void setVenda(EcfVenda venda) throws RestException {
vp.setEcfVenda(venda);
vp = (EcfVendaProduto) service.salvar(em, vp);
- if (!vp.getEcfVendaProdutoCancelado()) {
- service.executar(em, getEstoque(vp.getEcfVendaProdutoQuantidade(), vp.getProdEmbalagem(), vp.getProdProduto()));
+ if (!venda.getEcfVendaCancelada() && !vp.getEcfVendaProdutoCancelado()) {
+ getEstoque(sqls, vp.getEcfVendaProdutoQuantidade(), vp.getProdEmbalagem(), vp.getProdProduto(), vp.getEcfVendaProdutoBarra());
}
}
- // salva os pagamentos
- for (EcfPagamento pag : pags) {
- pag.setEcfVenda(venda);
- salvarPagamento(em, pag);
+ // atualiza com as instrucoes SQL.
+ for (Sql sql : sqls) {
+ service.executar(em, sql);
}
- // salva as trocas
- if (trocas != null) {
- for (EcfTroca troca : trocas) {
- troca.setEcfVenda(venda);
- salvarTroca(em, troca);
+ if (!venda.getEcfVendaCancelada()) {
+ // salva os pagamentos
+ for (EcfPagamento pag : pags) {
+ pag.setEcfVenda(venda);
+ salvarPagamento(em, pag);
+ }
+
+ // salva as trocas
+ if (trocas != null) {
+ for (EcfTroca troca : trocas) {
+ troca.setEcfVenda(venda);
+ salvarTroca(em, troca);
+ }
}
}
@@ -347,56 +389,62 @@ public void setReducaoZ(EcfZ ecfZ) throws RestException {
EntityManager em = null;
try {
- emf = Conexao.getInstancia();
- em = emf.createEntityManager();
- em.getTransaction().begin();
-
// pega a impressora correta no sistema
EcfImpressora imp = getImp(ecfZ.getEcfImpressora().getEcfImpressoraSerie());
- ecfZ.setEcfImpressora(imp);
-
- // guarda os totais e vendas e docs
- List totais = ecfZ.getEcfZTotais();
- List docs = ecfZ.getEcfDocumentos();
-
- // salva a reduzaoZ
- ecfZ.setId(0);
- ecfZ.setEcfZTotais(null);
- ecfZ.setEcfVendas(null);
- ecfZ.setEcfDocumentos(null);
- ecfZ = (EcfZ) service.salvar(em, ecfZ);
-
- // salva os totais
- for (EcfZTotais tot : totais) {
- tot.setEcfZ(ecfZ);
- tot.setId(0);
- service.salvar(em, tot);
- }
- // salva os documentos
- for (EcfDocumento doc : docs) {
- doc.setEcfImpressora(imp);
- doc.setEcfZ(ecfZ);
- doc.setId(0);
- service.salvar(em, doc);
- }
+ // valida se ja existe
+ FiltroObjeto fo = new FiltroObjeto("ecfImpressora", ECompara.IGUAL, imp);
+ FiltroNumero fn = new FiltroNumero("ecfZCrz", ECompara.IGUAL, ecfZ.getEcfZCrz());
+ GrupoFiltro gf = new GrupoFiltro(EJuncao.E, new IFiltro[]{fo, fn});
+ EcfZ aux = (EcfZ) service.selecionar(ecfZ, gf);
+
+ if (aux == null) {
+ emf = Conexao.getInstancia();
+ em = emf.createEntityManager();
+ em.getTransaction().begin();
+
+ // guarda os totais e vendas e docs
+ List totais = ecfZ.getEcfZTotais();
+ List docs = ecfZ.getEcfDocumentos();
+
+ // salva a reduzaoZ
+ ecfZ.setId(0);
+ ecfZ.setEcfImpressora(imp);
+ ecfZ.setEcfZTotais(null);
+ ecfZ.setEcfVendas(null);
+ ecfZ.setEcfDocumentos(null);
+ ecfZ = (EcfZ) service.salvar(em, ecfZ);
+
+ // salva os totais
+ for (EcfZTotais tot : totais) {
+ tot.setEcfZ(ecfZ);
+ tot.setId(0);
+ service.salvar(em, tot);
+ }
- // atualiza as vendas
- Calendar cal = Calendar.getInstance();
- cal.setTime(ecfZ.getEcfZMovimento());
- cal.add(Calendar.DAY_OF_MONTH, 1);
- Date fim = cal.getTime();
+ // salva os documentos
+ for (EcfDocumento doc : docs) {
+ doc.setEcfImpressora(imp);
+ doc.setEcfZ(ecfZ);
+ doc.setId(0);
+ service.salvar(em, doc);
+ }
- FiltroObjeto fo = new FiltroObjeto("ecfImpressora", ECompara.IGUAL, imp);
- FiltroData fd = new FiltroData("ecfVendaData", ECompara.MAIOR_IGUAL, ecfZ.getEcfZMovimento());
- FiltroData fd1 = new FiltroData("ecfVendaData", ECompara.MENOR, fim);
- GrupoFiltro gf = new GrupoFiltro(EJuncao.E, new IFiltro[]{fo, fd, fd1});
- ParametroObjeto po = new ParametroObjeto("ecfZ", ecfZ);
+ // atualiza as vendas
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(ecfZ.getEcfZMovimento());
+ cal.add(Calendar.DAY_OF_MONTH, 1);
+ Date fim = cal.getTime();
- Sql sql = new Sql(new EcfVenda(), EComandoSQL.ATUALIZAR, gf, po);
- service.executar(em, sql);
+ FiltroData fd = new FiltroData("ecfVendaData", ECompara.MAIOR_IGUAL, ecfZ.getEcfZMovimento());
+ FiltroData fd1 = new FiltroData("ecfVendaData", ECompara.MENOR, fim);
+ GrupoFiltro gf1 = new GrupoFiltro(EJuncao.E, new IFiltro[]{fo, fd, fd1});
+ ParametroObjeto po = new ParametroObjeto("ecfZ", ecfZ);
- em.getTransaction().commit();
+ Sql sql = new Sql(new EcfVenda(), EComandoSQL.ATUALIZAR, gf1, po);
+ service.executar(em, sql);
+ em.getTransaction().commit();
+ }
} catch (Exception ex) {
if (em != null && em.getTransaction().isActive()) {
em.getTransaction().rollback();
@@ -492,11 +540,12 @@ private SisCliente getCliente(EntityManager em, SisCliente sisCliente) {
* @param qtd a quantidade de produtos vendidos.
* @param emb o tipo de embalagem usada na venda.
* @param prod o produto que foi vendido.
+ * @param barra o codigo escolhido na hora da venda.
* @return uma instrucao de SQL no formato de objeto para ser executada.
- * @throws OpenPdvException dispara caso nao consiga gerar o sql de
+ * @throws CoreException dispara caso nao consiga gerar o sql de
* atualizacao.
*/
- private Sql getEstoque(double qtd, ProdEmbalagem emb, ProdProduto prod) throws OpenPdvException {
+ private void getEstoque(List sqls, double qtd, ProdEmbalagem emb, ProdProduto prod, String barra) throws OpenPdvException {
// fatorando a quantida no estoque
if (emb.getProdEmbalagemId() != prod.getProdEmbalagem().getProdEmbalagemId()) {
qtd *= emb.getProdEmbalagemUnidade();
@@ -506,6 +555,19 @@ private Sql getEstoque(double qtd, ProdEmbalagem emb, ProdProduto prod) throws O
// atualiza o estoque
ParametroFormula pf = new ParametroFormula("prodProdutoEstoque", -1 * qtd);
FiltroNumero fn1 = new FiltroNumero("prodProdutoId", ECompara.IGUAL, prod.getId());
- return new Sql(new ProdProduto(), EComandoSQL.ATUALIZAR, fn1, pf);
+ Sql sql = new Sql(new ProdProduto(), EComandoSQL.ATUALIZAR, fn1, pf);
+ sqls.add(sql);
+
+ // remove estoque da grade caso o produto tenha
+ if (prod.getProdGrades() != null) {
+ // formando os parametros e filtros
+ ParametroFormula pf2 = new ParametroFormula("prodGradeEstoque", -1 * qtd);
+ FiltroObjeto fo = new FiltroObjeto("prodProduto", ECompara.IGUAL, prod);
+ FiltroTexto ft = new FiltroTexto("prodGradeBarra", ECompara.IGUAL, barra);
+ GrupoFiltro gf1 = new GrupoFiltro(EJuncao.E, new IFiltro[]{fo, ft});
+ // busca o item
+ Sql sql1 = new Sql(new ProdGrade(), EComandoSQL.ATUALIZAR, gf1, pf2);
+ sqls.add(sql1);
+ }
}
}
diff --git a/src/br/com/openpdv/visao/core/Autenticacao.java b/src/br/com/openpdv/visao/core/Autenticacao.java
index db87226..adeef9f 100755
--- a/src/br/com/openpdv/visao/core/Autenticacao.java
+++ b/src/br/com/openpdv/visao/core/Autenticacao.java
@@ -3,8 +3,9 @@
import br.com.openpdv.controlador.comandos.ComandoRecuperarVenda;
import br.com.openpdv.controlador.permissao.Login;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
-import br.com.phdss.EEstadoECF;
+import br.com.phdss.fiscal.ACBR;
+import br.com.phdss.EComando;
+import br.com.phdss.EEstado;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import javax.swing.*;
@@ -307,14 +308,14 @@ private void entrar() {
try {
Login.logar(txtOperadorUsuario.getText(), senhaOp);
Caixa.getInstancia().getLblOperador().setText("Operador : " + txtOperadorUsuario.getText().toUpperCase());
- Caixa.getInstancia().getLblCaixa().setText("Caixa : " + ECF.enviar(EComandoECF.ECF_NumECF)[1]);
+ Caixa.getInstancia().getLblCaixa().setText("Caixa : " + ECF.getInstancia().enviar(EComando.ECF_NumECF)[1]);
txtOperadorUsuario.setText("");
pswOperadorSenha.setText("");
Caixa.getInstancia().setJanela(null);
dispose();
- EEstadoECF estado = ECF.validarEstado();
- if (estado == EEstadoECF.estVenda || estado == EEstadoECF.estPagamento) {
+ EEstado estado = ECF.getInstancia().validarEstado();
+ if (estado == EEstado.estVenda || estado == EEstado.estPagamento) {
new ComandoRecuperarVenda().executar();
Caixa.getInstancia().modoAberto();
} else {
diff --git a/src/br/com/openpdv/visao/core/Caixa.java b/src/br/com/openpdv/visao/core/Caixa.java
index afeddd8..d61bbb7 100755
--- a/src/br/com/openpdv/visao/core/Caixa.java
+++ b/src/br/com/openpdv/visao/core/Caixa.java
@@ -4,7 +4,7 @@
import br.com.openpdv.controlador.core.AsyncCallback;
import br.com.openpdv.controlador.core.CoreService;
import br.com.openpdv.controlador.core.AsyncDoubleBack;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.controlador.permissao.Login;
import br.com.openpdv.modelo.core.EModo;
import br.com.openpdv.modelo.core.OpenPdvException;
@@ -28,7 +28,8 @@
import br.com.openpdv.visao.principal.LeiturasZ;
import br.com.openpdv.visao.venda.Precos;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
+import br.com.phdss.EComando;
+import br.com.phdss.IECF;
import br.com.phdss.TEF;
import br.com.phdss.controlador.PAF;
import br.com.phdss.modelo.anexo.v.AnexoV;
@@ -66,6 +67,7 @@ public class Caixa extends JFrame {
private JOptionPane option;
private DefaultListModel bobina;
private KeyEventPostProcessor teclas;
+ private IECF ecf;
/**
* Variavel de sincronismo dos precos adicionais.
*/
@@ -208,12 +210,13 @@ private Caixa() {
ImageIcon logo = new ImageIcon("conf" + System.getProperty("file.separator") + "logo.png");
lblLivre.setIcon(logo);
modo = EModo.OFF;
+ ecf = ECF.getInstancia();
// mapeando as teclas apertadas
teclas = new KeyEventPostProcessor() {
@Override
public boolean postProcessKeyEvent(KeyEvent e) {
- if (e.getKeyCode() == KeyEvent.VK_F1) { // Sobre
+ if (e.getKeyCode() == KeyEvent.VK_F1 && mnuSobre.isEnabled()) { // Sobre
mnuSobreMouseClicked(null);
} else if (e.getKeyCode() == KeyEvent.VK_F2 && mnuPrincipal.isEnabled() && janela == null) { // Menu Principal
mnuPrincipal.doClick();
@@ -228,21 +231,21 @@ public boolean postProcessKeyEvent(KeyEvent e) {
mnuFiscal.doClick();
} else if (e.getKeyCode() == KeyEvent.VK_F4 && mnuNota.isEnabled()) { // Nota Fiscal
mnuNota.doClick();
- } else if (e.getKeyCode() == KeyEvent.VK_F5) { // Pesquisa
+ } else if (e.getKeyCode() == KeyEvent.VK_F5 && mnuPesquisa.isEnabled()) { // Pesquisa
mnuPesquisaMouseClicked(null);
- } else if (e.getKeyCode() == KeyEvent.VK_F6) { // Menu Gaveta
+ } else if (e.getKeyCode() == KeyEvent.VK_F6 && mnuGaveta.isEnabled()) { // Menu Gaveta
mnuGavetaMouseClicked(null);
- } else if (e.getKeyCode() == KeyEvent.VK_F7 && mnuAbrirVenda.isEnabled()) { // Abrir Venda
+ } else if (e.getKeyCode() == KeyEvent.VK_F7 && mnuVenda.isEnabled() && mnuAbrirVenda.isEnabled()) { // Abrir Venda
mnuAbrirVendaActionPerformed(null);
- } else if (e.getKeyCode() == KeyEvent.VK_F8 && mnuFecharVenda.isEnabled()) { // Fechar Venda
+ } else if (e.getKeyCode() == KeyEvent.VK_F8 && mnuVenda.isEnabled() && mnuFecharVenda.isEnabled()) { // Fechar Venda
mnuFecharVendaActionPerformed(null);
- } else if (e.getKeyCode() == KeyEvent.VK_F9 && mnuCancelarItem.isEnabled()) { // Cancelar Item
+ } else if (e.getKeyCode() == KeyEvent.VK_F9 && mnuVenda.isEnabled() && mnuCancelarItem.isEnabled()) { // Cancelar Item
mnuCancelarItemActionPerformed(null);
- } else if (e.getKeyCode() == KeyEvent.VK_F10 && mnuCancelarVenda.isEnabled()) { // Cancelar Venda
+ } else if (e.getKeyCode() == KeyEvent.VK_F10 && mnuVenda.isEnabled() && mnuCancelarVenda.isEnabled()) { // Cancelar Venda
mnuCancelarVendaActionPerformed(null);
- } else if (e.getKeyCode() == KeyEvent.VK_F11) { // Identificar
+ } else if (e.getKeyCode() == KeyEvent.VK_F11 && mnuIdentificar.isEnabled()) { // Identificar
mnuIdentificarMouseClicked(null);
- } else if (e.getKeyCode() == KeyEvent.VK_F12) { // Sair
+ } else if (e.getKeyCode() == KeyEvent.VK_F12 && mnuSair.isEnabled()) { // Sair
mnuSairMouseClicked(null);
} else if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { // ESC
if (janela != null && !(janela instanceof Aguarde) && !(janela instanceof Autenticacao)) {
@@ -1140,22 +1143,22 @@ private void mnuSobreKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_
}//GEN-LAST:event_mnuSobreKeyPressed
private void mnuLMFCActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuLMFCActionPerformed
- janela = PAF_MF.getInstancia(EComandoECF.ECF_PafMf_Lmfc_Impressao);
+ janela = PAF_MF.getInstancia(EComando.ECF_PafMf_Lmfc_Impressao);
janela.setVisible(true);
}//GEN-LAST:event_mnuLMFCActionPerformed
private void mnuLMFSActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuLMFSActionPerformed
- janela = PAF_MF.getInstancia(EComandoECF.ECF_PafMf_Lmfs_Impressao);
+ janela = PAF_MF.getInstancia(EComando.ECF_PafMf_Lmfs_Impressao);
janela.setVisible(true);
}//GEN-LAST:event_mnuLMFSActionPerformed
private void mnuEspelhoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuEspelhoActionPerformed
- janela = PAF_MF.getInstancia(EComandoECF.ECF_PafMf_Mfd_Espelho);
+ janela = PAF_MF.getInstancia(EComando.ECF_PafMf_Mfd_Espelho);
janela.setVisible(true);
}//GEN-LAST:event_mnuEspelhoActionPerformed
private void mnuArquivoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mnuArquivoActionPerformed
- janela = PAF_MF.getInstancia(EComandoECF.ECF_PafMf_Mfd_Cotepe1704);
+ janela = PAF_MF.getInstancia(EComando.ECF_PafMf_Mfd_Cotepe1704);
janela.setVisible(true);
}//GEN-LAST:event_mnuArquivoActionPerformed
@@ -1163,7 +1166,7 @@ private void mnuSuprimentoActionPerformed(java.awt.event.ActionEvent evt) {//GEN
janela = Gerente.getInstancia(new AsyncCallback() {
@Override
public void sucesso(Integer resultado) {
- ECF.enviar(EComandoECF.ECF_AbreGaveta);
+ ecf.enviar(EComando.ECF_AbreGaveta);
String texto = JOptionPane.showInputDialog(caixa, "Digite o valor do suprimento.", "Suprimento", JOptionPane.OK_CANCEL_OPTION);
if (texto != null) {
@@ -1171,9 +1174,9 @@ public void sucesso(Integer resultado) {
try {
double valor = Double.valueOf(texto);
String[] param = new String[]{valor + "", "", Util.getConfig().get("ecf.suprimento"), "DINHEIRO"};
- String[] resp = ECF.enviar(EComandoECF.ECF_Suprimento, param);
+ String[] resp = ecf.enviar(EComando.ECF_Suprimento, param);
- if (ECF.OK.equals(resp[0])) {
+ if (IECF.OK.equals(resp[0])) {
new ComandoSalvarDocumento("CN").executar();
} else {
log.error("Não foi possivel realizar o Suprimento! -> " + resp[1]);
@@ -1199,7 +1202,7 @@ private void mnuSangriaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI
janela = Gerente.getInstancia(new AsyncCallback() {
@Override
public void sucesso(Integer resultado) {
- ECF.enviar(EComandoECF.ECF_AbreGaveta);
+ ecf.enviar(EComando.ECF_AbreGaveta);
String texto = JOptionPane.showInputDialog(caixa, "Digite o valor da sangria.", "Sangria", JOptionPane.OK_CANCEL_OPTION);
if (texto != null) {
@@ -1207,9 +1210,9 @@ public void sucesso(Integer resultado) {
try {
double valor = Double.valueOf(texto);
String[] param = new String[]{valor + "", "", Util.getConfig().get("ecf.sangria"), "DINHEIRO"};
- String[] resp = ECF.enviar(EComandoECF.ECF_Sangria, param);
+ String[] resp = ecf.enviar(EComando.ECF_Sangria, param);
- if (ECF.OK.equals(resp[0])) {
+ if (IECF.OK.equals(resp[0])) {
new ComandoSalvarDocumento("CN").executar();
} else {
log.error("Não foi possivel realizar a Sangria! -> " + resp[1]);
@@ -1464,7 +1467,7 @@ private void mnuAbrirVendaActionPerformed(java.awt.event.ActionEvent evt) {//GEN
// valida o serial do ECF
try {
- ECF.validarSerial(PAF.AUXILIAR.getProperty("ecf.serie").split(";")[0]);
+ ecf.validarSerial(PAF.AUXILIAR.getProperty("ecf.serie").split(";")[0]);
} catch (Exception ex) {
permite = false;
log.error("Problemas ao validar o serial.", ex);
@@ -1474,10 +1477,10 @@ private void mnuAbrirVendaActionPerformed(java.awt.event.ActionEvent evt) {//GEN
// valida o GT do ECF
try {
double gt = Double.valueOf(PAF.AUXILIAR.getProperty("ecf.gt").replace(",", "."));
- double novoGT = ECF.validarGT(gt);
+ double novoGT = ecf.validarGT(gt);
if (novoGT > 0.00) {
PAF.AUXILIAR.setProperty("ecf.gt", Util.formataNumero(novoGT, 1, 2, false));
- PAF.criptografar();
+ Util.criptografar(null, PAF.AUXILIAR);
}
} catch (Exception ex) {
permite = false;
@@ -1493,9 +1496,9 @@ private void mnuAbrirVendaActionPerformed(java.awt.event.ActionEvent evt) {//GEN
@Override
public void sucesso(SisCliente resultado) {
if (resultado != null && resultado.getSisClienteId() > 0) {
- String[] resp = ECF.enviar(EComandoECF.ECF_IdentificaConsumidor,
+ String[] resp = ecf.enviar(EComando.ECF_IdentificaConsumidor,
resultado.getSisClienteDoc(), resultado.getSisClienteNome(), resultado.getSisClienteEndereco());
- if (ECF.ERRO.equals(resp[0])) {
+ if (ecf.ERRO.equals(resp[0])) {
falha(new Exception(resp[1]));
}
}
@@ -1628,12 +1631,12 @@ private void mnuFecharVendaActionPerformed(java.awt.event.ActionEvent evt) {//GE
}//GEN-LAST:event_mnuFecharVendaActionPerformed
private void mnuGavetaMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_mnuGavetaMouseClicked
- if (mnuVenda.isEnabled() && janela == null) {
+ if (mnuGaveta.isEnabled() && janela == null) {
janela = Gerente.getInstancia(new AsyncCallback() {
@Override
public void sucesso(Integer resultado) {
- String[] resp = ECF.enviar(EComandoECF.ECF_AbreGaveta);
- if (ECF.ERRO.equals(resp[0])) {
+ String[] resp = ecf.enviar(EComando.ECF_AbreGaveta);
+ if (IECF.ERRO.equals(resp[0])) {
log.error("Erro ao abrir a gaveta. -> " + resp[1]);
JOptionPane.showMessageDialog(caixa, "Não foi possível abrir a gaveta!", "OpenPDV", JOptionPane.INFORMATION_MESSAGE);
}
@@ -1730,15 +1733,15 @@ public void run() {
try {
TEF.bloquear(true);
- ECF.enviar(EComandoECF.ECF_FechaRelatorio);
- ECF.enviar(EComandoECF.ECF_AbreRelatorioGerencial, Util.getConfig().get("ecf.reltef"));
- TEF.imprimirVias(TEF.getDados(), EComandoECF.ECF_LinhaRelatorioGerencial);
- ECF.enviar(EComandoECF.ECF_FechaRelatorio);
+ ecf.enviar(EComando.ECF_FechaRelatorio);
+ ecf.enviar(EComando.ECF_AbreRelatorioGerencial, Util.getConfig().get("ecf.reltef"));
+ TEF.imprimirVias(TEF.getDados(), EComando.ECF_LinhaRelatorioGerencial);
+ ecf.enviar(EComando.ECF_FechaRelatorio);
TEF.bloquear(false);
TEF.confirmarTransacao(id, true);
} catch (Exception ex) {
TEF.bloquear(false);
- ECF.enviar(EComandoECF.ECF_FechaRelatorio);
+ ecf.enviar(EComando.ECF_FechaRelatorio);
TEF.confirmarTransacao(id, false);
throw new Exception("Impressora não responde!");
} finally {
@@ -2087,7 +2090,6 @@ public void statusMenus(EModo atual) {
mnuNota.setEnabled(false);
mnuAbrirVenda.setEnabled(false);
mnuCupomPresente.setEnabled(false);
- mnuGaveta.setEnabled(false);
if (venda.getSisCliente() != null) {
mnuIdentificar.setEnabled(false);
}
@@ -2098,7 +2100,6 @@ public void statusMenus(EModo atual) {
mnuNota.setEnabled(false);
mnuVenda.setEnabled(false);
mnuIdentificar.setEnabled(false);
- mnuGaveta.setEnabled(false);
break;
case DISPONIVEL:
mnuFecharVenda.setEnabled(false);
@@ -2121,7 +2122,6 @@ public void statusMenus(EModo atual) {
mnuPAF.setEnabled(false);
mnuParamConfiguracao.setEnabled(false);
// outros
- mnuGaveta.setEnabled(false);
mnuVenda.setEnabled(false);
mnuIdentificar.setEnabled(false);
break;
@@ -2138,7 +2138,7 @@ public void statusMenus(EModo atual) {
}
// somente mostra o Cat52 caso esteja setado no config
- if (!Boolean.valueOf(Util.getConfig().get("ecf.cat52"))) {
+ if (Util.getConfig().get("ecf.cat52") == null) {
mnuCat52.setVisible(false);
}
}
diff --git a/src/br/com/openpdv/visao/core/Sobre.java b/src/br/com/openpdv/visao/core/Sobre.java
index 1aa49e4..bd97907 100755
--- a/src/br/com/openpdv/visao/core/Sobre.java
+++ b/src/br/com/openpdv/visao/core/Sobre.java
@@ -1,6 +1,7 @@
package br.com.openpdv.visao.core;
-import br.com.openpdv.controlador.core.Util;
+import br.com.openpdv.controlador.core.Conexao;
+import br.com.phdss.Util;
import br.com.phdss.controlador.PAF;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
@@ -358,7 +359,7 @@ public void run() {
if (local != null && !local.equals("")) {
// enviando o auxiliar local e recebendo o novo do servidor
- Client c = Util.getClientRest();
+ Client c = Conexao.getClientRest();
WebResource wr = c.resource(Util.getConfig().get("openpdv.url"));
String remoto = wr.type(MediaType.TEXT_PLAIN).accept(MediaType.TEXT_PLAIN).put(String.class, local);
diff --git a/src/br/com/openpdv/visao/core/Splash.java b/src/br/com/openpdv/visao/core/Splash.java
index c023036..e7a419c 100755
--- a/src/br/com/openpdv/visao/core/Splash.java
+++ b/src/br/com/openpdv/visao/core/Splash.java
@@ -4,16 +4,16 @@
import br.com.openpdv.controlador.comandos.ComandoReceberDados;
import br.com.openpdv.controlador.core.Conexao;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.EModo;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.filtro.*;
import br.com.openpdv.modelo.ecf.EcfImpressora;
import br.com.openpdv.modelo.sistema.SisEmpresa;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
+import br.com.phdss.EComando;
+import br.com.phdss.IECF;
import br.com.phdss.TEF;
-import static br.com.phdss.TEF.lerArquivo;
import br.com.phdss.controlador.PAF;
import com.sun.jersey.api.container.filter.GZIPContentEncodingFilter;
import com.sun.jersey.api.core.PackagesResourceConfig;
@@ -42,8 +42,9 @@
*/
public class Splash extends JFrame {
- private static Logger log;
private static Splash splash;
+ private Logger log;
+ private IECF ecf;
/**
* Construtor padrao.
@@ -69,8 +70,8 @@ public static void main(String[] args) {
break;
}
}
- } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
- log.error("Problemas ao mudar LaF.", ex);
+ } catch (Exception ex) {
+ // Nao mudou o visual.
}
// abre uma thread para iniciar a aplicacao
@@ -249,7 +250,7 @@ public boolean accept(File dir, String name) {
break;
}
}
- dados = PAF.descriptar(dados);
+ dados = Util.descriptar(dados);
// executa as instrucoes
for (String sql : dados.split("\n")) {
@@ -275,12 +276,12 @@ public boolean accept(File dir, String name) {
boolean login = true;
try {
splash.pgBarra.setString("Lendo arquivo auxiliar...");
- PAF.descriptografar();
+ Util.descriptografar(null, PAF.AUXILIAR);
splash.pgBarra.setValue(30);
} catch (Exception ex) {
// caso tenha algum problema tenta recuperar usando o backup
try {
- PAF.descriptografar("conf" + System.getProperty("file.separator") + "auxiliar.bak", PAF.AUXILIAR);
+ Util.descriptografar("conf" + System.getProperty("file.separator") + "auxiliar.bak", PAF.AUXILIAR);
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
PAF.AUXILIAR.setProperty("out.recebimento", Util.getData(cal.getTime()));
@@ -326,11 +327,14 @@ public boolean accept(File dir, String name) {
// valida a comunicao e ativacao com o ECF
boolean ecfAtivo = false;
try {
+ ECF.setInstancia(Util.getConfig().get("ecf.marca"));
+ ecf = ECF.getInstancia();
+
splash.pgBarra.setString("Conectando no ECF...");
- ECF.conectar(Util.getConfig().get("ecf.servidor"), Integer.valueOf(Util.getConfig().get("ecf.porta")));
+ ecf.conectar(Util.getConfig().get("ecf.porta"), Integer.valueOf(Util.getConfig().get("ecf.velocidade")), Integer.valueOf(Util.getConfig().get("ecf.modelo")));
splash.pgBarra.setString("Ativando o ECF...");
- ECF.ativar();
+ ecf.ativar();
splash.pgBarra.setValue(50);
ecfAtivo = true;
} catch (Exception ex) {
@@ -349,7 +353,7 @@ public boolean accept(File dir, String name) {
if (Boolean.valueOf(Util.getConfig().get("pag.cartao"))) {
try {
- String arquivo = lerArquivo(TEF.getRespIntPos001(), 0);
+ String arquivo = TEF.lerArquivo(TEF.getRespIntPos001(), 0);
boolean pendente = false;
if (arquivo != null) {
Map mapa = TEF.iniToMap(arquivo);
@@ -382,8 +386,8 @@ public boolean accept(File dir, String name) {
splash.pgBarra.setValue(70);
GrupoFiltro gf = new GrupoFiltro();
if (ecfAtivo) {
- String[] resp = ECF.enviar(EComandoECF.ECF_NumSerie);
- if (ECF.OK.equals(resp[0])) {
+ String[] resp = ecf.enviar(EComando.ECF_NumSerie);
+ if (IECF.OK.equals(resp[0])) {
FiltroTexto ft = new FiltroTexto("ecfImpressoraSerie", ECompara.IGUAL, resp[1]);
gf.add(ft, EJuncao.E);
}
@@ -410,7 +414,7 @@ public boolean accept(File dir, String name) {
// valida o serial do ECF
try {
splash.pgBarra.setString("Validando Nº Série do ECF...");
- ECF.validarSerial(PAF.AUXILIAR.getProperty("ecf.serie").split(";")[0]);
+ ecf.validarSerial(PAF.AUXILIAR.getProperty("ecf.serie").split(";")[0]);
} catch (Exception ex) {
String msg = PAF.AUXILIAR.size() == 0 ? "Número de Série do arquivo auxiliar não reconhecido!" : ex.getMessage();
login = false;
@@ -423,10 +427,10 @@ public boolean accept(File dir, String name) {
splash.pgBarra.setString("Validando GT do ECF...");
splash.pgBarra.setValue(80);
double gt = Double.valueOf(PAF.AUXILIAR.getProperty("ecf.gt").replace(",", "."));
- double novoGT = ECF.validarGT(gt);
+ double novoGT = ecf.validarGT(gt);
if (novoGT > 0.00) {
PAF.AUXILIAR.setProperty("ecf.gt", Util.formataNumero(novoGT, 1, 2, false));
- PAF.criptografar();
+ Util.criptografar(null, PAF.AUXILIAR);
JOptionPane.showMessageDialog(splash, "Valor do GT recomposto no arquivo auxiliar.", "OpenPDV", JOptionPane.WARNING_MESSAGE);
}
} catch (Exception ex) {
@@ -447,8 +451,8 @@ public boolean accept(File dir, String name) {
// recupera a data do ECF ou do sistema
Date atual = new Date();
if (ecfAtivo) {
- String[] resp = ECF.enviar(EComandoECF.ECF_DataHora);
- if (ECF.OK.equals(resp[0])) {
+ String[] resp = ecf.enviar(EComando.ECF_DataHora);
+ if (IECF.OK.equals(resp[0])) {
try {
atual = new SimpleDateFormat("dd/MM/yy HH:mm:ss").parse(resp[1]);
} catch (ParseException ex) {
@@ -482,12 +486,12 @@ public boolean accept(File dir, String name) {
caixa.statusMenus(EModo.OFF);
caixa.setJanela(Autenticacao.getInstancia());
- switch (ECF.validarEstado()) {
+ switch (ecf.validarEstado()) {
case estNaoInicializada:
case estDesconhecido:
throw new OpenPdvException("Estado do ECF não inicializado ou desconhecido.");
case estRelatorio:
- ECF.enviar(EComandoECF.ECF_CorrigeEstadoErro);
+ ecf.enviar(EComando.ECF_CorrigeEstadoErro);
break;
case estBloqueada:
login = false;
diff --git a/src/br/com/openpdv/visao/fiscal/PAF_ArquivoCat52.java b/src/br/com/openpdv/visao/fiscal/PAF_ArquivoCat52.java
index 8edd849..a72f6ed 100644
--- a/src/br/com/openpdv/visao/fiscal/PAF_ArquivoCat52.java
+++ b/src/br/com/openpdv/visao/fiscal/PAF_ArquivoCat52.java
@@ -2,7 +2,7 @@
import br.com.openpdv.controlador.comandos.ComandoGerarCat52;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.filtro.ECompara;
import br.com.openpdv.modelo.core.filtro.EJuncao;
diff --git a/src/br/com/openpdv/visao/fiscal/PAF_Estoque.java b/src/br/com/openpdv/visao/fiscal/PAF_Estoque.java
index fdbcd2f..7625eaf 100755
--- a/src/br/com/openpdv/visao/fiscal/PAF_Estoque.java
+++ b/src/br/com/openpdv/visao/fiscal/PAF_Estoque.java
@@ -1,7 +1,7 @@
package br.com.openpdv.visao.fiscal;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.EDirecao;
import br.com.openpdv.modelo.core.filtro.*;
import br.com.openpdv.modelo.ecf.EcfImpressora;
@@ -10,8 +10,6 @@
import br.com.openpdv.modelo.sistema.SisEmpresa;
import br.com.openpdv.visao.core.Aguarde;
import br.com.openpdv.visao.core.Caixa;
-import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
import br.com.phdss.controlador.PAF;
import br.com.phdss.modelo.anexo.iv.AnexoIV;
import br.com.phdss.modelo.anexo.iv.E1;
diff --git a/src/br/com/openpdv/visao/fiscal/PAF_MF.java b/src/br/com/openpdv/visao/fiscal/PAF_MF.java
index 31d282f..4bc2ad5 100755
--- a/src/br/com/openpdv/visao/fiscal/PAF_MF.java
+++ b/src/br/com/openpdv/visao/fiscal/PAF_MF.java
@@ -1,10 +1,10 @@
package br.com.openpdv.visao.fiscal;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.visao.core.Aguarde;
import br.com.openpdv.visao.core.Caixa;
-import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
+import br.com.phdss.fiscal.ACBR;
+import br.com.phdss.EComando;
import br.com.phdss.controlador.PAF;
import java.awt.Cursor;
import java.awt.Rectangle;
@@ -23,7 +23,7 @@ public class PAF_MF extends JDialog {
private static PAF_MF paf_mf;
private Logger log;
- private EComandoECF comando;
+ private EComando comando;
private String param1;
private String param2;
private String param3;
@@ -43,7 +43,7 @@ private PAF_MF() {
* @param comando informa o tipo de comando.
* @return o objeto de PAF_MF.
*/
- public static PAF_MF getInstancia(EComandoECF comando) {
+ public static PAF_MF getInstancia(EComando comando) {
if (paf_mf == null) {
paf_mf = new PAF_MF();
}
@@ -445,17 +445,17 @@ public void run() {
resp = PAF.leituraMF(comando, new String[]{param1, param2});
} else {
String nome = getTitle() + "_" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + ".txt";
- param3 = PAF.getPathArquivos() + nome;
+ param3 = Util.getPathArquivos() + nome;
switch (comando) {
case ECF_PafMf_Lmfc_Impressao:
if (radEspelho.isSelected()) {
- resp = PAF.leituraMF(EComandoECF.ECF_PafMf_Lmfc_Espelho, new String[]{param1, param2, param3});
+ resp = PAF.leituraMF(EComando.ECF_PafMf_Lmfc_Espelho, new String[]{param1, param2, param3});
} else {
- resp = PAF.leituraMF(EComandoECF.ECF_PafMf_Lmfc_Cotepe1704, new String[]{param1, param2, param3});
+ resp = PAF.leituraMF(EComando.ECF_PafMf_Lmfc_Cotepe1704, new String[]{param1, param2, param3});
}
break;
case ECF_PafMf_Lmfs_Impressao:
- resp = PAF.leituraMF(EComandoECF.ECF_PafMf_Lmfs_Espelho, new String[]{param1, param2, param3});
+ resp = PAF.leituraMF(EComando.ECF_PafMf_Lmfs_Espelho, new String[]{param1, param2, param3});
break;
default:
resp = PAF.leituraMF(comando, new String[]{param1, param2, param3});
@@ -463,9 +463,9 @@ public void run() {
}
Aguarde.getInstancia().setVisible(false);
- if (ECF.OK.equals(resp[0]) && param3 != null) {
+ if (ACBR.OK.equals(resp[0]) && param3 != null) {
JOptionPane.showMessageDialog(paf_mf, "Arquivo gerado com sucesso em:\n" + param3, getTitle(), JOptionPane.INFORMATION_MESSAGE);
- } else if (ECF.ERRO.equals(resp[0])) {
+ } else if (ACBR.ERRO.equals(resp[0])) {
if (param3 == null) {
log.error("Nao foi possivel emitir a leitura fiscal " + getTitle() + "! -> " + resp[1]);
JOptionPane.showMessageDialog(paf_mf, "Não foi possível emitir a leitura de " + getTitle() + "!", "Menu Fiscal", JOptionPane.WARNING_MESSAGE);
@@ -566,11 +566,11 @@ public void setButtonGroup2(ButtonGroup buttonGroup2) {
this.buttonGroup2 = buttonGroup2;
}
- public EComandoECF getComando() {
+ public EComando getComando() {
return comando;
}
- public void setComando(EComandoECF comando) {
+ public void setComando(EComando comando) {
this.comando = comando;
}
diff --git a/src/br/com/openpdv/visao/fiscal/PAF_MovimentosECF.java b/src/br/com/openpdv/visao/fiscal/PAF_MovimentosECF.java
index 9fa80fc..cc76a78 100755
--- a/src/br/com/openpdv/visao/fiscal/PAF_MovimentosECF.java
+++ b/src/br/com/openpdv/visao/fiscal/PAF_MovimentosECF.java
@@ -2,7 +2,7 @@
import br.com.openpdv.controlador.comandos.ComandoEmitirMovimentoECF;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.filtro.ECompara;
import br.com.openpdv.modelo.core.filtro.FiltroNumero;
diff --git a/src/br/com/openpdv/visao/fiscal/PAF_Pagamento.java b/src/br/com/openpdv/visao/fiscal/PAF_Pagamento.java
index c81b2cf..94115c7 100755
--- a/src/br/com/openpdv/visao/fiscal/PAF_Pagamento.java
+++ b/src/br/com/openpdv/visao/fiscal/PAF_Pagamento.java
@@ -3,7 +3,7 @@
import br.com.openpdv.controlador.comandos.ComandoSalvarDocumento;
import br.com.openpdv.controlador.comandos.ComandoTotalizarPagamentos;
import br.com.openpdv.controlador.core.CoreService;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.filtro.*;
import br.com.openpdv.modelo.ecf.EcfPagamentoTotais;
import br.com.openpdv.visao.core.Aguarde;
diff --git a/src/br/com/openpdv/visao/nota/NotaConsumidor.java b/src/br/com/openpdv/visao/nota/NotaConsumidor.java
index f55773e..189b368 100755
--- a/src/br/com/openpdv/visao/nota/NotaConsumidor.java
+++ b/src/br/com/openpdv/visao/nota/NotaConsumidor.java
@@ -20,6 +20,7 @@
import br.com.openpdv.visao.principal.Pesquisa;
import br.com.openpdv.visao.venda.Grades;
import br.com.openpdv.visao.venda.Precos;
+import br.com.phdss.Util;
import java.awt.event.KeyEvent;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
diff --git a/src/br/com/openpdv/visao/nota/NotaEletronica.java b/src/br/com/openpdv/visao/nota/NotaEletronica.java
index cbe98c7..15dece4 100755
--- a/src/br/com/openpdv/visao/nota/NotaEletronica.java
+++ b/src/br/com/openpdv/visao/nota/NotaEletronica.java
@@ -26,6 +26,7 @@
import br.com.opensig.nfe.TNFe;
import br.com.opensig.nfe.TNFe.InfNFe.Det;
import br.com.opensig.nfe.TNfeProc;
+import br.com.phdss.Util;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.FileOutputStream;
diff --git a/src/br/com/openpdv/visao/principal/Clientes.java b/src/br/com/openpdv/visao/principal/Clientes.java
index ad76951..69a3e36 100755
--- a/src/br/com/openpdv/visao/principal/Clientes.java
+++ b/src/br/com/openpdv/visao/principal/Clientes.java
@@ -3,7 +3,7 @@
import br.com.openpdv.controlador.core.AsyncCallback;
import br.com.openpdv.controlador.core.CoreService;
import br.com.openpdv.controlador.core.TextFieldLimit;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.filtro.ECompara;
import br.com.openpdv.modelo.core.filtro.EJuncao;
diff --git a/src/br/com/openpdv/visao/principal/Embalagens.java b/src/br/com/openpdv/visao/principal/Embalagens.java
index 93a8c01..a1980a0 100755
--- a/src/br/com/openpdv/visao/principal/Embalagens.java
+++ b/src/br/com/openpdv/visao/principal/Embalagens.java
@@ -2,7 +2,7 @@
import br.com.openpdv.controlador.core.CoreService;
import br.com.openpdv.controlador.core.TextFieldLimit;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.produto.ProdEmbalagem;
import br.com.openpdv.visao.core.Caixa;
diff --git a/src/br/com/openpdv/visao/principal/LeiturasZ.form b/src/br/com/openpdv/visao/principal/LeiturasZ.form
index bb64f92..b427916 100644
--- a/src/br/com/openpdv/visao/principal/LeiturasZ.form
+++ b/src/br/com/openpdv/visao/principal/LeiturasZ.form
@@ -48,7 +48,13 @@
-
+
+
+
+
+
+
+
@@ -70,10 +76,18 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -640,5 +654,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/br/com/openpdv/visao/principal/LeiturasZ.java b/src/br/com/openpdv/visao/principal/LeiturasZ.java
index 09d3e9a..10b87ed 100644
--- a/src/br/com/openpdv/visao/principal/LeiturasZ.java
+++ b/src/br/com/openpdv/visao/principal/LeiturasZ.java
@@ -1,6 +1,5 @@
package br.com.openpdv.visao.principal;
-import br.com.openpdv.visao.principal.*;
import br.com.openpdv.controlador.core.*;
import br.com.openpdv.controlador.permissao.Login;
import br.com.openpdv.modelo.core.EComandoSQL;
@@ -70,6 +69,7 @@ public void valueChanged(ListSelectionEvent e) {
txtCRZ.setDocument(new TextFieldLimit(8, true));
txtBruto.setDocument(new TextFieldLimit(16));
txtTotal.setDocument(new TextFieldLimit(16));
+ txtLimite.setText("10");
}
/**
@@ -117,6 +117,9 @@ private void initComponents() {
btnNovo = new javax.swing.JButton();
btnSalvar = new javax.swing.JButton();
btnCancelar = new javax.swing.JButton();
+ txtLimite = new javax.swing.JFormattedTextField();
+ lblLimite = new javax.swing.JLabel();
+ btnPesquisar = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Leituras Z");
@@ -453,6 +456,42 @@ public void keyPressed(java.awt.event.KeyEvent evt) {
}
});
+ txtLimite.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#0"))));
+ txtLimite.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
+ txtLimite.setText("10");
+ txtLimite.setToolTipText("Número máximo de registros na listagem. [0] para todos");
+ txtLimite.setFont(new java.awt.Font("Serif", 0, 12)); // NOI18N
+ txtLimite.addFocusListener(new java.awt.event.FocusAdapter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ txtLimiteFocusLost(evt);
+ }
+ });
+ txtLimite.addKeyListener(new java.awt.event.KeyAdapter() {
+ public void keyPressed(java.awt.event.KeyEvent evt) {
+ txtLimiteKeyPressed(evt);
+ }
+ });
+
+ lblLimite.setFont(new java.awt.Font("Serif", 0, 12)); // NOI18N
+ lblLimite.setText("Limite de registros.");
+
+ btnPesquisar.setFont(new java.awt.Font("Serif", 0, 12)); // NOI18N
+ btnPesquisar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/br/com/openpdv/imagens/pesquisa.png"))); // NOI18N
+ btnPesquisar.setText("Pesquisar");
+ btnPesquisar.setMaximumSize(new java.awt.Dimension(100, 30));
+ btnPesquisar.setMinimumSize(new java.awt.Dimension(100, 30));
+ btnPesquisar.setPreferredSize(new java.awt.Dimension(100, 30));
+ btnPesquisar.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ btnPesquisarActionPerformed(evt);
+ }
+ });
+ btnPesquisar.addKeyListener(new java.awt.event.KeyAdapter() {
+ public void keyPressed(java.awt.event.KeyEvent evt) {
+ btnPesquisarKeyPressed(evt);
+ }
+ });
+
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
@@ -468,7 +507,13 @@ public void keyPressed(java.awt.event.KeyEvent evt) {
.addContainerGap()
.add(panLeitura, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
- .add(0, 0, Short.MAX_VALUE)
+ .addContainerGap()
+ .add(txtLimite, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 89, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(6, 6, 6)
+ .add(lblLimite)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .add(btnPesquisar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(btnNovo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(btnSalvar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
@@ -486,10 +531,16 @@ public void keyPressed(java.awt.event.KeyEvent evt) {
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(tabTotais, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 208, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
- .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
- .add(btnCancelar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
- .add(btnSalvar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
- .add(btnNovo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
+ .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
+ .add(btnCancelar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(btnSalvar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(btnNovo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(btnPesquisar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
+ .add(txtLimite, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
+ .add(layout.createSequentialGroup()
+ .add(6, 6, 6)
+ .add(lblLimite)))
.addContainerGap(46, Short.MAX_VALUE))
);
@@ -553,10 +604,38 @@ private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:even
Caixa.getInstancia().setJanela(null);
}//GEN-LAST:event_formWindowClosing
+ private void txtLimiteFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_txtLimiteFocusLost
+ try {
+ int limite = Integer.valueOf(txtLimite.getText());
+ if (limite < 0) {
+ txtLimite.setText("10");
+ }
+ } catch (NumberFormatException ex) {
+ txtLimite.setText("10");
+ }
+ }//GEN-LAST:event_txtLimiteFocusLost
+
+ private void btnPesquisarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPesquisarActionPerformed
+ setLista();
+ }//GEN-LAST:event_btnPesquisarActionPerformed
+
+ private void btnPesquisarKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_btnPesquisarKeyPressed
+ if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
+ setLista();
+ }
+ }//GEN-LAST:event_btnPesquisarKeyPressed
+
+ private void txtLimiteKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txtLimiteKeyPressed
+ if (evt.getKeyCode() == KeyEvent.VK_ENTER) {
+ setLista();
+ }
+ }//GEN-LAST:event_txtLimiteKeyPressed
+
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnAdicionar;
private javax.swing.JButton btnCancelar;
private javax.swing.JButton btnNovo;
+ private javax.swing.JButton btnPesquisar;
private javax.swing.JButton btnRemover;
private javax.swing.JButton btnSalvar;
private javax.swing.JCheckBox chkIssqn;
@@ -566,6 +645,7 @@ private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:even
private javax.swing.JLabel lblCRO;
private javax.swing.JLabel lblCRZ;
private javax.swing.JLabel lblData;
+ private javax.swing.JLabel lblLimite;
private javax.swing.JLabel lblTotal;
private javax.swing.JPanel panLeitura;
private javax.swing.JPanel panTotais;
@@ -580,6 +660,7 @@ private void formWindowClosing(java.awt.event.WindowEvent evt) {//GEN-FIRST:even
private javax.swing.JTextField txtCRO;
private javax.swing.JTextField txtCRZ;
private javax.swing.JFormattedTextField txtData;
+ private javax.swing.JFormattedTextField txtLimite;
private javax.swing.JFormattedTextField txtTotal;
// End of variables declaration//GEN-END:variables
@@ -715,9 +796,10 @@ private void salvarTotais(EntityManager em, EcfZ z, List totais) thr
*/
private void setLista() {
try {
+ int limite = Integer.valueOf(txtLimite.getText());
EcfZ ecfZ = new EcfZ();
ecfZ.setOrdemDirecao(EDirecao.DESC);
- List lista = service.selecionar(ecfZ, 0, 0, null);
+ List lista = service.selecionar(ecfZ, 0, limite, null);
while (dtmZ.getRowCount() > 0) {
dtmZ.removeRow(0);
}
diff --git a/src/br/com/openpdv/visao/principal/Produtos.java b/src/br/com/openpdv/visao/principal/Produtos.java
index 4a4f665..5d4d870 100755
--- a/src/br/com/openpdv/visao/principal/Produtos.java
+++ b/src/br/com/openpdv/visao/principal/Produtos.java
@@ -13,6 +13,7 @@
import br.com.openpdv.modelo.produto.ProdPreco;
import br.com.openpdv.modelo.produto.ProdProduto;
import br.com.openpdv.visao.core.Caixa;
+import br.com.phdss.Util;
import java.awt.event.KeyEvent;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
diff --git a/src/br/com/openpdv/visao/principal/TiposGrade.java b/src/br/com/openpdv/visao/principal/TiposGrade.java
index 2bc2c88..451fb3c 100644
--- a/src/br/com/openpdv/visao/principal/TiposGrade.java
+++ b/src/br/com/openpdv/visao/principal/TiposGrade.java
@@ -2,7 +2,7 @@
import br.com.openpdv.controlador.core.CoreService;
import br.com.openpdv.controlador.core.TextFieldLimit;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.produto.ProdGradeTipo;
import br.com.openpdv.visao.core.Caixa;
diff --git a/src/br/com/openpdv/visao/principal/TiposPagamento.java b/src/br/com/openpdv/visao/principal/TiposPagamento.java
index aa0cf76..bf94dda 100644
--- a/src/br/com/openpdv/visao/principal/TiposPagamento.java
+++ b/src/br/com/openpdv/visao/principal/TiposPagamento.java
@@ -2,7 +2,7 @@
import br.com.openpdv.controlador.core.CoreService;
import br.com.openpdv.controlador.core.TextFieldLimit;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.EcfPagamentoTipo;
import br.com.openpdv.visao.core.Caixa;
diff --git a/src/br/com/openpdv/visao/principal/Trocas.java b/src/br/com/openpdv/visao/principal/Trocas.java
index 48ff965..4aa6723 100644
--- a/src/br/com/openpdv/visao/principal/Trocas.java
+++ b/src/br/com/openpdv/visao/principal/Trocas.java
@@ -15,6 +15,7 @@
import br.com.openpdv.visao.core.Caixa;
import br.com.openpdv.visao.venda.Grades;
import br.com.openpdv.visao.venda.Precos;
+import br.com.phdss.Util;
import java.awt.event.KeyEvent;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
diff --git a/src/br/com/openpdv/visao/principal/Usuarios.java b/src/br/com/openpdv/visao/principal/Usuarios.java
index 79cdcdd..f85f714 100755
--- a/src/br/com/openpdv/visao/principal/Usuarios.java
+++ b/src/br/com/openpdv/visao/principal/Usuarios.java
@@ -1,7 +1,7 @@
package br.com.openpdv.visao.principal;
import br.com.openpdv.controlador.core.TextFieldLimit;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.controlador.permissao.PermissaoService;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.sistema.SisUsuario;
diff --git a/src/br/com/openpdv/visao/venda/Cartao.java b/src/br/com/openpdv/visao/venda/Cartao.java
index a02bff5..fc43b24 100644
--- a/src/br/com/openpdv/visao/venda/Cartao.java
+++ b/src/br/com/openpdv/visao/venda/Cartao.java
@@ -3,7 +3,7 @@
import br.com.openpdv.controlador.core.AsyncCallback;
import br.com.openpdv.controlador.core.CoreService;
import br.com.openpdv.controlador.core.TextFieldLimit;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.filtro.ECompara;
import br.com.openpdv.modelo.core.filtro.EJuncao;
diff --git a/src/br/com/openpdv/visao/venda/Cheque.java b/src/br/com/openpdv/visao/venda/Cheque.java
index e6208c0..1b19e43 100644
--- a/src/br/com/openpdv/visao/venda/Cheque.java
+++ b/src/br/com/openpdv/visao/venda/Cheque.java
@@ -3,7 +3,7 @@
import br.com.openpdv.controlador.core.AsyncCallback;
import br.com.openpdv.controlador.core.CoreService;
import br.com.openpdv.controlador.core.TextFieldLimit;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.EcfPagamento;
import br.com.openpdv.visao.core.*;
diff --git a/src/br/com/openpdv/visao/venda/Fechamento.java b/src/br/com/openpdv/visao/venda/Fechamento.java
index 47deac0..184eadd 100755
--- a/src/br/com/openpdv/visao/venda/Fechamento.java
+++ b/src/br/com/openpdv/visao/venda/Fechamento.java
@@ -5,7 +5,7 @@
import br.com.openpdv.controlador.core.AsyncCallback;
import br.com.openpdv.controlador.core.CoreService;
import br.com.openpdv.controlador.core.TableCellRendererNumber;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.EModo;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.ecf.EcfPagamento;
@@ -16,7 +16,7 @@
import br.com.openpdv.visao.core.Gerente;
import br.com.openpdv.visao.principal.Trocas;
import br.com.phdss.ECF;
-import br.com.phdss.EComandoECF;
+import br.com.phdss.EComando;
import br.com.phdss.TEF;
import java.awt.Cursor;
import java.awt.event.KeyEvent;
@@ -1094,7 +1094,7 @@ private void fechar() {
public void run() {
try {
if (pagDinheiro) {
- ECF.enviar(EComandoECF.ECF_AbreGaveta);
+ ECF.getInstancia().enviar(EComando.ECF_AbreGaveta);
}
new ComandoFecharVenda(getPagamentos(), total.doubleValue(), acres.subtract(desc).doubleValue(), troco.doubleValue(), obs).executar();
} catch (OpenPdvException ex) {
diff --git a/src/br/com/openpdv/visao/venda/Identificar.java b/src/br/com/openpdv/visao/venda/Identificar.java
index afb9436..9656b43 100755
--- a/src/br/com/openpdv/visao/venda/Identificar.java
+++ b/src/br/com/openpdv/visao/venda/Identificar.java
@@ -3,7 +3,7 @@
import br.com.openpdv.controlador.core.AsyncCallback;
import br.com.openpdv.controlador.core.CoreService;
import br.com.openpdv.controlador.core.TextFieldLimit;
-import br.com.openpdv.controlador.core.Util;
+import br.com.phdss.Util;
import br.com.openpdv.modelo.core.OpenPdvException;
import br.com.openpdv.modelo.core.filtro.*;
import br.com.openpdv.modelo.ecf.EcfVenda;