示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#4
0
 public BColectieClientiPlatiComenzi GetListaPlati(IDbTransaction pTranzactie)
 {
     return(BClientiPlatiComenzi.GetListByIdFactura(this.Id, pTranzactie));
 }