Pokaż
Ignoruj:
Data:
2009-08-03 13:02:12 (17 years ago)
Autor:
marek
Opis:

re #182 - poprawiono blad przy edycji procentu prowizji oraz dodano wysylanie emaila gdy kierownik blokuje prowizje

Pliki:
1 zmodyfikowane

Legenda:

Bez zmian
Dodane
Usunięte
  • trunk/BazaReklam/ProvisionForm.cs

    r677 r797  
    55using System.Data.SqlClient; 
    66using System.Windows.Forms; 
    7  
     7using Baza_Reklam.Classes; 
    88using Baza_Reklam.Classes.Interfaces; 
    99using Baza_Reklam.Classes.Helpers; 
     
    112112            try 
    113113            { 
     114                SaveResult(); 
     115 
    114116                conn = new SqlConnection(ConnString.getConnString().Value); 
    115117                conn.Open(); 
     
    188190            try 
    189191            { 
     192                SaveResult(); 
     193 
    190194                command.ExecuteNonQuery(); 
    191195                transaction.Commit(); 
     
    229233            if (Validate()) 
    230234            { 
    231                 pLANBindingSource.EndEdit(); 
    232                 pLANTableAdapter.Update(rEKLAMADataSet.PLAN); 
     235                if (prowizjeDataGridView.SelectedCells.Count!=1) 
     236                { 
     237                    MessageBox.Show("Proszê zaznaczyæ tylko jedn¹ komórkê."); 
     238                    Cursor = Cursors.Default; 
     239                    return; 
     240                } 
     241                 
     242                SaveResult(); 
     243 
     244                MessageBox.Show("Zmiany zapisane"); 
    233245            } 
    234246            Cursor = Cursors.Default; 
    235  
    236             MessageBox.Show("Zmiany zapisane"); 
    237247        } 
    238248 
     
    324334 
    325335 
    326             btnBlockProvision.Visible = User.Instance().IsKsiegowosc; 
    327             if (!User.Instance().IsKsiegowosc) return; 
     336            btnBlockProvision.Visible = User.Instance().IsKierownik; 
     337            if (!User.Instance().IsKierownik) return; 
    328338 
    329339            _isProvisionBlocked = 
     
    367377        private void prowizjeDataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e) 
    368378        { 
    369             if (Validate()) 
    370             { 
    371                 if (prowizjeDataGridView.Columns[e.ColumnIndex].Name == "PR_PROWIZJI") 
     379            if (prowizjeDataGridView.Columns[e.ColumnIndex].Name != "PR_PROWIZJI") return; 
     380 
     381            CorrectBonusPercentage(e.ColumnIndex, e.RowIndex); 
     382        } 
     383 
     384        private void CorrectBonusPercentage(int column, int row) 
     385        { 
     386            if (prowizjeDataGridView.Columns[column].Name != "PR_PROWIZJI") return; 
     387 
     388            if (prowizjeDataGridView.Columns[column].Name == "PR_PROWIZJI") 
     389            { 
     390                if (Convert.ToDecimal(prowizjeDataGridView[column, row].Value) >= 1) 
    372391                { 
    373                     if (Convert.ToDecimal(prowizjeDataGridView[e.ColumnIndex, e.RowIndex].Value) >= 1) 
    374                     { 
    375                         prowizjeDataGridView[e.ColumnIndex, e.RowIndex].Value = Convert.ToDecimal(prowizjeDataGridView[e.ColumnIndex, e.RowIndex].Value) / 100; 
    376                     } 
     392                    prowizjeDataGridView[column, row].Value = 
     393                        Convert.ToDecimal(prowizjeDataGridView[column, row].Value) / 100; 
    377394                } 
    378             } 
     395            }  
     396        } 
     397 
     398        private void SaveResult() 
     399        { 
     400            CorrectBonusPercentage(prowizjeDataGridView.SelectedCells[0].ColumnIndex, prowizjeDataGridView.SelectedCells[0].RowIndex); 
     401            pLANBindingSource.EndEdit(); 
     402            pLANTableAdapter.Update(rEKLAMADataSet.PLAN); 
    379403        } 
    380404 
     
    394418            } 
    395419 
     420            CorrectBonusPercentage(e.ColumnIndex, e.RowIndex); 
     421 
    396422            ukrytyLabel.Select(); 
    397423            prowizjeDataGridView.EndEdit(); 
    398424            pLANBindingSource.EndEdit(); 
    399425 
    400             if (prowizjeDataGridView.Columns[e.ColumnIndex].Name == "PR_PROWIZJI") 
    401             { 
    402                 if (Convert.ToDecimal(prowizjeDataGridView[e.ColumnIndex, e.RowIndex].Value) >= 1) 
    403                 { 
    404                     prowizjeDataGridView[e.ColumnIndex, e.RowIndex].Value = Convert.ToDecimal(prowizjeDataGridView[e.ColumnIndex, e.RowIndex].Value) / 100; 
    405                 } 
    406             } 
    407  
    408426            REKLAMADataSet.PLANDataTable changes = rEKLAMADataSet.PLAN.GetChanges(DataRowState.Modified) as 
    409427                 REKLAMADataSet.PLANDataTable; 
     
    462480        private void btnBlockProvision_Click(object sender, EventArgs e) 
    463481        { 
    464             if (!User.Instance().IsKsiegowosc) return; 
     482            if (!User.Instance().IsKierownik) return; 
    465483 
    466484            if (!_isProvisionBlocked.HasValue) return; 
     
    480498            aGENCITableAdapter.FillByIdAgencji(sLOWNIKDataSet.AGENCI, agencja); 
    481499            pLANTableAdapter.FillByAgencja(rEKLAMADataSet.PLAN, rok, miesiac, agencja); 
     500 
     501            if (_isProvisionBlocked.Value) 
     502                SendEmailNotification(); 
    482503        } 
    483504 
     
    487508            btnBlockProvision.Checked = isBlocked; 
    488509        } 
     510 
     511        private void SendEmailNotification() 
     512        { 
     513            string selectedAgencja = agencjaToolStripComboBox.Control.Text; 
     514            ISmtpConfiguration smtpConfig = new SmtpConfiguration(); 
     515            IEmailSender emailSender = new EmailSender(smtpConfig); 
     516            emailSender.From = ConfigurationHelper.GetSettingByKey("Application.Email.From"); 
     517            emailSender.To.AddRange(ConfigurationHelper.GetSettingByKey("Application.Email.Prowizje.To").Split(';')); 
     518            emailSender.Subject = string.Format(ConfigurationHelper.GetSettingByKey("Application.Email.Prowizje.Subject"), selectedAgencja); 
     519            emailSender.Body = string.Format(ConfigurationHelper.GetSettingByKey("Application.Email.Prowizje.Body"), selectedAgencja, User.Instance().Imie + " " + User.Instance().Nazwisko, "\n", DateTime.Now); 
     520            emailSender.Send(); 
     521        } 
    489522    } 
    490523}