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);
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 4
0
        /// <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
        }