public static bool PagarWebMethod()
        {
            ComprobanteEntidad unComprobante = new ComprobanteEntidad();

            unComprobante.Detalles = new List <ComprobanteDetalleEntidad>();
            ComprobanteCore unManagerComprobante = new ComprobanteCore();
            PedidoCore      unManagerPedido      = new PedidoCore();
            SucursalCore    ManagerSucursal      = new SucursalCore();
            int             IdPedidoActual;

            List <PedidoDetalleEntidad> unosDetallesPedido = new List <PedidoDetalleEntidad>();
            var Current = HttpContext.Current;

            UsuarioEntidad logueado   = (UsuarioEntidad)Current.Session["Usuario"];
            var            sucursalId = (int?)Current.Session["Seleccionada"];

            IdPedidoActual = (int)Current.Session["UltimoPedido"];

            unosDetallesPedido = (List <PedidoDetalleEntidad>)Current.Session["DetallesPedido"];

            PedidoEntidad unPedidoPagar = new PedidoEntidad();

            unPedidoPagar             = unManagerPedido.PedidoSelectByCUIT_IDPedido(IdPedidoActual);
            unPedidoPagar.misDetalles = unManagerPedido.PedidosDetalleSelect(unPedidoPagar.IdPedido);
            SucursalEntidad unaSucursal = ManagerSucursal.SucursalTraerPorDireccionSucursal(unPedidoPagar.miDireccionEntrega.IdDireccion);

            TarjetaEntidad        unaTarjeta  = new TarjetaEntidad();
            TarjetaCore           coreTarjeta = new TarjetaCore();
            List <TarjetaEntidad> MisTarjetas = coreTarjeta.SelectAllTarjetasByCUIT_NombreUsuario(ConfigSection.Default.Site.Cuit, logueado.NombreUsuario);

            foreach (var t in MisTarjetas)
            {
                if (t.Predeterminada == true)
                {
                    unaTarjeta = t;
                }
            }

            if (unManagerPedido.PagarPedido(unaTarjeta.Numero.ToString(), unaTarjeta.CodSeguridad, (decimal)unPedidoPagar.misDetalles.Select(x => x.Cantidad * x.PrecioUnitario).Sum()))
            {
                unManagerPedido.AvanzarPaso(unPedidoPagar, unaSucursal, logueado, (int)FormaPagoEntidad.Options.ECommerce);
                LimpiarPedido();
                return(true);
            }
            LimpiarPedido();
            return(false);



            //Response.Redirect("/Areas/Public/Forms/UltimosPedidos.aspx");
        }
        public static bool GenerarNotaDebWebMethod(string MontoNotaDebito, string NroFactAsocND)
        {
            ComprobanteCore    ComprobanteBLL = new ComprobanteCore();
            ComprobanteEntidad ComprobanteRow = new ComprobanteEntidad();

            try
            {
                string ultimos8delcode = NroFactAsocND.Substring(NroFactAsocND.Length - 8);
                string nrocomprobantesincerosalaizquierda = ultimos8delcode.TrimStart('0');
                //var comprobantes = ComprobanteBLL.ComprobanteSelectAllListadosByCUIT_NroComprobante(Convert.ToInt32(nrocomprobantesincerosalaizquierda));

                ComprobanteRow = ComprobanteBLL.ComprobanteSelectAllByCUIT_NroComprobante(Convert.ToInt32(nrocomprobantesincerosalaizquierda));
                List <ComprobanteDetalleEntidad> ListadeDetalles = new List <ComprobanteDetalleEntidad>();
                ListadeDetalles = ComprobanteBLL.DetallesSelectByComprobante(ComprobanteRow.NroComprobante, ComprobanteRow.miSucursal.IdSucursal, ComprobanteRow.miTipoComprobante.IdTipoComprobante);

                decimal montoAux = 0;
                if (!string.IsNullOrWhiteSpace(MontoNotaDebito))
                {
                    montoAux = Decimal.Parse(MontoNotaDebito);
                }
                if (ListadeDetalles.Sum(X => X.PrecioUnitarioFact) < Decimal.Parse(MontoNotaDebito) | montoAux < 1)
                {
                    return(false);
                }

                ComprobanteEntidad unaNotaDebito = new ComprobanteEntidad();

                unaNotaDebito = ComprobanteRow;
                unaNotaDebito.FechaComprobante = DateTime.Now;

                unaNotaDebito.Detalles = new List <ComprobanteDetalleEntidad>();

                switch (ComprobanteRow.miTipoComprobante.IdTipoComprobante)
                {
                case 1:
                    unaNotaDebito.miTipoComprobante.IdTipoComprobante = 8;
                    break;

                case 2:
                    unaNotaDebito.miTipoComprobante.IdTipoComprobante = 9;
                    break;

                case 3:
                    unaNotaDebito.miTipoComprobante.IdTipoComprobante = 10;
                    break;

                default:
                    unaNotaDebito.miTipoComprobante.IdTipoComprobante = 8;
                    break;
                }


                int ContadorDetalle = 0;

                foreach (var item in ListadeDetalles)
                {
                    ComprobanteDetalleEntidad unDetalleComprobante = new ComprobanteDetalleEntidad();
                    ContadorDetalle = ContadorDetalle + 1;
                    unDetalleComprobante.IdComprobanteDetalle = ContadorDetalle;
                    unDetalleComprobante.NroComprobante       = ComprobanteRow.NroComprobante;
                    unDetalleComprobante.IdSucursal           = ComprobanteRow.miSucursal.IdSucursal;
                    unDetalleComprobante.IdTipoComprobante    = unaNotaDebito.miTipoComprobante.IdTipoComprobante;
                    unDetalleComprobante.CUIT                  = ConfigSection.Default.Site.Cuit;
                    unDetalleComprobante.miProducto            = new ProductoEntidad();
                    unDetalleComprobante.miProducto.IdProducto = item.miProducto.IdProducto;
                    unDetalleComprobante.CantidadProducto      = item.CantidadProducto;
                    unDetalleComprobante.PrecioUnitarioFact    = item.PrecioUnitarioFact;
                    unaNotaDebito.Detalles.Add(unDetalleComprobante);
                    //ComprobanteDetalleEntidad NCDetalle = detalle;
                    //NCDetalle.IdTipoComprobante = NotaDeCredito.IdTipoComprobante;
                    //ComprobanteBLL.DetalleCreate(NCDetalle);
                }

                unaNotaDebito.Ajuste = int.Parse(MontoNotaDebito);

                ComprobanteBLL.Create(unaNotaDebito);
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }


            //System.Text.StringBuilder sb = new System.Text.StringBuilder();
            //sb.Append(@"<script type='text/javascript'>");
            //sb.Append("alert('Nota de credito generada');");
            //sb.Append(@"</script>");
            //ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
            //           "ModalScript3", sb.ToString(), false);
        }