ExtensionDocPedCompra.cs
2 //using sage.ew.db;
3 using sage.ew.docscompra;
4 using sage.ew.ewbase;
5 using sage.ew.global;
7 using sage.ew.interficies;
8 using System.Collections.Generic;
9 
10 namespace sage.addons.offline.Negocio.Documentos
11 {
16  {
17  #region Proterties
18 
19  private bool bSoloLectura = false;
23  public bool _bSoloLectura
24  {
25  get { return bSoloLectura; }
26  set { bSoloLectura = value; }
27  }
28 
29  private readonly string cEjercicio = string.Empty;
30  private string tablaExtendida = "CTRL_PEDC";
31  private OfflineConfig _offlineConfig;
32  private IBaseDA _extensionDocPedCompra;
36  protected internal bool _ControlBorrados = false;
37 
41  protected internal bool _ControlBorradosTablaControl = false;
42 
46  protected internal int _TipoBorrado = 0;
47 
51  protected internal string _DeleteNetID = string.Empty;
52 
53  #endregion Proterties
54 
55 
56  #region Constructors
57 
62  {
63  cEjercicio = EW_GLOBAL._GetVariable("wc_any").ToString();
64  _extensionDocPedCompra = baseDA;
66  }
67 
68  #endregion Constructors
69 
70 
71  #region Public Methods
72 
80  public override bool _Load(string tcEmpresa, string tcNumero, string tcProveedor = "")
81  {
82  bool llOk = base._Load(tcEmpresa, tcNumero, tcProveedor);
83 
84  if (llOk)
85  {
86  // De momento no realizamos ninguna acción en modo Before
87  if (_eBeforeAfter == TipoExecute.Before)
88  return true;
89 
90  List<string> listaID = new List<string>
91  {
92  "58"
93  };
94 
95  if (_offlineConfig.CondicionPrioridadDocumentos(listaID))
96  {
97  bSoloLectura = _offlineConfig.RevisarTablaControl(tablaExtendida, tcEmpresa, tcNumero);
98  }
99 
100  _ControlBorradosTablaControl = false;
101 
102  if (_offlineConfig.CondicionControlDocumentos(listaID))
103  {
104  _ControlBorrados = _offlineConfig.RevisarTablaControl(tablaExtendida, tcEmpresa, tcNumero);
105  _ControlBorradosTablaControl = true;
106 
107  _DeleteNetID = _offlineConfig.GenerarRandomId();
108  }
109  }
110 
111  return llOk;
112  }
113 
120  public override bool _Abandonar_Documento(bool tbNoValidarDocumento = false, bool tlSalirDocumento = false)
121  {
122  bSoloLectura = false;
123  return base._Abandonar_Documento(tbNoValidarDocumento, tlSalirDocumento);
124  }
125 
130  public override bool _Delete()
131  {
132  _TipoBorrado = 2;
133 
134  bool llOk = base._Delete();
135 
136  if (_eBeforeAfter == TipoExecute.Before)
137  {
138  return true;
139  }
140 
141  if (_ControlBorrados)
142  {
143  string claveTab = "C_PEDICO";
144  string where = " Where empresa = " + _extensionDocPedCompra.SQLString(((this as _ExtensionDocCompraDocumento)._Documento as ewDocCompraPEDIDO)._Empresa) +
145  " and numero = " + _extensionDocPedCompra.SQLString(((this as _ExtensionDocCompraDocumento)._Documento as ewDocCompraPEDIDO)._Numero, 10, tlIzquierda: true);
146 
147  _offlineConfig.InsertDeleteNet(_DeleteNetID, claveTab, "GESTION", "C_PEDICO", _TipoBorrado, cEjercicio, where);
148  }
149 
150  _TipoBorrado = 0;
151 
152  if (_ControlBorradosTablaControl)
153  {
154  List<OfflineConfig.CamposFiltro> listaCamposFiltro = new List<OfflineConfig.CamposFiltro>
155  {
156  new OfflineConfig.CamposFiltro(){ campo = "Empresa", valor = ((this as _ExtensionDocCompraDocumento)._Documento as ewDocCompraPEDIDO)._Empresa},
157  new OfflineConfig.CamposFiltro(){ campo = "Ejercicio", valor = cEjercicio},
158  new OfflineConfig.CamposFiltro(){ campo = "Numero", valor = ((this as _ExtensionDocCompraDocumento)._Documento as ewDocCompraPEDIDO)._Numero},
159  };
160  _offlineConfig.DeleteTablaControlManten(tablaExtendida, listaCamposFiltro);
161  }
162 
163  return llOk;
164  }
165 
170  public override bool _Delete_Linea(IDocumentLinea toLineaDocumento)
171  {
172  bool llOk = base._Delete_Linea(toLineaDocumento);
173 
174  if (_eBeforeAfter == TipoExecute.Before)
175  {
176  return true;
177  }
178 
179  if (_ControlBorrados)
180  {
181  string where = string.Empty;
182 
183  where = $@" Where empresa = {_extensionDocPedCompra.SQLString(toLineaDocumento._Empresa)} and numero = {_extensionDocPedCompra.SQLString(toLineaDocumento._Numero, 10, tlIzquierda: true)} and linia = {_extensionDocPedCompra.SQLString(toLineaDocumento._Linea)}";
184 
185  _offlineConfig.InsertDeleteNet("C_PEDICO", "GESTION", "D_PEDICO", _TipoBorrado, cEjercicio, where);
186  }
187 
188  return llOk;
189  }
190 
195  public override bool _Validar_Solo_Lectura()
196  {
197  if (_eBeforeAfter == TipoExecute.After)
198  {
199  return _bSoloLectura;
200  }
201 
202  return false;
203  }
204 
205  #endregion Public Methods
206  }
207 }
DataAccess.Model.deletenet InsertDeleteNet(string id, string claveTab, string baseDatos, string tabla, int tipo, int orden, string ejercicio, string where)
Inserta un registro en la tabla DeleteNet a través de la creación de un objeto de la clase deletenet ...
override bool _Load(string tcEmpresa, string tcNumero, string tcProveedor="")
Override del _Load para consultar si el documento es o no de solo lectura segun prioridades ...
string GenerarRandomId()
Generar id aleatorio para la tabla delete net y otras futuras, de 10 caracteres
bool RevisarTablaControl(string tcTabla, string tcEmpresa, string tcNumero, string tcCampo3="", string tcValor3="")
Revisar tabla de control
object Retrieve(Type T)
Resuelve objeto de tipo T
Clase que permite extender la funcionalidad en los documentos de compra para PaM y nuevos módulos...
override bool _Delete_Linea(IDocumentLinea toLineaDocumento)
Método que se ejecuta cuando el usuario borra una línea del documento.
bool CondicionPrioridadDocumentos(List< string > lisTabrels)
Condición de prioridad de documentos
Es como el tipo de entrada asientos pero por negocio, sin formulario, pq quiero que me haga las propu...
Interficie mínima de las líneas (Mantener lo mas reducida posible)
Definition: IDocument.cs:186
Campos de los que se compone el filtro para filtrar en tabla control (CTRL_). Máximo un campo ...
override bool _Abandonar_Documento(bool tbNoValidarDocumento=false, bool tlSalirDocumento=false)
Override del _Abandonar_Documento para inicializar la variable bSoloLectura a false ...
bool DeleteTablaControlManten(string tabla, string valorCodigo, string campoCodigo="codigo", string ejercicio="", string campo3="", string valor3="")
Método que borra de la tabla extendida CTRL_ el registro eliminado
bool CondicionControlDocumentos(List< string > lisTabrels)
Condición de control de documentos
ExtensionDocPedCompra(IBaseDA baseDA)
Inicializa una nueva instancia de la clase
Interfaz base de Acceso a datos
Definition: IBaseDA.cs:12
Extensión de documento para pedidos de compra
TipoExecute
Tipos de ejecución de los métodos
Definition: IDocModulos.cs:16
Clase de negocio para la configuración del addon de offline
Clase documento de PEDIDOS DE COMPRA
Clase que permite extender la funcionalidad en los pedidos de compra para PaM y nuevos módulos...
override bool _Validar_Solo_Lectura()
Validación de sólo lectura
override bool _Delete()
Método que se ejecuta cuando el usuario borra un documento
Clase Inyector de dependencias para resolver las dependencias
string SQLString(object txValor, int tnLongitud=0, char tcRelleno=' ', bool tlIzquierda=false)
Devuelve string para consulta