20 internal class DatosSeleccionMultiple
22 #region Variables privadas 24 private readonly
string Articulo =
"";
25 private readonly
string Almacen =
"";
26 private readonly
bool EsUnAbonoDeCompra =
false;
27 private readonly
bool EsUnAbono =
false;
31 #endregion Variables privadas 36 private DatosSeleccionMultiple()
41 public DatosSeleccionMultiple(
LinVenDet<LinVenDetSeries> negocioSeries,
string articulo,
string almacen,
bool abonoDeCompra) : this()
43 _LinVenDetSeries = negocioSeries;
46 EsUnAbonoDeCompra = abonoDeCompra;
47 EsUnAbono = (_LinVenDetSeries._Lineas._Unidades < 0);
50 #endregion Constructores 53 #region Métodos públicos 59 public DataTable ObtenerDatos()
62 var incluirSeriesCondicion =
string.Empty;
63 var excluirSeriesCondicion =
string.Empty;
65 var seriesPreseleccionadas = _LinVenDetSeries._lisCodigos.Where(s => !
string.IsNullOrWhiteSpace(s._Codigo)).Select(s => s._Codigo.TrimEnd()).ToList();
66 if (seriesPreseleccionadas.Any())
68 var seriesEspeciales =
string.Join(
", ", seriesPreseleccionadas.Select(s => $
"'{s.TrimEnd()}'"));
69 incluirSeriesCondicion =
" AND SERIE IN (" + seriesEspeciales +
")";
70 excluirSeriesCondicion =
" AND SERIE NOT IN (" + seriesEspeciales +
")";
74 var whereParaDatos = ObtenerCondicionesFiltrado(Articulo, Almacen) + excluirSeriesCondicion + Environment.NewLine;
75 var whereParaDatosPreexistentes = ObtenerCondicionesFiltradoBase(Articulo, Almacen) + incluirSeriesCondicion + Environment.NewLine;
77 return _datosSeleccionMultipleDA.ObtenerDatos(seriesPreseleccionadas.Any(), whereParaDatos, whereParaDatosPreexistentes);
80 #endregion Métodos públicos 82 #region Métodos privados 90 private string ObtenerCondicionesFiltradoBase(
string lcArticulo,
string lcAlmacen)
92 string lcCondicion =
"ARTICULO = '" + lcArticulo +
"' AND ALMACEN = '" + lcAlmacen +
"'";
103 private string ObtenerCondicionesFiltrado(
string articulo,
string almacen)
106 if (!EsUnAbono || EsUnAbonoDeCompra)
108 condicion = ObtenerCondicionesFiltradoAlta(articulo, almacen);
111 condicion = ObtenerCondicionesFiltradoBaja(articulo, almacen);
122 private string ObtenerCondicionesFiltradoAlta(
string lcArticulo,
string lcAlmacen)
124 string lcCondicion =
"BAJA = '' AND ARTICULO = '" + lcArticulo +
"' AND ALMACEN = '" + lcAlmacen +
"'";
125 if (EsUnAbonoDeCompra)
127 var _cClausulaWhereAdicional =
" AND PROVEEDOR = '" + _LinVenDetSeries._Lineas._Proveedor +
"'";
128 lcCondicion += _cClausulaWhereAdicional;
140 private string ObtenerCondicionesFiltradoBaja(
string lcArticulo,
string lcAlmacen)
142 string lcCondicion =
"BAJA = 'S' AND ARTICULO = '" + lcArticulo +
"' AND ALMACEN = '" + lcAlmacen +
"'";
147 if (!Convert.ToBoolean(EW_GLOBAL._GetVariable(
"wl_serasigcli",
false)) && !(_LinVenDetSeries._Lineas is
IDocStockLinea))
151 var _cClausulaWhereAdicional =
" AND CLIENTE = '" + _LinVenDetSeries._Lineas._Cliente +
"'";
152 lcCondicion += _cClausulaWhereAdicional;
154 catch (Exception loEx)
156 _datosSeleccionMultipleDA.Registrar_Error(loEx);
163 #endregion Métodos privados
Definición de la interfície necesaria para los objetos de documento utilizados en el formulario FormD...
Columna código de artículo
Interfaz datos selección multiple acceso a datos
object Retrieve(Type T)
Resuelve objeto de tipo T
Tipo de desglose de árbol pasando el Almacen
static DependencyInjector Instance
Instancia
Clase Inyector de dependencias para resolver las dependencias
Clase que gestiona las series/lotes asignados a una linea de un documento de venta ...