This commit is contained in:
2026-01-09 17:43:55 +00:00
parent 719919641b
commit 2ab11480ce
30 changed files with 869 additions and 817 deletions
+4
View File
@@ -8,3 +8,7 @@ nbactions.xml
docker.sock docker.sock
.DS_Store .DS_Store
.classpath
.project
.factorypath
.settings
@@ -34,191 +34,192 @@ import java.util.regex.Pattern;
@Slf4j @Slf4j
public class StaticSentence extends JDBCSentence { public class StaticSentence extends JDBCSentence {
private ISQLBuilderStatic iSQLBuilder;
private ISQLBuilderStatic iSQLBuilder; /**
*
*/
protected SerializerWrite m_SerWrite = null;
/** /**
* *
*/ */
protected SerializerWrite m_SerWrite = null; protected SerializerRead m_SerRead = null;
/** // Estado
* private Statement statement;
*/
protected SerializerRead m_SerRead = null;
// Estado /**
private Statement statement; * Creates a new instance of StaticSentence
*
* @param s
* @param sentence
* @param serread
* @param serwrite
*/
public StaticSentence(Session s, ISQLBuilderStatic sentence, SerializerWrite serwrite, SerializerRead serread) {
super(s);
iSQLBuilder = sentence;
m_SerWrite = serwrite;
m_SerRead = serread;
statement = null;
}
/** /**
* Creates a new instance of StaticSentence * Creates a new instance of StaticSentence
* *
* @param s * @param s
* @param sentence * @param sentence
* @param serread */
* @param serwrite public StaticSentence(Session s, ISQLBuilderStatic sentence) {
*/ this(s, sentence, null, null);
public StaticSentence(Session s, ISQLBuilderStatic sentence, SerializerWrite serwrite, SerializerRead serread) { }
super(s);
iSQLBuilder = sentence; /**
m_SerWrite = serwrite; * Creates a new instance of StaticSentence
m_SerRead = serread; *
* @param s
* @param sentence
* @param serwrite
*/
public StaticSentence(Session s, ISQLBuilderStatic sentence, SerializerWrite serwrite) {
this(s, sentence, serwrite, null);
}
/**
* Creates a new instance of StaticSentence
*
* @param s
* @param sentence
* @param serread
* @param serwrite
*/
public StaticSentence(Session s, String sentence, SerializerWrite serwrite, SerializerRead serread) {
this(s, new NormalBuilder(sentence), serwrite, serread);
}
/**
* Creates a new instance of StaticSentence
*
* @param s
* @param sentence
* @param serwrite
*/
public StaticSentence(Session s, String sentence, SerializerWrite serwrite) {
this(s, new NormalBuilder(sentence), serwrite, null);
}
/**
* Creates a new instance of StaticSentence
*
* @param s
* @param sentence
*/
public StaticSentence(Session s, String sentence) {
this(s, new NormalBuilder(sentence), null, null);
}
public String fixSqliteDate(String sql) {
try {
if (session.getURL().contains("sqlite") && sql.contains("{ts '")) {
StringBuilder sqliteSQL = new StringBuilder();
Pattern date = Pattern.compile("(?<=ts ).*(?=})");
Matcher matchPattern = date.matcher(sql);
if (matchPattern.find()) {
sqliteSQL.append(sql.replaceAll("\\{.*}", matchPattern.group(0)));
}
return sqliteSQL.toString();
}
} catch (Exception e) {
log.error("Error fixing sql for sqlite {}", e.getMessage());
return sql;
}
return sql;
}
/**
* @param params
* @return
* @throws BasicException
*/
@Override
public DataResultSet openExec(Object params) throws BasicException {
// true -> un resultset
// false -> un updatecount (si -1 entonces se acabo)
closeExec();
try {
// follow this to find the create category bug when importing a product csv
// https://unicenta.atlassian.net/browse/UOCL-317
String sql = iSQLBuilder.getSQL(m_SerWrite, params);
String sentence = fixSqliteDate(sql);
// String sentence = iSQLBuilder.getSQL(m_SerWrite, params);
statement = session.getConnection().createStatement();
log.debug("Executing static SQL: {}", sentence);
if (statement.execute(sentence)) {
return new JDBCDataResultSet(statement.getResultSet(), m_SerRead);
} else {
int iUC = statement.getUpdateCount();
if (iUC < 0) {
return null;
} else {
return new SentenceUpdateResultSet(iUC);
}
}
} catch (SQLException eSQL) {
throw new BasicException(eSQL);
}
}
/**
* @throws BasicException
*/
@Override
public void closeExec() throws BasicException {
if (statement != null) {
try {
statement.close();
} catch (SQLException eSQL) {
throw new BasicException(eSQL);
} finally {
statement = null; statement = null;
}
} }
}
/** /**
* Creates a new instance of StaticSentence * @return
* * @throws BasicException
* @param s */
* @param sentence @Override
*/ public DataResultSet moreResults() throws BasicException {
public StaticSentence(Session s, ISQLBuilderStatic sentence) {
this(s, sentence, null, null);
}
/**
* Creates a new instance of StaticSentence
*
* @param s
* @param sentence
* @param serwrite
*/
public StaticSentence(Session s, ISQLBuilderStatic sentence, SerializerWrite serwrite) {
this(s, sentence, serwrite, null);
}
/**
* Creates a new instance of StaticSentence
*
* @param s
* @param sentence
* @param serread
* @param serwrite
*/
public StaticSentence(Session s, String sentence, SerializerWrite serwrite, SerializerRead serread) {
this(s, new NormalBuilder(sentence), serwrite, serread);
}
/**
* Creates a new instance of StaticSentence
*
* @param s
* @param sentence
* @param serwrite
*/
public StaticSentence(Session s, String sentence, SerializerWrite serwrite) {
this(s, new NormalBuilder(sentence), serwrite, null);
}
/**
* Creates a new instance of StaticSentence
*
* @param s
* @param sentence
*/
public StaticSentence(Session s, String sentence) {
this(s, new NormalBuilder(sentence), null, null);
}
public String fixSqliteDate(String sql) {
try {
if (session.getURL().contains("sqlite") && sql.contains("{ts '")) {
StringBuilder sqliteSQL = new StringBuilder();
Pattern date = Pattern.compile("(?<=ts ).*(?=})");
Matcher matchPattern = date.matcher(sql);
if (matchPattern.find()) {
sqliteSQL.append(sql.replaceAll("\\{.*}", matchPattern.group(0)));
}
return sqliteSQL.toString();
}
try {
if (statement.getMoreResults()) {
// tenemos resultset
return new JDBCDataResultSet(statement.getResultSet(), m_SerRead);
} else {
// tenemos updatecount o si devuelve -1 ya no hay mas
int iUC = statement.getUpdateCount();
if (iUC < 0) {
return null;
} else {
return new SentenceUpdateResultSet(iUC);
} }
catch (Exception e) { }
log.error("Error fixing sql for sqlite {}", e.getMessage()); } catch (SQLException eSQL) {
return sql; throw new BasicException(eSQL);
}
return sql;
}
/**
* @param params
* @return
* @throws BasicException
*/
@Override
public DataResultSet openExec(Object params) throws BasicException {
// true -> un resultset
// false -> un updatecount (si -1 entonces se acabo)
closeExec();
try {
String sentence = fixSqliteDate(iSQLBuilder.getSQL(m_SerWrite, params));
//String sentence = iSQLBuilder.getSQL(m_SerWrite, params);
statement = session.getConnection().createStatement();
log.debug("Executing static SQL: {}", sentence);
if (statement.execute(sentence)) {
return new JDBCDataResultSet(statement.getResultSet(), m_SerRead);
} else {
int iUC = statement.getUpdateCount();
if (iUC < 0) {
return null;
} else {
return new SentenceUpdateResultSet(iUC);
}
}
} catch (SQLException eSQL) {
throw new BasicException(eSQL);
}
}
/**
* @throws BasicException
*/
@Override
public void closeExec() throws BasicException {
if (statement != null) {
try {
statement.close();
} catch (SQLException eSQL) {
throw new BasicException(eSQL);
} finally {
statement = null;
}
}
}
/**
* @return
* @throws BasicException
*/
@Override
public DataResultSet moreResults() throws BasicException {
try {
if (statement.getMoreResults()) {
// tenemos resultset
return new JDBCDataResultSet(statement.getResultSet(), m_SerRead);
} else {
// tenemos updatecount o si devuelve -1 ya no hay mas
int iUC = statement.getUpdateCount();
if (iUC < 0) {
return null;
} else {
return new SentenceUpdateResultSet(iUC);
}
}
} catch (SQLException eSQL) {
throw new BasicException(eSQL);
}
} }
}
} }
@@ -50,10 +50,12 @@ public class DataLogicAdmin extends BeanFactoryDataSingle {
m_tpeople = new TableDefinition(s, m_tpeople = new TableDefinition(s,
"people" "people"
, new String[] {"ID", "NAME", "APPPASSWORD", "ROLE", "VISIBLE", "CARD", "IMAGE"} , new String[] {"ID", "NAME", "APPPASSWORD", "ROLE", "VISIBLE", "CARD", "IMAGE", "TAXID"}
, new String[] {"ID", AppLocal.getIntString("label.peoplename"), AppLocal.getIntString("label.Password"), AppLocal.getIntString("label.role"), AppLocal.getIntString("label.peoplevisible"), AppLocal.getIntString("label.card"), AppLocal.getIntString("label.peopleimage")} , new String[] {"ID", AppLocal.getIntString("label.peoplename"), AppLocal.getIntString("label.Password"),
, new Datas[] {Datas.STRING, Datas.STRING, Datas.STRING, Datas.STRING, Datas.BOOLEAN, Datas.STRING, Datas.IMAGE} AppLocal.getIntString("label.role"), AppLocal.getIntString("label.peoplevisible"),
, new Formats[] {Formats.STRING, Formats.STRING, Formats.STRING, Formats.STRING, Formats.BOOLEAN, Formats.STRING, Formats.NULL} AppLocal.getIntString("label.card"), AppLocal.getIntString("label.peopleimage"), "tax ID"}
, new Datas[] {Datas.STRING, Datas.STRING, Datas.STRING, Datas.STRING, Datas.BOOLEAN, Datas.STRING, Datas.IMAGE, Datas.STRING}
, new Formats[] {Formats.STRING, Formats.STRING, Formats.STRING, Formats.STRING, Formats.BOOLEAN, Formats.STRING, Formats.NULL, Formats.STRING}
, new int[] {0} , new int[] {0}
); );
@@ -139,6 +139,7 @@ public class PeopleView extends JPanel implements EditorRecord {
m_jVisible.setSelected(((Boolean) people[4]).booleanValue()); m_jVisible.setSelected(((Boolean) people[4]).booleanValue());
m_jcard.setText(Formats.STRING.formatValue(people[5])); m_jcard.setText(Formats.STRING.formatValue(people[5]));
m_jImage.setImage((BufferedImage) people[6]); m_jImage.setImage((BufferedImage) people[6]);
taxIdTextField.setText(Formats.STRING.formatValue(people[7]));
m_jName.setEnabled(false); m_jName.setEnabled(false);
m_jRole.setEnabled(false); m_jRole.setEnabled(false);
@@ -163,13 +164,13 @@ public class PeopleView extends JPanel implements EditorRecord {
m_jVisible.setSelected(((Boolean) people[4]).booleanValue()); m_jVisible.setSelected(((Boolean) people[4]).booleanValue());
m_jcard.setText(Formats.STRING.formatValue(people[5])); m_jcard.setText(Formats.STRING.formatValue(people[5]));
m_jImage.setImage((BufferedImage) people[6]); m_jImage.setImage((BufferedImage) people[6]);
taxIdTextField.setText(Formats.STRING.formatValue(people[7]));
if (m_jcard.getText().length() == 16) { if (m_jcard.getText().length() == 16) {
jLblCardID.setText(AppLocal.getIntString("label.ibutton")); jLblCardID.setText(AppLocal.getIntString("label.ibutton"));
} else { } else {
jLblCardID.setText(AppLocal.getIntString("label.card")); jLblCardID.setText(AppLocal.getIntString("label.card"));
} }
System.out.println(m_jcard.getText().length()); // System.out.println(m_jcard.getText().length());
m_jName.setEnabled(true); m_jName.setEnabled(true);
m_jRole.setEnabled(true); m_jRole.setEnabled(true);
@@ -187,7 +188,7 @@ public class PeopleView extends JPanel implements EditorRecord {
*/ */
@Override @Override
public Object createValue() throws BasicException { public Object createValue() throws BasicException {
Object[] people = new Object[7]; Object[] people = new Object[8];
people[0] = m_oId == null ? UUID.randomUUID().toString() : m_oId; people[0] = m_oId == null ? UUID.randomUUID().toString() : m_oId;
people[1] = Formats.STRING.parseValue(m_jName.getText()); people[1] = Formats.STRING.parseValue(m_jName.getText());
people[2] = Formats.STRING.parseValue(m_sPassword); people[2] = Formats.STRING.parseValue(m_sPassword);
@@ -195,6 +196,7 @@ public class PeopleView extends JPanel implements EditorRecord {
people[4] = m_jVisible.isSelected(); people[4] = m_jVisible.isSelected();
people[5] = Formats.STRING.parseValue(m_jcard.getText()); people[5] = Formats.STRING.parseValue(m_jcard.getText());
people[6] = m_jImage.getImage(); people[6] = m_jImage.getImage();
people[7] = Formats.STRING.parseValue(taxIdTextField.getText());
return people; return people;
} }
@@ -70,7 +70,7 @@ public class AppUser {
* @param icon * @param icon
* @param role * @param role
*/ */
public AppUser(String id, String name, String password, String card, String role, Icon icon) { public AppUser(String id, String name, String password, String card, String role, Icon icon, String taxId) {
m_sId = id; m_sId = id;
m_sName = name; m_sName = name;
m_sPassword = password; m_sPassword = password;
@@ -121,7 +121,8 @@ public class DataLogicSystem extends BeanFactoryDataSingle {
dr.getString(3), dr.getString(3),
dr.getString(4), dr.getString(4),
dr.getString(5), dr.getString(5),
new ImageIcon(tnb.getThumbNail(ImageUtils.readImage(dr.getBytes(6))))); new ImageIcon(tnb.getThumbNail(ImageUtils.readImage(dr.getBytes(6)))),
dr.getString(7));
// START OF PRODUCT ************************************************************ // START OF PRODUCT ************************************************************
productIdRead =(DataRead dr) -> ( productIdRead =(DataRead dr) -> (
@@ -208,12 +209,12 @@ public class DataLogicSystem extends BeanFactoryDataSingle {
// END OF CUSTOMER ****************************************************************** // END OF CUSTOMER ******************************************************************
m_peoplevisible = new StaticSentence(s m_peoplevisible = new StaticSentence(s
, "SELECT ID, NAME, APPPASSWORD, CARD, ROLE, IMAGE FROM people WHERE VISIBLE = " + s.DB.TRUE() + " ORDER BY NAME" , "SELECT ID, NAME, APPPASSWORD, CARD, ROLE, IMAGE, TAXID FROM people WHERE VISIBLE = " + s.DB.TRUE() + " ORDER BY NAME"
, null , null
, peopleread); , peopleread);
m_peoplebycard = new PreparedSentence(s m_peoplebycard = new PreparedSentence(s
, "SELECT ID, NAME, APPPASSWORD, CARD, ROLE, IMAGE FROM people WHERE CARD = ? AND VISIBLE = " + s.DB.TRUE() , "SELECT ID, NAME, APPPASSWORD, CARD, ROLE, IMAGE, TAXID FROM people WHERE CARD = ? AND VISIBLE = " + s.DB.TRUE()
, SerializerWriteString.INSTANCE , SerializerWriteString.INSTANCE
, peopleread); , peopleread);
File diff suppressed because it is too large Load Diff
@@ -205,6 +205,7 @@ CREATE TABLE people (
id varchar(255) NOT NULL, id varchar(255) NOT NULL,
name varchar(255) NOT NULL, name varchar(255) NOT NULL,
apppassword varchar(255) default NULL, apppassword varchar(255) default NULL,
taxId varchar(255) default NULL,
card varchar(255) default NULL, card varchar(255) default NULL,
role varchar(255) NOT NULL, role varchar(255) NOT NULL,
visible smallint NOT NULL, visible smallint NOT NULL,
@@ -1 +1,3 @@
ALTER TABLE people ADD COLUMN IF NOT EXISTS taxId VARCHAR(255) AFTER apppassword;
--ALTER TABLE people ADD COLUMN taxId VARCHAR(100);
UPDATE applications SET version = $APP_VERSION{} WHERE id = $APP_ID{}; UPDATE applications SET version = $APP_VERSION{} WHERE id = $APP_ID{};
@@ -271,6 +271,7 @@ CREATE TABLE `people` (
`id` varchar(255) NOT NULL, `id` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL, `name` varchar(255) NOT NULL,
`apppassword` varchar(255) default NULL, `apppassword` varchar(255) default NULL,
`taxId` varchar(255) default NULL,
`card` varchar(255) default NULL, `card` varchar(255) default NULL,
`role` varchar(255) NOT NULL, `role` varchar(255) NOT NULL,
`visible` bit(1) NOT NULL, `visible` bit(1) NOT NULL,
@@ -1,2 +1,3 @@
ALTER TABLE people ADD COLUMN IF NOT EXISTS taxId VARCHAR(255) AFTER apppassword;
UPDATE applications SET version = $APP_VERSION{} WHERE id = $APP_ID{}; UPDATE applications SET version = $APP_VERSION{} WHERE id = $APP_ID{};
COMMIT; COMMIT;
@@ -246,6 +246,7 @@ CREATE TABLE `people` (
`id` varchar(255) NOT NULL, `id` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL, `name` varchar(255) NOT NULL,
`apppassword` varchar(255) default NULL, `apppassword` varchar(255) default NULL,
`taxId` varchar(255) default NULL,
`card` varchar(255) default NULL, `card` varchar(255) default NULL,
`role` varchar(255) NOT NULL, `role` varchar(255) NOT NULL,
`visible` bit(1) NOT NULL, `visible` bit(1) NOT NULL,
@@ -1,62 +1,3 @@
-- CLEAR THE DECKS ALTER TABLE people ADD COLUMN IF NOT EXISTS taxId VARCHAR(255) AFTER apppassword;
DELETE FROM sharedtickets; UPDATE applications SET version = $APP_VERSION{} WHERE id = $APP_ID{};
-- Switch OFF table foreign key relationships
set foreign_key_checks = 0;
-- RECREATE applications table
DROP TABLE `applications`;
CREATE TABLE IF NOT EXISTS `applications` (
`id` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`version` varchar(255) NOT NULL,
`instdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY ( `id` )
) ENGINE = InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT = Compact;
-- SYSTEM
DELETE FROM resources WHERE name = 'script.posapps';
DELETE FROM resources WHERE id = '0';
DELETE FROM resources WHERE id = '00';
INSERT INTO resources(id, name, restype, content) VALUES('00', 'Menu.Root', 0, $FILE{/com/unicenta/pos/templates/Menu.Root.txt});
UPDATE resources SET content = $FILE{/com/unicenta/pos/templates/Ticket.Buttons.xml} WHERE name = 'Ticket.Buttons';
COMMIT;
UPDATE resources SET content = $FILE{/com/unicenta/pos/templates/Printer.Ticket.xml} WHERE name = 'Printer.Ticket';
COMMIT;
UPDATE resources SET content = $FILE{/com/unicenta/pos/templates/Ticket.Close.xml} WHERE name = 'Ticket.Close';
COMMIT;
UPDATE resources SET content = $FILE{/com/unicenta/pos/templates/Cash.Close.xml} WHERE name = 'Cash.Close';
COMMIT;
UPDATE resources SET content = $FILE{/com/unicenta/pos/templates/customer.created.xml} WHERE name = 'Customer.Created';
COMMIT;
UPDATE resources SET content = $FILE{/com/unicenta/pos/templates/customer.deleted.xml} WHERE name = 'Customer.Deleted';
COMMIT;
UPDATE resources SET content = $FILE{/com/unicenta/pos/templates/customer.updated.xml} WHERE name = 'Customer.Updated';
COMMIT;
-- ROLES
DELETE FROM roles WHERE id = '0';
INSERT INTO roles(id, name, permissions) VALUES('0', 'Administrator role', $FILE{/com/unicenta/pos/templates/Role.Administrator.xml} );
DELETE FROM roles WHERE id = '1';
INSERT INTO roles(id, name, permissions) VALUES('1', 'Manager role', $FILE{/com/unicenta/pos/templates/Role.Manager.xml} );
DELETE FROM roles WHERE id = '2';
INSERT INTO roles(id, name, permissions) VALUES('2', 'Employee role', $FILE{/com/unicenta/pos/templates/Role.Employee.xml} );
-- Switch ON table foreign key relationships
set foreign_key_checks = 1;
INSERT INTO applications(id, name, version) VALUES($APP_ID{}, $APP_NAME{}, '5.3.1');
COMMIT; COMMIT;
@@ -1207,3 +1207,4 @@ tooltip.config.db.databaseset1=<html><center>Set the optional secondary DB 2 dat
tooltip.config.db.reset=<html><center>Clear the settings of the main DB 1 Database Server tooltip.config.db.reset=<html><center>Clear the settings of the main DB 1 Database Server
tooltip.config.db.reset1=<html><center>Clear the settings of the optional DB 2 Database Server\t tooltip.config.db.reset1=<html><center>Clear the settings of the optional DB 2 Database Server\t
label.pickupcurrent=Current Pickup Number label.pickupcurrent=Current Pickup Number
label.peopletaxid=Tax ID
@@ -662,3 +662,4 @@ transpayment.slip=Slip
transpayment.voucherin=Note Input transpayment.voucherin=Note Input
transpayment.voucherout=Note Output transpayment.voucherout=Note Output
Visor.Title=uniCenta oPOS Visor.Title=uniCenta oPOS
label.peopletaxid=Tax ID
@@ -542,3 +542,4 @@ label.department=\u0642\u0633\u0645\u060c \u0623\u0642\u0633\u0627\u0645
message.resetpickup=\u0647\u0644 \u062a\u0631\u064a\u062f \u062d\u0642\u0627 \u0623\u0646 \u0625\u0639\u0627\u062f\u0629 \u062a\u0631\u062a\u064a\u0628 \u0639\u062f\u062f \u0628\u064a\u0643 \u0623\u0628 0\u061f message.resetpickup=\u0647\u0644 \u062a\u0631\u064a\u062f \u062d\u0642\u0627 \u0623\u0646 \u0625\u0639\u0627\u062f\u0629 \u062a\u0631\u062a\u064a\u0628 \u0639\u062f\u062f \u0628\u064a\u0643 \u0623\u0628 0\u061f
label.currentstock=\u0645\u062a\u0627\u062d label.currentstock=\u0645\u062a\u0627\u062d
Menu.CSVStockQty=<html>Products<br><b>Scanner Import Menu.CSVStockQty=<html>Products<br><b>Scanner Import
label.peopletaxid=Tax ID
@@ -1008,3 +1008,4 @@ transpayment.ccardrefund=Kort tilbagef\u00f8rsel
transpayment.ticket=Salgskvittering transpayment.ticket=Salgskvittering
transpayment.voucher=Gavekort transpayment.voucher=Gavekort
Visor.Title=uniCenta oPOS Visor.Title=uniCenta oPOS
label.peopletaxid=Tax ID
@@ -902,3 +902,4 @@ transpayment.voucher=Gutschein
transpayment.voucherin=Gutschein Eingabe transpayment.voucherin=Gutschein Eingabe
transpayment.voucherout=Gutschein Ausgabe transpayment.voucherout=Gutschein Ausgabe
Visor.Title=uniCenta oPOS Visor.Title=uniCenta oPOS
label.peopletaxid=Tax ID
@@ -548,3 +548,4 @@ transpayment.ticket=\u0391\u03c0\u03cc\u03b4\u03b5\u03b9\u03be\u03b7
transpayment.voucherin=\u039a\u03bf\u03c5\u03c0\u03cc\u03bd\u03b9 transpayment.voucherin=\u039a\u03bf\u03c5\u03c0\u03cc\u03bd\u03b9
transpayment.voucherout=\u039a\u03bf\u03c5\u03c0\u03cc\u03bd\u03b9 transpayment.voucherout=\u039a\u03bf\u03c5\u03c0\u03cc\u03bd\u03b9
Visor.Title=uniCenta oPOS Visor.Title=uniCenta oPOS
label.peopletaxid=Tax ID
@@ -1116,3 +1116,4 @@ label.override=Use Override?
title.override.enterpin=Enter PIN Number title.override.enterpin=Enter PIN Number
message.override.badpin=<html><center><h4>PIN Number Incorrect message.override.badpin=<html><center><h4>PIN Number Incorrect
Menu.CustomersExport=Customer Export Menu.CustomersExport=Customer Export
label.peopletaxid=Tax ID
@@ -1188,3 +1188,4 @@ message.eolupdate=<html><center><h3>uniCenta oPOS Versi\u00f3n {0} detectada!</h
label.find=Buscar label.find=Buscar
label.create=Crear label.create=Crear
label.cancel=Cancelar label.cancel=Cancelar
label.peopletaxid=ID de impuesto
@@ -484,3 +484,4 @@ transpayment.ccardrefund=Devoluci\u00f3n con tarjeta
transpayment.voucherin=Vales cobrados transpayment.voucherin=Vales cobrados
transpayment.voucherout=Vales emitidos transpayment.voucherout=Vales emitidos
Visor.Title=uniCenta oPOS Visor.Title=uniCenta oPOS
label.peopletaxid=Tax ID
@@ -469,3 +469,5 @@ transpayment.voucherin=Vales cobrados
transpayment.voucherout=Vales emitidos transpayment.voucherout=Vales emitidos
Visor.Title=uniCenta oPOS Visor.Title=uniCenta oPOS
message.eolupdate=<html><center><h3>uniCenta oPOS Versi\u00f3n {0} detectada!</h3><h4>\u00a1Las actualizaciones de la versi\u00f3n est\u00e1n cambiando!</h4> Si su versi\u00f3n es 5.3 o posterior, elija <b>S\u00cd</b> para continuar.<br/><br/> Para versiones anteriores, haga clic en <b>NO</b> para abrir Opciones de configuraci\u00f3n ahora.<br/></br>Lea la Gu\u00eda de transferencia de datos de uniCenta oPOS message.eolupdate=<html><center><h3>uniCenta oPOS Versi\u00f3n {0} detectada!</h3><h4>\u00a1Las actualizaciones de la versi\u00f3n est\u00e1n cambiando!</h4> Si su versi\u00f3n es 5.3 o posterior, elija <b>S\u00cd</b> para continuar.<br/><br/> Para versiones anteriores, haga clic en <b>NO</b> para abrir Opciones de configuraci\u00f3n ahora.<br/></br>Lea la Gu\u00eda de transferencia de datos de uniCenta oPOS
label.peopletaxid=Identificador de taxi
@@ -502,3 +502,4 @@ transpayment.ccardrefund=Kaardimakse tagastus
transpayment.voucherin=Kupongimakse transpayment.voucherin=Kupongimakse
transpayment.voucherout=Kupong v\u00e4lja transpayment.voucherout=Kupong v\u00e4lja
Visor.Title=uniCenta oPOS Visor.Title=uniCenta oPOS
label.peopletaxid=Tax ID
@@ -1083,3 +1083,4 @@ label.add=Ajouter
label.cancel=Annuler label.cancel=Annuler
label.create=Cr\u00e9er label.create=Cr\u00e9er
label.find=Trouver label.find=Trouver
label.peopletaxid=Tax ID
@@ -482,3 +482,4 @@ transpayment.ccardrefund=Povrat kartice
transpayment.voucherin=Bilje\u0161ka - ulaz transpayment.voucherin=Bilje\u0161ka - ulaz
transpayment.voucherout=Bilje\u0161ka - izlaz transpayment.voucherout=Bilje\u0161ka - izlaz
Visor.Title=uniCenta oPOS Visor.Title=uniCenta oPOS
label.peopletaxid=Tax ID
@@ -753,3 +753,4 @@ transpayment.ticket=Fattura
transpayment.voucherin=Nota Ingresso transpayment.voucherin=Nota Ingresso
transpayment.voucherout=Nota Uscita transpayment.voucherout=Nota Uscita
Visor.Title=uniCenta oPOS Visor.Title=uniCenta oPOS
label.peopletaxid=Tax ID
@@ -1175,3 +1175,4 @@ button.setTransfer=SET
message.transfersamedatabase=<html><center><h4>Not able to transfer database into itself message.transfersamedatabase=<html><center><h4>Not able to transfer database into itself
label.configURL=Click this link to see how to create a Database Schema label.configURL=Click this link to see how to create a Database Schema
tooltip.pickupbarcode=Find Pickup ID tooltip.pickupbarcode=Find Pickup ID
label.peopletaxid=Tax ID
@@ -462,3 +462,4 @@ transpayment.ticket=Recibo
transpayment.voucherin=Entrada de nota transpayment.voucherin=Entrada de nota
transpayment.voucherout=Sa\u00edda de nota transpayment.voucherout=Sa\u00edda de nota
Visor.Title=uniCenta oPOS Visor.Title=uniCenta oPOS
label.peopletaxid=Tax ID
@@ -404,3 +404,4 @@ transpayment.ticket=Cupom
transpayment.voucherin=Nota entrada transpayment.voucherin=Nota entrada
transpayment.voucherout=Nota sa\u00edda transpayment.voucherout=Nota sa\u00edda
Visor.Title=uniCenta POS Visor.Title=uniCenta POS
label.peopletaxid=Tax ID