示例#1
0
        private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            try
            {
                ScrittureDTO dto = dataGridView1.Rows[e.RowIndex].DataBoundItem as ScrittureDTO;
                if (dto != null)
                {
                    if (dto.AutoGenerated)
                    {
                        dataGridView1.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.FromArgb(0x00, 0x66, 0xFF);
                    }
                    else
                    {
                        if (dto.IdContropartita == "A.D.1")
                        {
                            dataGridView1.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Blue;
                        }
                        else
                        {
                            dataGridView1.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Black;
                        }
                    }

                    if (dataGridView1.Columns[e.ColumnIndex].DataPropertyName == "Importo")
                    {
                        // dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].ValueType = typeof(decimal);
                        e.Value = dto.Importo.ToString("N2");
                    }
                }
            }
            catch (Exception)
            {
            }
        }
示例#2
0
        public void RemoveScrittura()
        {
            try
            {
                ScrittureDTO dto = _view.GridContainer.CurrentObject();

                if (dto != null)
                {
                    _service.RemoveScrittura(dto);
                    _view.GridContainer.BoundList.Remove(dto);
                    if (_view.GridContainer.BoundList.Count == 0)
                    {
                        _view.IsLabelVisible = true;
                    }
                    else
                    {
                        _view.IsLabelVisible = false;
                    }
                    _view.SaldoConto = "Saldo conto: " + _service.Total;
                }
            }
            catch (Exception ex)
            {
                _view.GetSimpleMessageNotificator().Show(ex.Message, "Errore", MessageType.Error);
            }
        }
示例#3
0
        public void RemoveScrittura()
        {
            try
            {
                ScrittureDTO dto = _view.GridContainer.CurrentObject();

                if (dto != null)
                {
                    _service.RemoveScrittura(dto);
                    _view.GridContainer.BoundList.Remove(dto);
                    if (_view.GridContainer.BoundList.Count == 0)
                    {
                        _view.IsLabelVisible = true;
                    }
                    else
                    {
                        _view.IsLabelVisible = false;
                    }

                    //sincronizzo il totale
                    //decimal total = _service.CalculateTotalForSCritture(_view.GridContainer.BoundList);
                    //_view.SetScrittureTotalizzation(total.ToString("c"));
                    _service.ScriviDettagliSaldoConto(_view, _idConto);
                }
            }
            catch (Exception ex)
            {
                _view.GetSimpleMessageNotificator().Show(ex.Message, "Errore", MessageType.Error);
            }
        }
示例#4
0
        private void Update()
        {
            //costruisco il dto da validare con tutti i dati necessari del dto corrente
            //n.b. il dto corrente non deve essere modificato se non dopo
            //aver passato indenne l'aggiornamento nella stato di dominio
            ScrittureDTO p = new ScrittureDTO(_current);

            p.Importo     = _view.SelecteImporto;
            p.Date        = _view.SelectedDate;
            p.Causale     = _view.SelectedCausale;
            p.NumeroPezza = _view.SelectedNumeroPezza;


            //lo valido
            ValidateInput(p);


            //a questo punto posso chiedere al servizio di aggiornare l'oggetto
            _service.UpdateScrittura(p);

            //se non si è verificato nessun errore sincronizzo anche l'oggetto dto corrente
            _current.Date           = p.Date;
            _current.NumeroPezza    = p.NumeroPezza;
            _current.Importo        = p.Importo;
            _current.TipoOperazione = p.TipoOperazione;
            _current.Causale        = p.Causale;
            _current.ParentName     = p.ParentName;

            //adesso confermo le modifiche al grid contasiner
            _subViewSyncronyzer.GridContainer.RefreshCurrent();
            _subViewSyncronyzer.SaldoConto = "Saldo conto: " + _service.Total;
        }
示例#5
0
        public void Duplicate()
        {
            ScrittureDTO dto = _view.GridContainer.CurrentObject();

            if (dto == null)
            {
                _view.GetSimpleMessageNotificator().Show("Selezionare una scrittura", "Messaggio", MessageType.Exclamation);

                return;
            }

            if (dto.AutoGenerated)
            {
                _view.GetSimpleMessageNotificator().Show("Impossibile duplicare una scrittura autogenerata!", "Messaggio", MessageType.Error);

                return;
            }



            ScritturaSingolaPresenter presenter = new ScritturaSingolaPresenter(_view.ScritturaSingolaView, _service, _idConto, _view, dto);


            presenter.InitializeForm();


            presenter.StartDialog();
        }
