Example #1
0
        public void addVocePagamento(VocePagamento vp){
            if (vp == null) return;

            if (_dettaglio == null)
                _dettaglio = new List<VocePagamento>();
            _dettaglio.Add(vp);
        }
        private void btnPrint_Click(object sender, RoutedEventArgs e)
        {
            //se ho già il report aperto non lo apro un altro
            if (rpw != null && rpw.IsVisible) return;

            //validazione
            //validazione dati
            int numero;
            try
            {
                numero = int.Parse(txtboxNum.Text);
            }
            catch (FormatException ex)
            {
                MessageBox.Show("Il n° del pagamento dev'essere un numero", "Errore nel campo numero pagamento", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            if (txtboxPiva.Text.Length != 0 && txtboxPiva.Text.Length != 11)
            {
                MessageBox.Show("La partita IVA deve essere lunga 11 caratteri, inseriti " + txtboxPiva.Text.Length, "Errore nel campo numero pagamento", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            if (txtboxCf.Text.Length != 0 && txtboxCf.Text.Length > 16)
            {
                MessageBox.Show("Il codice fiscale non può superare i 16 caratteri, inseriti " + txtboxCf.Text.Length, "Errore nel campo numero pagamento", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            //prelevo i dati dai controlli 
            pag.IsFattura = (bool)radioButtonFatt.IsChecked;
            pag.Numero = numero;
            pag.Data = (DateTime)datePickerData.SelectedDate;
            pag.Destinatario = txtboxDest.Text;
            pag.Sede = txtboxSede.Text;
            pag.Piva = txtboxPiva.Text;
            pag.Cf = txtboxCf.Text;
            pag.ModoPagamento = txtboxNote.Text;

            //creo la lista delle voci pagamento
            
            //una per ogni attività
            var vplist = new List<VocePagamento>();
            VocePagamento vp;
            if(attivita.Count >0)
                foreach (var att in attivita)
                {
                    vp = new VocePagamento{
                        Causale = att.VoceInStampata, 
                        TotaleIvato = att.Totale
                    };
                    vplist.Add(vp);
                }

            //una unica per i soggiorni
            if (soggiorni.Count > 0)
                vplist.AddRange(getVociPagamentoSoggiorni());

            //creazione report
            rpw = new ReportPagamentoWindow(pag, vplist);
            rpw.Show();
            
        }