Pokaż
Ignoruj:
Data:
2009-04-27 11:12:42 (17 years ago)
Autor:
marek
Opis:

re #165 - merged with latest trunk

Pliki:
1 zmodyfikowane

Legenda:

Bez zmian
Dodane
Usunięte
  • branches/ReklamaReorganizacja/BazaReklam/ZamowieniaForm.cs

    r593 r613  
    66using System.Windows.Forms; 
    77using Baza_Reklam.Classes.Helpers; 
     8using Baza_Reklam.Classes.Interfaces; 
    89 
    910namespace Baza_Reklam 
     
    294295            if (zamowieniaBindingSource.Current == null) return; 
    295296 
    296             if (rEKLAMADataSet.REKLAMA.Rows.Count <= 0) 
    297             { 
    298                 MessageBox.Show("Proszê dodaæ przynajmniej jedn¹ reklamê do zamówienia.", "Faktura"); 
    299                 return; 
    300             } 
    301              
    302             Cursor = Cursors.WaitCursor; 
    303  
    304             DataRowView z = (DataRowView) zamowieniaBindingSource.Current; 
    305             REKLAMADataSet.zamowieniaRow zamowienie = (REKLAMADataSet.zamowieniaRow) z.Row; 
    306  
    307             REKLAMADataSet.KLIENCIRow _klient = 
    308                 (REKLAMADataSet.KLIENCIRow) klienciTableAdapter.GetDataByCustomerId(zamowienie.idKlienta).Rows[0]; 
    309             string errorMessage = czyMoznaZafakturowac(zamowienie, _klient); 
    310  
    311             if (errorMessage != string.Empty) 
    312             { 
    313                 MessageBox.Show(errorMessage); 
     297            try 
     298            { 
     299                Cursor = Cursors.WaitCursor; 
     300 
     301                DataRowView z = (DataRowView) zamowieniaBindingSource.Current; 
     302                REKLAMADataSet.zamowieniaRow zamowienie = (REKLAMADataSet.zamowieniaRow) z.Row; 
     303 
     304                REKLAMADataSet.KLIENCIRow klientRow = 
     305                    (REKLAMADataSet.KLIENCIRow) klienciTableAdapter.GetDataByCustomerId(zamowienie.idKlienta).Rows[0]; 
     306 
     307                InitIssueTables(zamowienie); 
     308 
     309                string errorMessage = CzyMoznaZafakturowac(zamowienie, klientRow); 
     310 
     311                if (errorMessage != string.Empty) 
     312                { 
     313                    MessageBox.Show(errorMessage, "Fakturowanie"); 
     314                    Cursor = Cursors.Default; 
     315                    return; 
     316                } 
     317 
     318                WystawFakture(zamowienie, klientRow, false); 
     319 
     320                RestoreConnections(); 
     321 
     322                zamowieniaBindingSource.ResetBindings(false); 
     323 
     324                fAKTURYBindingSource.MoveLast(); 
     325            } 
     326            finally 
     327            { 
    314328                Cursor = Cursors.Default; 
    315                 return; 
    316             } 
    317  
    318             WystawFakture(zamowienie, _klient, false); 
    319  
    320             RestoreConnections(); 
    321  
    322             zamowieniaBindingSource.ResetBindings(false); 
    323  
    324             fAKTURYBindingSource.MoveLast(); 
    325  
    326             Cursor = Cursors.Default; 
     329            } 
    327330        } 
    328331 
     
    523526        } 
    524527 
    525         private void PobierzOznaczEmisje(REKLAMADataSet.zamowieniaRow zamowienie, REKLAMADataSet.FAKTURYRow naglowekFaktury) 
     528 
     529        private void InitIssueTables(REKLAMADataSet.zamowieniaRow zamowienie) 
    526530        { 
    527531            emisjeTableAdapter.ClearBeforeFill = false; 
    528532            datyWydanTableAdapter.ClearBeforeFill = false; 
     533            rEKLAMADataSet.UKAZE_SIE_W_NR.Clear(); 
     534            rEKLAMADataSet.DatyWydan.Clear(); 
    529535 
    530536            REKLAMADataSet.DatyWydanDataTable t = datyWydanTableAdapter.GetDataByPierwszaEmisjaWZamowieniu(zamowienie.idZamowienia); 
    531  
    532             if (t.Rows.Count == 0) 
    533             { 
    534                 //TODO: moze lepiej uzyc MessageBox'a i return niz wywalac wyjatek...? 
    535                 // wyjatki sa dosc kosztowne dla aplikacji 
    536                 throw new Exception("Nie ma co fakturowaæ!"); 
    537             } 
     537            if (t.Rows.Count <= 0) return; 
    538538 
    539539            DateTime d = t[0].DATA_W; 
     
    575575                reklama.EndEdit(); 
    576576            } 
    577  
    578             if (rEKLAMADataSet.UKAZE_SIE_W_NR.Rows.Count <= 0) 
    579                 throw new ApplicationException("Nie znaleziono ¿adnych emisji do zafakturowania! (" + 
    580                                                zamowienie.idZamowienia + ": " + StringHelper.ListToString(adIds, ",") + ")"); 
    581  
     577        } 
     578 
     579 
     580        private void PobierzOznaczEmisje(REKLAMADataSet.zamowieniaRow zamowienie, REKLAMADataSet.FAKTURYRow naglowekFaktury) 
     581        { 
     582            //InitIssueTables(zamowienie); 
    582583 
    583584            if (zamowienie.IsdataOstatniejZafakturowanejEmisjiNull()) 
     
    635636        { 
    636637            SLOWNIKDataSet.AGENCIRow agent = (SLOWNIKDataSet.AGENCIRow)agenciTableAdapter.GetDataByKodAgenta(zamowienie.kodAgenta).Rows[0]; 
    637             InvoiceProvider invoiceProvider = InvoiceProviderFactory.GetInvoiceProviderById(agent.InvoiceProviderId); 
     638            IInvoiceProvider invoiceProvider = InvoiceProviderFactory.GetInvoiceProviderById(agent.InvoiceProviderId); 
    638639 
    639640 
     
    709710                if (kurs.Count == 0) 
    710711                { 
    711                     throw new Exception("B³¹d przy pobieraniu kursu waluty."); 
     712                    throw new ApplicationException("B³¹d przy pobieraniu kursu waluty."); 
    712713                } 
    713714 
     
    730731         
    731732 
    732         private string czyMoznaZafakturowac(REKLAMADataSet.zamowieniaRow zamowienie, REKLAMADataSet.KLIENCIRow klientRow) 
     733        private string CzyMoznaZafakturowac(REKLAMADataSet.zamowieniaRow zamowienie, REKLAMADataSet.KLIENCIRow klientRow) 
    733734        { 
    734735            string errorMessage = string.Empty; 
     
    738739            errorMessage += zamowienie.IsidKontaNull() ? "Nie wybrano konta. \n" : ""; 
    739740            errorMessage += zamowienie.IssposobZaplatyNull() ? "Nie wybrano sposobu zap³aty. \n" : ""; 
    740             errorMessage += klientRow.IsCountryNull() || klientRow.Country == string.Empty ? "Brak pañstwa klienta. \n" : ""; 
    741             errorMessage += klientRow.IsAdres_FkaturaNull() || klientRow.Adres_Fkatura == string.Empty ? "Brak adresu faktury klienta. \n" : ""; 
    742             errorMessage += klientRow.IsNipNull() || klientRow.Nip == string.Empty ? "Brak nipu klienta. \n" : ""; 
     741            errorMessage += string.IsNullOrEmpty(klientRow.Country) ? "Brak pañstwa klienta. \n" : ""; 
     742            errorMessage += string.IsNullOrEmpty(klientRow.Adres_Fkatura) ? "Brak adresu faktury klienta. \n" : ""; 
     743            errorMessage +=  string.IsNullOrEmpty(klientRow.Nip) ? "Brak nipu klienta. \n" : ""; 
    743744 
    744745            if (klientRow.Country != "Polska") 
    745             { 
    746                 errorMessage += klientRow.IsnipKrajNull() || klientRow.nipKraj == string.Empty ? "Brak symbolu kraju w nipie klienta. \n" : ""; 
     746                errorMessage += string.IsNullOrEmpty(klientRow.nipKraj) ? "Brak symbolu kraju w nipie klienta. \n" : ""; 
     747 
     748            if (rEKLAMADataSet.REKLAMA.Rows.Count <= 0) 
     749            { 
     750                // try to load the ads once again in case something went wrong before... 
     751                rEKLAMATableAdapter.FillByIdZamowienia(rEKLAMADataSet.REKLAMA, zamowienie.idZamowienia); 
     752 
     753                if (rEKLAMADataSet.REKLAMA.Rows.Count <= 0) 
     754                    errorMessage += "Proszê dodaæ przynajmniej jedn¹ reklamê do zamówienia \n"; 
    747755            } 
    748756 
    749757            if (rEKLAMADataSet.REKLAMA.Select("[ZATWIERDZONO DO DRUKU] = 0").Length > 0) 
    750             { 
    751758                errorMessage += "W zamówieniu s¹ reklamy niezatwierdzone do druku \n"; 
    752             } 
     759 
     760            if (errorMessage.Length > 0) 
     761                return errorMessage; 
     762 
     763            if (rEKLAMADataSet.UKAZE_SIE_W_NR.Rows.Count <= 0) 
     764            { 
     765                errorMessage += "Nie znaleziono ¿adnych emisji do zafakturowania \n"; 
     766                return errorMessage; 
     767            } 
     768 
     769            REKLAMADataSet.DatyWydanDataTable t = datyWydanTableAdapter.GetDataByPierwszaEmisjaWZamowieniu(zamowienie.idZamowienia); 
     770            if (t.Rows.Count == 0) 
     771                errorMessage += "Nie znaleziono ¿adnych emisji do zafakturowania \n"; 
    753772 
    754773            return errorMessage; 
     
    893912        private REKLAMADataSet.FAKTURYRow utworzNaglowekKorekty(REKLAMADataSet.FAKTURYRow faktura) 
    894913        { 
    895             SLOWNIKDataSet.AGENCIRow agent = (SLOWNIKDataSet.AGENCIRow)agenciTableAdapter.GetDataByKodAgenta(faktura.NUMER_ROZ).Rows[0]; 
    896             InvoiceProvider invoiceProvider = InvoiceProviderFactory.GetInvoiceProviderById(agent.InvoiceProviderId); 
    897  
    898  
    899914            REKLAMADataSet.FAKTURYRow naglowekKorekty = rEKLAMADataSet.FAKTURY.NewFAKTURYRow(); 
    900915            naglowekKorekty.KOREKTA = true; 
     
    906921 
    907922            naglowekKorekty.NUMER_ROZ = faktura.NUMER_ROZ; 
    908             naglowekKorekty.NUMER = DbUtils.numerNowejFakturyKorekty(DateTime.Today.Year); 
     923            naglowekKorekty.NUMER = FakturaHelper.GetNewCorrectionInvoiceNumber(DateTime.Today.Year, faktura.SystemKsiegowyId); 
    909924            naglowekKorekty.NUMER_ROK = DateTime.Today.Year; 
    910925            naglowekKorekty.DATA_WYSTAWIENIA = DateTime.Today; 
     
    919934 
    920935            naglowekKorekty.MIEJSCOWOSC_WYSTAWIENIA = faktura.MIEJSCOWOSC_WYSTAWIENIA; 
    921             naglowekKorekty.SPRZEDAWCA_ADRES = invoiceProvider.GetAddress(); 
    922             naglowekKorekty.SPRZEDAWCA_NIP = invoiceProvider.TaxNumber; 
     936            naglowekKorekty.SPRZEDAWCA_ADRES = faktura.SPRZEDAWCA_ADRES; 
     937            naglowekKorekty.SPRZEDAWCA_NIP = faktura.SPRZEDAWCA_NIP; 
    923938            naglowekKorekty.SystemKsiegowyId = faktura.SystemKsiegowyId; 
    924939 
     
    944959            if (!faktura.Iswaluta_mianoNull()) 
    945960            { 
    946                 naglowekKorekty.SPRZEDAWCA_NIP = invoiceProvider.TaxCountryPrefix + " " + invoiceProvider.TaxNumber; 
     961                naglowekKorekty.SPRZEDAWCA_NIP = faktura.SPRZEDAWCA_NIP; 
    947962                naglowekKorekty.NABYWCA_NIP = faktura.NABYWCA_NIP; 
    948963                naglowekKorekty.waluta_miano = faktura.waluta_miano; 
     
    13631378            if (zamowieniaBindingSource.Current == null) return; 
    13641379 
    1365             if (rEKLAMADataSet.REKLAMA.Rows.Count <= 0) 
    1366             { 
    1367                 MessageBox.Show("Proszê dodaæ przynajmniej jedn¹ reklamê do zamówienia.", "Faktura proforma"); 
    1368                 return; 
    1369             } 
    1370  
    13711380            Cursor = Cursors.WaitCursor; 
    13721381 
     
    13761385            REKLAMADataSet.KLIENCIRow _klient = 
    13771386                (REKLAMADataSet.KLIENCIRow) klienciTableAdapter.GetDataByCustomerId(zamowienie.idKlienta).Rows[0]; 
    1378             string errorMessage = czyMoznaZafakturowac(zamowienie, _klient); 
     1387 
     1388            InitIssueTables(zamowienie); 
     1389 
     1390            string errorMessage = CzyMoznaZafakturowac(zamowienie, _klient); 
    13791391 
    13801392            if (errorMessage != string.Empty) 
    13811393            { 
    1382                 MessageBox.Show(errorMessage); 
     1394                MessageBox.Show(errorMessage, "Fakturowanie - Proforma"); 
    13831395                Cursor = Cursors.Default; 
    13841396                return; 
     
    13951407            { 
    13961408                DataRow[] rows = rEKLAMADataSet.FAKTURY.Select("id_faktury=" + id); 
    1397                 usunFakture((REKLAMADataSet.FAKTURYRow) rows[0]); 
     1409                if (rows.Length > 0) 
     1410                    usunFakture((REKLAMADataSet.FAKTURYRow) rows[0]); 
     1411                 
    13981412                RestoreConnections(); 
    13991413                Cursor = Cursors.Default;