AsistenteOffEnvioDatosBizRule.cs
4 //using sage.ew.db;
5 using sage.ew.global;
7 using System;
8 using System.Collections.Generic;
9 using System.ComponentModel;
10 using System.Data;
11 using System.Linq;
12 using System.Text;
13 
14 namespace sage.addons.offline.Negocio.Clases
15 {
16 
20  internal class AsistenteOffEnvioDatosBizRule : AsistenteOffBase
21  {
22  #region PROPIEDADES
23 
24  private DateTime _dtIniEjer = Convert.ToDateTime(EW_GLOBAL._GetVariable("wd_periodoini"));
25 
29  public Dictionary<int, string> Selecteds = new Dictionary<int, string>();
30 
34  public Dictionary<int, string> SelectedsAddons = new Dictionary<int, string>();
35 
36 
40  public Dictionary<int, bool> Prioridades = new Dictionary<int, bool>();
41 
45  public DataTable PrioridadesEnvio = null;
46 
47  #endregion PROPIEDADES
48 
53  internal DateTime GetDateIni()
54  {
55  return _asistenteOfflineDA.GetUltimaFechaEnvio(IdConf);
56  }
57 
58  #region Metodos publicos
59 
64  public IList<GrupoDto> GetGroups(int lcTabEnviar)
65  {
67  {
68  return offlineUnitOfWork.GruposRepository.GetGrupos(lcTabEnviar);
69  }
70  }
71 
76  public bool Upload_Control_Files()
77  {
78  OfflineUploader._offBase = this;
79  return OfflineUploader.Upload_Control_Files(2, IsCentral, IdConf);
80  }
81 
89  public void MostrarResultado(string mensaje, int nResult, string tcIdLog, int tnIdConf)
90  {
91  OfflineUpAndDown.MostrarResultado(mensaje, nResult, 2, IsCentral, tcIdLog, tnIdConf);
92  }
93 
100  public bool Upload_Offline_Files(clsOfflineUtils.ReportProgress progressReporter, bool tlAnterior)
101  {
102  bool llOk = true;
103 
104  DataTable dtSucursales = new DataTable();
105 
106  if (IsAutomatica)
107  dtSucursales = GetSucursalesConf();
108 
109  foreach (string sucursal in Sucursales)
110  {
111  if (IsAutomatica)
112  {
113  DataRow[] loSucursal = dtSucursales.Select("codigo = " + _asistenteOfflineDA.SQLString(sucursal));
114  if (loSucursal != null && loSucursal.Count() > 0)
115  {
116  //Si la fecha del último envio es null le ponemos inicio de ejercicio
117  if (loSucursal[0]["ultfecenv"] == null || loSucursal[0]["ultfecenv"] == DBNull.Value)
118  {
119  FechaInicial = Convert.ToDateTime(EW_GLOBAL._GetVariable("wd_periodoini"));
120  FechaConf = DateTime.MinValue;
121  }
122  else
123  {
124  FechaInicial = Convert.ToDateTime(loSucursal[0]["ultfecenv"]);
125  FechaConf = Convert.ToDateTime(loSucursal[0]["ultfecenv"]);
126  }
127  }
128  }
129 
130  OfflineUploader._offBase = this;
131  llOk = llOk && OfflineUploader.Upload_Offline_Files(progressReporter, FechaConf, FechaInicial, FechaFinal, sucursal, (EnvioImagenes == 0), tlAnterior, IsCentral, IdConf, false, Prioridades);
132  }
133 
134  return llOk;
135  }
136 
141  public DataTable GetSucursalesConf()
142  {
143  DataTable ret = dtSucursales.Clone();
144 
145  DataTable dtSucurConf = _asistenteOfflineDA.GetSucurConf(CodigoConfiguracion);
146 
147  foreach (DataRow row in dtSucursales.Rows)
148  {
149  DataRow[] loSucursal = dtSucurConf.Select("codigo = " + _asistenteOfflineDA.SQLString(row["codigo"]));
150  if (loSucursal != null && loSucursal.Count() > 0)
151  {
152  row["sel"] = 1;
153  ret.ImportRow(row);
154  }
155  }
156 
157  return ret;
158  }
159 
160 
161  public Dictionary<Int32, string> CargarDatosEnvio(int ctipo)
162  {
163  Dictionary <Int32, string> claves = new Dictionary<Int32, string>();
164 
165  IList<GrupoDto> cargaGrupos; //new Grupos();
167  {
168  cargaGrupos = offlineUnitOfWork.GruposRepository.GetGrupos(ctipo);
169  }
170 
171  foreach (GrupoDto grupo in cargaGrupos)
172  {
173  foreach (DataAccess.Model.tabrelnet tn in grupo.Items)
174  {
175  // hacer consulta en TABNETCONF y ver si registro de la configuración está en tabla y si campo SELENVIAR = .T.
176  if (Configuracion_TabConf(tn.ID, "TABNETCONF"))
177  claves.Add(tn.ID, tn.NOMBRE.TrimEnd());
178  }
179  }
180  return claves;
181  }
182 
189  public bool Configuracion_TabConf(Int32 id, string lcTabla)
190  {
191  return _asistenteOfflineDA.Configuracion_TabConf(id, lcTabla, CodigoConfiguracion);
192  }
193 
194  public decimal InicializarBarraProgreso(int nDivisor)
195  {
196  return OfflineUpAndDown.InicializarBarraProgreso(nDivisor);
197  }
198 
203  public decimal IncrementarBarraProgreso()
204  {
205  return OfflineUpAndDown.IncrementarBarraProgreso();
206  }
207 
208 
209  #endregion METODOS PUBLICOS
210  }
211 }
IList< tabrelnet > Items
Lista de tabrelnet
Definition: GrupoDto.cs:41
object Retrieve(Type T)
Resuelve objeto de tipo T
Es como el tipo de entrada asientos pero por negocio, sin formulario, pq quiero que me haga las propu...
IGruposRepository GruposRepository
Repositorio de grupos
Clase Inyector de dependencias para resolver las dependencias