Exemple #1
0
 public IEnumerable<BillQuotationLight> GetBillQuotationByStatus(BILL_Status status)
 {
     var res = new List<BillQuotationLight>();
     try
     {
         var list = billQuotationDAL.GetBillQuotation().Select(b => new BillQuotationLight(b)).Where(bq => bq.BillStatus.Status_Id == status.Status_Id);
         if (list != null && list.Count() > 0)
             res = list.ToList();
     }
     catch (Exception ex)
     {
         throw new Exception(" BillQuotationBLL >> GetBillQuotationByStatus :" + ex.Message);
     }
     return res;
 }
        public List<BillQuotationLight> SearchBillQuotation(string nomClient, string numFact, DateTime? dateDocument, BILL_Status status, int? MontantHTMin, int? MontantHTMax, bool? isBill)
        {
            var list = new List<BillQuotationLight>();
            var noFilter = string.IsNullOrEmpty(nomClient) & string.IsNullOrEmpty(numFact) & dateDocument == null
                & status == null & MontantHTMin == null & MontantHTMax == null & isBill == null;

            if (noFilter)
                list = billQuotationBLL.GetBillQuotation().ToList();

            /*** Filtre client ***/
            if (nomClient != null)
                list.AddRange(billQuotationBLL.GetBillQuotation().Where(b => b.Company.name == nomClient).ToList());

            /*** Filtre numero ***/
            if (numFact != null)
                if (list.Count == 0)
                {
                    var bill = billQuotationBLL.GetBillByNum(numFact);
                    if (bill != null)
                        list.Add(bill);
                }
                else
                    list.Where(b => b.NBill == numFact);

            /*** Filtre status ***/
            if (status != null)
                if (list.Count == 0)
                    list.AddRange(billQuotationBLL.GetBillQuotationByStatus(status));
                else
                    list.Where(b => b.BillStatus.Status_Id == status.Status_Id);

            /*** Filtre date du document ***/
            if (dateDocument != null)
            {
                if (list.Count == 0)
                    list.AddRange(billQuotationBLL.GetBillQuotation().Where(b => b.DateBillQuotation.Date == dateDocument.Value.Date).ToList());
                else
                    list.Where(b => b.DateBillQuotation.Date == dateDocument.Value.Date);
            }

            /*** Filtre MontantHTMin ***/
            if (MontantHTMin != null)
                if (list.Count == 0)
                    list.AddRange(billQuotationBLL.GetBillQuotation().Where(b => b.AmountDF >= MontantHTMin).ToList());
                else
                    list.Where(b => b.AmountDF >= MontantHTMin);

            /*** Filtre MontantHTMax ***/
            if (MontantHTMax != null)
                if (list.Count == 0)
                    list.AddRange(billQuotationBLL.GetBillQuotation().Where(b => b.AmountDF <= MontantHTMax).ToList());
                else
                    list.Where(b => b.AmountDF <= MontantHTMax);

            ///*** Filtre MontantTTCMin ***/
            //if (MontantTTCMin != null)
            //    if (list.Count == 0)
            //        list.AddRange(billQuotationBLL.GetBillQuotation().Where(b => b.AmountTTC > MontantTTCMin).ToList());
            //    else
            //        list.Where(b => b.AmountTTC > MontantTTCMin);

            ///*** Filtre MontantTTCMax ***/
            //if (MontantTTCMax != null)
            //    if (list.Count == 0)
            //        list.AddRange(billQuotationBLL.GetBillQuotation().Where(b => b.AmountTTC < MontantTTCMax).ToList());
            //    else
            //        list.Where(b => b.AmountTTC < MontantTTCMax);

            /*** Filtre isbill ***/
            if (isBill != null)
                if (Convert.ToBoolean(isBill))
                    if (list.Count == 0)
                        list.AddRange(billQuotationBLL.GetBills().ToList());
                    else
                        list.Where(b => b.NBill == null);
                else
                    if (list.Count == 0)
                        list.AddRange(billQuotationBLL.GetQuotations().ToList());
                    else
                        list.Where(b => b.NBill != null);

            return list;
        }