ExtensionFrmDocCompraAlbaran.cs
1 using sage.ew.docscompra.Forms;
2 using sage.ew.interficies;
3 using sage.ew.objetos;
4 using sage.ew.docscompra;
5 using sage.ew.functions;
7 using System.Windows.Forms;
8 using System;
9 
10 namespace sage.addons.offline.Visual.Forms
11 {
15  public class ExtensionFrmDocCompraAlbaran: IDisposable
16  {
17  #region Properties
18 
19  private readonly frmDocCompraAlbaran _oFormDocCompraAlbaran;
20 
21  #endregion Properties
22 
23 
24  #region Constructor
25 
31  {
32  if (_toFormBase is frmDocCompraAlbaran)
33  {
34  _oFormDocCompraAlbaran = (frmDocCompraAlbaran)_toFormBase;
35  SubscripcionEventosInvalidate();
36  }
37  }
38 
39  #endregion Constructor
40 
41 
42  #region Public Methods
43 
47  public void Dispose()
48  {
49  _oFormDocCompraAlbaran._GetOpciones -= _oFormDocCompraAlbaran__GetOpciones;
50  _oFormDocCompraAlbaran.FormClosed -= _oFormDocCompraAlbaran_FormClosed;
51  }
52 
53  #endregion Public Methods
54 
55 
56  #region Private Methods
57 
61  private void SubscripcionEventosInvalidate()
62  {
63  _oFormDocCompraAlbaran._GetOpciones -= _oFormDocCompraAlbaran__GetOpciones;
64  _oFormDocCompraAlbaran._GetOpciones += _oFormDocCompraAlbaran__GetOpciones;
65  _oFormDocCompraAlbaran.FormClosed += _oFormDocCompraAlbaran_FormClosed;
66  }
67 
68  private void _oFormDocCompraAlbaran__GetOpciones(EventArgsOpciones toEnventArgOpciones)
69  {
70  if (toEnventArgOpciones.Opciones == null || toEnventArgOpciones.Opciones.Count == 0)
71  return;
72 
73  foreach (ToolStripMenuItemBase loToolStripMenuItemBase in toEnventArgOpciones.Opciones)
74  {
75  if (loToolStripMenuItemBase.Text == "Modificar marcas del documento")
76  {
77  loToolStripMenuItemBase.OnClickInvalidate -= LoToolStripMenuItemBase_OnClickInvalidate;
78  loToolStripMenuItemBase.OnClickInvalidate += LoToolStripMenuItemBase_OnClickInvalidate;
79  }
80  if (loToolStripMenuItemBase.Text == "Giros del albarán")
81  {
82  loToolStripMenuItemBase.OnClickInvalidate -= LoToolStripMenuItemBase_OnClickInvalidate1;
83  loToolStripMenuItemBase.OnClickInvalidate += LoToolStripMenuItemBase_OnClickInvalidate1;
84  }
85  if (loToolStripMenuItemBase.Text == "Gastos adicionales")
86  {
87  loToolStripMenuItemBase.OnClickInvalidate -= LoToolStripMenuItemBase_OnClickInvalidate2;
88  loToolStripMenuItemBase.OnClickInvalidate += LoToolStripMenuItemBase_OnClickInvalidate2;
89  }
90  }
91  }
92 
93  private void LoToolStripMenuItemBase_OnClickInvalidate2(ToolStripMenuItemBase toToolStripMenuItemBase, ref bool tlCancel)
94  {
95  if (_oFormDocCompraAlbaran._Documento is ewDocCompraALBARAN)
96  {
97  ewDocCompraALBARAN loDoc;
98 
99  loDoc = _oFormDocCompraAlbaran._Documento;
100 
101  if (loDoc._Addons.ContainsKey(OFFLINE._NombreAddOn) && loDoc._Addons[OFFLINE._NombreAddOn] is ExtensionDocAlbCompra)
102  {
103  if (((ExtensionDocAlbCompra)loDoc._Addons[OFFLINE._NombreAddOn])._bSoloLectura)
104  {
105  string _Error_Message = "El documento es de sólo lectura. No se puede añadir gastos adicionales al documento.";
106  FUNCTIONS._MessageBox(_Error_Message, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.OK);
107  tlCancel = true;
108  }
109  }
110  }
111  }
112 
113  private void LoToolStripMenuItemBase_OnClickInvalidate1(ToolStripMenuItemBase toToolStripMenuItemBase, ref bool tlCancel)
114  {
115  if (_oFormDocCompraAlbaran._Documento is ewDocCompraALBARAN)
116  {
117  ewDocCompraALBARAN loDoc;
118 
119  loDoc = _oFormDocCompraAlbaran._Documento;
120 
121  if (loDoc._Addons.ContainsKey(OFFLINE._NombreAddOn) && loDoc._Addons[OFFLINE._NombreAddOn] is ExtensionDocAlbCompra)
122  {
123  if (((ExtensionDocAlbCompra)loDoc._Addons[OFFLINE._NombreAddOn])._bSoloLectura)
124  {
125  string _Error_Message = "El documento es de sólo lectura. No se puede añadir giros al documento.";
126  FUNCTIONS._MessageBox(_Error_Message, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.OK);
127  tlCancel = true;
128  }
129  }
130  }
131  }
132 
133  private void LoToolStripMenuItemBase_OnClickInvalidate(ToolStripMenuItemBase toToolStripMenuItemBase, ref bool tlCancel)
134  {
135  if (_oFormDocCompraAlbaran._Documento is ewDocCompraALBARAN)
136  {
137  ewDocCompraALBARAN loDoc;
138 
139  loDoc = _oFormDocCompraAlbaran._Documento;
140 
141  if (loDoc._Addons.ContainsKey(OFFLINE._NombreAddOn) && loDoc._Addons[OFFLINE._NombreAddOn] is ExtensionDocAlbCompra)
142  {
143  if (((ExtensionDocAlbCompra)loDoc._Addons[OFFLINE._NombreAddOn])._bSoloLectura)
144  {
145  string _Error_Message = "El documento es de sólo lectura. No se puede modificar marcas.";
146  FUNCTIONS._MessageBox(_Error_Message, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.OK);
147  tlCancel = true;
148  }
149  }
150  }
151  }
152 
158  private void _oFormDocCompraAlbaran_FormClosed(object sender, FormClosedEventArgs e)
159  {
160  this.Dispose();
161  }
162 
163  #endregion Private Methods
164  }
165 }
Extensión del documento para albaranes de compra
Interface para formularios que deriven de FormBase
Definition: IFormBase.cs:12
frmDocCompraAlbaran: pantalla de albaranes de compra
Usercontrol ToolStripMenuItemBase para poder capturar los eventos del Click del ToolStripMenuItemBase...
Clase EventArgsOpciones para gestionar la lista de las opciones ToolStripMenuItemBase ...
List< ToolStripMenuItemBase > Opciones
Lista de las opciones
Clase documento de ALBARANES DE COMPRA
OnClickInvalidate_Handler OnClickInvalidate
Desencadena el evento para invalidar el OnClick del ToolStripMenuItem