示例#6
0
        private void FillRow(ScrittureDTO item, int row, bool groupByConto, int offset)
        {
            Object[] values;

            values = CreateArrayData(item, groupByConto);

            _handler.FillExcelRow(_handler.CurrentSheet, row, values, offset);
        }
示例#7
0
 public ScritturaSingolaContoRLSTPresenter(IScritturaSingolaContoRLSTFormView view, ContoRLSTService service, ScrittureDTO dto, IScrittureContoRLSTFormView scrittureView)
 {
     _current            = dto;
     _subViewSyncronyzer = scrittureView;
     _service            = service;
     _view = view;
     _view.SetPresenter(this);
 }
示例#8
0
 //utilizzato per la funzione DuplicateScrittura
 public ScritturaSingolaPresenter(IScritturaSingloaView view, BilancioService service, string idConto, IScrittureFormView subViewSyncronyzer, ScrittureDTO prototype)
 {
     _idConto = idConto;
     _service = service;
     _view    = view;
     _view.SetPresenter(this);
     _subViewSyncronyzer = subViewSyncronyzer;
     _action             = ContoActionType.New;
     _current            = prototype;
 }
示例#9
0
 //usato per la funzione ShowScrittura
 public ScritturaSingolaPresenter(IScritturaSingloaView view, BilancioService service, ScrittureDTO current, IScrittureFormView subViewSyncronyzer)
 {
     _idConto = current.ParentId;
     _current = current;
     _service = service;
     _view    = view;
     _view.SetPresenter(this);
     _subViewSyncronyzer = subViewSyncronyzer;
     _action             = ContoActionType.Modify;
 }
示例#10
0
        private void CreateNew()
        {
            ScrittureDTO p = new ScrittureDTO();

            p.Importo        = _view.SelecteImporto;
            p.Date           = _view.SelectedDate;
            p.Causale        = _view.SelectedCausale;
            p.NumeroPezza    = _view.SelectedNumeroPezza;
            p.TipoOperazione = _view.ComboTipoOperazione.SelectedItem;

            //imposto i dati aggiuntivi
            if (_view.ComboPersonale.Text == null)
            {
                p.Riferimento3 = "";
            }
            else
            {
                p.Riferimento3 = _view.ComboPersonale.Text;
            }

            if (_view.ComboEnte.Text == null)
            {
                p.Riferimento2 = "";
            }
            else
            {
                p.Riferimento2 = _view.ComboEnte.Text;
            }

            if (_view.ComboSettore.Text == null)
            {
                p.Riferimento1 = "";
            }
            else
            {
                p.Riferimento1 = _view.ComboSettore.Text;
            }


            //lo valido
            ValidateInput(p);


            _service.AddScrittura(_idConto, p, _idContropartita);

            //se non c'è nessun errore
            //sincronizzo
            _subViewSyncronyzer.GridContainer.BoundList.Add(TipoOperazioneDecoder.TranslateDomainValuesToGUIValues(p, _subViewSyncronyzer.Banca1, _subViewSyncronyzer.Banca2, _subViewSyncronyzer.Banca3, _subViewSyncronyzer.Banca4, _subViewSyncronyzer.Banca5, _subViewSyncronyzer.Banca6));//PrepareValueToBeshownChangingTipoOperazione(p, _subViewSyncronyzer.Banca1, _subViewSyncronyzer.Banca2,_subViewSyncronyzer.Banca3));
            _subViewSyncronyzer.IsLabelVisible = false;
            //sincronizzo il totale
            //decimal total = _service.CalculateTotalForSCritture(_subViewSyncronyzer.GridContainer.BoundList);
            //_subViewSyncronyzer.SetScrittureTotalizzation (total.ToString("c"));
            _service.ScriviDettagliSaldoConto(_subViewSyncronyzer, _idConto);
        }
示例#11
0
        public void RemoveScrittura(ScrittureDTO scrittura)
        {
            Scrittura s = _conto.FindNodeById(scrittura.Id) as Scrittura;

            if (s == null)
            {
                return;
            }


            _conto.Remove(scrittura.Id, null);


            RaiseChangeEvent();
        }
示例#12
0
        public void ShowScrittura()
        {
            ScrittureDTO dto = _view.GridContainer.CurrentObject();

            if (dto == null)
            {
                return;
            }


            ScritturaSingolaContoRLSTPresenter presenter = new ScritturaSingolaContoRLSTPresenter(_view.ScritturaSingolaView, _service, dto, _view);

            presenter.InitializeForm();


            presenter.StartDialog();
        }
示例#13
0
        public void ShowScrittura()
        {
            ScrittureDTO dto = _view.GridContainer.CurrentObject();



            if (dto == null)
            {
                return;
            }


            //ScritturaSingolaPresenter presenter = new ScritturaSingolaPresenter(_view.ScritturaSingolaView, _service, TipoOperazioneDecoder.TranslateDomainValuesToGUIValues(dto, _view.Banca1, _view.Banca2, _view.Banca3), _view);
            ScritturaSingolaPresenter presenter = new ScritturaSingolaPresenter(_view.ScritturaSingolaView, _service, dto, _view);

            presenter.InitializeForm();


            presenter.StartDialog();
        }
示例#14
0
        public void AddScrittura(ScrittureDTO scrittura)
        {
            Scrittura s = new Scrittura(_conto.Id);

            s.TipoOperazione = TipoOperazione.Banca1;
            s.Importo        = Convert.ToDouble(scrittura.Importo);
            s.Causale        = scrittura.Causale;
            s.Date           = scrittura.Date.Date;
            s.NumeroPezza    = scrittura.NumeroPezza;
            s.ParentName     = _conto.Description;


            _conto.Add(s, null, false);

            scrittura.ParentId   = _conto.Id;
            scrittura.ParentName = _conto.Description;
            scrittura.Id         = s.Id;

            RaiseChangeEvent();
        }
示例#15
0
        private void AddRigaNomeConto(ScrittureDTO scrittura, ref int row, decimal saldoConto)
        {
            //Object[] values = new Object[2];

            //values[0] = "";
            //if (!singleContoReport)
            //    values[1] = scrittura.ParentName;
            //else
            //   values[1] =   scrittura.ParentName + " (Saldo iniziale: )" + saldoConto.ToString("c");


            Object[] values = new Object[1];


            if (!singleContoReport)
            {
                values[0] = scrittura.ParentName;
            }
            else
            {
                values[0] = scrittura.ParentName + " (Saldo iniziale: " + saldoConto.ToString("c") + ")";
            }



            //if (scrittura.ParentId.StartsWith("E"))
            //    values[2] = "Conto ricavo";
            //else if (scrittura.ParentId.StartsWith("S"))
            //    values[2] = "Conto spesa";
            //else
            //    values[2] = "Conto finanziario";

            row++;
            _handler.FillExcelRow(_handler.CurrentSheet, row, values, 2);
            row++;
            if (singleContoReport)
            {
                row++;
            }
        }
示例#16
0
        private void SetContropartitaDataOnView()
        {
            ScrittureDTO contropartita = _service.GetScritturaContropartita(_current);

            //sel'id della contropartita è quello di una banca allora metto nella combo direttamente il nome della banca
            if (!contropartita.ParentId.StartsWith("A.D")) //non è un conto delle disponibilità nelle attività( cassa o banche)
            {
                _idContropartita = contropartita.ParentId;
                _view.ComboTipoOperazione.SelectedItem = "Altre contropartite";//(_service.Bilancio.FindNodeById(_idContropartita) as Conto).AreaDiBilancioToString;
                _view.ShowContropartitaDetails(contropartita.ParentName);
            }
            else
            {
                //    //nascondo i dettagli
                _view.HideContropartitadetails();
                //    //normalizzo eventuali contropaartite bancarie con la loro traduzione
                //   // _view.ComboTipoOperazione.SelectedItem = TipoOperazioneDecoder.TranslateDomainValuesToGUIValues(_current, _subViewSyncronyzer.Banca1, _subViewSyncronyzer.Banca2, _subViewSyncronyzer.Banca3).Contropartita;

                //Verifico se si tratta di una delle banche se si la traduco
                if (contropartita.ParentId == "A.D.1") //cassa
                {
                    _view.ComboTipoOperazione.SelectedItem = "Cassa";
                }
                else if (contropartita.ParentId == "A.D.2.a") //banca1
                {
                    _view.ComboTipoOperazione.SelectedItem = _view.Banca1;
                }
                else if (contropartita.ParentId == "A.D.2.b")//banca2
                {
                    _view.ComboTipoOperazione.SelectedItem = _view.Banca2;
                }
                else if (contropartita.ParentId == "A.D.2.c")//banca3
                {
                    _view.ComboTipoOperazione.SelectedItem = _view.Banca3;
                }

                _idContropartita = contropartita.ParentId;
            }
        }
