root/Baza Reklam 2 - Faktury/FacturesFormNEW.cs @ 721

Wersja 105, 24.5 KB (wprowadzona przez dorota, 17 years temu)
Line 
1using System;
2using System.Collections.Generic;
3using System.ComponentModel;
4using System.Data;
5using System.Data.SqlClient;
6using System.Drawing;
7using System.Text;
8using System.Windows.Forms;
9
10namespace Baza_Reklam
11{
12    public partial class FacturesFormNEW : Form
13    {
14        string query = "SELECT top 2000 * from VIEW_ZESTAWIENIE_FAKTUR_NOWE ";
15
16        private static FacturesFormNEW fakturesForm;
17        private SqlCommand command;
18        private SqlDataAdapter sqlDataAdapter;
19
20        private bool commandExecuted = false;
21
22        public static FacturesFormNEW getFacturesForm(MDIBazaReklam parent)
23        {
24            if (fakturesForm == null){
25                fakturesForm = new FacturesFormNEW(parent);
26            }
27            return fakturesForm;
28        }
29
30        private FacturesFormNEW(MDIBazaReklam parent)
31        {
32            InitializeComponent();
33
34            this.MdiParent = parent;
35
36            //podmiana connstringa
37            VIEW_ZESTAWIENIE_FAKTUR_NOWETableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
38            reklamaTableAdapter.Connection.ConnectionString = ConnString.getConnString().Value;
39         
40            //obiekty wykorzytywane przy wyszukiwaniu
41            SqlConnection conn = new SqlConnection(ConnString.getConnString().Value);
42           
43            command = new SqlCommand();
44            command.CommandType = CommandType.Text;
45            command.Connection = conn;
46           
47            this.sqlDataAdapter = new SqlDataAdapter();
48
49            //generuje piersze wêz³y w drzewie
50            generateNodes();
51
52            //ustawia domyslny rok i miesi¹c w pasku wyszukiwania
53            rokToolStripTextBox.Text = DateTime.Today.Year.ToString();
54            miesiacToolStripTextBox.Text = DateTime.Today.Month.ToString();
55
56            wyszukajToolStrip.Items.Insert(10, new ToolStripLabel("nieuregulowane:"));
57            wyszukajToolStrip.Items.Insert(11, new ToolStripControlHost(new CheckBox(), "zalegleCheckBox"));
58            ((CheckBox)((ToolStripControlHost)wyszukajToolStrip.Items["zalegleCheckBox"]).Control).ThreeState = true;
59            ((CheckBox)((ToolStripControlHost)wyszukajToolStrip.Items["zalegleCheckBox"]).Control).CheckState = CheckState.Indeterminate;
60
61            PoznanKatowicetoolStripButton.Enabled = User.getUser().St_produkcja;
62        }
63
64        private void FacturesForm_Load(object sender, EventArgs e)
65        {
66            this.WindowState = FormWindowState.Maximized;
67
68            DBBindings.bindujAgencje(agencjaToolStripComboBox);
69         
70            command.CommandText = this.query;
71            sqlDataAdapter.SelectCommand = command;
72        }
73
74        private void generateNodes()
75        {
76            TreeNode node;
77
78            node = new TreeNode("Wp³aty - ksiêgowoœæ");
79            node.Name = "WplatyKsiegowosc";
80            treeView1.Nodes.Add(node);
81
82            node = new TreeNode("Ró¿nice wp³at");
83            node.Nodes.Add(new TreeNode());
84            node.Name = "BrakWKsiegowosci";
85
86            treeView1.Nodes["WplatyKsiegowosc"].Nodes.Add(node);
87
88            node = new TreeNode("Brak w reklamie");
89            node.Nodes.Add(new TreeNode());
90            node.Name = "BrakWReklamie";
91
92            treeView1.Nodes["WplatyKsiegowosc"].Nodes.Add(node);
93                       
94            command.Connection.Close();                         
95        }
96
97        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
98        {
99            if (e.Node != null)
100            {
101                command.CommandText = query;
102                command.Parameters.Clear();
103
104                switch (e.Node.Level)
105                {
106                    case 0:
107                        break;
108                    case 1:
109                        switch (e.Node.Parent.Name)
110                        {
111                            case "WplatyKsiegowosc":
112                                break;
113                            default:
114                                break;
115                        }
116                        break;
117                    case 2:
118                        switch (e.Node.Parent.Parent.Name)
119                        {
120                            case "WplatyKsiegowosc":
121                                switch (e.Node.Parent.Name)
122                                {
123                                    case "BrakWKsiegowosci":
124                                        this.Cursor = Cursors.WaitCursor;
125
126                                        rEKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWE.Clear();
127
128                                        command.CommandText += " WHERE YEAR(dataWplaty) = @rok AND (suma_zaplat is null OR (CONVERT(int, suma_zaplat * 100) <> CONVERT(int, BRUTTO * 100))) order by dataWplaty";
129
130                                        command.Parameters.AddWithValue("@rok", e.Node.Name);
131                                        sqlDataAdapter.Fill(this.rEKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWE);
132                                        commandExecuted = true;
133                                        fakturyDataGridView.Refresh();
134
135                                        this.Cursor = Cursors.Default;
136
137                                        break;
138
139                                    case "BrakWReklamie":
140                                        this.Cursor = Cursors.WaitCursor;
141
142                                        rEKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWE.Clear();
143                                        command.CommandText += " WHERE YEAR(DATA_SPRZEDAZY) = @rok AND (suma_zaplat is not null AND suma_zaplat<>0) AND (dataWplaty is null) order by DATA_SPRZEDAZY";
144                                        command.Parameters.AddWithValue("@rok", e.Node.Name);
145                                        sqlDataAdapter.Fill(this.rEKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWE);
146                                        commandExecuted = true;
147                                        fakturyDataGridView.Refresh();
148
149                                        this.Cursor = Cursors.Default;
150
151                                        break;
152                                    default:
153                                        break;
154                                }
155                                break;
156                            default:
157                                break;
158                        }
159                        break;
160                    case 3:
161                        switch (e.Node.Parent.Parent.Parent.Name)
162                        {
163                            case "WplatyKsiegowosc":
164                                switch (e.Node.Parent.Parent.Name)
165                                {
166                                    case "BrakWKsiegowosci":
167                                        this.Cursor = Cursors.WaitCursor;
168
169                                        rEKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWE.Clear();
170                                        command.CommandText += " WHERE YEAR([dataWplaty]) = @rok AND MONTH(dataWplaty) = @miesiac AND (suma_zaplat is null OR (CONVERT(int, suma_zaplat * 100) <> CONVERT(int, BRUTTO * 100))) order by dataWplaty";
171                                        command.Parameters.AddWithValue("@rok", e.Node.Parent.Name);
172                                        command.Parameters.AddWithValue("@miesiac", e.Node.Name);
173                                        sqlDataAdapter.Fill(this.rEKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWE);
174                                        commandExecuted = true;
175                                        fakturyDataGridView.Refresh();
176
177                                        this.Cursor = Cursors.Default;
178                                        break;
179
180                                    case "BrakWReklamie":
181                                        this.Cursor = Cursors.WaitCursor;
182
183                                        rEKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWE.Clear();
184                                        command.CommandText += " WHERE YEAR(DATA_SPRZEDAZY) = @rok AND MONTH(DATA_SPRZEDAZY) = @miesiac AND (suma_zaplat is not null AND suma_zaplat<>0) AND (dataWplaty is null) order by DATA_SPRZEDAZY";
185                                        command.Parameters.AddWithValue("@rok", e.Node.Parent.Name);
186                                        command.Parameters.AddWithValue("@miesiac", e.Node.Name);
187                                        sqlDataAdapter.Fill(this.rEKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWE);
188                                        commandExecuted = true;
189                                        fakturyDataGridView.Refresh();
190
191                                        this.Cursor = Cursors.Default;
192                                        break;
193                                }
194                                break;
195                            default:
196                                break;
197                        }
198                        break;
199                    default:
200                        break;
201                }
202
203            }
204        }
205
206        private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
207        {
208            TreeNode node;
209            SqlDataReader reader;
210
211            if (e.Node != null)
212            {
213               switch (e.Node.Level)
214                {
215                    case 0:                       
216                        break;
217                    case 1:
218                        switch (e.Node.Parent.Name)
219                        {
220                            case "WplatyKsiegowosc":
221                                switch (e.Node.Name)
222                                {
223                                    case "BrakWKsiegowosci":
224                                        e.Node.Nodes.Clear();
225
226                                        command.CommandText = "select distinct datepart(year,DATA_W) as rok from dbo.NR where datepart(year,DATA_W) is not null order by rok desc";
227                                        command.Connection.Open();
228                                        reader = command.ExecuteReader();
229
230                                        while (reader.Read())
231                                        {
232                                            node = new TreeNode(reader.GetValue(0).ToString());
233                                            node.Name = reader.GetValue(0).ToString();
234
235                                            for (int i = 12; i >= 1; i--)
236                                            {
237                                                TreeNode node2 = new TreeNode(i.ToString());
238                                                node2.Name = i.ToString();
239                                                //node2.Nodes.Add(new TreeNode());
240                                                node.Nodes.Add(node2);
241                                            }
242                                            e.Node.Nodes.Add(node);
243                                        }
244
245                                        command.Connection.Close();
246
247                                        break;
248                                    case "BrakWReklamie":
249                                        e.Node.Nodes.Clear();
250
251                                        command.CommandText = "select distinct datepart(year,DATA_W) as rok from dbo.NR where datepart(year,DATA_W) is not null order by rok desc";
252                                        command.Connection.Open();
253                                        reader = command.ExecuteReader();
254
255                                        while (reader.Read())
256                                        {
257                                            node = new TreeNode(reader.GetValue(0).ToString());
258                                            node.Name = reader.GetValue(0).ToString();
259
260                                            for (int i = 12; i >= 1; i--)
261                                            {
262                                                TreeNode node2 = new TreeNode(i.ToString());
263                                                node2.Name = i.ToString();
264                                                //node2.Nodes.Add(new TreeNode());
265                                                node.Nodes.Add(node2);
266                                            }
267                                            e.Node.Nodes.Add(node);
268                                        }
269
270                                        command.Connection.Close();
271
272                                        break;
273                                }
274                                break;
275                            default:
276                                e.Node.Nodes.Clear();
277
278                                node = new TreeNode("Biura");
279                                node.Name = "Biura";
280                                node.Nodes.Add(new TreeNode());
281                                e.Node.Nodes.Add(node);
282                                break;                     
283                        }
284                        break;
285                    case 2:
286               
287                        switch (e.Node.Name) {
288                            case "Biura":
289                                DBBindings.dodajAgencjeDoWezla(e.Node);
290                                break;
291                            default:
292                                break;
293                        }
294
295                        break;
296                    case 3:
297                        switch (e.Node.Parent.Name)
298                        {
299                            case "Biura":
300                                DBBindings.dodajAgentowDoWezla(e.Node, e.Node.Name);
301                                break;
302                            default:
303                                break;
304                        }
305                        break;
306                   case 4:
307                       break;                           
308                    default:
309                        break;
310                }
311            }
312        }
313
314        private void fakturyDataGridView_CellLeave(object sender, DataGridViewCellEventArgs e)
315        {
316            VIEW_ZESTAWIENIE_FAKTUR_NOWEBindingSource.CancelEdit();
317        }
318       
319        private void wyszukajToolStripButton_Click(object sender, EventArgs e)
320        {
321            wyszukajToolStrip.Visible = wyszukajToolStrip.Visible ? false : true;
322        }
323
324        private void szukajToolStripButton_Click(object sender, EventArgs e)
325        {
326            command.CommandText = query;
327
328            this.rEKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWE.Clear();
329
330            command.CommandText += " where 1=1 ";
331
332            command.Parameters.Clear();
333
334            if (nrFakturyToolStripTextBox.Text.Trim() != "")
335            {
336                int i;
337                if (!Int32.TryParse(nrFakturyToolStripTextBox.Text, out i))
338                {
339                    MessageBox.Show("Podaj prawid³owy numer faktury.");
340                    return;
341                }
342
343                command.CommandText += " AND NUMER=@nr";
344                command.Parameters.AddWithValue("@nr", nrFakturyToolStripTextBox.Text.Trim());
345            }
346
347            if (kodRozliczeniowyToolStripTextBox.Text.Trim() != "")
348            {
349                command.CommandText += " AND NR_FK like '%' + @kod + '%'";
350                command.Parameters.AddWithValue("@kod", kodRozliczeniowyToolStripTextBox.Text.Trim());
351            }
352
353            if (rokToolStripTextBox.Text.Trim() != "")
354            {
355                int i;
356                if (!Int32.TryParse(rokToolStripTextBox.Text.Trim(), out i))
357                {
358                    MessageBox.Show("Podaj prawid³owy rok.");
359                    return;
360                }
361
362                command.CommandText += " AND YEAR(DATA_SPRZEDAZY)=@rok";
363                command.Parameters.AddWithValue("@rok", rokToolStripTextBox.Text.Trim());
364            }
365
366            if (miesiacToolStripTextBox.Text.Trim() != "")
367            {
368                int i;
369                if (!Int32.TryParse(miesiacToolStripTextBox.Text.Trim(), out i))
370                {
371                    MessageBox.Show("Podaj prawid³owy miesi¹c.");
372                    return;
373                }
374
375                command.CommandText += " AND MONTH(DATA_SPRZEDAZY)=@miesiac";
376                command.Parameters.AddWithValue("@miesiac", miesiacToolStripTextBox.Text.Trim());
377            }
378
379            if (agencjaToolStripComboBox.Text.Trim() != "")
380            {
381                command.CommandText += " AND Agencja=@agencja";
382                command.Parameters.AddWithValue("@agencja", agencjaToolStripComboBox.Text.Trim());
383            }
384           
385            if (((CheckBox)((ToolStripControlHost)wyszukajToolStrip.Items["zalegleCheckBox"]).Control).CheckState == CheckState.Checked)
386            {
387                command.CommandText += " AND (BRUTTO - suma_zaplat) > 0";
388            }
389            else if (((CheckBox)((ToolStripControlHost)wyszukajToolStrip.Items["zalegleCheckBox"]).Control).CheckState == CheckState.Unchecked)
390            {
391                command.CommandText += " AND (BRUTTO - suma_zaplat) <= 0 ";
392            }
393         
394            //MessageBox.Show(command.CommandText + nrFakturyToolStripTextBox.Text);
395            sqlDataAdapter.SelectCommand = command;
396
397            this.Cursor = Cursors.WaitCursor;
398
399            try
400            {
401                int t = sqlDataAdapter.Fill(this.rEKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWE);
402                commandExecuted = true;
403            }
404            catch (Exception e1)
405            {
406                MessageBox.Show(e1.Message);
407            }
408
409            treeView1.CollapseAll();
410            treeView1.SelectedNode = null;
411
412            this.Cursor = Cursors.Default;
413        }
414
415        private void fakturyDataGridView_Leave(object sender, EventArgs e)
416        {
417            fakturyDataGridView.EndEdit();
418        }
419
420        private void kryteriumWyszukiwania_KeyPress(object sender, KeyPressEventArgs e)
421        {
422            if (e.KeyChar == 13)
423            {
424                wyszukajToolStripButton.PerformClick();
425            }
426        }
427
428        /// <summary>
429        /// Podsumowuje brutto i zaplate z wyswietlonych faktur
430        /// </summary>
431        private void podsumuj() {
432
433            if (VIEW_ZESTAWIENIE_FAKTUR_NOWEBindingSource.List.Count != 0)
434            {
435            decimal brutto = Convert.ToDecimal(rEKLAMADataSet.ZestawienieFaktur.Compute("Sum(BRUTTO)",""));
436            decimal netto = Convert.ToDecimal(rEKLAMADataSet.ZestawienieFaktur.Compute("Sum(netto)", ""));
437
438            bruttoTextBox.Text = String.Format("{0:C}", brutto);
439            zaplataTextBox.Text = String.Format("{0:C}", netto);
440            }
441            else
442            {
443            bruttoTextBox.Clear();
444            zaplataTextBox.Clear();           
445            }
446        }
447
448        private void zestawienieFakturBindingSource_ListChanged(object sender, ListChangedEventArgs e)
449        {         
450           podsumuj();
451        }
452
453        private void toolStripButton1_Click(object sender, EventArgs e)
454        {
455            PrintDGV.Print_DataGridView(fakturyDataGridView,50);
456        }
457
458        private void wyczyscPolaToolStripButton_Click(object sender, EventArgs e)
459        {
460            rEKLAMADataSet.ZestawienieFaktur.Clear();
461
462            nrFakturyToolStripTextBox.Clear();
463            kodRozliczeniowyToolStripTextBox.Clear();
464            rokToolStripTextBox.Clear();
465            miesiacToolStripTextBox.Clear();
466            agencjaToolStripComboBox.SelectedIndex = -1;
467            agencjaToolStripComboBox.Text = "";
468            ((CheckBox)((ToolStripControlHost)wyszukajToolStrip.Items["zalegleCheckBox"]).Control).CheckState = CheckState.Indeterminate;
469        }
470
471        private void podgladToolStripButton_Click(object sender, EventArgs e)
472        {
473            if (VIEW_ZESTAWIENIE_FAKTUR_NOWEBindingSource.Current != null)
474            {
475                DataRowView row = (DataRowView)VIEW_ZESTAWIENIE_FAKTUR_NOWEBindingSource.Current;
476                REKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWERow faktura = (REKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWERow)row.Row;
477
478                this.Cursor = Cursors.WaitCursor;
479                FactureViewer fv = new FactureViewer(faktura.ID_FAKTURY,false);
480                fv.ShowDialog();
481               
482                this.Cursor = Cursors.Default;
483            }
484        }
485
486        /// <summary>
487        /// Przechodzi do okna KLIENCI i wyœwietla dane klienta zwi¹zanego z  faktur¹.
488        /// </summary>
489        private void klientToolStripButton_Click(object sender, EventArgs e)
490        {
491            if (VIEW_ZESTAWIENIE_FAKTUR_NOWEBindingSource.Current != null)
492            {
493                DataRowView row = (DataRowView)VIEW_ZESTAWIENIE_FAKTUR_NOWEBindingSource.Current;
494               
495                int custID = Convert.ToInt32(row["ID_NABYWCY"]);
496                ClientsForm.getClientsForm((MDIBazaReklam)this.MdiParent).pokazKlienta(custID);
497
498                this.Hide();
499
500                ClientsForm.getClientsForm((MDIBazaReklam)this.MdiParent).Show();
501            }   
502        }
503
504        private void FacturesForm_Shown(object sender, EventArgs e)
505        {
506            if (User.getUser().St_kierownik)
507            {
508                agencjaToolStripComboBox.Text = User.getUser().SymbolAgencji;
509            }
510            else if (User.getUser().St_handlowiec | User.getUser().St_subhandlowiec)
511            {
512                kodRozliczeniowyToolStripTextBox.Text = User.getUser().Kod_agenta;
513            }
514        }
515
516        private void excelToolStripButton_Click(object sender, EventArgs e)
517        {
518            this.Cursor = Cursors.WaitCursor;
519
520            ExcelHandler ex = new ExcelHandler();
521            ex.exportToExcel(fakturyDataGridView);
522
523            this.Cursor = Cursors.Default;
524        }
525
526        private void fakturyDataGridView_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
527        {
528            if (e.ListChangedType == ListChangedType.Reset)
529            {
530                foreach (DataGridViewRow r in fakturyDataGridView.Rows)
531                {
532                    if (r.Cells["nETTODataGridViewTextBoxColumn"].Value !=
533                        DBNull.Value && r.Cells["sumaNettoZEmisji"].Value != DBNull.Value)
534                    {
535                        if (Convert.ToDecimal(r.Cells["nETTODataGridViewTextBoxColumn"].Value)
536                            != Convert.ToDecimal(r.Cells["sumaNettoZEmisji"].Value))
537                        {
538                            r.DefaultCellStyle.ForeColor = Color.Crimson;
539                        }
540                    }
541                }
542            }
543        }
544
545        private void wplata2toolStripButton_Click(object sender, EventArgs e)
546        {
547            if (VIEW_ZESTAWIENIE_FAKTUR_NOWEBindingSource.Current != null)
548            {
549                DataRowView row = (DataRowView)VIEW_ZESTAWIENIE_FAKTUR_NOWEBindingSource.Current;
550                REKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWERow f = (REKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWERow)row.Row;
551               
552                PaymentForm2 pf2;
553
554                if (f.IsidWplatyNull())
555                {
556                    pf2 = new PaymentForm2(0,f.ID_FAKTURY);
557                }
558                else
559                {
560                    pf2 = new PaymentForm2(f.idWplaty, f.ID_FAKTURY);
561                }
562
563                if (pf2.ShowDialog() == DialogResult.OK)
564                {
565                    f.idWplaty = pf2.IdWplaty;
566                    f.EndEdit();
567                    fakturyDataGridView.Refresh();
568                }
569            }
570   
571        }
572
573        private void zamowieniaToolStripButton_Click(object sender, EventArgs e)
574        {
575            if (VIEW_ZESTAWIENIE_FAKTUR_NOWEBindingSource.Current != null)
576            {
577                DataRowView row = (DataRowView)VIEW_ZESTAWIENIE_FAKTUR_NOWEBindingSource.Current;
578                REKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWERow f = (REKLAMADataSet.VIEW_ZESTAWIENIE_FAKTUR_NOWERow)row.Row;
579
580                ZamowieniaForm zf = new ZamowieniaForm(f.ID_NABYWCY,f.idZamowienia);
581                zf.ShowDialog();
582            }
583        }
584
585        private void PoznanKatowicetoolStripButton_Click(object sender, EventArgs e)
586        {
587            FakturowaniePoznanKatowice fpk = new FakturowaniePoznanKatowice();
588            fpk.ShowDialog();
589        }
590    }
591}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.