Beispiel #1
0
        public List <OrdemVenda> GetOrdensVenda(string txtRegister, int ProductGroup)
        {
            using (var ctx = new DesenvContext())
            {
                var ordens =
                    (from so in ctx.tblSellOrders
                     join sod in ctx.tblSellOrderDetails on so.intOrderID equals sod.intOrderID
                     join p in ctx.tblProducts on sod.intProductID equals p.intProductID
                     join c in ctx.tblCourses on sod.intProductID equals c.intCourseID
                     join person in ctx.tblPersons on so.intClientID equals person.intContactID
                     where
                     p.intProductGroup1 == ProductGroup &&
                     person.txtRegister == txtRegister && (new[] { 0, 2, 5 }).Contains(so.intStatus ?? 0)
                     select new OrdemVenda
                {
                    ID = so.intOrderID,
                    Year = c.intYear ?? 0,
                    IdCliente = so.intClientID,
                    Status = (OrdemVenda.StatusOv)so.intStatus,
                    IdFilial = so.intStoreID
                }).Distinct().ToList();

                var lOv = new List <OrdemVenda>();
                foreach (var o in ordens)
                {
                    if (o.Status == OrdemVenda.StatusOv.Ativa || (PagamentosClienteEntity.GetPagamentosCliente(o.IdCliente, (new[] { o.Year }), o.ID).Any(pg => (pg.DblSumOfDebits >= 0 || pg.Status == PagamentosCliente.StatusPagamento.OK) && pg.DblValue > 0.0)))
                    {
                        lOv.Add(o);
                    }
                }
                return(lOv);
            }
        }
Beispiel #2
0
        public List <Turma> GetTurmasContratadas(int intClientID, int[] anos, int produto = 0, int adimplentes = 0)
        {
            anos = (anos == null) ? new[] { DateTime.Now.Year } : anos;
            var lanos = anos.ToList();
            //var pgAdimplente = (PagamentosClienteEntity.GetPagamentosCliente(intClientID, ano)).Where(pg =>pg.DblBalance == 0 && pg.Status == PagamentosCliente.StatusPagamento.OK).Select(p => p.intOrderID);
            //var pgPendente = (PagamentosClienteEntity.GetPagamentosCliente(intClientID, ano)).Where(pg => pg.DblSumOfDebits < 0 && pg.Status == PagamentosCliente.StatusPagamento.Pendente).Select(p => p.intOrderID);
            var pgCliente   = (PagamentosClienteEntity.GetPagamentosCliente(intClientID, anos)).Any(pg => pg.DblSumOfDebits >= 0 || pg.Status == PagamentosCliente.StatusPagamento.OK);
            var enumFiliais = Enum.GetValues(typeof(Utilidades.Filiais));
            var filiais     = new List <int>();

            foreach (var value in enumFiliais)
            {
                filiais.Add((int)value);
            }
            var ctx    = new DesenvContext();
            var result = (from pessoas in ctx.tblClients
                          join ordemvenda in ctx.tblSellOrders on pessoas.intClientID equals ordemvenda.intClientID
                          join detalhesvenda in ctx.tblSellOrderDetails on ordemvenda.intOrderID equals detalhesvenda.intOrderID
                          join cursos in ctx.tblCourses on detalhesvenda.intProductID equals cursos.intCourseID
                          join produtos in ctx.tblProducts on cursos.intCourseID equals produtos.intProductID
                          join filialprodutospg in
                          (

                              from cbprod in ctx.tblStore_CombosPaymentTemplate
                              join prodcomb in ctx.tblProductCombos_Products on cbprod.intComboID equals prodcomb.intComboID
                              select new { intProductId = prodcomb.intProductID, bitActive = cbprod.bitActive, bitInternet = cbprod.bitInternet }).Union(

                              from stprod in ctx.tblStore_Product_PaymentTemplate
                              select new { intProductId = stprod.intProductID, bitActive = stprod.bitActive, bitInternet = stprod.bitInternet }
                              ).Distinct()
                          on produtos.intProductID equals filialprodutospg.intProductId


                          //join filialprodutospg in ctx.tblStore_Product_PaymentTemplate on produtos.intProductID equals filialprodutospg.intProductID
                          //join cr in ctx.mview_Cronograma on cursos.intCourseID equals cr.intCourseID into dates
                          where pessoas.intClientID == intClientID &&
                          (produto == 0 || produto == produtos.intProductGroup1) &&
                          (lanos.Contains(cursos.intYear ?? 0)) &&
                          ((bool)filialprodutospg.bitActive ||
                           (bool)filialprodutospg.bitInternet) &&
                          (
                              ((adimplentes == 0) && (
                                   ordemvenda.intStatus == (int)OrdemVenda.StatusOv.Ativa ||
                                   ordemvenda.intStatus == (int)OrdemVenda.StatusOv.Carencia ||
                                   (
                                       ordemvenda.intStatus == (int)OrdemVenda.StatusOv.Cancelada &&
                                       pgCliente
                                   )
                                   )) || ((ordemvenda.intStatus == (int)OrdemVenda.StatusOv.Ativa) && ordemvenda.intStatus2 == (int)OrdemVenda.StatusOv.Adimplente)

                          )
                          //&& filiais.Contains(ordemvenda.intStoreID)

                          select new Turma {
                IdProduto = produtos.intProductGroup1 ?? 0,
                ID = produtos.intProductID,
                Nome = produtos.txtName,
                Inicio = ctx.mview_Cronograma.Where(x => x.intCourseID == cursos.intCourseID).Min(y => y.dteDateTime),                //(dates.Count() > 0) ? dates.Min(d => d.dteDateTime) : new DateTime(),
                Fim = ctx.mview_Cronograma.Where(x => x.intCourseID == cursos.intCourseID).Max(y => y.dteDateTime)
            });
            var lst = new Turmas();

            lst.AddRange(result.Distinct().ToList());
            return(lst);
        }