ManteExtLinDesc.cs
1 using sage.ew.interficies;
2 using sage.ew.cliente;
4 using System.Collections.Generic;
5 using System.ComponentModel;
7 
8 namespace sage.addons.offline.Negocio.Mantes
9 {
14  {
15  #region Properties
16 
17  private readonly string tablaExtendida = "CTRL_LINEA";
18  private readonly int idTabrel = 40;
19  private BindingList<int> listaLineasDescuento = new BindingList<int>();
20  private BindingList<LineaDescuento.Descuentos.Descuento> descuentos = new BindingList<LineaDescuento.Descuentos.Descuento>();
21 
22  private LineaDescuento oLinea;
23 
24  #endregion Properties
25 
26 
27  #region Constructors
28 
32  public ManteExtLinDesc(sage.ew.interficies.IMante _mantePrincipal, IManteExtGenericoDA manteExtGenericoDA)
33  : this(manteExtGenericoDA)
34  {
35  this._Mante = _mantePrincipal;
36  }
37 
41  public ManteExtLinDesc(IManteExtGenericoDA manteExtGenericoDA)
42  : base(manteExtGenericoDA)
43  {
44  }
45 
46  #endregion Constructors
47 
48 
49  #region Public Methods
50 
55  public override bool _Load()
56  {
57  bool llOk = base._Load();
58 
59  if (llOk && _eBeforeAfter == TipoExecute.After)
60  {
61  Dictionary<string, string> loClaves = new Dictionary<string, string>
62  {
63  { "ejercicio", _manteExtGenericoDA.SQLString(cEjercicio) },
64  { "codigo", _manteExtGenericoDA.SQLString(((LineaDescuento)this._Mante)._Codigo) }
65  };
66  SoloLecturaOffline(new List<string>() { _manteExtGenericoDA.SQLString(idTabrel) }, tablaExtendida, loClaves);
67 
68  if (((LineaDescuento)this._Mante)._Estado == ew.ewbase.ewMante._EstadosMantenimiento.EditandoRegistro)
69  {
70  descuentos.Clear();
71  descuentos = ((LineaDescuento)_Mante)._Descuentos._Items;
72 
73  if (!bSoloLectura)
74  {
75  if (_offlineConfig.CondicionControlMantenimiento(idTabrel))
76  {
77  ControlBorradosOffline(new List<string>() { _manteExtGenericoDA.SQLString(idTabrel) }, tablaExtendida, loClaves);
78 
79  if (bControlBorrados)
80  {
81  listaLineasDescuento.Clear();
82 
83  foreach (LineaDescuento.Descuentos.Descuento item in descuentos)
84  {
85  listaLineasDescuento.Add(item._Linea);
86  }
87  }
88  }
89  }
90  }
91  }
92 
93  return llOk;
94  }
95 
100  public override bool _Save()
101  {
102  bool llOk = base._Save();
103 
104  if (_eBeforeAfter == TipoExecute.Before)
105  return true;
106 
107  if (oLinea == null)
108  {
109  oLinea = (LineaDescuento)_Mante;
110  }
111 
112  if (!string.IsNullOrEmpty(oLinea._Codigo))
113  {
114  GestionarLineasDescuentosBorradas();
115  }
116 
117  return llOk;
118  }
119 
124  public override bool _Delete()
125  {
126  bool llOk = true;
127 
128  if (((LineaDescuento)_Mante)._Estado != ew.ewbase.ewMante._EstadosMantenimiento.EsperandoCodigo && ((LineaDescuento)_Mante)._Estado != ew.ewbase.ewMante._EstadosMantenimiento.EntrandoNuevo)
129  {
130  if (oLinea == null)
131  {
132  oLinea = (LineaDescuento)_Mante;
133  }
134 
135  llOk = base._Delete();
136 
137  if (!string.IsNullOrEmpty(oLinea._Codigo))
138  {
139  if (_eBeforeAfter == TipoExecute.Before)
140  {
141  if (_offlineConfig.CondicionControlMantenimiento(idTabrel))
142  {
143  if (_offlineConfig.RevisarTablaControlManten(tablaExtendida, oLinea._Codigo, cEjercicio))
144  {
145  _offlineConfig.InsertDeleteNet("CLIENTES", oLinea._DataBase, oLinea._Tabla, 1, cEjercicio, $@" where codigo = {_manteExtGenericoDA.SQLString(oLinea._Codigo)}");
146  }
147  _offlineConfig.DeleteTablaControlManten(tablaExtendida, oLinea._Codigo, "codigo", cEjercicio);
148  }
149  }
150  return llOk;
151  }
152  }
153 
154  return true;
155  }
156 
157  #endregion Public Methods
158 
159 
160  #region Private Methods
161 
166  private void GestionarLineasDescuentosBorradas()
167  {
168  List<int> newListaLineasDescuento = GetLineasDescuentoFinales();
169 
170  if (bControlBorrados)
171  {
172  string claveTab = "CLIENTES";
173  string newID = _offlineConfig.GenerarRandomId();
174  int newORDEN = _offlineConfig.GetNewOrdenDeleteNet(claveTab);
175 
176  foreach (int item in listaLineasDescuento)
177  {
178  if (!newListaLineasDescuento.Contains(item))
179  {
180  string where = $@" WHERE linea = {item} AND codigo = {_manteExtGenericoDA.SQLString(oLinea._Codigo)}";
181  _offlineConfig.InsertDeleteNet(newID, claveTab, "GESTION", "LIN_DESC", 0, newORDEN, cEjercicio, where);
182  newORDEN++;
183  }
184  }
185  }
186  }
187 
192  private List<int> GetLineasDescuentoFinales()
193  {
194  List<int> newListaLineasDescuento = new List<int>();
195  BindingList<LineaDescuento.Descuentos.Descuento> listaLineasDescuento = oLinea._Descuentos._Items;
196 
197  foreach (LineaDescuento.Descuentos.Descuento item in listaLineasDescuento)
198  {
199  newListaLineasDescuento.Add(item._Linea);
200  }
201 
202  return newListaLineasDescuento;
203  }
204 
205  #endregion Private Methods
206  }
207 }
ManteExtLinDesc(IManteExtGenericoDA manteExtGenericoDA)
Inicializa una nueva instancia de la clase
Nueva interficie madre de IMantes y de la que colgara ewMante. Propiedades: _Codigo, _Nombre, _Error_Message. Metodos: _New, Save, _Delete, _Load, _Existe_Registro, _Clonar
Definition: IMantes.cs:17
override string _DataBase
PE-88540 Override de los campos _Tabla y _Database
Definition: clsEwBase.cs:1798
Mantenimiento extendido de líneas de descuento en offline
override bool _Delete()
Borra la linea de descuento cargado
Es como el tipo de entrada asientos pero por negocio, sin formulario, pq quiero que me haga las propu...
Definir la estructura de las líneas de las líneas de descuento
BindingList< _LinTRel > _Items
Lista bindable de todos los items de la tabla relacionada
override bool _Delete()
Se dispara cuando se borra una línea de descuento
Descuentos _Descuentos
Enlace con la tabla relacionada Art_Comi
override bool _Load()
Se dispara cuando se cargan los datos en el mantenimiento principal
virtual string _Codigo
Valor del campo clave que
Definition: clsEwBase.cs:2513
TipoExecute
Tipos de ejecución de los métodos
Definition: IDocModulos.cs:16
override string _Tabla
PE-88540 Override de los campos _Tabla y _Database
Definition: clsEwBase.cs:1811
override bool _Save()
Método que se ejecuta cuando el usuario guarda una forma de pago
PE-81910 Clase utilizada para consultar los datos de Linea de Descuento
ManteExtLinDesc(sage.ew.interficies.IMante _mantePrincipal, IManteExtGenericoDA manteExtGenericoDA)
Inicializa una nueva instancia de la clase
Mantenimiento extendido generico en offline