Пример #1
0
        public static void UpdateCijenaIKategorijaArtikala(DelosDbContext dbContext, kategorija kategorija)
        {
            decimal pdvStopa = 17;
            var     artikli  = dbContext.artikal.Where(a => a.kategorija == kategorija.naziv).ToList();

            if (artikli != null)
            {
                foreach (var art in artikli)
                {
                    art.aktivan = kategorija.aktivna.Value;
                    if (kategorija.marza.HasValue)
                    {
                        if (art.kalkulacija == true && art.cijena_sa_rabatom != 0 && art.cijena_sa_rabatom != 0)
                        {
                            art.cijena_prodajna = art.cijena_sa_rabatom + Math.Round(art.cijena_sa_rabatom * kategorija.marza.Value / 100, 2);
                            art.cijena_mp       = art.cijena_prodajna * (1 + pdvStopa / 100);
                        }
                    }
                }
            }
        }
Пример #2
0
        public static void UpdateKategorije(DelosDbContext dbContext)
        {
            decimal pdvStopa = 17;
            var     artikli  = dbContext.artikal.ToList();

            foreach (var kat in dbContext.kategorija)
            {
                if (kat.kategorije_dobavljaca != null)
                {
                    foreach (var kd in kat.kategorije_dobavljaca)
                    {
                        foreach (var art in artikli)
                        {
                            if (art.vrste != null)
                            {
                                string vrsta = art.vrsteString.Substring(0, art.vrsteString.Length - 1);
                                //foreach (var vrsta in art.vrste)
                                //{
                                if (("[" + art.dobavljac + "] " + vrsta).ToLower() == kd.ToLower())
                                {
                                    art.kategorija = kat.naziv;

                                    if (art.kalkulacija == true && art.cijena_sa_rabatom != 0 && art.cijena_sa_rabatom != 0)
                                    {
                                        art.cijena_prodajna = art.cijena_sa_rabatom + Math.Round(art.cijena_sa_rabatom * (kat.marza == null ? 0 : kat.marza.Value) / 100, 2);
                                        art.cijena_mp       = art.cijena_prodajna * (1 + pdvStopa / 100);
                                    }
                                }
                                //}
                            }
                        }
                    }
                }
            }
            dbContext.SaveChanges();
            //Thread.Sleep(10000);
            //foreach (var kat in dbContext.kategorija)
            //    Helper.UpdateCijene(dbContext, kat);
        }
Пример #3
0
        private void SetKategorija(DelosDbContext dbContext, artikal a)
        {
            foreach (var kat in dbContext.kategorija)
            {
                if (kat.kategorije_dobavljaca != null)
                {
                    foreach (var kd in kat.kategorije_dobavljaca)
                    {
                        if (a.vrste != null)
                        {
                            string vrsta = a.vrsteString.Substring(0, a.vrsteString.Length - 1);

                            if (("[" + a.dobavljac + "] " + vrsta).ToLower() == kd.ToLower())
                            {
                                a.kategorija = kat.naziv;
                            }
                            //    foreach (var vrsta in a.vrste)
                            //{
                            //    if (("[" + a.dobavljac + "] " + vrsta).ToLower() == kd.ToLower())
                            //        a.kategorija = kat.naziv;
                            //}
                        }
                    }
                }
            }
            if (a.kategorija == null)
            {
                a.kategorija = "Razno";
                var razno = dbContext.kategorija.FirstOrDefault(k => k.naziv == "Razno");
                if (razno != null)
                {
                    string vrsta = a.vrsteString.Substring(0, a.vrsteString.Length - 1);
                    razno.kategorije_dobavljaca.Add("[" + a.dobavljac + "] " + vrsta);
                }
            }
        }
Пример #4
0
 public UgovorController(DelosDbContext context, ILogger <UgovorController> logger, IConfiguration con)
 {
     _logger    = logger;
     _con       = con;
     _dbContext = context;
 }
Пример #5
0
 public WebShopSyncController(IConfiguration configuration, DelosDbContext context, ILogger <KorisnikController> logger)
 {
     _configuration = configuration;
     _dbContext     = context;
     _logger        = logger;
 }
