Beispiel #1
0
        // Osvježavanje svojstava stavke. Ovo bi se inaèe trebalo raditi u poslovnom
        // objektu stavke ali to u ovom primjeru nije moguæe zbog jednostavnijeg dizajna frameworka
        private void stavkaDataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex == -1)
            {
                return;
            }

            if (e.ColumnIndex == 0 || e.ColumnIndex == 1)
            {
                try
                {
                    // Šifra
                    object sifArtikla = stavkaDataGridView[e.ColumnIndex, e.RowIndex].Value;
                    if (sifArtikla != null)
                    {
                        Artikl a = artiklBll.Fetch((int)sifArtikla);
                        if (a != null)
                        {
                            Stavka s = stavkaBindingSource.Current as Stavka;
                            s.JedCijArtikla   = a.CijArtikla;
                            s.JedMjereArtikla = a.JedMjere;
                        }
                    }
                }
                catch (InvalidCastException)
                {
                    // Nije unesena ispravna vrijednost. Zanemari. Validacija æe to uloviti.
                }
            }
        }
Beispiel #2
0
        private Artikl Fetch(object sifArtikla, object nazArtikla)
        {
            using (SqlConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
            {
                using (SqlCommand cmd = db.CreateCommand())
                {
                    cmd.CommandText = "[dbo].[ap_Artikl_R]";
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@SifArtikla", sifArtikla != null ? sifArtikla : DBNull.Value));
                    cmd.Parameters.Add(new SqlParameter("@NazArtikla", nazArtikla != null ? nazArtikla : DBNull.Value));

                    db.Open();
                    using (SqlDataReader dr = cmd.ExecuteReader())
                    {
                        if (dr != null && dr.Read())
                        {
                            return(Artikl.CreateNew(dr));
                        }
                        else
                        {
                            return(null);
                        }
                    }
                }
            }
        }
Beispiel #3
0
        // Stvara novi objekt èitanjem iz podataka baze
        public static Artikl CreateNew(IDataReader dr)
        {
            Artikl rez = new Artikl();

            rez.Load(dr);
            return(rez);
        }
Beispiel #4
0
        // Obavlja DELETE
        private void Delete(Artikl item, SqlCommand cmd)
        {
            cmd.CommandText = "[dbo].[ap_Artikl_D]";
            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.Add(new SqlParameter("@SifArtikla", SqlDbType.Int)).Value = item.SifArtikla.HasValue ? (object)item.SifArtikla.Value : DBNull.Value;

            cmd.ExecuteNonQuery();
        }
Beispiel #5
0
 // Validacija svih svojstava poslovnog objekta
 public void Validate(Artikl target)
 {
     Validate(target, "SifArtikla");
     Validate(target, "NazArtikla");
     Validate(target, "JedMjere");
     Validate(target, "CijArtikla");
     Validate(target, "ZastUsluga");
     Validate(target, "SlikaArtikla");
 }
Beispiel #6
0
        // Vraæanje originalnih vrijednosti (poništenje izmjena)
        protected override void DoRestore(object backupObject)
        {
            Artikl bak = (Artikl)backupObject;

            sifArtikla   = bak.sifArtikla;
            nazArtikla   = bak.nazArtikla;
            jedMjere     = bak.jedMjere;
            cijArtikla   = bak.cijArtikla;
            zastUsluga   = bak.zastUsluga;
            slikaArtikla = bak.slikaArtikla;
        }
Beispiel #7
0
        // Pohrana originalnih vrijednosti kako bi se mogao napraviti
        // poništenje unosa
        protected override void DoBackup(object backupObject)
        {
            Artikl bak = (Artikl)backupObject;

            bak.sifArtikla   = sifArtikla;
            bak.nazArtikla   = nazArtikla;
            bak.jedMjere     = jedMjere;
            bak.cijArtikla   = cijArtikla;
            bak.zastUsluga   = zastUsluga;
            bak.slikaArtikla = slikaArtikla;
        }
Beispiel #8
0
        // Osvježavanje unosa i pridruživanje metode za BLL objekt poslovnom objektu
        private void artiklBindingSource_CurrentChanged(object sender, EventArgs e)
        {
            // as za razliku od obiène pretvorbe tipa neæe puknuti s InvalidCastException
            // ako tip nije ispravan nego æe vratiti null.
            Artikl a = artiklBindingSource.Current as Artikl;

            // Ako se radi o novom poslovnom objektu
            // koji još ne zna gdje mu je BLL objekt... ažuriraj.
            if (a != null && !a.HasBllObject)
            {
                a.NeedBllObject += new NeedBllObjectEventHandler(Artikl_NeedBllObject);
            }
        }
Beispiel #9
0
        // Obavlja UPDATE
        private void Update(Artikl item, SqlCommand cmd)
        {
            cmd.CommandText = "[dbo].[ap_Artikl_U]";
            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.Add(new SqlParameter("@SifArtikla", SqlDbType.Int)).Value         = item.SifArtikla.HasValue ? (object)item.SifArtikla.Value : DBNull.Value;
            cmd.Parameters.Add(new SqlParameter("@NazArtikla", SqlDbType.NVarChar)).Value    = !string.IsNullOrEmpty(item.NazArtikla) ? (object)item.NazArtikla : DBNull.Value;
            cmd.Parameters.Add(new SqlParameter("@JedMjere", SqlDbType.NVarChar)).Value      = !string.IsNullOrEmpty(item.JedMjere) ? (object)item.JedMjere : DBNull.Value;
            cmd.Parameters.Add(new SqlParameter("@CijArtikla", SqlDbType.Decimal)).Value     = item.CijArtikla.HasValue ? (object)item.CijArtikla.Value : DBNull.Value;
            cmd.Parameters.Add(new SqlParameter("@ZastUsluga", SqlDbType.Bit)).Value         = item.ZastUsluga.HasValue ? (object)item.ZastUsluga.Value : DBNull.Value;
            cmd.Parameters.Add(new SqlParameter("@SlikaArtikla", SqlDbType.VarBinary)).Value = item.SlikaArtikla != null ? (object)item.SlikaArtikla : DBNull.Value;

            cmd.ExecuteNonQuery();
        }
Beispiel #10
0
    protected void GridViewArtikli_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //dohvati cijenu artikla
            Firma.Artikl artikl = (Firma.Artikl)e.Row.DataItem;
            decimal?     cijena = artikl.CijArtikla;
            //cijena je èetvrta po redu

            TableCell cell = e.Row.Cells[POZICIJA_CIJENE];
            if (cijena < GRANICA_NISKE_CIJENE)
            {
                cell.ForeColor = BOJA_NISKIH;
            }
            else if (cijena < GRANICA_VISOKE_CIJENE)
            {
                cell.ForeColor = BOJA_VISOKIH;
            }
            else
            {
                cell.ForeColor = BOJA_OSTALIH;
            }
        }
    }
