Esempio n. 1
0
 private void GetSelectedPartner(OCRD_BusinessPartner selectedPartner)
 {
     IsModalVisible = false;
     //Customer Name.
     SelectedPartner       = selectedPartner;
     SelectedSale.CardCode = selectedPartner.CardCode;
     RaisePropertyChanged("SelectedSale");
 }
Esempio n. 2
0
        public static ObservableCollection <ODPI_DownPayment> GetDownPaymentsProcessed(OCRD_BusinessPartner selectedPartner, NNM1_Series serie)
        {
            lock (Extensions.Locker)
            {
                var db = ContextFactory.GetDBContext();
                IQueryable <ODPI_DownPayment> downPayments = null;

                if (serie != null)
                {
                    if (serie.Series == 43)
                    {
                        downPayments = db.ODPI_DownPayment.Include(dp => dp.DPI1_DownPaymentDetail)
                                       .Where(dp => dp.StateL == LocalStatus.Procesado && dp.CardCode
                                              == selectedPartner.CardCode && (dp.IdSaleL == null || dp.IdSaleL == 0) &&
                                              dp.Series == 31);
                    }
                    if (serie.Series == 42)
                    {
                        downPayments = db.ODPI_DownPayment.Include(dp => dp.DPI1_DownPaymentDetail)
                                       .Where(dp => dp.StateL == LocalStatus.Procesado && dp.CardCode
                                              == selectedPartner.CardCode && (dp.IdSaleL == null || dp.IdSaleL == 0) &&
                                              dp.Series == 118);
                    }
                }


                var existing = from sale in db.OINV_Sales.Where(d => d.dpEntry != 0)
                               join dp in downPayments on sale.dpEntry equals dp.DocEntry
                               select dp;

                var existingByDetails = from detail in db.RIN1_ClientCreditNoteDetail
                                        join dp in downPayments on detail.BaseEntry equals dp.DocEntry
                                        select dp;

                downPayments = downPayments.Where(d => !existing.Contains(d) && !existingByDetails.Contains(d));

                //// TODO : implementar mejora de rendimiento hacer Tolist de todos los ids de la venta es lento  , implementar un Left JOin , not Exists
                //// para no mostrar anticipos cancelados ..

                var downpaymentsLIst = downPayments.ToList();
                var queryNames       = (from dp in downpaymentsLIst
                                        join srie in db.NNM1_Series on dp.Series equals srie.Series
                                        select new
                {
                    DownPaymentId = dp.IdDownPayment,
                    SerieTitle = srie.SeriesName + " " + srie.Remark
                }).ToList();

                downpaymentsLIst.ForEach(
                    trl =>
                {
                    var filler = queryNames.FirstOrDefault(f => f.DownPaymentId == trl.IdDownPayment);
                    if (filler != null)
                    {
                        trl.SeriesTitle = filler.SerieTitle;
                    }
                });

                return(new ObservableCollection <ODPI_DownPayment>(downpaymentsLIst));
            }
        }