Пример #6
0
        public bool UdpateDb(DelosDbContext dbContext, List <artikal> artikli, string dobavljac)
        {
            decimal pdvStopa = 17;

            foreach (var a in artikli)
            {
                this.SetKategorija(dbContext, a);
                var kat = dbContext.kategorija.FirstOrDefault(k => k.naziv == a.kategorija);
                a.kalkulacija = Config.CalculatePrice;

                if (a.kalkulacija == true && kat != null && kat.marza != null)
                {
                    a.cijena_prodajna = a.cijena_sa_rabatom + Math.Round(a.cijena_sa_rabatom * kat.marza.Value / 100, 2);
                }

                a.cijena_mp = a.cijena_prodajna * (1 + pdvStopa / 100);

                var art = dbContext.artikal.FirstOrDefault(ar => a.dobavljac_sifra == ar.dobavljac_sifra && a.dobavljac == ar.dobavljac);

                if (art == null)
                {
                    a.zadnje_ucitavanje = DateTime.Now;
                    a.aktivan           = kat.aktivna.Value;
                    dbContext.istorija_cijena.Add(new istorija_cijena()
                    {
                        artikal_sifra = a.sifra, vrijeme = DateTime.Now, cijena = a.cijena_sa_rabatom
                    });
                    dbContext.Add(a);
                }
                else
                {
                    art.zadnje_ucitavanje = DateTime.Now;
                    if (art.cijena_sa_rabatom != a.cijena_sa_rabatom || dbContext.istorija_cijena.Where(i => i.artikal_sifra == art.sifra).Count() == 0)
                    {
                        dbContext.istorija_cijena.Add(new istorija_cijena()
                        {
                            artikal_sifra = art.sifra, vrijeme = DateTime.Now, cijena = a.cijena_sa_rabatom
                        });
                    }

                    art.cijena_sa_rabatom = a.cijena_sa_rabatom;
                    art.cijena_prodajna   = a.cijena_prodajna;
                    art.cijena_mp         = a.cijena_mp;
                    art.kolicina          = a.kolicina;
                    art.dostupnost        = a.dostupnost;
                    art.naziv             = a.naziv;
                    if (a.slike != null)
                    {
                        art.slike = a.slike;
                    }
                    art.vrste     = a.vrste;
                    art.sifra     = a.sifra;
                    art.barkod    = a.barkod;
                    art.garancija = a.garancija;
                    art.brend     = a.brend;
                    art.opis      = a.opis;
                    art.prioritet = a.prioritet;
                }
            }

            var inactive = dbContext.artikal.Where(a => a.dobavljac == dobavljac && artikli.Select(aa => aa.sifra).Contains(a.sifra) == false).ToList();

            foreach (var art in inactive)
            {
                //art.aktivan = false;
                art.dostupnost = "0";
            }


            dbContext.SaveChanges();
            return(true);
        }
Пример #7
0
        public override async Task ExportAsync()
        {
            using (var dbContext = new DelosDbContext(ConnectionString))
            {
                DirectoryInfo di       = new DirectoryInfo(Config.Path);
                var           toDelete = di.GetFiles().Where(f => DateTime.Now.Subtract(f.LastWriteTime).TotalDays > Config.KeepFileDays);
                foreach (var file in toDelete)
                {
                    file.Delete();
                }

                var artikli = from a in dbContext.artikal.Where(a => dbContext.kategorija.
                                                                Where(k => k.aktivna == true).Select(k => k.naziv).Contains(a.kategorija) && a.aktivan == true &&
                                                                a.dostupnost != null && a.dostupnost != "0" && a.cijena_prodajna != null && a.cijena_prodajna != 0).ToList()
                              select
                              a;

                List <artikal> arts       = new List <artikal>();
                int            duplicates = 0;
                foreach (var a in artikli)
                {
                    var existing = arts.FirstOrDefault(x => MatchArtikal(x, a));
                    if (existing != null)
                    {
                        duplicates++;
                        if ((existing.prioritet != null?existing.prioritet:1000) > (a.prioritet != null?a.prioritet:1000) ||
                            (existing.prioritet == a.prioritet && existing.cijena_mp > a.cijena_mp))
                        {
                            arts.Remove(existing);
                            arts.Add(a);
                        }
                    }
                    else
                    {
                        arts.Add(a);
                    }
                }
                var options = new JsonSerializerOptions
                {
                    Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
                };
                var json = JsonSerializer.Serialize(from a in arts
                                                    select new { a.sifra, a.naziv, a.barkod,
                                                                 a.cijena_mp, a.dostupnost, a.kategorija, a.opis, a.slike }, options);
                string       fileName      = "ArtikliWEBSHOP_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".json";
                string       localFilePath = Path.Combine(Config.Path, fileName);
                StreamWriter sw            = new StreamWriter(localFilePath);
                await sw.WriteAsync(json);

                sw.Close();

                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateCertificate);
                // Get the object used to communicate with the server.
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(Path.Combine(Config.FtpAddress, fileName));
                request.Method = WebRequestMethods.Ftp.UploadFile;

                // This example assumes the FTP site uses anonymous logon.
                request.Credentials = new NetworkCredential(Config.FtpUsername, Config.FtpPassword);

                // Copy the contents of the file to the request stream.
                byte[] fileContents;
                using (StreamReader sourceStream = new StreamReader(localFilePath))
                {
                    fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
                }

                request.ContentLength = fileContents.Length;

                using (Stream requestStream = request.GetRequestStream())
                {
                    requestStream.Write(fileContents, 0, fileContents.Length);
                }

                using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
                {
                    Console.WriteLine($"Upload File Complete, status {response.StatusDescription}");
                }
                if (Config.KeepFileDays == 0)
                {
                    File.Delete(localFilePath);
                }
            }
        }
Пример #8
0
 public PrijavaController(DelosDbContext context, ILogger <PrijavaController> logger)
 {
     _logger    = logger;
     _dbContext = context;
 }
Пример #9
0
 public PonudaController(DelosDbContext context, ILogger <PonudaController> logger, IConfiguration configuration)
 {
     _logger        = logger;
     _dbContext     = context;
     _configuration = configuration;
 }
Пример #10
0
 public PartnerController(DelosDbContext context, ILogger <PartnerController> logger)
 {
     _dbContext = context;
 }
Пример #11
0
 public ImportHostService(IImportService serviceModel, DelosDbContext dbContext)
 {
     this._serviceModel = serviceModel;
     this._dbContext    = dbContext;
 }
Пример #12
0
 public KorisnikController(DelosDbContext context, ILogger <KorisnikController> logger, IUserService userService)
 {
     _dbContext   = context;
     _userService = userService;
 }