Beispiel #1
0
        private void CalcularTotales()
        {
            Sesion            sesion       = (Sesion)Session["Sesion" + Session.SessionID];
            List <FacturaDet> lista        = this.ListaProductosFacturaEspecial;
            double            importeTotal = 0;
            //if ( Convert.ToDouble((Request.QueryString["Descuento1"]).ToString())  )



            double porcDescuento1 = (Request.QueryString["Descuento1"]) == null ? 0 :  Convert.ToDouble((Request.QueryString["Descuento1"]).ToString());
            double porcDescuento2 = (Request.QueryString["Descuento2"]) == null ? 0 : Convert.ToDouble((Request.QueryString["Descuento2"]).ToString());

            for (int i = 0; i < lista.Count; i++)
            {
                FacturaDet rem = lista[i];
                importeTotal += rem.Fac_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_IVARemision.Value.Trim() != string.Empty ? (importeTotal * iva / 100).ToString() : "0";
            txtTotal.Text    = (Convert.ToSingle(txtSubTotal.Text) + Convert.ToSingle(txtIVA.Text)).ToString();
            Session["FacEspecialGuardada" + Session.SessionID] = 2;
        }
Beispiel #2
0
        protected void ListaProductosFacturaEspecial_AgregarProducto(FacturaDet remision_prod)
        {
            try
            {
                List <FacturaDet> lista = this.ListaProductosFacturaEspecial;

                lista.Add(remision_prod);
                this.ListaProductosFacturaEspecial = lista;
                this.CalcularTotales();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #3
0
        protected void ListaProductosFacturaEspecial_ModificarProducto(FacturaDet remision_prod, int index)
        {
            try
            {
                List <FacturaDet> lista = this.ListaProductosFacturaEspecial;
                //buscar producto de factura en la lista
                FacturaDet remision = lista[index];
                if (remision.Id_Prd == remision_prod.Id_Prd)
                {
                    lista[index] = remision_prod;
                }

                this.ListaProductosFacturaEspecial = lista;
                this.CalcularTotales();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #4
0
        protected void rgFacturaEspecialDet_UpdateCommand(object sender, GridCommandEventArgs e)
        {
            FacturaDet FacturaDet = new FacturaDet();

            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_Fac      = 0;                                      //se debe volver asignar cuando se guarda la orden de compra, cuando actualiza queda igual
                FacturaDet.Id_FacDet   = 0;
                FacturaDet.Id_CteExt   = Convert.ToInt32(this.HD_Cliente.Value); //cliente de datos generales de la factura
                FacturaDet.Id_Prd      = Convert.ToInt32((insertedItem["Id_Prd"].FindControl("cmbProducto") as RadComboBox).SelectedValue);
                FacturaDet.Fac_Cant    = (insertedItem["Fac_Cant"].FindControl("txtRem_Cantidad") as RadNumericTextBox).Value.HasValue ? Convert.ToInt32((insertedItem["Fac_Cant"].FindControl("txtRem_Cantidad") as RadNumericTextBox).Value.Value) : 0;
                FacturaDet.Clp_Release = (insertedItem["Clp_Release"].FindControl("txtClp_ReleaseEdit") as RadTextBox).Text;
                double precioPartida = (insertedItem["Fac_Precio"].FindControl("txtRem_Precio") as RadNumericTextBox).Value.HasValue ? Convert.ToDouble((insertedItem["Fac_Precio"].FindControl("txtRem_Precio") as RadNumericTextBox).Value.Value) : 0;
                (insertedItem["Fac_Importe"].FindControl("lblRem_ImporteEdit") as Label).Text = FacturaDet.Fac_Importe.ToString();
                FacturaDet.Fac_Precio = precioPartida;

                //datos del producto de la orden de compra
                FacturaDet.Producto                         = new Producto();
                FacturaDet.Producto.Id_Prd                  = Convert.ToInt32((insertedItem["Id_Prd"].FindControl("cmbProducto") as RadComboBox).SelectedValue);
                FacturaDet.Producto.Id_Emp                  = sesion.Id_Emp;
                FacturaDet.Producto.Id_Cd                   = sesion.Id_Cd_Ver;
                FacturaDet.Producto.Id_PrdEsp               = (insertedItem.FindControl("txtId_PrdEsp") as RadTextBox).Text;
                FacturaDet.Producto.Prd_Descripcion         = (insertedItem["Id_Prd"].FindControl("cmbProducto") as RadComboBox).Text;
                FacturaDet.Producto.Prd_DescripcionEspecial = (insertedItem["Prd_Descripcion"].FindControl("txtPrd_Descripcion") as RadTextBox).Text;
                FacturaDet.Producto.Prd_Presentacion        = (insertedItem["Prd_Presentacion"].FindControl("txtPrd_Presentacion") as RadTextBox).Text;
                FacturaDet.Producto.Prd_UniNe               = (insertedItem["Prd_UniNe"].FindControl("txtPrd_UniNe") as RadTextBox).Text;

                //agregar producto de orden de compra a la lista
                this.ListaProductosFacturaEspecial_ModificarProducto(FacturaDet, e.Item.ItemIndex);
            }
            catch (Exception ex)
            {
                string mensaje = string.Concat(ex.Message, "rgFacturaEspecial_insert_error");
                this.DisplayMensajeAlerta(mensaje);
            }
        }
Beispiel #5
0
        private void toolStripGenerar_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.txtNumeroCliente.Text == "")
                {
                    MessageBox.Show("Ingrese Cliente.", "Modulo de Facturacion",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                if (this.txtNumSRI.Text == "")
                {
                    MessageBox.Show("Ingrese Numero SRI.", "Modulo de Facturacion",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                if (this.txtNumeroCotizacion.Text == "")
                {
                    MessageBox.Show("Ingrese Cotizacion.", "Modulo de Facturacion",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                if (cbxFormaPago.SelectedValue == "")
                {
                    MessageBox.Show("Seleccione Forma de Pago.", "Modulo de Facturacion",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                if (this.tbldetalle.Rows.Count == 0)
                {
                    MessageBox.Show("Favor ingrese un articulo para su factura.", "Modulo de Facturacion",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                Factura obj = new Factura();
                obj.IdNumeroFactura = Int32.Parse(txtNumeroFactura.Text);
                // obj.cabecera_comprobante = Int32.Parse(txtNumSRI.Text);
                obj.IdNumeroCotizacion = Int32.Parse(txtNumeroCotizacion.Text);
                obj.IdPromocion        = Int32.Parse(txtNumeroPromocion.Text);
                obj.IdFormaPago        = Int32.Parse(cbxFormaPago.SelectedValue.ToString());
                obj.IdNumeroCliente    = Int32.Parse(txtNumeroCliente.Text);
                obj.Fecha              = this.dtpFecha.Value;
                obj.ValorEntrada       = Decimal.Parse(txtValorEntrada.Text);
                obj.NumeroCuotaMensual = Int32.Parse(txtNumeroCuotaMensual.Text);
                obj.Subtotal           = txtsubtotal.Value;
                obj.Iva        = txtiva.Value;
                obj.Ice        = txtice.Value;
                obj.Descuento  = txtdescuento.Value;
                obj.TotalPagar = txtTotalPagar.Value;

                obj.IdEmpresa = Seguridad.empresa;
                obj.idUsuario = Seguridad.usuario;
                obj.idEstado  = Int32.Parse(cmbestado.SelectedValue.ToString());

                da.AddToFactura(obj);
                int respuesta = da.SaveChanges();
                if (respuesta > 0)
                {
                    int i = 0;
                    while (i < tbldetalle.Rows.Count)
                    {
                        FacturaDet objdet = new FacturaDet();
                        objdet.IdEmpresa = Seguridad.empresa;
                        objdet.idUsuario = Seguridad.usuario;
                        objdet.idEstado  = Int32.Parse(cmbestado.SelectedValue.ToString());

                        objdet.Linea           = i + 1;
                        objdet.IdNumeroFactura = Int32.Parse(txtNumeroFactura.Text);

                        objdet.IdArticulo      = Int32.Parse(tbldetalle.Rows[i][0].ToString());
                        objdet.CuotaMensual    = Decimal.Parse(tbldetalle.Rows[i][2].ToString());
                        objdet.FechaPago       = DateTime.Parse(tbldetalle.Rows[i][3].ToString());
                        objdet.FechaMaximaPago = DateTime.Parse(tbldetalle.Rows[i][4].ToString());
                        objdet.precio          = Decimal.Parse(tbldetalle.Rows[i][5].ToString());
                        objdet.cantidad        = Int32.Parse(tbldetalle.Rows[i][6].ToString());
                        da.AddToFacturaDet(objdet);
                        da.SaveChanges();
                        i++;
                    }

                    //guardar cuentas por cobrar
                    Int32 maxUnitsInStock = 0;
                    try
                    {
                        maxUnitsInStock =
                            (from prod in da.Factura
                             select prod.IdNumeroFactura).Max() + 1;

                        ;
                    }
                    catch (Exception ex)
                    {
                        maxUnitsInStock = 1;
                    }

                    CuentaxCobrar objcxc = new CuentaxCobrar();
                    objcxc.idCuentaxCobrar = Int32.Parse(maxUnitsInStock.ToString());
                    //objcxc.numero_comprobante =
                    objcxc.idTransaccion =
                        objcxc.idFactura = Int32.Parse(this.txtNumeroFactura.Text);
                    //objcxc.idCabeceraComprobante =
                    objcxc.TotalCuotas        = Int32.Parse(txtNumeroCuotaMensual.Text);
                    objcxc.porcentaje_interes = Decimal.Parse(this.txtTasaFija.Text);
                    objcxc.Modulo             = 1;


                    objcxc.idEmpresa = Seguridad.empresa;
                    objcxc.idUsuario = Seguridad.usuario;
                    objcxc.idEstado  = Int32.Parse(cmbestado.SelectedValue.ToString());
                    da.AddToCuentaxCobrar(objcxc);
                    respuesta = da.SaveChanges();
                    if (respuesta > 0)
                    {
                        i = 0;
                        while (i < tblcutoas.Rows.Count)
                        {
                            CuentaxCobrarDet objdetcxc = new CuentaxCobrarDet();
                            objdetcxc.idCuentaxCobrar = objcxc.idCuentaxCobrar;

                            objdetcxc.idEmpresa = Seguridad.empresa;
                            objdetcxc.idUsuario = Seguridad.usuario;
                            objdetcxc.idEstado  = Int32.Parse(cmbestado.SelectedValue.ToString());

                            objdetcxc.Numero       = i + 1;
                            objdetcxc.numero_cuota = i + 1;

                            objdetcxc.valor_cuota       = Decimal.Parse(tblcutoas.Rows[i][0].ToString());
                            objdetcxc.valor_interes     = Decimal.Parse(tblcutoas.Rows[i][1].ToString());
                            objdetcxc.valor_mora        = 0;
                            objdetcxc.fecha_cobro       = DateTime.Parse(tblcutoas.Rows[i][2].ToString());
                            objdetcxc.fecha_vencimiento = DateTime.Parse(tblcutoas.Rows[i][3].ToString());
                            objdetcxc.FechaModificacion = DateTime.Parse(DateAndTime.Now.ToShortDateString());

                            da.AddToCuentaxCobrarDet(objdetcxc);
                            da.SaveChanges();
                            i++;
                        }
                    }

                    MessageBox.Show("Registro Ingresado con exito.", "Modulo de Facturacion",
                                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //cargarpromociones();
                    ImprimirReporte();


                    limpiar();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ingrese Correctamente los valores. " + ex.Message, "Modulo de Facturacion",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Beispiel #6
0
        private void Inicializar()
        {
            try
            {
                if (!Convert.ToBoolean(Request.QueryString["Modificar"]))
                {
                    RadToolBar1.Items[1].Visible = false;
                }

                Sesion sesion = (Sesion)Session["Sesion" + Session.SessionID];
                this.HD_Cliente.Value      = Request.QueryString["Id_Cte"].ToString();
                this.HD_Moneda.Value       = Request.QueryString["Id_Mon"].ToString();
                this.HD_ImporteTotal.Value = Convert.ToDouble(Request.QueryString["Fac_ImporteTotal"]).ToString();
                this.HD_IVARemision.Value  = Request.QueryString["IVAfacturacion"].ToString();
                this.HdId_FacSerie.Value   = Request.QueryString["Id_FacSerie"].ToString();
                //Desc1 = Convert.ToDouble((Request.QueryString["Descuento1"]).ToString());
                //Desc2 = Convert.ToDouble((Request.QueryString["Descuento2"]).ToString());


                if (Session["FacEspecialGuardada" + Session.SessionID] != null)
                {
                    if (Session["FacEspecialGuardada" + Session.SessionID].ToString() != "1")
                    {
                        ListaProductosFacturaEspecial = new List <FacturaDet>();
                    }
                }

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

                    ListaProductosFacturaEspecial[0].Producto.Prd_DescripcionEspecial = (ListaProductosFacturaEspecial[0].Producto.Prd_DescripcionEspecial.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries)).Length > 0 ? (ListaProductosFacturaEspecial[0].Producto.Prd_DescripcionEspecial.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries))[0] : "";
                }
                else
                {
                    ListaProductosFacturaEspecial = new List <FacturaDet>();

                    string  folio    = Request.QueryString["Folio"].ToString();
                    Factura remision = new Factura();
                    remision.Id_Emp = sesion.Id_Emp;
                    remision.Id_Cd  = sesion.Id_Cd_Ver;
                    remision.Id_Fac = !string.IsNullOrEmpty(folio) ? Convert.ToInt32(folio) : 0;

                    List <FacturaDet> listaProdFacturaEspecialFinal = new List <FacturaDet>();
                    if (!string.IsNullOrEmpty(folio))
                    {
                        new CN_CapFactura().ConsultaFacturaEspecialDetalle(ref listaProdFacturaEspecialFinal
                                                                           , sesion.Emp_Cnx
                                                                           , sesion.Id_Emp
                                                                           , sesion.Id_Cd_Ver
                                                                           , Convert.ToInt32(folio)
                                                                           , HdId_FacSerie.Value.Trim()
                                                                           , Convert.ToInt32(this.HD_Cliente.Value));
                    }

                    if (listaProdFacturaEspecialFinal.Count != 0)
                    {
                        ListaProductosFacturaEspecial = listaProdFacturaEspecialFinal;
                    }
                    else
                    {
                        //// -------------------------------------------------------------------------------------------
                        //// obtener claves de productos de Factura original
                        //// -------------------------------------------------------------------------------------------
                        string clavesProducto = string.Empty;

                        foreach (DataRow dr in dt_detalles.Rows)
                        {
                            clavesProducto = clavesProducto + dr["Id_Prd"] + "|";
                        }
                        // -------------------------------------------------------------------------------------------
                        // consulta productos de facturacion especial en el catalogo de Cliente-Producto en base a los productos de la Remision original
                        // -------------------------------------------------------------------------------------------
                        List <FacturaDet> listaProdFacturaEspecial = new List <FacturaDet>();

                        if (!string.IsNullOrEmpty(this.HD_Cliente.Value))
                        {
                            new CN_CatClienteProd().ConsultaClienteProd_FacturaEspecial(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++)
                        {
                            FacturaDet FacturaDet = listaProdFacturaEspecial[i];
                            FacturaDet.Id_CteExt = Convert.ToInt32(this.HD_Cliente.Value);//actualiza el cliente de la partida que es el cliente de la fact. original
                            string[] descripcion = FacturaDet.Producto.Prd_DescripcionEspecial.Split(new char[] { '|' });

                            for (int j = 0; j < descripcion.Length; j++)
                            {
                                FacturaDet remisionCopia = new FacturaDet();
                                remisionCopia.Producto                         = new Producto();
                                remisionCopia.Id_CteExt                        = Convert.ToInt32(this.HD_Cliente.Value);
                                remisionCopia.Id_Prd                           = FacturaDet.Id_Prd;
                                remisionCopia.Producto.Id_PrdEsp               = FacturaDet.Producto.Id_PrdEsp.ToString();
                                remisionCopia.Producto.Id_Prd                  = FacturaDet.Producto.Id_Prd;
                                remisionCopia.Producto.Prd_Descripcion         = FacturaDet.Producto.Prd_Descripcion;
                                remisionCopia.Producto.Prd_Presentacion        = FacturaDet.Producto.Prd_Presentacion;
                                remisionCopia.Producto.Prd_UniNe               = FacturaDet.Producto.Prd_UniNe;
                                remisionCopia.Producto.Prd_InvFinal            = FacturaDet.Producto.Prd_InvFinal;
                                remisionCopia.Producto.Prd_DescripcionEspecial = descripcion[j];
                                try
                                {
                                    remisionCopia.Fac_Precio = Convert.ToDouble(dt_detalles.Select("Id_Prd=" + FacturaDet.Id_Prd)[0]["Fac_Precio"]);
                                }
                                catch (Exception)
                                {
                                }
                                remisionCopia.Id_Emp = sesion.Id_Emp;
                                remisionCopia.Id_Cd  = sesion.Id_Cd_Ver;
                                if (j == 0)
                                {
                                    try
                                    {
                                        remisionCopia.Fac_Cant = Convert.ToInt32(dt_detalles.Select("Id_Prd=" + FacturaDet.Id_Prd)[0]["Fac_Cant"]);
                                    }
                                    catch
                                    {
                                        remisionCopia.Fac_Cant = 0;
                                    }
                                }
                                else
                                {
                                    remisionCopia.Fac_Cant = 0;
                                }
                                ListaProductosFacturaEspecial.Add(remisionCopia);
                            }
                        }
                    }
                }
                double ancho = 0;
                foreach (GridColumn gc in rgFacturaEspecialDet.Columns)
                {
                    if (gc.Display)
                    {
                        ancho = ancho + gc.HeaderStyle.Width.Value;
                    }
                }
                rgFacturaEspecialDet.Width = Unit.Pixel(Convert.ToInt32(ancho));
                rgFacturaEspecialDet.MasterTableView.Width = Unit.Pixel(Convert.ToInt32(ancho));

                this.CalcularTotales();
                rgFacturaEspecialDet.Rebind();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }