예제 #1
0
        private void CalcularTotales()
        {
            try
            {
                Sesion sesion = (Sesion)Session["Sesion" + Session.SessionID];
                List <NotaCreditoDet> lista = this.ListaProductosNotaCreditoEspecial;
                double importeTotal         = 0;
                float  porcDescuento1       = HD_Descuento1.Value != string.Empty ? Convert.ToInt32(HD_Descuento1.Value) : 0;
                float  porcDescuento2       = HD_Descuento2.Value != string.Empty ? Convert.ToInt32(HD_Descuento2.Value) : 0;

                for (int i = 0; i < lista.Count; i++)
                {
                    NotaCreditoDet factura = lista[i];
                    importeTotal += factura.Ncr_Importe;
                }
                CN_CatCentroDistribucion cn_cd = new CN_CatCentroDistribucion();
                double iva = 0;
                cn_cd.ConsultarIva(sesion.Id_Emp, sesion.Id_Cd_Ver, ref iva, sesion.Emp_Cnx);

                txtImporte.Text  = importeTotal.ToString();
                importeTotal     = porcDescuento1 > 0 ? (importeTotal - (importeTotal * (porcDescuento1 / 100))) : importeTotal;
                importeTotal     = porcDescuento2 > 0 ? (importeTotal - (importeTotal * (porcDescuento2 / 100))) : importeTotal;
                txtSubTotal.Text = importeTotal.ToString();
                txtIVA.Text      = HD_IVAfacturacion.Value.Trim() != string.Empty ? (importeTotal * iva / 100).ToString() : "0";//(importeTotal * (Convert.ToSingle(HD_IVAfacturacion.Value.Trim()) / 100)).ToString() : "0";
                txtTotal.Value   = txtSubTotal.Value.Value + txtIVA.Value.Value;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #2
0
        protected void ListaProductosFacturaEspecial_AgregarProducto(NotaCreditoDet factura_prod)
        {
            List <NotaCreditoDet> lista = this.ListaProductosNotaCreditoEspecial;

            lista.Add(factura_prod);
            this.ListaProductosNotaCreditoEspecial = lista;
            this.CalcularTotales();
        }
예제 #3
0
        protected void ListaProductosFacturaEspecial_ModificarProducto(NotaCreditoDet factura_prod, int index)
        {
            List <NotaCreditoDet> lista = this.ListaProductosNotaCreditoEspecial;

            //buscar producto de factura en la lista
            NotaCreditoDet factura = lista[index];

            if (factura.Id_Prd == factura_prod.Id_Prd)
            {
                lista[index] = factura_prod;
            }

            this.ListaProductosNotaCreditoEspecial = lista;
            this.CalcularTotales();
        }
예제 #4
0
        protected void rgNotaCreditoEspecialDet_InsertCommand(object sender, GridCommandEventArgs e)
        {
            NotaCreditoDet facturaDet = new NotaCreditoDet();

            try
            {
                GridEditableItem insertedItem = (GridEditableItem)e.Item;
                Sesion           sesion       = (Sesion)Session["Sesion" + Session.SessionID];

                facturaDet.Id_Emp      = sesion.Id_Emp;
                facturaDet.Id_Cd       = sesion.Id_Cd_Ver;
                facturaDet.Id_Ncr      = 0;                                      //se debe volver asignar cuando se guarda la orden de compra, cuando actualiza queda igual
                facturaDet.Id_NcrDet   = 0;
                facturaDet.Id_CteExt   = Convert.ToInt32(this.HD_Cliente.Value); //cliente de datos generales de la factura
                facturaDet.Id_Prd      = Convert.ToInt32((insertedItem.FindControl("cmbProducto") as RadComboBox).SelectedValue);
                facturaDet.Ncr_Cant    = 0;
                facturaDet.Clp_Release = (insertedItem.FindControl("txtClp_ReleaseEdit") as RadTextBox).Text;
                //float precioPartida = Convert.ToSingle((insertedItem["Ncr_Precio"].FindControl("txtNcr_Precio") as RadNumericTextBox).Text.Replace("$", string.Empty));
                //(insertedItem["Ncr_Importe"].FindControl("lblNcr_ImporteEdit") as Label).Text = precioPartida.ToString("C");
                facturaDet.Ncr_Importe = (insertedItem.FindControl("txtNcr_Importe") as RadNumericTextBox).Value != null ? (insertedItem["Ncr_Importe"].FindControl("txtNcr_Importe") as RadNumericTextBox).Value.Value : 0;
                facturaDet.Ncr_Precio  = 0;

                //datos del producto de la orden de compra
                facturaDet.Producto                         = new Producto();
                facturaDet.Producto.Id_Prd                  = Convert.ToInt32((insertedItem.FindControl("cmbProducto") as RadComboBox).SelectedValue);
                facturaDet.Producto.Prd_Descripcion         = (insertedItem.FindControl("cmbProducto") as RadComboBox).Text;
                facturaDet.Producto.Id_Emp                  = sesion.Id_Emp;
                facturaDet.Producto.Id_Cd                   = sesion.Id_Cd_Ver;
                facturaDet.Producto.Prd_DescripcionEspecial = (insertedItem.FindControl("txtPrd_Descripcion") as RadTextBox).Text;
                facturaDet.Producto.Prd_Presentacion        = (insertedItem.FindControl("txtPrd_Presentacion") as RadTextBox).Text;
                facturaDet.Producto.Prd_UniNe               = (insertedItem.FindControl("txtPrd_UniNe") as RadTextBox).Text;
                facturaDet.Id_Emp             = sesion.Id_Emp;
                facturaDet.Id_Cd              = sesion.Id_Cd_Ver;
                facturaDet.Producto.Id_PrdEsp = (insertedItem.FindControl("txtId_PrdEsp") as RadTextBox).Text; ///<------
                //agregar producto de orden de compra a la lista
                this.ListaProductosFacturaEspecial_AgregarProducto(facturaDet);
            }
            catch (Exception ex)
            {
                string mensaje = string.Concat(ex.Message, "rgFacturaEspecial_insert_error");
                ErrorManager(ex, new System.Diagnostics.StackTrace().GetFrame(0).GetMethod().Name);
            }
        }
예제 #5
0
        private void Inicializar()
        {
            try
            {
                Sesion sesion = (Sesion)Session["Sesion" + Session.SessionID];
                if (!Convert.ToBoolean(Request.QueryString["Modificar"]))
                {
                    RadToolBar1.Items[1].Visible = false;
                }

                this.HD_Cliente.Value        = Request.QueryString["Id_Cte"].ToString();
                this.HD_ImporteTotal.Value   = Request.QueryString["Ncr_ImporteTotal"].ToString();
                this.HD_IVAfacturacion.Value = Request.QueryString["IVA_Ncr"].ToString();
                HdId_NcrSerie.Value          = Request.QueryString["Id_NcrSerie"].ToString();
                string folio = Request.QueryString["Folio"].ToString();



                if (Session["NcreditoEspecialGuardada" + Session.SessionID].ToString() != "1")
                {
                    ListaProductosNotaCreditoEspecial = new List <NotaCreditoDet>();
                }

                if (ListaProductosNotaCreditoEspecial != null && ListaProductosNotaCreditoEspecial.Count > 0)
                {
                    if (ListaProductosNotaCreditoEspecial[0].Producto.Prd_DescripcionEspecial == null)
                    {
                        ListaProductosNotaCreditoEspecial[0].Producto.Prd_DescripcionEspecial = "";
                    }

                    ListaProductosNotaCreditoEspecial[0].Producto.Prd_DescripcionEspecial = (ListaProductosNotaCreditoEspecial[0].Producto.Prd_DescripcionEspecial.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries)).Length > 0 ? (ListaProductosNotaCreditoEspecial[0].Producto.Prd_DescripcionEspecial.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries))[0] : "";
                }
                else
                {
                    ListaProductosNotaCreditoEspecial = new List <NotaCreditoDet>();
                    NotaCredito nota = new NotaCredito();
                    nota.Id_Emp      = sesion.Id_Emp;
                    nota.Id_Cd       = sesion.Id_Cd_Ver;
                    nota.Id_Ncr      = !string.IsNullOrEmpty(folio) ? Convert.ToInt32(folio) : 0;
                    nota.Id_NcrSerie = this.HdId_NcrSerie.Value.Trim();
                    List <NotaCreditoDet> listaProdFacturaEspecialFinal = new List <NotaCreditoDet>();
                    if (!string.IsNullOrEmpty(folio))
                    {
                        new CN_CapNotaCredito().ConsultaNotaCreditoEspecialDetalle(ref listaProdFacturaEspecialFinal
                                                                                   , sesion.Emp_Cnx
                                                                                   , sesion.Id_Emp
                                                                                   , sesion.Id_Cd_Ver
                                                                                   , Convert.ToInt32(folio)
                                                                                   , this.HdId_NcrSerie.Value.Trim()
                                                                                   , Convert.ToInt32(this.HD_Cliente.Value));
                    }

                    if (listaProdFacturaEspecialFinal.Count != 0)
                    {
                        ListaProductosNotaCreditoEspecial = listaProdFacturaEspecialFinal;
                    }
                    else
                    {
                        //// -------------------------------------------------------------------------------------------
                        //// obtener claves de productos de Remision original
                        //// -------------------------------------------------------------------------------------------
                        string clavesProducto = string.Empty;
                        foreach (DataRow dr in dt_detalles.Rows)
                        {
                            clavesProducto = clavesProducto + dr["Id_Prd"] + "|";
                        }
                        // -------------------------------------------------------------------------------------------
                        // consulta productos de factura especial en el catalogo de Cliente-Producto en base a los productos de la factura original
                        // -------------------------------------------------------------------------------------------
                        List <NotaCreditoDet> listaProdFacturaEspecial = new List <NotaCreditoDet>();
                        if (!string.IsNullOrEmpty(this.HD_Cliente.Value))
                        {
                            new CN_CatClienteProd().ConsultaClienteProd_NCreditoEspecial(ref listaProdFacturaEspecial
                                                                                         , sesion.Emp_Cnx
                                                                                         , sesion.Id_Emp
                                                                                         , sesion.Id_Cd_Ver
                                                                                         , Convert.ToInt32(this.HD_Cliente.Value)
                                                                                         , clavesProducto);
                        }
                        // -------------------------------------------------------------------------------------------
                        // Crear partidas adicionales de remision si es que la descripción viene con separadores "|"
                        // -------------------------------------------------------------------------------------------
                        for (int i = 0; i < listaProdFacturaEspecial.Count; i++)
                        {
                            NotaCreditoDet remisionDet = listaProdFacturaEspecial[i];
                            remisionDet.Id_CteExt = Convert.ToInt32(this.HD_Cliente.Value);//actualiza el cliente de la partida que es el cliente de la fact. original
                            string[] descripcion = remisionDet.Producto.Prd_DescripcionEspecial.Split(new char[] { '|' });

                            for (int j = 0; j < descripcion.Length; j++)
                            {
                                NotaCreditoDet remisionCopia = new NotaCreditoDet();
                                remisionCopia.Producto                         = new Producto();
                                remisionCopia.Id_CteExt                        = Convert.ToInt32(this.HD_Cliente.Value);
                                remisionCopia.Id_Prd                           = remisionDet.Id_Prd;
                                remisionCopia.Producto.Id_PrdEsp               = remisionDet.Producto.Id_PrdEsp;
                                remisionCopia.Producto.Prd_Descripcion         = remisionDet.Producto.Prd_Descripcion;
                                remisionCopia.Producto.Prd_Presentacion        = remisionDet.Producto.Prd_Presentacion;
                                remisionCopia.Producto.Prd_UniNe               = remisionDet.Producto.Prd_UniNe;
                                remisionCopia.Producto.Prd_InvFinal            = remisionDet.Producto.Prd_InvFinal;
                                remisionCopia.Producto.Prd_DescripcionEspecial = remisionDet.Producto.Prd_DescripcionEspecial;// descripcion[j];
                                remisionCopia.Id_Emp                           = sesion.Id_Emp;
                                remisionCopia.Id_Cd = sesion.Id_Cd_Ver;

                                if (j == 0)
                                {
                                    try
                                    {
                                        remisionCopia.Ncr_Importe = Convert.ToInt32(dt_detalles.Select("Id_Prd=" + remisionDet.Id_Prd)[0]["Ncr_Importe"]);
                                    }
                                    catch
                                    {
                                        remisionCopia.Ncr_Importe = 0;
                                    }
                                }
                                else
                                {
                                    remisionCopia.Ncr_Importe = 0;
                                }
                                ListaProductosNotaCreditoEspecial.Add(remisionCopia);
                            }
                        }
                    }
                }
                double ancho = 0;
                foreach (GridColumn gc in rgNotaCreditoEspecialDet.Columns)
                {
                    if (gc.Display)
                    {
                        ancho = ancho + gc.HeaderStyle.Width.Value;
                    }
                }
                rgNotaCreditoEspecialDet.Width = Unit.Pixel(Convert.ToInt32(ancho));
                rgNotaCreditoEspecialDet.MasterTableView.Width = Unit.Pixel(Convert.ToInt32(ancho));
                this.CalcularTotales();
                this.rgNotaCreditoEspecialDet.Rebind();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }