19 using System.Collections.Generic;
24 using System.Threading.Tasks;
25 using System.Windows.Forms;
30 internal class OfflineDownloader : OfflineUpAndDown
32 internal static string _tablaOld {
get;
set; } =
string.Empty;
33 internal static string _ejercicioActual {
get;
set; } =
string.Empty;
34 internal static string _ejercicioNew {
get;
set; } =
string.Empty;
36 internal static DataTable _dtStockLotesOffline =
new DataTable();
37 internal static OfflineInfoConfig ficheroInfoConfig = null;
39 internal static bool conCargaInicial =
false;
40 internal static bool conDatosStock =
false;
42 internal static bool Download_Control_Files(
int idConf,
string tcSucursal)
44 _cIdLog = _offlineConfig.GenerarRandomId();
49 internal static DataTable Download_Control_Files_And_Get_Sucursales(
int tnIdConf,
string tcSucursal)
54 OfflineDatosComunicaciones datos =
new OfflineDatosComunicaciones();
56 _Mostrar_Progreso_Async -= OfflineDownloader__Mostrar_Progreso_Async;
57 _Porcen_Progreso_Async -= OfflineDownloader__Porcen_Progreso_Async;
59 _Mostrar_Progreso_Async += OfflineDownloader__Mostrar_Progreso_Async;
60 _Porcen_Progreso_Async += OfflineDownloader__Porcen_Progreso_Async;
62 if (
string.IsNullOrWhiteSpace(_cIdLog))
64 _cIdLog = _offlineConfig.GenerarRandomId();
67 ComprobacionesPrevias(tnIdConf);
69 datos._Log_ComoffID = _cIdLog;
70 datos._IdConf = tnIdConf;
71 datos._MultConf = DB.SQLValor(
"MULTCONF",
"IDCONF", tnIdConf.ToString(),
"CODIGO",
"OFFLINE").ToString();
72 datos._Usuario = EW_GLOBAL._GetVariable(
"wc_usuario").ToString();
73 datos._BdOffline = clsOfflineUtils.ObtenerNombreBdReal(
"OFFLINE");
74 datos._Sucursal = tcSucursal;
75 datos._PathFolderInicial = TempFolderName;
76 datos._IniServidor = DB._GetVariable(
"wc_iniservidor").ToString().ToLower();
77 datos._EnvioArticulos = _offlineConfig.GetValorVariable(
EnumVariables.ENVIOARTICULOS) ==
".T.";
79 InicializarBarraProgreso();
81 _TextStepDetalle =
"Recibiendo fichero sucuralm.xml";
82 _TextStepProgreso = _TextStepDetalle;
83 _PorcenProgreso = IncrementarBarraProgreso();
85 DataTable tableDatos = GetTablaOffline(
"OFFLINE",
"SUCURALM", _formatoExportacionPredeterminado, datos, logRepository);
86 InsertarTablaBaseDatosBulk(tableDatos,
"OFFLINE",
"SUCURALM",
false,
true);
88 _TextStepDetalle =
"Recibiendo fichero sucurlet.xml";
89 _TextStepProgreso = _TextStepDetalle;
90 _PorcenProgreso = IncrementarBarraProgreso();
91 tableDatos = GetTablaOffline(
"OFFLINE",
"SUCURLET", _formatoExportacionPredeterminado, datos, logRepository);
92 InsertarTablaBaseDatosBulk(tableDatos,
"OFFLINE",
"SUCURLET",
false,
true);
94 _TextStepDetalle =
"Recibiendo fichero sucurcaja.xml";
95 _TextStepProgreso = _TextStepDetalle;
96 _PorcenProgreso = IncrementarBarraProgreso();
97 tableDatos = GetTablaOffline(
"OFFLINE",
"SUCURCAJA", _formatoExportacionPredeterminado, datos, logRepository);
98 InsertarTablaBaseDatosBulk(tableDatos,
"OFFLINE",
"SUCURCAJA",
false,
true);
100 _TextStepDetalle =
"Recibiendo fichero sucursales.xml";
101 _TextStepProgreso = _TextStepDetalle;
102 _PorcenProgreso = IncrementarBarraProgreso();
103 tableDatos = GetTablaOffline(
"OFFLINE",
"SUCURSALES", _formatoExportacionPredeterminado, datos, logRepository);
104 InsertarTablaBaseDatosBulk(tableDatos,
"OFFLINE",
"SUCURSALES",
false,
true);
106 RecibirOfflineVariables(datos, logRepository);
109 offlineUnitOfWork.Dispose();
111 _Mostrar_Progreso_Async -= OfflineDownloader__Mostrar_Progreso_Async;
112 _Porcen_Progreso_Async -= OfflineDownloader__Porcen_Progreso_Async;
117 private static void RecibirOfflineVariables(OfflineDatosComunicaciones datos,
ILog_comoffRepository logRepository)
119 DataTable tableDatos =
new DataTable();
120 _TextStepDetalle =
"Recibiendo fichero variables.xml";
121 _TextStepProgreso = _TextStepDetalle;
122 _PorcenProgreso = IncrementarBarraProgreso();
124 tableDatos = GetTablaOffline(
"OFFLINE",
"VARIABLES", _formatoExportacionPredeterminado, datos, logRepository);
126 if (tableDatos != null & tableDatos.Rows.Count > 0)
128 foreach (DataRow item
in tableDatos.Rows)
130 switch (item.Field<
string>(
"VARIABLE").Trim())
134 _offlineConfig.InsertOrUpdateVariable(
EnumVariables.ULTIMOLOG, item.Field<
string>(
"VALOR").Trim(),
"C");
138 datos._UltimoLog = Convert.ToInt32(item.Field<
string>(
"VALOR").Trim());
142 datos._UltimoLog = 6;
152 private static void OfflineDownloader__Mostrar_Progreso_Async(
string message)
156 _offBase._TextStepDetalle = message;
158 catch (Exception) { }
161 private static void OfflineDownloader__Porcen_Progreso_Async(decimal porcen,
string message)
165 if (_offBase != null)
167 _offBase._TextStepProgreso = message;
168 _offBase._PorcenProgreso = porcen;
171 catch (Exception) { }
200 internal static bool Download_Offline_Files(clsOfflineUtils.ReportProgress progressReporter, DateTime tdFechaMin, DateTime tdFechaMax,
string tcSucursal,
bool tlImagenes,
bool tlAnterior,
bool isCentral,
int idConf,
bool tlInicial =
false, Dictionary<int, bool> prioridades = null)
202 _Mostrar_Progreso_Async -= OfflineDownloader__Mostrar_Progreso_Async;
203 _Porcen_Progreso_Async -= OfflineDownloader__Porcen_Progreso_Async;
205 _Mostrar_Progreso_Async += OfflineDownloader__Mostrar_Progreso_Async;
206 _Porcen_Progreso_Async += OfflineDownloader__Porcen_Progreso_Async;
208 _cTempFolderName =
string.Empty;
210 if (!Directory.Exists(TempFolderName))
212 Directory.CreateDirectory(TempFolderName);
215 bool llOk = Recibir_Datos(tcSucursal, tlImagenes, tdFechaMin, tdFechaMax, isCentral, idConf, prioridades);
217 _Mostrar_Progreso_Async -= OfflineDownloader__Mostrar_Progreso_Async;
218 _Porcen_Progreso_Async -= OfflineDownloader__Porcen_Progreso_Async;
224 private static bool Recibir_Datos(
string tcSucursal,
bool tlImagenes, DateTime tdFechaMin, DateTime tdFechaMax,
bool isCentral,
int idConf, Dictionary<int, bool> prioridades = null)
229 _tablaOld =
string.Empty;
230 ReestablecerInfoConfig();
234 string lcTipoRecepcion =
string.Empty;
236 OfflineDatosComunicaciones datos = EstablecerConfiguracion(tcSucursal, tdFechaMin, tdFechaMax, isCentral, idConf, logRepository);
238 List<string> laFiles = DescargarListaFicheros(tcSucursal, isCentral, idConf);
240 if (laFiles.Count == 0)
245 logDto.
Detalle =
"No existen ficheros de datos en la carpeta de FTP o OneDrive de la sucursal " + tcSucursal +
246 " - " + DB.SQLValor(
"SUCURSALES",
"CODIGO", tcSucursal,
"NOMBRE",
"OFFLINE").ToString().TrimEnd() +
", por lo que no se realizará ninguna recepción de datos de dicha sucursal.";
247 logRepository.Insert(logDto);
249 _TextStepDetalle =
"No existen ficheros de datos en la carpeta de FTP o OneDrive de la sucursal " + tcSucursal;
254 EnvioEmailNotificacion(
"", datos, logRepository);
257 offlineUnitOfWork.Dispose();
266 foreach (
string item
in laFiles)
268 lcTipoRecepcion = clsOfflineUtils.ObtenerTipoFichero(Path.GetFileNameWithoutExtension(item));
272 conCargaInicial = conCargaInicial || lcTipoRecepcion ==
"i";
274 if (GetFicheroZip(item, datos))
279 logDto.
Detalle =
"Iniciando proceso de rececepción del fichero de " +
280 (lcTipoRecepcion ==
"i" ?
"Carga inicial" :
"Envío de datos") +
281 ", con fecha " + clsOfflineUtils.ObtenerFechaFicheroDatos(item) +
", fichero " + item +
".";
282 logRepository.Insert(logDto);
285 lnValor = Validaciones_Previas(datos, logRepository);
292 EnvioEmailNotificacion(item, datos, logRepository);
299 offlineUnitOfWork.Dispose();
310 SaveBackup(item, datos, logRepository);
312 if (lcTipoRecepcion ==
"i")
314 RecibirOfflineVariables(datos, logRepository);
318 VaciarUltimoLog(datos, logRepository);
320 if (_ejercicioNew != _ejercicioActual)
323 FUNCTIONS.CambiarEjercicio(_ejercicioActual, _ejercicioNew);
327 Tratamiento_Deletenet(datos, logRepository);
330 if (datos._IsCentral)
332 Actualizar_Datos_Servidor(datos, logRepository);
336 Actualizar_Datos_Sucursales(datos, logRepository);
340 EjecutarProcesoRecepcion(datos, lcTipoRecepcion, logRepository);
342 if (_ejercicioNew != _ejercicioActual)
345 FUNCTIONS.CambiarEjercicio(_ejercicioNew, _ejercicioActual);
349 Actualizar_Fecha_Recepcion_Multiconf(datos);
352 Actualizar_Fecha_Recepcion_Sucursales(datos, lcTipoRecepcion, logRepository);
355 if (lcTipoRecepcion ==
"i")
357 _offlineConfig.InsertOrUpdateVariable(
EnumVariables.HORA_CARGAINI, Convert.ToString(DateTime.Now),
"D");
363 EnvioEmailNotificacion(item, datos, logRepository);
366 DeleteFicheroZip(item, datos);
369 Eliminar_Carpetas_Temporales(datos, logRepository);
372 EliminarDataBaseTemporal();
377 EjecutarRecalculoRiesgoCliente(datos);
379 offlineUnitOfWork.Dispose();
381 EW_GLOBAL._Empresa = null;
382 if (
string.IsNullOrWhiteSpace(_cCaja))
397 private static void EjecutarRecalculoRiesgoCliente(OfflineDatosComunicaciones datos)
400 if (!datos._IsCentral)
405 DataTable ldtActRiesgo =
new DataTable();
406 DB.SQLExec(
"SELECT DISTINCT EMPRESA, CODIGO FROM " + DB.SQLDatabase(
"OFFLINE",
"ACTRIESGO"), ref ldtActRiesgo);
408 if (ldtActRiesgo != null && ldtActRiesgo.Rows.Count > 0)
410 _TextStepDetalle =
"Recalculando riesgo de clientes";
411 _TextStepProgreso = _TextStepDetalle;
412 _PorcenProgreso = IncrementarBarraProgreso();
414 ew.cliente.Clases.clsLimiteCredito clsLimite =
new ew.cliente.Clases.clsLimiteCredito();
416 foreach (DataRow item
in ldtActRiesgo.Rows)
418 clsLimite._RecalcularRiesgoClienteOffline(item[
"empresa"].ToString(), item[
"codigo"].ToString());
425 DB.SQLExec(
"DELETE FROM " + DB.SQLDatabase(
"OFFLINE",
"ACTRIESGO"));
428 private static List<string> DescargarListaFicheros(
string tcSucursal,
bool isCentral,
int tnIdConf)
430 List<string> laFilesFolder = UploadManager.GetListFiles(
"SUCURNET" + tcSucursal, tnIdConf);
431 List<string> laFiles =
new List<string>();
433 string lcTipoRecepcion =
string.Empty;
436 for (
int i = 0; i < laFilesFolder.Count; i++)
438 if (laFilesFolder[i].Contains(
".zip"))
440 lcTipoRecepcion = clsOfflineUtils.ObtenerTipoFichero(Path.GetFileNameWithoutExtension(laFilesFolder[i]));
443 if (isCentral && (lcTipoRecepcion ==
"c" || lcTipoRecepcion ==
"i"))
448 if (!isCentral && lcTipoRecepcion ==
"s")
453 laFiles.Add(laFilesFolder[i]);
460 private static OfflineDatosComunicaciones EstablecerConfiguracion(
string tcSucursal, DateTime tdFechaMin, DateTime tdFechaMax,
bool isCentral,
int idConf,
ILog_comoffRepository logRepository)
462 OfflineDatosComunicaciones datos =
new OfflineDatosComunicaciones();
465 datos._Log_ComoffID = _cIdLog;
466 datos._IdConf = idConf;
467 datos._MultConf = DB.SQLValor(
"MULTCONF",
"IDCONF", idConf.ToString(),
"CODIGO",
"OFFLINE").ToString();
468 datos._Usuario = EW_GLOBAL._GetVariable(
"wc_usuario").ToString();
469 datos._BdOffline = clsOfflineUtils.ObtenerNombreBdReal(
"OFFLINE");
470 datos._Sucursal = tcSucursal;
471 datos._PathFolderInicial = TempFolderName;
472 datos._IniServidor = DB._GetVariable(
"wc_iniservidor").ToString().ToLower();
473 datos._EnvioArticulos = _offlineConfig.GetValorVariable(
EnumVariables.ENVIOARTICULOS) ==
".T.";
474 datos._FechaInicial = tdFechaMin;
475 datos._FechaFinal = tdFechaMax;
476 datos._IsCentral = isCentral;
479 datos._NotificacionEnvio = Convert.ToBoolean(DB.SQLValor(
"MULTCONF",
"IDCONF", idConf.ToString(),
"NOTIFICAEN",
"OFFLINE"));
480 datos._EmailNotificacionEnvio = Convert.ToString(DB.SQLValor(
"MULTCONF",
"IDCONF", idConf.ToString(),
"EMAILNOTEN",
"OFFLINE"));
482 datos._NotificacionRecepcion = Convert.ToBoolean(DB.SQLValor(
"MULTCONF",
"IDCONF", idConf.ToString(),
"NOTIFICARE",
"OFFLINE"));
483 datos._EmailNotificacionRecepcion = Convert.ToString(DB.SQLValor(
"MULTCONF",
"IDCONF", idConf.ToString(),
"EMAILNOTRE",
"OFFLINE"));
487 datos._UltimoLog = Convert.ToInt32(_offlineConfig.GetValorVariable(
EnumVariables.ULTIMOLOG));
491 datos._UltimoLog = 6;
495 string[] loClaveBackup = _offlineConfig.GetValorVariable(
EnumVariables.BACKUP_RECEP).Split(
'|');
499 if (loClaveBackup.Length == 3)
501 datos._Backup = (loClaveBackup[0].ToUpper() ==
".T." ? true :
false);
502 datos._BackupPath = loClaveBackup[1].TrimEnd();
503 datos._BackupNumArchivos = Convert.ToInt32(loClaveBackup[2]);
511 logDto.
Detalle =
"Error al leer la configuración de la variable " +
EnumVariables.BACKUP_RECEP.ToString();
512 logRepository.
Insert(logDto);
518 private static void EjecutarProcesoRecepcion(OfflineDatosComunicaciones datos,
string tcTipoRecepcion,
ILog_comoffRepository logRepository)
520 DataTable TabTmp = ObtenerDatosRecepcion(datos._IdConf);
521 string lcTablaControl =
string.Empty;
526 logDto.
Detalle =
"Obtener configuración de " + (tcTipoRecepcion ==
"i" ?
"la carga inicial" :
"datos") +
" para la sucursal " + datos._Sucursal +
".";
527 logRepository.
Insert(logDto);
528 CrearDataBaseTemporal(datos._Sucursal);
531 decimal nCociente = (TabTmp != null ? TabTmp.Rows.Count : 99.0M);
533 nCociente = (nCociente == 0 ? 100 : nCociente);
534 InicializarBarraProgreso(Convert.ToInt32(nCociente));
537 foreach (DataRow itemRow
in TabTmp.Rows)
540 if (!clsOfflineUtils.EvaluarCondicion(itemRow.Field<
string>(
"visicond").TrimEnd().ToLower()))
545 RegistroTabRel registro = ComprobarFicheros(itemRow,
"_CREATED");
546 lcTablaControl = TratarTablasRecepcion(datos, registro, logRepository);
548 if (!
string.IsNullOrWhiteSpace(lcTablaControl))
550 RegistroTabRel registroControl =
new RegistroTabRel();
552 registroControl._DBSecundaria =
"OFFLINE";
553 registroControl._TablaSecundaria = lcTablaControl;
554 registroControl._Sufijo = registro._Sufijo;
555 registroControl._Clave = registro._Clave;
556 registroControl._Nombre = registro._Nombre;
557 registroControl._Prioridad = registro._Prioridad;
559 TratarTablasRecepcion(datos, registroControl, logRepository);
562 if (!
string.IsNullOrWhiteSpace(registro._DBPrincipal) && !
string.IsNullOrWhiteSpace(registro._DBSecundaria))
564 lcTablaControl = _offlineConfig.ObtenerTablaControlRelacionada(registro._DBSecundaria +
"!" + registro._TablaSecundaria);
566 if (!
string.IsNullOrWhiteSpace(lcTablaControl))
568 RegistroTabRel registroControl =
new RegistroTabRel();
570 registroControl._DBSecundaria =
"OFFLINE";
571 registroControl._TablaSecundaria = lcTablaControl;
572 registroControl._Sufijo = registro._Sufijo;
573 registroControl._Clave = registro._Clave;
574 registroControl._Nombre = registro._Nombre;
575 registroControl._Prioridad = registro._Prioridad;
577 TratarTablasRecepcion(datos, registroControl, logRepository);
583 foreach (DataRow itemRow
in TabTmp.Rows)
586 if (!clsOfflineUtils.EvaluarCondicion(itemRow.Field<
string>(
"visicond").TrimEnd().ToLower()))
591 RegistroTabRel registro = ComprobarFicheros(itemRow,
"_MODIFIED");
592 lcTablaControl = TratarTablasRecepcion(datos, registro, logRepository);
595 InicializarBarraProgreso();
598 TratarRegistrosPartesCostes();
600 if (!datos._IsCentral)
602 TratarRegistrosRiesgoCliente();
606 ProcesarImagenesRecibidas(datos, logRepository);
609 private static void ProcesarImagenesRecibidas(OfflineDatosComunicaciones datos,
ILog_comoffRepository logRepository)
612 string lcFile = Path.Combine(TempFolderName,
"IMAGENES",
"IMAGENES.xml");
614 if (!File.Exists(lcFile))
619 _TextStepDetalle =
"Procesando imagenes recibidas";
620 _TextStepProgreso = _TextStepDetalle;
621 _PorcenProgreso = IncrementarBarraProgreso();
623 DataTable table = ConvertFileToDatatable(lcFile, FormatoExportacion.XML);
624 string lcSql =
string.Empty;
626 foreach (DataRow item
in table.Rows)
628 string lcFichero = item[
"nombre"].ToString().TrimEnd();
629 string lcOrigen = Path.Combine(TempFolderName,
"IMAGENES", lcFichero);
630 string lcDestino = Path.Combine(datos._IniServidor,
"COMUNES",
"FOTOS", lcFichero);
631 string lcRuta = item[
"ruta"].ToString();
632 int lnTipo = Convert.ToInt32(item[
"tipo"]);
646 logDto.
TipoDato = clsOfflineUtils.ObtenerTipoDato(
"ARTICULO");
651 logDto.
TipoDato = clsOfflineUtils.ObtenerTipoDato(
"_DATOSEMP");
656 logDto.
TipoDato = clsOfflineUtils.ObtenerTipoDato(
"USUARIO");
661 logDto.
TipoDato = clsOfflineUtils.ObtenerTipoDato(
"MANTENIMIENTOS");
673 logDto.
Detalle =
"La imagen " + lcFichero +
" se ha copiado en la carpeta " + Path.Combine(datos._IniServidor,
"COMUNES",
"FOTOS");
675 if (!File.Exists(lcOrigen))
678 logDto.
Detalle =
"La imagen " + lcFichero +
" no se ha recibido en el fichero de comunicaciones.";
686 File.Copy(lcOrigen, lcDestino,
true);
691 logDto.
Detalle =
"No se ha podido realizar la copia de la imagen " + lcFichero +
", revise si existe la ruta indicada en la configuración " +
692 "o si el usuario de Windows tiene permisos para acceder a dicha carpeta " + Path.Combine(datos._IniServidor,
"COMUNES",
"FOTOS");
696 logRepository.
Insert(logDto);
702 if (!lcRuta.Contains(
"COMUNES\\FOTOS\\"))
704 lcRuta = Path.Combine(lcRuta, lcFichero);
706 lcSql =
"UPDATE " + DB.SQLDatabase(
"COMUNES",
"COLORES") +
" SET IMAGEN = " + DB.SQLString(lcDestino) +
" WHERE IMAGEN = " + DB.SQLString(lcRuta);
713 if (!lcRuta.Contains(
"COMUNES\\FOTOS\\"))
715 lcRuta = Path.Combine(lcRuta, lcFichero);
717 lcSql =
"UPDATE " + DB.SQLDatabase(
"GESTION",
"VENDEDOR") +
" SET FOTO = " + DB.SQLString(lcDestino) +
" WHERE FOTO = " + DB.SQLString(lcRuta);
725 private static void TratarRegistrosRiesgoCliente()
727 string lcSql =
string.Empty;
728 DataTable ldtRiesgoCliente =
new DataTable();
730 if (DB._SQLExisteTablaBBDD(_cRaizDataBaseTemporal +
"GESTION",
"RIESGO"))
732 lcSql =
" SELECT EMPRESA,CODIGO,PED_PEND,ALB_PEND,FAC_PEND,FAC_NEG,FAC_REMPAG,NUM_IMPAGO,IMPAGOS,IMPAG4315,TOT_PEND,MED_DIAS,FAC_NOCONT," +
733 " PED_PENDIV,ALB_PENDIV,FAC_PENDIV,FAC_NEGDIV,FAC_REMDIV,IMPAGOSDIV,IMP4315DIV,TOT_PENDIV,FAC_NOCDIV " +
734 " FROM [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[RIESGO] " +
736 " SELECT EMPRESA,CODIGO,PED_PEND*(-1) AS PED_PEND,ALB_PEND*(-1) AS ALB_PEND,FAC_PEND*(-1) AS FAC_PEND,FAC_NEG*(-1) AS FAC_NEG,FAC_REMPAG*(-1) AS FAC_REMPAG," +
737 " NUM_IMPAGO*(-1) AS NUM_IMPAGO,IMPAGOS*(-1) AS IMPAGOS,IMPAG4315*(-1) AS IMPAG4315,TOT_PEND*(-1) AS TOT_PEND,MED_DIAS*(-1) AS MED_DIAS,FAC_NOCONT*(-1) AS FAC_NOCONT," +
738 " PED_PENDIV*(-1) AS PED_PENDIV,ALB_PENDIV*(-1) AS ALB_PENDIV,FAC_PENDIV*(-1) AS FAC_PENDIV,FAC_NEGDIV*(-1) AS FAC_NEGDIV," +
739 " FAC_REMDIV*(-1) AS FAC_REMDIV,IMPAGOSDIV*(-1) AS IMPAGOSDIV,IMP4315DIV*(-1) AS IMP4315DIV,TOT_PENDIV*(-1) AS TOT_PENDIV,FAC_NOCDIV *(-1) AS FACNOCDIV " +
740 " FROM [" + clsOfflineUtils.ObtenerNombreBdReal(
"GESTION") +
"].dbo.[RIESGO]";
742 DB.SQLExec(lcSql, ref ldtRiesgoCliente);
744 if (ldtRiesgoCliente.Rows.Count > 0)
747 var ldtAgrupado = (from item in ldtRiesgoCliente.AsEnumerable()
750 empresa = item.Field<
string>(
"empresa"),
751 codigo = item.Field<
string>(
"codigo")
758 ped_pend = g.Sum(y => y.Field<decimal>(
"ped_pend")),
759 alb_pend = g.Sum(y => y.Field<decimal>(
"alb_pend")),
760 fac_pend = g.Sum(y => y.Field<decimal>(
"fac_pend")),
761 fac_neg = g.Sum(y => y.Field<decimal>(
"fac_neg")),
762 fac_rempag = g.Sum(y => y.Field<decimal>(
"fac_rempag")),
763 num_impago = g.Sum(y => y.Field<
int>(
"num_impago")),
764 impagos = g.Sum(y => y.Field<decimal>(
"impagos")),
765 impag4315 = g.Sum(y => y.Field<decimal>(
"impag4315")),
766 tot_pend = g.Sum(y => y.Field<decimal>(
"tot_pend")),
767 med_dias = g.Sum(y => y.Field<decimal>(
"med_dias")),
768 fac_nocont = g.Sum(y => y.Field<decimal>(
"fac_nocont")),
769 ped_pendiv = g.Sum(y => y.Field<decimal>(
"ped_pendiv")),
770 alb_pendiv = g.Sum(y => y.Field<decimal>(
"alb_pendiv")),
771 fac_pendiv = g.Sum(y => y.Field<decimal>(
"fac_pendiv")),
772 fac_negdiv = g.Sum(y => y.Field<decimal>(
"fac_negdiv")),
773 fac_remdiv = g.Sum(y => y.Field<decimal>(
"fac_remdiv")),
774 impagosdiv = g.Sum(y => y.Field<decimal>(
"impagosdiv")),
775 imp4315div = g.Sum(y => y.Field<decimal>(
"imp4315div")),
776 tot_pendiv = g.Sum(y => y.Field<decimal>(
"tot_pendiv")),
777 fac_nocdiv = g.Sum(y => y.Field<decimal>(
"fac_nocdiv"))
778 }).__CopyToDataTable();
780 string lcWhere =
string.Empty;
781 foreach (DataRow item
in ldtAgrupado.Rows)
783 lcWhere =
" WHERE EMPRESA = " + DB.SQLString(item[
"EMPRESA"]) +
" AND CODIGO = " + DB.SQLString(item[
"CODIGO"]);
785 lcSql =
" IF EXISTS " + Environment.NewLine +
786 " ( SELECT * FROM " + DB.SQLDatabase(
"OFFLINE",
"RIESGOCEN") + lcWhere +
" ) " + Environment.NewLine +
787 " BEGIN " + Environment.NewLine +
788 " Update " + DB.SQLDatabase(
"OFFLINE",
"RIESGOCEN") +
789 " Set PED_PEND = " + DB.SQLString(item[
"PED_PEND"]) +
", " +
790 " ALB_PEND = " + DB.SQLString(item[
"ALB_PEND"]) +
", " +
791 " FAC_PEND = " + DB.SQLString(item[
"FAC_PEND"]) +
", " +
792 " FAC_NEG = " + DB.SQLString(item[
"FAC_NEG"]) +
", " +
793 " FAC_REMPAG = " + DB.SQLString(item[
"FAC_REMPAG"]) +
", " +
794 " NUM_IMPAGO = " + DB.SQLString(item[
"NUM_IMPAGO"]) +
", " +
795 " IMPAGOS = " + DB.SQLString(item[
"IMPAGOS"]) +
", " +
796 " IMPAG4315 = " + DB.SQLString(item[
"IMPAG4315"]) +
", " +
797 " TOT_PEND = " + DB.SQLString(item[
"TOT_PEND"]) +
", " +
798 " MED_DIAS = " + DB.SQLString(item[
"MED_DIAS"]) +
", " +
799 " FAC_NOCONT = " + DB.SQLString(item[
"FAC_NOCONT"]) +
", " +
800 " PED_PENDIV = " + DB.SQLString(item[
"PED_PENDIV"]) +
", " +
801 " ALB_PENDIV = " + DB.SQLString(item[
"ALB_PENDIV"]) +
", " +
802 " FAC_PENDIV = " + DB.SQLString(item[
"FAC_PENDIV"]) +
", " +
803 " FAC_NEGDIV = " + DB.SQLString(item[
"FAC_NEGDIV"]) +
", " +
804 " FAC_REMDIV = " + DB.SQLString(item[
"FAC_REMDIV"]) +
", " +
805 " IMPAGOSDIV = " + DB.SQLString(item[
"IMPAGOSDIV"]) +
", " +
806 " IMP4315DIV = " + DB.SQLString(item[
"IMP4315DIV"]) +
", " +
807 " TOT_PENDIV = " + DB.SQLString(item[
"TOT_PENDIV"]) +
", " +
808 " FAC_NOCDIV = " + DB.SQLString(item[
"FAC_NOCDIV"]) +
809 lcWhere + Environment.NewLine +
810 " END " + Environment.NewLine +
811 " ELSE " + Environment.NewLine +
812 " BEGIN" + Environment.NewLine +
813 " INSERT INTO " + DB.SQLDatabase(
"OFFLINE",
"RIESGOCEN") +
" " +
814 " (EMPRESA,CODIGO,PED_PEND,ALB_PEND,FAC_PEND,FAC_NEG,FAC_REMPAG,NUM_IMPAGO,IMPAGOS,IMPAG4315,TOT_PEND,MED_DIAS,FAC_NOCONT," +
815 " PED_PENDIV,ALB_PENDIV,FAC_PENDIV,FAC_NEGDIV,FAC_REMDIV,IMPAGOSDIV,IMP4315DIV,TOT_PENDIV,FAC_NOCDIV) " +
817 DB.SQLString(item[
"EMPRESA"]) +
", " +
818 DB.SQLString(item[
"CODIGO"]) +
", " +
819 DB.SQLString(item[
"PED_PEND"]) +
", " +
820 DB.SQLString(item[
"ALB_PEND"]) +
", " +
821 DB.SQLString(item[
"FAC_PEND"]) +
", " +
822 DB.SQLString(item[
"FAC_NEG"]) +
", " +
823 DB.SQLString(item[
"FAC_REMPAG"]) +
", " +
824 DB.SQLString(item[
"NUM_IMPAGO"]) +
", " +
825 DB.SQLString(item[
"IMPAGOS"]) +
", " +
826 DB.SQLString(item[
"IMPAG4315"]) +
", " +
827 DB.SQLString(item[
"TOT_PEND"]) +
", " +
828 DB.SQLString(item[
"MED_DIAS"]) +
", " +
829 DB.SQLString(item[
"FAC_NOCONT"]) +
", " +
830 DB.SQLString(item[
"PED_PENDIV"]) +
", " +
831 DB.SQLString(item[
"ALB_PENDIV"]) +
", " +
832 DB.SQLString(item[
"FAC_PENDIV"]) +
", " +
833 DB.SQLString(item[
"FAC_NEGDIV"]) +
", " +
834 DB.SQLString(item[
"FAC_REMDIV"]) +
", " +
835 DB.SQLString(item[
"IMPAGOSDIV"]) +
", " +
836 DB.SQLString(item[
"IMP4315DIV"]) +
", " +
837 DB.SQLString(item[
"TOT_PENDIV"]) +
", " +
838 DB.SQLString(item[
"FAC_NOCDIV"]) +
") " +
847 private static void TratarRegistrosPartesCostes()
849 TratarRegistrosEspeciales(
"GESTION",
"C_PARTES",
"_CREATED");
850 TratarRegistrosEspeciales(
"GESTION",
"D_PARTES",
"_CREATED");
851 TratarRegistrosEspeciales(
"OFFLINE",
"CTRL_PARCO",
"_CREATED");
853 TratarRegistrosEspeciales(
"GESTION",
"C_PARTES",
"_MODIFIED");
854 TratarRegistrosEspeciales(
"GESTION",
"D_PARTES",
"_MODIFIED");
855 TratarRegistrosEspeciales(
"OFFLINE",
"CTRL_PARCO",
"_MODIFIED");
858 private static void TratarRegistrosEspeciales(
string tcDatabase,
string tcTabla,
string tcSufijo)
860 string lcCadenaCamps =
string.Empty;
861 string lcSetCampos =
string.Empty;
862 string lcIndice =
string.Empty;
863 string lcCondicion =
string.Empty;
864 string lcRutaOtrasien =
string.Empty;
865 string lcSql =
string.Empty;
868 lcRutaOtrasien = Path.Combine(TempFolderName, tcDatabase, tcTabla + tcSufijo) +
".xml";
870 if (!File.Exists(lcRutaOtrasien))
875 _TextStepDetalle =
"Procesando registros " + tcTabla;
876 _TextStepProgreso = _TextStepDetalle;
877 _PorcenProgreso = IncrementarBarraProgreso();
880 lcCadenaCamps = ObtenerCamposSelect(tcDatabase, tcTabla + tcSufijo);
881 lcSetCampos = ObtenerCamposSet(tcDatabase, tcTabla + tcSufijo);
882 lcIndice = ObtenerCamposIndices(tcDatabase, tcTabla);
884 lcSql =
" UPDATE [" + clsOfflineUtils.ObtenerNombreBdReal(tcDatabase) +
"].dbo.[" + tcTabla +
"] " +
885 " SET " + lcSetCampos +
886 " FROM [" + clsOfflineUtils.ObtenerNombreBdReal(tcDatabase) +
"].dbo.[" + tcTabla +
"] a " +
887 " INNER JOIN [" + _cRaizDataBaseTemporal + tcDatabase +
"].dbo.[" + tcTabla + tcSufijo +
"] b " +
891 lcSql =
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + tcDatabase +
"].dbo.[_Especial] ";
895 lcCondicion = lcIndice.Trim();
896 lcCondicion = lcCondicion.Substring(0, lcCondicion.IndexOf(
'='));
899 lcSql =
"SELECT b.* into [" + _cRaizDataBaseTemporal + tcDatabase +
"].dbo.[_Especial] " +
900 " FROM [" + clsOfflineUtils.ObtenerNombreBdReal(tcDatabase) +
"].dbo.[" + tcTabla +
"] a " +
901 " RIGHT JOIN [" + _cRaizDataBaseTemporal + tcDatabase +
"].dbo.[" + tcTabla + tcSufijo +
"] b " +
903 " WHERE " + lcCondicion +
" is null ";
908 lcSql =
"INSERT INTO [" + clsOfflineUtils.ObtenerNombreBdReal(tcDatabase) +
"].dbo.[" + tcTabla +
"] (" + lcCadenaCamps +
") " +
909 "SELECT " + lcCadenaCamps +
" FROM [" + _cRaizDataBaseTemporal + tcDatabase +
"].dbo.[_Especial] ";
913 private static RegistroTabRel ComprobarFicheros(DataRow item,
string tcSufijo)
915 RegistroTabRel registro =
new RegistroTabRel();
917 registro._DBPrincipal =
string.Empty;
918 registro._TablaPrincipal =
string.Empty;
920 registro._DBSecundaria =
string.Empty;
921 registro._TablaSecundaria =
string.Empty;
923 registro._Empresa = item.Field<
string>(
"empresa").TrimEnd();
924 registro._EmpresaSecundaria = item.Field<
string>(
"empresecun").TrimEnd();
925 registro._Sufijo =
string.Empty;
926 registro._Prioridad = 0;
927 registro._ID = item.Field<
int>(
"ID");
928 registro._Clave = item.Field<
string>(
"clave").TrimEnd();
929 registro._Nombre = item.Field<
string>(
"nombre").TrimEnd();
930 registro._Visible = item.Field<
bool>(
"visible");
932 if (!
string.IsNullOrWhiteSpace(item.Field<
string>(
"principal")))
934 string[] subPos = item.Field<
string>(
"principal").TrimEnd().Split(
'!');
935 if (subPos.Length == 2)
937 registro._DBPrincipal = subPos[0].TrimEnd();
938 registro._TablaPrincipal = subPos[1].TrimEnd();
939 registro._Sufijo = tcSufijo;
944 string lcRutaPrin = Path.Combine(TempFolderName, registro._DBPrincipal, registro._TablaPrincipal + registro._Sufijo) +
".xml";
946 if (!File.Exists(lcRutaPrin))
948 registro._DBPrincipal =
string.Empty;
949 registro._TablaPrincipal =
string.Empty;
954 if (!
string.IsNullOrWhiteSpace(item.Field<
string>(
"secundaria")))
956 string[] subPos = item.Field<
string>(
"secundaria").TrimEnd().Split(
'!');
957 if (subPos.Length == 2)
959 registro._DBSecundaria = subPos[0].TrimEnd();
960 registro._TablaSecundaria = subPos[1].TrimEnd();
961 registro._Sufijo = tcSufijo;
964 registro._Relacion = item.Field<
string>(
"relacion");
968 string lcRutaSecun = Path.Combine(TempFolderName, registro._DBSecundaria, registro._TablaSecundaria + registro._Sufijo) +
".xml";
970 if (!File.Exists(lcRutaSecun))
972 registro._DBSecundaria =
string.Empty;
973 registro._TablaSecundaria =
string.Empty;
974 registro._Relacion =
string.Empty;
978 registro._Prioridad = item.Field<
int>(
"prioridad");
980 registro._Otrasien = item.Field<
string>(
"otrasien").TrimEnd();
981 registro._Asientos = item.Field<
string>(
"asientos").TrimEnd();
982 registro._Ivareper = item.Field<
string>(
"ivareper").TrimEnd();
983 registro._Ivasopor = item.Field<
string>(
"ivasopor").TrimEnd();
984 registro._Iva_exen = item.Field<
string>(
"iva_exen").TrimEnd();
985 registro._Retreper = item.Field<
string>(
"retreper").TrimEnd();
986 registro._Retsopor = item.Field<
string>(
"retsopor").TrimEnd();
987 registro._Eos = item.Field<
string>(
"eos").TrimEnd();
988 registro._Compras = item.Field<
string>(
"compras").TrimEnd();
993 private static string TratarTablasRecepcion(OfflineDatosComunicaciones datos, RegistroTabRel registro,
ILog_comoffRepository logRepository)
995 bool llDiferente =
true;
996 string lcTablaControl =
string.Empty;
998 TratamientoEspecialRecepcion(datos, ref registro, logRepository);
999 registro._Sobreescribir = (datos._IsCentral ? registro._Prioridad == 2 : registro._Prioridad == 1);
1002 if (!
string.IsNullOrWhiteSpace(registro._DBPrincipal) && !
string.IsNullOrWhiteSpace(registro._TablaPrincipal))
1004 if (!registro._TablaPrincipal.Contains(
"CTRL_"))
1006 llDiferente = _tablaOld != registro._Clave + registro._DBPrincipal + registro._TablaPrincipal + registro._Sufijo + (registro._Sobreescribir ?
"S" :
"N");
1007 _tablaOld = registro._Clave + registro._DBPrincipal + registro._TablaPrincipal + registro._Sufijo + (registro._Sobreescribir ?
"S" :
"N");
1014 registro._Actualizado = ActualizarDatosRecepcion(datos, registro, logRepository);
1016 lcTablaControl = _offlineConfig.ObtenerTablaControlRelacionada(registro._DBPrincipal +
"!" + registro._TablaPrincipal);
1021 if (!
string.IsNullOrWhiteSpace(registro._DBSecundaria) && !
string.IsNullOrWhiteSpace(registro._TablaSecundaria))
1023 ActualizarDatosRecepcion(datos, registro, logRepository,
true);
1027 if (!
string.IsNullOrWhiteSpace(registro._Compras))
1029 TratamientoEspecial_Compras(registro);
1032 return lcTablaControl;
1035 private static bool CrearTablaTemporal(
string tcDB,
string tcTabla,
string tcSufijo,
string tcEmpresa,
bool tlPrincipal)
1037 string lcTaulaTemp =
string.Empty;
1038 string lcFiltre =
string.Empty;
1039 string lcOr =
string.Empty;
1040 string lcSql =
string.Empty;
1042 lcTaulaTemp = (tlPrincipal ?
"_Principal" :
"_Secundaria");
1044 if (!DB._SQLExisteBBDD(_cRaizDataBaseTemporal + tcDB))
1050 lcSql =
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + tcDB +
"].dbo.[" + lcTaulaTemp +
"] ";
1054 if (!
string.IsNullOrWhiteSpace(tcEmpresa))
1057 string lcCampoEmpresa = tcEmpresa;
1058 clsOfflineUtils.RevisarTablasCampoEmpresa(tcTabla, ref lcCampoEmpresa);
1060 if (!
string.IsNullOrWhiteSpace(lcCampoEmpresa))
1062 DataTable ldtEmpresa =
new DataTable();
1063 DB.SQLExec(
"SELECT CODIGO as EMPRESA FROM " + DB.SQLDatabase(
"GESTION",
"EMPRESA"), ref ldtEmpresa);
1066 foreach (DataRow item
in ldtEmpresa.Rows)
1068 lcFiltre = lcFiltre + lcOr + lcCampoEmpresa +
" = " + DB.SQLString(item.Field<
string>(
"empresa")) +
" ";
1073 if (tcTabla.ToUpper() ==
"REFERPRO")
1075 lcFiltre = lcFiltre + lcOr + lcCampoEmpresa +
" = " + DB.SQLString(
"") +
" ";
1080 lcFiltre = (!
string.IsNullOrWhiteSpace(lcFiltre) ?
" Where " :
"") + lcFiltre;
1083 if (!DB._SQLExisteTablaBBDD(_cRaizDataBaseTemporal + tcDB, tcTabla + tcSufijo))
1085 lcSql =
"SELECT * INTO [" + _cRaizDataBaseTemporal + tcDB +
"].dbo.[" + tcTabla + tcSufijo +
"] " +
1086 " FROM " + DB.SQLDatabase(tcDB, tcTabla) +
" WHERE 1=2 ";
1091 lcSql =
"SELECT * INTO [" + _cRaizDataBaseTemporal + tcDB +
"].dbo.[" + lcTaulaTemp +
"] " +
1092 " FROM [" + _cRaizDataBaseTemporal + tcDB +
"].dbo.[" + tcTabla + tcSufijo +
"] " + lcFiltre;
1099 private static bool ImportarAsientos(OfflineDatosComunicaciones datos, RegistroTabRel registro,
ILog_comoffRepository logRepository,
string tcTabla =
"_Secundaria")
1104 string lcSql =
string.Empty;
1105 DataTable ldtAsi =
new DataTable();
1107 lcSql =
"SELECT DISTINCT empresa, numero FROM [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[" + tcTabla +
"] ";
1108 DB.SQLExec(lcSql, ref ldtAsi);
1110 if (ldtAsi.Rows.Count == 0)
1116 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"OFFLINE" +
"].dbo.[_ControlAsientos] ");
1119 if (DB._SQLExisteTablaBBDD(_cRaizDataBaseTemporal +
"OFFLINE",
"CTRL_ASIEN" + registro._Sufijo))
1121 string lcAny = EW_GLOBAL._GetVariable(
"wc_any").ToString();
1122 lcSql =
"SELECT a.* INTO [" + _cRaizDataBaseTemporal +
"OFFLINE" +
"].dbo.[_ControlAsientos] " +
1123 " FROM [" + _cRaizDataBaseTemporal +
"OFFLINE" +
"].dbo.[" +
"CTRL_ASIEN" + registro._Sufijo +
"] a " +
1124 " INNER JOIN [" + _cRaizDataBaseTemporal +
"GESTION].dbo.[" + tcTabla +
"] b " +
1125 " ON A.EMPRESA = b.EMPRESA AND a.NUMERO = b.NUMERO and a.LINEA = b.LINEA AND a.EJERCICIO = " + DB.SQLString(lcAny);
1129 lcSql =
"SELECT * INTO [" + _cRaizDataBaseTemporal +
"OFFLINE" +
"].dbo.[_ControlAsientos] " +
1130 " FROM " + DB.SQLDatabase(
"OFFLINE",
"CTRL_ASIEN") +
1139 lcSql =
"UPDATE [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[" + tcTabla +
"] SET NUMERO = NUMERO * (-1) ";
1143 lcSql =
"UPDATE [" + _cRaizDataBaseTemporal +
"OFFLINE" +
"].dbo.[_ControlAsientos] SET NUMERO = NUMERO * (-1) ";
1146 foreach (DataRow item
in ldtAsi.Rows)
1148 lnNumAntic = item.Field<
int>(
"numero") * (-1);
1151 lnAsiento = Convert.ToInt32(FUNCTIONS._SumaNumero(item.Field<
string>(
"empresa"),
"ASIENTO",
"EMPRESA",
"GESTION",
"CODIGO"));
1153 while (!
string.IsNullOrWhiteSpace(DB.SQLValor(
"ASIENTOS",
"EMPRESA = " + DB.SQLString(item.Field<
string>(
"empresa")) +
" AND NUMERO",lnAsiento.ToString(),
"EMPRESA",
"GESTION").ToString()))
1155 lnAsiento = Convert.ToInt32(FUNCTIONS._SumaNumero(item.Field<
string>(
"empresa"),
"ASIENTO",
"EMPRESA",
"GESTION",
"CODIGO"));
1158 lcSql =
"UPDATE [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[" + tcTabla +
"] " +
1159 " SET NUMERO = " + DB.SQLString(lnAsiento) +
1160 " WHERE NUMERO = " + DB.SQLString(lnNumAntic) +
" AND EMPRESA = " + DB.SQLString(item.Field<
string>(
"empresa"));
1163 lcSql =
"UPDATE [" + _cRaizDataBaseTemporal +
"OFFLINE" +
"].dbo.[_ControlAsientos] " +
1164 " SET NUMERO = " + DB.SQLString(lnAsiento) +
1165 " WHERE NUMERO = " + DB.SQLString(lnNumAntic) +
" AND EMPRESA = " + DB.SQLString(item.Field<
string>(
"empresa"));
1171 lcSql =
"SELECT DISTINCT empresa, asi FROM [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[" + tcTabla +
"] ";
1172 DB.SQLExec(lcSql, ref ldtAsi);
1174 string lcInnerOn =
string.Empty;
1176 switch (registro._TablaSecundaria)
1180 if (!
string.IsNullOrWhiteSpace(registro._TablaPrincipal))
1182 lcInnerOn =
" INNER JOIN " + DB.SQLDatabase(registro._DBPrincipal, registro._TablaPrincipal) +
" b ON " + ObtenerInnerOn(registro._DBSecundaria, registro._DBPrincipal, registro._TablaSecundaria, registro._TablaPrincipal, registro._Relacion, registro._Clave, datos, logRepository);
1189 lcInnerOn =
" INNER JOIN " + DB.SQLDatabase(registro._DBSecundaria, registro._TablaSecundaria) +
" b ON " +
" a.empresa = b.empresa AND a.asi = b.asirecc ";
1194 lcInnerOn =
" INNER JOIN " + DB.SQLDatabase(registro._DBSecundaria, registro._TablaSecundaria) +
" b ON " +
" a.empresa = b.empresa AND a.asi = b.asi ";
1199 foreach (DataRow item
in ldtAsi.Rows)
1201 lcSql =
" DELETE FROM " + DB.SQLDatabase(
"OFFLINE",
"CTRL_ASIEN") +
1202 " WHERE EMPRESA = " + DB.SQLString(item.Field<
string>(
"empresa")) +
1203 " AND EJERCICIO = " + DB.SQLString(_cAny) +
1204 " AND NUMERO IN ( SELECT a.NUMERO FROM " + DB.SQLDatabase(
"GESTION",
"ASIENTOS") +
" a " +
1206 " WHERE a.EMPRESA = " + DB.SQLString(item.Field<
string>(
"empresa")) +
1207 " AND a.ASI = " + DB.SQLString(item.Field<
string>(
"asi")) +
" ) ";
1210 lcSql =
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ASIENTOS") +
1211 " WHERE EMPRESA = " + DB.SQLString(item.Field<
string>(
"empresa")) +
1212 " AND NUMERO IN ( SELECT a.NUMERO FROM " + DB.SQLDatabase(
"GESTION",
"ASIENTOS") +
" a " +
1214 " WHERE a.EMPRESA = " + DB.SQLString(item.Field<
string>(
"empresa")) +
1215 " AND a.ASI = " + DB.SQLString(item.Field<
string>(
"asi")) +
" ) ";
1223 private static bool ImportarEntidad(RegistroTabRel registro)
1226 string lcDbReal = clsOfflineUtils.ObtenerNombreBdReal(registro._DBPrincipal);
1229 string lcSql =
"Update [" + _cRaizDataBaseTemporal + registro._DBPrincipal +
"].dbo.[_Principal] " +
1230 "Set CARTAPAG = COALESCE(B.CARTAPAG, '') " +
1231 "From [" + _cRaizDataBaseTemporal + registro._DBPrincipal +
"].dbo.[_Principal] A " +
1232 "Left Join [" + lcDbReal +
"].dbo.[" + registro._TablaPrincipal +
"] B On A.CODIGO = B.CODIGO ";
1234 return DB.SQLExec(lcSql);
1237 private static bool ImportarCajas(RegistroTabRel registro)
1240 string lcDbReal = clsOfflineUtils.ObtenerNombreBdReal(registro._DBPrincipal);
1243 string lcSql =
"Update [" + _cRaizDataBaseTemporal + registro._DBPrincipal +
"].dbo.[_Principal] " +
1244 "Set PTICKETS = COALESCE(B.PTICKETS, ''), " +
1245 "PDISPLAY = COALESCE(B.PDISPLAY, ''), " +
1246 "PCAJA = COALESCE(B.PCAJA, ''), " +
1247 "NOMPCAJA = COALESCE(B.NOMPCAJA, ''), " +
1248 "NOMPDISP = COALESCE(B.NOMPDISP, ''), " +
1249 "IMPRESORA2 = COALESCE(B.IMPRESORA2, ''), " +
1250 "IMPRESORA = COALESCE(B.IMPRESORA, ''), " +
1251 "IMP_COCI = COALESCE(B.IMP_COCI, ''), " +
1252 "IMP_RESUM = COALESCE(B.IMP_RESUM, '') " +
1253 "From [" + _cRaizDataBaseTemporal + registro._DBPrincipal +
"].dbo.[_Principal] A " +
1254 "Left Join [" + lcDbReal +
"].dbo.[" + registro._TablaPrincipal +
"] B On A.CODIGO = B.CODIGO ";
1256 return DB.SQLExec(lcSql);
1259 private static bool ImportarUniUsers(RegistroTabRel registro)
1261 string lcIdSage50 = DB.SQLValor(
"GRUPOSEMP",
"CODIGO",
GrupoEmpresa.
_CodigoGrupoActual().ToString().Trim(),
"IDSAGE50",
"EUROWINSYS").ToString();
1264 string lcSql =
"Update [" + _cRaizDataBaseTemporal + registro._DBSecundaria +
"].dbo.[_Secundaria] " +
1265 "Set IDSAGE50 = " + DB.SQLString(lcIdSage50);
1269 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + registro._DBSecundaria +
"].dbo.[_Especial]");
1271 lcSql =
" SELECT DISTINCT " + ObtenerCamposSelect(registro._DBSecundaria, registro._TablaSecundaria + registro._Sufijo,
"a.") +
1272 " INTO [" + _cRaizDataBaseTemporal + registro._DBSecundaria +
"].dbo.[_Especial] " +
1273 " FROM [" + _cRaizDataBaseTemporal + registro._DBSecundaria +
"].dbo.[_Secundaria] a ";
1276 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + registro._DBSecundaria +
"].dbo.[_Secundaria]");
1278 lcSql =
" SELECT * INTO [" + _cRaizDataBaseTemporal + registro._DBSecundaria +
"].dbo.[_Secundaria] " +
1279 " FROM [" + _cRaizDataBaseTemporal + registro._DBSecundaria +
"].dbo.[_Especial] ";
1282 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + registro._DBSecundaria +
"].dbo.[_Especial]");
1287 private static bool ImportarAccesoGrup(RegistroTabRel registro)
1290 string lcIdSage50 = DB.SQLValor(
"GRUPOSEMP",
"CODIGO", lcGrupo,
"IDSAGE50",
"EUROWINSYS").ToString();
1293 string lcSql =
"Update [" + _cRaizDataBaseTemporal + registro._DBSecundaria +
"].dbo.[_Secundaria] " +
1294 "Set IDSAGE50 = " + DB.SQLString(lcIdSage50) +
", GRUPO = " + DB.SQLString(lcGrupo);
1296 return DB.SQLExec(lcSql);
1299 private static bool ImportarAccesos(RegistroTabRel registro)
1301 string lcDbReal = clsOfflineUtils.ObtenerNombreBdReal(registro._DBPrincipal);
1303 string lcSql =
"DELETE FROM [" + lcDbReal +
"].dbo.[" + registro._TablaPrincipal +
"] ";
1305 return DB.SQLExec(lcSql);
1308 private static bool ImportarConfTick(RegistroTabRel registro)
1310 string lcDbReal = clsOfflineUtils.ObtenerNombreBdReal(registro._DBPrincipal);
1313 string lcSql =
"Update [" + _cRaizDataBaseTemporal + registro._DBPrincipal +
"].dbo.[_Principal] " +
1314 "Set TICKETS = B.TICKETS, " +
1315 "ARQUEO = B.ARQUEO, " +
1316 "FACTICK = B.FACTICK, " +
1317 "PEDINT = B.PEDINT " +
1318 "From [" + _cRaizDataBaseTemporal + registro._DBPrincipal +
"].dbo.[_Principal] A " +
1319 "Inner Join [" + lcDbReal +
"].dbo.[" + registro._TablaPrincipal +
"] B On A.EMPRESA = B.EMPRESA ";
1322 return DB.SQLExec(lcSql);
1325 private static bool ImportarAlbaranesFacturas(RegistroTabRel registro)
1327 string lcSql =
" DELETE FROM [" + _cRaizDataBaseTemporal + registro._DBPrincipal +
"].dbo.[_Principal] ";
1329 switch (registro._Clave)
1334 lcSql +=
" WHERE FACTURA != '' ";
1340 lcSql +=
" WHERE FACTURA = '' ";
1349 if (
string.IsNullOrWhiteSpace(lcSql))
1355 return DB.SQLExec(lcSql);
1359 private static bool ImportarStocklotes(RegistroTabRel registro)
1361 string lcDbReal = clsOfflineUtils.ObtenerNombreBdReal(registro._DBPrincipal);
1362 string lcDbReal2 = clsOfflineUtils.ObtenerNombreBdReal(registro._DBSecundaria);
1364 switch (registro._TablaPrincipal)
1369 DataTable ldtStockLotes =
new DataTable();
1370 string lcSql =
"SELECT * " +
1371 " FROM [" + _cRaizDataBaseTemporal + registro._DBSecundaria +
"].dbo.[_Secundaria] " +
1372 " ORDER BY EMPRESA, ALMACEN, ARTICULO, TALLA, COLOR ";
1374 DB.SQLExec(lcSql, ref ldtStockLotes);
1376 if (ldtStockLotes.Rows.Count == 0)
1382 DateTime FechaMaxima = DateTime.Today.AddDays(-1);
1386 DataTable ldtRevisar =
new DataTable();
1387 lcSql =
"SELECT DISTINCT empresa, almacen " +
1388 " FROM [" + _cRaizDataBaseTemporal + registro._DBSecundaria +
"].dbo.[_Secundaria] " +
1389 " ORDER BY EMPRESA, ALMACEN ";
1390 DB.SQLExec(lcSql, ref ldtRevisar);
1392 string lcCondicion =
string.Empty;
1394 foreach (DataRow item
in ldtRevisar.Rows)
1396 lcCondicion =
" EMPRESA = " + DB.SQLString(item.Field<
string>(
"empresa")) +
" AND ALMACEN = " + DB.SQLString(item.Field<
string>(
"almacen"));
1398 lcSql =
"DELETE FROM " + DB.SQLDatabase(
"GESTION",
"REGULARI") +
1399 " WHERE (DOCUMENTO='SINCRONIZACION' OR DOCUMENTO='STOCKSOFFLINE') " +
1400 " AND " + lcCondicion +
" AND FECHA = " + DB.SQLString(FechaMaxima);
1403 lcSql =
"DELETE FROM " + DB.SQLDatabase(
"LOTES",
"LTREGUL") +
1404 " WHERE (DOCUMENTO='SINCRONIZACION' OR DOCUMENTO='STOCKSOFFLINE') " +
1405 " AND " + lcCondicion +
" AND FECHA = " + DB.SQLString(FechaMaxima);
1409 DataTable ldtRegulari =
new DataTable();
1410 lcSql =
" SELECT * FROM " + DB.SQLDatabase(
"GESTION",
"REGULARI") +
" WHERE 1=2 ";
1411 DB.SQLExec(lcSql, ref ldtRegulari);
1413 DataTable ldtLtregul =
new DataTable();
1414 lcSql =
" SELECT * FROM " + DB.SQLDatabase(
"LOTES",
"LTREGUL") +
" WHERE 1=2 ";
1415 DB.SQLExec(lcSql, ref ldtLtregul);
1417 string lcOldCodi =
"##@@";
1418 string lcOldArticulo =
"%&/(";
1419 string lcDocumento =
"STOCKSOFFLINE";
1422 foreach (DataRow item
in ldtStockLotes.Rows)
1426 if (lcOldCodi != item.Field<
string>(
"EMPRESA") + item.Field<
string>(
"ALMACEN"))
1428 if (lcOldCodi !=
"##@@")
1430 foreach (DataRow row
in ldtRegulari.Rows)
1432 ImportarStocklotesRegulari(row);
1436 lcSql =
" SELECT * FROM " + DB.SQLDatabase(
"GESTION",
"REGULARI") +
1437 " WHERE EMPRESA = " + DB.SQLString(item.Field<
string>(
"empresa")) +
1438 " AND ALMACEN = " + DB.SQLString(item.Field<
string>(
"almacen")) +
1439 " AND FECHA = " + DB.SQLString(FechaMaxima) +
1440 " AND DOCUMENTO = " + DB.SQLString(lcDocumento);
1441 DB.SQLExec(lcSql, ref ldtRegulari);
1443 if (ldtRegulari.Rows.Count == 0)
1449 lnLinia = Convert.ToInt32(ldtRegulari.Compute(
"MAX(LINIA)",
""));
1452 lcOldCodi = item.Field<
string>(
"empresa") + item.Field<
string>(
"almacen");
1453 lcOldArticulo =
"%&/(";
1457 if (lcOldArticulo != item.Field<
string>(
"ARTICULO") + item.Field<
string>(
"TALLA") + item.Field<
string>(
"COLOR"))
1459 lnLinia = lnLinia + 1;
1461 DataRow newRowRegulari = ldtRegulari.NewRow();
1463 newRowRegulari[
"EMPRESA"] = item.Field<
string>(
"empresa");
1464 newRowRegulari[
"ALMACEN"] = item.Field<
string>(
"ALMACEN");
1465 newRowRegulari[
"FECHA"] = FechaMaxima;
1466 newRowRegulari[
"FECHASTOCK"] = FechaMaxima;
1467 newRowRegulari[
"ARTICULO"] = item.Field<
string>(
"ARTICULO");
1468 newRowRegulari[
"UNIDADES"] = item.Field<decimal>(
"UNIDADES");
1469 newRowRegulari[
"PESO"] = item.Field<decimal>(
"PESO");
1470 newRowRegulari[
"LINIA"] = lnLinia;
1471 newRowRegulari[
"TALLA"] = item.Field<
string>(
"TALLA");
1472 newRowRegulari[
"COLOR"] = item.Field<
string>(
"COLOR");
1473 newRowRegulari[
"PMCOM"] = 0M;
1474 newRowRegulari[
"PMSTOCK"] = 0M;
1475 newRowRegulari[
"DOCUMENTO"] = lcDocumento;
1477 ldtRegulari.Rows.Add(newRowRegulari);
1479 lcOldArticulo = item.Field<
string>(
"ARTICULO") + item.Field<
string>(
"TALLA") + item.Field<
string>(
"COLOR");
1482 if (lcOldArticulo !=
"%&/(")
1484 foreach (DataRow row
in ldtLtregul.Rows)
1486 ImportarStocklotesLtregul(row);
1491 lcSql =
" SELECT * FROM " + DB.SQLDatabase(
"LOTES",
"LTREGUL") +
1492 " WHERE EMPRESA = " + DB.SQLString(item.Field<
string>(
"empresa")) +
1493 " AND ALMACEN = " + DB.SQLString(item.Field<
string>(
"almacen")) +
1494 " AND FECHA = " + DB.SQLString(FechaMaxima) +
1495 " AND DOCUMENTO = " + DB.SQLString(lcDocumento) +
1496 " AND LINIA = " + DB.SQLString(lnLinia);
1497 DB.SQLExec(lcSql, ref ldtLtregul);
1501 DataRow[] rows = ldtRegulari.Select(
"articulo = '" + item.Field<
string>(
"ARTICULO") +
"' and talla ='" + item.Field<
string>(
"TALLA") +
"' and color = '" + item.Field<
string>(
"COLOR") +
"'");
1503 if (rows.Length == 1)
1505 rows[0][
"UNIDADES"] = Convert.ToDecimal(rows[0][
"UNIDADES"]) + item.Field<decimal>(
"UNIDADES");
1506 rows[0][
"PESO"] = Convert.ToDecimal(rows[0][
"PESO"]) + item.Field<decimal>(
"PESO");
1510 DataRow newRowLtregul = ldtLtregul.NewRow();
1513 newRowLtregul[
"EMPRESA"] = item.Field<
string>(
"EMPRESA");
1514 newRowLtregul[
"ALMACEN"] = item.Field<
string>(
"ALMACEN");
1515 newRowLtregul[
"FECHA"] = FechaMaxima;
1516 newRowLtregul[
"LINIA"] = lnLinia;
1517 newRowLtregul[
"DOCUMENTO"] = lcDocumento;
1518 newRowLtregul[
"ARTICULO"] = item.Field<
string>(
"ARTICULO");
1519 newRowLtregul[
"LOTE"] = item.Field<
string>(
"LOTE");
1520 newRowLtregul[
"UNIDADES"] = item.Field<decimal>(
"UNIDADES");
1522 if (item.Field<DateTime?>(
"CADUCIDAD") != null)
1524 newRowLtregul[
"CADUCIDAD"] = item.Field<DateTime?>(
"CADUCIDAD");
1526 newRowLtregul[
"FECHA2"] = FechaMaxima;
1527 newRowLtregul[
"PESO"] = item.Field<decimal>(
"PESO");
1528 newRowLtregul[
"TALLA"] = item.Field<
string>(
"TALLA");
1529 newRowLtregul[
"COLOR"] = item.Field<
string>(
"COLOR");
1531 ldtLtregul.Rows.Add(newRowLtregul);
1535 foreach (DataRow row
in ldtRegulari.Rows)
1537 ImportarStocklotesRegulari(row);
1540 foreach (DataRow row
in ldtLtregul.Rows)
1542 ImportarStocklotesLtregul(row);
1545 ImportarStocklotesRevisarRegularizacion(FechaMaxima);
1549 foreach (DataRow item
in ldtRevisar.Rows)
1551 lcCondicion =
" EMPRESA = " + DB.SQLString(item.Field<
string>(
"empresa")) +
" AND ALMACEN = " + DB.SQLString(item.Field<
string>(
"almacen"));
1554 lcSql =
"DELETE FROM " + DB.SQLDatabase(
"LOTES",
"STOCKLOTES") +
1555 " WHERE " + lcCondicion;
1559 lcSql =
"DELETE FROM " + DB.SQLDatabase(
"GESTION",
"REGULARI") +
1560 " WHERE (DOCUMENTO='SINCRONIZACION' OR DOCUMENTO='STOCKSOFFLINE') " +
1561 " AND " + lcCondicion +
" AND FECHA < " + DB.SQLString(FechaMaxima);
1564 lcSql =
"DELETE FROM " + DB.SQLDatabase(
"LOTES",
"LTREGUL") +
1565 " WHERE (DOCUMENTO='SINCRONIZACION' OR DOCUMENTO='STOCKSOFFLINE') " +
1566 " AND " + lcCondicion +
" AND FECHA < " + DB.SQLString(FechaMaxima);
1577 private static void ImportarStocklotesRevisarRegularizacion(DateTime tdFechaMaxima)
1579 bool llTrobat =
false;
1582 string lcOldCodi =
string.Empty;
1583 string lcOldArticulo =
string.Empty;
1584 string lcDocumento =
string.Empty;
1585 string _regula =
string.Empty;
1586 string _ltregul =
string.Empty;
1588 string lcSql =
string.Empty;
1590 string lcFiltroArticulo =
string.Empty;
1591 string lcFiltroLotes =
string.Empty;
1593 DataTable ldtRegulari =
new DataTable();
1594 DataTable ldtLtregul =
new DataTable();
1598 if (_dtStockLotesOffline != null && _dtStockLotesOffline.Rows.Count > 0)
1601 lcOldArticulo =
"%&/(";
1602 lcDocumento =
"STOCKSOFFLINE";
1605 _dtStockLotesOffline.DefaultView.Sort =
"EMPRESA, ALMACEN, ARTICULO, TALLA, COLOR";
1606 _dtStockLotesOffline = _dtStockLotesOffline.DefaultView.ToTable();
1608 foreach (DataRow item
in _dtStockLotesOffline.Rows)
1611 if (lcOldCodi != item.Field<
string>(
"EMPRESA") + item.Field<
string>(
"ALMACEN"))
1613 if (lcOldCodi !=
"##@@")
1616 foreach (DataRow row
in ldtRegulari.Rows)
1618 lcSql =
" UPDATE " + DB.SQLDatabase(
"GESTION",
"REGULARI") +
1619 " SET UNIDADES = " + DB.SQLString(row.Field<decimal>(
"UNIDADES")) +
1620 " , PESO = " + DB.SQLString(row.Field<decimal>(
"PESO")) +
1621 " WHERE EMPRESA = " + DB.SQLString(row.Field<
string>(
"EMPRESA")) +
1622 " AND ALMACEN = " + DB.SQLString(row.Field<
string>(
"ALMACEN")) +
1623 " AND FECHA = " + DB.SQLString(tdFechaMaxima) +
1624 " AND DOCUMENTO = " + DB.SQLString(lcDocumento);
1630 foreach (DataRow row
in ldtLtregul.Rows)
1632 lcSql =
" UPDATE " + DB.SQLDatabase(
"LOTES",
"LTREGUL") +
1633 " SET UNIDADES = " + DB.SQLString(row.Field<decimal>(
"UNIDADES")) +
1634 " , PESO = " + DB.SQLString(row.Field<decimal>(
"PESO")) +
1635 " WHERE EMPRESA = " + DB.SQLString(row.Field<
string>(
"EMPRESA")) +
1636 " AND ALMACEN = " + DB.SQLString(row.Field<
string>(
"ALMACEN")) +
1637 " AND FECHA = " + DB.SQLString(tdFechaMaxima) +
1638 " AND DOCUMENTO = " + DB.SQLString(lcDocumento) +
1639 " AND LINIA = " + DB.SQLString(lnLinia);
1645 lcSql =
" SELECT * FROM " + DB.SQLDatabase(
"GESTION",
"REGULARI") +
1646 " WHERE EMPRESA = " + DB.SQLString(item.Field<
string>(
"EMPRESA")) +
1647 " AND ALMACEN = " + DB.SQLString(item.Field<
string>(
"ALMACEN")) +
1648 " AND FECHA = " + DB.SQLString(tdFechaMaxima) +
1649 " AND DOCUMENTO = " + DB.SQLString(lcDocumento);
1650 DB.SQLExec(lcSql, ref ldtRegulari);
1652 lcSql =
" SELECT * FROM " + DB.SQLDatabase(
"LOTES",
"LTREGUL") +
1653 " WHERE EMPRESA = " + DB.SQLString(item.Field<
string>(
"EMPRESA")) +
1654 " AND ALMACEN = " + DB.SQLString(item.Field<
string>(
"ALMACEN")) +
1655 " AND FECHA = " + DB.SQLString(tdFechaMaxima) +
1656 " AND DOCUMENTO = " + DB.SQLString(lcDocumento);
1658 DB.SQLExec(lcSql, ref ldtLtregul);
1660 lcOldCodi = item.Field<
string>(
"EMPRESA") + item.Field<
string>(
"ALMACEN");
1664 lcFiltroArticulo =
"ARTICULO = '" + item.Field<
string>(
"ARTICULO").Trim() +
"' and TALLA = '" + item.Field<
string>(
"TALLA").Trim() +
"' and COLOR = '" + item.Field<
string>(
"COLOR").Trim() +
"'";
1665 lcFiltroLotes =
" and LOTE = '" + item.Field<
string>(
"LOTE").Trim() +
"'";
1669 DataRow[] rowstr = ldtRegulari.Select(lcFiltroArticulo);
1671 if (rowstr.Length == 1)
1673 rowstr[0][
"UNIDADES"] = Convert.ToDecimal(rowstr[0][
"UNIDADES"]) - item.Field<decimal>(
"UNIDADES");
1674 rowstr[0][
"PESO"] = Convert.ToDecimal(rowstr[0][
"PESO"]) - item.Field<decimal>(
"PESO");
1676 lnLinia = Convert.ToInt32(rowstr[0][
"LINIA"]);
1682 lcFiltroArticulo = lcFiltroArticulo + lcFiltroLotes +
" AND LINIA = " + DB.SQLString(lnLinia);
1684 DataRow[] rowstrLotes = ldtLtregul.Select(lcFiltroArticulo);
1686 if (rowstrLotes.Length == 1)
1688 rowstrLotes[0][
"UNIDADES"] = Convert.ToDecimal(rowstrLotes[0][
"UNIDADES"]) - item.Field<decimal>(
"UNIDADES");
1689 rowstrLotes[0][
"PESO"] = Convert.ToDecimal(rowstrLotes[0][
"PESO"]) - item.Field<decimal>(
"PESO");
1696 foreach (DataRow row
in ldtRegulari.Rows)
1698 lcSql =
" UPDATE " + DB.SQLDatabase(
"GESTION",
"REGULARI") +
1699 " SET UNIDADES = " + DB.SQLString(row.Field<decimal>(
"UNIDADES")) +
1700 " , PESO = " + DB.SQLString(row.Field<decimal>(
"PESO")) +
1701 " WHERE EMPRESA = " + DB.SQLString(row.Field<
string>(
"EMPRESA")) +
1702 " AND ALMACEN = " + DB.SQLString(row.Field<
string>(
"ALMACEN")) +
1703 " AND FECHA = " + DB.SQLString(tdFechaMaxima) +
1704 " AND DOCUMENTO = " + DB.SQLString(lcDocumento);
1710 foreach (DataRow row
in ldtLtregul.Rows)
1712 lcSql =
" UPDATE " + DB.SQLDatabase(
"LOTES",
"LTREGUL") +
1713 " SET UNIDADES = " + DB.SQLString(row.Field<decimal>(
"UNIDADES")) +
1714 " , PESO = " + DB.SQLString(row.Field<decimal>(
"PESO")) +
1715 " WHERE EMPRESA = " + DB.SQLString(row.Field<
string>(
"EMPRESA")) +
1716 " AND ALMACEN = " + DB.SQLString(row.Field<
string>(
"ALMACEN")) +
1717 " AND FECHA = " + DB.SQLString(tdFechaMaxima) +
1718 " AND DOCUMENTO = " + DB.SQLString(lcDocumento) +
1719 " AND LOTE = " + DB.SQLString(row.Field<
string>(
"LOTE")) +
1720 " AND LINIA = " + DB.SQLString(row.Field<
int>(
"LINIA"));
1727 private static void ImportarStocklotesRegulari(DataRow row)
1729 string lcSql =
" Insert Into " + DB.SQLDatabase(
"GESTION",
"REGULARI") + Environment.NewLine +
1730 " (EMPRESA, ALMACEN, DOCUMENTO, FECHA, FECHASTOCK, OBSERVACIONES, ARTICULO, UNIDADES, LINIA, PMSTOCK, PMCOM, TALLA, COLOR, PESO) " + Environment.NewLine +
1732 DB.SQLString(row.Field<
string>(
"empresa")) +
", " +
1733 DB.SQLString(row.Field<
string>(
"almacen")) +
", " +
1734 DB.SQLString(row.Field<
string>(
"documento")) +
", " +
1735 DB.SQLString(row.Field<DateTime>(
"fecha")) +
", " +
1736 DB.SQLString(row.Field<DateTime>(
"fechastock")) +
", " +
1737 DB.SQLString(row.Field<
string>(
"observaciones")) +
", " +
1738 DB.SQLString(row.Field<
string>(
"articulo")) +
", " +
1739 DB.SQLString(row.Field<decimal>(
"unidades")) +
", " +
1740 DB.SQLString(row.Field<
int>(
"linia")) +
", " +
1741 DB.SQLString(row.Field<decimal>(
"pmstock")) +
", " +
1742 DB.SQLString(row.Field<decimal>(
"pmcom")) +
", " +
1743 DB.SQLString(row.Field<
string>(
"talla")) +
", " +
1744 DB.SQLString(row.Field<
string>(
"color")) +
", " +
1745 DB.SQLString(row.Field<decimal>(
"peso")) +
")" + Environment.NewLine;
1749 private static void ImportarStocklotesLtregul(DataRow row)
1751 string lcSql =
" Insert Into " + DB.SQLDatabase(
"LOTES",
"LTREGUL") + Environment.NewLine +
1752 "(EMPRESA,ALMACEN,FECHA,LINIA,DOCUMENTO,ARTICULO,LOTE,UNIDADES,CADUCIDAD,FECHA2,PESO,TALLA,COLOR) " + Environment.NewLine +
1754 DB.SQLString(row.Field<
string>(
"empresa")) +
", " +
1755 DB.SQLString(row.Field<
string>(
"almacen")) +
", " +
1756 DB.SQLString(row.Field<DateTime>(
"fecha")) +
", " +
1757 DB.SQLString(row.Field<
int>(
"linia")) +
", " +
1758 DB.SQLString(row.Field<
string>(
"documento")) +
", " +
1759 DB.SQLString(row.Field<
string>(
"articulo")) +
", " +
1760 DB.SQLString(row.Field<
string>(
"lote")) +
", " +
1761 DB.SQLString(row.Field<decimal>(
"unidades")) +
", " +
1762 DB.SQLString(row.Field<DateTime?>(
"caducidad")) +
", " +
1763 DB.SQLString(row.Field<DateTime>(
"fecha")) +
", " +
1764 DB.SQLString(row.Field<decimal>(
"peso")) +
", " +
1765 DB.SQLString(row.Field<
string>(
"talla")) +
", " +
1766 DB.SQLString(row.Field<
string>(
"color")) +
")" + Environment.NewLine;
1770 private static bool ImportarLotesDocumentos(RegistroTabRel registro)
1772 bool llNoFerRes =
false;
1774 string lcAlmacen =
string.Empty;
1775 decimal lnUnidades = 0M;
1776 decimal lnPeso = 0M;
1778 string lcDbReal = clsOfflineUtils.ObtenerNombreBdReal(registro._DBPrincipal);
1779 string lcDbReal2 = clsOfflineUtils.ObtenerNombreBdReal(registro._DBSecundaria);
1782 DB.SQLExec(
"SELECT * FROM " + DB.SQLDatabase(
"LOTES",
"STOCKLOTES") +
" WHERE 1 = 2 ", ref _dtStockLotesOffline);
1784 DataTable ldtDatos =
new DataTable();
1785 DB.SQLExec(
"SELECT * FROM [" + _cRaizDataBaseTemporal + registro._DBSecundaria +
"].dbo.[_Secundaria] ", ref ldtDatos);
1787 foreach (DataRow item
in ldtDatos.Rows)
1789 if (item.Field<DateTime>(
"fecha") == DateTime.Today)
1797 switch (registro._TablaSecundaria)
1802 DataRow[] rowstr = _dtStockLotesOffline.Select(
"empresa = '" + item.Field<
string>(
"EMPRESA") +
"' " +
1803 " and articulo = '" + item.Field<
string>(
"ARTICULO") +
"' " +
1804 " and talla = '" + item.Field<
string>(
"TALLA") +
"' " +
1805 " and color = '" + item.Field<
string>(
"COLOR") +
"' " +
1806 " and lote = '" + item.Field<
string>(
"LOTE") +
"' " +
1807 " and almacen = '" + item.Field<
string>(
"ALMDEST") +
"' ");
1809 if (rowstr.Length == 0)
1811 DataRow newRow = _dtStockLotesOffline.NewRow();
1813 newRow[
"EMPRESA"] = item.Field<
string>(
"EMPRESA");
1814 newRow[
"ALMACEN"] = item.Field<
string>(
"almdest");
1815 newRow[
"FECHA"] = DateTime.Today;
1816 newRow[
"ARTICULO"] = item.Field<
string>(
"articulo");
1818 newRow[
"UNIDADES"] = item.Field<decimal>(
"unidades");
1819 newRow[
"PESO"] = item.Field<decimal>(
"peso");
1821 newRow[
"TALLA"] = item.Field<
string>(
"TALLA");
1822 newRow[
"COLOR"] = item.Field<
string>(
"COLOR");
1824 newRow[
"LOTE"] = item.Field<
string>(
"lote");
1826 if (item.Field<DateTime?>(
"caducidad") != null)
1828 newRow[
"CADUCIDAD"] = item.Field<DateTime?>(
"caducidad");
1834 rowstr[0][
"UNIDADES"] = Convert.ToDecimal(rowstr[0][
"UNIDADES"]) + item.Field<decimal>(
"UNIDADES");
1835 rowstr[0][
"PESO"] = Convert.ToDecimal(rowstr[0][
"PESO"]) + item.Field<decimal>(
"PESO");
1838 lcAlmacen = item.Field<
string>(
"ALMORIG");
1839 lnUnidades = (-1) * item.Field<decimal>(
"UNIDADES");
1840 lnPeso = (-1) * item.Field<decimal>(
"PESO");
1851 lcAlmacen = item.Field<
string>(
"ALMACEN");
1852 lnUnidades = item.Field<decimal>(
"UNIDADES");
1853 lnPeso = item.Field<decimal>(
"PESO");
1866 lcAlmacen = item.Field<
string>(
"ALMACEN");
1867 lnUnidades = (-1) * item.Field<decimal>(
"UNIDADES");
1868 lnPeso = (-1) * item.Field<decimal>(
"PESO");
1886 DataRow[] rows = _dtStockLotesOffline.Select(
"empresa = '" + item.Field<
string>(
"EMPRESA") +
"' " +
1887 " and articulo = '" + item.Field<
string>(
"ARTICULO") +
"' " +
1888 " and talla = '" + item.Field<
string>(
"TALLA") +
"' " +
1889 " and color = '" + item.Field<
string>(
"COLOR") +
"' " +
1890 " and lote = '" + item.Field<
string>(
"LOTE") +
"' " +
1891 " and almacen = '" + lcAlmacen +
"' ");
1893 if (rows.Length == 0)
1895 DataRow newRow = _dtStockLotesOffline.NewRow();
1897 newRow[
"EMPRESA"] = item.Field<
string>(
"EMPRESA");
1898 newRow[
"ALMACEN"] = lcAlmacen;
1899 newRow[
"FECHA"] = DateTime.Today;
1900 newRow[
"ARTICULO"] = item.Field<
string>(
"articulo");
1902 newRow[
"UNIDADES"] = lnUnidades;
1903 newRow[
"PESO"] = lnPeso;
1905 newRow[
"TALLA"] = item.Field<
string>(
"TALLA");
1906 newRow[
"COLOR"] = item.Field<
string>(
"COLOR");
1908 newRow[
"LOTE"] = item.Field<
string>(
"lote");
1910 if (item.Field<DateTime?>(
"caducidad") != null)
1912 newRow[
"CADUCIDAD"] = item.Field<DateTime?>(
"caducidad");
1915 _dtStockLotesOffline.Rows.Add(newRow);
1919 rows[0][
"UNIDADES"] = Convert.ToDecimal(rows[0][
"UNIDADES"]) + lnUnidades;
1920 rows[0][
"PESO"] = Convert.ToDecimal(rows[0][
"PESO"]) + lnPeso;
1930 private static bool TratamientoEspecialRecepcion(OfflineDatosComunicaciones datos, ref RegistroTabRel registro,
ILog_comoffRepository logRepository)
1932 bool llRetorn =
false;
1935 if (!
string.IsNullOrWhiteSpace(registro._DBPrincipal))
1937 llRetorn = CrearTablaTemporal(registro._DBPrincipal, registro._TablaPrincipal, registro._Sufijo, registro._Empresa,
true);
1942 logDto.
TipoDato = clsOfflineUtils.ObtenerTipoDato(registro._Clave);
1944 logDto.
Detalle =
"No existe la tabla " + registro._DBPrincipal +
"!" + registro._TablaPrincipal +
" en el fichero recibido.";
1945 logRepository.
Insert(logDto);
1947 registro._DBPrincipal =
"";
1948 registro._TablaPrincipal =
"";
1955 if (!
string.IsNullOrWhiteSpace(registro._DBSecundaria))
1957 llRetorn = CrearTablaTemporal(registro._DBSecundaria, registro._TablaSecundaria, registro._Sufijo, registro._EmpresaSecundaria,
false);
1962 logDto.
TipoDato = clsOfflineUtils.ObtenerTipoDato(registro._Clave);
1964 logDto.
Detalle =
"No existe la tabla " + registro._DBSecundaria +
"!" + registro._TablaSecundaria +
" en el fichero recibido.";
1965 logRepository.
Insert(logDto);
1967 registro._DBSecundaria =
"";
1968 registro._TablaSecundaria =
"";
1973 switch (registro._TablaPrincipal)
1978 llRetorn = ImportarEntidad(registro);
1985 llRetorn = ImportarCajas(registro);
1991 if (!datos._IsCentral)
1994 llRetorn = ImportarAccesos(registro);
2008 llRetorn = ImportarAlbaranesFacturas(registro);
2017 switch (registro._TablaSecundaria)
2021 if (!datos._IsCentral)
2023 llRetorn = ImportarStocklotes(registro);
2042 if (!datos._IsCentral)
2044 llRetorn = ImportarLotesDocumentos(registro);
2055 llRetorn = ImportarUniUsers(registro);
2060 llRetorn = ImportarAccesoGrup(registro);
2075 private static bool ActualizarDatosRecepcion(OfflineDatosComunicaciones datos, RegistroTabRel registro,
ILog_comoffRepository logRepository,
bool tlAuxiliar =
false)
2077 string lcIndice =
string.Empty;
2078 string lcTaulaTemp =
string.Empty;
2079 string lcTaulaIns =
string.Empty;
2080 string lcTaulaLocal =
string.Empty;
2081 string lcTaulaLocalAux =
string.Empty;
2082 string lcIndiceAux =
string.Empty;
2083 string lcCadenaCamps =
string.Empty;
2084 string lcCadenaOutput =
string.Empty;
2086 string lcSetCampos =
string.Empty;
2088 string lcSql =
string.Empty;
2089 string lcdbReal =
string.Empty;
2090 string lcCondicion =
string.Empty;
2091 string lcCondicionAux =
string.Empty;
2093 string lcDb =
string.Empty;
2094 string lcTaula =
string.Empty;
2095 string lcDbAux =
string.Empty;
2096 string lcTaulaAux =
string.Empty;
2104 lcDb = registro._DBSecundaria;
2105 lcTaula = registro._TablaSecundaria + registro._Sufijo;
2106 lcTaulaLocal = registro._TablaSecundaria;
2109 lcCadenaCamps = ObtenerCamposSelect(lcDb, lcTaula);
2110 lcCadenaOutput = ObtenerCamposSelect(lcDb, lcTaula,
"b.",
true);
2111 lcSetCampos = ObtenerCamposSet(lcDb, lcTaula);
2112 lcIndice = ObtenerCamposIndices(lcDb, lcTaulaLocal);
2114 lcTaulaTemp =
"_Secundaria";
2115 lcTaulaIns =
"_InsertSecun";
2117 if (
string.IsNullOrWhiteSpace(registro._DBPrincipal))
2119 switch (registro._TablaSecundaria)
2128 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2130 lcSql =
" SELECT empresa, numero, linia, ejercicio, MAX(origen) AS ORIGEN, MAX(guid_id) AS GUID_ID, MAX(idtabrel) AS IDTABREL, MAX(created) AS CREATED, MAX(modified) AS MODIFIED " +
2131 " into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2132 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] " +
2133 " GROUP BY empresa, numero, linia, ejercicio ";
2136 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria]");
2138 lcSql =
" SELECT * INTO [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] " +
2139 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] ";
2142 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2152 lcDbAux = registro._DBPrincipal;
2153 lcTaulaAux = registro._TablaPrincipal + registro._Sufijo;
2154 lcTaulaLocalAux = registro._TablaPrincipal;
2156 lcIndiceAux = ObtenerInnerOn(lcDbAux, lcDb, lcTaulaLocalAux, lcTaulaLocal, registro._Relacion, registro._Clave, datos, logRepository);
2158 if (
string.IsNullOrWhiteSpace(lcIndiceAux))
2160 lcIndiceAux = ObtenerCamposIndices(lcDb, lcTaulaLocalAux);
2163 if (!registro._Sobreescribir)
2165 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDbAux +
"].dbo.[_InsertPrin]"))
2168 lcCondicionAux = lcIndiceAux.Trim();
2169 lcCondicionAux = lcCondicionAux.Substring(0, lcCondicionAux.IndexOf(
'='));
2171 switch (registro._TablaSecundaria)
2175 TratamientoEspecial_PedidosVenta(lcDb, registro._Sobreescribir);
2181 TratamientoEspecial_PedidosCompra(lcDb, registro._Sobreescribir);
2187 TratamientoEspecial_PedidosVenta(lcDb, registro._Sobreescribir);
2188 TratamientoEspecial_DepositosVenta(lcDb, registro._Sobreescribir);
2194 TratamientoEspecial_PedidosCompra(lcDb, registro._Sobreescribir);
2195 TratamientoEspecial_DepositosCompra(lcDb, registro._Sobreescribir);
2201 TratamientoEspecial_PedidosVenta(lcDb, registro._Sobreescribir);
2202 TratamientoEspecial_DepositosVenta(lcDb, registro._Sobreescribir);
2203 TratamientoEspecial_AlbaranesVenta(lcDb, registro._Sobreescribir);
2205 if (registro._Clave ==
"FACTURAS")
2207 TratamientoEspecial_FacturasVenta(lcDb, registro._Sobreescribir);
2214 TratamientoEspecial_PedidosCompra(lcDb, registro._Sobreescribir);
2215 TratamientoEspecial_DepositosCompra(lcDb, registro._Sobreescribir);
2216 TratamientoEspecial_AlbaranesCompra(lcDb, registro._Sobreescribir);
2218 if (registro._Clave ==
"FACTURAC")
2220 TratamientoEspecial_FacturasCompra(lcDb, registro._Sobreescribir);
2228 string lcCampoAsi =
"ASI";
2230 switch (registro._ID)
2234 lcCampoAsi =
"ASI_TRANS";
2239 lcCampoAsi =
"ASI_DUA";
2243 if (registro._Clave ==
"FACTURAS" || registro._Clave ==
"FACTURAC")
2245 lcdbReal = clsOfflineUtils.ObtenerNombreBdReal(lcDbAux);
2246 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2248 lcSql =
"SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2249 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2251 " SELECT b.empresa, b.numero " +
2252 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] b " +
2253 " INNER JOIN [" + lcdbReal +
"].dbo.[" + lcTaulaLocalAux +
"] a ON A.EMPRESA = B.EMPRESA And A.ASI = B.ASI " +
2255 " ON A.EMPRESA = B.EMPRESA AND A.numero = B.numero ";
2259 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria]");
2261 lcSql =
" SELECT * INTO [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] " +
2262 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] ";
2265 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2269 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2271 lcSql =
"SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2272 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2274 " SELECT DISTINCT b.empresa, b.numero " +
2275 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] b " +
2276 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDbAux +
"].dbo.[_InsertPrin] a ON A.EMPRESA = B.EMPRESA And A." + lcCampoAsi +
" = B.ASI ) b " +
2277 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO ";
2281 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria]");
2283 lcSql =
" SELECT * INTO [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] " +
2284 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] ";
2287 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2290 ImportarAsientos(datos, registro, logRepository);
2296 if (registro._Clave ==
"FACTURAS" || registro._Clave ==
"FACTURAC")
2298 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2300 lcSql =
"SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2301 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2303 " SELECT b.empresa, b.albaran, b.letra " +
2304 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] b " +
2305 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDbAux +
"].dbo.[_InsertPrin] a ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.ALBARAN " + (registro._Clave ==
"FACTURAS" ?
" AND A.LETRA = B.LETRA " :
"") +
" ) b " +
2306 " ON A.EMPRESA = B.EMPRESA AND A.ALBARAN = B.ALBARAN " + (registro._Clave ==
"FACTURAS" ?
" AND A.LETRA = B.LETRA " :
"");
2310 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria]");
2312 lcSql =
" SELECT * INTO [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] " +
2313 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] ";
2316 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2320 lcdbReal = clsOfflineUtils.ObtenerNombreBdReal(lcDbAux);
2321 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2323 lcSql =
"SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2324 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2326 " SELECT b.empresa, b.albaran, b.letra " +
2327 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] b " +
2328 " INNER JOIN [" + lcdbReal +
"].dbo.[" + lcTaulaLocalAux +
"] a ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.ALBARAN AND A.LETRA = B.LETRA " +
2330 " ON A.EMPRESA = B.EMPRESA AND A.ALBARAN = B.ALBARAN AND A.LETRA = B.LETRA ";
2334 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria]");
2336 lcSql =
" SELECT * INTO [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] " +
2337 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] ";
2340 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2348 lcdbReal = clsOfflineUtils.ObtenerNombreBdReal(lcDbAux);
2349 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2351 lcSql =
"SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2352 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2354 " SELECT b.empresa, b.numero, b.letra " +
2355 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] b " +
2356 " INNER JOIN [" + lcdbReal +
"].dbo.[" + lcTaulaLocalAux +
"] a ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO AND A.LETRA = B.LETRA " +
2358 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.LETRA ";
2362 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria]");
2364 lcSql =
" SELECT * INTO [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] " +
2365 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] ";
2368 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2374 if (registro._Clave ==
"FACTURAS" || registro._Clave ==
"FACTURAC")
2376 lcdbReal = clsOfflineUtils.ObtenerNombreBdReal(lcDbAux);
2377 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2379 lcSql =
"SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2380 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2383 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] b " +
2384 " INNER JOIN [" + lcdbReal +
"].dbo.[" + lcTaulaLocalAux +
"] a ON " + lcIndiceAux +
2390 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria]");
2392 lcSql =
" SELECT * INTO [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] " +
2393 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] ";
2396 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2400 lcSql =
" DELETE FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] " +
2401 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] b " +
2402 " LEFT JOIN [" + _cRaizDataBaseTemporal + lcDbAux +
"].dbo.[_InsertPrin] a " +
2403 " ON " + lcIndiceAux +
2404 " WHERE " + lcCondicionAux +
" is null ";
2415 switch (registro._TablaSecundaria)
2419 TratamientoEspecial_PedidosVenta(lcDb, registro._Sobreescribir);
2425 TratamientoEspecial_PedidosCompra(lcDb, registro._Sobreescribir);
2431 TratamientoEspecial_PedidosVenta(lcDb, registro._Sobreescribir);
2432 TratamientoEspecial_DepositosVenta(lcDb, registro._Sobreescribir);
2438 TratamientoEspecial_PedidosCompra(lcDb, registro._Sobreescribir);
2439 TratamientoEspecial_DepositosCompra(lcDb, registro._Sobreescribir);
2445 TratamientoEspecial_PedidosVenta(lcDb, registro._Sobreescribir);
2446 TratamientoEspecial_DepositosVenta(lcDb, registro._Sobreescribir);
2447 TratamientoEspecial_AlbaranesVenta(lcDb, registro._Sobreescribir);
2449 if (registro._Clave ==
"FACTURAS")
2451 TratamientoEspecial_FacturasVenta(lcDb, registro._Sobreescribir);
2458 TratamientoEspecial_PedidosCompra(lcDb, registro._Sobreescribir);
2459 TratamientoEspecial_DepositosCompra(lcDb, registro._Sobreescribir);
2460 TratamientoEspecial_AlbaranesCompra(lcDb, registro._Sobreescribir);
2462 if (registro._Clave ==
"FACTURAC")
2464 TratamientoEspecial_FacturasCompra(lcDb, registro._Sobreescribir);
2474 string lcCampoAsi =
"ASI";
2476 switch (registro._ID)
2480 lcCampoAsi =
"ASI_TRANS";
2485 lcCampoAsi =
"ASI_DUA";
2489 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2491 lcSql =
"SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2492 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2494 " SELECT DISTINCT b.empresa, b.numero " +
2495 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] b " +
2496 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDbAux +
"].dbo.[_Principal] a ON A.EMPRESA = B.EMPRESA And A." + lcCampoAsi +
" = B.ASI ) b " +
2497 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO ";
2501 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria]");
2503 lcSql =
" SELECT * INTO [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] " +
2504 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] ";
2507 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2509 ImportarAsientos(datos, registro, logRepository);
2515 if (registro._Clave ==
"FACTURAS" || registro._Clave ==
"FACTURAC")
2518 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2520 lcSql =
"SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2521 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2523 " SELECT b.empresa, b.albaran, b.letra " +
2524 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] b " +
2525 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Principal] a ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.ALBARAN " + (registro._Clave ==
"FACTURAS" ?
" AND A.LETRA = B.LETRA " :
"") +
" ) b " +
2526 " ON A.EMPRESA = B.EMPRESA AND A.ALBARAN = B.ALBARAN " + (registro._Clave ==
"FACTURAS" ?
" AND A.LETRA = B.LETRA " :
"");
2530 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria]");
2532 lcSql =
" SELECT * INTO [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] " +
2533 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] ";
2536 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2546 lcDb = registro._DBPrincipal;
2547 lcTaula = registro._TablaPrincipal + registro._Sufijo;
2548 lcTaulaLocal = registro._TablaPrincipal;
2551 lcCadenaCamps = ObtenerCamposSelect(lcDb, lcTaula);
2552 lcCadenaOutput = ObtenerCamposSelect(lcDb, lcTaula,
"b.",
true);
2553 lcSetCampos = ObtenerCamposSet(lcDb, lcTaula);
2554 lcIndice = ObtenerCamposIndices(lcDb, lcTaulaLocal);
2556 lcTaulaTemp =
"_Principal";
2557 lcTaulaIns =
"_InsertPrin";
2560 _TextStepDetalle =
"Recibiendo datos tabla " + lcDb +
"!" + lcTaulaLocal;
2561 _TextStepProgreso = _TextStepDetalle;
2562 _PorcenProgreso = IncrementarBarraProgreso();
2565 lcdbReal = clsOfflineUtils.ObtenerNombreBdReal(lcDb);
2568 ActualizarDatosRecepcionEspecial(datos, registro, lcTaulaTemp, lcTaulaLocal, lcDb, lcTaula, logRepository);
2570 if (registro._TablaSecundaria ==
"CTRL_ASIEN" && clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_ControlAsientos]"))
2572 lcTaulaTemp =
"_ControlAsientos";
2575 if (registro._Sobreescribir)
2577 DataTable ldtUpdate =
new DataTable();
2579 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[" + lcTaulaLocal +
"] " +
2580 " SET " + lcSetCampos +
2581 " OUTPUT " + lcCadenaOutput +
2582 " FROM [" + lcdbReal +
"].dbo.[" + lcTaulaLocal +
"] a " +
2583 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[" + lcTaulaTemp +
"] b " +
2586 DB.SQLExec(lcSql, ref ldtUpdate);
2588 if (ldtUpdate != null && ldtUpdate.Rows.Count > 0)
2590 RegistroDatosRecepcion(datos, registro, ldtUpdate, lcTaulaLocal, lcDb,
false, logRepository);
2594 conDatosStock = conDatosStock || clsOfflineUtils.EsTipoDatoDocumento(registro._Clave);
2598 TratamientoEspecialTablas(datos, registro, ldtUpdate, logRepository);
2604 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[" + lcTaulaIns +
"]");
2607 lcCondicion = lcIndice.Trim();
2608 lcCondicion = lcCondicion.Substring(0, lcCondicion.IndexOf(
'='));
2612 lcSql =
"SELECT b.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[" + lcTaulaIns +
"] " +
2613 " FROM [" + lcdbReal +
"].dbo.[" + lcTaulaLocal +
"] a " +
2614 " RIGHT JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[" + lcTaulaTemp +
"] b " +
2616 " WHERE " + lcCondicion +
" is null ";
2622 if (tlAuxiliar && !
string.IsNullOrWhiteSpace(lcDbAux))
2624 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Control]");
2628 lcCondicionAux = lcIndiceAux.Trim();
2629 lcCondicionAux = lcCondicionAux.Substring(0, lcCondicionAux.IndexOf(
'='));
2633 switch (lcTaulaLocal)
2637 string lcCampoAsi =
"ASI";
2639 switch (registro._ID)
2643 lcCampoAsi =
"ASI_TRANS";
2648 lcCampoAsi =
"ASI_DUA";
2652 lcSql =
" SELECT c.* INTO [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Control] " +
2653 " From [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[" + lcTaulaIns +
"] as c " +
2656 " From [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[" + lcTaulaIns +
"] as A " +
2657 " Where Exists ( " +
2659 " From [" + _cRaizDataBaseTemporal + lcDbAux +
"].dbo.[_Principal] as B " +
2660 " Where A.EMPRESA = B.EMPRESA And A.ASI = B." + lcCampoAsi +
" ) " +
2661 " ) d ON c.EMPRESA = d.EMPRESA AND c.NUMERO = d.NUMERO ";
2667 lcSql =
string.Empty;
2671 if (!
string.IsNullOrWhiteSpace(lcSql))
2675 lcTaulaIns =
"_Control";
2682 DataTable ldtInsert =
new DataTable();
2683 lcSql =
"SELECT " + lcCadenaCamps +
" FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[" + lcTaulaIns +
"] ";
2684 DB.SQLExec(lcSql, ref ldtInsert);
2686 if (ldtInsert != null && ldtInsert.Rows.Count > 0)
2688 lcSql =
"INSERT INTO [" + lcdbReal +
"].dbo.[" + lcTaulaLocal +
"] (" + lcCadenaCamps +
") " +
2689 "SELECT " + lcCadenaCamps +
" FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[" + lcTaulaIns +
"] ";
2692 RegistroDatosRecepcion(datos, registro, ldtInsert, lcTaulaLocal, lcDb,
true, logRepository);
2696 conDatosStock = conDatosStock || clsOfflineUtils.EsTipoDatoDocumento(registro._Clave);
2700 TratamientoEspecialTablas(datos, registro, ldtInsert, logRepository);
2706 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertSecun]");
2707 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Control]");
2712 private static void TratamientoEspecial_PedidosVenta(
string lcDb,
bool tlSobreescribir)
2715 string lcdbReal = clsOfflineUtils.ObtenerNombreBdReal(lcDb);
2716 string lcSql =
string.Empty;
2718 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_PRESUV_ESPECIAL"))
2720 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2722 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2723 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_PRESUV_ESPECIAL a " +
2725 " SELECT DISTINCT a.empresa, SUBSTRING(a.DOC_NUM, 1, 10) as numero, SUBSTRING(a.doc_num, 11, 2) as letra " +
2726 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2727 (!tlSobreescribir ?
" INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertPrin] b ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO And A.LETRA = B.LETRA " :
"") +
2728 " WHERE a.DOC = 3) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra ";
2732 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[C_PRESUV] " +
2733 " SET " + ObtenerCamposSet(lcDb,
"C_PRESUV_ESPECIAL") +
2734 " FROM [" + lcdbReal +
"].dbo.[C_PRESUV] a " +
2735 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
2736 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra ";
2740 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2743 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.D_PRESUV_ESPECIAL"))
2745 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2747 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2748 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.D_PRESUV_ESPECIAL a " +
2750 " SELECT DISTINCT a.empresa, SUBSTRING(a.DOC_NUM, 1, 10) as numero, SUBSTRING(a.doc_num, 11, 2) as letra " +
2751 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2752 (!tlSobreescribir ?
" INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertPrin] b ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO And A.LETRA = B.LETRA " :
"") +
2753 " WHERE a.DOC = 3) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra ";
2757 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[D_PRESUV] " +
2758 " SET " + ObtenerCamposSet(lcDb,
"D_PRESUV_ESPECIAL") +
2759 " FROM [" + lcdbReal +
"].dbo.[D_PRESUV] a " +
2760 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
2761 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra AND A.LINIA = B.LINIA ";
2765 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2769 private static void TratamientoEspecial_PedidosCompra(
string lcDb,
bool tlSobreescribir)
2775 private static void TratamientoEspecial_DepositosVenta(
string lcDb,
bool tlSobreescribir)
2778 string lcdbReal = clsOfflineUtils.ObtenerNombreBdReal(lcDb);
2779 string lcSql =
string.Empty;
2781 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_PEDIVE_ESPECIAL"))
2783 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2785 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2786 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_PEDIVE_ESPECIAL a " +
2788 " SELECT DISTINCT a.empresa, SUBSTRING(a.DOC_NUM, 1, 10) as numero, SUBSTRING(a.doc_num, 11, 2) as letra " +
2789 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2790 (!tlSobreescribir ?
" INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertPrin] b ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO And A.LETRA = B.LETRA " :
"") +
2791 " WHERE a.DOC = 1) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra ";
2795 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[C_PEDIVE] " +
2796 " SET " + ObtenerCamposSet(lcDb,
"C_PEDIVE_ESPECIAL") +
2797 " FROM [" + lcdbReal +
"].dbo.[C_PEDIVE] a " +
2798 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
2799 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra ";
2803 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2806 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.D_PEDIVE_ESPECIAL"))
2808 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2810 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2811 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.D_PEDIVE_ESPECIAL a " +
2813 " SELECT DISTINCT a.empresa, SUBSTRING(a.DOC_NUM, 1, 10) as numero, SUBSTRING(a.doc_num, 11, 2) as letra " +
2814 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2815 (!tlSobreescribir ?
" INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertPrin] b ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO And A.LETRA = B.LETRA " :
"") +
2816 " WHERE a.DOC = 1) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra ";
2820 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[D_PEDIVE] " +
2821 " SET " + ObtenerCamposSet(lcDb,
"D_PEDIVE_ESPECIAL") +
2822 " FROM [" + lcdbReal +
"].dbo.[D_PEDIVE] a " +
2823 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
2824 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra AND A.LINIA = B.LINIA ";
2828 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2831 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_ALBDEP_ESPECIAL"))
2833 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2835 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2836 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_ALBDEP_ESPECIAL a " +
2838 " SELECT DISTINCT a.empresa, SUBSTRING(a.DOC_NUM, 1, 10) as numero, SUBSTRING(a.doc_num, 11, 2) as letra " +
2839 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2840 (!tlSobreescribir ?
" INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertPrin] b ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO And A.LETRA = B.LETRA " :
"") +
2841 " WHERE a.DOC = 2) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra ";
2845 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[C_ALBDEP] " +
2846 " SET " + ObtenerCamposSet(lcDb,
"C_ALBDEP_ESPECIAL") +
2847 " FROM [" + lcdbReal +
"].dbo.[C_ALBDEP] a " +
2848 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
2849 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra ";
2853 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2856 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.D_ALBDEP_ESPECIAL"))
2858 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2860 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2861 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.D_ALBDEP_ESPECIAL a " +
2863 " SELECT DISTINCT a.empresa, SUBSTRING(a.DOC_NUM, 1, 10) as numero, SUBSTRING(a.doc_num, 11, 2) as letra " +
2864 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2865 (!tlSobreescribir ?
" INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertPrin] b ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO And A.LETRA = B.LETRA " :
"") +
2866 " WHERE a.DOC = 2) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra ";
2870 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[D_ALBDEP] " +
2871 " SET " + ObtenerCamposSet(lcDb,
"D_ALBDEP_ESPECIAL") +
2872 " FROM [" + lcdbReal +
"].dbo.[D_ALBDEP] a " +
2873 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
2874 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra AND A.LINIA = B.LINIA ";
2878 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2882 private static void TratamientoEspecial_DepositosCompra(
string lcDb,
bool tlSobreescribir)
2885 string lcdbReal = clsOfflineUtils.ObtenerNombreBdReal(lcDb);
2886 string lcSql =
string.Empty;
2888 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_PEDICO_ESPECIAL"))
2890 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2892 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2893 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_PEDICO_ESPECIAL a " +
2895 " SELECT DISTINCT a.empresa, a.DOC_NUM as numero " +
2896 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2897 (!tlSobreescribir ?
" INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertPrin] b ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO AND A.PROVEEDOR = B.PROVEEDOR " :
"") +
2898 " WHERE a.DOC = 1) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO ";
2902 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[C_PEDICO] " +
2903 " SET " + ObtenerCamposSet(lcDb,
"C_PEDICO_ESPECIAL") +
2904 " FROM [" + lcdbReal +
"].dbo.[C_PEDICO] a " +
2905 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
2906 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO ";
2910 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2913 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.D_PEDICO_ESPECIAL"))
2915 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2917 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2918 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.D_PEDICO_ESPECIAL a " +
2920 " SELECT DISTINCT a.empresa, a.DOC_NUM as numero " +
2921 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2922 (!tlSobreescribir ?
" INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertPrin] b ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO And A.PROVEEDOR = B.PROVEEDOR " :
"") +
2923 " WHERE a.DOC = 1) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO ";
2927 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[D_PEDICO] " +
2928 " SET " + ObtenerCamposSet(lcDb,
"D_PEDICO_ESPECIAL") +
2929 " FROM [" + lcdbReal +
"].dbo.[D_PEDICO] a " +
2930 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
2931 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LINIA = B.LINIA ";
2935 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2938 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_DEPCOM_ESPECIAL"))
2940 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2942 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2943 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_DEPCOM_ESPECIAL a " +
2945 " SELECT DISTINCT a.empresa, a.DOC_NUM as numero " +
2946 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2947 (!tlSobreescribir ?
" INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertPrin] b ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO AND A.PROVEEDOR = B.PROVEEDOR " :
"") +
2948 " WHERE a.DOC = 3) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO ";
2952 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[C_DEPCOM] " +
2953 " SET " + ObtenerCamposSet(lcDb,
"C_DEPCOM_ESPECIAL") +
2954 " FROM [" + lcdbReal +
"].dbo.[C_DEPCOM] a " +
2955 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
2956 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO ";
2960 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2963 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.D_DEPCOM_ESPECIAL"))
2965 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2967 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
2968 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.D_DEPCOM_ESPECIAL a " +
2970 " SELECT DISTINCT a.empresa, a.DOC_NUM as numero " +
2971 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
2972 (!tlSobreescribir ?
" INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertPrin] b ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO And A.PROVEEDOR = B.PROVEEDOR " :
"") +
2973 " WHERE a.DOC = 3) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO ";
2977 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[D_DEPCOM] " +
2978 " SET " + ObtenerCamposSet(lcDb,
"D_DEPCOM_ESPECIAL") +
2979 " FROM [" + lcdbReal +
"].dbo.[D_DEPCOM] a " +
2980 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
2981 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LINIA = B.LINIA ";
2985 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2989 private static void TratamientoEspecial_AlbaranesVenta(
string lcDb,
bool tlSobreescribir)
2992 string lcdbReal = clsOfflineUtils.ObtenerNombreBdReal(lcDb);
2993 string lcSql =
string.Empty;
2995 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_PEDIVE_ESPECIAL"))
2997 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
2999 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
3000 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_PEDIVE_ESPECIAL a " +
3002 " SELECT DISTINCT a.empresa, SUBSTRING(a.DOC_NUM, 1, 10) as numero, SUBSTRING(a.doc_num, 11, 2) as letra " +
3003 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
3004 (!tlSobreescribir ?
" INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertPrin] b ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO And A.LETRA = B.LETRA " :
"") +
3005 " WHERE a.DOC = 1) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra ";
3009 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[C_PEDIVE] " +
3010 " SET " + ObtenerCamposSet(lcDb,
"C_PEDIVE_ESPECIAL") +
3011 " FROM [" + lcdbReal +
"].dbo.[C_PEDIVE] a " +
3012 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
3013 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra ";
3017 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
3020 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.D_PEDIVE_ESPECIAL"))
3022 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
3024 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
3025 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.D_PEDIVE_ESPECIAL a " +
3027 " SELECT DISTINCT a.empresa, SUBSTRING(a.DOC_NUM, 1, 10) as numero, SUBSTRING(a.doc_num, 11, 2) as letra " +
3028 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
3029 (!tlSobreescribir ?
" INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertPrin] b ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO And A.LETRA = B.LETRA " :
"") +
3030 " WHERE a.DOC = 1) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra ";
3034 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[D_PEDIVE] " +
3035 " SET " + ObtenerCamposSet(lcDb,
"D_PEDIVE_ESPECIAL") +
3036 " FROM [" + lcdbReal +
"].dbo.[D_PEDIVE] a " +
3037 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
3038 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra AND A.LINIA = B.LINIA ";
3042 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
3046 private static void TratamientoEspecial_AlbaranesCompra(
string lcDb,
bool tlSobreescribir)
3049 string lcdbReal = clsOfflineUtils.ObtenerNombreBdReal(lcDb);
3050 string lcSql =
string.Empty;
3052 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_PEDICO_ESPECIAL"))
3054 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
3056 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
3057 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_PEDICO_ESPECIAL a " +
3059 " SELECT DISTINCT a.empresa, a.DOC_NUM as numero " +
3060 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
3061 (!tlSobreescribir ?
" INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertPrin] b ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO AND A.PROVEEDOR = B.PROVEEDOR " :
"") +
3062 " WHERE a.DOC = 1) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO ";
3066 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[C_PEDICO] " +
3067 " SET " + ObtenerCamposSet(lcDb,
"C_PEDICO_ESPECIAL") +
3068 " FROM [" + lcdbReal +
"].dbo.[C_PEDICO] a " +
3069 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
3070 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO ";
3074 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
3077 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.D_PEDICO_ESPECIAL"))
3079 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
3081 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
3082 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.D_PEDICO_ESPECIAL a " +
3084 " SELECT DISTINCT a.empresa, a.DOC_NUM as numero " +
3085 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
3086 (!tlSobreescribir ?
" INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_InsertPrin] b ON A.EMPRESA = B.EMPRESA And A.NUMERO = B.NUMERO And A.PROVEEDOR = B.PROVEEDOR " :
"") +
3087 " WHERE a.DOC = 1) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO ";
3091 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[D_PEDICO] " +
3092 " SET " + ObtenerCamposSet(lcDb,
"D_PEDICO_ESPECIAL") +
3093 " FROM [" + lcdbReal +
"].dbo.[D_PEDICO] a " +
3094 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
3095 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LINIA = B.LINIA ";
3099 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
3103 private static void TratamientoEspecial_FacturasVenta(
string lcDb,
bool tlSobreescribir)
3106 string lcdbReal = clsOfflineUtils.ObtenerNombreBdReal(lcDb);
3107 string lcSql =
string.Empty;
3109 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_ALBVEN_ESPECIAL"))
3111 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
3113 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
3114 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_ALBVEN_ESPECIAL a " +
3116 " SELECT DISTINCT a.empresa, a.numero, a.letra " +
3117 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
3118 " ) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.LETRA ";
3122 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[C_ALBVEN] " +
3123 " SET " + ObtenerCamposSet(lcDb,
"C_ALBVEN_ESPECIAL") +
3124 " FROM [" + lcdbReal +
"].dbo.[C_ALBVEN] a " +
3125 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
3126 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.LETRA = B.letra ";
3130 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
3134 private static void TratamientoEspecial_FacturasCompra(
string lcDb,
bool tlSobreescribir)
3137 string lcdbReal = clsOfflineUtils.ObtenerNombreBdReal(lcDb);
3138 string lcSql =
string.Empty;
3140 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_ALBCOM_ESPECIAL"))
3142 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
3144 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] " +
3145 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.C_ALBCOM_ESPECIAL a " +
3147 " SELECT DISTINCT a.empresa, a.numero, a.proveedor " +
3148 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Secundaria] a " +
3149 " ) b ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.PROVEEDOR = B.PROVEEDOR ";
3153 lcSql =
" UPDATE [" + lcdbReal +
"].dbo.[C_ALBCOM] " +
3154 " SET " + ObtenerCamposSet(lcDb,
"C_ALBCOM_ESPECIAL") +
3155 " FROM [" + lcdbReal +
"].dbo.[C_ALBCOM] a " +
3156 " INNER JOIN [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial] b " +
3157 " ON A.EMPRESA = B.EMPRESA AND A.NUMERO = B.NUMERO AND A.PROVEEDOR = B.PROVEEDOR ";
3161 DB.SQLExec(
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[_Especial]");
3165 private static void TratamientoEspecial_Compras(RegistroTabRel registro)
3167 string lcSql =
string.Empty;
3168 DataTable table =
new DataTable();
3170 if (clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal +
"COMUNES].dbo.COMPRAS" + registro._Sufijo))
3172 lcSql =
" SELECT DISTINCT " + registro._Compras +
" AS Serie FROM [" + _cRaizDataBaseTemporal +
"COMUNES].dbo.COMPRAS" + registro._Sufijo;
3173 DB.SQLExec(lcSql, ref table);
3175 if (table.Rows.Count > 0)
3178 string lcCadenaCamps = ObtenerCamposSelect(
"COMUNES",
"COMPRAS" + registro._Sufijo);
3179 string lcSetCampos = ObtenerCamposSet(
"COMUNES",
"COMPRAS" + registro._Sufijo);
3180 string lcIndice = ObtenerCamposIndices(
"COMUNES",
"COMPRAS");
3182 if (registro._Sobreescribir)
3184 lcSql =
" UPDATE [" + clsOfflineUtils.ObtenerNombreBdReal(
"COMUNES") +
"].dbo.[" +
"COMPRAS" +
"] " +
3185 " SET " + lcSetCampos +
3186 " FROM [" + clsOfflineUtils.ObtenerNombreBdReal(
"COMUNES") +
"].dbo.[" +
"COMPRAS" +
"] a " +
3187 " INNER JOIN [" + _cRaizDataBaseTemporal +
"COMUNES" +
"].dbo.[" +
"COMPRAS" + registro._Sufijo +
"] b " +
3192 lcSql =
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"COMUNES" +
"].dbo.[_Especial] ";
3196 string lcCondicion = lcIndice.Trim();
3197 lcCondicion = lcCondicion.Substring(0, lcCondicion.IndexOf(
'='));
3200 lcSql =
"SELECT b.* into [" + _cRaizDataBaseTemporal +
"COMUNES" +
"].dbo.[_Especial] " +
3201 " FROM [" + clsOfflineUtils.ObtenerNombreBdReal(
"COMUNES") +
"].dbo.[" +
"COMPRAS" +
"] a " +
3202 " RIGHT JOIN [" + _cRaizDataBaseTemporal +
"COMUNES" +
"].dbo.[" +
"COMPRAS" + registro._Sufijo +
"] b " +
3204 " WHERE " + lcCondicion +
" is null ";
3209 lcSql =
"INSERT INTO [" + clsOfflineUtils.ObtenerNombreBdReal(
"COMUNES") +
"].dbo.[" +
"COMPRAS" +
"] (" + lcCadenaCamps +
") " +
3210 "SELECT " + lcCadenaCamps +
" FROM [" + _cRaizDataBaseTemporal +
"COMUNES" +
"].dbo.[_Especial] ";
3213 lcSql =
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"COMUNES" +
"].dbo.[_Especial] ";
3219 private static void TratamientoEspecial_CriterioCaja(OfflineDatosComunicaciones datos, RegistroTabRel registro,
string lcCampo,
ILog_comoffRepository logRepository)
3221 string lcSql =
string.Empty;
3222 DataTable table =
new DataTable();
3224 lcSql =
" SELECT empresa, " + lcCampo +
" AS asi FROM [" + _cRaizDataBaseTemporal + registro._DBSecundaria +
"].dbo." + registro._TablaSecundaria + registro._Sufijo;
3225 DB.SQLExec(lcSql, ref table);
3227 if (table.Rows.Count > 0)
3229 TratamientoEspecial_Asientos(datos, registro, table, logRepository);
3233 private static void TratamientoEspecialTablas(OfflineDatosComunicaciones datos, RegistroTabRel registro, DataTable ldtData,
ILog_comoffRepository logRepository)
3235 switch (registro._TablaSecundaria)
3240 if (!
string.IsNullOrWhiteSpace(registro._Otrasien))
3242 TratamientoEspecial_ASI(registro,
"OTRASIEN", registro._Otrasien, ldtData);
3245 if (!
string.IsNullOrWhiteSpace(registro._Ivareper))
3247 TratamientoEspecial_ASI(registro,
"IVAREPER", registro._Ivareper, ldtData);
3250 if (!
string.IsNullOrWhiteSpace(registro._Ivasopor))
3252 TratamientoEspecial_ASI(registro,
"IVASOPOR", registro._Ivasopor, ldtData);
3255 if (!
string.IsNullOrWhiteSpace(registro._Iva_exen))
3257 TratamientoEspecial_ASI(registro,
"IVA_EXEN", registro._Iva_exen, ldtData);
3260 if (!
string.IsNullOrWhiteSpace(registro._Retreper))
3262 TratamientoEspecial_ASI(registro,
"RETREPER", registro._Retreper, ldtData);
3265 if (!
string.IsNullOrWhiteSpace(registro._Retsopor))
3267 TratamientoEspecial_ASI(registro,
"RETSOPOR", registro._Retsopor, ldtData);
3270 if (!
string.IsNullOrWhiteSpace(registro._Eos))
3272 TratamientoEspecial_ASI(registro,
"EOS", registro._Eos, ldtData);
3279 if (!
string.IsNullOrWhiteSpace(registro._Asientos))
3281 switch (registro._TablaSecundaria)
3286 TratamientoEspecial_CriterioCaja(datos, registro,
"ASIRECC", logRepository);
3291 TratamientoEspecial_Asientos(datos, registro, ldtData, logRepository);
3300 private static void TratamientoEspecial_Asientos(OfflineDatosComunicaciones datos, RegistroTabRel registro, DataTable tdtData,
ILog_comoffRepository logRepository)
3302 DataTable ldtDatosASI =
new DataTable();
3303 DataTable ldtDatosCTRL =
new DataTable();
3304 string lcSql =
string.Empty;
3305 string lcSelect =
string.Empty;
3306 string lcWhere =
string.Empty;
3308 if (!DB._SQLExisteTablaBBDD(_cRaizDataBaseTemporal +
"GESTION",
"ASIENTOS" + registro._Sufijo))
3313 lcSql =
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASIORIGEN] ";
3315 lcSql +=
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASITEMPORAL] ";
3317 lcSql +=
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASIINSERT] ";
3322 int lnColumns = tdtData.Columns.Count;
3323 for (
int i = lnColumns - 1; i >= 0; i--)
3325 if (tdtData.Columns[i].ColumnName.ToLower() !=
"empresa" && tdtData.Columns[i].ColumnName.ToLower() !=
"asi")
3327 tdtData.Columns.RemoveAt(i);
3331 if (
string.IsNullOrWhiteSpace(lcSelect))
3333 if (tdtData.Columns[i].ColumnName.ToLower() ==
"empresa")
3335 lcSelect =
" asi, empresa ";
3339 lcSelect =
" empresa, asi ";
3345 if (!clsOfflineUtils.ExisteDatabaseOffline(_cRaizDataBaseTemporal +
"GESTION"))
3347 CrearDataTable(
"GESTION", _cRaizDataBaseTemporal);
3350 if (!clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal +
"GESTION].dbo.[_ASIORIGEN]"))
3352 lcSql =
" Select " + lcSelect +
" INTO [" + _cRaizDataBaseTemporal +
"GESTION].dbo.[_ASIORIGEN]" +
3353 " From " + DB.SQLDatabase(
"GESTION",
"ASIENTOS") +
" as A Where 1 = 2 ";
3359 InsertarDatosBulkMode(tdtData,
"[" + _cRaizDataBaseTemporal +
"GESTION].dbo.[_ASIORIGEN]");
3361 lcSql =
" From [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[" +
"ASIENTOS" + registro._Sufijo +
"] as c " +
3364 " From [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[" +
"ASIENTOS" + registro._Sufijo +
"] as A " +
3365 " Where Exists ( " +
3367 " From [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASIORIGEN] as B " +
3368 " Where A.EMPRESA=B.EMPRESA And A.ASI = B.ASI ) " +
3369 " ) d ON c.EMPRESA = d.EMPRESA AND c.NUMERO = d.NUMERO ";
3372 DB.SQLExec(
" Select c.* " + lcSql, ref ldtDatosASI);
3374 string lcDbReal = clsOfflineUtils.ObtenerNombreBdReal(
"GESTION");
3375 string lcCondicion =
string.Empty;
3376 string lcIndice =
" A.EMPRESA = B.EMPRESA And A.ASI = B.ASI ";
3377 string lcInnerOn = ObtenerCamposIndices(
"GESTION",
"ASIENTOS");
3379 if (ldtDatosASI != null && ldtDatosASI.Rows.Count > 0)
3381 DB.SQLExec(
" Select c.* " +
" INTO [" + _cRaizDataBaseTemporal +
"GESTION].dbo.[_ASITEMPORAL] " + lcSql);
3383 ImportarAsientos(datos, registro, logRepository,
"_ASITEMPORAL");
3386 lcCondicion = lcIndice.Trim();
3387 lcCondicion = lcCondicion.Substring(0, lcCondicion.IndexOf(
'='));
3389 lcSql =
"SELECT a.* into [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASIINSERT] " +
3390 " FROM [" + lcDbReal +
"].dbo.[ASIENTOS] a " +
3391 " INNER JOIN [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[" +
"ASIENTOS" + registro._Sufijo +
"] b ON " + lcInnerOn +
3392 " INNER JOIN [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASIORIGEN] c ON b.EMPRESA = c.EMPRESA And b.ASI = c.ASI ";
3395 string lcCadenaCamps = ObtenerCamposSelect(
"GESTION",
"ASIENTOS" + registro._Sufijo);
3396 string lcCadenaCampsAlias = ObtenerCamposSelect(
"GESTION",
"ASIENTOS" + registro._Sufijo,
"a.");
3398 lcSql =
" INSERT INTO [" + lcDbReal +
"].dbo.[" +
"ASIENTOS" +
"] (" + lcCadenaCamps +
") " +
3399 " SELECT " + lcCadenaCampsAlias +
" FROM [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASITEMPORAL] a " +
3400 " LEFT JOIN [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASIINSERT] b ON " + lcInnerOn +
3401 " where B.asi is null ";
3404 TratamientoEspecial_ASI(registro,
"OTRASIEN",
"ASI", ldtDatosASI);
3406 lcSql =
" Select a.*, c.NUMERO as NUEVO_NUMERO " +
3407 " from [" + _cRaizDataBaseTemporal +
"OFFLINE" +
"].dbo.CTRL_ASIEN" + registro._Sufijo +
" a " +
3408 " INNER JOIN [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[ASIENTOS" + registro._Sufijo +
"] b ON a.EMPRESA = b.EMPRESA and a.NUMERO = b.NUMERO and a.LINEA = b.LINEA and a.EJERCICIO = " + DB.SQLString(_cAny) +
3409 " INNER JOIN (SELECT a.empresa, a.asi, a.numero " +
3410 " FROM [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASITEMPORAL] a " +
3411 " LEFT JOIN [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASIINSERT] b ON a.empresa = b.empresa AND a.asi = b.asi " +
3412 " WHERE B.asi is null ) c ON b.EMPRESA = c.empresa and b.asi = c.asi ";
3414 DB.SQLExec(lcSql, ref ldtDatosCTRL);
3416 foreach (DataRow item
in ldtDatosCTRL.Rows)
3418 lcWhere =
" WHERE EMPRESA = " + DB.SQLString(item.Field<
string>(
"empresa")) +
3419 " AND LINEA = " + DB.SQLString(item.Field<
int>(
"linea")) +
3420 " AND EJERCICIO = " + DB.SQLString(_cAny);
3422 lcSql =
" DELETE FROM " + DB.SQLDatabase(
"OFFLINE",
"CTRL_ASIEN") + lcWhere +
" AND NUMERO = " + DB.SQLString(item.Field<
int>(
"nuevo_numero")) +
"; " +
3423 " INSERT INTO " + DB.SQLDatabase(
"OFFLINE",
"CTRL_ASIEN") +
3424 " (empresa, numero, linea, ejercicio, origen, idtabrel) " +
3426 DB.SQLString(item.Field<
string>(
"empresa")) +
", " + DB.SQLString(item.Field<
int>(
"nuevo_numero")) +
", " +
3427 DB.SQLString(item.Field<
int>(
"linea")) +
", " + DB.SQLString(_cAny) +
", " +
3428 DB.SQLString(item.Field<
string>(
"origen")) +
", " + DB.SQLString(item.Field<
int>(
"idtabrel")) +
")";
3433 lcSql =
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASIORIGEN] ";
3435 lcSql +=
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASITEMPORAL] ";
3437 lcSql +=
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASIINSERT] ";
3442 private static void TratamientoEspecial_ASI(RegistroTabRel registro,
string tcTabla,
string tcCampo, DataTable tdtData)
3444 DataTable ldtDatosASI =
new DataTable();
3445 string lcSql =
string.Empty;
3447 if (!DB._SQLExisteTablaBBDD(_cRaizDataBaseTemporal +
"GESTION", tcTabla + registro._Sufijo))
3452 lcSql =
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASI] ";
3454 lcSql +=
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASINUEVO] ";
3456 lcSql +=
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASIESPECIAL] ";
3460 if (!clsOfflineUtils.ExisteDatabaseOffline(_cRaizDataBaseTemporal +
"GESTION"))
3462 CrearDataTable(
"GESTION", _cRaizDataBaseTemporal);
3465 if (!clsOfflineUtils.ExisteTablaOffline(
"[" + _cRaizDataBaseTemporal +
"GESTION].dbo.[_ASI]"))
3467 lcSql =
" Select empresa, asi INTO [" + _cRaizDataBaseTemporal +
"GESTION].dbo.[_ASI]" +
3468 " From " + DB.SQLDatabase(
"GESTION",
"ASIENTOS") +
" as A Where 1 = 2 ";
3475 int lnColumns = tdtData.Columns.Count;
3476 for (
int i = lnColumns - 1; i >= 0; i--)
3478 if (tdtData.Columns[i].ColumnName.ToLower() !=
"empresa" && tdtData.Columns[i].ColumnName.ToLower() != tcCampo.ToLower())
3480 tdtData.Columns.RemoveAt(i);
3484 InsertarDatosBulkMode(tdtData,
"[" + _cRaizDataBaseTemporal +
"GESTION].dbo.[_ASI]");
3487 lcSql =
" Select A.* " +
3488 " From [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[" + tcTabla + registro._Sufijo +
"] as A " +
3489 " Where Exists ( " +
3491 " From [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASI] as B " +
3492 " Where A.EMPRESA=B.EMPRESA And A." + tcCampo +
" = B.ASI )";
3495 DB.SQLExec(lcSql, ref ldtDatosASI);
3497 string lcDbReal = clsOfflineUtils.ObtenerNombreBdReal(registro._DBSecundaria);
3498 string lcCondicion =
string.Empty;
3499 string lcIndice =
" A.EMPRESA = B.EMPRESA And A.ASI = B." + tcCampo +
" ";
3500 string lcInnerOn = ObtenerCamposIndices(
"GESTION", tcTabla);
3502 if (ldtDatosASI != null && ldtDatosASI.Rows.Count > 0)
3504 if (registro._Sobreescribir)
3506 string lcSetCampos = ObtenerCamposSet(
"GESTION", tcTabla + registro._Sufijo);
3508 lcSql =
" UPDATE " + DB.SQLDatabase(
"GESTION", tcTabla) +
3509 " SET " + lcSetCampos +
3510 " FROM " + DB.SQLDatabase(
"GESTION", tcTabla) +
" a " +
3511 " INNER JOIN [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[" + tcTabla + registro._Sufijo +
"] b ON " + lcInnerOn +
3512 " INNER JOIN [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASI] c ON b.EMPRESA = c.EMPRESA And b." + tcCampo +
" = c.ASI ";
3518 lcCondicion = lcIndice.Trim();
3519 lcCondicion = lcCondicion.Substring(0, lcCondicion.IndexOf(
'='));
3521 lcSql =
" SELECT a.* into [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASINUEVO] " +
3522 " From [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[" + tcTabla + registro._Sufijo +
"] as a " +
3525 " From [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[" + tcTabla + registro._Sufijo +
"] as c " +
3526 " Where Exists ( " +
3528 " From [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASI] as d " +
3529 " Where c.EMPRESA = d.EMPRESA And c.ASI = d.ASI ) " +
3530 " ) b ON " + lcInnerOn;
3534 string lcCadenaCamps = ObtenerCamposSelect(
"GESTION", tcTabla + registro._Sufijo);
3537 lcSql =
"SELECT b.* into [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASIESPECIAL] " +
3538 " FROM " + DB.SQLDatabase(
"GESTION", tcTabla) +
" a " +
3539 " RIGHT JOIN [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASINUEVO] b " +
3541 " WHERE " + lcCondicion +
" is null ";
3544 lcSql =
" INSERT INTO " + DB.SQLDatabase(
"GESTION", tcTabla) +
" (" + lcCadenaCamps +
") " +
3545 " SELECT " + lcCadenaCamps +
" FROM [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASIESPECIAL] ";
3549 lcSql =
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASI] ";
3551 lcSql +=
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASINUEVO] ";
3553 lcSql +=
"DROP TABLE IF EXISTS [" + _cRaizDataBaseTemporal +
"GESTION" +
"].dbo.[_ASIESPECIAL] ";
3557 private static void ActualizarDatosRecepcionEspecial(OfflineDatosComunicaciones datos, RegistroTabRel registro,
string lcTaulaTemp,
string lcTaulaLocal,
string lcDb,
string lcTaula,
ILog_comoffRepository logRepository)
3559 if (lcTaulaLocal ==
"EMPRESA")
3561 DataTable ldtEmpresa =
new DataTable();
3564 string lcSql =
" SELECT a.CODIGO, a.NOMBRE " +
3565 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[" + lcTaula +
"] a " +
3566 " WHERE a.codigo NOT IN ( " +
3567 " SELECT b.codigo " +
3568 " FROM [" + _cRaizDataBaseTemporal + lcDb +
"].dbo.[" + lcTaulaTemp +
"] b ) ";
3569 DB.SQLExec(lcSql, ref ldtEmpresa);
3571 if (ldtEmpresa != null && ldtEmpresa.Rows.Count > 0)
3573 string lcDetalle =
"Se han detectado en el fichero datos de empresas que no existen en el grupo de empresa que recibe los datos." + Environment.NewLine +
3574 "Para poder recibir datos de dichas empresas, deberá crearlas en el grupo de empresa en el que desee recibir los datos." + Environment.NewLine +
3575 "Las empresas incluidas en fichero que no existen en el grupo de empresa son las siguientes: " + Environment.NewLine + Environment.NewLine;
3577 lcDetalle += ConstruirTextoDetalleEspecial(ldtEmpresa,
"codigo",
"nombre");
3580 logDto.
TipoDato = clsOfflineUtils.ObtenerTipoDato(registro._Clave);
3583 logRepository.
Insert(logDto);
3588 private static void RegistroDatosRecepcion(OfflineDatosComunicaciones datos, RegistroTabRel registro, DataTable tdtDatos,
string tcTaulaLocal,
string tcDb,
bool tlInsert,
ILog_comoffRepository logRepository)
3590 List<string> lista =
new List<string>();
3592 string lcDetalle =
string.Empty;
3593 string lcCampo =
string.Empty;
3594 int lnResultado = 0;
3596 if (registro._Visible && registro._Actualizado && registro._TablaSecundaria == tcTaulaLocal)
3601 if (registro._Sufijo ==
"_CREATED")
3605 lcDetalle =
"Se ha dado de alta la siguiente información." + Environment.NewLine;
3610 lcDetalle =
"Se ha actualizado la siguiente información a partir datos nuevos en el grupo de empresa origen." + Environment.NewLine +
3611 "Revise que la información es correcta en el grupo de empresa que ha recibido los datos:" + Environment.NewLine;
3619 lcDetalle =
"Se ha dado de alta la siguiente información a partir de datos modificados en el grupo de empresa origen." + Environment.NewLine +
3620 "Revise que la información es correcta en el grupo de empresa que ha recibido los datos:" + Environment.NewLine;
3625 lcDetalle =
"Se ha actualizado la siguiente información." + Environment.NewLine;
3630 lcDetalle +=
"Dato: " + (tcTaulaLocal.Contains(
"CTRL_") ?
"Información extendida de " :
"") + registro._Nombre.ToUpper() + Environment.NewLine + Environment.NewLine;
3633 switch (tcTaulaLocal)
3655 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"articulo",
"ARTICULO",
"GESTION");
3660 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"familia",
"ARTICULO",
"GESTION");
3666 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"codigo",
"MCAMPOS",
"GESTION");
3671 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"subfam",
"SUBFAM",
"GESTION");
3676 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"talla",
"TALLAS",
"COMUNES");
3681 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"color",
"COLORES",
"COMUNES");
3700 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"almacen",
"ALMACEN",
"GESTION");
3705 switch (registro._Clave)
3709 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"almacen",
"ALMACEN",
"GESTION");
3722 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"numero",
"",
"numero");
3727 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"documento",
"",
"documento");
3736 lcCampo = (tcTaulaLocal ==
"D_FORMUL" ?
"formula" :
"articulo");
3737 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"C_FORMUL",
"LOTES",
"ARTICULO");
3742 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"clasif",
"CLASIF",
"COMUNES");
3762 lcCampo = (tcTaulaLocal ==
"RIESGO" ?
"codigo" :
"cliente");
3763 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"CLIENTES",
"GESTION");
3768 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"tcp",
"TCP",
"COMUNES");
3777 lcCampo = (tcTaulaLocal ==
"OTRAS" ?
"codigo" :
"cuenta");
3778 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"CUENTAS",
"GESTION");
3791 lcCampo = (tcTaulaLocal ==
"DESC_PRO" ?
"proveed" :
"proveedor");
3792 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"PROVEED",
"GESTION");
3797 switch (registro._ID)
3801 lcCampo = (tcTaulaLocal ==
"ENTRE_CL" || tcTaulaLocal ==
"PREVI_CL" ?
"cliente" :
"cuenta");
3802 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"CLIENTES",
"GESTION");
3807 lcCampo = (tcTaulaLocal ==
"ENTRE_CL" ?
"cliente" : (tcTaulaLocal ==
"PREVIS" ?
"proveedor" :
"cuenta"));
3808 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"PROVEED",
"GESTION");
3815 switch (registro._ID)
3821 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"factura");
3826 lcCampo = (tcTaulaLocal ==
"ENTRE_CL" || tcTaulaLocal ==
"PREVI_CL" ?
"cliente" :
"cuenta");
3827 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"CLIENTES",
"GESTION");
3832 lcCampo = (tcTaulaLocal ==
"ENTRE_CL" ?
"cliente" : (tcTaulaLocal ==
"PREVIS" ?
"proveedor" :
"cuenta"));
3833 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"PROVEED",
"GESTION");
3839 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"cuenta",
"factura");
3847 switch (registro._ID)
3853 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"numfra");
3858 lcCampo = (tcTaulaLocal ==
"ENTRE_CL" || tcTaulaLocal ==
"PREVI_CL" ?
"cliente" :
"cuenta");
3859 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"CLIENTES",
"GESTION");
3864 lcCampo = (tcTaulaLocal ==
"ENTRE_CL" ?
"cliente" : (tcTaulaLocal ==
"PREVIS" ?
"proveedor" :
"cuenta"));
3865 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"PROVEED",
"GESTION");
3870 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"cuenta",
"numfra");
3878 switch (registro._ID)
3882 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"cuenta",
"PROVEED",
"GESTION");
3888 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"cuenta",
"numfra");
3896 switch (registro._ID)
3902 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"factura");
3907 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"cuenta",
"CLIENTES",
"GESTION");
3912 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"cuenta",
"PROVEED",
"GESTION");
3918 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"cuenta",
"factura");
3927 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"numfra");
3932 switch (registro._ID)
3938 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"numfra");
3947 switch (registro._ID)
3953 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"factura");
3958 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"cliente",
"CLIENTES",
"GESTION");
3967 switch (registro._ID)
3971 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"proveedor",
"PROVEED",
"GESTION");
3977 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"proveedor",
"factura");
3985 lcDetalle += tdtDatos.Rows.Count.ToString() +
" registros.";
3992 switch (registro._ID)
3996 lcCampo = (tcTaulaLocal ==
"OTRASIEN" ?
"codcuen" :
"cuenta");
3997 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"CLIENTES",
"GESTION");
4002 lcCampo = (tcTaulaLocal ==
"OTRASIEN" ?
"codcuen" :
"cuenta");
4003 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"CLIENTES",
"GESTION");
4008 lcCampo = (tcTaulaLocal ==
"OTRASIEN" ?
"codcuen" :
"cuenta");
4009 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"CLIENTES",
"GESTION");
4017 lcCampo = (tcTaulaLocal ==
"OTRASIEN" ?
"codcuen" :
"cuenta");
4018 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"CLIENTES",
"GESTION");
4025 lcCampo = (tcTaulaLocal ==
"OTRASIEN" ?
"codcuen" :
"cuenta");
4026 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"PROVEED",
"GESTION");
4032 lcCampo = (tcTaulaLocal ==
"OTRASIEN" ?
"codcuen" :
"cuenta");
4033 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"CLIENTES",
"GESTION");
4038 lcCampo = (tcTaulaLocal ==
"OTRASIEN" ?
"codcuen" :
"cuenta");
4039 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo,
"PROVEED",
"GESTION");
4046 switch (registro._ID)
4052 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"numero");
4060 switch (registro._ID)
4064 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"proveedor",
"numero");
4072 switch (registro._ID)
4078 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"numfra");
4086 switch (registro._ID)
4092 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"borrador");
4100 switch (registro._ID)
4106 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"borrador");
4114 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"fpag",
"FPAG",
"GESTION");
4119 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"codigo",
"LINEAS",
"GESTION");
4124 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"ruta",
"RUTAS",
"GESTION");
4129 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"vendedor",
"VENDEDOR",
"GESTION");
4134 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"conirpf",
"nombre");
4140 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"letra",
"LETRAS",
"COMUNES");
4145 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"caja",
"CAJAS",
"TPV");
4150 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"plancont",
"PLANS",
"GESTION");
4172 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"empresa",
"EMPRESA",
"GESTION");
4177 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"operario",
"OPERARIO",
"COMUNES");
4183 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"usuario",
"USUARIOS",
"COMUNES");
4191 foreach (DataRow item
in tdtDatos.Rows)
4193 if (!lista.Contains(item.Field<
int>(
"codigo").ToString().TrimEnd()))
4195 lcDetalle += item.Field<
int>(
"codigo").ToString().TrimEnd() +
" - " + item.Field<
string>(
"nombre").TrimEnd() + Environment.NewLine;
4196 lista.Add(item.Field<
int>(
"codigo").ToString().TrimEnd());
4206 lcCampo = (tcTaulaLocal ==
"D_ARQUEO" ?
"arqueo" :
"numero");
4208 foreach (DataRow item
in tdtDatos.Rows)
4210 if (!lista.Contains(item.Field<
string>(
"empresa").ToString().TrimEnd() +
" - " + item.Field<
int>(lcCampo).ToString().TrimEnd()))
4212 lcDetalle += item.Field<
string>(
"empresa").ToString().TrimEnd() +
" - " + item.Field<
int>(lcCampo).ToString().TrimEnd() + Environment.NewLine;
4213 lista.Add(item.Field<
string>(
"empresa").ToString().TrimEnd() +
" - " + item.Field<
int>(lcCampo).ToString().TrimEnd());
4240 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"numero");
4245 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"factura");
4250 switch (registro._Clave)
4257 case "TPVCONARQUEO":
4258 case "TPVSINARQUEO":
4260 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"letra",
"numero" );
4268 switch (registro._Clave)
4275 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"proveedor",
"numero");
4282 switch (registro._Clave)
4289 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"letra",
"numero");
4332 lcCampo = (tcTaulaLocal ==
"PORTES" || tcTaulaLocal ==
"ENTREGAS" ?
"albaran" : (tcTaulaLocal ==
"VALES" ?
"ticket" :
"numero"));
4333 if (registro._Clave ==
"FACTURAS")
4335 lcCampo = (tcTaulaLocal ==
"C_ALBVEN" && tcDb ==
"GESTION" ?
"factura" : lcCampo);
4338 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"letra", lcCampo);
4372 lcCampo = (tcTaulaLocal ==
"PRODUSER" || tcTaulaLocal ==
"PRODUSERC" || tcTaulaLocal ==
"TRANSER" || tcTaulaLocal ==
"TRANSSER" ?
"albaran" :
"numero");
4374 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa", lcCampo);
4389 lcCampo = (tcTaulaLocal ==
"PORTESC" ?
"albaran" :
"numero");
4390 if (registro._Clave ==
"FACTURAC")
4392 lcCampo = (tcTaulaLocal ==
"C_ALBCOM" ?
"factura" : lcCampo);
4395 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"empresa",
"proveedor", lcCampo);
4404 lcDetalle += tdtDatos.Rows.Count.ToString() +
" registros.";
4417 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"codigo",
"PLEFACT_C",
"COMUNES");
4422 lcDetalle += ConstruirTextoDetalle(tdtDatos,
"codigo",
"MONEDA",
"GESTION");
4427 if (tcTaulaLocal.Contains(
"CTRL_"))
4429 string[] loDatos = _offlineConfig.ObtenerTablaOriginalRelacionada(tcTaulaLocal).Split(
'!');
4431 if (loDatos.Length == 2)
4433 switch (tcTaulaLocal)
4437 lcCampo =
"ARTICULO";
4442 lcCampo =
"ALMACEN";
4447 lcCampo =
"CONIRPF";
4453 loDatos[1] =
"ARTICULO";
4463 if (tcTaulaLocal ==
"CTRL_PRCLI")
4465 lcDetalle += ConstruirTextoDetalleEntero(tdtDatos, lcCampo.ToLower(),
"PRCLIENT",
"GESTION", lcCampo);
4469 lcDetalle += ConstruirTextoDetalle(tdtDatos, lcCampo.ToLower(), loDatos[1], loDatos[0], lcCampo);
4475 if (tcTaulaLocal ==
"PRCLIENT")
4477 lcDetalle += ConstruirTextoDetalleEntero(tdtDatos, lcCampo.ToLower(),
"PRCLIENT",
"GESTION", lcCampo);
4481 if (tdtDatos.Columns.Contains(
"codigo") && tdtDatos.Columns.Contains(
"nombre"))
4483 lcDetalle += ConstruirTextoDetalleEspecial(tdtDatos,
"codigo",
"nombre");
4495 logDto.
TipoDato = clsOfflineUtils.ObtenerTipoDato(registro._Clave);
4498 logRepository.
Insert(logDto);
4502 private static string ObtenerCamposSelect(
string tcDBLocal,
string tcTablaLocal,
string tcAlias =
"",
bool tlForzar =
false)
4507 string lcSelect =
string.Empty;
4508 string lcComa =
string.Empty;
4510 DataTable ldtCampos =
new DataTable();
4512 DB.SQLExec(
"SELECT column_name, data_type FROM " + _cRaizDataBaseTemporal + tcDBLocal +
".INFORMATION_SCHEMA.COLUMNS WHERE table_name = '" + tcTablaLocal +
"' ", ref ldtCampos);
4515 foreach (DataRow item
in ldtCampos.Rows)
4518 if (tlForzar && !
string.IsNullOrWhiteSpace(tcAlias) && lnContador > 40)
4524 switch (item[
"column_name"].ToString().ToLower())
4538 switch (item[
"data_type"].ToString().ToLower())
4543 if (!
string.IsNullOrWhiteSpace(tcAlias))
4545 lcSelect += lcComa +
"cast(" + tcAlias +
"[" + item[
"column_name"].ToString().ToLower() +
"] as varchar(8000)) as [" + item[
"column_name"].ToString().ToLower() +
"] ";
4550 lcSelect += lcComa + tcAlias +
"[" + item[
"column_name"].ToString().ToLower() +
"]";
4556 lcSelect += lcComa + tcAlias +
"[" + item[
"column_name"].ToString().ToLower() +
"]";
4570 private static string ObtenerCamposSet(
string tcDBLocal,
string tcTablaLocal)
4575 string lcSet =
string.Empty;
4576 string lcComa =
string.Empty;
4577 DataTable ldtCampos =
new DataTable();
4579 DB.SQLExec(
"SELECT * FROM " + _cRaizDataBaseTemporal + tcDBLocal +
".dbo." + tcTablaLocal +
" WHERE 1 = 2", ref ldtCampos);
4582 for (
int i = 0; i < ldtCampos.Columns.Count; i++)
4584 switch (ldtCampos.Columns[i].ColumnName.ToLower())
4596 lcSet += lcComa +
" [" + ldtCampos.Columns[i].ColumnName.ToLower() +
"] = " + DB.SQLString(DateTime.Now);
4603 lcSet += lcComa +
" [" + ldtCampos.Columns[i].ColumnName.ToLower() +
"] = b.[" + ldtCampos.Columns[i].ColumnName.ToLower() +
"] ";
4613 private static void CrearDataBaseTemporal(
string tcSucursal)
4615 _cRaizDataBaseTemporal = ObtenerDataBaseName(tcSucursal);
4618 CrearDataTable(
"COMUNES", _cRaizDataBaseTemporal);
4620 CrearDataTable(
"GESTION", _cRaizDataBaseTemporal);
4623 foreach (KeyValuePair<string, DB._ModuloSchema> entry
in DB._dicCacheModulos)
4625 CrearDataTable(entry.Value._Nombre, _cRaizDataBaseTemporal);
4628 CrearDataTable(
"EUROWINSYS", _cRaizDataBaseTemporal);
4633 private static void CrearDataTable(
string tcDB,
string tcArrelDB)
4635 string lcDataBaseTemp = tcArrelDB + tcDB;
4636 string lcRutaTemp = Path.Combine(TempFolderName, tcDB);
4639 if (Directory.Exists(lcRutaTemp))
4642 string[] files = Directory.GetFiles(lcRutaTemp,
"*.xml");
4645 if (files.Length > 0)
4647 DB._DBCreate(lcDataBaseTemp);
4650 foreach (var file
in files)
4652 DataTable table = ConvertFileToDatatable(file, FormatoExportacion.XML);
4653 string lcTabla = Path.GetFileNameWithoutExtension(file);
4655 InsertarTablaBaseDatosBulk(table, tcDB, lcTabla, lcDataBaseTemp);
4659 if (tcDB ==
"GESTION")
4661 string fichero = Path.Combine(TempFolderName,
"RIESGO.XML");
4664 if (File.Exists(fichero))
4666 DataTable table = ConvertFileToDatatable(fichero, FormatoExportacion.XML);
4667 string lcTabla = Path.GetFileNameWithoutExtension(fichero);
4669 InsertarTablaBaseDatosBulk(table, tcDB, lcTabla, lcDataBaseTemp);
4675 private static DataTable ObtenerDatosRecepcion(
int tnIdConf)
4677 string lcSql =
string.Empty;
4678 string lcWhereCentral =
string.Empty;
4679 string lcWhereSucur =
string.Empty;
4680 string lcOrCentral =
string.Empty;
4681 string lcOrSucur =
string.Empty;
4682 string lcComa =
string.Empty;
4684 DataTable TabTmp =
new DataTable();
4689 if (ficheroInfoConfig != null)
4691 lcSql =
" Select A.CLAVE, A.NOMBRE, cast(1 as bit) as SELRECIBIR, " +
4692 " A.VISIBLE, A.ID, A.PRINCIPAL, A.SECUNDARIA, A.IDGRUPO, A.VISICOND, A.RELACION, A.EMPRESA, A.EMPRESECUN, A.TIPOTABLA, 1 as PRIORIDAD, " +
4693 " A.asientos, A.otrasien, A.eos, A.iva_exen, A.ivasopor, A.ivareper, A.retsopor, A.retreper, A.compras " +
4694 " From " + DB.SQLDatabase(
"OFFLINE",
"TABRELNET") +
" a ";
4696 if (ficheroInfoConfig._PrioridadesCentral.Count == 0)
4698 lcSql +=
" Where 1 = 2 ";
4703 lcSql +=
" Where A.ID IN (";
4704 foreach (
int item
in ficheroInfoConfig._PrioridadesCentral)
4706 lcSql += lcComa + DB.SQLString(item);
4713 lcSql +=
" UNION ALL ";
4715 lcSql +=
" Select A.CLAVE, A.NOMBRE, cast(1 as bit) as SELRECIBIR, " +
4716 " A.VISIBLE, A.ID, A.PRINCIPAL, A.SECUNDARIA, A.IDGRUPO, A.VISICOND, A.RELACION, A.EMPRESA, A.EMPRESECUN, A.TIPOTABLA, 2 as PRIORIDAD, " +
4717 " A.asientos, A.otrasien, A.eos, A.iva_exen, A.ivasopor, A.ivareper, A.retsopor, A.retreper, A.compras " +
4718 " From " + DB.SQLDatabase(
"OFFLINE",
"TABRELNET") +
" a ";
4720 if (ficheroInfoConfig._PrioridadesSucursal.Count == 0)
4722 lcSql +=
" Where 1 = 2 ";
4727 lcSql +=
" Where A.ID IN (";
4728 foreach (
int item
in ficheroInfoConfig._PrioridadesSucursal)
4730 lcSql += lcComa + DB.SQLString(item);
4740 lcSql =
" Select A.CLAVE, A.NOMBRE, cast(1 as bit) as SELRECIBIR, " +
4741 " A.VISIBLE, A.ID, A.PRINCIPAL, A.SECUNDARIA, A.IDGRUPO, A.VISICOND, A.RELACION, A.EMPRESA, A.EMPRESECUN, A.TIPOTABLA, 1 as PRIORIDAD, " +
4742 " A.asientos, A.otrasien, A.eos, A.iva_exen, A.ivasopor, A.ivareper, A.retsopor, A.retreper, A.compras " +
4743 " From " + DB.SQLDatabase(
"OFFLINE",
"TABRELNET") +
" a " +
4748 DB.SQLExec(lcSql, ref TabTmp);
4750 TabTmp.DefaultView.Sort =
" CLAVE ASC, PRINCIPAL ASC, VISIBLE DESC, SECUNDARIA ASC ";
4751 TabTmp = TabTmp.DefaultView.ToTable();
4756 private static int Validaciones_Previas(OfflineDatosComunicaciones datos,
ILog_comoffRepository logRepository)
4758 string ficheroConfiguracion = Path.Combine(TempFolderName,
"InfoConfig.xml");
4760 string lcError =
string.Empty;
4763 if (!File.Exists(ficheroConfiguracion))
4766 string lcAllText =
string.Empty;
4770 lcAllText = File.ReadAllText(ficheroConfiguracion);
4771 ficheroInfoConfig = _DeserializeOfflineInfoConfig(lcAllText);
4775 ficheroInfoConfig =
new OfflineInfoConfig();
4779 string[] lcVersionActual = InfoConfig._Version.Split(
'.');
4780 string[] lcVersionFichero = ficheroInfoConfig._Version.Split(
'.');
4782 if (lcVersionActual.Length > 2 && lcVersionFichero.Length > 2)
4786 for (
int i = 0; i < 3; i++)
4788 if (lnValor == 0 && lcVersionActual[i] != lcVersionFichero[i])
4797 lcError =
"Los datos recibidos de la central son de la versión " + ficheroInfoConfig._Version +
" de Sage 50, " +
4798 "la versión de su instalación es " + InfoConfig._Version +
" ." + Environment.NewLine +
4799 "Para poder realizar la recepción de los datos es necesario que la versión de Sage 50 sea la misma.";
4806 logRepository.
Insert(logDto);
4808 FUNCTIONS._MessageBox(lcError,
"Validaciones previas", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
4814 _ejercicioActual = _ejercicioNew = InfoConfig._Ejercicio;
4815 if (InfoConfig._FechaInicial != ficheroInfoConfig._FechaInicial || InfoConfig._FechaFinal != ficheroInfoConfig._FechaFinal || InfoConfig._Ejercicio != ficheroInfoConfig._Ejercicio)
4817 if (!DB._oAliasDBEjer.ContainsKey(ficheroInfoConfig._Ejercicio.Trim()))
4819 lcError =
"Se ha incluido información en el fichero de datos para el ejercicio " + ficheroInfoConfig._Ejercicio +
", pero dicho ejercicio no existe en el grupo de empresa en el cual está recibiendo los datos." + Environment.NewLine + Environment.NewLine +
4820 "Debe crear el ejercicio y volver a ejecutar una recepción de datos.";
4822 Actualizar_Tabla(datos,
"OFFLINE",
"EJERCICIOS",
"EJERCICIOS.XML", logRepository);
4828 logRepository.
Insert(logDto);
4833 _ejercicioNew = ficheroInfoConfig._Ejercicio;
4838 if (!datos._IsCentral)
4840 string ficheroAmplitud = Path.Combine(TempFolderName,
"Config.xml");
4843 if (!File.Exists(ficheroAmplitud))
4845 lcError =
"No existe la configuración de la longitud de campos en del fichero recibido.";
4851 logRepository.
Insert(logDto);
4853 FUNCTIONS._MessageBox(lcError,
"Validaciones previas", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
4858 DataTable configActual = clsOfflineUtils.AmplitudCampos();
4860 DataTable ldtConfigFichero =
new DataTable();
4861 FUNCTIONS._Xml2Datatable(ficheroAmplitud, ref ldtConfigFichero);
4863 foreach (DataRow item
in configActual.Rows)
4865 DataRow[] rows = ldtConfigFichero.Select(
"clave = '" + item[
"clave"].ToString() +
"' and db = '" + item[
"db"].ToString() +
"'");
4867 if (rows.Length > 0)
4869 if (Convert.ToInt32(item[
"ancho"]) != Convert.ToInt32(rows[0][
"ancho"]))
4871 lcError += item[
"clave"].ToString() +
" Longitud en el fichero: " + Convert.ToInt32(rows[0][
"ancho"]) +
" , Longitud en la instalación: " + Convert.ToInt32(item[
"ancho"]) + Environment.NewLine;
4876 if (!
string.IsNullOrWhiteSpace(lcError))
4878 lcError =
"Existen diferencias en la longitud de algunos campos en la instalación en la que está recibiendo los datos, respecto a longitud de campos en la instalación que ha enviado los datos." +
4879 Environment.NewLine + Environment.NewLine + lcError;
4885 logRepository.
Insert(logDto);
4887 FUNCTIONS._MessageBox(lcError,
"Validaciones previas. Recepción de datos Offline", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
4895 private static int ObtenerResultadoComunicacion(
string tdIdLog)
4897 DataTable table =
new DataTable();
4898 string lcSql =
"Select MAX(resultado) AS resultado " +
4899 " From " + DB.SQLDatabase(
"OFFLINE",
"LOG_COMOFF") +
4900 " WHERE idlog = " + DB.SQLString(tdIdLog);
4902 DB.SQLExec(lcSql, ref table);
4904 if (table != null && table.Rows.Count > 0)
4906 return Convert.ToInt32(table.Rows[0][
"resultado"]);
4915 private static void EnvioEmailNotificacion(
string tcFicheroZip, OfflineDatosComunicaciones datos,
ILog_comoffRepository logRepository)
4917 if (datos._NotificacionRecepcion && !
string.IsNullOrEmpty(datos._EmailNotificacionRecepcion))
4919 _TextStepDetalle =
"Enviado email de notificación";
4920 _TextStepProgreso = _TextStepDetalle;
4921 _PorcenProgreso = IncrementarBarraProgreso();
4925 int lnResultadoComunicacion = ObtenerResultadoComunicacion(datos._Log_ComoffID);
4927 if (
string.IsNullOrWhiteSpace(tcFicheroZip))
4929 loSendMail.
_Subject =
"Sage 50 – Error en la recepción de datos";
4931 " Sucursal Origen: " + datos._Sucursal +
" - " + DB.SQLValor(
"SUCURSALES",
"CODIGO", datos._Sucursal,
"NOMBRE",
"OFFLINE").ToString() +
"<br><br>" +
4932 " No existen ficheros de datos en la carpeta de FTP o OneDrive de la sucursal." +
"<br><br>" +
4933 " Revise el documento adjunto donde se incluye detalle del registro de comunicaciones, en el cual podrá ver los errores que se han producido durante el proceso de recepción de datos. ";
4937 switch (lnResultadoComunicacion)
4940 loSendMail.
_Subject =
"Sage 50 – Error en la recepción de datos";
4942 " Sucursal Origen: " + datos._Sucursal +
" - " + DB.SQLValor(
"SUCURSALES",
"CODIGO", datos._Sucursal,
"NOMBRE",
"OFFLINE").ToString() +
"<br><br>" +
4943 " Se han producido errores en el proceso de recepción de datos de fecha " + clsOfflineUtils.ObtenerFechaFicheroDatos(tcFicheroZip) +
", fichero " + tcFicheroZip +
". " +
"<br><br>" +
4944 " Revise el documento adjunto donde se incluye detalle del registro de comunicaciones, en el cual podrá ver los errores que se han producido durante el proceso de recepción de datos. ";
4948 loSendMail.
_Subject =
"Sage 50 – Incidencias en la recepción de datos";
4950 " Sucursal Origen: " + datos._Sucursal +
" - " + DB.SQLValor(
"SUCURSALES",
"CODIGO", datos._Sucursal,
"NOMBRE",
"OFFLINE").ToString() +
"<br><br>" +
4951 " Ha finalizado la recepción de datos de fecha " + clsOfflineUtils.ObtenerFechaFicheroDatos(tcFicheroZip) +
", fichero " + tcFicheroZip +
" con incidencias." +
"<br><br>" +
4952 " Revise el documento adjunto donde se incluye detalle del registro de comunicaciones, en el cual podrá ver las incidencias detectadas durante el proceso de recepción de datos.";
4958 loSendMail.
_Subject =
"Sage 50 – Recepción de datos";
4960 " Sucursal Origen: " + datos._Sucursal +
" - " + DB.SQLValor(
"SUCURSALES",
"CODIGO", datos._Sucursal,
"NOMBRE",
"OFFLINE").ToString() +
"<br><br>" +
4961 " Ha finalizado la recepción de datos de fecha " + clsOfflineUtils.ObtenerFechaFicheroDatos(tcFicheroZip) +
", fichero " + tcFicheroZip +
" correctamente." +
"<br><br>" +
4962 " Revise documento adjunto donde se incluye detalle del registro de comunicaciones en el cual podrá ver los datos recibidos.";
4967 loSendMail.
_Emails = datos._EmailNotificacionRecepcion.Split(
';').ToList();
4972 _ObtenerConfiguracionEmail(loSendMail);
4975 string cRuta = TempFolderName;
4987 loLogCom.
_Exportar(ew.listados.Clases.Listados.ExportType.pdf, cRuta,
false,
"REG_COMU");
4995 logDto.
Detalle =
"No se ha podido adjuntar el fichero PDF.";
4996 logRepository.
Insert(logDto);
5005 logDto.
Detalle =
"Fallo al realizar envío de mail de notificación de recepción de datos. Revise en el mantenimiento de grupos de empresa, los datos de configuración en pestaña Configuración notificaciones del Add-on Comunicaciones offline.";
5010 logDto.
Detalle =
"Enviado email de notificación de recepción correctamente.";
5012 logRepository.
Insert(logDto);
5014 if (loSendMail.
_EnvioDirecto && File.Exists(cRuta +
".pdf"))
5016 File.Delete(cRuta +
".pdf");
5027 private static void Actualizar_Fecha_Recepcion_Multiconf(OfflineDatosComunicaciones datos)
5029 string lcCampo =
"ULTFECREC";
5031 DB.SQLExec(
"UPDATE " + DB.SQLDatabase(
"OFFLINE",
"MULTCONF") +
5032 " SET " + lcCampo +
" = " + DB.SQLString(DateTime.Now) +
", MODIFIED = MODIFIED " +
5033 " WHERE IDCONF = " + DB.SQLString(datos._IdConf));
5036 private static void Actualizar_Fecha_Recepcion_Sucursales(OfflineDatosComunicaciones datos,
string cTipoRecepcion,
ILog_comoffRepository logRepository)
5040 string lcCampo = (cTipoRecepcion ==
"i" ?
", CARGAINI = " + DB.SQLString(DateTime.Now) :
"");
5041 string lcTipoRecepcion = (cTipoRecepcion ==
"i" ?
"la carga inicial" :
"datos");
5043 DB.SQLExec(
"UPDATE " + DB.SQLDatabase(
"OFFLINE",
"SUCURSALES") +
5044 " SET ULTFECREC = " + DB.SQLString(DateTime.Now) +
5045 lcCampo +
", MODIFIED = MODIFIED " +
5046 " WHERE CODIGO = " + DB.SQLString(datos._Sucursal));
5052 logDto.
Detalle =
"Recepción de " + lcTipoRecepcion +
" finalizado correctamente.";
5053 logRepository.
Insert(logDto);
5056 private static bool Actualizar_Datos_Sucursales(OfflineDatosComunicaciones datos,
ILog_comoffRepository logRepository)
5059 Actualizar_Tabla(datos,
"OFFLINE",
"SUCURSALES",
"SUCURSALES.XML", logRepository);
5060 Actualizar_Tabla(datos,
"OFFLINE",
"SUCURALM",
"SUCURALM.XML", logRepository);
5061 Actualizar_Tabla(datos,
"OFFLINE",
"SUCURLET",
"SUCURLET.XML", logRepository);
5062 Actualizar_Tabla(datos,
"OFFLINE",
"SUCURCAJA",
"SUCURCAJA.XML", logRepository);
5063 Actualizar_Tabla(datos,
"OFFLINE",
"PRIORIDAD",
"PRIORIDAD.XML", logRepository);
5066 if (!
string.IsNullOrWhiteSpace(datos._Sucursal))
5068 bool llValor = Convert.ToBoolean(DB.SQLValor(
"SUCURSALES",
"CODIGO", datos._Sucursal,
"ENV_FOTO",
"OFFLINE"));
5069 _offlineConfig.InsertOrUpdateVariable(
EnumVariables.ENVIARIMAGENES, (llValor ?
".T." :
".F."),
"L");
5071 llValor = Convert.ToBoolean(DB.SQLValor(
"SUCURSALES",
"CODIGO", datos._Sucursal,
"DELMANTES",
"OFFLINE"));
5072 _offlineConfig.InsertOrUpdateVariable(
EnumVariables.DELETE_SUC_MANT, (llValor ?
".T." :
".F."),
"L");
5074 llValor = Convert.ToBoolean(DB.SQLValor(
"SUCURSALES",
"CODIGO", datos._Sucursal,
"DELDOCS",
"OFFLINE"));
5075 _offlineConfig.InsertOrUpdateVariable(
EnumVariables.DELETE_SUC_DOC, (llValor ?
".T." :
".F."),
"L");
5081 logDto.
Detalle =
"Actualizada configuración de sucursales y grupos de empresa.";
5082 logRepository.
Insert(logDto);
5085 Actualizar_Tabla(datos,
"OFFLINE",
"MULTCONF",
"MULTCONF.XML", logRepository);
5086 Actualizar_Tabla(datos,
"OFFLINE",
"TABNETCONF",
"TABNETCONF.XML", logRepository);
5087 Actualizar_Tabla(datos,
"OFFLINE",
"SUCURCONF",
"SUCURCONF.XML", logRepository);
5089 Actualizar_Tabla(datos,
"OFFLINE",
"EJERCICIOS",
"EJERCICIOS.XML", logRepository);
5094 private static bool Actualizar_Datos_Servidor(OfflineDatosComunicaciones datos,
ILog_comoffRepository logRepository)
5098 bool lbExiste =
true;
5100 lbExiste = Actualizar_Tabla(datos,
"OFFLINE",
"SUCURSALES",
"SUCURSALES.XML", logRepository);
5105 logDto.
Detalle =
"Actualizada configuración de la sucursal " + datos._Sucursal +
". Revise mantenimiento de sucursales para ver los cambios realizados.";
5106 logRepository.
Insert(logDto);
5110 lbExiste = Actualizar_Tabla(datos,
"GESTION",
"SERIES",
"SERIES.XML", logRepository);
5115 logDto.
Detalle =
"Actualizados contadores de series de documentos de la sucursal " + datos._Sucursal;
5116 logRepository.
Insert(logDto);
5119 Actualizar_Tabla(datos,
"OFFLINE",
"EJERCICIOS",
"EJERCICIOS.XML", logRepository);
5121 Actualizar_Tabla(datos,
"OFFLINE",
"ACTRIESGO",
"ACTRIESGO.XML", logRepository);
5126 private static bool Actualizar_Tabla(OfflineDatosComunicaciones datos,
string tcNombreBD,
string tcNombreTabla,
string tcFicheroXML,
ILog_comoffRepository logRepository)
5128 string lcSql =
string.Empty;
5129 string lcWhere =
string.Empty;
5130 string lcTablaSql =
string.Empty;
5132 string fichero = Path.Combine(TempFolderName, tcFicheroXML);
5135 if (!File.Exists(fichero))
5138 DataTable ldtFichero =
new DataTable();
5139 FUNCTIONS._Xml2Datatable(fichero, ref ldtFichero);
5141 tcNombreTabla = tcNombreTabla.Trim();
5142 lcTablaSql = DB.SQLDatabase(tcNombreBD, tcNombreTabla);
5146 switch (tcNombreTabla)
5150 foreach (DataRow item
in ldtFichero.Rows)
5152 lcWhere =
" WHERE codigo = " + DB.SQLString(item[
"CODIGO"]);
5154 lcSql =
" IF EXISTS " + Environment.NewLine +
5155 " ( SELECT * FROM " + lcTablaSql + lcWhere +
" ) " + Environment.NewLine +
5156 " BEGIN " + Environment.NewLine +
5157 " Update " + lcTablaSql +
5158 " Set NOMBRE = " + DB.SQLString(item[
"NOMBRE"]) +
5159 " , LICENCIA = " + DB.SQLString(item[
"NOMBRE"]) +
5160 " , ACTIVA = " + DB.SQLString(item[
"ACTIVA"]) +
5161 " , DELDOCS = " + DB.SQLString(item[
"DELDOCS"]) +
5162 " , ENV_FOTO = " + DB.SQLString(item[
"ENV_FOTO"]) +
5163 " , DELMANTES = " + DB.SQLString(item[
"DELMANTES"]) +
5164 lcWhere + Environment.NewLine +
5165 " END " + Environment.NewLine +
5166 " ELSE " + Environment.NewLine +
5167 " BEGIN" + Environment.NewLine +
5168 " INSERT INTO " + lcTablaSql +
" " +
5169 " (CODIGO,NOMBRE,LICENCIA,ACTIVA,DELDOCS,ENV_FOTO,DELMANTES) " +
5171 DB.SQLString(item[
"CODIGO"]) +
", " +
5172 DB.SQLString(item[
"NOMBRE"]) +
", " +
5173 DB.SQLString(item[
"LICENCIA"]) +
", " +
5174 DB.SQLString(item[
"ACTIVA"]) +
", " +
5175 DB.SQLString(item[
"DELDOCS"]) +
", " +
5176 DB.SQLString(item[
"ENV_FOTO"]) +
", " +
5177 DB.SQLString(item[
"DELMANTES"]) +
") " +
5188 foreach (DataRow item
in ldtFichero.Rows)
5190 lcWhere =
" WHERE SUCURSAL = " + DB.SQLString(item[
"SUCURSAL"]) +
" AND LINIA = " + DB.SQLString(item[
"LINIA"]);
5192 lcSql =
" IF EXISTS " + Environment.NewLine +
5193 " ( SELECT * FROM " + lcTablaSql + lcWhere +
" ) " + Environment.NewLine +
5194 " BEGIN " + Environment.NewLine +
5195 " Update " + lcTablaSql +
5196 " Set ALMACEN = " + DB.SQLString(item[
"ALMACEN"]) +
5197 lcWhere + Environment.NewLine +
5198 " END " + Environment.NewLine +
5199 " ELSE " + Environment.NewLine +
5200 " BEGIN" + Environment.NewLine +
5201 " INSERT INTO " + lcTablaSql +
" " +
5202 " (LINIA,SUCURSAL,ALMACEN) " +
5204 DB.SQLString(item[
"LINIA"]) +
", " +
5205 DB.SQLString(item[
"SUCURSAL"]) +
", " +
5206 DB.SQLString(item[
"ALMACEN"]) +
") " +
5216 foreach (DataRow item
in ldtFichero.Rows)
5218 lcWhere =
" WHERE SUCURSAL = " + DB.SQLString(item[
"SUCURSAL"]) +
" AND LINIA = " + DB.SQLString(item[
"LINIA"]);
5220 lcSql =
" IF EXISTS " + Environment.NewLine +
5221 " ( SELECT * FROM " + lcTablaSql + lcWhere +
" ) " + Environment.NewLine +
5222 " BEGIN " + Environment.NewLine +
5223 " Update " + lcTablaSql +
5224 " Set LETRA = " + DB.SQLString(item[
"LETRA"]) +
5225 lcWhere + Environment.NewLine +
5226 " END " + Environment.NewLine +
5227 " ELSE " + Environment.NewLine +
5228 " BEGIN" + Environment.NewLine +
5229 " INSERT INTO " + lcTablaSql +
" " +
5230 " (LINIA,SUCURSAL,LETRA) " +
5232 DB.SQLString(item[
"LINIA"]) +
", " +
5233 DB.SQLString(item[
"SUCURSAL"]) +
", " +
5234 DB.SQLString(item[
"LETRA"]) +
") " +
5244 foreach (DataRow item
in ldtFichero.Rows)
5246 lcWhere =
" WHERE SUCURSAL = " + DB.SQLString(item[
"SUCURSAL"]) +
" AND LINIA = " + DB.SQLString(item[
"LINIA"]);
5248 lcSql =
" IF EXISTS " + Environment.NewLine +
5249 " ( SELECT * FROM " + lcTablaSql + lcWhere +
" ) " + Environment.NewLine +
5250 " BEGIN " + Environment.NewLine +
5251 " Update " + lcTablaSql +
5252 " Set CAJA = " + DB.SQLString(item[
"CAJA"]) +
5253 lcWhere + Environment.NewLine +
5254 " END " + Environment.NewLine +
5255 " ELSE " + Environment.NewLine +
5256 " BEGIN" + Environment.NewLine +
5257 " INSERT INTO " + lcTablaSql +
" " +
5258 " (LINIA,SUCURSAL,CAJA) " +
5260 DB.SQLString(item[
"LINIA"]) +
", " +
5261 DB.SQLString(item[
"SUCURSAL"]) +
", " +
5262 DB.SQLString(item[
"CAJA"]) +
") " +
5272 foreach (DataRow item
in ldtFichero.Rows)
5274 lcWhere =
" WHERE SUCURSAL = " + DB.SQLString(item[
"SUCURSAL"]) +
" AND IDCONF = " + DB.SQLString(item[
"IDCONF"]);
5276 lcSql =
" IF EXISTS " + Environment.NewLine +
5277 " ( SELECT * FROM " + lcTablaSql + lcWhere +
" ) " + Environment.NewLine +
5278 " BEGIN " + Environment.NewLine +
5279 " Update " + lcTablaSql +
5280 " Set VALOR = " + DB.SQLString(item[
"VALOR"]) +
5281 lcWhere + Environment.NewLine +
5282 " END " + Environment.NewLine +
5283 " ELSE " + Environment.NewLine +
5284 " BEGIN" + Environment.NewLine +
5285 " INSERT INTO " + lcTablaSql +
" " +
5286 " (SUCURSAL,IDCONF,VALOR) " +
5288 DB.SQLString(item[
"SUCURSAL"]) +
", " +
5289 DB.SQLString(item[
"IDCONF"]) +
", " +
5290 DB.SQLString(item[
"VALOR"]) +
") " +
5301 foreach (DataRow item
in ldtFichero.Rows)
5306 lcWhere =
" WHERE IDTABREL = " + DB.SQLString(item[
"IDTABREL"]) +
" AND PRIO_DATOS = " + DB.SQLString(item[
"PRIO_DATOS"]) +
" AND CTRL_DATOS = " + DB.SQLString(item[
"CTRL_DATOS"]);
5308 DataTable dt =
new DataTable();
5309 DB.SQLExec(
"SELECT * FROM " + lcTablaSql + lcWhere, ref dt);
5310 if (dt != null && dt.Rows.Count == 0)
5314 logDto.
Detalle =
"Actualizada configuración de control de datos. Revise el mantenimiento de grupos de empresa para comprobar los cambios realizados.";
5315 logRepository.
Insert(logDto);
5321 lcWhere =
" WHERE IDTABREL = " + DB.SQLString(item[
"IDTABREL"]);
5323 lcSql =
" IF EXISTS " + Environment.NewLine +
5324 " ( SELECT * FROM " + lcTablaSql + lcWhere +
" ) " + Environment.NewLine +
5325 " BEGIN " + Environment.NewLine +
5326 " Update " + lcTablaSql +
5327 " Set PRIO_DATOS = " + DB.SQLString(item[
"PRIO_DATOS"]) +
5328 " , CTRL_DATOS = " + DB.SQLString(item[
"CTRL_DATOS"]) +
5329 lcWhere + Environment.NewLine +
5330 " END " + Environment.NewLine +
5331 " ELSE " + Environment.NewLine +
5332 " BEGIN" + Environment.NewLine +
5333 " INSERT INTO " + lcTablaSql +
" " +
5334 " (IDTABREL,PRIO_DATOS,CTRL_DATOS) " +
5336 DB.SQLString(item[
"IDTABREL"]) +
", " +
5337 DB.SQLString(item[
"PRIO_DATOS"]) +
", " +
5338 DB.SQLString(item[
"CTRL_DATOS"]) +
") " +
5351 logDto.
Detalle =
"Se ha producido un error que ha impedido realizar actualización de configuración de control de datos. Revise la configuración de control de datos en el mantenimiento de grupos de empresa por si fuera necesario realizar algún cambio de forma manual.";
5352 logRepository.
Insert(logDto);
5361 List<string> lstInsert =
new List<string>();
5362 List<string> lstUpdate =
new List<string>();
5364 string lcCodigo =
"";
5365 bool llHayCambios =
false;
5368 foreach (DataRow item
in ldtFichero.Rows)
5371 lcCodigo = item[
"CODIGO"].ToString();
5375 llHayCambios =
false;
5377 lcWhere =
" WHERE CODIGO = " + DB.SQLString(item[
"CODIGO"]);
5379 string lcHora_Rec = FUNCTIONS.Modificar_Hora(item[
"HORA_REC"].ToString(), -15);
5380 string lcHora_Env = FUNCTIONS.Modificar_Hora(item[
"HORA_ENV"].ToString(), 15);
5382 var tipo = Convert.ToInt16(item[
"TIPO"]);
5384 lcSql =
" Update " + lcTablaSql +
5385 " Set IDCONF = " + DB.SQLString(item[
"IDCONF"]) +
5386 " , NOMBRE = " + DB.SQLString(item[
"NOMBRE"]) +
5387 " , TIPO = " + DB.SQLString((tipo == 0 ? 0 : Convert.ToInt16(item[
"TIPO"]) == 1 ? 2 : 1)) +
5388 (tipo == 1 ? (tipo == 0 ?
"" :
", FREC_ENV = ''") :
" , FREC_ENV = " + DB.SQLString(item[
"FREC_REC"])) +
5389 (tipo == 2 ? (tipo == 0 ?
"" :
", FREC_REC = ''") :
" , FREC_REC = " + DB.SQLString(item[
"FREC_ENV"])) +
5390 (tipo == 1 ? (tipo == 0 ?
"" :
", HORA_ENV = ''") :
" , HORA_ENV = " + DB.SQLString(lcHora_Rec)) +
5391 (tipo == 2 ? (tipo == 0 ?
"" :
", HORA_REC = ''") :
" , HORA_REC = " + DB.SQLString(lcHora_Env)) +
5392 " , REC_STOCK = " + DB.SQLString(item[
"REC_STOCK"]) +
5393 lcWhere + Environment.NewLine;
5395 DB.SQLExec(lcSql, out
int lnFilasAfectadas);
5397 if (lnFilasAfectadas == 0)
5399 DB.SQLExec(
"DELETE FROM " + lcTablaSql +
" WHERE IDCONF = " + DB.SQLString(item[
"IDCONF"]));
5401 lcSql =
" INSERT INTO " + lcTablaSql +
" " +
5402 " (IDCONF,NOMBRE,CODIGO,TIPO,FREC_ENV,FREC_REC,HORA_ENV,HORA_REC,REC_STOCK,CONEXION,CFG_FTP,ONEDRVUSER,ONEDRVFOLD,REFRESHTOKEN,RESOURCEIDS,CLIENTID) " +
5404 DB.SQLString(item[
"IDCONF"]) +
", " +
5405 DB.SQLString(item[
"NOMBRE"]) +
", " +
5406 DB.SQLString(item[
"CODIGO"]) +
", " +
5407 DB.SQLString((Convert.ToInt16(item[
"TIPO"]) == 0 ? 0 : Convert.ToInt16(item[
"TIPO"]) == 1 ? 2 : 1)) +
", " +
5408 (Convert.ToInt16(item[
"TIPO"]) == 1 ? DB.SQLString(0) : DB.SQLString(item[
"FREC_REC"])) +
", " +
5409 (Convert.ToInt16(item[
"TIPO"]) == 2 ? DB.SQLString(0) : DB.SQLString(item[
"FREC_ENV"])) +
", " +
5410 (Convert.ToInt16(item[
"TIPO"]) == 1 ? DB.SQLString(
"") : DB.SQLString(lcHora_Rec)) +
", " +
5411 (Convert.ToInt16(item[
"TIPO"]) == 2 ? DB.SQLString(
"") : DB.SQLString(lcHora_Env)) +
", " +
5412 DB.SQLString(item[
"REC_STOCK"]) +
", " +
5413 DB.SQLString(item[
"CONEXION"]) +
", " +
5414 DB.SQLString(item[
"CFG_FTP"]) +
", " +
5415 DB.SQLString(item[
"ONEDRVUSER"]) +
", " +
5416 DB.SQLString(item[
"ONEDRVFOLD"]) +
", " +
5417 DB.SQLString(item[
"REFRESHTOKEN"]) +
", " +
5418 DB.SQLString(item[
"RESOURCEIDS"]) +
", " +
5419 DB.SQLString(item[
"CLIENTID"]) +
5424 lstInsert.Add(Convert.ToString(item[
"CODIGO"]) +
" - " + Convert.ToString(item[
"NOMBRE"]));
5426 llHayCambios =
true;
5430 lstUpdate.Add(Convert.ToString(item[
"CODIGO"]) +
" - " + Convert.ToString(item[
"NOMBRE"]));
5434 configura.
_Codigo = Convert.ToString(item[
"CODIGO"]);
5435 configura.
_IdConf = Convert.ToInt32(item[
"IDCONF"]);
5436 configura.
_Conexion = Convert.ToInt32(item[
"CONEXION"]);
5438 configura.
_OneDriveUser = Convert.ToString(item[
"ONEDRVUSER"]);
5440 configura.
_RefreshToken = Convert.ToString(item[
"REFRESHTOKEN"]);
5441 configura.
_ResourceIds = Convert.ToString(item[
"RESOURCEIDS"]);
5442 configura.
_ClientId = Convert.ToString(item[
"CLIENTID"]);
5443 configura.
_Nombre = Convert.ToString(item[
"NOMBRE"]);
5446 switch (Convert.ToInt16(item[
"TIPO"]))
5449 llHayCambios = llHayCambios || (configura.
Envio !=
true);
5450 llHayCambios = llHayCambios || (configura.
Recepcion !=
true);
5453 llHayCambios = llHayCambios || (configura.
Envio !=
false);
5454 llHayCambios = llHayCambios || (configura.
Recepcion !=
true);
5457 llHayCambios = llHayCambios || (configura.
Envio !=
true);
5458 llHayCambios = llHayCambios || (configura.
Recepcion !=
false);
5461 llHayCambios = llHayCambios || (configura.
_HoraEnvio != (Convert.ToInt16(item[
"TIPO"]) == 1 ?
"" : Convert.ToString(lcHora_Rec)));
5462 llHayCambios = llHayCambios || (configura.
_HoraRecepcion != (Convert.ToInt16(item[
"TIPO"]) == 2 ?
"" : Convert.ToString(lcHora_Env)));
5466 TareasProgramadasOffline tareap =
new TareasProgramadasOffline(configura);
5477 switch (Convert.ToInt16(item[
"TIPO"]))
5480 configura.
Envio =
true;
5484 configura.
Envio =
false;
5488 configura.
Envio =
true;
5493 configura.
_FrecuenciaEnvio = Convert.ToInt16(item[
"TIPO"]) == 1 ? 0 : Convert.ToInt16(item[
"FREC_REC"]);
5494 configura.
_FrecuenciaRecepcion = Convert.ToInt16(item[
"TIPO"]) == 2 ? 0 : Convert.ToInt16(item[
"FREC_ENV"]);
5495 configura.
_HoraEnvio = Convert.ToInt16(item[
"TIPO"]) == 1 ?
"" : Convert.ToString(lcHora_Rec);
5496 configura.
_HoraRecepcion = Convert.ToInt16(item[
"TIPO"]) == 2 ?
"" : Convert.ToString(lcHora_Env);
5501 TareasProgramadasOffline tareap =
new TareasProgramadasOffline(configura);
5508 if (lstInsert.Count > 0)
5510 List<string> lstMsjInsert =
new List<string>();
5511 lstMsjInsert.Add(
"Creadas las siguientes configuraciones de comunicaciones: ");
5512 lstMsjInsert.Add(
"Creadas las siguientes tareas programadas de configuraciones de comunicaciones: ");
5513 foreach (
string valorMsj
in lstMsjInsert)
5516 foreach (
string valor
in lstInsert)
5518 logDto.
Detalle += Environment.NewLine + valor;
5520 logRepository.
Insert(logDto);
5525 if (lstUpdate.Count > 0)
5527 List<string> lstMsjUpdate =
new List<string>();
5528 lstMsjUpdate.Add(
"Actualizadas las siguientes configuraciones de comunicaciones: ");
5529 lstMsjUpdate.Add(
"Actualizadas las siguientes tareas programadas de configuraciones de comunicaciones: ");
5531 foreach (
string valorMsj
in lstMsjUpdate)
5534 foreach (
string valor
in lstUpdate)
5536 logDto.
Detalle += Environment.NewLine + valor;
5538 logRepository.
Insert(logDto);
5546 foreach (DataRow item
in ldtFichero.Rows)
5548 lcWhere =
" WHERE CODIGO = " + DB.SQLString(item[
"CODIGO"]) +
" AND IDTABREL = " + DB.SQLString(item[
"IDTABREL"]);
5550 lcSql =
" Update " + lcTablaSql +
5551 " Set IDCONF = " + DB.SQLString(item[
"IDCONF"]) +
5552 " , SELENVIAR = " + DB.SQLString(item[
"SELRECIBIR"]) +
5553 " , SELRECIBIR = " + DB.SQLString(item[
"SELENVIAR"]) +
5556 DB.SQLExec(lcSql, out
int lnFilasAfectadas);
5558 if (lnFilasAfectadas == 0)
5560 DB.SQLExec(
"DELETE FROM " + lcTablaSql +
" WHERE IDCONF = " + DB.SQLString(item[
"IDCONF"]) +
" AND IDTABREL = " + DB.SQLString(item[
"IDTABREL"]));
5562 lcSql =
" INSERT INTO " + lcTablaSql +
" " +
5563 " (CODIGO,IDCONF,IDTABREL,SELENVIAR,SELRECIBIR) " +
5565 DB.SQLString(item[
"CODIGO"]) +
", " +
5566 DB.SQLString(item[
"IDCONF"]) +
", " +
5567 DB.SQLString(item[
"IDTABREL"]) +
", " +
5568 DB.SQLString(item[
"SELRECIBIR"]) +
", " +
5569 DB.SQLString(item[
"SELENVIAR"]) +
") ";
5579 foreach (DataRow item
in ldtFichero.Rows)
5581 lcWhere =
" WHERE EMPRESA = " + DB.SQLString(item[
"EMPRESA"]) +
" AND SERIE = " + DB.SQLString(item[
"SERIE"]) +
" AND TIPODOC = " + DB.SQLString(item[
"TIPODOC"]);
5583 lcSql =
" IF EXISTS " + Environment.NewLine +
5584 " ( SELECT * FROM " + lcTablaSql + lcWhere +
" ) " + Environment.NewLine +
5585 " BEGIN " + Environment.NewLine +
5586 " Update " + lcTablaSql +
5587 " Set CONTADOR = " + DB.SQLString(item[
"CONTADOR"]) +
5588 lcWhere + Environment.NewLine +
5589 " END " + Environment.NewLine +
5590 " ELSE " + Environment.NewLine +
5591 " BEGIN" + Environment.NewLine +
5592 " INSERT INTO " + lcTablaSql +
" " +
5593 " (EMPRESA, SERIE, TIPODOC, CONTADOR) " +
5595 DB.SQLString(item[
"EMPRESA"]) +
", " +
5596 DB.SQLString(item[
"SERIE"]) +
", " +
5597 DB.SQLString(item[
"TIPODOC"]) +
", " +
5598 DB.SQLString(item[
"CONTADOR"]) +
") " +
5608 foreach (DataRow item
in ldtFichero.Rows)
5610 lcWhere =
" WHERE TIPOOFF = " + DB.SQLString(item[
"TIPOOFF"]) +
" AND EJERCICIO = " + DB.SQLString(item[
"EJERCICIO"]);
5612 lcSql =
" IF EXISTS " + Environment.NewLine +
5613 " ( SELECT * FROM " + lcTablaSql + lcWhere +
" ) " + Environment.NewLine +
5614 " BEGIN " + Environment.NewLine +
5615 " Update " + lcTablaSql +
5616 " Set TRASPEJER = " + DB.SQLString(item[
"TRASPEJER"]) +
5617 lcWhere + Environment.NewLine +
5618 " END " + Environment.NewLine +
5619 " ELSE " + Environment.NewLine +
5620 " BEGIN" + Environment.NewLine +
5621 " INSERT INTO " + lcTablaSql +
" " +
5622 " (TIPOOFF,EJERCICIO,TRASPEJER) " +
5624 DB.SQLString(item[
"TIPOOFF"]) +
", " +
5625 DB.SQLString(item[
"EJERCICIO"]) +
", " +
5626 DB.SQLString(item[
"TRASPEJER"]) +
") " +
5636 foreach (DataRow item
in ldtFichero.Rows)
5638 lcWhere =
" WHERE EMPRESA = " + DB.SQLString(item[
"EMPRESA"]) +
" AND CODIGO = " + DB.SQLString(item[
"CODIGO"]);
5640 lcSql =
" IF EXISTS " + Environment.NewLine +
5641 " ( SELECT * FROM " + lcTablaSql + lcWhere +
" ) " + Environment.NewLine +
5642 " BEGIN " + Environment.NewLine +
5643 " Update " + lcTablaSql +
5644 " Set MODIFIED = GETDATE() " +
5645 lcWhere + Environment.NewLine +
5646 " END " + Environment.NewLine +
5647 " ELSE " + Environment.NewLine +
5648 " BEGIN" + Environment.NewLine +
5649 " INSERT INTO " + lcTablaSql +
" " +
5650 " (EMPRESA,CODIGO) " +
5652 DB.SQLString(item[
"EMPRESA"]) +
", " +
5653 DB.SQLString(item[
"CODIGO"]) +
") " +
5665 private static string Tratamiento_Deletenet_Tabla_Control(
string tcTabla,
string tcWhere,
string tcEjercicio,
string tcId,
string tcChecksum)
5668 if (tcChecksum != _offlineConfig.GenerarChecksumDeleteNet(tcId, tcWhere, tcTabla))
5670 throw new ChecksumDeleteNetException(
"Error en la comprobación del checksum de la tabla Deletenet");
5673 string lcSql =
string.Empty;
5674 string lcTablaControl = _offlineConfig.ObtenerTablaControlRelacionada(tcTabla);
5676 if (
string.IsNullOrWhiteSpace(lcTablaControl))
5681 switch (lcTablaControl)
5744 lcSql =
" DELETE FROM " + DB.SQLDatabase(
"OFFLINE", lcTablaControl) + tcWhere +
"; ";
5749 tcWhere = tcWhere.Replace(
"linea",
"linia");
5750 lcSql =
" DELETE FROM " + DB.SQLDatabase(
"OFFLINE", lcTablaControl) + tcWhere +
" AND EJERCICIO = " + DB.SQLString(tcEjercicio) +
"; ";
5756 lcSql =
" DELETE FROM " + DB.SQLDatabase(
"OFFLINE", lcTablaControl) +
5757 " FROM " + DB.SQLDatabase(
"OFFLINE", lcTablaControl) +
" a " +
5758 " INNER JOIN (SELECT empresa, numero, linea FROM " + DB.SQLDatabase(
"GESTION",
"ASIENTOS") + tcWhere +
" ) b " +
5759 " ON a.empresa = b.EMPRESA and a.NUMERO = b.NUMERO and a.LINEA = b.LINEA " +
5760 " WHERE a.EJERCICIO = " + DB.SQLString(tcEjercicio) +
"; ";
5766 lcSql =
" DELETE FROM " + DB.SQLDatabase(
"OFFLINE", lcTablaControl) + tcWhere +
" AND PERIODO = " + DB.SQLString(tcEjercicio) +
"; ";
5771 lcSql =
" DELETE FROM " + DB.SQLDatabase(
"OFFLINE", lcTablaControl) + tcWhere +
" AND YEAR(EMISION) = " + DB.SQLString(tcEjercicio) +
"; ";
5776 lcSql =
" DELETE FROM " + DB.SQLDatabase(
"OFFLINE", lcTablaControl) + tcWhere +
" AND EJERCICIO = " + DB.SQLString(tcEjercicio) +
"; ";
5785 private static bool Tratamiento_Deletenet(OfflineDatosComunicaciones datos,
ILog_comoffRepository logRepository)
5787 string lcFile = Path.Combine(TempFolderName,
"DELETENET.xml");
5788 if (!File.Exists(lcFile))
5793 DataTable table = ConvertFileToDatatable(lcFile, FormatoExportacion.XML);
5795 string lcDb =
string.Empty;
5796 string lcTabla =
string.Empty;
5797 string lcEjercicio =
string.Empty;
5798 string lcWhere =
string.Empty;
5799 string lcTipoDato =
string.Empty;
5800 string lcChecksum =
string.Empty;
5801 string lcId =
string.Empty;
5803 string lcSql =
string.Empty;
5804 DataTable tablaConsulta =
new DataTable();
5806 List<string> lstTareasProg =
new List<string>();
5809 foreach (DataRow item
in table.Rows)
5811 string lcCodigo =
"";
5813 lcTipoDato = clsOfflineUtils.ObtenerTipoDato(item.Field<
string>(
"clavetab").TrimEnd());
5815 lcDb = item.Field<
string>(
"db").TrimEnd();
5816 lcTabla = item.Field<
string>(
"tabla").TrimEnd();
5817 lcEjercicio = item.Field<
string>(
"ejercicio").TrimEnd();
5818 lcWhere = item.Field<
string>(
"sql").TrimEnd();
5819 lcId = item.Field<
string>(
"id").TrimEnd();
5820 lcChecksum = item.Field<
string>(
"checksum").TrimEnd();
5824 lcSql = Tratamiento_Deletenet_Tabla_Control(lcDb +
"!" + lcTabla, lcWhere, lcEjercicio, lcId, lcChecksum);
5825 lcSql +=
" DELETE FROM " + DB.SQLDatabase(lcDb, lcTabla) + lcWhere +
";";
5832 lcWhere = lcWhere.Replace(
"codigo",
"plantilla");
5833 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"D_PLANTCLI") + lcWhere +
";";
5834 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"D_PLANTLIN") + lcWhere +
";";
5835 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"D_PLANTPLA") + lcWhere +
";";
5836 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"PLANTHDOC") + lcWhere +
";";
5837 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"PLANCLIART") + lcWhere +
";";
5843 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"MULTICAM") + lcWhere +
" AND FICHERO = 'ARTICULO' ;";
5845 lcWhere = lcWhere.Replace(
"codigo",
"articulo");
5846 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"PVPCOL") + lcWhere +
";";
5847 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"PVP") + lcWhere +
";";
5848 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"OFERTAS") + lcWhere +
";";
5849 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"BARRAS") + lcWhere +
";";
5850 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"EAN_PESO") + lcWhere +
";";
5851 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ESCANDAL") + lcWhere +
";";
5852 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"REFERPRO") + lcWhere +
";";
5853 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"IDI_ART") + lcWhere +
";";
5854 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ART_FOTO") + lcWhere +
";";
5855 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"STOALMMM") + lcWhere +
";";
5856 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"CMBPVP") + lcWhere +
";";
5858 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"ART_CLASIF") + lcWhere +
";";
5859 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"ART_COLO") + lcWhere +
";";
5860 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"ART_TALL") + lcWhere +
";";
5862 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ART_ULTCOS") + lcWhere +
";";
5865 if (EW_GLOBAL._ModuloActivo(
"TPV"))
5867 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"TPV",
"ART_REST") + lcWhere +
";";
5870 if (EW_GLOBAL._ModuloActivo(
"TUEFID"))
5872 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"TUEFID",
"ART_REG") + lcWhere +
";";
5873 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"TUEFID",
"FACTORPTOS") + lcWhere +
";";
5875 if (EW_GLOBAL._ModuloActivo(
"LOTES"))
5877 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"ARTLOT") + lcWhere +
";";
5878 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"BAREAN") + lcWhere +
";";
5879 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"COSTELOT") + lcWhere +
" AND EJERCICIO = '" + lcEjercicio +
"' ;";
5881 lcWhere = item.Field<
string>(
"sql").TrimEnd();
5882 lcWhere = lcWhere.Replace(
"codigo",
"LEFT(codigo," + EW_GLOBAL._GetLenCampo(ew.global.Diccionarios.KeyDiccionarioLenCampos.wn_articulo) +
")");
5883 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"MULTICAM") + lcWhere +
" AND FICHERO = 'ARTLOTES' ;";
5890 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"MULTICAM") + lcWhere +
" AND FICHERO = 'PROVEEDO' ;";
5892 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"OTRAS") + lcWhere +
";";
5894 lcWhere = lcWhere.Replace(
"codigo",
"proveed");
5895 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"DESC_PRO") + lcWhere +
";";
5897 lcWhere = item.Field<
string>(
"sql").TrimEnd();
5898 lcWhere = lcWhere.Replace(
"codigo",
"proveedor");
5899 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ACTI_PRO") + lcWhere +
";";
5900 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"BANC_PRO") + lcWhere +
";";
5901 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"CONT_PRO") + lcWhere +
";";
5902 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ENV_PRO") + lcWhere +
";";
5903 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"GIRO_PRO") + lcWhere +
";";
5904 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"TELF_PRO") + lcWhere +
";";
5905 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"CONTLF_PRO") + lcWhere +
";";
5906 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"VACA_PRO") + lcWhere +
";";
5908 lcWhere = item.Field<
string>(
"sql").TrimEnd();
5909 lcWhere = lcWhere.Replace(
"codigo",
"cliente");
5910 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ENTRE_CL") + lcWhere +
";";
5916 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"MULTICAM") + lcWhere +
" AND FICHERO = 'CLIENTES' ;";
5918 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"OTRAS") + lcWhere +
";";
5919 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"RIESGO") + lcWhere +
";";
5921 lcWhere = lcWhere.Replace(
"codigo",
"cliente");
5922 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"DESCUEN") + lcWhere +
";";
5923 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ACTI_CLI") + lcWhere +
";";
5924 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"BANC_CLI") + lcWhere +
";";
5925 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"CONT_CLI") + lcWhere +
";";
5926 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ENV_CLI") + lcWhere +
";";
5927 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"GIRO_CLI") + lcWhere +
";";
5928 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"TELF_CLI") + lcWhere +
";";
5929 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"CONTLF_CLI") + lcWhere +
";";
5930 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"VACA_CLI") + lcWhere +
";";
5931 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ENTRE_CL") + lcWhere +
";";
5933 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"CUOTAS") + lcWhere +
";";
5934 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"CUO_MES") + lcWhere +
";";
5935 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"MANDATOS") + lcWhere +
";";
5937 if (EW_GLOBAL._ModuloActivo(
"TUEFID"))
5939 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"TUEFID",
"CLITARJFID") + lcWhere +
";";
5946 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"OTRASIEN") + lcWhere +
";";
5947 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"EOS") + lcWhere +
";";
5948 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"RETREPER") + lcWhere +
";";
5949 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"RETSOPOR") + lcWhere +
";";
5950 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"IVAREPER") + lcWhere +
";";
5951 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"IVASOPOR") + lcWhere +
";";
5952 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"IVA_EXEN") + lcWhere +
";";
5953 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"MOD347I") + lcWhere +
";";
5954 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"IVACJREPER") + lcWhere +
";";
5955 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"IVACJSOPOR") + lcWhere +
";";
5957 string lcWhereObserasi =
" where " + lcWhere.Substring(lcWhere.IndexOf(
"asi"));
5958 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"OBSERASI") + lcWhereObserasi +
";";
5959 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"CONCILIA") + lcWhere +
";";
5960 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"CONCIASI") + lcWhere +
";";
5961 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ASIMEM") + lcWhere +
";";
5962 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"FACTURAE") + lcWhere +
";";
5964 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"MOD347M") + lcWhere +
" AND EJERCICIO = '" + lcEjercicio +
"' ;";
5965 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"MOD349R") + lcWhere +
" AND EJERCICIOA = '" + lcEjercicio +
"' ;";
5974 var query = $
"SELECT ASIENTOS.EMPRESA, ASIENTOS.NUMERO, ASIENTOS.ASI FROM {DB.SQLDatabase("GESTION
", "ASIENTOS
")} ASIENTOS " +
5976 $
" (SELECT EMPRESA, NUMERO FROM {DB.SQLDatabase("GESTION
", "ASIENTOS
")} {lcWhere}) AS DATOS " +
5977 $
"ON ASIENTOS.EMPRESA = DATOS.EMPRESA and ASIENTOS.NUMERO = DATOS.NUMERO ";
5978 var datosAsiento =
new DataTable();
5980 if(DB.SQLExec(query, ref datosAsiento))
5982 foreach (DataRow row
in datosAsiento.Rows)
5984 var empresa = Convert.ToString(row[
"EMPRESA"]).TrimEnd();
5985 var asi = Convert.ToString(row[
"ASI"]).TrimEnd();
5986 var whereLineaAsientoEntrega = $
" WHERE empresa = '{empresa}' and asi = '{asi}' ";
5988 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"OTRASIEN") + whereLineaAsientoEntrega +
";";
5989 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ASIENTOS") + whereLineaAsientoEntrega +
";";
5991 var numero = Convert.ToString(row[
"numero"]).TrimEnd();
5992 var whereControlAsientoEntrega = $
" WHERE empresa = '{empresa}' and numero = '{numero}' ";
5993 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"OFFLINE",
"CTRL_ASIEN") + whereControlAsientoEntrega +
";";
6002 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"COTIZA") + lcWhere +
";";
6008 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"OFICINAS") + lcWhere +
";";
6014 lcWhere = lcWhere.Replace(
"codigo",
"familia");
6015 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"DESC_FAM") + lcWhere +
";";
6021 lcWhere = lcWhere.Replace(
"codigo",
"fpag");
6022 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"FPAG_GIR") + lcWhere +
";";
6028 lcWhere = lcWhere.Replace(
"codigo",
"grupo");
6029 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"COLOGRUP") + lcWhere +
";";
6035 lcWhere = lcWhere.Replace(
"codigo",
"grupo");
6036 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"TALLGRUP") + lcWhere +
";";
6042 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"LIN_DESC") + lcWhere +
";";
6048 lcWhere = lcWhere.Replace(
"codigo",
"plancont");
6049 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"PLAN_D") + lcWhere +
";";
6055 lcWhere = lcWhere.Replace(
"codigo",
"ruta");
6056 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"ZONAS") + lcWhere +
";";
6062 lcWhere = lcWhere.Replace(
"codigo",
"vendedor");
6063 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"ART_COMI") + lcWhere +
";";
6069 lcWhere = lcWhere.Replace(
"codigo",
"almacen");
6070 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ART_ULTCOS") + lcWhere +
";";
6075 lcWhere = lcWhere.Replace(
"codigo",
"talla");
6076 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ART_ULTCOS") + lcWhere +
";";
6081 lcWhere = lcWhere.Replace(
"codigo",
"color");
6082 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ART_ULTCOS") + lcWhere +
";";
6087 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"MULTICA2") + lcWhere +
" AND FICHERO = 4 ;";
6088 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ENTRE_PR") + lcWhere +
" ;";
6089 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"PRES_ADI") + lcWhere +
" ;";
6090 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"PORTES_PRV") + lcWhere +
" ;";
6096 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"MULTICA2") + lcWhere +
" AND FICHERO = 2 ;";
6097 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"CONTADO") + lcWhere +
" AND TIPO = 2 ;";
6098 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ENTRE_PV") + lcWhere +
" ;";
6099 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"PEDV_ADI") + lcWhere +
" ;";
6100 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"PORTES_PDV") + lcWhere +
" ;";
6102 if (EW_GLOBAL._ModuloActivo(
"GAPED"))
6104 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GAPED",
"D_PEDIVEES") + lcWhere +
" AND EJERCICI = '" + lcEjercicio +
"' ;";
6111 if (EW_GLOBAL._ModuloActivo(
"GAPED"))
6113 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GAPED",
"D_PEDIVEES") + lcWhere +
" AND EJERCICI = '" + lcEjercicio +
"' ;";
6119 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"MULTICA2") + lcWhere +
" AND FICHERO = 1 ;";
6120 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"CONTADO") + lcWhere +
" AND TIPO = 1 ;";
6123 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"REFALBCLI") + lcWhere +
" ;";
6124 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ALB_FPAG") + lcWhere +
" ;";
6127 lcWhere = lcWhere.Replace(
"numero",
"albaran");
6128 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ENTREGAS") + lcWhere +
" ;";
6129 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"PORTES") + lcWhere +
" ;";
6131 lcWhere = lcWhere.Replace(
"albaran",
"numero");
6132 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"ALBV_ADI") + lcWhere +
" ;";
6134 if (EW_GLOBAL._ModuloActivo(
"TPV"))
6136 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"TPV",
"TIKETS") + lcWhere +
" AND EJERCICIO = '" + lcEjercicio +
"' ;";
6137 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"TPV",
"C_ALBVEN") + lcWhere +
" AND EJERCICIO = '" + lcEjercicio +
"' ;";
6144 if (EW_GLOBAL._ModuloActivo(
"TUEFID"))
6146 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"TUEFID",
"LIN_AV") + lcWhere +
" AND EJERCICIO = '" + lcEjercicio +
"' ;";
6149 if (EW_GLOBAL._ModuloActivo(
"LOTES"))
6151 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"LTALBVE") + lcWhere +
" AND PERIODO = '" + lcEjercicio +
"' ;";
6154 lcWhere = lcWhere.Replace(
"linia",
"linea");
6155 if (EW_GLOBAL._ModuloActivo(
"TPV"))
6157 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"TPV",
"D_ALBVEN") + lcWhere +
" AND EJERCICIO = '" + lcEjercicio +
"' ;";
6160 lcWhere = lcWhere.Replace(
"numero",
"albaran");
6161 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"VENSER") + lcWhere +
" ;";
6163 DB.SQLExec(
" SELECT SERIE FROM " + DB.SQLDatabase(
"GESTION",
"VENSER") + lcWhere, ref tablaConsulta);
6164 foreach (DataRow itemSerie
in tablaConsulta.Rows)
6166 lcSql +=
" UPDATE " + DB.SQLDatabase(
"COMUNES",
"COMPRAS") +
" SET BAJA = '', CODEMP = '', FBAJA = NULL " +
6167 " WHERE SERIE = " + DB.SQLString(itemSerie[
"SERIE"]) +
" AND [ANY] = '" + lcEjercicio +
"' ";
6174 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"MULTICA2") + lcWhere +
" AND FICHERO = 5 ;";
6175 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"CONTADO") + lcWhere +
" AND TIPO = 4 ;";
6176 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"DEPV_ADI") + lcWhere +
" ;";
6177 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"PORTES_DPV") + lcWhere +
" ;";
6183 if (EW_GLOBAL._ModuloActivo(
"LOTES"))
6185 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"LTDEPVE") + lcWhere +
" AND PERIODO = '" + lcEjercicio +
"' ;";
6188 lcWhere = lcWhere.Replace(
"linia",
"linea");
6189 lcWhere = lcWhere.Replace(
"numero",
"deposito");
6190 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"DEPSER") + lcWhere +
" ;";
6192 DB.SQLExec(
" SELECT SERIE FROM " + DB.SQLDatabase(
"GESTION",
"DEPSER") + lcWhere, ref tablaConsulta);
6193 foreach (DataRow itemSerie
in tablaConsulta.Rows)
6195 lcSql +=
" UPDATE " + DB.SQLDatabase(
"COMUNES",
"COMPRAS") +
" SET BAJA = '', CODEMP = '', FBAJA = NULL " +
6196 " WHERE SERIE = " + DB.SQLString(itemSerie[
"SERIE"]) +
" AND [ANY] = '" + lcEjercicio +
"' ";
6203 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"MULTICA3") + lcWhere +
" AND FICHERO = 3 ;";
6209 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"MULTICA3") + lcWhere +
" AND FICHERO = 2 ;";
6210 if (EW_GLOBAL._ModuloActivo(
"GAPED"))
6212 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GAPED",
"D_PEDICOES") + lcWhere +
" AND EJERCICI = '" + lcEjercicio +
"' ;";
6219 if (EW_GLOBAL._ModuloActivo(
"GAPED"))
6221 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GAPED",
"D_PEDICOES") + lcWhere +
" AND EJERCICI = '" + lcEjercicio +
"' ;";
6227 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"MULTICA3") + lcWhere +
" AND FICHERO = 1 ;";
6233 if (EW_GLOBAL._ModuloActivo(
"LOTES"))
6235 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"LTALBCO") + lcWhere +
" AND PERIODO = '" + lcEjercicio +
"' ;";
6238 lcWhere = lcWhere.Replace(
"linia",
"linea");
6239 lcWhere = lcWhere.Replace(
"numero",
"albaran");
6240 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"COMSER") + lcWhere +
" ;";
6242 lcWhere = lcWhere.Replace(
"empresa",
"codempcom");
6243 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"COMPRAS") + lcWhere +
" AND [ANY] = '" + lcEjercicio +
"' ";
6249 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"MULTICA3") + lcWhere +
" AND FICHERO = 4 ;";
6255 if (EW_GLOBAL._ModuloActivo(
"LOTES"))
6257 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"LTDEPCO") + lcWhere +
" AND PERIODO = '" + lcEjercicio +
"' ;";
6260 lcWhere = lcWhere.Replace(
"linia",
"linea");
6261 lcWhere = lcWhere.Replace(
"numero",
"albaran");
6262 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"DEPCSER") + lcWhere +
" ;";
6264 lcWhere = lcWhere.Replace(
"empresa",
"codempcom");
6265 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"COMPRAS") + lcWhere +
" AND [ANY] = '" + lcEjercicio +
"' ";
6271 if (EW_GLOBAL._ModuloActivo(
"LOTES"))
6273 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"LTALBRE") + lcWhere +
" AND PERIODO = '" + lcEjercicio +
"' ;";
6276 lcWhere = lcWhere.Replace(
"numero",
"albaran");
6277 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"REGUSER") + lcWhere +
" ;";
6283 if (EW_GLOBAL._ModuloActivo(
"LOTES"))
6285 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"LTALBRE") + lcWhere +
" AND PERIODO = '" + lcEjercicio +
"' ;";
6288 lcWhere = lcWhere.Replace(
"linia",
"linea");
6289 lcWhere = lcWhere.Replace(
"numero",
"albaran");
6290 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"REGUSER") + lcWhere +
" ;";
6292 DB.SQLExec(
" SELECT SERIE FROM " + DB.SQLDatabase(
"GESTION",
"REGUSER") + lcWhere, ref tablaConsulta);
6293 foreach (DataRow itemSerie
in tablaConsulta.Rows)
6295 lcSql +=
" UPDATE " + DB.SQLDatabase(
"COMUNES",
"COMPRAS") +
" SET BAJA = '', CODEMP = '', FBAJA = NULL " +
6296 " WHERE SERIE = " + DB.SQLString(itemSerie[
"SERIE"]) +
" AND [ANY] = '" + lcEjercicio +
"' ";
6303 if (EW_GLOBAL._ModuloActivo(
"LOTES"))
6305 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"LTALBTR") + lcWhere +
" AND PERIODO = '" + lcEjercicio +
"' ;";
6308 lcWhere = lcWhere.Replace(
"numero",
"albaran");
6309 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"TRASPSER") + lcWhere +
" ;";
6315 if (EW_GLOBAL._ModuloActivo(
"LOTES"))
6317 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"LTALBTR") + lcWhere +
" AND PERIODO = '" + lcEjercicio +
"' ;";
6320 lcWhere = lcWhere.Replace(
"linia",
"linea");
6321 lcWhere = lcWhere.Replace(
"numero",
"albaran");
6322 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"TRASPSER") + lcWhere +
" ;";
6324 DB.SQLExec(
" SELECT SERIE FROM " + DB.SQLDatabase(
"GESTION",
"TRASPSER") + lcWhere, ref tablaConsulta);
6325 foreach (DataRow itemSerie
in tablaConsulta.Rows)
6327 lcSql +=
" UPDATE " + DB.SQLDatabase(
"COMUNES",
"COMPRAS") +
" SET BAJA = '', CODEMP = '', FBAJA = NULL " +
6328 " WHERE SERIE = " + DB.SQLString(itemSerie[
"SERIE"]) +
" AND [ANY] = '" + lcEjercicio +
"' ";
6335 if (EW_GLOBAL._ModuloActivo(
"LOTES"))
6337 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"LTSTINI") + lcWhere +
" ;";
6340 lcWhere = lcWhere.Replace(
"linia",
"linea");
6341 lcWhere = lcWhere.Replace(
"numero",
"albaran");
6342 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"INICIALSER") + lcWhere +
" ;";
6344 DB.SQLExec(
" SELECT SERIE FROM " + DB.SQLDatabase(
"GESTION",
"INICIALSER") + lcWhere, ref tablaConsulta);
6345 foreach (DataRow itemSerie
in tablaConsulta.Rows)
6347 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"COMPRAS") +
6348 " WHERE SERIE = " + DB.SQLString(itemSerie[
"SERIE"]) +
" AND [ANY] = '" + lcEjercicio +
"' ";
6355 if (EW_GLOBAL._ModuloActivo(
"LOTES"))
6357 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"LTREGUL") + lcWhere +
" ;";
6360 lcWhere = lcWhere.Replace(
"linia",
"linea");
6361 lcWhere = lcWhere.Replace(
"numero",
"albaran");
6362 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"REGULARISER") + lcWhere +
" ;";
6364 DB.SQLExec(
" SELECT SERIE FROM " + DB.SQLDatabase(
"GESTION",
"REGULARISER") + lcWhere, ref tablaConsulta);
6365 foreach (DataRow itemSerie
in tablaConsulta.Rows)
6367 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"COMPRAS") +
6368 " WHERE SERIE = " + DB.SQLString(itemSerie[
"SERIE"]) +
" AND [ANY] = '" + lcEjercicio +
"' ";
6375 if (EW_GLOBAL._ModuloActivo(
"LOTES"))
6377 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"LTCPROD") + lcWhere +
" AND PERIODO = '" + lcEjercicio +
"' ;";
6380 lcWhere = lcWhere.Replace(
"numero",
"albaran");
6381 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"PRODUSERC") + lcWhere +
" ;";
6383 lcWhere = lcWhere.Replace(
"empresa",
"codempcom");
6384 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"COMPRAS") + lcWhere +
" AND [ANY] = '" + lcEjercicio +
"' ";
6390 if (EW_GLOBAL._ModuloActivo(
"LOTES"))
6392 lcWhere = lcWhere.Replace(
"linea",
"linia");
6393 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"LOTES",
"LTDPROD") + lcWhere +
" AND PERIODO = '" + lcEjercicio +
"' ;";
6396 lcWhere = lcWhere.Replace(
"linia",
"linea");
6397 lcWhere = lcWhere.Replace(
"numero",
"albaran");
6398 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"GESTION",
"PRODUSER") + lcWhere +
" ;";
6400 DB.SQLExec(
" SELECT SERIE FROM " + DB.SQLDatabase(
"GESTION",
"PRODUSER") + lcWhere, ref tablaConsulta);
6401 foreach (DataRow itemSerie
in tablaConsulta.Rows)
6403 lcSql +=
" UPDATE " + DB.SQLDatabase(
"COMUNES",
"COMPRAS") +
" SET BAJA = '', CODEMP = '', FBAJA = NULL " +
6404 " WHERE SERIE = " + DB.SQLString(itemSerie[
"SERIE"]) +
" AND [ANY] = '" + lcEjercicio +
"' ";
6411 string[] subPos = lcWhere.Split(
'=');
6412 if (subPos.Length == 2)
6413 lcCodigo = subPos[1].TrimEnd();
6415 DB.SQLExec(
" SELECT codigo FROM " + DB.SQLDatabase(
"OFFLINE",
"MULTCONF") + lcWhere, ref tablaConsulta);
6416 if (tablaConsulta != null && tablaConsulta.Rows.Count > 0)
6417 lcCodigo = tablaConsulta.Rows[0][
"codigo"].ToString();
6422 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"OFFLINE",
"TABNETCONF") + lcWhere +
" ;";
6423 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"OFFLINE",
"SUCURCONF") + lcWhere +
" ;";
6424 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"OFFLINE",
"USERCONF") + lcWhere +
" ;";
6430 lcWhere = lcWhere.Replace(
"numero",
"arqueo");
6431 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"TPV",
"D_ARQUEO") + lcWhere +
" ;";
6433 lcSql +=
" UPDATE " + DB.SQLDatabase(
"TPV",
"C_ALBVEN") +
" SET ARQUEO = 0 " + lcWhere +
" ;";
6434 lcSql +=
" UPDATE " + DB.SQLDatabase(
"TPV",
"TIKETS") +
" SET ARQUEO = 0 " + lcWhere +
" ;";
6436 lcSql +=
" UPDATE " + DB.SQLDatabase(
"TPV",
"REPOSI") +
" SET ARQUEO = 0 " + lcWhere +
" ;";
6437 lcSql +=
" UPDATE " + DB.SQLDatabase(
"TPV",
"COB_PAGO") +
" SET ARQUEO = 0 " + lcWhere +
" ;";
6439 int lnPosInicio = lcWhere.IndexOf(
"and ejercicio");
6440 int lnPosFinal = lcWhere.IndexOf(
"and arqueo");
6441 lcWhere = lcWhere.Substring(0, lnPosInicio - 1) +
" " + lcWhere.Substring(lnPosFinal);
6443 lcSql +=
" UPDATE " + DB.SQLDatabase(
"OFFLINE",
"CTRL_REPOS") +
" SET ARQUEO = 0 " + lcWhere +
" ;";
6444 lcSql +=
" UPDATE " + DB.SQLDatabase(
"OFFLINE",
"CTRL_REPOS") +
" SET ARQUEO = 0 " + lcWhere +
" ;";
6450 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"PEDINT_D") + lcWhere +
" ;";
6451 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"PEDINT_LIN") + lcWhere +
" ;";
6452 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"PEDINT_REG") + lcWhere +
" ;";
6458 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"PEDINT_LIN") + lcWhere +
" ;";
6459 lcSql +=
" DELETE FROM " + DB.SQLDatabase(
"COMUNES",
"PEDINT_REG") + lcWhere +
" ;";
6466 DB.SQLExec(lcSql, out
int lnFilasAfectadas);
6469 if (lnFilasAfectadas > 0)
6472 logDto.
Detalle =
"Se han eliminado " + lnFilasAfectadas +
" registros en la tabla " + lcTabla +
" en el grupo destino. " + Environment.NewLine +
6473 "Dichas eliminaciones se corresponden con datos eliminados en el grupo de empresa origen de los datos recibidos.";
6474 logRepository.
Insert(logDto);
6479 logDto.
Detalle =
"No se han podido eliminar registros en la tabla " + lcTabla +
" porque no existían los datos a eliminar en el grupo de empresa destino de la recepción de datos. " + Environment.NewLine +
6480 "Dichas eliminaciones se corresponden con datos eliminados en el grupo de empresa origen de los datos recibidos.";
6481 logRepository.
Insert(logDto);
6489 logDto.
Detalle =
"Se ha producido un error en la gestión de la tabla Deletenet. Se descartará este registro. Excepción: " + e.Message;
6490 logRepository.
Insert(logDto);
6493 if (lcTabla ==
"MULTCONF")
6495 TareasProgramadasOffline tareap =
new TareasProgramadasOffline(configura);
6498 lstTareasProg.Add(configura._Codigo +
" - " + configura._Nombre);
6503 catch (ChecksumDeleteNetException e)
6508 logDto.
Detalle =
"Se ha producido un error de validación de checksum de seguridad en la tabla Deletenet. Se descartará este registro. Excepción: " + e.Message;
6509 logRepository.
Insert(logDto);
6514 if (lstTareasProg.Count > 0)
6519 logDto.
Detalle =
"Eliminadas las siguientes tareas programadas de configuraciones de comunicaciones: ";
6521 foreach (
string valor
in lstTareasProg)
6523 logDto.
Detalle += Environment.NewLine + valor;
6526 logRepository.
Insert(logDto);
6538 internal static bool Download_UnZip_File(clsOfflineUtils.ReportProgress progressReporter, Action<string> callback)
6542 _Mostrar_Progreso_Async -= OfflineDownloader__Mostrar_Progreso_Async;
6543 _Mostrar_Progreso_Async += OfflineDownloader__Mostrar_Progreso_Async;
6545 _cTempFolderName =
string.Empty;
6547 if (!Directory.Exists(TempFolderName))
6549 Directory.CreateDirectory(TempFolderName);
6552 string cFile =
"configura_offline.zip";
6554 llOk = UnZip_File(cFile);
6556 if (!ExistsFile(TempFolderName, cFile, callback))
6562 _Mostrar_Progreso_Async -= OfflineDownloader__Mostrar_Progreso_Async;
6568 private static bool UnZip_File(
string cFile)
6573 if (!UploadManager.Descargar_Fichero(TempFolderName, cFile,
"", 0,
false))
6586 private static bool ExistsFile(
string path,
string fileName, Action<string> callback)
6588 string lcFileFtp = Path.Combine(path, fileName);
6590 if (!File.Exists(lcFileFtp))
6592 callback?.Invoke(
"No se ha encontrado el fichero de configuración en el FTP o OneDrive configurado.Revise que haya configurado correctamente los datos de conexión o bien asegurese que se ha realizado una Carga inicial o Envío de datos desde la Central.");
bool _Send(string tcCliente="", string tcProveedor="", string tcResumen="")
Envia el correo
Clase para el envío de emails
INterfaz para log_comoff repository
Classe empresa basada en sage.ew.ewmante
int _IdConf
Código de identificación de la configuración
Log_comoffDto GetDto(OfflineDatosComunicaciones datos)
Obtiene un dto a partir de DAtos de comunicaciones
override void _Load()
Override del método Load
Mantenimiento de configuración de comunicaciones
bool _RecalcularStock
Indica si al recibir datos de las sucursales en la central se debe ejecutar recálculo de stock ...
static bool ReCargarDiccionarios()
Método para volver a realizar la carga de diccionarios, por si hay que actualizar algun valor (PE-908...
bool _EnvioDirecto
Utilizar el correo predeterminado de Windows o el envío directo de Sage50 false : envio mediante clie...
string _ClientId
Campo interno de conexión OneDrive
Facturas pendientes de cobro
object Retrieve(Type T)
Resuelve objeto de tipo T
void SaveChanges()
Guardar cambios
Es como el tipo de entrada asientos pero por negocio, sin formulario, pq quiero que me haga las propu...
override string _NombreFicheroExportar
Sobreescribir la propiedad de _NombreFicheroExportar para que tenga el valor del nombre de fichero se...
string _OneDriveFolder
Carpeta de OneDrive seleccioanda por el usuario
string TipoDato
Tipo de dato
Clase Singleton para la carga de los diccionarios
EnumVariables
Enumerado de variables
Registro de comunicaciones
string _Error_Message
Mensaje de error
static bool CargarDiccionarios(string tcempresa, string tcCajaTpv)
A partir de un código de empresa y un código de caja nos carga las variables de empresa, mascaras, anchuras de campos standar y de TPV
string _RefreshToken
Campo interno de conexión OneDrive
string _HoraRecepcion
Hora de recepción para tarea programada de recepción automática de datos
virtual string _Nombre
Campo nombre del mantenimiento. En este hay que basar los demás campos en las clases heredadas ...
virtual string _Codigo
Valor del campo clave que
Albaranes pendientes de facturar
int _Conexion
Tipo de conexión 0 FTP, 1 OneDrive
void _AddAttachment(string tcFileName)
Añade un fichero adjunto
string _Subject
Asunto del correo
List< string > _Emails
Dirección de correo electrónico a la que se enviará el correo
ILog_comoffRepository Log_comoffRepository
Repositorio de log_comoff
int _FrecuenciaEnvio
Frecuencia de envío de datos 0 Diario, 1 Frecuente. En primera fase solo se usará valor 0...
Pedidos pendientes de servir
static string _CodigoGrupoActual()
Obtención del código de grupo actual
static DependencyInjector Instance
Instancia
Facturas en negociación de cobro
Clase para el control de grupos de empresa (nuevo enfoque en Sage50, desaparece el multiempresa...
void Insert(Log_comoffDto logDto)
Añade log
string _OneDriveUser
Datos de usuario OneDrive
Facturas pendientes de contabilizar
bool _CCOUsuarioActivo
India si tenemos que añadir CCO a los emails definidos en el usuario
string _ConfiguracionFtp
Datos de configuración de conexión FTP
string _HoraEnvio
Hora de envío para tarea programada de envío automático de datos
string _ResourceIds
Campo interno de conexión OneDrive
Dto para inserciones en log log_comoff
string _Body
Cuerpo del mensaje
bool _ShowEmailForm
Para mostrar el formulario del correo en envío directo true : presenta el formulario false : envia si...
Interfaz UnitOfWor Offline
Clase Inyector de dependencias para resolver las dependencias
bool _Exportar(ExportType toTipoDocumento, string tcRutaFichero, bool tlAbrirFichero=false, string tcPantalla="")
Nos exportará el listado hacia una ruta especificada. Se podra abrir tras su exportación.
int _FrecuenciaRecepcion
Frecuencia de recepción de datos 0 Diario, 1 Frecuente. En primera fase solo se usará valor 0...