public override SPListItem GetItemByID(string listURL, int listItemID, string[] fields) { SPList list = this._spweb.Lists.TryGetList(listURL); if (list == null) { throw new SPException(string.Format("List '{0}' does not exist.", listURL)); } SPListItem listItem = list.GetItemByIdSelectedFields(listItemID, fields); return(listItem); }
public override void ItemUpdated(SPItemEventProperties properties) { using (SPSite siteCollection = new SPSite("http://mysites.innotech.cloud/sites/edmonton")) { //Collection of lists fom the Site SPWeb topSite = siteCollection.RootWeb; SPList list1 = topSite.Lists["NotificationEnabled"]; SPListItemCollection items1 = list1.Items; int c = 0; int[] arrayitems = new int[list1.ItemCount]; foreach (SPListItem item in items1) //Email recipients list { arrayitems[c] = item.ID; c++; } int maxValue = arrayitems.Max(); var itemID = maxValue; SPListItem notificationEnabled = list1.GetItemByIdSelectedFields(itemID, "EmailRecipient"); var list1EmailReceipt = notificationEnabled["EmailRecipient"]; SPList list2 = topSite.Lists["Email Recipients"]; SPListItemCollection items = list2.Items; //Iterate through each list item on both lists to find matching list items! using (StreamWriter w = File.AppendText(@"C:\\Testing" + "\\" + "Log_File_Name.txt")) { foreach (SPListItem item in items) //Email recipients list { SPListItem emailRecipient = list2.GetItemByIdSelectedFields(item.ID, "EmailAddress"); var list2EmailReceipt = emailRecipient["EmailAddress"]; if (list2EmailReceipt != null) { if (list1EmailReceipt.ToString().Trim().ToUpper() == (list2EmailReceipt.ToString().Trim().ToUpper())) { w.WriteLine("An email would have been sent to " + item["EmailAddress"].ToString() + " at {0} {1} ", DateTime.Now.ToLongDateString(), DateTime.Now.ToLongTimeString()); } } } } } }
public virtual SPGENRepositoryDataItem GetDataItem(SPList list, int itemId, string[] fieldNames, bool includeAllItemFields, SPGENEntityFileOperationArguments fileOperationParams) { SPListItem listItem = (includeAllItemFields) ? list.GetItemById(itemId) : list.GetItemByIdSelectedFields(itemId, fieldNames); var dataItem = new SPGENRepositoryDataItem(fieldNames); ConvertToDataItem(listItem, dataItem, fileOperationParams); return dataItem; }
/// <summary> /// Redistribuye (prorratea) los costos definidos al envio /// para cada ítem pedido asociado /// </summary> /// <param name="itemEnvio"></param> private void RedistribuirCostosEnvio(SPListItem itemEnvio) { SPList listaParametros = itemEnvio.Web.Lists[LISTA_PARAMETROS]; SPList listaFacturas = itemEnvio.Web.Lists[LISTA_FACTURAS]; SPList listaAlmacen = itemEnvio.Web.Lists[LISTA_ALMACEN]; SPList listaItemsPedidos = itemEnvio.Web.Lists[LISTA_ITEMS_PEDIDOS]; bool prorrateoConArancel = true; #region Obtener el tipo de prorrateo SPQuery consultaParam = new SPQuery(); consultaParam.Query = "<Where><Eq><FieldRef Name='Title' />" + "<Value Type='Text'>" + PARAMETRO_TITULO + "</Value></Eq></Where>"; SPListItemCollection itemsParametros = listaParametros.GetItems(consultaParam); if (itemsParametros.Count != 0 && itemsParametros[0]["Valor parámetro"].ToString() == PARAMETRO_VALOR) { prorrateoConArancel = false; } #endregion #region Distribuir (prorratear) costos double totalEnvio = 0; double costoFletes = 0; double costoAranceles = 0; double costoAduana = 0; double costoTransportador = 0; double costoOtros = 0; totalEnvio = this.ObtenerTotalDelEnvio(itemEnvio); if (itemEnvio["Costo fletes"] != null) { costoFletes = double.Parse(itemEnvio["Costo fletes"].ToString()); } if (itemEnvio["Costo aranceles"] != null) { costoAranceles = double.Parse(itemEnvio["Costo aranceles"].ToString()); } if (itemEnvio["Costo aduana"] != null) { costoAduana = double.Parse(itemEnvio["Costo aduana"].ToString()); } if (itemEnvio["Costo transportador"] != null) { costoTransportador = double.Parse(itemEnvio["Costo transportador"].ToString()); } if (itemEnvio["Costo otros"] != null) { costoOtros = double.Parse(itemEnvio["Costo otros"].ToString()); } SPFieldLookupValueCollection almacenesAsociados = (SPFieldLookupValueCollection)itemEnvio["Almacenes asociados"]; foreach (SPFieldLookupValue almacenAsociado in almacenesAsociados) { SPListItem elAlmacen = listaAlmacen.GetItemByIdSelectedFields(almacenAsociado.LookupId, "Facturas_x0020_asociadas"); SPFieldLookupValueCollection facturasAsociadas = (SPFieldLookupValueCollection)elAlmacen["Facturas asociadas"]; foreach (SPFieldLookupValue facturaAsociada in facturasAsociadas) { SPListItem laFactura = listaFacturas.GetItemByIdSelectedFields(facturaAsociada.LookupId, "_x00cd_tems_x0020_asociados"); SPFieldLookupValueCollection itemsAsociados = (SPFieldLookupValueCollection)laFactura["Ítems asociados"]; foreach (SPFieldLookupValue itemAsociado in itemsAsociados) { SPListItem itemPedido = listaItemsPedidos.GetItemByIdSelectedFields( itemAsociado.LookupId, "Costo_x0020_fletes", "Costo_x0020_aranceles", "Costo_x0020_aduana", "Costo_x0020_transportador", "Costo_x0020_otros", "Precio_x0020_extendido", "Item_x0020_asociado"); double precioItem = double.Parse(SubcadenaDespues(itemPedido["Precio extendido"]).Replace('.', ',')); double porcentajeArancel = this.ObtenerPorcentajeArancel(itemPedido); if (prorrateoConArancel) {//TODO Prorrateo con aranceles, verificar el calculo itemPedido["Costo fletes"] = this.AplicarProrrateoConArancelFletes(precioItem, totalEnvio, costoFletes); itemPedido["Costo aranceles"] = this.AplicarProrrateoConArancelAranceles(precioItem, totalEnvio, costoFletes, porcentajeArancel); itemPedido["Costo aduana"] = this.AplicarProrrateoConArancelAduana(precioItem, totalEnvio, costoAduana, costoFletes); itemPedido["Costo transportador"] = this.AplicarProrrateoConArancelTransp(precioItem, totalEnvio, costoTransportador, costoFletes); itemPedido["Costo otros"] = this.AplicarProrrateoConArancelOtros(precioItem, totalEnvio, costoOtros, costoFletes); } else {//Prorrateo sin aranceles itemPedido["Costo fletes"] = this.AplicarProrrateoSinArancel(precioItem, totalEnvio, costoFletes); itemPedido["Costo aranceles"] = this.AplicarProrrateoSinArancel(precioItem, totalEnvio, costoAranceles); itemPedido["Costo aduana"] = this.AplicarProrrateoSinArancel(precioItem, totalEnvio, costoAduana); itemPedido["Costo transportador"] = this.AplicarProrrateoSinArancel(precioItem, totalEnvio, costoTransportador); itemPedido["Costo otros"] = this.AplicarProrrateoSinArancel(precioItem, totalEnvio, costoOtros); } using (DisabledItemEventsScope scope = new DisabledItemEventsScope()) { try { itemPedido.Web.AllowUnsafeUpdates = true; itemPedido.Update(); } finally { itemPedido.Web.AllowUnsafeUpdates = false; } } } } } #endregion }