Beispiel #11
0
 // Validacija svih svojstava poslovnog objekta
 public void Validate(Artikl target)
 {
     Validate(target, "JedCijArtikla");
     Validate(target, "KolArtikla");
     Validate(target, "PostoRabat");
 }
Beispiel #12
0
        // Validacija pojedinog svojstva poslovnog objekta.
        // Ukoliko poslovno pravilo nije zadovoljeno, metoda baca iznimku.
        public void Validate(object businessObject, string propertyName)
        {
            Artikl target = (Artikl)businessObject;

            switch (propertyName)
            {
            case "SifArtikla":
            {
                if (!target.SifArtikla.HasValue)
                {
                    throw new Exception("Šifra artikla je obavezno polje!");
                }

                if (target.State == BusinessObjectState.New)
                {
                    Artikl a = Fetch(target.SifArtikla.Value);
                    if (a != null)
                    {
                        throw new Exception(string.Format("Artikl {0} veæ postoji.", a.SifArtikla.Value));
                    }
                }

                break;
            }

            case "NazArtikla":
            {
                if (string.IsNullOrEmpty(target.NazArtikla))
                {
                    throw new Exception("Naziv artikla je obavezno polje!");
                }

                if (target.State == BusinessObjectState.New ||
                    (!string.IsNullOrEmpty(target.NazArtiklaOriginal) && !target.NazArtikla.Equals(target.NazArtiklaOriginal)))
                {
                    Artikl a = Fetch(target.NazArtikla.Trim());
                    if (a != null)
                    {
                        throw new Exception(string.Format("Artikl '{0}' veæ postoji!", a.SifArtikla.Value));
                    }
                }

                if (target.NazArtikla.Length > 255)
                {
                    throw new Exception(string.Format("Maksimalna duljina naziva je {0}.", 255));
                }

                break;
            }

            case "JedMjere":
            {
                if (string.IsNullOrEmpty(target.JedMjere))
                {
                    throw new Exception("Jedinica mjere je obavezno polje!");
                }

                if (target.NazArtikla.Length > 255)
                {
                    throw new Exception(string.Format("Maksimalna duljina je {0}.", 255));
                }

                break;
            }

            case "CijArtikla":
            {
                if (!target.CijArtikla.HasValue || target.CijArtikla.Value <= 0)
                {
                    throw new Exception("Cijena mora biti veæa od 0!");
                }

                break;
            }

            default: break;
            }
        }
