/// <summary> /// Metodo utilizzato dal client per inserire una nuova scrittura nel conto /// </summary> /// <param name="part">Questa è la scrittura che deve essere inserita nel conto già correttamente valorizzata</param> /// <param name="contoContropartita">il conto di contropartita è /// il conto dove la scrittura gemella deve essere aggiunta per la quadratura di tutto il bliancio</param> /// <param name="scritturaPartitaDoppia">il parametro partita doppia serve per indicare se la scrittura corrente è la /// scrittura che sarà scritta nella contropartita: lo stesso metodo è utilizzato per aggiungere la scrittura al conto principale che al conto di contropartita. /// Se sto aggiungendo la scrittura al conto principale allora il parametro sarà negativo. Vedi implementazione....</param> public virtual void Add(Scrittura part, Conto contoContropartita, bool scritturaPartitaDoppia) { if (scritturaPartitaDoppia == false) { if (contoContropartita != null) { if (this.Id.Equals(contoContropartita.Id)) { throw new Exception("Impossibile scrivere una scrittura in partita doppia sullo stesso conto!"); } } } part.ParentId = this.Id; if (scritturaPartitaDoppia) { _sublist.Add(part); return; } AddScritturaPartitaDoppia(contoContropartita, part); }
internal Scrittura(Scrittura scrittura, bool negateImporto, string descrizioneConto) { _id = scrittura.Id; _autoGenerated = true; if (negateImporto) { _importo = scrittura.Importo * -1; } else { _importo = scrittura.Importo; } // _causale = "(CONTO: " + descrizioneConto +")" + scrittura.Causale; _causale = "******" + scrittura.Causale; _date = scrittura.Date; _numeroPezza = scrittura.NumeroPezza; _tipoOperazione = scrittura.TipoOperazione; _parentId = scrittura.ParentId; }
private void AddScritturaPartitaDoppia(Conto contoContropartita, Scrittura scrittura) { //mi serve per impostare il nome del campo contropartita su ogni scrittura //presente sul conto string nomeContropartita = contoContropartita.Description; scrittura.Contropartita = nomeContropartita; scrittura.IdContropartita = contoContropartita.Id; //aggiungo l'elemento alla lista _sublist.Add(scrittura); //aggiungo l'elemnto alla cassa Scrittura s = new Scrittura(scrittura, Conto.NegateImportoOperazione(this, contoContropartita), _description); s.ParentName = contoContropartita.Description; //se invece sto inserendo la scrittura //di contropartita ne scrivo il conto di contropartita s.Contropartita = this._description; s.IdContropartita = this._id; contoContropartita.Add(s, contoContropartita, true); }
public bool Matches(Scrittura scrittura) { bool result = true; if (FilterByDate) { if (scrittura.Date.Date < DateFrom.Date) { return(false); } if (scrittura.Date.Date > DateTo.Date) { return(false); } } if (!NotFilterAutogenerated) { if (scrittura.AutoGenerated) { return(false); } } if (!string.IsNullOrEmpty(FilterCausale)) { if (!scrittura.Causale.ToLower().Contains(FilterCausale.ToLower())) { return(false); } } if (!string.IsNullOrEmpty(FilterPezza)) { if (!scrittura.NumeroPezza.ToLower().Contains(FilterPezza.ToLower())) { return(false); } } if (!string.IsNullOrEmpty(FilterRiferimento1)) { if (!scrittura.Riferimento1.ToLower().Contains(FilterRiferimento1.ToLower())) { return(false); } } if (!string.IsNullOrEmpty(FilterRiferimento2)) { if (!scrittura.Riferimento2.ToLower().Contains(FilterRiferimento2.ToLower())) { return(false); } } if (!string.IsNullOrEmpty(FilterRiferimento3)) { if (!scrittura.Riferimento3.ToLower().Contains(FilterRiferimento3.ToLower())) { return(false); } } return(result); }
public override void Add(Scrittura part, Conto cassa, bool partitaDoppia) { throw new InvalidOperationException("Tentativo di aggiungere sottoelementi ad un conto gestito a saldo"); }
public void Remove(string idScrittura, AbstractBilancio cp) { Scrittura s = FindNodeById(idScrittura) as Scrittura; if (s == null) { return; } //commento la riga di codice che verifica la presenza di una //scrittura autogenerata in un conto finanziario. Tale scrittura puo' //trovarsi in qualsiasi tipo di conto. //if (CalculateTipoConto() == TipoConto.Finanza) if (s.AutoGenerated == true) { throw new InvalidOperationException("Impossibile eliminare una scrittura autogenerata. Per eliminarla procedere alla eliminazione della scrittura dal relativo conto!"); } //se il conto di contropartita risulta nullo vuol dire che devo cercare la scrittura //di cotropartita nell'albero delle entrate o delle uscite a seconda che il tipoConto //sia entrate o uscite //if (contoContropartita != null) //{ BilancioNew bil = cp as BilancioNew; if (bil == null) { throw new InvalidOperationException("Impossibile convertire la contropartita di una partita di giro in un oggetto Bilancio da cui ricercare i conto di contropartita!!!"); } Conto contoContropartita = bil.FindNodeById(s.IdContropartita) as Conto; Scrittura s1 = contoContropartita.FindNodeById(s.Id) as Scrittura; if (s1 != null) { contoContropartita.Remove(s1); } //} //else //{ // TipoConto c = CalculateTipoConto(); // //se la contropartita è nulla vuol dire che ho passato l'intero bilancio // Bilancio bil = cp as Bilancio; // // se è nullo c'è un errore imprevisto // if (bil == null) // throw new InvalidOperationException("Impossibile convertire la contropartita di una partita di giro in un oggetto Bilancio da cui ricercare i conto di contropartita!!!"); // //***************************** // //definisco l'id della classificazione dove ricercare il conto // string idClassificazione = ""; // if (c == TipoConto.Entrate) // //dovro' cercare la scrittura di contropartita nelle spese // idClassificazione = "S"; // else // //dovro' cercare la scrittura di contropartita nelle entrate // idClassificazione = "E"; // //rimuovo la scrittura previa ricerca // Classificazione clas = bil.FindNodeById(idClassificazione) as Classificazione; // //cerco la scritttura // Scrittura s1 = clas.FindNodeById(s.Id) as Scrittura; // if (s1 != null) // { // //ne recupero il conto padre // Conto cc = clas.FindNodeById(s1.ParentId) as Conto; // //la elimino dal conto // cc.Remove(s1); // } // //************************************************* //} _sublist.Remove(s); }