public string[] PllUpisiStavku(string skladisteOznaka, int godina, string broj, string robaBarkod, string lokacijaOznakaIzlaz, float kolicinaIzlaz, string lokacijaOznakaUlaz, float kolicinaUlaz, string mac, string matBroj, string lozinka) { int id = 0; string strGreska = "OK"; float fltGreska = 0; // Kontrola jel PLL zaprti. Okay, zakrpa je JADNA zbog GOTO naredbe, ali mi se nije dalo zafrkavat s ifovima. //DataSet kontrolaPLLDS = PllDajPoSkladistu(skladisteOznaka); //if (kontrolaPLLDS != null) //{ // if (kontrolaPLLDS.Tables[0].Rows.Count != 1) // { // strGreska = "GreskaPriUpisu"; // kontrolaPLLDS.Dispose(); // goto Kraj; // } //} //else //{ // strGreska = "GreskaPriUpisu"; // kontrolaPLLDS.Dispose(); // goto Kraj; //} // Kraj kontrole // - - Nova kontrola jel PLL zaprti, 8.1.2009 - - strGreska = PllProvjeri(skladisteOznaka, broj); if (strGreska != "OK") { goto Kraj; } // - - - - - - - - - - - - - if (JeAutenticiran(matBroj, lozinka, mac)) { MobTransLokStaTA mobTransLokStaTA = new MobTransLokStaTA(); decimal? decID = null; decimal? decKapacitet = null; #region Priprema parametara string lokIzlaz = null; if (lokacijaOznakaIzlaz != null && lokacijaOznakaIzlaz != String.Empty) { lokIzlaz = lokacijaOznakaIzlaz; } float? kolIzlaz = null; if (lokIzlaz != null) { kolIzlaz = kolicinaIzlaz; } string lokUlaz = null; if (lokacijaOznakaUlaz != null && lokacijaOznakaUlaz != String.Empty) { lokUlaz = lokacijaOznakaUlaz; } float? kolUlaz = null; if (lokUlaz != null) { kolUlaz = kolicinaUlaz; } #endregion #region Izlaz // Ako se radi o izlazu, treba provjeriti postoji li uopæe roba na toj lokaciji. if (lokIzlaz != null && lokUlaz == null) { DataSet ds = RobaDajLokacije(skladisteOznaka, robaBarkod, null); if (ds != null) { DataView dv = new DataView(ds.Tables[0], "LokacijaOznaka='" + lokIzlaz + "'", "LokacijaOznaka", DataViewRowState.CurrentRows); if (dv.Count == 1) { float fltRobaStanje = 0; if (dv[0]["RobaStanje"].ToString() != String.Empty && dv[0]["RobaStanje"].ToString() != null) { fltRobaStanje = Convert.ToSingle(dv[0]["RobaStanje"]); } // Ako robe ima na lokaciji, treba provjeriti kolièinu za skidanje... if (kolicinaIzlaz > fltRobaStanje) { strGreska = "PrevelikoIzuzimanje"; fltGreska = kolicinaIzlaz - fltRobaStanje; } } else if (dv.Count == 0) { strGreska = "NemaNaLokaciji"; } else { strGreska = "PogresanBrojLokacija"; } dv.Dispose(); } else { strGreska = "GreskaPriDohvatuLokacija"; } ds.Dispose(); } #endregion #region Ulaz // Ako se radi o ulazu, treba provjeriti da li je roba prethodno izuzeta. else if (lokIzlaz == null && lokUlaz != null) { //string[] stanje = PllIzmjestenaRobaDajStanje(skladisteOznaka, godina, broj, null, robaBarkod, matBroj); string[] stanje = PllIzmjestenaRobaDajStanje(skladisteOznaka, godina, broj, null, robaBarkod, null); if (stanje[0] == "1") { if (stanje[2] != String.Empty) { float fltStanje1 = 0; if (stanje[1] != String.Empty) { fltStanje1 = Convert.ToSingle(stanje[1]); } if (kolicinaUlaz > Convert.ToSingle(stanje[2]) - fltStanje1) { strGreska = "PrevelikUlaz"; fltGreska = kolicinaUlaz - (Convert.ToSingle(stanje[2]) - fltStanje1); } } else { strGreska = "NepostojeciIzlaz"; } } else { strGreska = "GreskaPriDohvatuStanja"; } } #endregion if (strGreska == "OK") { try { mobTransLokStaTA.Insert(skladisteOznaka, godina.ToString(), broj, lokIzlaz, kolIzlaz, lokUlaz, kolUlaz, robaBarkod, mac, matBroj, out decID, out decKapacitet); if (Convert.ToInt32(decID) == -2) { strGreska = "KapacitarnaGreska"; } } catch (Exception) { strGreska = "GreskaPriUpisu"; decID = null; } finally { mobTransLokStaTA.Dispose(); // Za otpuštanje table adaptera se brine garbage collector, ali ne šteti ako ga ruèno anuliramo. } if (decID != null) { id = Convert.ToInt32(decID); } if (decKapacitet != null) { fltGreska = Convert.ToSingle(decKapacitet); } } } Kraj: string[] upis = new string[3]; upis[0] = strGreska; upis[1] = fltGreska.ToString(); upis[2] = id.ToString(); // < Štoperica> //TimeSpan intervalWS = DateTime.Now.Subtract(pocetakWS); //Kraj(id2, intervalWS.TotalMilliseconds, dogodilaSeGreska); // </štoperica> return upis; }