private int RicevutePeriodo(DateTime inizio, DateTime fine, SoggettoEconomico soggetto)
        {
            ClassNumerazione numerazione = new ClassNumerazione();

            XPCollection <Vendita> vendite = new XPCollection <Vendita>(this.unitOfWork1);

            vendite.Criteria = new GroupOperator(GroupOperatorType.And, new CriteriaOperator[] {
                new BinaryOperator("Struttura.Oid", _Struttura.Oid),
                new BinaryOperator("DataContabile", inizio, BinaryOperatorType.GreaterOrEqual),
                new BinaryOperator("DataContabile", fine, BinaryOperatorType.LessOrEqual)
            });

            foreach (Vendita vendita in vendite)
            {
                bool soggettoEsterno = false;
                if (soggetto != null)
                {
                    foreach (var rigaVenditaVariante in vendita.RigheVenditaVariante)
                    {
                        if (rigaVenditaVariante.Card != null &&
                            rigaVenditaVariante.Variante.Biglietto.Gestore.Oid == soggetto.Oid)
                        {
                            soggettoEsterno = true;
                        }
                    }
                }

                foreach (Stampa stampa in vendita.Stampe)
                {
                    foreach (RigaStampaIngresso riga in stampa.RigheStampaIngresso)
                    {
                        if (riga.Ingresso.SoggettoEconomico.Oid == soggetto.Oid || soggettoEsterno)
                        {
                            numerazione.Add(stampa.Vendita.Postazione, stampa.NumeroProgressivo, stampa.Vendita.DataContabile.Year);
                        }
                    }
                }
            }

            return(numerazione.NB());
        }
        private void simpleButtonStampa_Click(object sender, EventArgs e)
        {
            int mesi = (int)this.radioGroupPeriodo.EditValue;
            SoggettoEconomico soggetto = this.lookUpEdit1.EditValue as SoggettoEconomico;

            if (soggetto == null || _Struttura.SoggettoEconomico == soggetto)
            {
                ReportQ1(mesi);
            }
            else
            {
                if (mesi == 12)
                {
                    ReportQ1A(soggetto);
                }
                else
                {
                    XtraMessageBox.Show("solo per 12 mesi");
                }
            }
        }
        private string RicevuteMesePeriodo(DateTime dateTime, SoggettoEconomico soggetto)
        {
            DateTime mese = new DateTime(dateTime.Year, dateTime.Month, 1);

            ClassNumerazione numerazione = new ClassNumerazione();

            XPCollection <Vendita> vendite = new XPCollection <Vendita>(this.unitOfWork1);

            vendite.Criteria = new GroupOperator(GroupOperatorType.And, new CriteriaOperator[] {
                new BinaryOperator("Struttura.Oid", _Struttura.Oid),
                new BinaryOperator("DataContabile", mese, BinaryOperatorType.GreaterOrEqual),
                new BinaryOperator("DataContabile", mese.AddMonths(1).AddDays(-1), BinaryOperatorType.LessOrEqual)
            });

            foreach (Vendita vendita in vendite)
            {
                foreach (Stampa stampa in vendita.Stampe)
                {
                    if (soggetto == null)
                    {
                        numerazione.Add(stampa.Vendita.Postazione, stampa.NumeroProgressivo, stampa.Vendita.DataContabile.Year);
                    }
                    else
                    {
                        foreach (RigaStampaIngresso riga in stampa.RigheStampaIngresso)
                        {
                            if (riga.Ingresso.SoggettoEconomico.Oid == soggetto.Oid)
                            {
                                numerazione.Add(stampa.Vendita.Postazione, stampa.NumeroProgressivo, stampa.Vendita.DataContabile.Year);
                            }
                        }
                    }
                }
            }

            return(numerazione.EB());
        }
