btSeriesLotesServices.cs
1 using System;
4 using sage.ew.interficies;
5 using sage.ew.global;
6 using sage.ew.ewbase;
8 using System.Windows.Forms;
9 using sage.ew.docscompra;
10 using eTipoExtension = sage.ew.enumerations.eTipoExtension;
11 using sage.ew.docsven;
12 using sage.ew.botones;
13 
14 // namespace sage.ew.botones
15 namespace sage.addons.services.Visual.UserControls
16 {
17  #region Variables
18  public partial class BtSeriesLotesServices: BtSeriesLotes //: btMante
22  {
26 
27  #endregion Variables
28 
29  #region Constructores
30 
34  public BtSeriesLotesServices():base()
35  {
36  OperationManager = new ControladorBotonesExtensionServices();
37  }
38 
39  #endregion Constructores
40  //protected override bool obtenerDocumentoDeTrabajo()
41  //{
42  // //
43  // return base.obtenerDocumentoDeTrabajo()
44  //}
45 
46 
47  protected override bool obtenerDocumentoDeTrabajo()
48  {
49  //Sino tengo documento no puedo seguir
50  if (!tengoDocumento())
51  {
52  if (tengoGrid() && _GridArt._Grid.CurrentRow != null && _GridArt._Grid.CurrentRow.Index >= 0)
53  {
54  object linea = _GridArt._Grid.CurrentRow.DataBoundItem;
55 
56 // if (linea is sage.addons.services.Negocio.Clases.ServiceMateriales.Linia)
57 // {
59  //_Documento = (sage.addons.services.Negocio.Clases.ServiceMateriales)((sage.addons.services.Negocio.Clases.ServiceMateriales.Linia)linea)._Parent;
60 // }
61 
62  }
63  else
64  return false;
65  }
66 
67  //Sino tengo numero tambien acabo
68  return tengoDocumento();
69  }
70 
71  protected override bool obtenerLineaDeTrabajo()
72  {
73  //Se modifica el control para que lo mire por línea y no por grid dado que al crear lineas no vinculadas al grid se disparaba
74  if (!tengoLinea())
75  {
76  if (_GridArt != null && _GridArt._Grid.RowCount > 0) //Tengo líneas
77  {
78  object linea = _GridArt._Grid.CurrentRow.DataBoundItem;
79  // _DocLinea = ((sage.addons.services.Negocio.Documentos.Services)_Documento)._serviceMateriales._Lineas[_GridArt._Grid.CurrentRow.Index];
80  _DocLinea = ((sage.addons.services.Negocio.Clases.ServiceMateriales)((sage.addons.services.Negocio.Clases.ServiceMateriales.Linia)linea)._Parent)._Lineas[_GridArt._Grid.CurrentRow.Index];
81 
82  }
83  else return false;
84  }
85  return true;
86  }
87 
88 
89 
90 
91  }
92 
96  internal class ControladorBotonesExtensionServices:ControladorBotonesExtension
97  {
98  #region Controladores
99 
103  protected override IBotonExtension ControladorSeries
104  {
105  get
106  {
107  if (_oControladorSeries == null) //Lazy
108  _oControladorSeries = new BotonExtensionSeriesImplServices();
109  return _oControladorSeries;
110  }
111  set { _oControladorSeries = value; }
112  }
113 
114 
115  #endregion Controladores
116 
117  #region Constructores
118 
122  public ControladorBotonesExtensionServices()
123  {
124 
125  }
126 
127 
128  #endregion Constructores
129 
130 
135  protected override eTipoExtension determinarTipoDeLinea()
136  {
137  eTipoExtension tipoExtension = eTipoExtension.ninguna;
138 
139  //Si tenemos línea le preguntamos por sus extensiones
140  if (_LineaDocumento != null)
141  {
142  // JJ: Como heredamos de ewDocVentaLin en Linia en ServiceMateriales.cs nuestralinea de materiales tambien es Docsven.IDocVentaLin pero en este caso nos interesa
143  // devolverlo tal cual sino preguntar por si usa series o lotes
146  //if (_LineaDocumento is Docsven.IDocVentaLin && string.IsNullOrWhiteSpace(((Docsven.IDocVentaLin)_LineaDocumento)._TipoIva))
147  //{
148  // return tipoExtension;
149  //}
150 
151  // Si es un comentario en un documento de compra, salimos
152  if (_LineaDocumento is IDocCompraLin && string.IsNullOrWhiteSpace(((IDocCompraLin)_LineaDocumento)._TipoIva))
153  {
154  return tipoExtension;
155  }
156  // fi 143703
157 
158  if (_LineaDocumento._UsaSeries)
159  {
160  tipoExtension = eTipoExtension.series;
161  }
162  else
163  {
164  if (_LineaDocumento._UsaLotes)
165  {
166  tipoExtension = eTipoExtension.lotes;
167  }
168  }
169 
170  }
171 
172  return tipoExtension;
173  }
174  }
175 
176 }
Definir la estructura de las líneas Heredo de ewDocVentaLin para poder usar la clase de ExtensionesVe...
override bool obtenerLineaDeTrabajo()
Obtener linea de trabajo
Clase para la gestión unificada de los controladores de extensión
bool _UsaSeries
Compra por series
override bool obtenerDocumentoDeTrabajo()
Obtener documento de trabajo
Interfície de los métodos que debe implementar un las clases que gestionen botones de extensiones ...
Este es el espacio de nombres de su módulo. Puede encontrar más información y ayuda en el fichero rea...
Clase para el botón multifución de series y lotes