root/Baza Reklam 2 - Faktury/FakturowaniePoznanKatowice.cs @ 708

Wersja 106, 24.5 KB (wprowadzona przez dorota, 17 years temu)
Line 
1using System;
2using System.Collections.Generic;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Text;
7using System.Windows.Forms;
8using System.Globalization;
9using System.Data.SqlClient;
10
11namespace Baza_Reklam
12{
13    public partial class FakturowaniePoznanKatowice : Form
14    {
15        SLOWNIKDataSet.AGENCJERow agencjaPoznan;
16        SLOWNIKDataSet.AGENCJERow agencjaKatowice;
17        SLOWNIKDataSet.AGENCJERow agencjaRedakcja;
18        SLOWNIKDataSet.KONTARow konto;
19
20        REKLAMADataSet.KLIENCIRow klientPoznan;
21        REKLAMADataSet.KLIENCIRow klientKatowice;
22
23        public FakturowaniePoznanKatowice()
24        {
25            InitializeComponent();
26
27            this.fAKTURYTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
28            this.fakturA_DETAILSTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
29            this.klienciTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
30            this.agencjeTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
31            this.kontaTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
32            this.wplatyTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
33
34            dtpZmianaDaty.Value = DateTime.Today;
35            dtpZmianaDaty.MaxDate = DateTime.Today;
36
37            nrTygodniaUpDown.Minimum = 1;
38            nrTygodniaUpDown.Maximum = 53;
39
40            CultureInfo ciCurr = CultureInfo.CurrentCulture;
41            int weekNum = ciCurr.Calendar.GetWeekOfYear(DateTime.Today, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
42
43            nrTygodniaUpDown.Value = weekNum;
44        }
45
46        private void FakturowaniePoznanKatowice_Load(object sender, EventArgs e)
47        {
48            agencjaPoznan = (SLOWNIKDataSet.AGENCJERow)this.agencjeTableAdapter.GetDataByIdAgencji(6)[0];
49            agencjaKatowice = (SLOWNIKDataSet.AGENCJERow)this.agencjeTableAdapter.GetDataByIdAgencji(4)[0];
50            agencjaRedakcja = (SLOWNIKDataSet.AGENCJERow)this.agencjeTableAdapter.GetDataByIdAgencji(2)[0];
51
52            konto = (SLOWNIKDataSet.KONTARow)this.kontaTableAdapter.GetDataById(43)[0];
53
54            klientKatowice = (REKLAMADataSet.KLIENCIRow)this.klienciTableAdapter.GetDataByCustomerId(678)[0];
55            klientPoznan = (REKLAMADataSet.KLIENCIRow)this.klienciTableAdapter.GetDataByCustomerId(18845)[0];
56        }
57
58        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
59        {
60            if (agencjaListBox.SelectedItem != null)
61            {
62                this.fAKTURYTableAdapter.FillByKodAgenta(this.rEKLAMADataSet.FAKTURY,
63                    agencjaListBox.SelectedItem.ToString());
64            }
65        }
66
67        private void fakturaButton_Click(object sender, EventArgs e)
68        {
69            REKLAMADataSet.FAKTURYRow naglowekFaktury = null;
70
71            try
72            {
73                switch (agencjaListBox.SelectedItem.ToString())
74                {
75                    case "POZ":
76                        naglowekFaktury = utworzNaglowekFaktury(klientPoznan, agencjaPoznan);
77                        break;
78                    case "KAT":
79                        naglowekFaktury = utworzNaglowekFaktury(klientKatowice, agencjaKatowice);
80                        break;
81                }
82
83                this.rEKLAMADataSet.FAKTURY.AddFAKTURYRow(naglowekFaktury);
84                utworzPozycjeFaktury(naglowekFaktury);
85                dodajWplate(naglowekFaktury);
86               
87                SqlConnection conn = new SqlConnection(ConnString.getConnString().Value);
88
89                fAKTURYTableAdapter.Connection = conn;
90                fakturA_DETAILSTableAdapter.Connection = conn;
91                wplatyTableAdapter.Connection = conn;
92
93                conn.Open();
94
95                SqlTransaction transaction = conn.BeginTransaction();
96                fAKTURYTableAdapter.AttachTransaction(transaction);
97                fakturA_DETAILSTableAdapter.AttachTransaction(transaction);
98                wplatyTableAdapter.AttachTransaction(transaction);
99
100                try
101                {
102                    fAKTURYTableAdapter.Update(this.rEKLAMADataSet.FAKTURY);
103                    fakturA_DETAILSTableAdapter.Update(this.rEKLAMADataSet.FAKTURA_DETAILS);
104                    wplatyTableAdapter.Update(this.rEKLAMADataSet.Wplaty);
105                    transaction.Commit();
106                    dtpZmianaDaty.Value = DateTime.Today;
107                }
108                catch (Exception e1)
109                {
110                    transaction.Rollback();
111                    conn.Close();
112                    this.rEKLAMADataSet.FAKTURA_DETAILS.Clear();
113                    this.rEKLAMADataSet.FAKTURY.RemoveFAKTURYRow(naglowekFaktury);
114                    this.fAKTURYBindingSource.ResetBindings(false);
115                    this.fAKTURYDataGridView.Refresh();
116                    throw e1;
117                }
118            }
119            catch (Exception e2)
120            {
121                MessageBox.Show("Wyst¹pi³ b³¹d: \n" + e2.ToString());
122            }
123            finally
124            {
125                this.rEKLAMADataSet.FAKTURA_DETAILS.Clear();
126                this.rEKLAMADataSet.Wplaty.Clear();
127                this.fAKTURYBindingSource.ResetBindings(false);
128                this.fAKTURYBindingSource.Sort = "NUMER";
129                this.fAKTURYDataGridView.Refresh();
130            }
131        }
132
133        private void korektaButton_Click(object sender, EventArgs e)
134        {
135              if (fAKTURYBindingSource.Current != null)
136            {
137                this.Cursor = Cursors.WaitCursor;
138
139                DataRowView row = (DataRowView)fAKTURYBindingSource.Current;
140                REKLAMADataSet.FAKTURYRow faktura = (REKLAMADataSet.FAKTURYRow)row.Row;
141                               
142                if (faktura.KOREKTA)
143                {
144                    MessageBox.Show("Nie mo¿na wystawiæ korekty do korekty");
145                    this.Cursor = Cursors.Default;
146                    return;
147                }
148
149                //sprawdzenie czy korekta nie byla juz wystawiona
150                if (!faktura.IsID_FK_KORNull())
151                {
152                    MessageBox.Show("Istnieje ju¿ faktura korekta");
153                 //   return;
154                }
155
156                try
157                {
158                    REKLAMADataSet.FAKTURYRow naglowekKorekty = null;
159
160                    switch (agencjaListBox.SelectedItem.ToString())
161                    {
162                        case "POZ":
163                            naglowekKorekty = utworzNaglowekKorekty(faktura);
164                            break;
165                        case "KAT":
166                            naglowekKorekty = utworzNaglowekKorekty(faktura);
167                            break;
168                    }
169
170                    utworzPozycjeFakturyKorekty(naglowekKorekty);
171
172                    if (!faktura.IsID_FK_KORNull())
173                    {
174                        naglowekKorekty.idFakturyKorekta = faktura.ID_FK_KOR;
175                    }
176           
177                    SqlConnection conn = new SqlConnection(ConnString.getConnString().Value);
178
179                    fAKTURYTableAdapter.Connection = conn;
180                    fakturA_DETAILSTableAdapter.Connection = conn;
181                   
182                    conn.Open();
183
184                    SqlTransaction transaction = conn.BeginTransaction();
185                    fAKTURYTableAdapter.AttachTransaction(transaction);
186                    fakturA_DETAILSTableAdapter.AttachTransaction(transaction);
187                   
188                    try
189                    {
190                        fAKTURYTableAdapter.Update(this.rEKLAMADataSet.FAKTURY);
191
192                        faktura.ID_FK_KOR = naglowekKorekty.ID_FAKTURY;
193                        faktura.EndEdit();
194
195                        fAKTURYTableAdapter.Update(this.rEKLAMADataSet.FAKTURY);
196
197                        fakturA_DETAILSTableAdapter.Update(this.rEKLAMADataSet.FAKTURA_DETAILS);
198                       
199                        transaction.Commit();
200                    }
201                    catch (Exception e1)
202                    {
203                        transaction.Rollback();
204                        conn.Close();
205                        throw e1;
206                    }
207                }
208                catch (Exception e2)
209                {
210                    MessageBox.Show("Wyst¹pi³ b³¹d: \n" + e2.ToString());
211                }
212                finally
213                {
214                    this.rEKLAMADataSet.FAKTURA_DETAILS.Clear();
215                    this.fAKTURYBindingSource.ResetBindings(false);
216                    this.fAKTURYDataGridView.Refresh();
217                }
218            }
219
220            this.Cursor = Cursors.Default;
221        }       
222
223        private REKLAMADataSet.FAKTURYRow utworzNaglowekKorekty(REKLAMADataSet.FAKTURYRow faktura)
224        {
225            REKLAMADataSet.FAKTURYRow naglowekKorekty = this.rEKLAMADataSet.FAKTURY.NewFAKTURYRow();
226            naglowekKorekty.KOREKTA = true;
227            //  naglowekKorekty.EKSPORT = true;
228
229            naglowekKorekty.idFakturyKorekta = faktura.ID_FAKTURY;
230            naglowekKorekty.idFakturyVAT = faktura.ID_FAKTURY;
231
232            naglowekKorekty.NUMER_ROZ = faktura.NUMER_ROZ; ;
233            naglowekKorekty.NUMER = Utils.numerNowejFakturyKorekty(naglowekKorekty.NUMER_ROZ, DateTime.Today.Year);
234            naglowekKorekty.NUMER_ROK = DateTime.Today.Year;
235            naglowekKorekty.DATA_WYSTAWIENIA = DateTime.Today;
236
237            naglowekKorekty.idZamowienia = 148;
238            naglowekKorekty.ID_SPRZEDAWCY = faktura.ID_SPRZEDAWCY;
239
240            naglowekKorekty.MIEJSCOWOSC_WYSTAWIENIA = faktura.MIEJSCOWOSC_WYSTAWIENIA;
241            naglowekKorekty.SPRZEDAWCA_ADRES = faktura.SPRZEDAWCA_ADRES;
242            naglowekKorekty.SPRZEDAWCA_NIP = faktura.SPRZEDAWCA_NIP;
243
244            naglowekKorekty.PODPIS_WYSTAWIL = faktura.PODPIS_WYSTAWIL;
245            naglowekKorekty.DATA_SPRZEDAZY = DateTime.Today;
246
247            naglowekKorekty.ID_NABYWCY = faktura.ID_NABYWCY;
248            naglowekKorekty.NABYWCA_ADRES = faktura.NABYWCA_ADRES;
249            naglowekKorekty.NABYWCA_NIP = faktura.NABYWCA_NIP;
250            naglowekKorekty.TERMIN_ZAPLATY = DateTime.Today.AddDays(30);
251            naglowekKorekty.opis = "rezygnacja z emisji reklamy";
252
253            naglowekKorekty.SPOSOB_ZAPLATY = faktura.SPOSOB_ZAPLATY;
254           
255            naglowekKorekty.ZAPLACONO = false;
256
257            naglowekKorekty.FAKTURA_TYP = 2;
258            naglowekKorekty.FAKTURA_PODTYP = 1;
259
260            naglowekKorekty.ID_KONTA = faktura.ID_KONTA;
261
262            this.rEKLAMADataSet.FAKTURY.AddFAKTURYRow(naglowekKorekty);
263
264            return naglowekKorekty;
265        }
266
267
268
269        private REKLAMADataSet.FAKTURYRow utworzNaglowekFaktury(REKLAMADataSet.KLIENCIRow klientAgencja, SLOWNIKDataSet.AGENCJERow agencja)
270        {
271            REKLAMADataSet.FAKTURYRow naglowekFaktury = (REKLAMADataSet.FAKTURYRow)this.rEKLAMADataSet.FAKTURY.NewRow();
272
273            naglowekFaktury.NUMER_ROZ = agencjaListBox.SelectedItem.ToString();
274            naglowekFaktury.NUMER = Utils.numerNowejFaktury(naglowekFaktury.NUMER_ROZ, DateTime.Today.Year);
275            naglowekFaktury.NUMER_ROK = DateTime.Today.Year;
276            naglowekFaktury.DATA_WYSTAWIENIA = DateTime.Today;
277           
278            if (dtpZmianaDaty.Value != DateTime.Today)
279            {
280                naglowekFaktury.DATA_WYSTAWIENIA = dtpZmianaDaty.Value;
281            }
282
283            naglowekFaktury.idZamowienia = 148;
284            naglowekFaktury.ID_SPRZEDAWCY = agencja.Id_agencji;
285
286            naglowekFaktury.EKSPORT = false;
287           
288            naglowekFaktury.MIEJSCOWOSC_WYSTAWIENIA = agencjaRedakcja.miasto;
289            naglowekFaktury.SPRZEDAWCA_ADRES = agencjaRedakcja.Adres_Fk;
290            naglowekFaktury.SPRZEDAWCA_NIP = agencjaRedakcja.NIP;
291
292            naglowekFaktury.PODPIS_WYSTAWIL = string.Empty;
293            naglowekFaktury.DATA_SPRZEDAZY = naglowekFaktury.DATA_WYSTAWIENIA;
294
295            naglowekFaktury.ID_NABYWCY = klientAgencja.CustomerID;
296            naglowekFaktury.NABYWCA_ADRES = klientAgencja.Adres_Fkatura;
297            naglowekFaktury.NABYWCA_NIP = klientAgencja.Nip;
298            naglowekFaktury.opis = string.Empty;
299
300            naglowekFaktury.SPOSOB_ZAPLATY = "Przelew";
301           
302            naglowekFaktury.TERMIN_ZAPLATY = naglowekFaktury.DATA_SPRZEDAZY.AddDays(30);
303            naglowekFaktury.ZAPLACONO = false;
304
305            naglowekFaktury.FAKTURA_TYP = 2;
306            naglowekFaktury.FAKTURA_PODTYP = 1;
307
308            naglowekFaktury.ID_KONTA = Convert.ToInt16(konto.id);
309
310            naglowekFaktury.EndEdit();
311            return naglowekFaktury;
312        }
313
314        private void utworzPozycjeFaktury(REKLAMADataSet.FAKTURYRow naglowekFaktury)
315        {
316            REKLAMADataSet.FAKTURA_DETAILSDataTable pozycjeFakturDlaKlientow =
317                this.fakturA_DETAILSTableAdapter.GetDataByNrTygodniaWRoku(
318                    dtpZmianaDaty.Value.Year, nrTygodniaUpDown.Value, naglowekFaktury.ID_SPRZEDAWCY);
319                       
320            REKLAMADataSet.FAKTURYDataTable naglowkiFakturDlaKlientow =
321                this.fAKTURYTableAdapter.GetDataByNrTygodniaWRoku(
322                    dtpZmianaDaty.Value.Year, nrTygodniaUpDown.Value, naglowekFaktury.ID_SPRZEDAWCY);
323
324            if (pozycjeFakturDlaKlientow.Rows.Count == 0 || naglowkiFakturDlaKlientow.Rows.Count == 0)
325            {
326                throw new Exception("Nie ma co fakturowaæ");
327            }
328       
329            foreach (REKLAMADataSet.FAKTURA_DETAILSRow pozycjaFaktury in pozycjeFakturDlaKlientow)
330            {
331                REKLAMADataSet.FAKTURA_DETAILSRow fakturaDetailsRow = this.rEKLAMADataSet.FAKTURA_DETAILS.NewFAKTURA_DETAILSRow();
332                REKLAMADataSet.FAKTURYRow faktura = naglowkiFakturDlaKlientow.FindByID_FAKTURY(pozycjaFaktury.ID_FAKTURY);
333
334                fakturaDetailsRow.ROK = pozycjaFaktury.ROK;
335                fakturaDetailsRow.MIESIAC = pozycjaFaktury.MIESIAC;
336                fakturaDetailsRow.TYTUL = pozycjaFaktury.TYTUL;
337                fakturaDetailsRow.NAZWA_USLUGI = faktura != null ? faktura.NUMER + "/" + faktura.NUMER_ROZ + "/"
338                    + faktura.NUMER_ROK + " | " + pozycjaFaktury.NAZWA_USLUGI : "";
339                fakturaDetailsRow.reklamaId = pozycjaFaktury.reklamaId;
340                fakturaDetailsRow.NR_WYDANIA = pozycjaFaktury.NR_WYDANIA;
341
342                fakturaDetailsRow.CENA_JEDN = pozycjaFaktury.CENA_JEDN;
343                fakturaDetailsRow.ILOSC = 1;
344                fakturaDetailsRow.JM = "szt.";
345
346                fakturaDetailsRow.UPUST_NETTO = pozycjaFaktury.UPUST_NETTO;
347                fakturaDetailsRow.UPUST_PR = pozycjaFaktury.UPUST_PR;
348                decimal netto = (1 - Convert.ToDecimal(pozycjaFaktury.UPUST_PR))
349                    * pozycjaFaktury.CENA_JEDN;
350                fakturaDetailsRow.NETTO = netto;
351                fakturaDetailsRow.S_VAT = 0.22;
352                decimal VAT = Convert.ToDecimal(0.22);
353                fakturaDetailsRow.VAT = Convert.ToDecimal(Math.Round(VAT * netto, 2));
354                fakturaDetailsRow.BRUTTO = Convert.ToDecimal(Math.Round((1 + VAT) * netto, 2));
355
356                fakturaDetailsRow.TYP = 2;
357                fakturaDetailsRow.PODTYP = 1;
358                fakturaDetailsRow.ID_FAKTURY = naglowekFaktury.ID_FAKTURY;
359
360                if (!pozycjaFaktury.IswyroznienieNull())
361                {
362                    if (pozycjaFaktury.wyroznienie)
363                    {
364                        fakturaDetailsRow.wyroznienie = true;
365                    }
366                }
367               
368                this.rEKLAMADataSet.FAKTURA_DETAILS.AddFAKTURA_DETAILSRow(fakturaDetailsRow);
369            }
370        }
371
372        private void utworzPozycjeFakturyKorekty(REKLAMADataSet.FAKTURYRow naglowekFaktury)
373        {
374
375            REKLAMADataSet.FAKTURA_DETAILSDataTable pozycjeFakturDlaKlientow =
376                this.fakturA_DETAILSTableAdapter.GetDataByNrTygodniaRokZKorekta(
377                    naglowekFaktury.ID_SPRZEDAWCY,dtpZmianaDaty.Value.Year, nrTygodniaUpDown.Value);
378
379            REKLAMADataSet.FAKTURYDataTable naglowkiFakturDlaKlientow =
380                this.fAKTURYTableAdapter.GetDataByNrTygodniaWRokuZKorekta(
381                    naglowekFaktury.ID_SPRZEDAWCY,dtpZmianaDaty.Value.Year, nrTygodniaUpDown.Value);
382
383            if (pozycjeFakturDlaKlientow.Rows.Count == 0 || naglowkiFakturDlaKlientow.Rows.Count == 0)
384            {
385                throw new Exception("Nie ma co fakturowaæ");
386            }
387
388            foreach (REKLAMADataSet.FAKTURA_DETAILSRow pozycjaFaktury in pozycjeFakturDlaKlientow)
389            {
390                REKLAMADataSet.FAKTURA_DETAILSRow fakturaDetailsRow = this.rEKLAMADataSet.FAKTURA_DETAILS.NewFAKTURA_DETAILSRow();
391                REKLAMADataSet.FAKTURYRow faktura = naglowkiFakturDlaKlientow.FindByID_FAKTURY(pozycjaFaktury.ID_FAKTURY);
392
393                fakturaDetailsRow.ROK = pozycjaFaktury.ROK;
394                fakturaDetailsRow.MIESIAC = pozycjaFaktury.MIESIAC;
395                fakturaDetailsRow.TYTUL = pozycjaFaktury.TYTUL;
396                fakturaDetailsRow.NAZWA_USLUGI = faktura != null ? faktura.NUMER + "/" + faktura.NUMER_ROZ + "/"
397                    + faktura.NUMER_ROK + " | " + pozycjaFaktury.NAZWA_USLUGI : "";
398                fakturaDetailsRow.reklamaId = pozycjaFaktury.reklamaId;
399                fakturaDetailsRow.NR_WYDANIA = pozycjaFaktury.NR_WYDANIA;
400
401                fakturaDetailsRow.CENA_JEDN = pozycjaFaktury.CENA_JEDN;
402                fakturaDetailsRow.ILOSC = 1;
403                fakturaDetailsRow.JM = "szt.";
404
405                fakturaDetailsRow.UPUST_NETTO = pozycjaFaktury.UPUST_NETTO;
406                fakturaDetailsRow.UPUST_PR = pozycjaFaktury.UPUST_PR;
407                decimal netto = (1 - Convert.ToDecimal(pozycjaFaktury.UPUST_PR))
408                    * pozycjaFaktury.CENA_JEDN;
409                fakturaDetailsRow.NETTO = netto;
410                fakturaDetailsRow.S_VAT = 0.22;
411                decimal VAT = Convert.ToDecimal(0.22);
412                fakturaDetailsRow.VAT = Convert.ToDecimal(Math.Round(VAT * netto, 2));
413                fakturaDetailsRow.BRUTTO = Convert.ToDecimal(Math.Round((1 + VAT) * netto, 2));
414
415                fakturaDetailsRow.TYP = 2;
416                fakturaDetailsRow.PODTYP = 1;
417                fakturaDetailsRow.ID_FAKTURY = naglowekFaktury.ID_FAKTURY;
418
419                if (!pozycjaFaktury.IswyroznienieNull())
420                {
421                    if (pozycjaFaktury.wyroznienie)
422                    {
423                        fakturaDetailsRow.wyroznienie = true;
424                    }
425                }
426
427                this.rEKLAMADataSet.FAKTURA_DETAILS.AddFAKTURA_DETAILSRow(fakturaDetailsRow);
428            }
429        }
430       
431
432        private void dodajWplate(REKLAMADataSet.FAKTURYRow naglowekFaktury)
433        {
434            REKLAMADataSet.WplatyRow wplata = this.rEKLAMADataSet.Wplaty.NewWplatyRow();
435            wplata.idFaktury = naglowekFaktury.ID_FAKTURY;
436            wplata.idZamowienia = 148;
437            this.rEKLAMADataSet.Wplaty.AddWplatyRow(wplata);
438        }
439
440        private void wydrukButton_Click(object sender, EventArgs e)
441        {
442            if (fAKTURYBindingSource.Current != null)
443            {
444                REKLAMADataSet.FAKTURYRow row =
445                    (REKLAMADataSet.FAKTURYRow)
446                    ((DataRowView)fAKTURYBindingSource.Current).Row;
447
448                if (row.IsidFakturyKorektaNull())
449                {
450                    FactureViewer fv = new FactureViewer(row.ID_FAKTURY, false);
451                    fv.ShowDialog();
452                }
453                else
454                {
455                    FactureViewer fv = new FactureViewer(row.ID_FAKTURY, row.idFakturyVAT, row.idFakturyKorekta);
456                    fv.ShowDialog();
457                }
458
459            }
460        }
461
462        private void usunFaktureButton_Click(object sender, EventArgs e)
463        {
464            if (fAKTURYBindingSource.Current != null)
465            {
466                if (
467                    MessageBox.Show("Czy na pewno chcesz usun¹æ fakturê ?",
468                    "",
469                    MessageBoxButtons.OKCancel,
470                    MessageBoxIcon.Question)
471                    == DialogResult.OK)
472                {
473                    this.Cursor = Cursors.WaitCursor;
474
475                    REKLAMADataSet.FAKTURYRow faktura = (REKLAMADataSet.FAKTURYRow)
476                        ((DataRowView)fAKTURYBindingSource.Current).Row;
477
478                    if (faktura.KOREKTA)
479                    {
480                        int i = fAKTURYBindingSource.Find("idFakturyKorekta", faktura.ID_FAKTURY);
481                        if (i > -1)
482                        {
483                            MessageBox.Show("Nie mo¿na usun¹æ faktury");
484                        }
485                        else
486                        {
487                            usunKorekte(faktura);
488                        }
489                    }
490                    else
491                    {
492                        usunFakture(faktura);
493                    }
494
495                    this.Cursor = Cursors.Default;
496                }
497            }
498        }
499
500        private void usunKorekte(REKLAMADataSet.FAKTURYRow korekta)
501        {
502            int idKorekty = korekta.ID_FAKTURY;
503            int idKorygowanejFaktury = korekta.idFakturyKorekta;
504            int idZam = korekta.idZamowienia;
505
506            int i = fAKTURYBindingSource.Find("ID_FK_KOR", idKorekty);
507
508            REKLAMADataSet.FAKTURYRow korygowanaFaktura = (REKLAMADataSet.FAKTURYRow)
509                ((DataRowView)fAKTURYBindingSource.List[i]).Row;
510
511            int j = fAKTURYBindingSource.Find("ID_FAKTURY", idKorygowanejFaktury);
512
513            if (j > -1 && i != j)
514            {
515                REKLAMADataSet.FAKTURYRow poprzedniaKorekta = (REKLAMADataSet.FAKTURYRow)
516                    ((DataRowView)fAKTURYBindingSource.List[j]).Row;
517
518                korygowanaFaktura.ID_FK_KOR = poprzedniaKorekta.ID_FAKTURY;
519            }
520            else
521            {
522                korygowanaFaktura.SetID_FK_KORNull();
523            }
524
525            fAKTURYBindingSource.EndEdit();
526
527            SqlConnection conn = new SqlConnection(ConnString.getConnString().Value);
528
529            fAKTURYTableAdapter.Connection = conn;
530            fakturA_DETAILSTableAdapter.Connection = conn;
531
532            conn.Open();
533            SqlTransaction transaction = conn.BeginTransaction();
534
535            fAKTURYTableAdapter.AttachTransaction(transaction);
536            fakturA_DETAILSTableAdapter.AttachTransaction(transaction);
537
538            try
539            {
540                fAKTURYTableAdapter.Update(this.rEKLAMADataSet.FAKTURY);
541                fAKTURYTableAdapter.Delete(idKorekty);
542                fakturA_DETAILSTableAdapter.Delete(idKorekty);
543
544                transaction.Commit();
545            }
546            catch (Exception ex)
547            {
548                transaction.Rollback();
549                throw ex;
550            }
551            finally
552            {
553                fAKTURYTableAdapter.FillByIdZamowienia(this.rEKLAMADataSet.FAKTURY, idZam);
554                conn.Close();
555            }
556        }
557
558        private void usunFakture(REKLAMADataSet.FAKTURYRow faktura)
559        {
560            int idFakt = faktura.ID_FAKTURY;
561         
562            SqlConnection conn = new SqlConnection(ConnString.getConnString().Value);
563
564            fAKTURYTableAdapter.Connection = conn;
565            fakturA_DETAILSTableAdapter.Connection = conn;
566            wplatyTableAdapter.Connection = conn;
567
568            conn.Open();
569            SqlTransaction transaction = conn.BeginTransaction();
570
571            fAKTURYTableAdapter.AttachTransaction(transaction);
572            fakturA_DETAILSTableAdapter.AttachTransaction(transaction);
573            wplatyTableAdapter.AttachTransaction(transaction);
574           
575            try
576            {
577                fAKTURYTableAdapter.Delete(idFakt);
578                fakturA_DETAILSTableAdapter.Delete(idFakt);
579                wplatyTableAdapter.Delete(idFakt);
580               
581                transaction.Commit();
582            }
583            catch (Exception e)
584            {
585                transaction.Rollback();
586            }
587            finally
588            {
589                conn.Close();
590            }
591        }
592    }
593}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.