26 if (_oControladorBoton == null)
28 return _oControladorBoton;
30 set { _oControladorBoton = value; }
37 public dynamic _Documento
40 set { _ControladorBoton.setDocumento(value); }
48 get {
return _ControladorBoton.getLinea(); }
49 set { _ControladorBoton.setLinea(value); }
57 get {
return _ControladorBoton.getGrid(); }
58 set { _ControladorBoton.setGrid(value); }
61 #endregion Propiedades 78 if (EW_GLOBAL._EsEjecutable)
82 if (((
LotesConfig)EW_GLOBAL._GetVariable(
"wo_lotesconfig"))._ModuloLotes || EW_GLOBAL._EdicionPerfiles)
87 if (((
LotesConfig)EW_GLOBAL._GetVariable(
"wo_lotesconfig"))._ModuloLotes)
93 if (Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_hera")))
108 Image = images.Properties.Resources.Lotes_32x32;
111 Click +=
new EventHandler(btLotes_Click);
114 _Click_BeforeExtended +=
new _Click_BeforeExtended_Handler(btLotes__Click_BeforeExtended);
117 void btLotes__Click_BeforeExtended(
object sender, EventArgs e, ref
bool tlOk)
120 if (_GridArt == null && sender is
Mantegrid)
128 #endregion CONSTRUCTORES 140 _ControladorBoton.EjecutarAsignacion();
142 lanzarEventoClickAfter();
152 lanzarEventoClickBefore(ref llOk);
157 _ControladorBoton.EjecutarAsignacion(toUnidades, tlAutomatico);
159 lanzarEventoClickAfter();
163 private void lanzarEventoClickAfter()
172 private void lanzarEventoClickBefore(ref
bool tlOk)
194 private bool _lEvitarRecursivitat =
false;
198 #region Constructores 213 setDocumento(toDocumento);
216 #endregion Constructores 227 if (!tengoDocumento())
return;
232 FUNCTIONS._MessageBox(
"Debe seleccionar un documento.", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.OK);
237 if (traspasadoEjercicio())
239 FUNCTIONS._MessageBox(
"El documento está traspasado de ejercicio. Para consultar la asignación de " + Convert.ToString(EW_GLOBAL._GetVariable(
"wc_deflote")).ToLower() +
" debe acceder desde el ejercicio en el que está documento.", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, DialogResult.OK);
243 dynamic loLineaActual = null;
245 if (!_ObtenerLineaDeTrabajo(ref loLineaActual))
249 if (tengoGrid() && elGridTieneFilaSeleccionada() && laLineaEsDeArticulo())
254 if (getDocumento()._EjercicioDB != Convert.ToString(EW_GLOBAL._GetVariable(
"wc_any")).Trim())
258 DialogResult lodialog = functions.FUNCTIONS._MessageBox(
"El documento pertenece a otro ejercicio. " + Environment.NewLine +
259 "Para consultar la asignación de " + Convert.ToString(EW_GLOBAL._GetVariable(
"wc_deflote")).ToLower() +
" debe acceder desde el ejercicio en el que está documento.",
260 MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, DialogResult.None);
274 loLineaActual._Save();
275 _Asignacion_Lotes(loUnidades);
277 if (loUnidades.
_NewVal != null && Convert.ToDecimal(loUnidades.
_NewVal) != loLineaActual._Unidades)
279 _lEvitarRecursivitat =
true;
281 if (Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_peso")))
282 lnPeso = loLineaActual._Peso;
284 loLineaActual._Unidades = Convert.ToDecimal(loUnidades.
_NewVal);
286 if (Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_peso")) && loLineaActual._Peso != lnPeso)
287 loLineaActual._Peso = lnPeso;
289 _lEvitarRecursivitat =
false;
292 loLineaActual._Recalcular_Importe();
293 loLineaActual._Recalcular_Stock();
300 private void _Asignacion_Lotes(
ewCampo toUnidades = null,
bool tlAutomatico =
false)
302 if (_lEvitarRecursivitat)
return;
305 if (!tengoDocumento() || !tengoNumero())
309 _lEvitarRecursivitat =
true;
312 dynamic loLineaActual = null;
314 if (!_ObtenerLineaDeTrabajo(ref loLineaActual))
318 if (
string.IsNullOrWhiteSpace((
string)loLineaActual._Articulo))
324 if (
string.IsNullOrWhiteSpace((
string)loLineaActual._TipoIva))
325 FUNCTIONS._MessageBox(
"Debes informar el artículo antes de introducir " + _oLotesConfig.
_Definicion.Trim() +
".",
326 MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, DialogResult.None);
329 FUNCTIONS._MessageBox(
"Artículos sin código no trabajan con " + _oLotesConfig.
_Definicion.Trim() +
".",
330 MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, DialogResult.None);
335 if (loLineaActual._UsaLotes)
339 loLinVenDetLotes.
_Lineas = loLineaActual;
341 loLinVenDetLotes.
_Load();
344 if (toUnidades != null) toUnidades._OldVal = toUnidades._NewVal = loLineaActual._Unidades;
352 if (loLineaActual._oArticulo._ArtLot._Lote)
353 FUNCTIONS._MessageBox(
"Este artículo no trabaja con " + _oLotesConfig.
_Definicion.Trim().ToLower() +
" hasta el " + loLineaActual._oArticulo._ArtLot._Fecha.ToString(EW_GLOBAL._CustomFormatDate) +
" .",
354 MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, DialogResult.None);
356 FUNCTIONS._MessageBox(
"Este artículo no trabaja con " + _oLotesConfig.
_Definicion.Trim().ToLower() +
".",
357 MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, DialogResult.None);
362 _lEvitarRecursivitat =
false;
BotonExtensionLotesImpl()
Constructor
override void EjecutarAsignacion(ewCampo toUnidades=null, bool tlAutomatico=false)
Método para realizar la asignación de Series
bool _Load()
Cargará todas las series/lotes asignadas a una linea del documento de venta
void _Asignacion_Lotes(ewCampo toUnidades=null, bool tlAutomatico=false)
Executo el codi del click del botó LOTES
dynamic _Lineas
Objeto que continene una linea de detalle del documento de venta. Es un array, hay que acceder al índ...
BotonExtensionLotesImpl(dynamic toDocumento)
Constructor
Interfície para líneas que trabajan con extensiones. Hereda de IDocumentLinea
Clase abstracta con la operativa base para botones de extensiones (series y lotes) ...
Botón que nos presentará la pantalla de Lotes
Classe campo para las entidades, que permitirá comprobar si se ha cambiado su valor ...
bool _Automatico
Indica si se ha instanciado mediante botón o con el set de unidades/peso
Interfaz utilizada en los controles que se añaden en los perfiles
btLotes()
Crea una nueva instancia de la classe btAparcarTiquet
String _Definicion
Definición del LOTE
Clase para cargar la configuración del módulo de LOTES
Muestra el mantenimiento correspondiente a _Form con el registro correspondiente al _Codigo ...
object _NewVal
Valor nuevo
dynamic getDocumento()
Obtiene el documetno
void btLotes_Click(object sender, EventArgs e)
Click
Presenta un datagridview con botones añadir y borrar tipo Mantegrid de Eurowin
Clase que gestiona las series/lotes asignados a una linea de un documento de venta ...