public DataTable UlazuTablicu(long sifra)
        {
            DataTable dt    = new DataTable();
            Artikl    temop = new Artikl();

            temop = Izracunaj_ulaz(sifra);

            dt.Columns.Add("Sifra");
            dt.Columns.Add("Naziv");
            dt.Columns.Add("MPC");
            dt.Columns.Add("MPC_popust");
            dt.Columns.Add("Stanje");
            dt.Columns.Add("Dobavljac");

            DataRow toInsert = dt.NewRow();

            toInsert["Sifra"]      = temop.sifra;
            toInsert["Naziv"]      = temop.naziv;
            toInsert["MPC"]        = temop.MPC;
            toInsert["MPC_popust"] = temop.popust;
            toInsert["Stanje"]     = temop.kolicina;
            toInsert["Dobavljac"]  = temop.dobavljac;

            dt.Rows.Add(toInsert);

            return(dt);
        }
        public DataTable GeneriraniCijenik(Artikl artikl)
        {
            DataTable dataTable = new DataTable();

            dataTable.Columns.Add("Ulaz", typeof(string));
            dataTable.Columns.Add("Sifra", typeof(int));
            dataTable.Columns.Add("Naziv", typeof(string));
            dataTable.Columns.Add("Kolicina", typeof(int));
            dataTable.Columns.Add("Nabavna_cijena", typeof(float));
            dataTable.Columns.Add("MPC", typeof(float));
            dataTable.Columns.Add("MPC_Popust", typeof(float));
            dataTable.Columns.Add("Dobavljac", typeof(String));
            try
            {
                for (int i = 0; i < _uneseni_aktivni_artikli.Count; i++)
                {
                    if (_uneseni_aktivni_artikli[i].sifra == artikl.sifra)
                    {
                        DataRow dataRow = dataTable.NewRow();
                        dataRow["Ulaz"]           = _uneseni_aktivni_artikli[i].ulaz;
                        dataRow["Sifra"]          = _uneseni_aktivni_artikli[i].sifra;
                        dataRow["Naziv"]          = _uneseni_aktivni_artikli[i].naziv;
                        dataRow["Kolicina"]       = _uneseni_aktivni_artikli[i].kolicina;
                        dataRow["Nabavna_cijena"] = _uneseni_aktivni_artikli[i].nab_cijena;
                        dataRow["MPC"]            = _uneseni_aktivni_artikli[i].MPC;
                        dataRow["Dobavljac"]      = _uneseni_aktivni_artikli[i].dobavljac;
                        dataRow["MPC_Popust"]     = _uneseni_aktivni_artikli[i].popust;
                        dataTable.Rows.Add(dataRow);
                    }
                }
            }
            catch { };
            return(dataTable);
        }
        private void GenerirajCijenikIzAktivnihUDB(prolaz_kroz_artikle prolaz_Kroz_Artikle)
        {
            // TO BE ADDED
            if (CijenikPrazan())
            {
                if (prolaz_Kroz_Artikle == prolaz_kroz_artikle.sve_kalkulacije)
                {
                    MYSQLTableBuilder.CreateStanjeSkladista();



                    for (int i = 0; i < _uneseni_aktivni_artikli_sifra_zbirno.Count; i++)
                    {
                        try
                        {
                            Artikl prividni_artikl = new Artikl();
                            prividni_artikl = Izracunaj_ulaz(_uneseni_aktivni_artikli_sifra_zbirno[i]);

                            if (prividni_artikl.sifra != 0)
                            {
                                using (MySqlConnection mysqlc = new MySqlConnection(Login.constring))
                                {
                                    mysqlc.Open();
                                    String       query2       = "INSERT INTO stanje_skladista (sifra,naziv,stanje,MPC,MPC_Popust,vrsta,podgrupa,osobine_artikla,min_MPC,dobavljac) VALUES ('" + prividni_artikl.sifra + "','" + prividni_artikl.naziv + "','" + prividni_artikl.kolicina + "','" + prividni_artikl.MPC + "','" + prividni_artikl.popust + "','" + prividni_artikl.vrsta + "','" + prividni_artikl.podgrupa + "','" + prividni_artikl.osobine_artikla + "','" + prividni_artikl.min_mpc + "','" + prividni_artikl.dobavljac + "') ;";
                                    MySqlCommand mySqlCommand = new MySqlCommand(query2, mysqlc);
                                    mySqlCommand.ExecuteNonQuery();
                                }
                            }
                        }
                        catch { };
                    }
                }
            }
            else if (prolaz_Kroz_Artikle == prolaz_kroz_artikle.aktivna_kalkulacija)
            {
                try
                {
                    for (int i = 0; i < AktivnaKalSifreArtikla().Count; i++)
                    {
                        Artikl prividni_artikl = new Artikl();
                        prividni_artikl = Izracunaj_ulaz(AktivnaKalSifreArtikla()[i]); // Dodati ako nema na stanju racuna od trenutne kalkulacije kasnije nije presudno

                        if (prividni_artikl.sifra != 0)
                        {
                            using (MySqlConnection mysqlc = new MySqlConnection(Login.constring))
                            {
                                mysqlc.Open();
                                String query2 = "INSERT INTO stanje_skladista (sifra,naziv,stanje,MPC,MPC_Popust,vrsta,podgrupa,osobine_artikla,min_MPC,dobavljac) VALUES ('" + prividni_artikl.sifra + "','" + prividni_artikl.naziv + "','" + prividni_artikl.kolicina + "','" + prividni_artikl.MPC + "','" + prividni_artikl.popust + "','" + prividni_artikl.vrsta + "','" + prividni_artikl.podgrupa + "','" + prividni_artikl.osobine_artikla + "','" + prividni_artikl.min_mpc + "','" + prividni_artikl.dobavljac + "') ON DUPLICATE KEY UPDATE stanje='" + prividni_artikl.kolicina + "',MPC = '" + prividni_artikl.MPC + "' ,MPC_Popust = '" + prividni_artikl.popust + "', vrsta='" + prividni_artikl.vrsta + "',  podgrupa = '" + prividni_artikl.podgrupa + "',osobine_artikla='" + prividni_artikl.osobine_artikla + "', min_MPC='" + prividni_artikl.min_mpc + "', dobavljac='" + prividni_artikl.dobavljac + "';";



                                MySqlCommand mySqlCommand = new MySqlCommand(query2, mysqlc);
                                mySqlCommand.ExecuteNonQuery();
                            }
                        }
                    }
                }
                catch { };
            }
        }
        private void SviUlaziReport_Load(object sender, EventArgs e)
        {
            sk.Sinkroniziraj(prolaz_kroz_artikle.nista);
            Artikl  artikl = new Artikl();
            DataSet ds     = new DataSet();

            artikl.sifra = odb_sifra;

            ds.Tables.Add(sk.GeneriraniCijenik(artikl));
            PostaviIzvjestaj(ds);

            this.reportViewer1.RefreshReport();
        }
        public Artikl Izracunaj_ulaz(long sifra)
        {
            Artikl art = new Artikl();
            int    j   = 0;

            foreach (Artikl uneseni_art in UkupnoUneseniArtikli(sifra))
            {
                try
                {
                    if (uneseni_art.sifra == sifra)
                    {
                        if (uneseni_art.nab_cijena != 0)
                        {
                            art.sifra     = uneseni_art.sifra;
                            art.naziv     = uneseni_art.naziv;
                            art.dobavljac = uneseni_art.dobavljac;



                            art.MPC    = uneseni_art.MPC; // Dodati ako u stanju skladista je druga cijena ispisati nivelaciju
                            art.popust = uneseni_art.popust;

                            art.vrsta           = uneseni_art.vrsta;
                            art.podgrupa        = uneseni_art.podgrupa;
                            art.opis_artikla    = uneseni_art.opis_artikla;
                            art.robna_marka     = uneseni_art.robna_marka;
                            art.kolicina       += uneseni_art.kolicina;
                            art.nab_cijena     += uneseni_art.nab_cijena;
                            art.nab_vrijednost += uneseni_art.nab_cijena * Math.Abs(uneseni_art.kolicina);

                            if (art.kolicina == 0)
                            {
                                art.nab_cijena = 0;
                                j = -1;
                            }

                            j++;
                        }
                        else if (uneseni_art.nab_cijena == 0)
                        {
                            //Nivelacija/Promjena cijena
                            art.MPC    = uneseni_art.MPC;
                            art.popust = uneseni_art.popust;
                        }
                    }
                }
                catch { };
            }
            art.nab_cijena     /= j;
            art.nab_vrijednost /= art.kolicina;



            var pdv_artikla = ArtikliOsnovno.GetStopaFromSifra(sifra);

            art.min_mpc = Math.Abs(art.nab_vrijednost * (1 + ((float)pdv_artikla / 100)));


            //foreach(Artikl artikl_na_racunu in _nekativni_racuni)



            if (art.kolicina <= 0)// Kada se skine sa stanja postaviti u 0
            {
                art.min_mpc = 0;
            }

            return(art);
        }
        private void PostaviUneseneAktivneArtikle()
        {
            _uneseni_aktivni_artikli       = new List <Artikl>();
            _uneseni_aktivni_artikli_sifra = new List <int>();
            _uneseni_aktivni_artikli_sifra.Clear();
            _uneseni_aktivni_artikli.Clear();

            for (int i = 0; i < _neaktivne_kalkulacije.Count; i++)
            {
                try
                {
                    using (MySqlConnection mysqlcon = new MySqlConnection(Login.constring))
                    {
                        mysqlcon.Open();

                        String[] temp = new String[2];
                        temp = _neaktivne_kalkulacije[i].Split('/');


                        string query = "SELECT id_artikl,NazivArtikla,kolicina,cijena,MPC,MPC_popust FROM primka_stavke" + temp[1] + " WHERE id_primka=" + temp[0];

                        DataSet          ds = new DataSet();
                        MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(query, mysqlcon);
                        mySqlDataAdapter.Fill(ds);

                        DataTable dt = ds.Tables[0];

                        for (int f = 0; f < dt.Rows.Count; f++)
                        {
                            _uneseni_aktivni_artikli_sifra.Add(Convert.ToInt32(dt.Rows[f][0].ToString()));

                            Artikl artikl = new Artikl();

                            artikl.sifra      = Convert.ToInt32(dt.Rows[f][0].ToString());
                            artikl.naziv      = dt.Rows[f][1].ToString();
                            artikl.kolicina   = Convert.ToInt32(dt.Rows[f][2].ToString());
                            artikl.nab_cijena = Convert.ToSingle(dt.Rows[f][3].ToString());
                            artikl.MPC        = Convert.ToSingle(dt.Rows[f][4].ToString());
                            artikl.popust     = Convert.ToSingle(dt.Rows[f][5].ToString());
                            artikl.ulaz       = _neaktivne_kalkulacije[i];
                            artikl.dobavljac  = GetDobavljacFromDB(Convert.ToInt32(temp[0].ToString()), Convert.ToInt32(temp[1])).ToString();

                            //TOIMP
                            using (MySqlConnection mysqlc = new MySqlConnection(Login.constring))
                            {
                                DataSet dataSet2 = new DataSet();

                                string           query2            = "SELECT * FROM uartikli WHERE sifra=" + artikl.sifra;
                                MySqlDataAdapter mySqlDataAdapter2 = new MySqlDataAdapter(query2, mysqlc);

                                mySqlDataAdapter2.Fill(dataSet2);
                                DataTable datatable2 = dataSet2.Tables[0];

                                artikl.vrsta           = datatable2.Rows[0]["vrsta"].ToString();
                                artikl.podgrupa        = datatable2.Rows[0]["podgrupa"].ToString();
                                artikl.robna_marka     = datatable2.Rows[0]["robna_marka"].ToString();
                                artikl.osobine_artikla = datatable2.Rows[0]["osobine_artikla"].ToString();
                                artikl.opis_artikla    = datatable2.Rows[0]["opis_artikla"].ToString();
                            }
                            _uneseni_aktivni_artikli.Add(artikl);
                        }
                    }
                }
                catch
                {
                };
            }
        }
