10 using System.Collections.Generic;
14 using System.Threading.Tasks;
26 private const int MaxLockMinutes = 180;
34 DataTable datos =
new DataTable();
35 var lcSql = $
"SELECT EMPRESA, FACTURA, LINEA, FACTU_RECT, FECHA, BASE_IVA, IVA, RECARGO, EJERCICIO, FECHA_OP, ULTFACT " + Environment.NewLine +
36 $
"FROM {SQLDatabase("GESTION
", "D_FACTURECT
")} " +
37 $
"WHERE EMPRESA = {SQLString(empresa)} AND FACTURA = {SQLString(factura)} ";
39 if (!SQLExec(lcSql, ref datos) || datos.Rows.Count == 0) yield
break;
40 foreach (DataRow row
in datos.Rows)
44 Empresa = Convert.ToString(row[
"EMPRESA"]).TrimEnd(),
45 Factura = Convert.ToString(row[
"FACTURA"]).TrimEnd(),
46 Linea = Convert.ToInt32(row[
"LINEA"]),
47 Factu_rect = Convert.ToString(row[
"FACTU_RECT"]).Trim(),
48 Fecha = Convert.ToDateTime(row[
"FECHA"]),
49 Base_iva = Convert.ToDecimal(row[
"BASE_IVA"]),
50 Iva = Convert.ToDecimal(row[
"IVA"]),
51 Recargo = Convert.ToDecimal(row[
"RECARGO"]),
52 Ejercicio = Convert.ToString(row[
"EJERCICIO"]).TrimEnd(),
53 Fecha_op = Convert.ToDateTime(row[
"FECHA_OP"]),
54 Ultfact = Convert.ToBoolean(row[
"ULTFACT"]),
65 DataTable datos =
new DataTable();
66 var lcSql = $
"SELECT EMPRESA, TICKET, LINEA, TICKET_RECT, FECHA, BASE_IVA, IVA, RECARGO, EJERCICIO, LETRA, LETRA_RECT, EJER_RECT " + Environment.NewLine +
67 $
"FROM {SQLDatabase(FACTUCERT._NombreAddOn, "D_TICKERECT
")} " +
68 $
"WHERE EJERCICIO = {SQLString(ejercicio)} AND EMPRESA = {SQLString(empresa)} AND TICKET = {SQLString(ticket)} AND LETRA = {SQLString(letra)} ";
70 if (!SQLExec(lcSql, ref datos) || datos.Rows.Count == 0) yield
break;
71 foreach (DataRow row
in datos.Rows)
75 Empresa = Convert.ToString(row[
"EMPRESA"]).TrimEnd(),
76 Ticket = Convert.ToString(row[
"TICKET"]).TrimEnd(),
77 Linea = Convert.ToInt32(row[
"LINEA"]),
78 Ticket_rect = Convert.ToString(row[
"TICKET_RECT"]).Trim(),
79 Fecha = Convert.ToDateTime(row[
"FECHA"]),
80 Base_iva = Convert.ToDecimal(row[
"BASE_IVA"]),
81 Iva = Convert.ToDecimal(row[
"IVA"]),
82 Recargo = Convert.ToDecimal(row[
"RECARGO"]),
83 Ejercicio = Convert.ToString(row[
"EJERCICIO"]).TrimEnd(),
84 Letra = Convert.ToString(row[
"LETRA"]).TrimEnd(),
85 Letra_rect = Convert.ToString(row[
"LETRA_RECT"]).TrimEnd(),
86 Ejer_rect = Convert.ToString(row[
"EJER_RECT"]).TrimEnd(),
98 var filtroSistema =
"";
99 if(FACTUCERT._FactuCertConfig != null)
101 filtroSistema = $
" AND SISTEMA = {FACTUCERT._FactuCertConfig._Sistema} ";
104 object[] tipoEncadenamiento = GetValoresTabla(
new string[] {
"ENC_DISP" }, FACTUCERT._NombreAddOn,
"CFG_ADDON", $
"EMPRESA = '{EW_GLOBAL._GetVariable("wc_empresa
")}' {filtroSistema}");
105 if (tipoEncadenamiento == null || tipoEncadenamiento.Length != 1)
106 throw new Exception(
"No ha podido leerse correctamente la información del Tipo de Encadenamiento de la tabla de configuración del Addon de Facturación Certificada");
108 return Convert.ToInt32(tipoEncadenamiento[0]);
119 var sistema = FACTUCERT._FactuCertConfig._Sistema;
120 var territorio = GetValoresTabla(
new string[] {
"Territorio" }, FACTUCERT._NombreAddOn,
"CFG_ADDON", $
"EMPRESA = '{codigoEmpresa.TrimEnd()}' AND SISTEMA = {sistema}");
121 if (territorio == null || territorio.Length != 1)
122 throw new Exception(
"No ha podido leerse correctamente la información del Territorio de la tabla de configuración del Addon de Facturación Certificada");
124 return Convert.ToInt32(territorio[0]);
134 var resModidfis = GetValoresTabla(
new string[] {
"Id_Fiscal" },
"GESTION",
"MODIDFIS",
"CUENTA = '" + codigoCliente +
"'");
135 int idFiscal = (resModidfis != null && resModidfis.Length > 0) ? Convert.ToInt32(resModidfis[0]) : 0;
146 var paisCliente = GetValoresTabla(
new string[] {
"Letra" },
"COMUNES",
"PAISES",
"CODIGO = '" + codigoPais +
"'");
147 var siglas = paisCliente[0].ToString().ToUpper().Trim();
175 var maxLinea = GetValoresTabla(
new string[] {
"MAX(LINEA)" }, FACTUCERT._NombreAddOn,
"FCREGCERT",
"EMPRESA = '" + empresa +
"' AND EJERCICIO = " + SQLString(ejercicio) +
" AND LETRA = " + SQLString(serieTicket) +
" AND BORRADOR = " + SQLString(numBorrador, 10,
' ',
true),
true);
176 if (maxLinea == null || maxLinea.Length != 1 || maxLinea[0] == null || maxLinea[0] == DBNull.Value)
179 linea = Convert.ToInt32(maxLinea[0]) + 1;
191 var resNombre2 = GetValoresTabla(
new string[] {
"M_nombre2" },
"GESTION",
"MODCONFI",
"EMPRESA = '" + codigoEmpresa +
"'");
192 if (resNombre2 != null && resNombre2.Length > 0 && Convert.ToInt16(resNombre2[0]) == 1)
207 var res = GetValoresTabla(
new string[] {
"N_SERIE",
"CRTF_NOM",
"CERTXEMP" }, FACTUCERT._NombreAddOn,
"fc_term",
"CODIGO = '" + nombreTerminal +
"'",
true);
209 var numeroDeSerie = res[0].ToString().Trim();
210 var nombreCertificado = res[1].ToString().Trim();
214 bool llCertifPorEmpresa = Convert.ToBoolean(res[2]);
215 if (llCertifPorEmpresa)
219 var res2 = GetValoresTabla(
new string[] {
"CRTF_NOM" }, FACTUCERT._NombreAddOn,
"fc_termemp",
"TERMINAL = '" + nombreTerminal +
"' and EMPRESA='" + codigoEmpresa +
"'",
true);
225 string lcCertifEmpresa = res2[0].ToString().Trim();
226 if (!
string.IsNullOrWhiteSpace(lcCertifEmpresa))
231 nombreCertificado = lcCertifEmpresa;
236 return new string[2] { numeroDeSerie, nombreCertificado };
248 DateTime currentTime = Convert.ToDateTime(DateTime.Now.ToString(
"dd/MM/yyyy HH:mm:ss.fff"));
250 string lcSqlBloquear =
"UPDATE " + SQLDatabase(FACTUCERT._NombreAddOn,
"CFG_ADDON") +
" SET ENVIO = '" + currentTime.ToString(
"dd/MM/yyyy HH:mm:ss.fff") +
"' WHERE EMPRESA = '" + EW_GLOBAL._GetVariable(
"wc_empresa").ToString() +
"' AND SISTEMA = 1";
252 var fechaBloqueoEnvio = GetValoresTabla(
new string[] {
"ENVIO" }, FACTUCERT._NombreAddOn,
"CFG_ADDON",
"EMPRESA = '" + EW_GLOBAL._GetVariable(
"wc_empresa").ToString() +
"' AND SISTEMA = 1",
true);
253 if (fechaBloqueoEnvio == null || fechaBloqueoEnvio.Length != 1)
254 throw new Exception(
"No ha podido leerse correctamente el campo de bloqueo para Envios de Facturación Certificada de la tabla de configuración del Addon");
256 if (fechaBloqueoEnvio[0] != null && fechaBloqueoEnvio[0] != DBNull.Value && (DateTime.Now - Convert.ToDateTime(fechaBloqueoEnvio[0])).TotalMinutes < maxLockMinutes)
259 bool lOk = SQLExec(lcSqlBloquear);
262 throw new Exception(
"No ha podido obtenerse correctamente el bloqueo para Envios de Facturación Certificada de la tabla de configuración del Addon");
265 System.Threading.Thread.Sleep(500);
266 fechaBloqueoEnvio = GetValoresTabla(
new string[] {
"ENVIO" }, FACTUCERT._NombreAddOn,
"CFG_ADDON",
"EMPRESA = '" + EW_GLOBAL._GetVariable(
"wc_empresa").ToString() +
"' AND SISTEMA = 1",
true);
267 if (fechaBloqueoEnvio == null || fechaBloqueoEnvio.Length != 1)
268 throw new Exception(
"No ha podido leerse correctamente el campo de bloqueo para Envios de Facturación Certificada de la tabla de configuración del Addon");
270 if (fechaBloqueoEnvio[0] != null && fechaBloqueoEnvio[0] != DBNull.Value && Math.Abs((Convert.ToDateTime(fechaBloqueoEnvio[0]) - currentTime).TotalMilliseconds) > 2)
282 string lcSql =
"UPDATE " + SQLDatabase(FACTUCERT._NombreAddOn,
"CFG_ADDON") +
" SET ENVIO = NULL WHERE EMPRESA = '" + EW_GLOBAL._GetVariable(
"wc_empresa").ToString() +
"' AND SISTEMA = 1";
284 bool lOk = SQLExec(lcSql);
296 sage.
ew.
db.
DB.Registrar_Traza(basicInfo, extendedInfo);
306 string lcSql =
"INSERT INTO " + SQLDatabase(FACTUCERT._NombreAddOn,
"FCREGCERT") + Environment.NewLine +
307 " (USUARIO, EMPRESA, EJERCICIO, LETRA, NUMERO, BORRADOR, FECHA, TIPO_DOC, LINEA, TIPO, MOTIVO, XMLRESP)" + Environment.NewLine +
308 " VALUES(" + SQLString(registro.
Usuario) +
"," +
309 SQLString(registro.
Empresa) +
"," +
311 SQLString(registro.
Letra) +
"," +
312 SQLString(registro.
Numero, 10,
' ',
true) +
"," +
313 SQLString(registro.
Borrador, 10,
' ',
true) +
"," +
314 SQLString(registro.
Fecha) +
"," +
315 SQLString(registro.
Tipo_doc) +
"," +
316 SQLString(registro.
Linea) +
"," +
317 SQLString(registro.
Tipo) +
"," +
318 SQLString(registro.
Motivo) +
"," +
321 return SQLExec(lcSql);
326 var estadoAnulacion =
", ANULADO = 0 ";
330 var enviada = (estadoEnvio == 2 || estadoEnvio == 3 || estadoEnvio == 4 || estadoEnvio == 5 || estadoEnvio == 6);
331 estadoAnulacion =
", ANULADO = " + (enviada ?
"2" :
"1");
335 string entorno = FunctionsFactuCert._GetEntorno();
336 var entornoEnvio =
", TIPOENVIO = " + Convert.ToString(entorno ==
"PRE" ? Convert.ToInt32(
TipoEnvio.PRE) : Convert.ToInt32(
TipoEnvio.PRO));
341 lcSql =
"UPDATE " + SQLDatabase(FACTUCERT._NombreAddOn,
"FCTICKETS") +
" SET ESTADO = " + estadoEnvio.ToString() + estadoAnulacion + entornoEnvio +
342 " WHERE EMPRESA = '" + EW_GLOBAL._GetVariable(
"wc_empresa").ToString() +
"' AND EJERCICIO = '" + EW_GLOBAL._GetVariable(
"wc_any").ToString().Trim() +
"' AND LETRA = '" + docPendiente.
Letra +
"' AND NUMERO = '" + docPendiente.
Numero +
"'";
346 lcSql =
"UPDATE " + SQLDatabase(FACTUCERT._NombreAddOn,
"FCFACTUVEN") +
" SET ESTADO = " + estadoEnvio.ToString() + estadoAnulacion + entornoEnvio +
347 " WHERE EMPRESA = '" + EW_GLOBAL._GetVariable(
"wc_empresa").ToString() +
"' AND EJERCICIO = '" + EW_GLOBAL._GetVariable(
"wc_any").ToString().Trim() +
"' AND NUMERO = '" + docPendiente.
Numero +
"'";
349 var updateOk =
sage.
ew.
db.
DB.SQLExec(lcSql, out
int filasAfectadas);
350 if (!updateOk || filasAfectadas.Equals(0))
353 Registrar_Error(
new NotSupportedException($
"Actualización elemento procesado fallida: {Environment.NewLine} {lcSql}"));
366 private object[] GetValoresTabla(
string[] fields,
string tableDatabase,
string tableName,
string whereClause,
bool desactivarCacheDB =
false)
368 DataTable ldtable =
new DataTable();
370 string lcSql =
" SELECT ";
371 for (
int i = 0; i < fields.Length; i++)
376 lcSql +=
", " + fields[i];
379 lcSql +=
" FROM " + SQLDatabase(tableDatabase, tableName) + Environment.NewLine;
381 if (!
string.IsNullOrWhiteSpace(whereClause))
382 lcSql +=
" WHERE " + whereClause;
384 bool cacheActivaPreviamente =
true;
385 if (desactivarCacheDB)
387 cacheActivaPreviamente = _UsamosCache();
391 bool llOk = SQLExec(lcSql, ref ldtable);
393 if (desactivarCacheDB && cacheActivaPreviamente)
398 object[] lcRes = null;
399 if (llOk && ldtable != null && ldtable.Rows.Count > 0)
401 lcRes = ldtable.Rows[0].ItemArray;
404 FUNCTIONS._DisposeDatatable(ldtable);
416 DataTable datos =
new DataTable();
417 var lcSql = $
"SELECT EMPRESA, CODIGO, TIPO, PREDET " + Environment.NewLine +
418 $
"FROM {SQLDatabase(FACTUCERT._NombreAddOn, "VERIFAUTOR
")} " +
419 $
"WHERE EMPRESA = {SQLString(codigoEmpresa)} AND PREDET = 1 ";
421 if (SQLExec(lcSql, ref datos) && datos.Rows.Count > 0)
426 Codigo = Convert.ToString(datos.Rows[0][
"CODIGO"]).TrimEnd(),
427 Tipo = Convert.ToInt32(datos.Rows[0][
"TIPO"]),
428 Predet = Convert.ToBoolean(datos.Rows[0][
"PREDET"]),
442 DataTable datos =
new DataTable();
443 var lcSql = $
"SELECT a.EMPRESA, a.NOMBRE, a.APELLIDO, a.NIF, b.GUID_ID " + Environment.NewLine +
444 $
"FROM {SQLDatabase("GESTION
", "MODCONFI
")} a INNER JOIN {SQLDatabase("GESTION
","EMPRESA
")} b ON a.EMPRESA = b.CODIGO " +
445 $
"WHERE a.EMPRESA = {SQLString(codigoEmpresa)} ";
447 if (SQLExec(lcSql, ref datos) && datos.Rows.Count > 0)
452 Nombre = Convert.ToString(datos.Rows[0][
"NOMBRE"]).TrimEnd(),
453 Apellido = Convert.ToString(datos.Rows[0][
"APELLIDO"]).TrimEnd(),
454 Nif = Convert.ToString(datos.Rows[0][
"NIF"]).TrimEnd(),
455 Guid_id = Convert.ToString(datos.Rows[0][
"GUID_ID"]).TrimEnd(),
470 DataTable datos =
new DataTable();
471 var lcSql = $
"SELECT EMPRESA, NUMERO, OPERACION, RETPORCEN, SIITERCERO, TBTERCERO, SIIFRAMOD, SIINUMDER, SIINUMINI, SIINUMFIN " + Environment.NewLine +
472 $
"FROM {SQLDatabase("GESTION
", "C_FACTUVEN
")} " +
473 $
"WHERE EMPRESA = {SQLString(codigoEmpresa)} AND NUMERO = {SQLString(numfra)} ";
475 if (SQLExec(lcSql, ref datos) && datos.Rows.Count > 0)
480 Numero = Convert.ToString(datos.Rows[0][
"NUMERO"]).TrimEnd(),
481 Operacion = Convert.ToInt32(datos.Rows[0][
"OPERACION"]),
482 Retporcen = Convert.ToDecimal(datos.Rows[0][
"RETPORCEN"]),
483 Siitercero = Convert.ToBoolean(datos.Rows[0][
"SIITERCERO"]),
484 Tbtercero = Convert.ToInt32(datos.Rows[0][
"TBTERCERO"]),
485 Siiframod = Convert.ToString(datos.Rows[0][
"SIIFRAMOD"]).TrimEnd(),
486 Siinumder = Convert.ToString(datos.Rows[0][
"SIINUMDER"]).TrimEnd(),
487 Siinumini = Convert.ToString(datos.Rows[0][
"SIINUMINI"]).TrimEnd(),
488 Siinumfin = Convert.ToString(datos.Rows[0][
"SIINUMFIN"]).TrimEnd(),
504 DataTable datos =
new DataTable();
505 var lcSql = $
"SELECT * " + Environment.NewLine +
506 $
"FROM {SQLDatabase("FACTUCERT
", "FCFACTUVEN
")} " +
507 $
"WHERE EMPRESA = {SQLString(codigoEmpresa)} AND NUMERO = {SQLString(numfra)} AND EJERCICIO = {SQLString(ejercicio)} ";
509 if (SQLExec(lcSql, ref datos) && datos.Rows.Count > 0)
513 Usuario = Convert.ToString(datos.Rows[0][
"USUARIO"]).TrimEnd(),
515 Ejercicio = Convert.ToString(datos.Rows[0][
"EJERCICIO"]).TrimEnd(),
516 Numero = Convert.ToString(datos.Rows[0][
"NUMERO"]).TrimEnd(),
517 Borrador = Convert.ToString(datos.Rows[0][
"BORRADOR"]).TrimEnd(),
518 Sistema = Convert.ToInt32(datos.Rows[0][
"SISTEMA"]),
519 Territorio = Convert.ToInt32(datos.Rows[0][
"TERRITORIO"]),
520 Tipo_cert = Convert.ToInt32(datos.Rows[0][
"TIPO_CERT"]),
521 Tbai = Convert.ToString(datos.Rows[0][
"TBAI"]).TrimEnd(),
522 QR_Tbai = Convert.ToString(datos.Rows[0][
"QR_TBAI"]).TrimEnd(),
523 Firma = Convert.ToString(datos.Rows[0][
"FIRMA"]).TrimEnd(),
524 Huella = Convert.ToString(datos.Rows[0][
"HUELLA"]).TrimEnd(),
525 Estado = Convert.ToInt32(datos.Rows[0][
"ESTADO"]),
526 Huella_ant = Convert.ToString(datos.Rows[0][
"HUELLA_ANT"]).TrimEnd(),
527 Hora = Convert.ToDateTime(datos.Rows[0][
"HORA"]),
528 N_serie = Convert.ToString(datos.Rows[0][
"N_SERIE"]).TrimEnd(),
529 Modtipenv = Convert.ToInt32(datos.Rows[0][
"MODTIPENV"]),
530 Modestado = Convert.ToInt32(datos.Rows[0][
"MODESTADO"]),
531 Modautoriz = Convert.ToString(datos.Rows[0][
"MODAUTORIZ"]).TrimEnd(),
532 Modperiod = Convert.ToString(datos.Rows[0][
"MODPERIOD"]).TrimEnd(),
533 Modiae = Convert.ToString(datos.Rows[0][
"MODIAE"]).TrimEnd(),
534 Anulado = Convert.ToInt32(datos.Rows[0][
"ANULADO"]),
535 Tipoenvio = Convert.ToInt32(datos.Rows[0][
"TIPOENVIO"]),
536 Totaldoc = Convert.ToDecimal(datos.Rows[0][
"TOTALDOC"]),
537 Ter_no_env = Convert.ToBoolean(datos.Rows[0][
"TER_NO_ENV"]),
538 Cliente = Convert.ToString(datos.Rows[0][
"CLIENTE"]).TrimEnd(),
539 Fecha_fac = Convert.ToDateTime(datos.Rows[0][
"FECHA_FAC"]),
540 Base = Convert.ToDecimal(datos.Rows[0][
"BASE"]),
541 Husohora = Convert.ToString(datos.Rows[0][
"HUSOHORA"]).TrimEnd(),
542 QR_verifac = Convert.ToString(datos.Rows[0][
"QR_VERIFAC"]).TrimEnd(),
543 Terminal = Convert.ToString(datos.Rows[0][
"TERMINAL"]).TrimEnd(),
561 if (SQLExisteTabla(
"FACTUCERT",
"MODOCERT") ==
false)
564 DataTable datos =
new DataTable();
565 var lcSql = $
"SELECT * " + Environment.NewLine +
566 $
"FROM {SQLDatabase("FACTUCERT
", "MODOCERT
")} " +
567 $
"WHERE EMPRESA = {SQLString(codigoEmpresa)} AND NUMERO = {SQLString(numfra)} AND EJERCICIO = {SQLString(ejercicio)} ";
569 if (SQLExec(lcSql, ref datos) && datos.Rows.Count > 0)
573 Usuario = Convert.ToString(datos.Rows[0][
"USUARIO"]).TrimEnd(),
575 Ejercicio = Convert.ToString(datos.Rows[0][
"EJERCICIO"]).TrimEnd(),
576 Numero = Convert.ToString(datos.Rows[0][
"NUMERO"]).TrimEnd(),
577 Modanula = Convert.ToBoolean(datos.Rows[0][
"MODANULA"]),
578 Modificado = Convert.ToInt32(datos.Rows[0][
"MODIFICADO"]),
579 Fecha = Convert.ToDateTime(datos.Rows[0][
"FECHA"]),
580 Cliente = Convert.ToString(datos.Rows[0][
"CLIENTE"]).TrimEnd(),
581 Nombre_cli = Convert.ToString(datos.Rows[0][
"NOMBRE_CLI"]).TrimEnd(),
582 Divisa = Convert.ToString(datos.Rows[0][
"DIVISA"]).TrimEnd(),
583 Totaldoc = Convert.ToDecimal(datos.Rows[0][
"TOTALDOC"]),
584 Totaldiv = Convert.ToDecimal(datos.Rows[0][
"TOTALDIV"]),
585 Detalle = Convert.ToString(datos.Rows[0][
"DETALLE"]).TrimEnd(),
586 Portes = Convert.ToString(datos.Rows[0][
"PORTES"]).TrimEnd(),
587 Sistema = Convert.ToInt32(datos.Rows[0][
"SISTEMA"]),
588 Territorio = Convert.ToInt32(datos.Rows[0][
"TERRITORIO"]),
589 Tipo_cert = Convert.ToInt32(datos.Rows[0][
"TIPO_CERT"]),
590 Firma = Convert.ToString(datos.Rows[0][
"FIRMA"]).TrimEnd(),
591 Huella = Convert.ToString(datos.Rows[0][
"HUELLA"]).TrimEnd(),
592 Estado = Convert.ToInt32(datos.Rows[0][
"ESTADO"]),
593 Huella_ant = Convert.ToString(datos.Rows[0][
"HUELLA_ANT"]).TrimEnd(),
594 Hora = Convert.ToDateTime(datos.Rows[0][
"HORA"]),
595 HusoHora = Convert.ToString(datos.Rows[0][
"HUSOHORA"]).TrimEnd(),
596 Idfcfactu = Convert.ToString(datos.Rows[0][
"IDFCFACTU"]).TrimEnd(),
597 Siiframod = Convert.ToString(datos.Rows[0][
"SIIFRAMOD"]).TrimEnd(),
598 Siinumder = Convert.ToString(datos.Rows[0][
"SIINUMDER"]).TrimEnd(),
599 Operacion = Convert.ToInt32(datos.Rows[0][
"OPERACION"]),
600 Datosadici = Convert.ToString(datos.Rows[0][
"DATOSADICI"]).TrimEnd(),
601 QR_verifac = Convert.ToString(datos.Rows[0][
"QR_VERIFAC"]).TrimEnd(),
602 Terminal = Convert.ToString(datos.Rows[0][
"TERMINAL"]).TrimEnd(),
603 Tipoenvio = Convert.ToInt32(datos.Rows[0][
"TIPOENVIO"]),
604 Datosmod = Convert.ToString(datos.Rows[0][
"DATOSMOD"]).TrimEnd(),
Estructura para representar un registro de FCREGCERT
DTO de la tabla GESTION.C_FACTUVEN
VerifautorDTO ObtenerCodigoVerificacionAutor(string codigoEmpresa)
Obtiene los datos de verificacion de autor
Classe empresa basada en sage.ew.ewmante
string Numero
Campo número
Este es el espacio de nombres de su módulo. Puede encontrar más información y ayuda en el fichero rea...
bool ReleaseDBLock()
Free the locking mechanism
string Letra
Por defecto en blanco (va incluida en Numero)
DTO de la tabla FACTUCERT.FCFACTUVEN
bool EsAnulacion
True si es una anulación
RegistroFactuvenDTO ObtenerRegistroFactuven(string codigoEmpresa, string numfra)
Obtiene los datos de la factura de la tabla GESTION.C_FACTUVEN
IEnumerable< DetalleFacturaRectificativaDTO > ObtenerDatosFacturasRectificadas(string ejercicio, string empresa, string factura)
Obtiene la colección de detalles de facturas rectificadas
Clase DTO para representar datos de facturas rectificativas
bool ObtainDBLock(int maxLockMinutes=MaxLockMinutes)
Check and try to get a lock for the Sending process
DTO de la tabla GESTION.MODCONFI
Clase Auxiliar para almacenar datos de un envio pendiente
string ObternerLetraPais(string codigoPais)
Obtiene las letras asociadas a un código de país
RegistroFcfactuvenDTO ObtenerRegistroFcfactuven(string codigoEmpresa, string numfra, string ejercicio)
Obtiene los datos de la factura de la tabla FACTUCERT.FCFACTUVEN
Clase DTO para representar datos de facturas rectificativas
string [] ObtenerDatosCertificado(string nombreTerminal, string codigoEmpresa)
Recupera los datos de certificado
Clase DTO para representar registros de la tabla FACTUCERT.VERIFAUTOR
Clase de acceso a datos de la certificación
DTO de la tabla FACTUCERT.MODOCERT
ModconfiDTO ObtenerDatosModconfi(string codigoEmpresa)
Obtiene los datos de configuracion de modelos
void RegistrarTraza(string basicInfo, string extendedInfo)
Traces for debugging
TipoEnvio
Entorno de envío PRE/PRO
int ObternerTipoIdFiscal(string codigoCliente)
Obtiene el tipo de identificador fiscal de un cliente
RegistroModocertDTO ObtenerRegistroModocert(string codigoEmpresa, string numfra, string ejercicio)
Obtiene los datos de la factura de la tabla FACTUCERT.MODOCERT
bool UserRazonComercial(string codigoEmpresa)
Consulta la configuración y determina si hay que informar con Nombre o Nombre2
bool EsTicket
True si es un Ticket
void ActualizarEstadoEnvioDocumentoGestion(EnvioPendiente docPendiente, int estadoEnvio)
Actualiza el estado del envio
Clase base de acceso a datos
int ObtenerTipoEncadenamiento()
Obtiene el tipo de encadenamiento
Interficie de acceso a datos para la certificación
int ObternerMaxLineaFcregcert(string empresa, string ejercicio, string serieTicket, string numBorrador)
Obtiene el numero de linea máximo de la BBDD
Clase base para el módulo FactuCert
IEnumerable< DetalleTicketRectificativoDTO > ObtenerDatosTicketsRectificados(string ejercicio, string empresa, string ticket, string letra)
Obtiene la colección de detalles de tickets rectificados
bool InsertarRegistroFcregcert(FcregcertDTO registro)
Inserta un registro nuevo en FCREGCERT con los datos recibidos por DTO
int ObtenerTerritorio(string codigoEmpresa)
Obtiene el territorio para la empresa recibida por parámetro de la configuración del Addon ...
Clase estática de acceso a Base de Datos