/// <summary> /// Metoda de clasa ce permite adaugarea unui obiect de tip DClientiPlati /// </summary> /// <param name="pIdClient"></param> /// <param name="pDataPlata"></param> /// <param name="pSumaPlatita"></param> /// <param name="pModalitatePlata"></param> /// <param name="pCursBNR"></param> /// <returns></returns> /// <remarks></remarks> public static int Add(int pIdClient, DateTime pDataPlata, double pSumaPlatita, BDefinitiiGenerale.EnumModalitatePlata pModalitatePlata, double pCursBNR, string pObservatii, BColectieClientiComenzi lComenzi, IDbTransaction pTranzactie) { int id = DClientiPlati.Add(BUtilizator.GetIdUtilizatorConectat(pTranzactie), pIdClient, pDataPlata, pSumaPlatita, Convert.ToInt32(pModalitatePlata), pCursBNR, pObservatii, pTranzactie); if (id > 0) { double valoarePlatita = pSumaPlatita; foreach (var item in lComenzi) { if (valoarePlatita > 0) { if (valoarePlatita >= item.ValoareFinala) { BClientiPlatiComenzi.Add(item.Id, id, item.ValoareFinala, null); valoarePlatita -= item.ValoareFinala; } else { BClientiPlatiComenzi.Add(item.Id, id, valoarePlatita, null); valoarePlatita = 0; } } } } return(id); }
/// <summary> /// Metoda de instanta ce permite inchiderea(dezactivarea) obiectului /// </summary> /// <param name="pInchidere">inchidem sau activam?</param> /// <param name="pMotivInchidere">Motivul inchiderii</param> /// <param name="pTranzactie">Tranzactia</param> /// <remarks>Exceptie daca nu se poate identifica obiectul</remarks> public void Close(bool pInchidere, string pMotivInchidere, IDbTransaction pTranzactie) { if (this.Id <= 0) { throw new IdentificareBazaImposibilaException("BClientiPlati"); } IDbTransaction Tranzactie = null; try { if (pTranzactie == null) { Tranzactie = CCerereSQL.GetTransactionOnConnection(); } else { Tranzactie = pTranzactie; } //Inchidem obiectul in baza de date DClientiPlati.CloseById(BUtilizator.GetIdUtilizatorConectat(Tranzactie), this.Id, pInchidere, pMotivInchidere, Tranzactie); BClientiPlatiComenzi.DeleteByIdPlata(this.Id, Tranzactie); if (pTranzactie == null) { //Facem Comit tranzactiei doar daca aceasta nu a fost transmisa in parametru. Altfel comitul va fi gestionat de functia apelanta CCerereSQL.CloseTransactionOnConnection(Tranzactie, true); } } catch (Exception) { if ((pTranzactie == null) && (Tranzactie != null)) { CCerereSQL.CloseTransactionOnConnection(Tranzactie, false); } throw; } finally { //Reinitializam obiectul pentru a recupera, printre altele, data de inchidere generata de baza de date this.Refresh(pTranzactie); } }
public BColectieClientiFacturi GetListaNeachitateIntegral(BColectieClientiComenzi pComenzi) { BColectieClientiFacturi listaRetur = new BColectieClientiFacturi(); BColectieClientiPlatiComenzi pPlati = BClientiPlatiComenzi.GetByListIdComenzi(pComenzi.GetListaId(), null); double valoare = 0; double platit = 0; BColectieClientiComenzi comenziTemp = new BColectieClientiComenzi(); BColectieClientiPlatiComenzi platiTemp = new BColectieClientiPlatiComenzi(); foreach (var item in this) { //verificam daca a fost facuta plata inainte comenziTemp = pComenzi.GetByIdFactura(item.Id); if (!CUtil.EsteListaVida <BClientiComenzi>(comenziTemp)) { //verificam cat a fost platit platiTemp = pPlati.GetByIdComenzi(comenziTemp.GetListaId()); valoare = comenziTemp.GetValoareTotalaFactura(item.MonedaFactura, item.CursBNR); platit = platiTemp.GetValoarePlatita(); if (valoare - platit > 0) { listaRetur.Adauga(item); } } else { listaRetur.Adauga(item); } //valoare = item.GetValoare(pListaComenzi, this.ctrlLeiEuro.Moneda, this.txtCursSchimb.ValoareDouble); //platit = pListaPlatiCurente.GetByIdComenzi(pListaComenzi.GetListaId()).GetValoarePlatita(); } return(listaRetur); }
public BColectieClientiPlatiComenzi GetListaPlati(IDbTransaction pTranzactie) { return(BClientiPlatiComenzi.GetListByIdFactura(this.Id, pTranzactie)); }