示例#7
0
        private void SikronizirajStavkeRacuna()
        {
            if (Klase.Racuni.ProvjeriAktivnost(Convert.ToInt32(listBox1.SelectedItem) - 1) == true)
            { // ONLY DELETE DATA FROM TABLES IF ACTIVE OTHERWISE JUST READ
                using (MySqlConnection sqlconn = new MySqlConnection(Login.constring))
                {
                    sqlconn.Open();
                    string referenca_na_godinu = ""; // TO BE CHANGED LATER

                    string query = "DELETE  FROM racuni_stavke" + referenca_na_godinu + " WHERE id_racun = " + Convert.ToInt32(listBox1.SelectedItem);

                    MySqlCommand mySqlCommand = new MySqlCommand(query, sqlconn);
                    mySqlCommand.ExecuteNonQuery();


                    string           query1           = "SELECT * FROM racuni_stavke" + referenca_na_godinu + " WHERE id_racun = " + Convert.ToInt32(listBox1.SelectedItem);
                    MySqlDataAdapter mySqlDataAdapter = new MySqlDataAdapter(query1, sqlconn);
                    DataSet          ds = new DataSet();
                    ds.Clear();
                    mySqlDataAdapter.Fill(ds);

                    MySqlCommandBuilder cb = new MySqlCommandBuilder(mySqlDataAdapter);

                    mySqlDataAdapter.UpdateCommand = cb.GetUpdateCommand();

                    DataTable dt = ds.Tables[0];
                    dt.Clear();

                    var StanjeSkladista = Klase.RacuniStavke.GetFromStanjeSkladista();

                    for (int i = 0; i < dataGridView1.Rows.Count; i++)
                    {
                        try
                        {
                            if (Convert.ToInt32(dataGridView1.Rows[i].Cells["sifra"].Value) != 0)
                            {
                                Artikl art = new Artikl();
                                StanjeSkladista.TryGetValue(dataGridView1.Rows[i].Cells["sifra"].Value.ToString(), out art);


                                dt.Rows.Add(new String[] {
                                    listBox1.SelectedItem.ToString(),
                                    dataGridView1.Rows[i].Cells["sifra"].Value.ToString(),
                                    dataGridView1.Rows[i].Cells["naziv"].Value.ToString(),
                                    dataGridView1.Rows[i].Cells["kolicina"].Value.ToString(),
                                    art.min_mpc.ToString(),
                                    art.MPC.ToString(),
                                    dataGridView1.Rows[i].Cells["MPC_Popust"].Value.ToString(),
                                    dataGridView1.Rows[i].Cells["MPC_Prodano"].Value.ToString(),

                                    dataGridView1.Rows[i].Cells["index_stavke"].Value.ToString()
                                });
                            }


                            mySqlDataAdapter.Update(dt); //Updating the values but I only want to update if not the same
                        }
                        catch { };
                    }
                }
            }
        }
