private void CargarGrilladeNc()
        {
            usuarioentidad = (UsuarioEntidad)Session["Usuario"];

            string[] unosPermisosTest = new string[] { "NCredito" };
            if (usuarioentidad == null || !this.Master.Autenticar(unosPermisosTest))
            {
                Response.Redirect("/Areas/Public/Forms/Home.aspx");
            }

            List <PedidoEntidad> Pedidos = new List <PedidoEntidad>();

            Pedidos = pedidoCore.SelectAllByCUIT(usuarioentidad.CUIT);

            foreach (var pedido in Pedidos)
            {
                var Comprobantes = ComprobanteBLL.ComprobanteSelectByIdPedido(pedido.IdPedido);
                foreach (var comprobante in Comprobantes)
                {
                    if (comprobante.miTipoComprobante.IdTipoComprobante == 5 || comprobante.miTipoComprobante.IdTipoComprobante == 6 || comprobante.miTipoComprobante.IdTipoComprobante == 7)
                    {
                        NCs.Add(comprobante);
                    }
                }
            }

            if (NCs.Count == 0)
            {
                sinnc.InnerHtml = "<strong>Usted no tiene notas de credito disponibles para consultar.</strong>";
            }
            else
            {
                contenedorsinnc.Visible = false;
            }

            for (int i = 0; i < NCs.Count; i++)
            {
                NCsDTO NCAMostrar = new NCsDTO();
                //  NCAMostrar.NroComprobante = NCs[i].NroComprobante;
                NCAMostrar.FechaComprobante = NCs[i].FechaComprobante;
                NCAMostrar.TipoComprobante  = ComprobanteBLL.TipoComprobanteSelectById(NCs[i].miTipoComprobante.IdTipoComprobante).DescripTipoComprobante;
                char   TipoNCLetra         = NCAMostrar.TipoComprobante[NCAMostrar.TipoComprobante.Length - 1];
                string Sucursal4caracteres = "";
                Sucursal4caracteres = NCs[i].miSucursal.IdSucursal.ToString("D4");
                string NumeroNC8Caracteres = "";
                NumeroNC8Caracteres       = NCs[i].NroComprobante.ToString("D8");
                NCAMostrar.NroComprobante = "NC" + TipoNCLetra + "-" + Sucursal4caracteres + "-" + NumeroNC8Caracteres;

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

                Detalles         = ComprobanteBLL.DetallesSelectByComprobante(NCs[i].NroComprobante, NCs[i].miSucursal.IdSucursal, NCs[i].miTipoComprobante.IdTipoComprobante);
                NCAMostrar.Total = MontoTotalPorNC(Detalles);
                NotasDeCreditoAMostrar.Add(NCAMostrar);
            }

            grilladenc.DataSource  = null;
            NotasDeCreditoAMostrar = (List <NCsDTO>)NotasDeCreditoAMostrar.OrderByDescending(X => X.FechaComprobante).ToList();
            grilladenc.DataSource  = NotasDeCreditoAMostrar;
            grilladenc.DataBind();
        }
        private void CargarGrillaDeFacturas()
        {
            //usuarioentidad = (UsuarioEntidad)Session["Usuario"];

            //List<PedidoEntidad> Pedidos = new List<PedidoEntidad>();
            //Pedidos = pedidoCore.SelectAllByCUIT(usuarioentidad.CUIT);

            //foreach (var pedido in Pedidos)
            //{

            //    var Comprobantes = ComprobanteBLL.ComprobanteSelectByIdPedido(pedido.IdPedido);
            //    foreach (var comprobante in Comprobantes)
            //    {
            //        if (comprobante.IdTipoComprobante == 1 || comprobante.IdTipoComprobante == 2 || comprobante.IdComprobante == 3)
            //        {
            //            Facturas.Add(comprobante);
            //        }
            //    }
            //}
            Facturas.Clear();
            FacturasAMostrar.Clear();

            var Comprobantes = ComprobanteBLL.ComprobanteSelectAllByCUIT();

            foreach (var comprobante in Comprobantes)
            {
                if (comprobante.miTipoComprobante.IdTipoComprobante == 1 || comprobante.miTipoComprobante.IdTipoComprobante == 2 || comprobante.miTipoComprobante.IdTipoComprobante == 3)
                {
                    Facturas.Add(comprobante);
                }
            }


            if (Facturas.Count == 0)
            {
                sinfacturas.InnerHtml = "<strong>No hay facturas disponibles para consultar</strong>";
            }
            else
            {
                contenedorsinfacturas.Visible = false;
            }

            for (int i = 0; i < Facturas.Count; i++)
            {
                FacturasDTO FacturaAMostrar = new FacturasDTO();
                FacturaAMostrar.TipoComprobante = ComprobanteBLL.TipoComprobanteSelectById(Facturas[i].miTipoComprobante.IdTipoComprobante).DescripTipoComprobante;
                char   TipoFacturaLetra    = FacturaAMostrar.TipoComprobante[FacturaAMostrar.TipoComprobante.Length - 1];
                string Sucursal4caracteres = "";
                Sucursal4caracteres = Facturas[i].miSucursal.IdSucursal.ToString("D4");
                string NumeroFactura8Caracteres = "";
                NumeroFactura8Caracteres         = Facturas[i].NroComprobante.ToString("D8");
                FacturaAMostrar.NroComprobante   = "FC" + TipoFacturaLetra + "-" + Sucursal4caracteres + "-" + NumeroFactura8Caracteres;
                FacturaAMostrar.FechaComprobante = Facturas[i].FechaComprobante;


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

                Detalles = ComprobanteBLL.DetallesSelectByComprobante(Facturas[i].NroComprobante, Facturas[i].miSucursal.IdSucursal, Facturas[i].miTipoComprobante.IdTipoComprobante);
                FacturaAMostrar.Total = MontoTotalPorFactura(Detalles);
                FacturasAMostrar.Add(FacturaAMostrar);
            }

            grilladefacturas.DataSource = null;
            FacturasAMostrar            = (List <FacturasDTO>)FacturasAMostrar.OrderByDescending(X => X.FechaComprobante).ToList();
            grilladefacturas.DataSource = FacturasAMostrar;
            grilladefacturas.DataBind();
        }
        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);
        }