Beispiel #1
0
        private void UpdateProdotti(List <int> prodotti, UnitOfWork uof, Deposito depoPrinc)
        {
            foreach (var idProdotto in prodotti)
            {
                var prodottoTsk = _wc.Product.Get(idProdotto);
                prodottoTsk.Wait();
                var prodotto = prodottoTsk.Result;

                var aggiornamento = uof.AggiornamentoWebArticoloRepository.
                                    Find(a => a.CodiceArticoloEcommerce == idProdotto.ToString()).FirstOrDefault();
                /*è nullo solo se l'articolo è nel web ma non in locale*/
                if (aggiornamento == null)
                {
                    continue;
                }
                if (aggiornamento.GiacenzaMagazzinoWebInDataAggWeb != prodotto.stock_quantity)
                {
                    var qtaStockLocale = StockProductsBase.CalcolaStock(new ArticoloBase()
                    {
                        ArticoloID = aggiornamento.ArticoloID
                    });
                    var forzaUpdateGiacenza = (aggiornamento.GiacenzaMagazzinoWebInDataAggWeb != qtaStockLocale);


                    var dataAgg = DateTime.Now;
                    ///se c'è stata una vendita allora aggiungo un movimento di magazzino
                    uof.MagazzinoRepository.Add(new Library.Entity.Magazzino()
                    {
                        ArticoloID     = aggiornamento.ArticoloID,
                        DepositoID     = depoPrinc.ID,
                        Qta            = -(aggiornamento.GiacenzaMagazzinoWebInDataAggWeb - prodotto.stock_quantity.Value),
                        PrezzoAcquisto = 0,
                        Note           = aggiornamento.GiacenzaMagazzinoWebInDataAggWeb > prodotto.stock_quantity.Value ? "Vendita web Annullata" : "Vendita web Annullata",
                        OperazioneWeb  = true
                    });

                    aggiornamento.GiacenzaMagazzinoWebInDataAggWeb = prodotto.stock_quantity.Value;
                    aggiornamento.DataUltimoAggMagazzinoWeb        = dataAgg;
                    aggiornamento.DataUltimoAggMagazzino           = dataAgg;
                    uof.AggiornamentoWebArticoloRepository.Update(aggiornamento);
                    uof.Commit();

                    if (forzaUpdateGiacenza)
                    {
                        var qta = prodotto.stock_quantity.Value;
                        StockProductsBase.UpdateStockArt(ref qta, new ArticoloBase()
                        {
                            ArticoloID              = aggiornamento.ArticoloID,
                            Aggiornamento           = aggiornamento,
                            CodiceArticoloEcommerce = aggiornamento.CodiceArticoloEcommerce,
                            ArticoloDb              = aggiornamento.Articolo
                        }, uof, true);
                    }
                }
            }
        }
Beispiel #2
0
        private void SetDataItemWeb(ArticoloBase artDb, UnitOfWork uof, WooCommerceNET.WooCommerce.v3.Product artWeb, bool newProd)
        {
            artWeb.regular_price = Math.Round(artDb.ArticoloDb.ArticoloWeb.PrezzoWeb * 100 / (100 + artDb.ArticoloDb.Iva), 6, MidpointRounding.ToEven);
            //artWeb.sale_price = Math.Round(artDb.ArticoloDb.ArticoloWeb.PrezzoWeb * 100 / (100 + artDb.ArticoloDb.ArticoloWeb.Iva), 6, MidpointRounding.ToEven);
            artWeb.name = artDb.ArticoloDb.Titolo;


            //*iva al 22%*//
            artWeb.tax_class = artDb.ArticoloDb.Iva.ToString();

            ImpostaCategoria(artDb, uof, artWeb);

            if (string.IsNullOrEmpty(artDb.ArticoloDb.ArticoloWeb.DescrizioneHtml))
            {
                artWeb.description             = "";
                artWeb.enable_html_description = false;
            }
            else
            {
                artWeb.description             = artDb.ArticoloDb.ArticoloWeb.DescrizioneHtml;
                artWeb.enable_html_description = true;
            }
            artWeb.short_description =
                artDb.ArticoloDb.ArticoloWeb.DescrizioneBreveHtml;
            artWeb.enable_html_short_description = "true";


            if (artDb.ArticoloDb.Condizione != enCondizioneArticolo.Nuovo)
            {
                artWeb.name        = "USATO " + artWeb.name;
                artWeb.description = "USATO " + artWeb.description;
            }

            artWeb.manage_stock = true;

            if (newProd)
            {
                artWeb.stock_quantity = StockProductsBase.CalcolaStock(new ArticoloBase()
                {
                    ArticoloID = artDb.ArticoloID
                });
            }


            artWeb.sku = artDb.ArticoloID.ToString();

            UpdateImage(artDb, artWeb, uof);
        }