示例#8
0
        private void DataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            var    stanjeSkladista = Klase.RacuniStavke.GetFromStanjeSkladista(); // Get dictionary from stanje skladista
            Artikl value           = new Artikl();                                // kreiraj instancu artikla artikl je struktura



            if (e.ColumnIndex == dataGridView1.Columns["sifra"].Index)     // if editing sifra
            {
                bool hasValue = stanjeSkladista.TryGetValue(Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value), out value);
                if (hasValue)
                {
                    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 1].Value = stanjeSkladista[Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value)].naziv; // Postavi naziv tamo gdje stanje skladista zadovoljava sifru (KeyValue)
                    if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 2].Value.ToString() == "")                                                                                 // Uglavnom ako je prvi unos postavi neke defualtne vrijenosti
                    {
                        dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 2].Value = 1;
                    }

                    if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 3].Value.ToString() == "")
                    {
                        dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 3].Value = 0;
                    }


                    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 4].Value = stanjeSkladista[Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value)].MPC;
                }
                else
                {
                    dataGridView1.Rows.RemoveAt(e.RowIndex);
                }
            }

            else if (e.ColumnIndex == dataGridView1.Columns["naziv"].Index)    // if editing naziv
            {
                var prividnasifra = stanjeSkladista.Where(ar => ar.Value.naziv.ToUpper() == Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value).ToUpper()).ToList();

                //Prividna sifra pretrazuje sifru artikla koji je unesen u drugu celiju naravno kako bi pretraga bila valjana postavljam sva slova velikim tiskanim

                if (prividnasifra.Count > 0)
                {
                    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value = prividnasifra[0].Key;     //Ugl first or default

                    if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 1].Value.ToString() == "")
                    {
                        dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 1].Value = 1;
                    }

                    if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 2].Value.ToString() == "")
                    {
                        dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 2].Value = 0;
                    }


                    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 3].Value = stanjeSkladista[Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value)].MPC;
                    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value     = prividnasifra[0].Value.naziv;
                }
                else
                {
                    dataGridView1.Rows.RemoveAt(e.RowIndex);
                }
            }

            else if (e.ColumnIndex == dataGridView1.Columns["kolicina"].Index)
            {
                if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "")
                {
                    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = 1;
                }
            }
            else if (e.ColumnIndex == dataGridView1.Columns["MPC_popust"].Index)
            {
                if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "")
                {
                    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = 0;
                }


                var MPC_N  = stanjeSkladista[Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells[1].Value)].MPC;
                var Popust = Convert.ToSingle(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);

                dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex + 1].Value = (1 - (Popust / 100)) * MPC_N;
            }
            else if (e.ColumnIndex == dataGridView1.Columns["MPC_Prodano"].Index)
            {
                if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "")
                {
                    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = stanjeSkladista[Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells[1].Value)].MPC;
                }
                var MPC_P = Convert.ToSingle(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
                var MPC_N = stanjeSkladista[Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells[1].Value)].MPC;

                dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value = (float)((-100 * MPC_P / MPC_N) + 100);
            }



            ReindeksirajStavke();
            if (!RowContainsEmptyValues(dataGridView1, e.RowIndex))
            {
                SikronizirajStavkeRacuna();
            }

            RacunajIznosRacuna();
        }