Beispiel #13
0
        protected override void Zoom()
        {
            if (InEditMode)
            {
                if (idPartneraComboBox.Focused)
                {
                    PartnerForm f = new PartnerForm();
                    f.StartPosition = FormStartPosition.CenterScreen;
                    if (f.ShowDialog() == DialogResult.OK)
                    {
                        // Potrebno zbog bindinga na lookup u sluèaju novounesenih partnera
                        partnerInfoBindingSource.DataSource = partnerBll.FetchAll();

                        Partner p = (Partner)f.Selected;
                        (dokumentBindingSource.Current as Dokument).IdPartnera = p.IdPartnera;
                    }
                }
                else if (idPrethDokumentaComboBox.Focused)
                {
                    DokumentForm f = new DokumentForm();
                    f.StartPosition = FormStartPosition.CenterScreen;
                    if (f.ShowDialog() == DialogResult.OK)
                    {
                        // Potrebno zbog bindinga na lookup u sluèaju novounesenih dokumenata
                        prethDokumentBindingSource.DataSource = dokumentBll.FetchAll();

                        Dokument d = (Dokument)f.Selected;
                        (dokumentBindingSource.Current as Dokument).IdPrethDokumenta = d.IdDokumenta;
                    }
                }
                else if (stavkaDataGridView.SelectedCells.Count == 1 &&
                         stavkaDataGridView.SelectedCells[0].ColumnIndex == 0 ||
                         stavkaDataGridView.SelectedCells[0].ColumnIndex == 1)
                {
                    ArtiklForm f = new ArtiklForm();
                    f.StartPosition = FormStartPosition.CenterScreen;
                    if (f.ShowDialog() == DialogResult.OK)
                    {
                        // Potrebno zbog bindinga na lookup u sluèaju novounesenih artikala
                        artiklBindingSource.DataSource = artiklBll.FetchAll();

                        Artikl a = (Artikl)f.Selected;
                        Stavka s = null;
                        if (stavkaDataGridView.Rows[stavkaDataGridView.SelectedCells[0].RowIndex].IsNewRow)
                        {
                            stavkaBindingSource.CancelEdit();
                            Dokument dok = (Dokument)dokumentBindingSource.Current;
                            s = new Stavka();
                            dok.Stavke.Add(s);
                        }
                        else
                        {
                            s = (Stavka)stavkaBindingSource.Current;
                        }

                        s.SifArtikla      = a.SifArtikla;
                        s.NazArtikla      = a.NazArtikla;
                        s.JedMjereArtikla = a.JedMjere;
                        s.JedCijArtikla   = a.CijArtikla;
                    }
                }
                StatusBar.RefreshStatusBar();
            }
        }