@ -6,7 +6,10 @@ import static de.srsoftware.tools.jdbc.Condition.*;
import static de.srsoftware.tools.jdbc.Query.* ;
import static de.srsoftware.tools.jdbc.Query.* ;
import static de.srsoftware.tools.jdbc.Query.SelectQuery.ALL ;
import static de.srsoftware.tools.jdbc.Query.SelectQuery.ALL ;
import static de.srsoftware.umbrella.core.Constants.* ;
import static de.srsoftware.umbrella.core.Constants.* ;
import static de.srsoftware.umbrella.core.Constants.FIELD_COMPANY_ID ;
import static de.srsoftware.umbrella.core.Field.* ;
import static de.srsoftware.umbrella.core.Field.COMPANY_ID ;
import static de.srsoftware.umbrella.core.Field.TAX ;
import static de.srsoftware.umbrella.core.Field.UNIT ;
import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.databaseException ;
import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.databaseException ;
import static de.srsoftware.umbrella.core.model.Document.DEFAULT_THOUSANDS_SEPARATOR ;
import static de.srsoftware.umbrella.core.model.Document.DEFAULT_THOUSANDS_SEPARATOR ;
import static de.srsoftware.umbrella.core.model.Document.State ;
import static de.srsoftware.umbrella.core.model.Document.State ;
@ -51,7 +54,7 @@ public class SqliteDb implements DocumentDb{
private void createTableCompanySettings ( ) {
private void createTableCompanySettings ( ) {
var sql = "CREATE TABLE IF NOT EXISTS {0} ({1} INT NOT NULL, {2} INT NOT NULL, {3} TEXT DEFAULT \"A\", {4} TEXT DEFAULT NULL, {5} INT NOT NULL DEFAULT 1, PRIMARY KEY ({1}, {2}))" ;
var sql = "CREATE TABLE IF NOT EXISTS {0} ({1} INT NOT NULL, {2} INT NOT NULL, {3} TEXT DEFAULT \"A\", {4} TEXT DEFAULT NULL, {5} INT NOT NULL DEFAULT 1, PRIMARY KEY ({1}, {2}))" ;
try {
try {
var stmt = db . prepareStatement ( format ( sql , TABLE_COMPANY_SETTINGS , FIELD_ COMPANY_ID, FIELD_ DOC_TYPE_ID, FIELD_ TYPE_PREFIX, FIELD_ TYPE_SUFFIX, FIELD_ TYPE_NUMBER) ) ;
var stmt = db . prepareStatement ( format ( sql , TABLE_COMPANY_SETTINGS , COMPANY_ID , DOC_TYPE_ID , TYPE_PREFIX , TYPE_SUFFIX , TYPE_NUMBER ) ) ;
stmt . execute ( ) ;
stmt . execute ( ) ;
stmt . close ( ) ;
stmt . close ( ) ;
} catch ( SQLException e ) {
} catch ( SQLException e ) {
@ -63,7 +66,7 @@ public class SqliteDb implements DocumentDb{
private void createTableCustomerPrices ( ) {
private void createTableCustomerPrices ( ) {
var sql = "CREATE TABLE IF NOT EXISTS {0} ({1} INT NOT NULL, {2} VARCHAR(255), {3} VARCHAR(50), {4} INTEGER)" ;
var sql = "CREATE TABLE IF NOT EXISTS {0} ({1} INT NOT NULL, {2} VARCHAR(255), {3} VARCHAR(50), {4} INTEGER)" ;
try {
try {
var stmt = db . prepareStatement ( format ( sql , TABLE_PRICES , FIELD_ COMPANY_ID, FIELD_ CUSTOMER_NUMBER, FIELD_ ITEM_CODE, FIELD_ PRICE) ) ;
var stmt = db . prepareStatement ( format ( sql , TABLE_PRICES , COMPANY_ID , CUSTOMER_NUMBER , ITEM_CODE , PRICE ) ) ;
stmt . execute ( ) ;
stmt . execute ( ) ;
stmt . close ( ) ;
stmt . close ( ) ;
} catch ( SQLException e ) {
} catch ( SQLException e ) {
@ -75,7 +78,7 @@ public class SqliteDb implements DocumentDb{
private void createTableCustomerSettings ( ) {
private void createTableCustomerSettings ( ) {
var sql = "CREATE TABLE IF NOT EXISTS {0} ({1} INT NOT NULL, {2} INT NOT NULL, {3} VARCHAR(255), {4} TEXT, {5} TEXT, {6} TEXT, PRIMARY KEY ({1}, {2}, {3}))" ;
var sql = "CREATE TABLE IF NOT EXISTS {0} ({1} INT NOT NULL, {2} INT NOT NULL, {3} VARCHAR(255), {4} TEXT, {5} TEXT, {6} TEXT, PRIMARY KEY ({1}, {2}, {3}))" ;
try {
try {
var stmt = db . prepareStatement ( format ( sql , TABLE_CUSTOMER_SETTINGS , FIELD_ COMPANY_ID, FIELD_ DOC_TYPE_ID, FIELD_ CUSTOMER_NUMBER, FIELD_ DEFAULT_HEADER, FIELD_ DEFAULT_FOOTER, FIELD_ DEFAULT_MAIL) ) ;
var stmt = db . prepareStatement ( format ( sql , TABLE_CUSTOMER_SETTINGS , COMPANY_ID , DOC_TYPE_ID , CUSTOMER_NUMBER , DEFAULT_HEADER , DEFAULT_FOOTER , DEFAULT_MAIL ) ) ;
stmt . execute ( ) ;
stmt . execute ( ) ;
stmt . close ( ) ;
stmt . close ( ) ;
} catch ( SQLException e ) {
} catch ( SQLException e ) {
@ -108,7 +111,7 @@ CREATE TABLE IF NOT EXISTS {0} (
{ 18 } VARCHAR ( 255 ) ,
{ 18 } VARCHAR ( 255 ) ,
{ 19 } VARCHAR ( 255 )
{ 19 } VARCHAR ( 255 )
) "" " ;
) "" " ;
createTable = format ( createTable , TABLE_DOCUMENTS , ID , FIELD_ TYPE_ID, FIELD_ COMPANY_ID, NUMBER , DATE , STATE , FIELD_ TEMPLATE_ID, FIELD_ DELIVERY_DATE, FIELD_ HEAD, FIELD_F OOTER , FIELD_ CURRENCY, SENDER , FIELD_ TAX_NUMBER, FIELD_ BANK_ACCOUNT, FIELD_ COURT, FIELD_ CUSTOMER, FIELD_ CUSTOMER_NUMBER, FIELD_ CUSTOMER_TAX_NUMBER, FIELD_ CUSTOMER_EMAIL) ;
createTable = format ( createTable , TABLE_DOCUMENTS , ID , TYPE_ID , COMPANY_ID , NUMBER , DATE , STATE , TEMPLATE_ID , DELIVERY_DATE , HEAD , FOOTER , CURRENCY , SENDER , TAX_NUMBER , BANK_ACCOUNT , COURT , CUSTOMER , CUSTOMER_NUMBER , CUSTOMER_TAX_NUMBER , CUSTOMER_EMAIL ) ;
try {
try {
var stmt = db . prepareStatement ( createTable ) ;
var stmt = db . prepareStatement ( createTable ) ;
stmt . execute ( ) ;
stmt . execute ( ) ;
@ -122,7 +125,7 @@ CREATE TABLE IF NOT EXISTS {0} (
private void createTableDocumentTypes ( ) {
private void createTableDocumentTypes ( ) {
var createTable = "CREATE TABLE IF NOT EXISTS {0} ({1} INTEGER PRIMARY KEY, {2} INT, {3} VARCHAR(255) NOT NULL)" ;
var createTable = "CREATE TABLE IF NOT EXISTS {0} ({1} INTEGER PRIMARY KEY, {2} INT, {3} VARCHAR(255) NOT NULL)" ;
try {
try {
var stmt = db . prepareStatement ( format ( createTable , TABLE_DOCUMENT_TYPES , ID , FIELD_ NEXT_TYPE, NAME ) ) ;
var stmt = db . prepareStatement ( format ( createTable , TABLE_DOCUMENT_TYPES , ID , NEXT_TYPE , NAME ) ) ;
stmt . execute ( ) ;
stmt . execute ( ) ;
stmt . close ( ) ;
stmt . close ( ) ;
} catch ( SQLException e ) {
} catch ( SQLException e ) {
@ -147,7 +150,7 @@ CREATE TABLE IF NOT EXISTS {0} (
{ 11 } BOOLEAN DEFAULT 0
{ 11 } BOOLEAN DEFAULT 0
)
)
"" " ;
"" " ;
sql = format ( sql , TABLE_POSITIONS , FIELD_ DOCUMENT_ID, FIELD_ POS, FIELD_ ITEM_CODE, FIELD_ AMOUNT, FIELD_ UNIT, TITLE , DESCRIPTION , FIELD_ PRICE, FIELD_ TAX, FIELD_ TIME_ID, OPTIONAL ) ;
sql = format ( sql , TABLE_POSITIONS , DOCUMENT_ID , POS , ITEM_CODE , AMOUNT , UNIT , TITLE , DESCRIPTION , PRICE , TAX , TIME_ID , OPTIONAL ) ;
try {
try {
var stmt = db . prepareStatement ( sql ) ;
var stmt = db . prepareStatement ( sql ) ;
stmt . execute ( ) ;
stmt . execute ( ) ;
@ -191,7 +194,7 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
private void createTableTemplates ( ) {
private void createTableTemplates ( ) {
var createTable = "CREATE TABLE IF NOT EXISTS {0} ({1} INTEGER PRIMARY KEY, {2} INT NOT NULL, {3} VARCHAR(255) NOT NULL, {4} BLOB)" ;
var createTable = "CREATE TABLE IF NOT EXISTS {0} ({1} INTEGER PRIMARY KEY, {2} INT NOT NULL, {3} VARCHAR(255) NOT NULL, {4} BLOB)" ;
try {
try {
var stmt = db . prepareStatement ( format ( createTable , TABLE_TEMPLATES , ID , FIELD_ COMPANY_ID, NAME , TEMPLATE ) ) ;
var stmt = db . prepareStatement ( format ( createTable , TABLE_TEMPLATES , ID , COMPANY_ID , NAME , TEMPLATE ) ) ;
stmt . execute ( ) ;
stmt . execute ( ) ;
stmt . close ( ) ;
stmt . close ( ) ;
} catch ( SQLException e ) {
} catch ( SQLException e ) {
@ -208,7 +211,7 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
String number = null ;
String number = null ;
if ( rs . next ( ) ) number = rs . getString ( NUMBER ) ;
if ( rs . next ( ) ) number = rs . getString ( NUMBER ) ;
rs . close ( ) ;
rs . close ( ) ;
delete ( ) . from ( TABLE_POSITIONS ) . where ( FIELD_ DOCUMENT_ID, equal ( docId ) ) . execute ( db ) ;
delete ( ) . from ( TABLE_POSITIONS ) . where ( DOCUMENT_ID , equal ( docId ) ) . execute ( db ) ;
delete ( ) . from ( TABLE_DOCUMENTS ) . where ( ID , equal ( docId ) ) . execute ( db ) ;
delete ( ) . from ( TABLE_DOCUMENTS ) . where ( ID , equal ( docId ) ) . execute ( db ) ;
db . setAutoCommit ( true ) ;
db . setAutoCommit ( true ) ;
if ( number ! = null ) return number ;
if ( number ! = null ) return number ;
@ -222,8 +225,8 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
public Long dropPosition ( long docId , long pos ) throws UmbrellaException {
public Long dropPosition ( long docId , long pos ) throws UmbrellaException {
try {
try {
db . setAutoCommit ( false ) ;
db . setAutoCommit ( false ) ;
delete ( ) . from ( TABLE_POSITIONS ) . where ( FIELD_ DOCUMENT_ID, equal ( docId ) ) . where ( FIELD_ POS, equal ( pos ) ) . execute ( db ) ;
delete ( ) . from ( TABLE_POSITIONS ) . where ( DOCUMENT_ID , equal ( docId ) ) . where ( POS , equal ( pos ) ) . execute ( db ) ;
var sql = format ( "UPDATE {0} SET {1} = {1}-1 WHERE {2} = ? AND {1} > ?" , TABLE_POSITIONS , FIELD_ POS, FIELD_ DOCUMENT_ID) ;
var sql = format ( "UPDATE {0} SET {1} = {1}-1 WHERE {2} = ? AND {1} > ?" , TABLE_POSITIONS , POS , DOCUMENT_ID ) ;
LOG . log ( DEBUG , sql . replaceFirst ( "\\?" , docId + "" ) . replace ( "?" , pos + "" ) ) ;
LOG . log ( DEBUG , sql . replaceFirst ( "\\?" , docId + "" ) . replace ( "?" , pos + "" ) ) ;
var stmt = db . prepareStatement ( sql ) ;
var stmt = db . prepareStatement ( sql ) ;
stmt . setLong ( 1 , docId ) ;
stmt . setLong ( 1 , docId ) ;
@ -241,7 +244,7 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
@Override
@Override
public CompanySettings getCompanySettings ( long companyId , Type docType ) throws UmbrellaException {
public CompanySettings getCompanySettings ( long companyId , Type docType ) throws UmbrellaException {
try {
try {
var rs = select ( ALL ) . from ( TABLE_COMPANY_SETTINGS ) . where ( FIELD_ COMPANY_ID, equal ( companyId ) ) . where ( FIELD_ DOC_TYPE_ID, equal ( docType . id ( ) ) ) . exec ( db ) ;
var rs = select ( ALL ) . from ( TABLE_COMPANY_SETTINGS ) . where ( COMPANY_ID , equal ( companyId ) ) . where ( DOC_TYPE_ID , equal ( docType . id ( ) ) ) . exec ( db ) ;
CompanySettings settings = null ;
CompanySettings settings = null ;
if ( rs . next ( ) ) settings = CompanySettings . of ( rs ) ;
if ( rs . next ( ) ) settings = CompanySettings . of ( rs ) ;
rs . close ( ) ;
rs . close ( ) ;
@ -267,9 +270,9 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
@Override
@Override
public Long getCustomerPrice ( long company , String customer , String itemCode ) throws UmbrellaException {
public Long getCustomerPrice ( long company , String customer , String itemCode ) throws UmbrellaException {
try {
try {
var rs = select ( FIELD_ PRICE) . from ( TABLE_PRICES ) . where ( FIELD_ COMPANY_ID, equal ( company ) ) . where ( FIELD_ CUSTOMER_NUMBER, equal ( customer ) ) . where ( FIELD_ ITEM_CODE, equal ( itemCode ) ) . exec ( db ) ;
var rs = select ( PRICE ) . from ( TABLE_PRICES ) . where ( COMPANY_ID , equal ( company ) ) . where ( CUSTOMER_NUMBER , equal ( customer ) ) . where ( ITEM_CODE , equal ( itemCode ) ) . exec ( db ) ;
Long price = null ;
Long price = null ;
if ( rs . next ( ) ) price = rs . getLong ( FIELD_ PRICE) ;
if ( rs . next ( ) ) price = rs . getLong ( PRICE ) ;
rs . close ( ) ;
rs . close ( ) ;
if ( price ! = null ) return price ;
if ( price ! = null ) return price ;
} catch ( SQLException e ) {
} catch ( SQLException e ) {
@ -281,7 +284,7 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
@Override
@Override
public CustomerSettings getCustomerSettings ( long companyId , Type docType , String customerId ) throws UmbrellaException {
public CustomerSettings getCustomerSettings ( long companyId , Type docType , String customerId ) throws UmbrellaException {
try {
try {
var rs = select ( ALL ) . from ( TABLE_CUSTOMER_SETTINGS ) . where ( FIELD_ COMPANY_ID, equal ( companyId ) ) . where ( FIELD_ DOC_TYPE_ID, equal ( docType . id ( ) ) ) . where ( FIELD_ CUSTOMER_NUMBER, equal ( customerId ) ) . exec ( db ) ;
var rs = select ( ALL ) . from ( TABLE_CUSTOMER_SETTINGS ) . where ( COMPANY_ID , equal ( companyId ) ) . where ( DOC_TYPE_ID , equal ( docType . id ( ) ) ) . where ( CUSTOMER_NUMBER , equal ( customerId ) ) . exec ( db ) ;
CustomerSettings settings = null ;
CustomerSettings settings = null ;
if ( rs . next ( ) ) settings = CustomerSettings . of ( rs ) ;
if ( rs . next ( ) ) settings = CustomerSettings . of ( rs ) ;
rs . close ( ) ;
rs . close ( ) ;
@ -314,10 +317,10 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
public Map < Long , Map < Long , String > > docReferencedByTimes ( Set < Long > timeIds ) throws UmbrellaException {
public Map < Long , Map < Long , String > > docReferencedByTimes ( Set < Long > timeIds ) throws UmbrellaException {
try {
try {
var map = new HashMap < Long , Map < Long , String > > ( ) ; // Map ( timeId → Map ( docId → name ))
var map = new HashMap < Long , Map < Long , String > > ( ) ; // Map ( timeId → Map ( docId → name ))
var rs = select ( FIELD_ TIME_ID, FIELD_ DOCUMENT_ID, NUMBER ) . from ( TABLE_POSITIONS ) . leftJoin ( FIELD_ DOCUMENT_ID, TABLE_DOCUMENTS , ID ) . where ( FIELD_ TIME_ID, in ( timeIds . toArray ( ) ) ) . exec ( db ) ;
var rs = select ( TIME_ID , DOCUMENT_ID , NUMBER ) . from ( TABLE_POSITIONS ) . leftJoin ( DOCUMENT_ID , TABLE_DOCUMENTS , ID ) . where ( TIME_ID , in ( timeIds . toArray ( ) ) ) . exec ( db ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
var timeId = rs . getLong ( FIELD_ TIME_ID) ;
var timeId = rs . getLong ( TIME_ID ) ;
var docId = rs . getLong ( FIELD_ DOCUMENT_ID) ;
var docId = rs . getLong ( DOCUMENT_ID ) ;
var number = rs . getString ( NUMBER ) ;
var number = rs . getString ( NUMBER ) ;
map . computeIfAbsent ( timeId , k - > new HashMap < > ( ) ) . put ( docId , number ) ;
map . computeIfAbsent ( timeId , k - > new HashMap < > ( ) ) . put ( docId , number ) ;
}
}
@ -338,9 +341,9 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
var query = Query . select ( ALL ) . from ( TABLE_DOCUMENTS ) . where ( COMPANY_ID , in ( companyIds . toArray ( ) ) ) ;
var query = Query . select ( ALL ) . from ( TABLE_DOCUMENTS ) . where ( COMPANY_ID , in ( companyIds . toArray ( ) ) ) ;
if ( fulltext ) {
if ( fulltext ) {
for ( var key : keys ) query . where ( format ( "CONCAT({0},\" \",{1},\" \",{2},\" \",{3},\" \",{4},\" \",{5},\" \",{6},\" \",{7},\" \",{8},\" \",{9})" , NUMBER , FIELD_ HEAD, FIELD_ FOOTER, SENDER , FIELD_ TAX_NUMBER, FIELD_ BANK_ACCOUNT, FIELD_ CUSTOMER, FIELD_ CUSTOMER_NUMBER, FIELD_ CUSTOMER_TAX_NUMBER, FIELD_ CUSTOMER_EMAIL) , like ( "%" + key + "%" ) ) ;
for ( var key : keys ) query . where ( format ( "CONCAT({0},\" \",{1},\" \",{2},\" \",{3},\" \",{4},\" \",{5},\" \",{6},\" \",{7},\" \",{8},\" \",{9})" , NUMBER , HEAD , FOOTER , SENDER , TAX_NUMBER , BANK_ACCOUNT , CUSTOMER , CUSTOMER_NUMBER , CUSTOMER_TAX_NUMBER , CUSTOMER_EMAIL ) , like ( "%" + key + "%" ) ) ;
} else {
} else {
for ( var key : keys ) query . where ( format ( "CONCAT({0},\" \",{1},\" \",{2},\" \",{3},\" \",{4})" , NUMBER , FIELD_ HEAD, FIELD_ FOOTER, SENDER , FIELD_ CUSTOMER) , like ( "%" + key + "%" ) ) ;
for ( var key : keys ) query . where ( format ( "CONCAT({0},\" \",{1},\" \",{2},\" \",{3},\" \",{4})" , NUMBER , HEAD , FOOTER , SENDER , CUSTOMER ) , like ( "%" + key + "%" ) ) ;
}
}
rs = query . exec ( db ) ;
rs = query . exec ( db ) ;
var map = new HashMap < Long , Document > ( ) ;
var map = new HashMap < Long , Document > ( ) ;
@ -349,10 +352,10 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
if ( fulltext ) {
if ( fulltext ) {
var additionalDocIds = new HashSet < Long > ( ) ;
var additionalDocIds = new HashSet < Long > ( ) ;
query = select ( FIELD_ DOCUMENT_ID) . from ( TABLE_POSITIONS ) . leftJoin ( FIELD_ DOCUMENT_ID, TABLE_DOCUMENTS , ID ) . where ( COMPANY_ID , in ( companyIds . toArray ( ) ) ) ;
query = select ( DOCUMENT_ID ) . from ( TABLE_POSITIONS ) . leftJoin ( DOCUMENT_ID , TABLE_DOCUMENTS , ID ) . where ( COMPANY_ID , in ( companyIds . toArray ( ) ) ) ;
for ( var key : keys ) query . where ( format ( "CONCAT({0},\" \",{1},\" \",{2},\" \",{3})" , FIELD_ ITEM_CODE, UNIT , TITLE , DESCRIPTION ) , like ( "%" + key + "%" ) ) ;
for ( var key : keys ) query . where ( format ( "CONCAT({0},\" \",{1},\" \",{2},\" \",{3})" , ITEM_CODE , UNIT , TITLE , DESCRIPTION ) , like ( "%" + key + "%" ) ) ;
rs = query . exec ( db ) ;
rs = query . exec ( db ) ;
while ( rs . next ( ) ) additionalDocIds . add ( rs . getLong ( FIELD_ DOCUMENT_ID) ) ;
while ( rs . next ( ) ) additionalDocIds . add ( rs . getLong ( DOCUMENT_ID ) ) ;
rs . close ( ) ;
rs . close ( ) ;
additionalDocIds . removeAll ( map . keySet ( ) ) ;
additionalDocIds . removeAll ( map . keySet ( ) ) ;
@ -363,9 +366,9 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
rs . close ( ) ;
rs . close ( ) ;
}
}
rs = Query . select ( ALL ) . from ( TABLE_POSITIONS ) . where ( FIELD_ DOCUMENT_ID, in ( map . keySet ( ) . toArray ( ) ) ) . exec ( db ) ;
rs = Query . select ( ALL ) . from ( TABLE_POSITIONS ) . where ( DOCUMENT_ID , in ( map . keySet ( ) . toArray ( ) ) ) . exec ( db ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
var docId = rs . getLong ( FIELD_ DOCUMENT_ID) ;
var docId = rs . getLong ( DOCUMENT_ID ) ;
var position = toPosition ( rs ) ;
var position = toPosition ( rs ) ;
map . get ( docId ) . positions ( ) . add ( position ) ;
map . get ( docId ) . positions ( ) . add ( position ) ;
position . clean ( ) ;
position . clean ( ) ;
@ -386,14 +389,14 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
while ( rs . next ( ) ) types . put ( rs . getInt ( ID ) , toType ( rs ) ) ;
while ( rs . next ( ) ) types . put ( rs . getInt ( ID ) , toType ( rs ) ) ;
rs . close ( ) ;
rs . close ( ) ;
rs = Query . select ( ALL ) . from ( TABLE_DOCUMENTS ) . where ( FIELD_ COMPANY_ID, equal ( companyId ) ) . exec ( db ) ;
rs = Query . select ( ALL ) . from ( TABLE_DOCUMENTS ) . where ( COMPANY_ID , equal ( companyId ) ) . exec ( db ) ;
var map = new HashMap < Long , Document > ( ) ;
var map = new HashMap < Long , Document > ( ) ;
while ( rs . next ( ) ) map . put ( rs . getLong ( ID ) , toDoc ( rs , types ) ) ;
while ( rs . next ( ) ) map . put ( rs . getLong ( ID ) , toDoc ( rs , types ) ) ;
rs . close ( ) ;
rs . close ( ) ;
rs = Query . select ( ALL ) . from ( TABLE_POSITIONS ) . where ( FIELD_ DOCUMENT_ID, in ( map . keySet ( ) . toArray ( ) ) ) . exec ( db ) ;
rs = Query . select ( ALL ) . from ( TABLE_POSITIONS ) . where ( DOCUMENT_ID , in ( map . keySet ( ) . toArray ( ) ) ) . exec ( db ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
var docId = rs . getLong ( FIELD_ DOCUMENT_ID) ;
var docId = rs . getLong ( DOCUMENT_ID ) ;
var position = toPosition ( rs ) ;
var position = toPosition ( rs ) ;
map . get ( docId ) . positions ( ) . add ( position ) ;
map . get ( docId ) . positions ( ) . add ( position ) ;
position . clean ( ) ;
position . clean ( ) ;
@ -428,14 +431,14 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
while ( rs . next ( ) ) types . put ( rs . getInt ( ID ) , toType ( rs ) ) ;
while ( rs . next ( ) ) types . put ( rs . getInt ( ID ) , toType ( rs ) ) ;
rs . close ( ) ;
rs . close ( ) ;
rs = Query . select ( ALL ) . from ( TABLE_DOCUMENTS ) . leftJoin ( FIELD_ TEMPLATE_ID, TABLE_TEMPLATES , ID ) . where ( TABLE_DOCUMENTS + "." + ID , equal ( docId ) ) . exec ( db ) ;
rs = Query . select ( ALL ) . from ( TABLE_DOCUMENTS ) . leftJoin ( TEMPLATE_ID , TABLE_TEMPLATES , ID ) . where ( TABLE_DOCUMENTS + "." + ID , equal ( docId ) ) . exec ( db ) ;
Document doc = null ;
Document doc = null ;
while ( rs . next ( ) ) doc = toDoc ( rs , types ) ;
while ( rs . next ( ) ) doc = toDoc ( rs , types ) ;
rs . close ( ) ;
rs . close ( ) ;
if ( doc ! = null ) {
if ( doc ! = null ) {
var positions = doc . positions ( ) ;
var positions = doc . positions ( ) ;
rs = Query . select ( ALL ) . from ( TABLE_POSITIONS ) . where ( FIELD_ DOCUMENT_ID, equal ( docId ) ) . exec ( db ) ;
rs = Query . select ( ALL ) . from ( TABLE_POSITIONS ) . where ( DOCUMENT_ID , equal ( docId ) ) . exec ( db ) ;
while ( rs . next ( ) ) {
while ( rs . next ( ) ) {
var position = toPosition ( rs ) ;
var position = toPosition ( rs ) ;
positions . add ( position ) ;
positions . add ( position ) ;
@ -456,7 +459,7 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
var settings = getCompanySettings ( companyId , type ) ;
var settings = getCompanySettings ( companyId , type ) ;
var numbers = new HashSet < String > ( ) ;
var numbers = new HashSet < String > ( ) ;
var rs = select ( NUMBER ) . from ( TABLE_DOCUMENTS ) . where ( FIELD_ COMPANY_ID, equal ( companyId ) ) . exec ( db ) ;
var rs = select ( NUMBER ) . from ( TABLE_DOCUMENTS ) . where ( COMPANY_ID , equal ( companyId ) ) . exec ( db ) ;
while ( rs . next ( ) ) numbers . add ( rs . getString ( NUMBER ) ) ;
while ( rs . next ( ) ) numbers . add ( rs . getString ( NUMBER ) ) ;
rs . close ( ) ;
rs . close ( ) ;
@ -475,7 +478,7 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
var typeId = doc . type ( ) . id ( ) ;
var typeId = doc . type ( ) . id ( ) ;
var customerId = doc . customer ( ) . id ( ) ;
var customerId = doc . customer ( ) . id ( ) ;
try {
try {
replaceInto ( TABLE_CUSTOMER_SETTINGS , FIELD_ COMPANY_ID, FIELD_ DOC_TYPE_ID, FIELD_ CUSTOMER_NUMBER, FIELD_ DEFAULT_HEADER, FIELD_ DEFAULT_FOOTER, FIELD_ DEFAULT_MAIL)
replaceInto ( TABLE_CUSTOMER_SETTINGS , COMPANY_ID , DOC_TYPE_ID , CUSTOMER_NUMBER , DEFAULT_HEADER , DEFAULT_FOOTER , DEFAULT_MAIL )
. values ( companyId , typeId , customerId , settings . header ( ) , settings . footer ( ) , settings . mailText ( ) )
. values ( companyId , typeId , customerId , settings . header ( ) , settings . footer ( ) , settings . mailText ( ) )
. execute ( db ) ;
. execute ( db ) ;
return settings ;
return settings ;
@ -490,7 +493,7 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
var timestamp = doc . date ( ) . atStartOfDay ( UTC ) . toInstant ( ) . getEpochSecond ( ) ;
var timestamp = doc . date ( ) . atStartOfDay ( UTC ) . toInstant ( ) . getEpochSecond ( ) ;
var sender = doc . sender ( ) ;
var sender = doc . sender ( ) ;
var custom = doc . customer ( ) ;
var custom = doc . customer ( ) ;
var stmt = insertInto ( TABLE_DOCUMENTS , FIELD_ TYPE_ID, FIELD_ COMPANY_ID, DATE , FIELD_ DELIVERY_DATE, FIELD_F OOTER , FIELD_ HEAD, NUMBER , STATE , SENDER , FIELD_ TAX_NUMBER, FIELD_ BANK_ACCOUNT, FIELD_ COURT, FIELD_ CUSTOMER, FIELD_ CUSTOMER_EMAIL, FIELD_ CUSTOMER_NUMBER, FIELD_ CUSTOMER_TAX_NUMBER, FIELD_ TEMPLATE_ID, FIELD_ CURRENCY)
var stmt = insertInto ( TABLE_DOCUMENTS , TYPE_ID , COMPANY_ID , DATE , DELIVERY_DATE , FOOTER , HEAD , NUMBER , STATE , SENDER , TAX_NUMBER , BANK_ACCOUNT , COURT , CUSTOMER , CUSTOMER_EMAIL , CUSTOMER_NUMBER , CUSTOMER_TAX_NUMBER , TEMPLATE_ID , CURRENCY )
. values ( doc . type ( ) . id ( ) , doc . companyId ( ) , timestamp , doc . delivery ( ) , doc . footer ( ) , doc . head ( ) , doc . number ( ) , doc . state ( ) . code ( ) , sender . name ( ) , sender . taxNumber ( ) , sender . bankAccount ( ) , sender . court ( ) , custom . name ( ) , custom . email ( ) , custom . id ( ) , custom . taxNumber ( ) , doc . template ( ) . id ( ) , doc . currency ( ) )
. values ( doc . type ( ) . id ( ) , doc . companyId ( ) , timestamp , doc . delivery ( ) , doc . footer ( ) , doc . head ( ) , doc . number ( ) , doc . state ( ) . code ( ) , sender . name ( ) , sender . taxNumber ( ) , sender . bankAccount ( ) , sender . court ( ) , custom . name ( ) , custom . email ( ) , custom . id ( ) , custom . taxNumber ( ) , doc . template ( ) . id ( ) , doc . currency ( ) )
. execute ( db ) ;
. execute ( db ) ;
var rs = stmt . getGeneratedKeys ( ) ;
var rs = stmt . getGeneratedKeys ( ) ;
@ -513,7 +516,7 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
var sender = doc . sender ( ) ;
var sender = doc . sender ( ) ;
var custom = doc . customer ( ) ;
var custom = doc . customer ( ) ;
update ( TABLE_DOCUMENTS )
update ( TABLE_DOCUMENTS )
. set ( DATE , FIELD_ DELIVERY_DATE, FIELD_F OOTER , FIELD_ HEAD, NUMBER , STATE , SENDER , FIELD_ TAX_NUMBER, FIELD_ BANK_ACCOUNT, FIELD_ COURT, FIELD_ CUSTOMER, FIELD_ CUSTOMER_EMAIL, FIELD_ CUSTOMER_NUMBER, FIELD_ CUSTOMER_TAX_NUMBER, FIELD_ TEMPLATE_ID)
. set ( DATE , DELIVERY_DATE , FOOTER , HEAD , NUMBER , STATE , SENDER , TAX_NUMBER , BANK_ACCOUNT , COURT , CUSTOMER , CUSTOMER_EMAIL , CUSTOMER_NUMBER , CUSTOMER_TAX_NUMBER , TEMPLATE_ID )
. where ( ID , equal ( doc . id ( ) ) )
. where ( ID , equal ( doc . id ( ) ) )
. prepare ( db )
. prepare ( db )
. apply ( timestamp , doc . delivery ( ) , doc . footer ( ) , doc . head ( ) , doc . number ( ) , doc . state ( ) . code ( ) , sender . name ( ) , sender . taxNumber ( ) , sender . bankAccount ( ) , sender . court ( ) , custom . name ( ) , custom . email ( ) , custom . id ( ) , custom . taxNumber ( ) , doc . template ( ) . id ( ) )
. apply ( timestamp , doc . delivery ( ) , doc . footer ( ) , doc . head ( ) , doc . number ( ) , doc . state ( ) . code ( ) , sender . name ( ) , sender . taxNumber ( ) , sender . bankAccount ( ) , sender . court ( ) , custom . name ( ) , custom . email ( ) , custom . id ( ) , custom . taxNumber ( ) , doc . template ( ) . id ( ) )
@ -530,7 +533,7 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
var pos = entry . getValue ( ) ;
var pos = entry . getValue ( ) ;
if ( pos . docId ( ) ! = doc . id ( ) ) pos . setDocId ( doc . id ( ) ) ;
if ( pos . docId ( ) ! = doc . id ( ) ) pos . setDocId ( doc . id ( ) ) ;
if ( pos . isNew ( ) ) {
if ( pos . isNew ( ) ) {
insertInto ( TABLE_POSITIONS , FIELD_ DOCUMENT_ID, FIELD_ POS, FIELD_ ITEM_CODE, FIELD_ AMOUNT, DESCRIPTION , TITLE , FIELD_ UNIT, FIELD_ PRICE, FIELD_ TAX, FIELD_ TIME_ID, OPTIONAL )
insertInto ( TABLE_POSITIONS , DOCUMENT_ID , POS , ITEM_CODE , AMOUNT , DESCRIPTION , TITLE , UNIT , PRICE , TAX , TIME_ID , OPTIONAL )
. values ( pos . docId ( ) , pos . num ( ) , pos . itemCode ( ) , pos . amount ( ) , pos . description ( ) , pos . title ( ) , pos . unit ( ) , pos . unitPrice ( ) , pos . tax ( ) , pos . timeId ( ) , pos . optional ( ) )
. values ( pos . docId ( ) , pos . num ( ) , pos . itemCode ( ) , pos . amount ( ) , pos . description ( ) , pos . title ( ) , pos . unit ( ) , pos . unitPrice ( ) , pos . tax ( ) , pos . timeId ( ) , pos . optional ( ) )
. execute ( db )
. execute ( db )
. close ( ) ;
. close ( ) ;
@ -538,12 +541,12 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
}
}
if ( pos . isDirty ( ) ) {
if ( pos . isDirty ( ) ) {
update ( TABLE_POSITIONS )
update ( TABLE_POSITIONS )
. set ( FIELD_ ITEM_CODE, FIELD_ AMOUNT, DESCRIPTION , TITLE , FIELD_ UNIT, FIELD_ PRICE, FIELD_ TAX, FIELD_ TIME_ID, OPTIONAL )
. set ( ITEM_CODE , AMOUNT , DESCRIPTION , TITLE , UNIT , PRICE , TAX , TIME_ID , OPTIONAL )
. where ( FIELD_ DOCUMENT_ID, equal ( doc . id ( ) ) )
. where ( DOCUMENT_ID , equal ( doc . id ( ) ) )
. where ( FIELD_ POS, equal ( pos . num ( ) ) ) . prepare ( db )
. where ( POS , equal ( pos . num ( ) ) ) . prepare ( db )
. apply ( pos . itemCode ( ) , pos . amount ( ) , pos . description ( ) , pos . title ( ) , pos . unit ( ) , pos . unitPrice ( ) , pos . tax ( ) , pos . timeId ( ) , pos . optional ( ) )
. apply ( pos . itemCode ( ) , pos . amount ( ) , pos . description ( ) , pos . title ( ) , pos . unit ( ) , pos . unitPrice ( ) , pos . tax ( ) , pos . timeId ( ) , pos . optional ( ) )
. close ( ) ;
. close ( ) ;
if ( pos . isDirty ( FIELD_ UNIT_PRICE) ) saveCustomerPrice ( doc . companyId ( ) , doc . customer ( ) . id ( ) , pos . itemCode ( ) , pos . unitPrice ( ) ) ;
if ( pos . isDirty ( UNIT_PRICE ) ) saveCustomerPrice ( doc . companyId ( ) , doc . customer ( ) . id ( ) , pos . itemCode ( ) , pos . unitPrice ( ) ) ;
pos . clean ( ) ;
pos . clean ( ) ;
}
}
@ -558,7 +561,7 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
public CustomerSettings save ( long companyId , Type docType , String customerId , CustomerSettings settings ) throws UmbrellaException {
public CustomerSettings save ( long companyId , Type docType , String customerId , CustomerSettings settings ) throws UmbrellaException {
if ( ! settings . isDirty ( ) ) return settings ;
if ( ! settings . isDirty ( ) ) return settings ;
try {
try {
replaceInto ( TABLE_CUSTOMER_SETTINGS , FIELD_ COMPANY_ID, FIELD_ DOC_TYPE_ID, FIELD_ CUSTOMER_NUMBER, FIELD_ DEFAULT_HEADER, FIELD_ DEFAULT_FOOTER, FIELD_ DEFAULT_MAIL)
replaceInto ( TABLE_CUSTOMER_SETTINGS , COMPANY_ID , DOC_TYPE_ID , CUSTOMER_NUMBER , DEFAULT_HEADER , DEFAULT_FOOTER , DEFAULT_MAIL )
. values ( companyId , docType . id ( ) , customerId , settings . header ( ) , settings . footer ( ) , settings . mailText ( ) )
. values ( companyId , docType . id ( ) , customerId , settings . header ( ) , settings . footer ( ) , settings . mailText ( ) )
. execute ( db )
. execute ( db )
. close ( ) ;
. close ( ) ;
@ -570,16 +573,16 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
private void saveCustomerPrice ( long company , String customer , String item , long price ) {
private void saveCustomerPrice ( long company , String customer , String item , long price ) {
try {
try {
var rs = select ( FIELD_ PRICE) . from ( TABLE_PRICES ) . where ( FIELD_ COMPANY_ID, equal ( company ) ) . where ( FIELD_ CUSTOMER_NUMBER, equal ( customer ) ) . where ( FIELD_ ITEM_CODE, equal ( item ) ) . exec ( db ) ;
var rs = select ( PRICE ) . from ( TABLE_PRICES ) . where ( COMPANY_ID , equal ( company ) ) . where ( CUSTOMER_NUMBER , equal ( customer ) ) . where ( ITEM_CODE , equal ( item ) ) . exec ( db ) ;
Long oldPrice = null ;
Long oldPrice = null ;
if ( rs . next ( ) ) oldPrice = rs . getLong ( FIELD_ PRICE) ;
if ( rs . next ( ) ) oldPrice = rs . getLong ( PRICE ) ;
rs . close ( ) ;
rs . close ( ) ;
if ( oldPrice = = null ) {
if ( oldPrice = = null ) {
insertInto ( TABLE_PRICES , FIELD_ COMPANY_ID, FIELD_ CUSTOMER_NUMBER, FIELD_ ITEM_CODE, FIELD_ PRICE) . values ( company , customer , item , price ) . execute ( db ) . close ( ) ;
insertInto ( TABLE_PRICES , COMPANY_ID , CUSTOMER_NUMBER , ITEM_CODE , PRICE ) . values ( company , customer , item , price ) . execute ( db ) . close ( ) ;
} else {
} else {
update ( TABLE_PRICES ) . where ( FIELD_ COMPANY_ID, equal ( company ) ) . where ( FIELD_ CUSTOMER_NUMBER, equal ( customer ) ) . where ( FIELD_ ITEM_CODE, equal ( item ) )
update ( TABLE_PRICES ) . where ( COMPANY_ID , equal ( company ) ) . where ( CUSTOMER_NUMBER , equal ( customer ) ) . where ( ITEM_CODE , equal ( item ) )
. set ( FIELD_ PRICE) . prepare ( db ) . apply ( price ) . close ( ) ;
. set ( PRICE ) . prepare ( db ) . apply ( price ) . close ( ) ;
}
}
} catch ( SQLException e ) {
} catch ( SQLException e ) {
throw new RuntimeException ( e ) ;
throw new RuntimeException ( e ) ;
@ -590,8 +593,8 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
public void step ( CompanySettings settings ) {
public void step ( CompanySettings settings ) {
try {
try {
update ( TABLE_COMPANY_SETTINGS )
update ( TABLE_COMPANY_SETTINGS )
. set ( FIELD_ TYPE_NUMBER)
. set ( TYPE_NUMBER )
. where ( FIELD_ COMPANY_ID, equal ( settings . companyId ( ) ) ) . where ( FIELD_ DOC_TYPE_ID, equal ( settings . typeId ( ) ) )
. where ( COMPANY_ID , equal ( settings . companyId ( ) ) ) . where ( DOC_TYPE_ID , equal ( settings . typeId ( ) ) )
. prepare ( db )
. prepare ( db )
. apply ( settings . typeNumber ( ) + 1 )
. apply ( settings . typeNumber ( ) + 1 )
. close ( ) ;
. close ( ) ;
@ -604,9 +607,9 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
public Pair < Integer > switchPositions ( long docId , Pair < Integer > pair ) throws UmbrellaException {
public Pair < Integer > switchPositions ( long docId , Pair < Integer > pair ) throws UmbrellaException {
try {
try {
db . setAutoCommit ( false ) ;
db . setAutoCommit ( false ) ;
update ( TABLE_POSITIONS ) . set ( FIELD_ POS) . where ( FIELD_ DOCUMENT_ID, equal ( docId ) ) . where ( FIELD_ POS, equal ( pair . left ( ) ) ) . prepare ( db ) . apply ( - pair . right ( ) ) . close ( ) ;
update ( TABLE_POSITIONS ) . set ( POS ) . where ( DOCUMENT_ID , equal ( docId ) ) . where ( POS , equal ( pair . left ( ) ) ) . prepare ( db ) . apply ( - pair . right ( ) ) . close ( ) ;
update ( TABLE_POSITIONS ) . set ( FIELD_ POS) . where ( FIELD_ DOCUMENT_ID, equal ( docId ) ) . where ( FIELD_ POS, equal ( pair . right ( ) ) ) . prepare ( db ) . apply ( pair . left ( ) ) . close ( ) ;
update ( TABLE_POSITIONS ) . set ( POS ) . where ( DOCUMENT_ID , equal ( docId ) ) . where ( POS , equal ( pair . right ( ) ) ) . prepare ( db ) . apply ( pair . left ( ) ) . close ( ) ;
update ( TABLE_POSITIONS ) . set ( FIELD_ POS) . where ( FIELD_ DOCUMENT_ID, equal ( docId ) ) . where ( FIELD_ POS, equal ( - pair . right ( ) ) ) . prepare ( db ) . apply ( pair . right ( ) ) . close ( ) ;
update ( TABLE_POSITIONS ) . set ( POS ) . where ( DOCUMENT_ID , equal ( docId ) ) . where ( POS , equal ( - pair . right ( ) ) ) . prepare ( db ) . apply ( pair . right ( ) ) . close ( ) ;
db . setAutoCommit ( true ) ;
db . setAutoCommit ( true ) ;
} catch ( SQLException e ) {
} catch ( SQLException e ) {
LOG . log ( ERROR , "Failed to switch positions {0} and {1} of document {2}" , pair . left ( ) , pair . right ( ) , docId ) ;
LOG . log ( ERROR , "Failed to switch positions {0} and {1} of document {2}" , pair . left ( ) , pair . right ( ) , docId ) ;
@ -617,26 +620,26 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
private Document toDoc ( ResultSet rs , HashMap < Integer , Type > types ) throws SQLException {
private Document toDoc ( ResultSet rs , HashMap < Integer , Type > types ) throws SQLException {
var id = rs . getLong ( ID ) ;
var id = rs . getLong ( ID ) ;
var typeId = rs . getInt ( FIELD_ TYPE_ID) ;
var typeId = rs . getInt ( TYPE_ID ) ;
var type = types . get ( typeId ) ;
var type = types . get ( typeId ) ;
var company = rs . getLong ( FIELD_ COMPANY_ID) ;
var company = rs . getLong ( COMPANY_ID ) ;
var number = rs . getString ( NUMBER ) ;
var number = rs . getString ( NUMBER ) ;
var timestamp = rs . getLong ( DATE ) ;
var timestamp = rs . getLong ( DATE ) ;
var date = timestamp > 0 ? Instant . ofEpochSecond ( timestamp ) . atOffset ( UTC ) . toLocalDate ( ) : null ;
var date = timestamp > 0 ? Instant . ofEpochSecond ( timestamp ) . atOffset ( UTC ) . toLocalDate ( ) : null ;
var state = rs . getInt ( STATE ) ;
var state = rs . getInt ( STATE ) ;
var delivery = rs . getString ( FIELD_ DELIVERY_DATE) ;
var delivery = rs . getString ( DELIVERY_DATE ) ;
var head = rs . getString ( FIELD_ HEAD) ;
var head = rs . getString ( HEAD ) ;
var footer = rs . getString ( FIELD_F OOTER ) ;
var footer = rs . getString ( FOOTER ) ;
var currency = rs . getString ( FIELD_ CURRENCY) ;
var currency = rs . getString ( CURRENCY ) ;
var senderName = rs . getString ( SENDER ) ;
var senderName = rs . getString ( SENDER ) ;
var taxNumber = rs . getString ( FIELD_ TAX_NUMBER) ;
var taxNumber = rs . getString ( TAX_NUMBER ) ;
var bankAccount = rs . getString ( FIELD_ BANK_ACCOUNT) ;
var bankAccount = rs . getString ( BANK_ACCOUNT ) ;
var court = rs . getString ( FIELD_ COURT) ;
var court = rs . getString ( COURT ) ;
var customerName = rs . getString ( FIELD_ CUSTOMER) ;
var customerName = rs . getString ( CUSTOMER ) ;
var customerId = rs . getString ( FIELD_ CUSTOMER_NUMBER) ;
var customerId = rs . getString ( CUSTOMER_NUMBER ) ;
var customerTaxNumber = rs . getString ( FIELD_ CUSTOMER_TAX_NUMBER) ;
var customerTaxNumber = rs . getString ( CUSTOMER_TAX_NUMBER ) ;
var customerEmail = rs . getString ( FIELD_ CUSTOMER_EMAIL) ;
var customerEmail = rs . getString ( CUSTOMER_EMAIL ) ;
var customer = new Customer ( customerId , customerName , customerEmail , customerTaxNumber , FALLBACK_LANG ) ;
var customer = new Customer ( customerId , customerName , customerEmail , customerTaxNumber , FALLBACK_LANG ) ;
var sender = new Sender ( senderName , bankAccount , taxNumber , court ) ;
var sender = new Sender ( senderName , bankAccount , taxNumber , court ) ;
var template = toTemplate ( rs ) ;
var template = toTemplate ( rs ) ;
@ -645,8 +648,8 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
private Template toTemplate ( ResultSet rs ) throws SQLException {
private Template toTemplate ( ResultSet rs ) throws SQLException {
try {
try {
var id = rs . getLong ( FIELD_ TEMPLATE_ID) ;
var id = rs . getLong ( TEMPLATE_ID ) ;
var company = rs . getLong ( FIELD_ COMPANY_ID) ;
var company = rs . getLong ( COMPANY_ID ) ;
var name = rs . getString ( NAME ) ;
var name = rs . getString ( NAME ) ;
var data = rs . getBytes ( TEMPLATE ) ;
var data = rs . getBytes ( TEMPLATE ) ;
return new Template ( id , company , name , data ) ;
return new Template ( id , company , name , data ) ;
@ -656,20 +659,20 @@ CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) PRIMARY KEY, {2} VARCHAR(255)
}
}
private Position toPosition ( ResultSet rs ) throws SQLException {
private Position toPosition ( ResultSet rs ) throws SQLException {
var num = rs . getInt ( FIELD_ POS) ;
var num = rs . getInt ( POS ) ;
var itemCode = rs . getString ( FIELD_ ITEM_CODE) ;
var itemCode = rs . getString ( ITEM_CODE ) ;
var amount = rs . getDouble ( FIELD_ AMOUNT) ;
var amount = rs . getDouble ( AMOUNT ) ;
var unit = rs . getString ( FIELD_ UNIT) ;
var unit = rs . getString ( UNIT ) ;
var title = rs . getString ( TITLE ) ;
var title = rs . getString ( TITLE ) ;
var description = rs . getString ( DESCRIPTION ) ;
var description = rs . getString ( DESCRIPTION ) ;
var unitPrice = rs . getLong ( FIELD_ PRICE) ;
var unitPrice = rs . getLong ( PRICE ) ;
var tax = rs . getInt ( FIELD_ TAX) ;
var tax = rs . getInt ( TAX ) ;
var timeId = rs . getLong ( FIELD_ TIME_ID) ;
var timeId = rs . getLong ( TIME_ID ) ;
var optional = rs . getBoolean ( OPTIONAL ) ;
var optional = rs . getBoolean ( OPTIONAL ) ;
return new Position ( num , itemCode , amount , unit , title , description , unitPrice , tax , timeId , optional ) ;
return new Position ( num , itemCode , amount , unit , title , description , unitPrice , tax , timeId , optional ) ;
}
}
private Type toType ( ResultSet rs ) throws SQLException {
private Type toType ( ResultSet rs ) throws SQLException {
return new Type ( rs . getInt ( ID ) , rs . getInt ( FIELD_ NEXT_TYPE) , rs . getString ( NAME ) ) ;
return new Type ( rs . getInt ( ID ) , rs . getInt ( NEXT_TYPE ) , rs . getString ( NAME ) ) ;
}
}
}
}