public static bool DokBarkodOK(DokBarkod _skladok, out string _msg) { _msg = String.Empty; Regex regex = null; if (_skladok.duljina == 15) { regex = new Regex(@"[A-Z]{3}[0-9]{12}"); } else { regex = new Regex(@"[A-Z]{3}[0-9]{15}"); } if (!regex.IsMatch(_skladok.izvornik)) { _msg = P.DOKBARKOD_FALŠNI_FORMAT; return false; } try { if ((from r in Katalog.dokumenti where r.vrsta == _skladok.dokVrsta select r).Single().oznaka != _skladok.dokOznaka) { _msg = String.Format(P.DOKBARKOD_FALŠNA_VRSTA, _skladok.dokVrsta, _skladok.dokOznaka); return false; } if (!(from r in Katalog.skladišta where r.oznaka == _skladok.sklaOznaka select r).Any()) { _msg = String.Format(P.DOKBARKOD_SKLA_NE_POSTOJI, _skladok.sklaOznaka); return false; } if (_skladok.duljina == 19 && !(from r in Katalog.skladišta where r.oznaka == _skladok.sklaOznakaPSS select r).Any()) { _msg = String.Format(P.DOKBARKOD_SKLA_NE_POSTOJI, _skladok.sklaOznakaPSS); return false; } } catch (InvalidOperationException ex) { _msg = String.Format(P.DOKBARKOD_DOK_NE_POSTOJI, _skladok.dokVrsta) + ex.Message; return false; } catch (Exception ex) { _msg = ex.Message; return false; } return true; }
private void btnDok_Click(object sender, EventArgs e) { txtDok.Text = txtDok.Text.ToUpper(); if (txtDok.Text.Length != 15 && txtDok.Text.Length != 19) { MessageBox.Show(String.Format(P.DOKBARKOD_KRIVA_DULJINA, txtDok.Text.Length), P.MSGBOX_ERR_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } skladok = F.RazriješiDokBarkod(txtDok.Text); string msg; if (!F.DokBarkodOK(skladok, this.katalog, out msg)) { MessageBox.Show(msg, P.MSGBOX_ERR_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if ((from r in katalog.dokumenti where r.vrsta == skladok.dokVrsta select r).Single().smjer != "I") // OVAJ smjer je iz MobDokumenti gdje je PSS također I! { MessageBox.Show(P.NALOG_NIJE_IZLAZNI, P.MSGBOX_ERR_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (dgvDok.Rows.Count > 0 && (lblSklaOznakaV.Text != skladok.sklaOznaka || lblDokVrstaV.Text != (from r in katalog.dokumenti where r.vrsta == skladok.dokVrsta select r).Single().vrsta)) { MessageBox.Show(P.OTPREMA_UNIFORMNOST_NALOGA, P.MSGBOX_ERR_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } MTrenisClient c = new MTrenisClient(); try { if (!c.MozeOtprema(skladok.sklaOznaka, skladok.dokVrsta, skladok.dokBr)) { MessageBox.Show(P.NALOG_FIJU_BRIJU, P.MSGBOX_ERR_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } foreach (DataGridViewRow row in dgvLok.Rows) { if (row.Cells["colDokBr"].Value.ToString() == skladok.dokBr) { MessageBox.Show(P.OTPREMA_NALOG_VEĆ_DODAN, P.MSGBOX_ERR_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } dgvDok.Rows.Add(skladok.dokBr); txtDok.Text = String.Empty; txtDok.Select(); lblSklaOznakaV.Text = skladok.sklaOznaka; lblDokVrstaV.Text = skladok.dokVrsta; } catch (FaultException<MTrenisKvar> ex) { MessageBox.Show(ex.Detail.opis, ex.Detail.oznaka.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { MessageBox.Show(ex.Message, P.MSGBOX_ERR_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { if (c != null && c.State != CommunicationState.Closed) { c.Close(); } } }