示例#17
0
        private void CreateNew()
        {
            ScrittureDTO p = new ScrittureDTO();

            p.Importo        = _view.SelecteImporto;
            p.Date           = _view.SelectedDate;
            p.Causale        = _view.SelectedCausale;
            p.NumeroPezza    = _view.SelectedNumeroPezza;
            p.TipoOperazione = _view.ComboTipoOperazione.SelectedItem;


            //lo valido
            ValidateInput(p);


            _service.AddScrittura(p);

            //se non c'è nessun errore
            //sincronizzo
            _subViewSyncronyzer.GridContainer.BoundList.Add(p);
            _subViewSyncronyzer.IsLabelVisible = false;
            _subViewSyncronyzer.SaldoConto     = "Saldo conto: " + _service.Total;
        }
示例#18
0
        public void UpdateScrittura(ScrittureDTO scrittura)
        {
            Scrittura s = _conto.FindNodeById(scrittura.Id) as Scrittura;

            if (s == null)
            {
                throw new InvalidOperationException("Tentativo di aggiornare una scrittura non presente nel conto");
            }



            //a questo punto rimuovo la scrittura precedente
            RemoveScrittura(scrittura);



            //eaggiungo la nuova scrittura
            Scrittura s1 = new Scrittura();

            s1.TipoOperazione = TipoOperazione.Banca1;
            s1.Importo        = Convert.ToDouble(scrittura.Importo);
            s1.Causale        = scrittura.Causale;
            s1.Date           = scrittura.Date.Date;
            s1.NumeroPezza    = scrittura.NumeroPezza;
            s1.Id             = scrittura.Id;
            s1.ParentName     = _conto.Description;

            _conto.Add(s1, null, false);


            scrittura.ParentName = _conto.Description;



            RaiseChangeEvent();
        }
示例#19
0
 private void ValidateInput(ScrittureDTO p)
 {
     p.Validate();
 }
示例#20
0
 internal static ScrittureDTO TranslateDomainValuesToGUIValues(ScrittureDTO dto, string banca1, string banca2, string banca3, string banca4, string banca5, string banca6)
 {
     dto.Contropartita = Translate(dto.Contropartita, banca1, banca2, banca3, banca4, banca5, banca6);
     return(dto);
 }
示例#21
0
        private void Update()
        {
            //costruisco il dto da validare con tutti i dati necessari del dto corrente
            //n.b. il dto corrente non deve essere modificato se non dopo
            //aver passato indenne l'aggiornamento nella stato di dominio
            ScrittureDTO p = new ScrittureDTO(_current);

            p.Importo        = _view.SelecteImporto;
            p.Date           = _view.SelectedDate;
            p.Causale        = _view.SelectedCausale;
            p.NumeroPezza    = _view.SelectedNumeroPezza;
            p.TipoOperazione = _view.ComboTipoOperazione.SelectedItem;

            //imposto i dati aggiuntivi
            //imposto i dati aggiuntivi
            if (_view.ComboPersonale.Text == null)
            {
                p.Riferimento3 = "";
            }
            else
            {
                p.Riferimento3 = _view.ComboPersonale.Text;
            }

            if (_view.ComboEnte.Text == null)
            {
                p.Riferimento2 = "";
            }
            else
            {
                p.Riferimento2 = _view.ComboEnte.Text;
            }

            if (_view.ComboSettore.Text == null)
            {
                p.Riferimento1 = "";
            }
            else
            {
                p.Riferimento1 = _view.ComboSettore.Text;
            }

            //lo valido
            ValidateInput(p);


            //a questo punto posso chiedere al servizio di aggiornare l'oggetto
            _service.UpdateScrittura(p, _idContropartita);

            //se non si è verificato nessun errore sincronizzo anche l'oggetto dto corrente
            p                       = TipoOperazioneDecoder.TranslateDomainValuesToGUIValues(p, _subViewSyncronyzer.Banca1, _subViewSyncronyzer.Banca2, _subViewSyncronyzer.Banca3, _subViewSyncronyzer.Banca4, _subViewSyncronyzer.Banca5, _subViewSyncronyzer.Banca6);//.PrepareValueToBeshownChangingTipoOperazione(p, _subViewSyncronyzer.Banca1, _subViewSyncronyzer.Banca2, _subViewSyncronyzer.Banca3);
            _current.Date           = p.Date;
            _current.NumeroPezza    = p.NumeroPezza;
            _current.Importo        = p.Importo;
            _current.TipoOperazione = p.TipoOperazione;
            _current.Causale        = p.Causale;
            _current.ParentName     = p.ParentName;
            _current.Contropartita  = p.Contropartita;
            _current.Riferimento1   = p.Riferimento1;
            _current.Riferimento2   = p.Riferimento2;
            _current.Riferimento3   = p.Riferimento3;

            //adesso confermo le modifiche al grid contasiner
            _subViewSyncronyzer.GridContainer.RefreshCurrent();

            ////sincronizzo il totale
            //decimal total = _service.CalculateTotalForSCritture(_subViewSyncronyzer.GridContainer.BoundList);
            //_subViewSyncronyzer.SetScrittureTotalizzation(total.ToString("c"));
            _service.ScriviDettagliSaldoConto(_subViewSyncronyzer, _idConto);
        }
