using System;
using System.Collections.Specialized;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using System.Diagnostics;
namespace Baza_Reklam
{
public partial class OrderDetails : Form
{
SLOWNIKDataSet.Kursy_WalutRow kurs;
//zmienna wyłączająca obsługę zdarzeń, gdy formularz jest ukryty
private bool obslugaZdarzen;
//zmienna ustawiana na TRUE przy wznawianiu lub dodawnaniu nowego zamówienia
private bool nowyRekord;
private bool bylyZmiany;
private bool juzSieUkazaloWgazecie;
private double maksymalnyRabat = (double)0.3;
//numery reklam dla nowych zamówień
StringDictionary numeryReklam = new StringDictionary();
private static OrderDetails orderDetails;
public static OrderDetails getOrderDetails()
{
if (orderDetails == null)
{
orderDetails = new OrderDetails();
}
return orderDetails;
}
private ErrorProvider errProvider;
// przechowuje id aktualnie wyświetlanej reklamy
private int reklamaId;
// przechowuje id klienta , którego dotyczy aktualnie wyświetlana reklama
private int customerId;
Baza_Reklam.REKLAMADataSetTableAdapters.zmianyEmisjiTableAdapter
zmianyEmisjiTableAdapter = new Baza_Reklam.REKLAMADataSetTableAdapters.zmianyEmisjiTableAdapter();
//private event ZmianaParametrowZamowienia
private OrderDetails()
{
InitializeComponent();
this.rEKLAMADataSet.UKAZE_SIE_W_NR.Constraints.Remove("FAKTURY_UKAZE_SIE_W_NR");
errProvider = new ErrorProvider();
// funckje formatujące Decimal <-> %
rABATTextBox.DataBindings[0].Format += new ConvertEventHandler(DecimalToProcent);
rABATTextBox.DataBindings[0].Parse += new ConvertEventHandler(ProcentToDecimal);
pROCENT_PROWIZJITextBox.DataBindings[0].Format += new ConvertEventHandler(DecimalToProcent);
pROCENT_PROWIZJITextBox.DataBindings[0].Parse += new ConvertEventHandler(ProcentToDecimal);
pVATComboBox.DataBindings[0].Format += new ConvertEventHandler(DecimalToProcent);
pVATComboBox.DataBindings[0].Parse += new ConvertEventHandler(ProcentToDecimal);
rEKLAMADataSet.UKAZE_SIE_W_NR.TableNewRow += nowaEmisja;
nAZWY_MODULOWTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
gRZBIETYTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
pROMOCJETableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
lISTA_TYPOW_REKLAMYTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
lISTA_TYTULOWTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
kursy_WalutTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
rEKLAMATableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
uKAZE_SIE_W_NRTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
rEKLAMA_STRONATableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
reklama_Info_DodTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
aGENCITableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
ogl_dzialyTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
ogl_rozdzialyTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
zmianyEmisjiTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
this.nAZWY_MODULOWTableAdapter.Fill(this.sLOWNIKDataSet.NAZWY_MODULOW);
this.gRZBIETYTableAdapter.Fill(this.sLOWNIKDataSet.GRZBIETY);
this.pROMOCJETableAdapter.Fill(this.sLOWNIKDataSet.PROMOCJE);
if (User.getUser().St_kierownik || User.getUser().St_produkcja)
{
this.lISTA_TYPOW_REKLAMYTableAdapter.Fill(this.sLOWNIKDataSet.LISTA_TYPOW_REKLAMY);
}
else
{
this.lISTA_TYPOW_REKLAMYTableAdapter.FillByBezBezplatnych(this.sLOWNIKDataSet.LISTA_TYPOW_REKLAMY);
}
this.lISTA_TYTULOWTableAdapter.Fill(this.sLOWNIKDataSet.LISTA_TYTULOW);
this.aGENCITableAdapter.FillByAktywny(this.sLOWNIKDataSet.AGENCI);
this.ogl_dzialyTableAdapter.Fill(this.sLOWNIKDataSet.ogl_dzialy);
this.ogl_rozdzialyTableAdapter.Fill(this.sLOWNIKDataSet.ogl_rozdzialy);
usunToolStripMenuItem.Click += usunEmisje;
anulujToolStripMenuItem.Click += anulujEmisje;
zmienToolStripMenuItem.Click += zmienEmisje;
walutyComboBox.SelectedIndex = 0;
}
private void OrderDetails_Load(object sender, EventArgs e)
{
wyroznienie_exportedCheckBox.Enabled = User.getUser().St_produkcja;
}
///
/// Filtruje moduły i grzbiety wg tytułu gazety.
///
private void tYTULComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (obslugaZdarzen)
{
if (tYTULComboBox.SelectedValue != null)
{
this.nAZWYMODULOWBindingSource.Filter = "tytul='" + tYTULComboBox.SelectedValue.ToString() + "'";
this.iD_REKLAMYTextBox.Text = (nowyRekord) ? this.numeryReklam[tYTULComboBox.SelectedValue.ToString()] : this.iD_REKLAMYTextBox.Text;
this.gRZBIETYBindingSource.Filter = "Nazwa like '%" + tYTULComboBox.SelectedValue.ToString() + "%'";
int i = lISTATYTULOWBindingSource.Find("SYMB", tYTULComboBox.SelectedValue);
this.maksymalnyRabat = Convert.ToDouble(((DataRowView)lISTATYTULOWBindingSource.List[i])["max_rabat"]);
DataRowView row = (DataRowView)lISTATYTULOWBindingSource.Current;
this.ogl_dzialyBindingSource.Filter = "TYTUL=" + row["id"].ToString();
switch (tYTULComboBox.SelectedValue.ToString())
{
case "AMT":
this.ogl_dzialyBindingSource.Filter = "TYTUL='2'";
break;
case "GS":
this.ogl_dzialyBindingSource.Filter = "TYTUL='1'";
break;
case "AGRO":
this.ogl_dzialyBindingSource.Filter = "TYTUL='7'";
break;
case "adMot":
this.ogl_dzialyBindingSource.Filter = "TYTUL='6'";
break;
default:
this.ogl_dzialyBindingSource.Filter = "";
break;
}
}
}
}
private void grzbietComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (obslugaZdarzen)
{
if ((int)grzbietComboBox.SelectedValue == 9)
{
this.iD_REKLAMYTextBox.Text = (nowyRekord) ? this.numeryReklam["slaski"] : this.iD_REKLAMYTextBox.Text;
}
else
{
this.iD_REKLAMYTextBox.Text = (nowyRekord) ? this.numeryReklam[tYTULComboBox.SelectedValue.ToString()] : this.iD_REKLAMYTextBox.Text;
}
}
}
private void anulujButton_Click(object sender, EventArgs e)
{
if (nowyRekord)
{
//usuwa dodany wczesniej do bazy wiersz
if (rEKLAMABindingSource.Current != null)
{
rEKLAMABindingSource.RemoveCurrent();
rEKLAMABindingSource.EndEdit();
rEKLAMATableAdapter.Update(this.rEKLAMADataSet.REKLAMA);
}
}
else
{
//usuwa zmiany w zleceniu
rEKLAMADataSet.REKLAMA.RejectChanges();
rEKLAMADataSet.UKAZE_SIE_W_NR.RejectChanges();
}
this.obslugaZdarzen = false;
liczbaEmisjiLabel.Text = "-";
this.DialogResult = bylyZmiany ? DialogResult.OK : DialogResult.Cancel;
}
///
/// Zapisuje zmiany w wierszu oraz dodaje rekordy do "UKAZE SIE W NR" i "InfoDod"
///
private void dodajButton_Click(object sender, EventArgs e)
{
this.Cursor = Cursors.WaitCursor;
this.Validate();
rEKLAMABindingSource.EndEdit();
DataRowView row = (DataRowView)rEKLAMABindingSource.Current;
/*
if (!(brutto_EuroTextBox.Text != "0" ^ walutyComboBox.SelectedIndex == -1))
{
MessageBox.Show("Popraw walutę!");
this.Cursor = Cursors.Default;
return;
}*/
if (wyroznienieCheckBox.Checked ^ Convert.ToDecimal(row["wyroznienie_kwota"]) != 0)
{
MessageBox.Show("Została zmieniona opcja wyróżnienia. Zamówienie należy ponownie przeliczyć");
this.Cursor = Cursors.Default;
return;
}
row["USERID"] = User.getUser().Login;
rEKLAMAUKAZESIEWNRBindingSource.EndEdit();
rEKLAMAReklamaInfoDodBindingSource.EndEdit();
//MessageBox.Show(rEKLAMAUKAZESIEWNRBindingSource.List.Count.ToString() + " " + rEKLAMADataSet.UKAZE_SIE_W_NR.Count.ToString());
this.rEKLAMATableAdapter.Update(this.rEKLAMADataSet.REKLAMA);
this.uKAZE_SIE_W_NRTableAdapter.Update(this.rEKLAMADataSet.UKAZE_SIE_W_NR);
this.reklama_Info_DodTableAdapter.Update(this.rEKLAMADataSet.Reklama_Info_Dod);
this.zmianyEmisjiTableAdapter.Update(this.rEKLAMADataSet.zmianyEmisji);
MessageBox.Show("Zmiany zapisane");
zmiany();
nowyRekord = false;
bylyZmiany = true;
//this.obslugaZdarzen = false;
this.Cursor = Cursors.Default;
}
private void sZERTextBox_Validating(object sender, CancelEventArgs e)
{
if (!sZERTextBox.Text.Equals(""))
{
if (!Regex.IsMatch(sZERTextBox.Text, "^[0-8]{1}$", RegexOptions.IgnoreCase))
{
e.Cancel = true;
errProvider.SetError((Control)sender, "1-8");
return;
}
}
errProvider.SetError((Control)sender, "");
}
private void wYSTextBox_Validating(object sender, CancelEventArgs e)
{
if (!sZERTextBox.Text.Equals(""))
{
if (!Regex.IsMatch(sZERTextBox.Text, "^[0-8]{1}$", RegexOptions.IgnoreCase))
{
e.Cancel = true;
errProvider.SetError((Control)sender, "1-8");
return;
}
}
errProvider.SetError((Control)sender, "");
}
private void promocjaComboBox_TextChanged(object sender, EventArgs e)
{
if (obslugaZdarzen)
{
if (promocjaComboBox.Text == "")
{
if (rEKLAMABindingSource.Current != null)
{
DataRowView row = (DataRowView)rEKLAMABindingSource.Current;
row["PROMOCJA"] = DBNull.Value;
rEKLAMABindingSource.EndEdit();
}
}
}
}
private void zATWIERDZONO_DO_DRUKUCheckBox_Click(object sender, EventArgs e)
{
if (zATWIERDZONO_DO_DRUKUCheckBox.Checked)
{
if (rEKLAMABindingSource.Current != null)
{
DataRowView row = (DataRowView)rEKLAMABindingSource.Current;
sprawdzBledy();
if (!User.getUser().St_kierownik)
{
if (Convert.ToDouble(row["rabat"]) > this.maksymalnyRabat)
{
MessageBox.Show("Rabat wyższy niż " + this.maksymalnyRabat.ToString("P") + ". Zamówienie musi być zatwierdzone do druku przez kierownika");
zATWIERDZONO_DO_DRUKUCheckBox.CheckState = CheckState.Unchecked;
}
if (nAZWYMODULOWBindingSource.Current != null)
{
DataRowView r = (DataRowView)nAZWYMODULOWBindingSource.Current;
//decimal cenaJedn = Convert.ToDecimal(row["CENA JEDN"]);
decimal cenaMinMod = Convert.ToDecimal(r["CENA_MIN"]);
decimal cenaJedn = Convert.ToDecimal(row["NETTO"]) / (Convert.ToDecimal(row["SZER"]) * Convert.ToDecimal(row["WYS"]) * Convert.ToDecimal(row["KROTNOŚĆ"]));
cenaJedn = Math.Round(cenaJedn, 2);
if (cenaJedn < cenaMinMod)
{
MessageBox.Show("Cena modułu niższa niż cena cennikowa. Zamówienie musi być zatwierdzone do druku przez kierownika");
zATWIERDZONO_DO_DRUKUCheckBox.CheckState = CheckState.Unchecked;
}
}
string typ = Convert.ToString(row["typ"]);
if ((typ == "BEZPŁATNA") || (typ == "BARTER") || (typ == "REKLAMACJA"))
{
MessageBox.Show("Zamówienie musi być zatwierdzone do druku przez kierownika");
zATWIERDZONO_DO_DRUKUCheckBox.CheckState = CheckState.Unchecked;
}
}
}
}
}
private void pROCENT_PROWIZJITextBox_Leave(object sender, EventArgs e)
{
rEKLAMABindingSource.EndEdit();
}
///
/// Blokuje część formuklarze w zależności od stanu zamówienia i praw użytkownika...
///
private void OrderDetails_Shown(object sender, EventArgs e)
{
// BindingSource sa resetowane, by ustawily sie wszytskie filtry
kurs = null;
obslugaZdarzen = true;
tYTULComboBox.SelectedIndex = -1;
rEKLAMABindingSource.ResetBindings(false);
mOD_TYPComboBox.SelectedIndex = -1;
rEKLAMABindingSource.ResetBindings(false);
ogl_dzialComboBox.SelectedIndex = -1;
rEKLAMABindingSource.ResetBindings(false);
ogl_rozdzialComboBox.SelectedIndex = -1;
rEKLAMABindingSource.ResetBindings(false);
blokowanieZrealizowanychEmisji();
zmiany();
init();
}
private void ukazeSieDataGridView_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
if (rEKLAMAUKAZESIEWNRBindingSource.Current != null)
{
rEKLAMAUKAZESIEWNRBindingSource.RemoveCurrent();
}
blokowanieZrealizowanychEmisji();
}
private void ukazeSieDataGridView_Leave(object sender, EventArgs e)
{
Validate();
rEKLAMAUKAZESIEWNRBindingSource.EndEdit();
liczbaEmisjiLabel.Text = rEKLAMAUKAZESIEWNRBindingSource.List.Count.ToString();
if (rEKLAMABindingSource.Current != null)
{
DataRowView row = (DataRowView)rEKLAMABindingSource.Current;
if (row["ID_FAKTURY"] == DBNull.Value)
{
kROTNOSCTextBox.Text = rEKLAMAUKAZESIEWNRBindingSource.List.Count.ToString();
}
}
}
///
/// Blokuje emisje,które już się ukazały.
///
private void blokowanieZrealizowanychEmisji()
{
// ukazeSieDataGridView.Enabled = true;
foreach (DataGridViewRow r in ukazeSieDataGridView.Rows)
{
REKLAMADataSet.UKAZE_SIE_W_NRRow em =
(REKLAMADataSet.UKAZE_SIE_W_NRRow)((DataRowView)r.DataBoundItem).Row;
//anulowana
if (em.status == 2)
{
r.ReadOnly = true;
r.DefaultCellStyle.ForeColor = Color.Red;
}
foreach (DataGridViewRow s in ukazaloSieDataGridView.Rows)
{
if (em.Nr_Wydania.ToString() == s.Cells["NR_WYDANIA"].Value.ToString())
{
r.ReadOnly = true;
r.DefaultCellStyle.BackColor = Color.MintCream;
this.juzSieUkazaloWgazecie = true;
break;
}
}
}
}
public void zablokujGroupBoxa(GroupBox g)
{
foreach (Control c in g.Controls)
{
if (c is TextBox)
{
((TextBox)c).ReadOnly = true;
}
if (c is ComboBox)
{
((ComboBox)c).Enabled = false;
}
}
}
public void odblokujGroupBoxa(GroupBox g)
{
foreach (Control c in g.Controls)
{
if (c is TextBox)
{
((TextBox)c).ReadOnly = false;
}
if (c is ComboBox)
{
((ComboBox)c).Enabled = true;
}
}
}
///
/// Blokuje kontrolki związane z danymi zamówienia
///
private void zablokujGroupBoxy()
{
zablokujGroupBoxa(groupBox1);
if (!(User.getUser().St_produkcja | User.getUser().St_kierownik))
{
zablokujGroupBoxa(groupBox2);
}
zablokujGroupBoxa(groupBox3);
zablokujGroupBoxa(groupBox4);
//lokalizacje można zmieniać
sTRONATextBox.ReadOnly = false;
}
///
/// Odblokuje kontrolki związane z danymi zamówienia
///
private void odblokujGroupBoxy()
{
odblokujGroupBoxa(groupBox1);
odblokujGroupBoxa(groupBox2);
odblokujGroupBoxa(groupBox3);
odblokujGroupBoxa(groupBox4);
}
///
/// Buduje nr zamowienia dla danego handlowca
///
private string nrRek(string symAgenta, string tagAgenta)
{
if (User.getUser().St_handlowiec)
{
string nr = Baza_Reklam.Utils.numerNowejReklamy(symAgenta, tagAgenta).ToString();
switch (nr.Length)
{
case 1:
nr = tagAgenta + "00" + nr + "_00";
break;
case 2:
nr = tagAgenta + "0" + nr + "_00";
break;
case 3:
nr = tagAgenta + nr + "_00";
break;
}
return nr;
}
return "";
}
///
/// Sprawdza poprawność zamówienia... pewnie niekompletnie
///
private void sprawdzBledy()
{
if (ogl_dzialComboBox.SelectedValue == null)
{
MessageBox.Show("Wybierz dział.");
zATWIERDZONO_DO_DRUKUCheckBox.CheckState = CheckState.Unchecked;
return;
}
if (mOD_TYPComboBox.Text == "")
{
MessageBox.Show("Wybierz rodzaj modułu.");
zATWIERDZONO_DO_DRUKUCheckBox.CheckState = CheckState.Unchecked;
return;
}
string grzbiet = grzbietComboBox.Text;
string tytul = tYTULComboBox.Text;
if (grzbiet == "")
{
MessageBox.Show("Wybierz grzbiet.");
zATWIERDZONO_DO_DRUKUCheckBox.CheckState = CheckState.Unchecked;
return;
}
else
{
if (!grzbiet.Contains(tytul))
{
MessageBox.Show("Wybierz poprawny grzbiet.");
zATWIERDZONO_DO_DRUKUCheckBox.CheckState = CheckState.Unchecked;
return;
}
}
//lokalizacja
if (sTRONATextBox.Text == "")
{
MessageBox.Show("Podaj lokalizację.");
zATWIERDZONO_DO_DRUKUCheckBox.CheckState = CheckState.Unchecked;
return;
}
if (rEKLAMAUKAZESIEWNRBindingSource.List.Count == 0)
{
MessageBox.Show("Brak wyznaczonych emisji.");
zATWIERDZONO_DO_DRUKUCheckBox.CheckState = CheckState.Unchecked;
return;
}
}
///
/// Przelicza wartość zamówienia.
///
private void przelicz()
{
DataRowView row = (DataRowView)rEKLAMABindingSource.Current;
if ((row["KROTNOŚĆ"] != null) && (row["CENA JEDN"] != null) && (row["VAT"] != null)
&& (row["PROCENT PROWIZJI"] != null) && (row["RABAT"] != null)
&& (row["SZER"] != null) && (row["WYS"] != null))
{
int szer = Convert.ToInt32(row["SZER"]);
int wys = Convert.ToInt32(row["WYS"]);
int krotnosc = Convert.ToInt32(row["KROTNOŚĆ"]);
if (krotnosc == 0)
{
MessageBox.Show("Ilość emisji równa się 0");
return;
}
decimal cenaJednostkowa = Convert.ToDecimal(row["CENA JEDN"]);
decimal vatProcent = Convert.ToDecimal(row["VAT"]);
decimal prowizjaProcent = Convert.ToDecimal(row["PROCENT PROWIZJI"]);
decimal rabatProcent = Convert.ToDecimal(row["RABAT"]);
//rabatWartosc
decimal rabatWartosc = rabatProcent * cenaJednostkowa;
rabatWartosc = Math.Round(rabatWartosc, 2);
//netto
decimal netto = (cenaJednostkowa - rabatWartosc) * krotnosc;
netto = Math.Round(netto, 2);
nettoBezBOTextBox.Text = String.Format("{0:C}", netto);
//cena modulu
decimal cenaModulu = netto / (szer * wys * krotnosc);
cenaModulu = Math.Round(cenaModulu, 2);
if (Convert.ToBoolean(row["wyroznienie"]) == true)
{
row["wyroznienie_procent"] = 0.15M;
decimal kwotaWyroznienia = Math.Round(netto * 0.15M, 2);
row["wyroznienie_kwota"] = kwotaWyroznienia;
netto = netto + kwotaWyroznienia;
}
else
{
row["wyroznienie_procent"] = 0;
row["wyroznienie_kwota"] = 0;
}
//vatWartosc
decimal vatWartosc = vatProcent * netto;
vatWartosc = Math.Round(vatWartosc, 2);
//brutto
decimal brutto = netto + vatWartosc;
brutto = Math.Round(brutto, 2);
//prowizja
decimal prowizjaWartosc = prowizjaProcent * netto;
prowizjaWartosc = Math.Round(prowizjaWartosc, 2);
cenaModuluLabel.Text = String.Format("{0:C}", cenaModulu);
row["RABAT WARTOŚĆ"] = rabatWartosc.ToString();
row["NETTO"] = netto.ToString();
row["BRUTTO"] = brutto.ToString();
row["PVAT"] = vatWartosc.ToString();
row["PROWIZJA"] = prowizjaWartosc.ToString();
rEKLAMABindingSource.EndEdit();
}
}
///
/// Przelicza kwotę w złotówkach na wybraną walutę.
///
private void przeliczNaWalute(SLOWNIKDataSet.Kursy_WalutRow kurs)
{
if (rEKLAMABindingSource.Current != null)
{
DataRowView row = (DataRowView)rEKLAMABindingSource.Current;
if (row["BRUTTO"] != DBNull.Value)
{
decimal brutto = Convert.ToDecimal(row["BRUTTO"]);
brutto = Math.Round(brutto, 2);
// waluty
row["waluta_tabela_nr"] = kurs.Numer_Tabeli;
row["waluta_Przelicznik"] = kurs.przelicznik;
row["waluta_kurs_z_dnia"] = kurs.Data_Publikacji;
row["Brutto_Euro_Miano"] = kurs.Kod_Waluty;
//zmiana kursu dla poznania
if (User.getUser().IdAgencji == 6)
{
row["waluta_kurs"] = kurs.Kurs_Sredni_Poznan;
row["Brutto_Euro"] = Math.Round(brutto / Convert.ToDecimal(kurs.Kurs_Sredni_Poznan) * Convert.ToInt32(kurs.przelicznik), 2);
}
else
{
row["waluta_kurs"] = kurs.Kurs_Sredni;
row["Brutto_Euro"] = Math.Round(brutto / Convert.ToDecimal(kurs.Kurs_Sredni) * Convert.ToInt32(kurs.przelicznik), 2);
}
// zmiana domyślnego konta do faktury dla EUR
if (User.getUser().IdAgencji != 4 & (row["Brutto_Euro_Miano"].ToString() == "EUR"))
{
if (User.getUser().IdAgencji == 1223940396 | User.getUser().IdAgencji == 1223940398)
{
row["FAKTURA ID KONTA"] = 3;
}
else
{
row["FAKTURA ID KONTA"] = 5;
}
}
rEKLAMABindingSource.EndEdit();
}
}
}
///
/// Przelicza kwotę w walucie na złotówki.
///
private void przeliczWaluteNaZlotowki(SLOWNIKDataSet.Kursy_WalutRow kurs)
{
DataRowView row = (DataRowView)rEKLAMABindingSource.Current;
if (row["Brutto_Euro"] != DBNull.Value)
{
// waluty
row["waluta_tabela_nr"] = kurs.Numer_Tabeli;
row["waluta_Przelicznik"] = kurs.przelicznik;
row["waluta_kurs"] = kurs.Kurs_Sredni;
row["waluta_kurs_z_dnia"] = kurs.Data_Publikacji;
row["Brutto_Euro_Miano"] = kurs.Kod_Waluty;
//zmiana kursu dla poznania
if (User.getUser().IdAgencji == 6)
{
row["waluta_kurs"] = kurs.Kurs_Sredni_Poznan;
}
int szer = Convert.ToInt32(row["SZER"]);
int wys = Convert.ToInt32(row["WYS"]);
int krotnosc = Convert.ToInt32(row["KROTNOŚĆ"]);
if (krotnosc == 0)
{
MessageBox.Show("Ilość emisji równa się 0");
return;
}
decimal vatProcent = Convert.ToDecimal(row["VAT"]);
decimal prowizjaProcent = Convert.ToDecimal(row["PROCENT PROWIZJI"]);
decimal rabatProcent = Convert.ToDecimal(row["RABAT"]);
//przeliczanie z waluty na zlotowki
decimal brutto = Math.Round(Convert.ToDecimal(row["Brutto_Euro"]) * Convert.ToDecimal(row["waluta_kurs"]) / Convert.ToInt32(row["waluta_Przelicznik"]), 2);
decimal netto = brutto / (1 + vatProcent);
netto = Math.Round(netto, 2);
decimal nettoZBO = netto;
if (Convert.ToBoolean(row["wyroznienie"]) == true)
{
row["wyroznienie_procent"] = 0.15M;
decimal nettoBezBO = Math.Round(netto / 1.15M, 2);
row["wyroznienie_kwota"] = Math.Round(netto - nettoBezBO, 2);
netto = nettoBezBO;
}
else
{
row["wyroznienie_procent"] = 0;
row["wyroznienie_kwota"] = 0;
}
nettoBezBOTextBox.Text = String.Format("{0:C}", netto);
decimal vatWartosc = vatProcent * nettoZBO;
vatWartosc = Math.Round(vatWartosc, 2);
decimal prowizjaWartosc = prowizjaProcent * nettoZBO;
prowizjaWartosc = Math.Round(prowizjaWartosc, 2);
decimal rabatWartosc = netto * rabatProcent / (krotnosc * (1 - rabatProcent));
rabatWartosc = Math.Round(rabatWartosc, 2);
decimal cenaJednostkowa = (netto / (decimal)krotnosc) + rabatWartosc;
cenaJednostkowa = Math.Round(cenaJednostkowa, 2);
//cena modulu
decimal cenaModulu = netto / (szer * wys * krotnosc);
cenaModulu = Math.Round(cenaModulu, 2);
cenaModuluLabel.Text = String.Format("{0:C}", cenaModulu);
row["RABAT WARTOŚĆ"] = rabatWartosc.ToString();
row["NETTO"] = nettoZBO.ToString();
row["BRUTTO"] = brutto.ToString();
row["PVAT"] = vatWartosc.ToString();
row["PROWIZJA"] = prowizjaWartosc.ToString();
row["CENA JEDN"] = cenaJednostkowa.ToString();
// zmiana domyślnego konta do faktury dla EUR
if (User.getUser().IdAgencji != 4 & (row["Brutto_Euro_Miano"].ToString() == "EUR"))
{
if (User.getUser().IdAgencji == 1223940396 | User.getUser().IdAgencji == 1223940398)
{
row["FAKTURA ID KONTA"] = 3;
}
else
{
row["FAKTURA ID KONTA"] = 5;
}
}
rEKLAMABindingSource.EndEdit();
}
}
public void dodajNoweZamowienie(int custId, string kodKlienta)
{
this.nowyRekord = true;
this.bylyZmiany = false;
this.juzSieUkazaloWgazecie = false;
this.numeryReklam.Clear();
string nr;
foreach (DataRowView r in lISTATYTULOWBindingSource.List)
{
nr = nrRek(User.getUser().Symbol_agenta, r["SYMB2"].ToString().Trim() + User.getUser().Kod_agenta);
this.numeryReklam.Add((string)r["SYMB"], nr);
}
//autosalon śląski
nr = nrRek(User.getUser().Symbol_agenta, "G" + User.getUser().Kod_agenta);
this.numeryReklam.Add("slaski", nr);
this.rEKLAMADataSet.REKLAMA.Clear();
this.rEKLAMADataSet.UKAZE_SIE_W_NR.Clear();
this.rEKLAMADataSet.Reklama_Info_Dod.Clear();
this.customerId = custId;
DataView datatable = (DataView)this.rEKLAMABindingSource.List;
DataRowView row = datatable.AddNew();
row["CustomerId"] = this.customerId;
row["DATA ZAMÓWIENIA"] = DateTime.Now;
row["nick name"] = kodKlienta;
if (Utils.czyKlientMaNrVIES(this.customerId))
{
row["VAT"] = 0;
}
if (User.getUser().St_handlowiec | User.getUser().St_subhandlowiec)
{
row["symbol akwizytora"] = User.getUser().Symbol_agenta;
row["ID Reklamy"] = this.numeryReklam["AMT"];
//Katowice
if (User.getUser().IdAgencji == 4)
{
row["customerId_Sub"] = 678;
}
//Poznan
if (User.getUser().IdAgencji == 6)
{
row["customerId_Sub"] = 18845;
}
}
row["USERID"] = User.getUser().Login;
Validate();
rEKLAMABindingSource.EndEdit();
rEKLAMATableAdapter.Update(rEKLAMADataSet.REKLAMA);
rEKLAMABindingSource.MoveLast();
}
public void pokazSzczegolyZamowienia(int rekId)
{
this.nowyRekord = false;
this.bylyZmiany = false;
this.reklamaId = rekId;
this.rEKLAMATableAdapter.ClearBeforeFill = true;
this.rEKLAMATableAdapter.FillByReklamaId(this.rEKLAMADataSet.REKLAMA, reklamaId);
this.reklama_Info_DodTableAdapter.FillByReklamaId(this.rEKLAMADataSet.Reklama_Info_Dod, reklamaId);
this.rEKLAMA_STRONATableAdapter.FillByReklamaId(this.rEKLAMADataSet.REKLAMA_STRONA, this.reklamaId);
this.uKAZE_SIE_W_NRTableAdapter.FillByReklamaId(this.rEKLAMADataSet.UKAZE_SIE_W_NR, this.reklamaId);
}
public void wznowZamowienie(int rekId)
{
this.nowyRekord = true;
this.bylyZmiany = false;
this.juzSieUkazaloWgazecie = false;
REKLAMADataSet.REKLAMADataTable old = this.rEKLAMATableAdapter.GetDataByReklamaId(rekId);
DataRow oldRow = old.Rows[0];
this.rEKLAMADataSet.REKLAMA.Clear();
this.rEKLAMADataSet.UKAZE_SIE_W_NR.Clear();
this.rEKLAMADataSet.Reklama_Info_Dod.Clear();
DataView datatable = (DataView)this.rEKLAMABindingSource.List;
DataRowView newRow = datatable.AddNew();
this.customerId = Convert.ToInt32(oldRow["CustomerID"]);
newRow["CustomerID"] = oldRow["CustomerID"];
newRow["DATA ZAMÓWIENIA"] = DateTime.Now;
newRow["SYMBOL AKWIZYTORA"] = oldRow["SYMBOL AKWIZYTORA"];
newRow["ID REKLAMY"] = oldRow["ID REKLAMY"];
newRow["TYTUŁ"] = oldRow["TYTUŁ"];
newRow["TYP"] = oldRow["TYP"];
newRow["NICK NAME"] = oldRow["NICK NAME"];
newRow["SZER"] = oldRow["SZER"];
newRow["WYS"] = oldRow["WYS"];
newRow["MOD_TYP"] = oldRow["MOD_TYP"];
newRow["KROTNOŚĆ"] = oldRow["KROTNOŚĆ"];
newRow["ODSTĘP"] = oldRow["ODSTĘP"];
newRow["KOLOR"] = oldRow["KOLOR"];
newRow["RABAT"] = oldRow["RABAT"];
newRow["CENA JEDN"] = oldRow["CENA JEDN"];
newRow["VAT"] = oldRow["VAT"];
newRow["PROCENT PROWIZJI"] = oldRow["PROCENT PROWIZJI"];
newRow["PROMOCJA"] = oldRow["PROMOCJA"];
newRow["GRZBIET"] = oldRow["GRZBIET"];
newRow["STRONA"] = oldRow["STRONA"];
newRow["customerId_Sub"] = oldRow["customerId_Sub"];
newRow["ogl_dzial"] = oldRow["ogl_dzial"];
newRow["ogl_rozdzial"] = oldRow["ogl_rozdzial"];
//zmiana numerka
try
{
string starySym = newRow["Id reklamy"].ToString();
string symPart1 = starySym.Substring(0, starySym.Length - 2);
string symPart2 = starySym.Substring(starySym.Length - 2, 2);
int nowyNr = Int32.Parse(symPart2);
nowyNr++;
switch (nowyNr.ToString().Length)
{
case 1:
newRow["Id reklamy"] = symPart1 + "0" + nowyNr.ToString();
break;
default:
newRow["Id reklamy"] = symPart1 + nowyNr.ToString();
break;
}
}
catch (Exception e1)
{
newRow["Id reklamy"] = oldRow["Id reklamy"];
}
this.numeryReklam.Clear();
string nr;
foreach (DataRowView r in lISTATYTULOWBindingSource.List)
{
nr = nrRek(User.getUser().Symbol_agenta, r["SYMB2"].ToString().Trim() + User.getUser().Kod_agenta);
this.numeryReklam.Add((string)r["SYMB"], nr);
}
//autosalon śląski
nr = nrRek(User.getUser().Symbol_agenta, "G" + User.getUser().Kod_agenta);
this.numeryReklam.Add("slaski", nr);
Validate();
rEKLAMABindingSource.EndEdit();
rEKLAMATableAdapter.Update(rEKLAMADataSet.REKLAMA);
// rEKLAMABindingSource.MoveLast();
}
private void dataGridView1_RowLeave(object sender, DataGridViewCellEventArgs e)
{
try
{
DataRowView rowView = dataGridView1[e.ColumnIndex, e.RowIndex].OwningRow.DataBoundItem as DataRowView;
if ((rowView != null) && rowView.IsNew)
{
rowView["Data"] = DateTime.Now;
}
}
catch (Exception e1)
{
throw e1;
}
dataGridView1.Refresh();
}
private void dataGridView1_Leave(object sender, EventArgs e)
{
this.dataGridView1.EndEdit();
Validate();
this.rEKLAMAReklamaInfoDodBindingSource.EndEdit();
}
private void OrderDetails_FormClosing(object sender, FormClosingEventArgs e)
{
if (nowyRekord)
{
if (rEKLAMABindingSource.Current != null)
{
rEKLAMABindingSource.RemoveCurrent();
rEKLAMABindingSource.EndEdit();
rEKLAMATableAdapter.Update(this.rEKLAMADataSet.REKLAMA);
}
}
else
{
//usuwa zmiany w zleceniu
rEKLAMADataSet.REKLAMA.RejectChanges();
rEKLAMADataSet.UKAZE_SIE_W_NR.RejectChanges();
}
this.obslugaZdarzen = false;
liczbaEmisjiLabel.Text = "-";
this.nettoBezBOTextBox.Clear();
this.kurs = null;
this.DialogResult = bylyZmiany ? DialogResult.OK : DialogResult.Cancel;
}
///
/// Koloruje formularz, blokuje pola etc.
///
private void zmiany()
{
if (this.rEKLAMABindingSource.Current != null)
{
DataRowView reklamRow = (DataRowView)this.rEKLAMABindingSource.Current;
bool zablokujProwizje = Convert.ToBoolean(reklamRow["zablokuj_prowizje"]);
bool zatwiedzonoDoDruku = reklamRow["ZATWIERDZONO DO DRUKU"] == DBNull.Value ? false : Convert.ToBoolean(reklamRow["ZATWIERDZONO DO DRUKU"]);
bool kierownikZatwierdzil = reklamRow["kier_zatwierdzil"] == DBNull.Value ? false : Convert.ToBoolean(reklamRow["kier_zatwierdzil"]);
bool rabatPonad30 = (bool)(Convert.ToDouble(reklamRow["rabat"]) > this.maksymalnyRabat);
bool wystawionoFakture = reklamRow["FAKTURA WYSTAWIONO"] == DBNull.Value ? false : Convert.ToBoolean(reklamRow["FAKTURA WYSTAWIONO"]);
//blokowanie prowizji
pROWIZJATextBox.ReadOnly = zablokujProwizje;
pROCENT_PROWIZJITextBox.ReadOnly = zablokujProwizje;
//oznaczenie ZD
ZDpanel.BackColor = zatwiedzonoDoDruku ? Color.LightGreen : Color.Red;
//UPRAWnienia
kier_notatkaTextBox.ReadOnly = !User.getUser().St_kierownik;
kier_zatwierdzilCheckBox.Enabled = User.getUser().St_kierownik;
zablokuj_prowizjeCheckBox.Enabled = User.getUser().St_kierownik;
if (!User.getUser().St_kierownik)
{
cENA_JEDNTextBox.ReadOnly = zatwiedzonoDoDruku;
rABATTextBox.ReadOnly = zatwiedzonoDoDruku;
if (wystawionoFakture)
{
zablokujGroupBoxy();
}
else
{
odblokujGroupBoxy();
}
}
blokowanieZrealizowanychEmisji();
}
}
private void ukazeSieDataGridView_KeyUp(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.C)
{
if (this.ukazeSieDataGridView.GetCellCount(DataGridViewElementStates.Selected) > 0)
{
try
{
// Add the selection to the clipboard.
Clipboard.SetDataObject(
this.ukazeSieDataGridView.GetClipboardContent());
}
catch (System.Runtime.InteropServices.ExternalException)
{
}
}
}
if (e.Control && e.KeyCode == Keys.V)
{
Validate();
rEKLAMAUKAZESIEWNRBindingSource.EndEdit();
//czy user ma uprawnienia do dodawania wierszy
if (ukazeSieDataGridView.AllowUserToAddRows)
{
char[] rowSplitter = { '\r', '\n' };
char[] columnSplitter = { '\t' };
IDataObject dataInClipboard = Clipboard.GetDataObject();
string stringInClipboard = (string)dataInClipboard.GetData(DataFormats.Text);
string[] rowsInClipboard = stringInClipboard.Split(rowSplitter, StringSplitOptions.RemoveEmptyEntries);
string nrWydania = "0";
for (int iRow = 0; iRow < rowsInClipboard.Length; iRow++)
{
string[] valuesInRow = rowsInClipboard[iRow].Split(columnSplitter);
for (int i = 0; i <= valuesInRow.Length - 1; i++)
{
if (valuesInRow[i] != "")
{
nrWydania = valuesInRow[i];
try
{
DataView datatable = (DataView)this.rEKLAMAUKAZESIEWNRBindingSource.List;
DataRowView row = datatable.AddNew();
row["Nr Wydania"] = nrWydania;
rEKLAMAUKAZESIEWNRBindingSource.EndEdit();
}
catch (Exception e1)
{
Debugger.Log(0, "ttt", e1.Message);
}
}
}
}
}
}
}
private void ogl_dzialComboBox_SelectedValueChanged(object sender, EventArgs e)
{
if (obslugaZdarzen)
{
if ((ogl_dzialComboBox.SelectedValue != null) && (lISTATYTULOWBindingSource.Current != null))
{
DataRowView row = (DataRowView)lISTATYTULOWBindingSource.Current;
string filter = "dzial=" + ogl_dzialComboBox.SelectedValue.ToString();
switch (tYTULComboBox.SelectedValue.ToString())
{
case "AMT":
filter += " AND TYTUŁ='2'";
break;
case "GS":
filter += " AND TYTUŁ='1'";
break;
case "AGRO":
filter += " AND TYTUŁ='7'";
break;
case "adMot":
filter += " AND TYTUŁ='6'";
break;
default:
break;
}
oglrozdzialyBindingSource.Filter = filter;
DataRowView Rekrow = (DataRowView)rEKLAMABindingSource.Current;
if (Rekrow["ogl_rozdzial"] == DBNull.Value)
{
ogl_rozdzialComboBox.SelectedIndex = -1;
ogl_rozdzialComboBox.SelectedIndex = -1;
}
}
}
}
private void EmailButton_Click(object sender, EventArgs e)
{
StringBuilder tresc = new StringBuilder();
tresc.Append("Potwierdzamy przyjęcie podpisanego zamówienia na publikację reklamy w ");
if (tYTULComboBox.Text != "adMoto")
{
tresc.Append(" gazecie \"" + tYTULComboBox.Text + "\"");
}
else
{
tresc.Append(" portalu internetowym " + tYTULComboBox.Text);
}
tresc.Append(" o wartości " + bRUTTOTextBox.Text + ".");
//String.Format("{0:P}", cevent.Value);
tresc.AppendLine("");
tresc.AppendLine("Reklamy zostaną wyemitowane zgodnie z umową w wydaniu(-ach) nr: \n");
foreach (DataGridViewRow r in ukazeSieDataGridView.Rows)
{
if (r.Cells["nrWydaniaDataGridViewTextBoxColumn"].Value != null)
{
tresc.Append(r.Cells["nrWydaniaDataGridViewTextBoxColumn"].Value.ToString() + ", ");
}
}
tresc.Remove(tresc.Length - 2, 1);
tresc.AppendLine(" w/w tytułu i udokumentowane fakturą VAT przesłaną na wskazany adres.");
MailForm mf = new MailForm(Utils.customerId(this.reklamaId), "Potwierdzenie złożenia zamówienia " + iD_REKLAMYTextBox.Text, "", tresc.ToString());
mf.ShowDialog();
}
private void button3_Click(object sender, EventArgs e)
{
ogl_rozdzialComboBox.SelectedIndex = -1;
ogl_rozdzialComboBox.SelectedIndex = -1;
}
private void kalendarzButton_Click(object sender, EventArgs e)
{
if (tYTULComboBox.SelectedValue != null)
{
// nie moze byc Copy() bo moze zawierac wiersza do skasowania
REKLAMADataSet.UKAZE_SIE_W_NRDataTable table =
(REKLAMADataSet.UKAZE_SIE_W_NRDataTable)
this.rEKLAMADataSet.UKAZE_SIE_W_NR.Copy();
REKLAMADataSet.REKLAMARow reklama = (REKLAMADataSet.REKLAMARow)
((DataRowView)(this.rEKLAMABindingSource.Current)).Row;
KalendarzEmisji kalendarz =
new KalendarzEmisji(tYTULComboBox.SelectedValue.ToString(), reklama, table);
if (kalendarz.ShowDialog() == DialogResult.OK)
{
DataRow[] rows = kalendarz.Emisje.Select("1=1", "[nr wydania] asc");
// this.rEKLAMADataSet.UKAZE_SIE_W_NR.Clear();
for (int i = 0; i < rows.Length; i++)
{
if (rEKLAMADataSet.UKAZE_SIE_W_NR.FindByID(
Convert.ToDecimal(rows[i]["id"])) == null)
{
this.rEKLAMADataSet.UKAZE_SIE_W_NR.ImportRow(
(REKLAMADataSet.UKAZE_SIE_W_NRRow)rows[i]);
}
}
kalendarz.Close();
ukazeSieDataGridView.EndEdit();
rEKLAMAUKAZESIEWNRBindingSource.EndEdit();
// int il = this.rEKLAMADataSet.UKAZE_SIE_W_NR.Count;
int il = ukazeSieDataGridView.Rows.Count;
this.kROTNOSCTextBox.Text = il.ToString();
this.liczbaEmisjiLabel.Text = il.ToString();
rEKLAMABindingSource.EndEdit();
PrzeliczCaleZamowienie();
}
}
}
private void nowaEmisja(object sender, DataTableNewRowEventArgs e)
{
((REKLAMADataSet.UKAZE_SIE_W_NRRow)e.Row).dataDodania = DateTime.Today;
}
private void ukazeSieDataGridView_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e)
{
DataGridViewRow clickedRow = ukazeSieDataGridView.Rows[e.RowIndex];
if (!ukazeSieDataGridView.SelectedRows.Contains(clickedRow))
{
e.ContextMenuStrip = null;
return;
}
zmienToolStripMenuItem.Visible = true;
usunToolStripMenuItem.Visible = true;
anulujToolStripMenuItem.Visible = false;
if (ukazeSieDataGridView.SelectedRows.Count == 1)
{
if (clickedRow.Selected)
{
if (clickedRow.DefaultCellStyle.BackColor == Color.MintCream)
{
zmienToolStripMenuItem.Visible = false;
usunToolStripMenuItem.Visible = false;
anulujToolStripMenuItem.Visible = false;
e.ContextMenuStrip = emisjeContextMenuStrip;
return;
}
DataRowView emisja = (DataRowView)ukazeSieDataGridView.Rows[e.RowIndex].DataBoundItem;
REKLAMADataSet.UKAZE_SIE_W_NRRow emisjaRow = (REKLAMADataSet.UKAZE_SIE_W_NRRow)emisja.Row;
if (emisjaRow.zafakturowana)
{
zmienToolStripMenuItem.Visible = true;
usunToolStripMenuItem.Visible = false;
anulujToolStripMenuItem.Visible = true;
e.ContextMenuStrip = emisjeContextMenuStrip;
return;
}
}
}
else if (ukazeSieDataGridView.SelectedRows.Count > 1)
{
zmienToolStripMenuItem.Visible = false;
usunToolStripMenuItem.Visible = true;
anulujToolStripMenuItem.Visible = false;
foreach (DataGridViewRow r in ukazeSieDataGridView.SelectedRows)
{
if (r.DefaultCellStyle.BackColor == Color.MintCream)
{
usunToolStripMenuItem.Visible = false;
break;
}
if (Convert.ToBoolean(((DataRowView)r.DataBoundItem)["zafakturowana"]) == true)
{
usunToolStripMenuItem.Visible = false;
break;
}
}
e.ContextMenuStrip = emisjeContextMenuStrip;
return;
}
e.ContextMenuStrip = emisjeContextMenuStrip;
}
public void usunEmisje(object sender, EventArgs e)
{
foreach (DataGridViewRow r in ukazeSieDataGridView.SelectedRows)
{
ukazeSieDataGridView.Rows.Remove(r);
}
ukazeSieDataGridView.EndEdit();
rEKLAMAUKAZESIEWNRBindingSource.EndEdit();
// int il = this.rEKLAMADataSet.UKAZE_SIE_W_NR.Count;
int il = ukazeSieDataGridView.Rows.Count;
this.kROTNOSCTextBox.Text = il.ToString();
this.liczbaEmisjiLabel.Text = il.ToString();
rEKLAMABindingSource.EndEdit();
PrzeliczCaleZamowienie();
}
private void anulujEmisje(object sender, EventArgs e)
{
if (ukazeSieDataGridView.CurrentCell != null)
{
DataGridViewRow r1 = ukazeSieDataGridView.CurrentCell.OwningRow;
REKLAMADataSet.UKAZE_SIE_W_NRRow row = (REKLAMADataSet.UKAZE_SIE_W_NRRow)(((DataRowView)r1.DataBoundItem).Row);
row.status = 2;
row.dataAnulowania = DateTime.Now;
}
}
private void zmienEmisje(object sender, EventArgs e)
{
if (tYTULComboBox.SelectedValue != null)
{
REKLAMADataSet.UKAZE_SIE_W_NRDataTable table =
(REKLAMADataSet.UKAZE_SIE_W_NRDataTable)
this.rEKLAMADataSet.UKAZE_SIE_W_NR.Copy();
REKLAMADataSet.REKLAMARow reklama = (REKLAMADataSet.REKLAMARow)
((DataRowView)(this.rEKLAMABindingSource.Current)).Row;
KalendarzEmisji kalendarz = new KalendarzEmisji(
tYTULComboBox.SelectedValue.ToString(),
reklama,
table,
(short)ukazeSieDataGridView.CurrentCell.Value);
if (kalendarz.ShowDialog() == DialogResult.OK)
{
if (ukazeSieDataGridView.CurrentCell != null)
{
DataGridViewRow r1 = ukazeSieDataGridView.CurrentCell.OwningRow;
REKLAMADataSet.UKAZE_SIE_W_NRRow row = (REKLAMADataSet.UKAZE_SIE_W_NRRow)(((DataRowView)r1.DataBoundItem).Row);
if (row.zafakturowana && (row.Nr_Wydania != kalendarz.NowaEmisja))
{
rEKLAMADataSet.zmianyEmisji.AddzmianyEmisjiRow(row, row.Nr_Wydania, kalendarz.NowaEmisja, DateTime.Now);
}
row.Nr_Wydania = kalendarz.NowaEmisja;
kalendarz.Close();
row.EndEdit();
this.rEKLAMADataSet.UKAZE_SIE_W_NR.EndInit();
this.rEKLAMAUKAZESIEWNRBindingSource.ResetBindings(false);
}
}
}
}
private void ukazeSieDataGridView_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
if (ukazaloSieDataGridView.Rows.Count > 0)
{
tYTULComboBox.Enabled = false;
}
else
{
tYTULComboBox.Enabled = true;
}
}
private void ukazeSieDataGridView_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
blokowanieZrealizowanychEmisji();
}
private void walutyComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
if (obslugaZdarzen)
{
if (walutyComboBox.SelectedIndex != -1)
{
kurs = PobierzKurs(walutyComboBox.SelectedItem.ToString());
PrzeliczCaleZamowienie();
}
}
}
private void PrzeliczCaleZamowienie()
{
DataRowView row = (DataRowView)rEKLAMABindingSource.Current;
REKLAMADataSet.REKLAMARow reklama = (REKLAMADataSet.REKLAMARow)row.Row;
if (walutyComboBox.SelectedIndex != 0)
{
if (reklama.IsBrutto_EuroNull()){
reklama.Brutto_Euro = 0;
reklama.EndEdit();
}
if (kurs != null)
{
przeliczWaluteNaZlotowki(kurs);
}
else
{
kurs = PobierzKurs(walutyComboBox.SelectedItem.ToString());
if (kurs == null)
{
MessageBox.Show("Wystąpił błąd!");
}
else
{
przeliczWaluteNaZlotowki(kurs);
}
}
}
else
{
if (row["id_faktury"] == DBNull.Value)
{
row["waluta_tabela_nr"] = DBNull.Value;
row["waluta_Przelicznik"] = DBNull.Value;
row["waluta_kurs"] = DBNull.Value;
row["waluta_kurs_z_dnia"] = DBNull.Value;
row["Brutto_Euro"] = DBNull.Value;
row["Brutto_Euro_Miano"] = DBNull.Value;
row["FAKTURA ID KONTA"] = 1;
rEKLAMABindingSource.EndEdit();
przelicz();
}
else
{
MessageBox.Show("Faktura została już wystawiona!");
}
}
}
private SLOWNIKDataSet.Kursy_WalutRow PobierzKurs(string kodWaluty)
{
SLOWNIKDataSet.Kursy_WalutDataTable kursy = kursy_WalutTableAdapter.GetDataByDataPublikacji(
kodWaluty, DateTime.Today);
if (kursy.Count == 0)
{
return null;
}
else
{
return kursy[0];
}
}
private void brutto_EuroTextBox_Leave(object sender, EventArgs e)
{
rEKLAMABindingSource.EndEdit();
PrzeliczCaleZamowienie();
}
private void rABATTextBox_Leave(object sender, EventArgs e)
{
rEKLAMABindingSource.EndEdit();
PrzeliczCaleZamowienie();
}
private void pVATComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
rEKLAMABindingSource.EndEdit();
PrzeliczCaleZamowienie();
}
private void cENA_JEDNTextBox_Leave(object sender, EventArgs e)
{
rEKLAMABindingSource.EndEdit();
PrzeliczCaleZamowienie();
}
private void wyroznienieCheckBox_Click(object sender, EventArgs e)
{
this.rEKLAMABindingSource.EndEdit();
PrzeliczCaleZamowienie();
}
///
/// formatowanie do decimal -> %
///
private void DecimalToProcent(object sender, ConvertEventArgs cevent)
{
if (Convert.ToDecimal(cevent.Value) > 1)
{
// cevent.Value = Convert.ToDecimal(cevent.Value) / 100;
}
cevent.Value = String.Format("{0:P}", cevent.Value);
}
///
/// formatowanie do % -> decimal
///
private void ProcentToDecimal(object sender, ConvertEventArgs cevent)
{
string pom = cevent.Value.ToString();
if (cevent.Value.ToString().EndsWith("%"))
{
pom = cevent.Value.ToString().Substring(0, cevent.Value.ToString().Length - 1);
}
decimal p = Decimal.Parse(pom) / 100;
cevent.Value = p.ToString();
}
private void init()
{
if (rEKLAMABindingSource.Current != null)
{
DataRowView row = (DataRowView)rEKLAMABindingSource.Current;
REKLAMADataSet.REKLAMARow reklama = (REKLAMADataSet.REKLAMARow)row.Row;
//wyliczona cena modulu
double szer = reklama.SZER;
double wys = reklama.WYS;
int krotnosc = reklama.KROTNOŚĆ;
double cenaJednostkowa = reklama.CENA_JEDN;
double vatProcent = reklama.VAT;
double prowizjaProcent = reklama.PROCENT_PROWIZJI;
double rabatProcent = reklama.RABAT;
double rabatWartosc = rabatProcent * cenaJednostkowa;
double netto = (cenaJednostkowa - rabatWartosc) * krotnosc;
double cenaModulu;
if ((szer * wys * krotnosc) != 0)
{
cenaModulu = netto / (szer * wys * krotnosc);
cenaModuluLabel.Text = String.Format("{0:C}", cenaModulu);
}
else
{
cenaModuluLabel.Text = "---";
}
liczbaEmisjiLabel.Text = this.rEKLAMADataSet.UKAZE_SIE_W_NR.Rows.Count.ToString();
this.obslugaZdarzen = false;
if (!reklama.IsBrutto_Euro_MianoNull())
{
walutyComboBox.SelectedItem = reklama.Brutto_Euro_Miano;
}
else
{
walutyComboBox.SelectedIndex = 0; //PLN
}
this.obslugaZdarzen = true;
}
}
}
}