ExtensionFrmReposiDesglose.cs
1 using sage.ew.functions;
2 using sage.ew.global;
4 using sage.ew.interficies;
6 using sage.ew.tpv.Forms;
7 using static sage.ew.tpv.Forms.frmReposiDesglose;
9 using System;
10 using System.Collections.Generic;
11 using System.Windows.Forms;
12 
13 namespace sage.addons.offline.Visual.Forms
14 {
18  public class ExtensionFrmReposiDesglose : IDisposable
19  {
20  #region Properties
21 
22  private readonly frmReposiDesglose _oFormReposicionDesglose;
23  private Mantegrid gridReposiciones = new Mantegrid();
24  private List<Dictionary<string, dynamic>> listaReposicionesBorradas = new List<Dictionary<string, dynamic>>();
26 
27  #endregion Properties
28 
29 
30  #region Constructor
31 
37  {
38  if (_toFormBase is frmReposiDesglose)
39  {
40  _oFormReposicionDesglose = (frmReposiDesglose)_toFormBase;
41  SubscripcionEventosInvalidate();
42  }
43  }
44 
45  #endregion Constructor
46 
47 
48  #region Public Methods
49 
53  public void Dispose()
54  {
55  if (gridReposiciones != null)
56  {
57  gridReposiciones._RowPrePaint -= GridReposiciones__RowPrePaint;
58  gridReposiciones._Row_Delete_Before -= GridReposiciones__Row_Delete_Before;
59  gridReposiciones._Row_Delete_After -= GridDesgloseReposiciones__Row_Delete_After;
60  gridReposiciones = null;
61  }
62 
63  _oFormReposicionDesglose.FormClosed -= _oFormReposicionDesglose_FormClosed;
64  }
65 
66  #endregion Public Methods
67 
68 
69  #region Private Methods
70 
74  private void SubscripcionEventosInvalidate()
75  {
76  gridReposiciones = (Mantegrid)_oFormReposicionDesglose._FindControl("mantegrid1");
77 
78  if (gridReposiciones != null)
79  {
80  gridReposiciones._RowPrePaint += GridReposiciones__RowPrePaint;
81  gridReposiciones._Row_Delete_Before += GridReposiciones__Row_Delete_Before;
82  gridReposiciones._Row_Delete_After += GridDesgloseReposiciones__Row_Delete_After;
83  }
84 
85  _oFormReposicionDesglose.FormClosed += _oFormReposicionDesglose_FormClosed;
86  }
87 
88  private void GridReposiciones__RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
89  {
90  TipoArqueo loTipoArqueo = TipoArqueo.NO_Arqueados;
91  DataGridViewRowCollection rows = ((sage.ew.objetos.ewgrid)sender).Rows;
92 
93  if (_oFormReposicionDesglose._Reposicion._Arqueo > 0)
94  {
95  loTipoArqueo = TipoArqueo.Arqueados;
96  }
97 
98  DataGridViewRow miRow = rows[e.RowIndex];
99 
100  Dictionary<string, dynamic> filtros = new Dictionary<string, dynamic>()
101  {
102  { "empresa", Convert.ToString(EW_GLOBAL._GetVariable("wc_empresa")) },
103  { "caja", _oFormReposicionDesglose._Reposicion._Caja },
104  { "moneda", Convert.ToString(miRow.Cells[NomColsReposicion._Moneda.ToString()].Value) },
105  { "operario", Convert.ToString( miRow.Cells[NomColsReposicion._Operario.ToString()].Value) },
106  { "fecha", _oFormReposicionDesglose._Reposicion._Fecha },
107  { "linea", Convert.ToInt32( miRow.Cells[NomColsReposicion._Linea.ToString()].Value) }
108  };
109 
110  if (reposiciones._ControlPrioridad(loTipoArqueo))
111  {
112  if (reposiciones._Validar_Solo_Lectura(filtros))
113  {
114  foreach (DataGridViewCell celda in miRow.Cells)
115  {
116  celda.ReadOnly = true;
117  celda.Style.BackColor = System.Drawing.Color.FromArgb(240, 240, 240);
118  }
119  }
120  }
121  }
122 
127  private void GridDesgloseReposiciones__Row_Delete_After(DataGridViewRow trRowDelete)
128  {
129  // Si el valor del index es diferente de -1 puede ser porque no se haya seleccionado el registro o bien se haya cancelado el borrado
130  if (trRowDelete.Index == -1)
131  {
132  reposiciones._Delete(listaReposicionesBorradas);
133  }
134  }
135 
141  private void GridReposiciones__Row_Delete_Before(DataGridViewRow tdgvRowDelete, ref bool tlOk)
142  {
143  TipoArqueo loTipoArqueo = TipoArqueo.NO_Arqueados;
144 
145  if (_oFormReposicionDesglose._Reposicion._Arqueo > 0 )
146  {
147  loTipoArqueo = TipoArqueo.Arqueados;
148  }
149 
150  Dictionary<string, dynamic> filtros = new Dictionary<string, dynamic>()
151  {
152  { "empresa", Convert.ToString(EW_GLOBAL._GetVariable("wc_empresa")) },
153  { "caja", _oFormReposicionDesglose._Reposicion._Caja },
154  { "moneda", Convert.ToString(tdgvRowDelete.Cells[NomColsReposicion._Moneda.ToString()].Value) },
155  { "operario", Convert.ToString( tdgvRowDelete.Cells[NomColsReposicion._Operario.ToString()].Value) },
156  { "fecha", _oFormReposicionDesglose._Reposicion._Fecha },
157  { "linea", Convert.ToInt32( tdgvRowDelete.Cells[NomColsReposicion._Linea.ToString()].Value) }
158  };
159 
160  if (Convert.ToBoolean(tdgvRowDelete.Cells[NomColsReposicion._Seleccionada.ToString()].Value))
161  {
162  if (reposiciones._ControlPrioridad(loTipoArqueo))
163  {
164  if (reposiciones._Validar_Solo_Lectura(filtros))
165  {
166  string _Error_Message = "No se puede borrar, esta resposición se ha enviado o recibido.";
167  FUNCTIONS._MessageBox(_Error_Message, MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.OK);
168  tlOk = false;
169  }
170  }
171 
172  if (reposiciones._ControlBorrados(loTipoArqueo))
173  {
174  listaReposicionesBorradas.Clear();
175 
176  if (tlOk)
177  {
178  listaReposicionesBorradas.Add(filtros);
179  }
180  }
181  }
182  }
183 
184  private void _oFormReposicionDesglose_FormClosed(object sender, FormClosedEventArgs e)
185  {
186  this.Dispose();
187  }
188 
189  #endregion Private Methods
190  }
191 }
_RowPrePaint_Handler _RowPrePaint
Se produce antes de que se dibuje un objeto DataGridViewRow
Definition: Mantegrid.cs:736
object Retrieve(Type T)
Resuelve objeto de tipo T
Formulario para presentar el grid de detalle de las reposiciones
Formulario extendido del detalle de reposiciones del día
Clase del objeto grid para Sage50
Definition: grid.cs:31
Interface para formularios que deriven de FormBase
Definition: IFormBase.cs:12
Mantenimiento extendido de reposiciones. No llega a ser una extensión. Esta clase se utiliza para la ...
_Row_Delete_After_Handler _Row_Delete_After
Se dispara después de borrar una fila
Definition: Mantegrid.cs:682
_Row_Delete_Before_Handler _Row_Delete_Before
Se dispara antes de borrar una fila
Definition: Mantegrid.cs:678
void Dispose()
Eliminamos la subcrición a los eventos
Clase Inyector de dependencias para resolver las dependencias
Presenta un datagridview con botones añadir y borrar tipo Mantegrid de Eurowin
Definition: Mantegrid.cs:30