示例#4
0
        internal void Init(List <DatiReportQ1> elenco, Struttura struttura, DateTime inizio, SoggettoEconomico destinazione)
        {
            foreach (DatiReportQ1 dati in elenco)
            {
                this.bindingSource1.Add(dati);
            }

            this.xrLabelT1.Text = string.Format("{0} - {1} - CONTO DELLA GESTIONE DELL'AGENTE CONTABILE ESTERNO COMPILATO PER {2} - ANNO {3}",
                                                struttura.Descrizione,
                                                struttura.SoggettoEconomico.RagioneSociale,
                                                destinazione.RagioneSociale,
                                                inizio.Year).ToUpper();

            this.xrLabelAgente.Text = string.Format("L'agente contabile {0}", struttura.Descrizione);
            this.xrLabelNome.Text   = struttura.Responsabile;
            xrTableCellNote.Text    = string.Format("Numerazione compresa in quella complessiva della biglietteria elettronica di: {0}", struttura.SoggettoEconomico.RagioneSociale);
        }
        private void ReportQ1A(SoggettoEconomico soggetto)
        {
            DateTime inizio = new DateTime(_Inizio.Year, 1, 1);
            DateTime fine   = new DateTime(_Inizio.Year, 12, 31);

            XPCollection <Versamento> versamenti = new XPCollection <Versamento>(this.unitOfWork1);
            GroupOperator             tipo       =
                new GroupOperator(GroupOperatorType.Or, new CriteriaOperator[] {
                new BinaryOperator("Tipologia", EnumTipologiaVersamento.Versamento_AdAltriEnti)
            });

            versamenti.Criteria =
                new GroupOperator(GroupOperatorType.And, new CriteriaOperator[] {
                new BinaryOperator("Struttura.Oid", _Struttura.Oid),
                new BinaryOperator("InizioPeriodo", inizio, BinaryOperatorType.GreaterOrEqual),
                new BinaryOperator("FinePeriodo", fine, BinaryOperatorType.LessOrEqual),
                tipo
            });
            versamenti.Sorting = new SortingCollection(new SortProperty[] { new SortProperty("DataVersamento", DevExpress.Xpo.DB.SortingDirection.Ascending) });

            List <DatiReportQ1> elenco = new List <DatiReportQ1>();

            foreach (Versamento item in versamenti)
            {
                DatiReportQ1Sub dati = new DatiReportQ1Sub();

                dati.Quietanza = item.Quietanza;
                switch (item.Tipologia)
                {
                case EnumTipologiaVersamento.Versamento_AdAltriEnti:
                    dati.Importo = -item.ContanteAltriEnti;
                    break;

                default:
                    throw new Exception(String.Format("Valore (versamento.tipologia) non previsto: {0}", item.Tipologia));
                }

                if (string.IsNullOrEmpty(item.Quietanza))
                {
                    XtraMessageBox.Show("Errore ReportQ1A: non sono state inserite tutte le quietanze del periodo considerato.", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    //return;
                }

                DatiReportQ1 target = null;
                foreach (DatiReportQ1 datiReportQ1 in elenco)
                {
                    if (datiReportQ1.MeseInizio == item.InizioPeriodo.Month)
                    {
                        target = datiReportQ1;
                    }
                }

                if (target == null)
                {
                    target                 = new DatiReportQ1();
                    target.Periodo         = string.Format("{0:MMMM} - {1:MMMM}", item.InizioPeriodo, item.FinePeriodo).ToUpper();
                    target.MeseInizio      = item.InizioPeriodo.Month;
                    target.RicevutePeriodo = string.Format("n. {0} biglietti", RicevutePeriodo(item.InizioPeriodo, item.FinePeriodo, soggetto));
                    target.ImportoPeriodo  = 0;
                    target.Elenco          = new List <DatiReportQ1Sub>();

                    elenco.Add(target);
                }

                target.Elenco.Add(dati);
                target.CalcolaTotale();
            }

            XtraReportQ1A report = new XtraReportQ1A();

            report.Init(elenco, _Struttura, inizio, soggetto);

            report.ShowRibbonPreviewDialog();
        }
示例#6
0
        private void simpleButtonRegistra_Click(object sender, EventArgs e)
        {
            // controlli ..
            _Inizio = this.dateEditInizioPeriodo.DateTime.Date;
            _Fine   = this.dateEditFinePeriodo.DateTime.Date;

            if (_Fine < _Inizio)
            {
                // errore
                XtraMessageBox.Show("Data inizio periodo maggiore della data di fine.", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (_Fine.Month != _Inizio.Month)
            {
                // errore
                XtraMessageBox.Show("Inizio e Fine periodo devono essere nello stesso mese.", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (_Fine.Year != _Inizio.Year)
            {
                // errore
                XtraMessageBox.Show("Inizio e Fine periodo devono essere nello stesso anno.", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (_Fine >= DateTime.Now.Date)
            {
                // errore
                XtraMessageBox.Show("La data di fine periodo non può essere oggi o nel futuro.", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            //if (this.dateEditDataVersamento.DateTime.Date > DateTime.Now.Date)
            //{
            //    // errore
            //    XtraMessageBox.Show("La data del versamento non può essere nel futuro.", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error);
            //    return;
            //}

            Guid gruppo = Guid.NewGuid();

            Versamento vcq = new Versamento(this.unitOfWork1);

            vcq.DataVersamento    = this.dateEditDataVersamento.DateTime.Date;
            vcq.InizioPeriodo     = _Inizio;
            vcq.FinePeriodo       = _Fine;
            vcq.Tipologia         = EnumTipologiaVersamento.Incasso_Contanti;
            vcq.Incassi           = this.spinEditVersamento.Value;
            vcq.Pos               = 0;
            vcq.PosAltriEnti      = 0;
            vcq.ImportoVersato    = this.spinEditVersamento.Value;
            vcq.Struttura         = _Struttura;
            vcq.SoggettoEconomico = null;
            if (this.lookUpEditBeneficiario.EditValue != null)
            {
                SoggettoEconomico soggetto = this.lookUpEditBeneficiario.EditValue as SoggettoEconomico;
                if (soggetto != null && soggetto.Oid != _Struttura.SoggettoEconomico.Oid)
                {
                    vcq.Incassi           = 0;
                    vcq.SoggettoEconomico = soggetto;
                    vcq.ContanteAltriEnti = this.spinEditVersamento.Value;
                    vcq.Tipologia         = EnumTipologiaVersamento.Incasso_Contanti_AltriEnti;
                }
            }
            vcq.Quietanza = this.textEditQuietanza.Text;
            vcq.Gruppo    = gruppo;
            vcq.Save();

            this.unitOfWork1.CommitChanges();

            DialogResult = DialogResult.OK;
        }
        private decimal ImportoVendite(Struttura struttura, DateTime inizio, DateTime fine, SoggettoEconomico soggetto)
        {
            XPCollection <Vendita> vendite = new XPCollection <Vendita>(this.unitOfWork1);

            vendite.Criteria = new GroupOperator(GroupOperatorType.And, new CriteriaOperator[] {
                new BinaryOperator("Struttura", struttura),
                new BinaryOperator("DataContabile", inizio, BinaryOperatorType.GreaterOrEqual),
                new BinaryOperator("DataContabile", fine, BinaryOperatorType.LessOrEqual)
            });

            decimal result = 0;

            foreach (Vendita vendita in vendite)
            {
                foreach (RigaVenditaVariante rigaVenditaVariante in vendita.RigheVenditaVariante)
                {
                    if (rigaVenditaVariante.Variante.Biglietto.Gestore == soggetto)
                    {
                        result += rigaVenditaVariante.PrezzoTotale;
                    }
                }
            }

            return(result);
        }