public void EliminarSkusDeCombo(object sender) { var idCombo = Int32.Parse(UiTxtCodigo.Text); List <SkuPorCombo> listaSkuPorCombos = new List <SkuPorCombo>(); for (int i = 0; i < UiVistaSkusCombo.VisibleRowCount; i++) { listaSkuPorCombos.Add((SkuPorCombo)UiVistaSkusCombo.GetRow(i)); } UsuarioDeseaEliminarProductoAlCombo?.Invoke(sender, new ComboArgumento { Combo = new Combo { COMBO_ID = idCombo , SkusPorCombo = listaSkuPorCombos } }); }
protected void UiVistaSkusCombo_OnBatchUpdate(object sender, ASPxDataBatchUpdateEventArgs e) { var idCombo = 0; if (UiTxtCodigo.Text != "") { idCombo = int.Parse(UiTxtCodigo.Text); } if (idCombo != 0) { var listaSkuPorCombos = new List <SkuPorCombo>(); var listaSkuPorComboEliminados = new List <SkuPorCombo>(); foreach (var item in e.UpdateValues) { var skuPorCombo = new SkuPorCombo { COMBO_ID = idCombo , CODE_SKU = item.Keys["CODE_SKU"].ToString() , PACK_UNIT = int.Parse(item.Keys["PACK_UNIT"].ToString()) , QTY = int.Parse(item.NewValues["QTY"].ToString()) }; listaSkuPorCombos.Add(skuPorCombo); skuPorCombo = null; } if (listaSkuPorCombos.Count > 0) { UsuarioDeseaActualizarProductoDelCombo?.Invoke(sender, new ComboArgumento { Combo = new Combo { COMBO_ID = idCombo } , ProductosDeComboQueCambiaron = listaSkuPorCombos }); } foreach (var item in e.DeleteValues) { var skuPorCombo = new SkuPorCombo { COMBO_ID = idCombo , CODE_SKU = item.Keys["CODE_SKU"].ToString() , PACK_UNIT = int.Parse(item.Keys["PACK_UNIT"].ToString()) }; listaSkuPorComboEliminados.Add(skuPorCombo); skuPorCombo = null; } if (listaSkuPorComboEliminados.Count > 0) { UsuarioDeseaEliminarProductoAlCombo?.Invoke(sender, new ComboArgumento { Combo = new Combo { COMBO_ID = idCombo , SkusPorCombo = listaSkuPorComboEliminados } }); } e.Handled = true; UiVistaSkusCombo.JSProperties.Add("cpTerminoBatch", "Enabled"); } else { var listaNueva = ProductosDeCombo ?? new List <SkuPorCombo>(); foreach (var item in e.UpdateValues) { listaNueva.Where(w => w.CODE_SKU == item.Keys["CODE_SKU"].ToString() && w.PACK_UNIT == int.Parse(item.Keys["PACK_UNIT"].ToString())).ToList().ForEach(i => i.QTY = int.Parse(item.NewValues["QTY"].ToString())); } foreach (var item in e.DeleteValues) { var tmp = (List <SkuPorCombo>)listaNueva; tmp.RemoveAll(x => x.CODE_SKU == item.Keys["CODE_SKU"].ToString() && x.PACK_UNIT == int.Parse(item.Keys["PACK_UNIT"].ToString())); listaNueva = tmp; } ProductosDeCombo = listaNueva; e.Handled = true; var res = ProductosNoAsociadosAlCombo.Where( s => ProductosDeCombo.All(s2 => s2.CODE_SKU != s.CODE_SKU && s2.PACK_UNIT != s.PACK_UNIT)).ToList(); ProductosNoAsociadosAlCombo = res; UiVistaSkusCombo.JSProperties.Add("cpTerminoBatchNuevoCombo", "Enabled"); } }