public ContabilidadEntity obtenerContabilidad(int cotizacionID)
        {
            var conta = new ContabilidadEntity();

            using (var context = new ContextoBdSantiago())
            {
                var datos = context.Contabilidad;

                if (datos.Any())
                {
                    conta = datos.Where(x => x.PK_Cotizacion_ID == cotizacionID).OrderByDescending(c => c.PK_ContabilidadID).Select(c => new ContabilidadEntity
                    {
                        ComisionOtros     = (int)c.ComisionOtros,
                        MesFacturacion    = (int)c.MesFacturacion,
                        ComisionVendedor  = (int)c.ComisionVendedor,
                        Direccion         = c.Direccion,
                        Factura           = (int)c.Factura,
                        FechaEjecucion    = c.FechaEjecucion,
                        FechaInicio       = c.FechaInicio,
                        FechaTermino      = c.FechaTermino,
                        GuiaDespacho      = c.GuiaDespacho,
                        PersonaAprobacion = c.PersonaAprobacion,
                        TelefonoContacto  = c.TelefonoContacto,
                        Vendedor          = c.Vendedor,
                        Contabilidad      = c.PK_ContabilidadID,
                        Cotizacion        = cotizacionID
                    }).FirstOrDefault();
                }
                //solo para asegurarnos que cierre la conexion
                context.Dispose();
            }

            return(conta);
        }
        public IList <FacturacionEntity> obtenerFacturacion(int contabilidadID)
        {
            var lstFacturacion = new List <FacturacionEntity>();

            using (var context = new ContextoBdSantiago())
            {
                var datos = context.ContabilidadFacturacion;

                if (datos.Any())
                {
                    lstFacturacion = datos.Where(x => x.PK_ContabilidadID == contabilidadID).Select(c => new FacturacionEntity
                    {
                        NumeroContabilidad = (int)c.PK_ContabilidadID,
                        Mes         = (int)c.Mes,
                        NumeroCuota = (int)c.NumeroCuota,
                        NumeroGuia  = (int)c.NumeroFactura,
                        ValorCuota  = (decimal)c.Valor
                    }).ToList();
                }
                //solo para asegurarnos que cierre la conexion
                context.Dispose();
            }

            return(lstFacturacion);
        }
        public IList <PresupuestoRepuestoEntity> obtenerRepuestos(int idCotizacion)
        {
            var lstRepuestos = new List <PresupuestoRepuestoEntity>();

            using (var context = new ContextoBdSantiago())
            {
                var repuesto = context.CotizacionRepuesto;

                if (repuesto.Any())
                {
                    lstRepuestos = repuesto.Where(x => x.PK_Cotizacion_ID == idCotizacion).Select(c => new PresupuestoRepuestoEntity
                    {
                        Cantidad              = c.Cantidad,
                        Codigo                = c.Codigo ?? 0,
                        HoraParHombre         = c.HoraParHombre ?? 0,
                        ValorUnitario         = c.ValorUnitario ?? 0,
                        Repuesto              = c.Repuesto,
                        Presupuesto           = c.PK_Cotizacion_ID ?? 0,
                        PresupuestoRepuestoId = c.CotizacionRepuestoID,
                        SubTotal              = c.SubTotal
                    }).ToList();
                }

                //solo para asegurarnos que cierre la conexion
                context.Dispose();
            }
            return(lstRepuestos);
        }
        public FormaPagoEntity obtenerFormaPago(int contabilidadID)
        {
            var FormaPago = new FormaPagoEntity();

            using (var context = new ContextoBdSantiago())
            {
                var contabilidad = context.Contabilidad;
                var aprobacion   = context.ContabilidadAprobacion;
                var formaPago    = context.ContabilidadFormaPago;
                var descuentos   = context.ContabilidadDescuentos;


                if (contabilidad.Any())
                {
                    FormaPago = (from conta in contabilidad.Where(c => c.PK_Cotizacion_ID == contabilidadID)
                                 join aproba in aprobacion on conta.PK_ContabilidadID equals aproba.PK_ContabilidadID into ContaAprobacion
                                 from apro in ContaAprobacion.DefaultIfEmpty()
                                 join formaPag in formaPago on conta.PK_ContabilidadID equals formaPag.PK_ContabilidadID into ContaPago
                                 from pago in ContaPago.DefaultIfEmpty()
                                 join descuen in descuentos on conta.PK_ContabilidadID equals descuen.PK_ContabilidadID into ContaDesc
                                 from desc in ContaDesc.DefaultIfEmpty()
                                 select new FormaPagoEntity
                    {
                        DescuentoCinco = desc.Cinco ?? false,
                        DescuentoQuince = desc.Quince ?? false,
                        NumeroContabilidad = pago == null ? 0 : conta.PK_ContabilidadID,
                        NumeroCuotas = pago.CantidadCuotas.ToString(),
                        OrdenCompra = apro.OrdenCompra ?? false,
                        OtraAprobacion = apro.Otro ?? false,
                        OtraAprobacionDescripcion = apro.DescripcionOtro,
                        OtroDescuentos = desc.Otro ?? false,
                        OtroDescuentoDescripcion = desc.ValorOtro.ToString(),
                        OtroPago = pago.Otro ?? false,
                        OtroPagoDescripcion = pago.DescripcionOtro,
                        PagoCien = pago.Cien ?? false,
                        PagoCincuenta = pago.Cincuenta ?? false,
                        PagoCuotas = pago.Cuotas ?? false,
                        PresupuestoFirmado = apro.PresupuestoFirmado ?? false
                    }).FirstOrDefault();
                }
                //solo para asegurarnos que cierre la conexion
                context.Dispose();
            }

            return(FormaPago);
        }
        public IList <ListadoCotizacionEntity> ObtenerListadoCotizacion()
        {
            var lstCotizacion = new List <ListadoCotizacionEntity>();


            //var dato = new ListadoCotizacionEntity { Ascensor = "prueba", CotizacionId = 1, NumeroPresupuesto = "12587", EstadoFinalizado = true, TotalNeto = 100 };
            //var dato2 = new ListadoCotizacionEntity { Ascensor = "efectivo", CotizacionId = 2, NumeroPresupuesto = "9688", EstadoFinalizado = false, TotalNeto = 650 };

            //lstCotizacion.Add(dato);
            //lstCotizacion.Add(dato2);

            using (var context = new ContextoBdSantiago())
            {
                var cotizacion   = context.Cotizacion;
                var contabilidad = context.Contabilidad;

                if (cotizacion.Any())
                {
                    lstCotizacion = (from cot in cotizacion
                                     join conta in contabilidad on cot.PK_Cotizacion_ID equals conta.PK_Cotizacion_ID into Relacion
                                     from rel in Relacion.DefaultIfEmpty()
                                     select new ListadoCotizacionEntity
                    {
                        Ascensor = cot.Ascensor,
                        CotizacionId = cot.PK_Cotizacion_ID,
                        NumeroPresupuesto = cot.PresupuestoNumero,
                        TotalNeto = (decimal)cot.TotalNetoComisiones,
                        EstadoFinalizado = (rel == null) ? false : true
                    }).ToList();
                }

                //solo para asegurarnos que cierre la conexion
                context.Dispose();
            }
            return(lstCotizacion);
        }
        public IList <PresupuestoTercerosEntity> obtenerTerceros(int idCotizacion)
        {
            var lstTerceros = new List <PresupuestoTercerosEntity>();

            using (var context = new ContextoBdSantiago())
            {
                var terceros = context.CotizacionTerceros;

                if (terceros.Any())
                {
                    lstTerceros = terceros.Where(x => x.PK_Cotizacion_ID == idCotizacion).Select(c => new PresupuestoTercerosEntity
                    {
                        Descripcion          = c.Terceros,
                        Presupuesto          = (int)c.PK_Cotizacion_ID,
                        PresupuestoTerceroId = c.CotizacionTercerosID,
                        Valor = (decimal)c.ValorTerceros
                    }).ToList();
                }

                //solo para asegurarnos que cierre la conexion
                context.Dispose();
            }
            return(lstTerceros);
        }
        public PresupuestoEntity obtenerPresupuesto(int cotizacionID)
        {
            var lstPresupuesto = new PresupuestoEntity();

            //lstPresupuesto.Obra = "Nueva Obra";
            //lstPresupuesto.Ascensor = "Ascensor Final";
            //lstPresupuesto.Supervisor = "Gran Jefe";
            //lstPresupuesto.TecEmisor = "Terrile Pollo";
            //lstPresupuesto.PresupuestoNumero = "15964";
            //lstPresupuesto.DetalleDescrip = "Cambio de linea";
            //lstPresupuesto.DuracionTrabajo = 6;
            //lstPresupuesto.FechaCalculo = Convert.ToDateTime("06-03-2018");
            //lstPresupuesto.ValorRepuestos = 3698;
            //lstPresupuesto.ValorTerceros = 36;
            //lstPresupuesto.ValorManoObra = 100;
            //lstPresupuesto.CantidadFletes = 1;
            //lstPresupuesto.HorasParejas = 12;
            //lstPresupuesto.Subtotal = 300;
            //lstPresupuesto.TotalnetoComisiones = 169;

            using (var context = new ContextoBdSantiago())
            {
                var datos = context.Cotizacion;

                if (datos.Any())
                {
                    lstPresupuesto = datos.Where(c => c.PK_Cotizacion_ID == cotizacionID).Select(c => new PresupuestoEntity
                    {
                        Obra              = c.Obra,
                        Ascensor          = c.Ascensor,
                        Supervisor        = c.Supervisor,
                        TecEmisor         = c.TecnicoEmisor,
                        PresupuestoNumero = c.PresupuestoNumero,
                        DetalleDescrip    = c.DescripcionDetalle,
                        DuracionTrabajo   = (int)c.DuracionTrabajo,
                        FechaCalculo      = c.FechaCalculo,
                        ValorRepuestos    = (int)c.ValorRepuestos,
                        ValorTerceros     = (int)c.ValorTerceros,
                        ValorManoObra     = (int)c.ValorManoObra,
                        CantidadFletes    = (int)c.CantidadFletes,


                        //FechaEmision = c.FechaEmision,
                        //HorasParejas = (decimal)c.HorasParejas,

                        //PresupuestoId = c.PK_Cotizacion_ID,

                        //RecargoHHEE = (decimal)c.RecargoHHEE,
                        //Subtotal = (decimal)c.SubTotal,
                        //SubtotalManoObra = (decimal)c.SubTotalManoObra,

                        //Total = (decimal)c.Total,
                        //TotalFletes = (decimal)c.TotalFletes,
                        //TotalnetoComisiones = (decimal)c.TotalNetoComisiones,
                        //ValorFlete = Convert.ToInt32(c.ValorFlete),
                        //ValorFletes = Convert.ToInt32(c.ValorFletes),
                        //ValorHH = Convert.ToInt32(c.ValorHH),
                        //ValorHP = c.ValorHP,

                        //ValorMargenVenta = (decimal)c.ValorMargenVenta,
                        //ValorMoneda = Convert.ToInt32(c.ValorMoneda),

                        //ValorUf = c.ValorUf,
                        //ValorVenta = (decimal)c.ValorVenta
                    }).FirstOrDefault();
                }
                //solo para asegurarnos que cierre la conexion
                context.Dispose();
            }

            return(lstPresupuesto);
        }