internal void SrediFormu(IDomenskiObjekat iKorisnik, IDomenskiObjekat iRoba, TextBox tbKorisnikRobe, DateTimePicker dtpDatumRazmeneRobe, TextBox tbNazivRobe, TextBox tbCenaRobe, TextBox tbDostupnaKolicina, DataGridView dgvUlozenaRoba) { try { Roba roba; Korisnik korisnik; if (!(iKorisnik is Korisnik) || !(iRoba is Roba)) { throw new Exception("Nisu prosleđeni pravi objekti"); } else { roba = (Roba)iRoba; korisnik = (Korisnik)iKorisnik; } trazenaRoba = roba; tbKorisnikRobe.Text = roba.KorisnikRobe.UsernameKorisnika; dtpDatumRazmeneRobe.Value = DateTime.Now; tbNazivRobe.Text = roba.NazivRobe; tbCenaRobe.Text = roba.CenaRobe.ToString(); tbDostupnaKolicina.Text = roba.KolicinaRobe.ToString(); dgvUlozenaRoba.DataSource = ulozenaRoba; robaKorisnika = new BindingList <Roba>(Komunikacija.Instance.VratiListuRobe(Sesija.Instance.Korisnik, "=").Where(r => r.RazmenaUlozeneRobe.RazmenaID == -1).ToList()); } catch (ExceptionServer es) { FrmClose(); throw new ExceptionServer(es.Message); } catch (Exception e) { Debug.WriteLine(">>> " + e.Message); FrmClose(); } }
public List <OpstiDomenskiObjekat> pretraziProizvode(Roba roba) { SOPretrazivanjeProizvoda pr = new SOPretrazivanjeProizvoda(); pr.IzvrsiSo(roba); return(pr.Lista); }
internal void ObrisiRobu(DataGridView dgvRoba) { if (dgvRoba.SelectedRows.Count > 0) { try { Roba robaZaBrisanje = (Roba)dgvRoba.SelectedRows[0].DataBoundItem; if (Komunikacija.Instance.ObrisiRobu(robaZaBrisanje)) { listaRobe.Remove(robaZaBrisanje); MessageBox.Show("Roba je uspešno obrisana!", "Obaveštenje", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Roba nije uspešno obrisana!", "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (ExceptionServer es) { FrmClose(); throw new ExceptionServer(es.Message); } } else { MessageBox.Show("Niste označili robu za brisanje!", "Obaveštenje", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
// zavrseno public bool ObrisiRobu(Roba roba) { OpstaSistemskaOperacija sistemskaOperacija = new ObrisiRobuSO(); sistemskaOperacija.Izvrsi(roba); return(((ObrisiRobuSO)sistemskaOperacija).Obrisano); }
internal void IzmeniRobu(DataGridView dgvRoba) { if (dgvRoba.SelectedRows.Count > 0) { try { Roba robaZaIzmenu = (Roba)dgvRoba.SelectedRows[0].DataBoundItem; robaZaIzmenu.DatumUnosaRobe = DateTime.Now; if (Komunikacija.Instance.IzmeniRobu(robaZaIzmenu)) { MessageBox.Show("Roba je uspešno izmenjena!", "Obaveštenje", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Roba nije uspešno izmenjena!", "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (ExceptionServer es) { FrmClose(); throw new ExceptionServer(es.Message); } } else { MessageBox.Show("Niste označili robu za izmenu!", "Obaveštenje", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
public void SaveRoba(Roba roba) { try { var existing = _context.Robas.FirstOrDefault(x => x.RobaID == roba.RobaID); if (existing == null) { _context.Robas.Add(roba); } else { _context.Entry(existing).CurrentValues.SetValues(roba); } } catch (DbEntityValidationException dbx) { foreach (var er in dbx.EntityValidationErrors) { MessageBox.Show(string.Join(Environment.NewLine, er.ValidationErrors.Select(x => x.PropertyName + ": " + x.ErrorMessage))); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
// zavrseno public bool IzmeniRobu(Roba roba) { OpstaSistemskaOperacija sistemskaOperacija = new IzmeniRobuSO(); sistemskaOperacija.Izvrsi(roba); return(((IzmeniRobuSO)sistemskaOperacija).Izmenjeno); }
// zavrseno internal bool ObrisiRobu(Roba roba) { try { Zahtev zahtev = new Zahtev { Objekat = roba, Operacija = Operacija.ObrisiRobu }; formatter.Serialize(stream, zahtev); Odgovor odgovor = (Odgovor)formatter.Deserialize(stream); switch (odgovor.Signal) { case Signal.Ok: return(true); case Signal.Error: return(false); } return(false); } catch (IOException e) { Debug.WriteLine(">>> " + e.Message); klijent.Close(); throw new ExceptionServer("Server je zaustavljen!"); } }
private void Button_Click_2(object sender, RoutedEventArgs e) { if (naziv.Text == "" || cijena.Text == "" || opis.Text == "") { MessageDialog msgDialog = new MessageDialog("Nepotpuni podaci"); msgDialog.ShowAsync(); } else { if (d.IsChecked == true) { Roba novaRoba = new Roba(VrstaRobe.Dijamant, Convert.ToDouble(cijena.ToString()), naziv.Text, opis.Text); GlobalnaMafija.mafija.listaRobe.Add(novaRoba); } else if (a.IsChecked == true) { Roba novaRoba = new Roba(VrstaRobe.Antikvitet, Convert.ToDouble(cijena.ToString()), naziv.Text, opis.Text); GlobalnaMafija.mafija.listaRobe.Add(novaRoba); } else if (s.IsChecked == true) { Roba novaRoba = new Roba(VrstaRobe.Slika, Convert.ToDouble(cijena.ToString()), naziv.Text, opis.Text); GlobalnaMafija.mafija.listaRobe.Add(novaRoba); } else { Roba novaRoba = new Roba(VrstaRobe.Nakit, Convert.ToDouble(cijena.ToString()), naziv.Text, opis.Text); GlobalnaMafija.mafija.listaRobe.Add(novaRoba); } } }
internal void DodajRobu(TextBox tbKolicina, ComboBox cbNaziv) { if (tbKolicina.BackColor == Color.Green) { Roba dodaj = (Roba)cbNaziv.SelectedItem; Roba r = new Roba { //Dodat ID zbog update-a RobaID = dodaj.RobaID, NazivRobe = dodaj.NazivRobe, KolicinaRobe = Convert.ToDouble(tbKolicina.Text), CenaRobe = dodaj.CenaRobe, DatumUnosaRobe = DateTime.Now, KorisnikRobe = dodaj.KorisnikRobe, KategorijaRobe = dodaj.KategorijaRobe, RazmenaUlozeneRobe = new RazmenaRobe() }; dodaj.KolicinaRobe -= r.KolicinaRobe; ulozRoba.Add(r); } else { MessageBox.Show("Neuspešno dodavanje, pokušajte ponovo!", "Obaveštenje", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
internal void UnesiRobu(TextBox tbNazivRobe, TextBox tbKolicinaRobe, TextBox tbCenaRobe, DateTimePicker dtpDatumUnosaRobe, ComboBox cbKategorija) { if (ValidacijaUnosaRobe(out float kolicina, out float cena, tbNazivRobe, tbKolicinaRobe, tbCenaRobe)) { DateTime datumUnosaRobe = dtpDatumUnosaRobe.Value; Roba r = new Roba() { NazivRobe = tbNazivRobe.Text, KolicinaRobe = kolicina, CenaRobe = cena, DatumUnosaRobe = datumUnosaRobe, KorisnikRobe = Sesija.Instance.Korisnik, KategorijaRobe = (Kategorija)cbKategorija.SelectedItem, RazmenaUlozeneRobe = null }; bool uspesnoUnetaRoba = Komunikacija.Instance.UnesiRobu(r); if (uspesnoUnetaRoba) { MessageBox.Show($"Uspešno uneta roba {r.NazivRobe}!", "Obaveštenje", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show($"Neuspešno uneta roba {r.NazivRobe}!", "Obaveštenje", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else { return; } }
internal void SrediRazlikuUCeni(object sender, DataGridViewRowsAddedEventArgs e, TextBox tbRazlikaUCeni) { Roba r = ulozenaRoba[e.RowIndex]; double razlikaUCeni = Convert.ToDouble(tbRazlikaUCeni.Text); razlikaUCeni -= r.KolicinaRobe * r.CenaRobe; tbRazlikaUCeni.Text = razlikaUCeni.ToString(); }
public void DeleteRoba(Roba roba) { var existing = _context.Robas.FirstOrDefault(x => x.RobaID == roba.RobaID); if (existing != null) { _context.Robas.Remove(roba); } }
public static Roba CreateRobaFromReader(MySql.Data.MySqlClient.MySqlDataReader dr) { Roba roba = null; try { roba = new Roba(dr.GetInt32("ID")); roba.Sifra = dr["Sifra"].GetType() == typeof(System.DBNull) ? String.Empty : dr.GetString("Sifra"); roba.Naziv = dr["Naziv"].GetType() == typeof(System.DBNull) ? String.Empty : dr.GetString("Naziv"); roba.ProizvodjacID = dr["ProizvodjacID"].GetType() == typeof(System.DBNull) ? 0 : dr.GetInt32("ProizvodjacID"); roba.FakturnaCijena = dr["FakturnaCijena"].GetType() == typeof(System.DBNull) ? 0 : dr.GetDecimal("FakturnaCijena"); roba.PDVStopaID = dr["PDVStopaID"].GetType() == typeof(System.DBNull) ? 0 : dr.GetInt32("PDVStopaID"); roba.PocetnoStanje = dr["PocetnoStanje"].GetType() == typeof(System.DBNull) ? 0 : dr.GetDecimal("PocetnoStanje"); roba.Ulaz = dr["Ulaz"].GetType() == typeof(System.DBNull) ? 0 : dr.GetDecimal("Ulaz"); roba.Izlaz = dr["Izlaz"].GetType() == typeof(System.DBNull) ? 0 : dr.GetDecimal("Izlaz"); roba.Zaliha = dr["Zaliha"].GetType() == typeof(System.DBNull) ? 0 : dr.GetDecimal("Zaliha"); roba.ReferalnaCijena = dr["ReferalnaCijena"].GetType() == typeof(System.DBNull) ? 0 : dr.GetDecimal("ReferalnaCijena"); roba.ATC = dr["ATC"].GetType() == typeof(System.DBNull) ? String.Empty : dr.GetString("ATC"); roba.Participacija = dr["Participacija"].GetType() == typeof(System.DBNull) ? 0 : dr.GetInt32("Participacija"); roba.Opis = dr["Opis"].GetType() == typeof(System.DBNull) ? String.Empty : dr.GetString("Opis"); roba.MPC = dr["MPC"].GetType() == typeof(System.DBNull) ? 0 : dr.GetDecimal("MPC"); roba.Popust = dr["Popust"].GetType() == typeof(System.DBNull) ? 0 : dr.GetDecimal("Popust"); roba.DoplataBezPDV = dr["DoplataBezPDV"].GetType() == typeof(System.DBNull) ? 0 : dr.GetDecimal("DoplataBezPDV"); roba.DoplataSaPDV = dr["DoplataSaPDV"].GetType() == typeof(System.DBNull) ? 0 : dr.GetDecimal("DoplataSaPDV"); roba.RezimIzdavanja = dr["RezimIzdavanja"].GetType() == typeof(System.DBNull) ? String.Empty : dr.GetString("RezimIzdavanja"); roba.MjeraID = dr["MjeraID"].GetType() == typeof(System.DBNull) ? 0 : dr.GetInt32("MjeraID"); roba.StopaMarze = dr["StopaMarze"].GetType() == typeof(System.DBNull) ? 0 : dr.GetDecimal("StopaMarze"); roba.VrstaProskripcije = dr["VrstaProskripcije"].GetType() == typeof(System.DBNull) ? 0 : (VrstaProskripcije)dr.GetInt32("VrstaProskripcije"); roba.Taksa = dr["Taksa"].GetType() == typeof(System.DBNull) ? false : dr.GetBoolean("Taksa"); if (!dr.IsDBNull(dr.GetOrdinal("DatumCijene"))) { roba.DatumCijene = dr.GetDateTime("DatumCijene"); } if (dr["Oznaka"].GetType() == typeof(System.DBNull) || String.IsNullOrEmpty(dr["Oznaka"].ToString())) { roba.Oznaka = ' '; } else { roba.Oznaka = dr.GetChar("Oznaka"); } roba.TipRobeID = dr.IsDBNull(dr.GetOrdinal("TipRobeID")) ? 0 : dr.GetInt32("TipRobeID"); SetBaseProps <Roba>(roba, dr); return(roba); } catch (System.Exception ex) { Logging.Log.Create("Greška u kreiranju objekta Roba iz readera.", Logging.LogEntryLevel.Critical, ex); } return(null); }
public List <OpstiDomenskiObjekat> pretraziProizvode(Roba r) { TransferKlasa transfer = new TransferKlasa(); transfer.Operacija = (int)Operacije.Pretrazivanje_proizvoda; transfer.TransferObjekat = r; formater.Serialize(tok, transfer); TransferKlasa response = formater.Deserialize(tok) as TransferKlasa; return(response.TransferObjekat as List <OpstiDomenskiObjekat>); }
public List <OpstiDomenskiObjekat> pretraziProizvode(OpstiDomenskiObjekat o) { Roba r = o as Roba; List <OpstiDomenskiObjekat> objekti = new List <OpstiDomenskiObjekat>(); using (var context = new PSContext()) { context.StavkeOtpremnice.Where(x => x.RobaID == r.RobaID).ToList().ForEach(a => objekti.Add(a)); context.StavkePrijemnice.Where(x => x.RobaID == r.RobaID).ToList().ForEach(a => objekti.Add(a)); } return(objekti); }
public void ispraviPrviPrvi() { NpgsqlConnection remoteConnection = new NpgsqlConnection(classSQL.remoteConnectionString.Replace(UzmiTrenutnuGodinu().ToString(), (UzmiTrenutnuGodinu() - 1).ToString())); string sql = "SELECT * FROM roba"; NpgsqlDataAdapter da = new NpgsqlDataAdapter(sql, remoteConnection); DataSet DS = new DataSet(); da.Fill(DS); DataTable DTk = DS.Tables[0]; Roba r = new Roba(); for (int i = 0; i < DTk.Rows.Count; i++) { //*************************************************PROVJERA ROBE I SPREMANJE U STRUCT************************************************ r.naziv = DTk.Rows[i]["naziv"].ToString(); r.id_grupa = DTk.Rows[i]["id_grupa"].ToString() == "" ? "1" : DTk.Rows[i]["id_grupa"].ToString(); r.jm = DTk.Rows[i]["jm"].ToString() == "" ? "kom" : DTk.Rows[i]["jm"].ToString(); r.vpc = DTk.Rows[i]["vpc"].ToString() == "" ? "0" : DTk.Rows[i]["vpc"].ToString().Replace(",", "."); r.mpc = DTk.Rows[i]["mpc"].ToString() == "" ? "0" : DTk.Rows[i]["mpc"].ToString().Replace(".", ","); r.id_zemlja_porijekla = DTk.Rows[i]["id_zemlja_porijekla"].ToString() == "" ? "1" : DTk.Rows[i]["id_zemlja_porijekla"].ToString(); r.id_zemlja_uvoza = DTk.Rows[i]["id_zemlja_uvoza"].ToString() == "" ? "1" : DTk.Rows[i]["id_zemlja_uvoza"].ToString(); r.id_partner = DTk.Rows[i]["id_partner"].ToString() == "" ? "1" : DTk.Rows[i]["id_partner"].ToString(); r.id_manufacturers = DTk.Rows[i]["id_manufacturers"].ToString() == "" ? "1" : DTk.Rows[i]["id_manufacturers"].ToString(); r.id_roba = DTk.Rows[i]["id_roba"].ToString() == "" ? "1" : DTk.Rows[i]["id_roba"].ToString(); r.sifra = DTk.Rows[i]["sifra"].ToString() == "" ? "greska" : DTk.Rows[i]["sifra"].ToString(); r.ean = DTk.Rows[i]["ean"].ToString() == "" ? "-1" : DTk.Rows[i]["ean"].ToString(); r.porez = DTk.Rows[i]["porez"].ToString() == "" ? "0" : DTk.Rows[i]["porez"].ToString(); r.oduzmi = DTk.Rows[i]["oduzmi"].ToString() == "" ? "NE" : DTk.Rows[i]["oduzmi"].ToString(); r.nc = DTk.Rows[i]["nc"].ToString() == "" ? "0" : DTk.Rows[i]["nc"].ToString().Replace(".", ","); r.porez_potrosnja = DTk.Rows[i]["porez_potrosnja"].ToString() == "" ? "0" : DTk.Rows[i]["porez_potrosnja"].ToString(); r.opis = DTk.Rows[i]["opis"].ToString() == "" ? "1" : DTk.Rows[i]["opis"].ToString(); r.brand = DTk.Rows[i]["brand"].ToString() == "" ? "" : DTk.Rows[i]["brand"].ToString(); r.jamstvo = DTk.Rows[i]["jamstvo"].ToString() == "" ? "0" : DTk.Rows[i]["jamstvo"].ToString(); r.akcija = DTk.Rows[i]["akcija"].ToString() == "" ? "0" : DTk.Rows[i]["akcija"].ToString(); r.link_za_slike = DTk.Rows[i]["link_za_slike"].ToString() == "" ? "" : DTk.Rows[i]["link_za_slike"].ToString(); r.id_podgrupa = DTk.Rows[i]["id_podgrupa"].ToString() == "" ? "1" : DTk.Rows[i]["id_podgrupa"].ToString(); r.naziv = r.naziv.Replace("\'", ""); r.naziv = r.naziv.Replace("\"", ""); r.naziv = r.naziv.Replace("&", " AND "); r.opis = r.opis.Replace("\'", ""); r.opis = r.opis.Replace("\"", ""); r.opis = r.opis.Replace("&", " AND "); //************************************************************************************************************************************** sql = "UPDATE roba SET id_grupa='" + r.id_grupa + "' WHERE sifra='" + r.sifra + "';"; classSQL.insert(sql); } }
public RobaViewModel(Roba k) { _model = k; Idbroj = k.RobaID; Naziv = k.Naziv; Jm = k.Jm; Kol = k.Kol; Zaliha = k.Zaliha; Cena = k.Cena; Changed = false; }
// ...#... private Odgovor UnesiRobu(Roba roba) { bool uspesno = Kontroler.Kontroler.Instance.UnesiRobu(roba); Odgovor odgovor = new Odgovor(); if (uspesno == true) { odgovor.Signal = Signal.Ok; } else { odgovor.Signal = Signal.Error; } return(odgovor); }
// ...#... private Odgovor IzmeniRobu(Roba roba) { bool izmena = Kontroler.Kontroler.Instance.IzmeniRobu(roba); Odgovor odgovor = new Odgovor(); if (izmena == true) { odgovor.Signal = Signal.Ok; } else { odgovor.Signal = Signal.Error; } return(odgovor); }
// POST: odata/Roba public async Task <IHttpActionResult> Post(Roba roba) { if (!LoginController.CheckAuthorizationForRequest(Request)) { return(Unauthorized()); } if (!ModelState.IsValid || !roba.ValidateOcl()) { return(BadRequest(ModelState)); } db.Roba.Add(roba); await db.SaveChangesAsync(); return(Created(roba)); }
public void dodajStavkuOtpremnice(string text1, int value, string text2, Roba roba) { if (text1 == "" || text2 == "") { MessageBox.Show("Sva polja su obavezna!"); return; } stavkeOtpr.Add(new StavkaOtpremnice() { JedMere = text1, Kolicina = value, JedCena = Int32.Parse(text2), Roba = roba, RedniBrojStavke = stavkeOtpr.Count + 1, UkupnaCena = value * Int32.Parse(text2) }); }
// DELETE: odata/Roba(5) public async Task <IHttpActionResult> Delete([FromODataUri] int key) { if (!LoginController.CheckAuthorizationForRequest(Request)) { return(Unauthorized()); } Roba roba = await db.Roba.FindAsync(key); if (roba == null) { return(NotFound()); } db.Roba.Remove(roba); await db.SaveChangesAsync(); return(StatusCode(HttpStatusCode.NoContent)); }
public void dodajStavku(Roba roba, int value, string text, string v) { double asd; if (!Double.TryParse(v, out asd)) { MessageBox.Show("Cena mora biti broj!"); return; } stavkePrijemnice.Add(new StavkaPrijemnice() { RedniBrojStavke = stavkePrijemnice.Count + 1, Roba = roba, Kolicina = value, JedMere = text, JedCena = asd, UkupnaCena = value * asd }); }
internal void ObrisiRobu(DataGridView dgvUlozenaRoba, TextBox tbRazlikaUCeni) { if (dgvUlozenaRoba.SelectedRows.Count > 0) { Roba robaZaBrisanje = (Roba)dgvUlozenaRoba.SelectedRows[0].DataBoundItem; foreach (var r in robaKorisnika) { if (r.NazivRobe == robaZaBrisanje.NazivRobe) { r.KolicinaRobe += robaZaBrisanje.KolicinaRobe; break; } } ulozenaRoba.Remove(robaZaBrisanje); // smanjivanje razlike u ceni tbRazlikaUCeni.Text = (Convert.ToDouble(tbRazlikaUCeni.Text) + robaZaBrisanje.KolicinaRobe * robaZaBrisanje.CenaRobe).ToString(); } }
public void DodajRevers(string jedinicaMere, int Ulaz, int Izlaz, Roba roba, string kolicina) { int asd; if (!Int32.TryParse(kolicina, out asd)) { MessageBox.Show("Kolicina mora biti broj!"); return; } Revers r = new Revers() { JedMere = jedinicaMere, Ulaz = Ulaz, Izlaz = Izlaz, Roba = roba, Ukupno = asd, RedniBroj = revers.Count + 1 }; revers.Add(r); }
// PUT: odata/Roba(5) public async Task <IHttpActionResult> Put([FromODataUri] int key, Delta <Roba> patch) { if (!LoginController.CheckAuthorizationForRequest(Request)) { return(Unauthorized()); } Validate(patch.GetEntity()); if (!ModelState.IsValid || !patch.GetEntity().ValidateOcl()) { return(BadRequest(ModelState)); } Roba roba = await db.Roba.FindAsync(key); if (roba == null) { return(NotFound()); } patch.Put(roba); try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!RobaExists(key)) { return(NotFound()); } else { throw; } } return(Updated(roba)); }
public void PopuniStanje(Roba r, TextBox primljenotxt, TextBox prodatotxt) { double primljeno = 0; double prodato = 0; List <OpstiDomenskiObjekat> asd = k.pretraziProizvode(r); asd.ForEach(c => { try { StavkaOtpremnice s = c as StavkaOtpremnice; prodato += s.Kolicina; } catch (Exception) { StavkaPrijemnice p = c as StavkaPrijemnice; primljeno += p.Kolicina; } }); primljenotxt.Text = primljeno.ToString(); prodatotxt.Text = prodato.ToString(); }
// ...#...SO public bool UnesiRobu(Roba roba) { OpstaSistemskaOperacija sistemskaOperacija = new DodajRobuSO(); sistemskaOperacija.Izvrsi(roba); return(((DodajRobuSO)sistemskaOperacija).Sacuvano); //try //{ // broker.OtvoriKonekciju(); // broker.UnesiRobu(r); // return true; //} //catch (Exception e) //{ // Debug.WriteLine(">>> " + e.Message); // return false; //} //finally //{ // broker.ZatvoriKonekciju(); //} }
public Statistika vratiStanje([FromBody] Roba r) { SOPretrazivanjeProizvoda sop = new SOPretrazivanjeProizvoda(); sop.IzvrsiSo(r); List <OpstiDomenskiObjekat> lista = sop.Lista; Statistika s = new Statistika(); lista.ForEach(x => { try { StavkaPrijemnice stavka = x as StavkaPrijemnice; s.naRaspolaganju += stavka.Kolicina; } catch (Exception) { StavkaOtpremnice stavka = x as StavkaOtpremnice; s.potrazivanje += stavka.Kolicina; } }); return(s); }