示例#22
0
        private object[] CreateArrayData(ScrittureDTO item, bool groupByConto)
        {
            if (singleContoReport)
            {
                if (delegheConto)
                {
                    Object[] values = new Object[8];

                    values[0] = "'" + item.Date.ToShortDateString();
                    values[1] = item.Causale;
                    values[2] = item.Riferimento1; //settore
                    values[3] = item.Riferimento2; //ente
                    values[4] = item.NumeroPezza;
                    //values[3] = item.TipoOperazione;
                    values[5] = item.Contropartita;
                    values[6] = item.Importo.ToString("c");
                    values[7] = item.Saldo.ToString("c");;

                    return(values);
                }
                else if (personaleconto)
                {
                    Object[] values = new Object[7];

                    values[0] = "'" + item.Date.ToShortDateString();
                    values[1] = item.Causale;
                    values[2] = item.Riferimento3; //settore
                    values[3] = item.NumeroPezza;
                    //values[3] = item.TipoOperazione;
                    values[4] = item.Contropartita;
                    values[5] = item.Importo.ToString("c");
                    values[6] = item.Saldo.ToString("c");;
                    return(values);
                }
                else
                {
                    Object[] values = new Object[7];

                    values[0] = "'" + item.Date.ToShortDateString();
                    values[1] = item.Causale;
                    values[2] = item.NumeroPezza;
                    //values[3] = item.TipoOperazione;
                    values[3] = item.Contropartita;
                    if (item.Importo > 0)
                    {
                        values[4] = item.Importo.ToString("c");
                        values[5] = "";
                    }
                    else
                    {
                        values[5] = item.Importo.ToString("c");
                        values[4] = "";
                    }

                    values[6] = item.Saldo.ToString("c");;
                    return(values);
                }
            }

            if (!groupByConto)
            {
                Object[] values = new Object[6];

                values[0] = "'" + item.Date.ToShortDateString();
                values[1] = item.ParentName;
                values[2] = item.Causale;
                values[3] = item.NumeroPezza;
                // values[4] = item.TipoOperazione;
                values[4] = item.Contropartita;
                values[5] = item.Importo.ToString("c");

                return(values);
            }
            else
            {
                Object[] values = new Object[5];

                values[0] = "'" + item.Date.ToShortDateString();
                values[1] = item.Causale;
                values[2] = item.NumeroPezza;
                //values[3] = item.TipoOperazione;
                values[3] = item.Contropartita;
                values[4] = item.Importo.ToString("c");



                return(values);
            }
        }
示例#23
0
 private static void Convert(string banca1, string banca2, string banca3, string banca4, string banca5, string banca6, ScrittureDTO item)
 {
     item.Contropartita = ConvertTranslatedValueToNormalValue(item.Contropartita, banca1, banca2, banca3, banca4, banca5, banca6);
 }