root/branches/ReklamaReorganizacja/TruckExpoCDN/ExportForm.cs @ 789

Wersja 482, 8.9 KB (wprowadzona przez marek, 17 years temu)

re #134

Line 
1using System;
2using System.ComponentModel;
3using System.Data;
4using System.Data.SqlClient;
5using System.Text;
6using System.Windows.Forms;
7using ExportFaktur.EXPODataSetTableAdapters;
8using ExportFaktur.CDNDataSetTableAdapters;
9
10namespace ExportFaktur
11{
12    public partial class ExportForm : Form
13    {
14        private ExpoToCDNExport ex = new ExpoToCDNExport();
15
16        KLIENCITableAdapter klientAdapter = new KLIENCITableAdapter();
17        FAKTURA_DETAILSTableAdapter fakturyDetailsAdapter = new FAKTURA_DETAILSTableAdapter();
18       
19        KontrahenciTableAdapter kontrahenciAdapter = new KontrahenciTableAdapter();
20        TraElemTableAdapter TraElemAdapter = new TraElemTableAdapter();
21        TraNagTableAdapter TraNagAdapter = new TraNagTableAdapter();
22        TraVatTableAdapter TraVatAdapter = new TraVatTableAdapter();
23
24        SqlConnection conn = new SqlConnection(ConnString.CDNConnection);
25        SqlConnection bazaReklamConn = new SqlConnection(ConnString.BazaReklamConnection);
26
27        int nMaxProgress;
28       
29        public ExportForm()
30        {
31            InitializeComponent();
32
33            ex.CDNDataset = new CDNDataSet();
34
35            klientAdapter.ClearBeforeFill = true;
36            fakturyDetailsAdapter.ClearBeforeFill = true;
37
38            fAKTURYTableAdapter.Connection = bazaReklamConn;
39            klientAdapter.Connection = bazaReklamConn;
40            fakturyDetailsAdapter.Connection = bazaReklamConn;
41
42            kontrahenciAdapter.Connection = conn;
43            TraNagAdapter.Connection = conn;
44            TraElemAdapter.Connection = conn;
45            TraVatAdapter.Connection = conn;
46        }
47
48        private void ExportForm_Load(object sender, EventArgs e)
49        {
50            refresh();
51        }
52
53        private void refresh()
54        {
55            fAKTURYTableAdapter.FillByNotExported(eXPODataSet.FAKTURY);
56
57            statusLabel1.Text = "Liczba faktur " + eXPODataSet.FAKTURY.Count;
58
59            nMaxProgress = eXPODataSet.FAKTURY.Count;
60           
61            toolStripProgressBar1.Value = 0;
62        }
63
64        private void toolStripButton1_Click(object sender, EventArgs e)
65        {
66            dataGridView1.EndEdit();
67            dataGridView1.Refresh();
68           
69            if (backgroundWorker1.IsBusy)
70            {
71                return;
72            }
73
74            if (fAKTURYBindingSource.List.Count == 0)
75            {
76                return;
77            }
78
79            backgroundWorker1.RunWorkerAsync();
80
81           
82        }
83
84        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
85        {
86            int n = 0;
87           
88            conn.Open();
89           
90            foreach (EXPODataSet.FAKTURYRow row in eXPODataSet.FAKTURY.Rows)
91            {
92                if (!backgroundWorker1.CancellationPending)
93                {                   
94                   
95                    if (row.Exportuj)
96                    {
97                        SqlTransaction transaction = conn.BeginTransaction();
98
99                        kontrahenciAdapter.AttachTransaction(transaction);
100                        TraNagAdapter.AttachTransaction(transaction);
101                        TraElemAdapter.AttachTransaction(transaction);
102                        TraVatAdapter.AttachTransaction(transaction);
103
104                        try
105                        {
106                            klientAdapter.FillByCustomerId(eXPODataSet.KLIENCI, Convert.ToInt32(row["id_nabywcy"]));
107                            fakturyDetailsAdapter.FillByIdFaktury(eXPODataSet.FAKTURA_DETAILS, Convert.ToInt32(row["id_faktury"]));
108
109                            ex.DodajKlienta(eXPODataSet.KLIENCI[0]);
110                            kontrahenciAdapter.Update(ex.CDNDataset.Kontrahenci);
111
112                            decimal sumaNetto = eXPODataSet.sumaNETTO();
113                            decimal vat = eXPODataSet.stawkaVAT();
114                            decimal rabat = eXPODataSet.rabatProcent();
115
116                            ex.DodajNaglowekFaktury(row, ex.CDNDataset.Kontrahenci[0], sumaNetto, vat, rabat);
117                            ex.DodajElementyFaktury(eXPODataSet.FAKTURA_DETAILS, ex.CDNDataset.TraNag[0]);
118                            ex.DodajVAT(ex.CDNDataset.TraNag[0], sumaNetto, vat);
119
120                            TraNagAdapter.Update(ex.CDNDataset.TraNag);
121                            TraElemAdapter.Update(ex.CDNDataset.TraElem);
122                            TraVatAdapter.Update(ex.CDNDataset.TraVat);
123
124                            transaction.Commit();
125                            row.EXPORTED = true;
126                            row.EXPORTED_DATA = DateTime.Now;
127                            fAKTURYTableAdapter.Update(row);
128
129                            n++;
130                            backgroundWorker1.ReportProgress(n);
131                        }
132                        catch (Exception exception)
133                        {
134                            transaction.Rollback();
135                            conn.Close();
136                            //Send Email
137                            StringBuilder stringBuilder = new StringBuilder();
138                            stringBuilder.AppendLine("Wyjatek przy imporcie faktury o id: " + row.ID_FAKTURY);
139                            stringBuilder.AppendLine("Szczegoly:");
140                            stringBuilder.AppendLine(exception.ToString());
141                            EmailSender.Send(stringBuilder.ToString());
142                            throw;
143                        }
144                        finally
145                        {
146                            eXPODataSet.KLIENCI.Clear();
147                            eXPODataSet.FAKTURA_DETAILS.Clear();
148                            ex.CDNDataset.TraVat.Clear();
149                            ex.CDNDataset.TraElem.Clear();
150                            ex.CDNDataset.TraNag.Clear();
151                            ex.CDNDataset.Kontrahenci.Clear();
152                        }
153                    }
154                }
155                else
156                {
157                   
158                    conn.Close();
159                    e.Cancel = true;               
160                }
161            }
162
163            if (bazaReklamConn.State == ConnectionState.Open)
164            {
165                bazaReklamConn.Close();
166            }
167            if (conn.State == ConnectionState.Open)
168            {
169                conn.Close();
170            }
171                 
172        }
173
174        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
175        {
176            if (!Visible || WindowState != FormWindowState.Normal)
177            {
178                return;
179            }
180           
181            if (toolStripProgressBar1.Maximum != nMaxProgress)
182            {
183                toolStripProgressBar1.Maximum = nMaxProgress;
184            }
185
186            if (e.ProgressPercentage < toolStripProgressBar1.Maximum)
187            {
188                toolStripProgressBar1.Value = e.ProgressPercentage;
189            }
190        }
191
192        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
193        {           
194            if (e.Cancelled)
195            {
196                statusLabel1.Text = "Export faktur anulowany";
197                MessageBox.Show("Export faktur anulowany");
198            }
199            else if (e.Error != null)
200            {
201                statusLabel1.Text = "Wyst¹pi³ b³¹d.";
202                MessageBox.Show("Wyst¹pi³ b³¹d: " + e.Error.Message);
203            }
204            else
205            {
206                toolStripProgressBar1.Value = toolStripProgressBar1.Maximum;
207                statusLabel1.Text = "Export faktur zakoñczony";
208                MessageBox.Show("Export faktur zakoñczony");
209            }
210
211            refresh();
212        }
213
214        private void toolStripButton2_Click(object sender, EventArgs e)
215        {
216            if (backgroundWorker1.IsBusy)
217            {               
218                backgroundWorker1.CancelAsync();
219            }
220        }
221
222        private void refreshToolStripButton_Click(object sender, EventArgs e)
223        {
224            if (!backgroundWorker1.IsBusy)
225            {
226                refresh();
227            }
228        }
229
230        private void ExportForm_FormClosing(object sender, FormClosingEventArgs e)
231        {
232            if (backgroundWorker1.IsBusy)
233            {
234                return;
235            }
236        }
237
238        private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)
239        {
240
241        }
242
243        private void cbSelectAll_CheckedChanged(object sender, EventArgs e)
244        {
245            cbSelectAll.Text = cbSelectAll.Checked ? "Odznacz wszystko" : "Zaznacz wszystko";
246
247            foreach (EXPODataSet.FAKTURYRow row in eXPODataSet.FAKTURY.Rows)
248            {
249                row.Exportuj = cbSelectAll.Checked;
250            }
251        }
252    }
253}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.