protected void dgComprobantes_CustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e)
        {
            UnidadDeTrabajo wu = new UnidadDeTrabajo();

            switch (e.ButtonID)
            {
            case "NotaCredito":
                string url = "ComprobantesVenta.aspx?cv=" + int.Parse(dgComprobantes.GetRowValues(e.VisibleIndex, "Id").ToString());
                Response.RedirectLocation = url;
                break;

            case "VerReporte":
                ComprobanteVenta cv = wu.ComprobanteVenta.ObtenerPorId(int.Parse(dgComprobantes.GetRowValues(e.VisibleIndex, "Id").ToString()));
                switch (cv.IdTipoDocumento)
                {
                case 1:         //Factura
                    Session["ItemClickeado"] = "Factura";
                    break;

                case 2:         //Factura
                    Session["ItemClickeado"] = "Boleta";
                    break;

                case 3:         //Factura
                    Session["ItemClickeado"] = "TicketVenta";
                    break;

                case 4:
                    Session["ItemClickeado"] = "NotaCredito";
                    break;
                }
                dgComprobantes.JSProperties["cpRedireccion"] = "Reporte.aspx?cv=" + cv.IdComprobanteVenta;
                break;
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            UnidadDeTrabajo wu = new UnidadDeTrabajo();

            IdComprobanteVenta = Request.QueryString["cv"];
            if (!string.IsNullOrEmpty(IdComprobanteVenta))
            {
                ComprobanteVenta cv = wu.ComprobanteVenta.ObtenerPorId(int.Parse(IdComprobanteVenta));
                if (wu.ComprobanteVenta.ObtenerNotasCreaditoAO_x_IdComprobante(cv.IdComprobanteVenta) == 0)
                {
                    OrdenVenta ov = wu.OrdenVenta.ObtenerPorId(cv.IdOrdenVenta);
                    txtComprobante.Text = cv.IdComprobanteVenta.ToString();
                    txtMotivo.Text      = null;
                    deFecha.Value       = DateTime.Now;

                    if (ov.TipoOrdenVenta.Contains("Trabajo"))
                    {
                        dgServiciosComprobante.DataSource = wu.ComprobanteVentaDetalle.ObtenerServiciosCv_x_IdComprobante(cv.IdComprobanteVenta);
                        dgServiciosComprobante.DataBind();
                        dgMaterialesComprobante.Visible = false;
                    }
                    else
                    {
                        dgMaterialesComprobante.DataSource = wu.ComprobanteVentaDetalle.ObtenerMaterialesCv_x_IdComprobante(cv.IdComprobanteVenta);
                        dgMaterialesComprobante.DataBind();
                        dgServiciosComprobante.Visible = false;
                    }
                    pcEmisorNotasCredito.ShowOnPageLoad = true;
                }
                else
                {
                    MostrarMensajes("El comprobante " + cv.Serie + "-" + string.Format("{0:00000000}", cv.Numero) + " ya tiene una nota de crédito asociada");
                }
            }
        }
        protected void btnApplyCreditNote_Click(object sender, EventArgs e)
        {
            using (var db = new UnidadDeTrabajo())
            {
                try
                {
                    ComprobanteVenta cva = db.ComprobanteVenta.ObtenerPorId(int.Parse(txtComprobante.Text)); //Comprobante de venta afectado
                    ComprobanteVenta cv  = new ComprobanteVenta
                    {
                        //{
                        Fecha                                                             = DateTime.Now,
                        IdPersona                                                         = cva.IdPersona,
                        Serie                                                             = cva.IdTipoDocumento == 1 ? "FC01" : cva.IdTipoDocumento == 2 ? "BC01" : "TC01",
                        Numero                                                            = 0,
                        Descuento                                                         = cva.Descuento,
                        Total                                                             = cva.Total,
                        IGV                                                               = 18,
                        FechaCreacion                                                     = DateTime.Now,
                        IdTipoDocumento                                                   = 4,
                        IdMotivoComprobante                                               = 3,
                        IdTipoPago                                                        = 1,
                        IdCaja                                                            = 1,
                        Observacion                                                       = "Emitido",
                        IdEstado                                                          = 65,
                        IdUsuario                                                         = Session["IdUserActive"] != null?int.Parse(Session["IdUserActive"].ToString()) : 1,
                                                                    IdOrdenVenta          = cva.IdOrdenVenta,
                                                                    IdComprobanteVentaRef = cva.IdComprobanteVenta,
                                                                    MotivoNotaCredito     = txtMotivo.Text
                    };

                    //};
                    db.ComprobanteVenta.Insertar(cv);
                    db.Grabar();
                    pcEmisorNotasCredito.ShowOnPageLoad = false;
                    dgComprobantes.DataBind();
                    MostrarMensajes("Operacion realizada con éxito");
                }
                catch (Exception ex)
                {
                    MostrarMensajes("Ha ocurrido un error inesperado: " + ex.Message);
                }
            }
        }
示例#4
0
        protected void cpEmitirComprobante_Callback(object sender, DevExpress.Web.CallbackEventArgsBase e)
        {
            switch (int.Parse(e.Parameter))
            {
            case 1:
                dtpFecha.Value            = DateTime.Today;
                dtpFechaVencimiento.Value = DateTime.Today;
                using (var db = new UnidadDeTrabajo())
                {
                    OrdenVenta ov = db.OrdenVenta.ObtenerPorId(int.Parse(hfIdOV.Get("IdOV").ToString()));
                    if (ov.IdClienteNatural > 0)
                    {
                        Cliente cl = db.Cliente.ObtenerPorId(ov.IdClienteNatural);
                        Persona p  = db.Persona.ObtenerPorId(cl.IdPersona);
                        lblPersona.Value      = p.ApellidoPaterno + " " + p.ApellidoMaterno + ", " + p.Nombres;
                        cbTipoDocumento.Value = 2;
                        cbTipoPago.Value      = 1;
                        hfIdOV.Set("IdOV", ov.Id);
                        hfIdPersona.Set("IdPersona", p.Id);
                        hfRuc.Set("RUC", p.Ruc);
                    }
                    else
                    {
                        Empresa em = db.Empresa.ObtenerPorId(ov.IdClienteJuridico);
                        Persona p  = db.Persona.ObtenerPorId(em.IdPersona);
                        lblPersona.Value      = p.RazonSocial;
                        cbTipoDocumento.Value = 1;
                        cbTipoPago.Value      = 1;
                        hfIdOV.Set("IdOV", ov.Id);
                        hfIdPersona.Set("IdPersona", p.Id);
                        hfRuc.Set("RUC", p.Ruc);
                    }
                    decimal tot = db.OrdenVentaDetalle.ObtenerTotalOrdenVenta(ov.Id);
                    txtSubTotalTicket.Value = Math.Round((double)tot / 1.18, 2);
                    txtIGV.Value            = Math.Round(((double)tot / 1.18) * 0.18, 2);
                    txtTotalTicket.Value    = tot;
                    txtDescuento.Value      = 0;
                    if (ov.TipoOrdenVenta.Contains("Trabajo"))
                    {
                        btnAceptar2.ClientEnabled = ov.IdEstado == 59 ? true : false;
                    }
                    else
                    {
                        btnAceptar2.ClientEnabled = ov.IdEstado == 39 ? true : false;
                    }
                }
                break;

            case 2:
                try
                {
                    using (var db = new UnidadDeTrabajo())
                    {
                        ComprobanteVenta cv = new ComprobanteVenta();
                        //{
                        cv.Fecha               = DateTime.Now;
                        cv.IdPersona           = int.Parse(hfIdPersona.Get("IdPersona").ToString());
                        cv.Serie               = int.Parse(cbTipoDocumento.Value.ToString()) == 1 ? "F001" : int.Parse(cbTipoDocumento.Value.ToString()) == 2 ? "B001" : "T001";
                        cv.Numero              = 0;
                        cv.Descuento           = double.Parse(txtDescuento.Text);
                        cv.Total               = double.Parse(txtTotalTicket.Text);
                        cv.IGV                 = 18;
                        cv.FechaCreacion       = DateTime.Now;
                        cv.IdTipoDocumento     = int.Parse(cbTipoDocumento.Value.ToString());
                        cv.IdMotivoComprobante = 1;
                        cv.IdTipoPago          = int.Parse(cbTipoPago.Value.ToString());
                        cv.IdCaja              = 1;
                        cv.Observacion         = "Emitido";
                        cv.IdEstado            = 65;
                        cv.IdUsuario           = Session["IdUserActive"] != null?int.Parse(Session["IdUserActive"].ToString()) : 1;

                        cv.IdOrdenVenta = int.Parse(hfIdOV.Get("IdOV").ToString());

                        //};
                        db.ComprobanteVenta.Insertar(cv);
                        db.Grabar();
                    }

                    cpEmitirComprobante.JSProperties["cpEmisionCV"] = "OK";
                }
                catch (Exception ex)
                {
                    cpEmitirComprobante.JSProperties["cpEmisionCV"] = "Error: " + ex.Message;
                }
                break;
            }
        }
示例#5
0
        protected void dgOrdenVentaes_CustomButtonCallback(object sender, DevExpress.Web.ASPxGridViewCustomButtonCallbackEventArgs e)
        {
            UnidadDeTrabajo wu = new UnidadDeTrabajo();

            switch (e.ButtonID)
            {
            case "Editar":
                string url = "OrdenesVenta.aspx?Id=" + int.Parse(dgOrdenesVenta.GetRowValues(e.VisibleIndex, "Id").ToString());
                Response.RedirectLocation = url;
                break;

            case "Anular":
                OrdenVenta Cot_anular = wu.OrdenVenta.ObtenerPorId(int.Parse(dgOrdenesVenta.GetRowValues(e.VisibleIndex, "Id").ToString()));
                if (Cot_anular.IdEstado == 48)
                {
                    dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Operación denegada: La orden de venta ya ha sido facturada";
                }
                else if (Cot_anular.IdEstado == 40)
                {
                    dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Operación denegada: La orden de venta ya ha sido Anulada";
                }
                else if (Cot_anular.IdEstado == 59)
                {
                    dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Operación denegada: La orden de venta ya es una Orden de Trabajo";
                }
                else
                {
                    Cot_anular.IdEstado = 40;
                    wu.OrdenVenta.Actualizar(Cot_anular);
                    wu.Grabar();
                    cargarOrdenVentaes();
                    dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Operación realizada con éxito";
                }
                break;

            case "btnVender":
                OrdenVenta Cot_vender = wu.OrdenVenta.ObtenerPorId(int.Parse(dgOrdenesVenta.GetRowValues(e.VisibleIndex, "Id").ToString()));
                if (Cot_vender.IdEstado == 48)
                {
                    dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Operación denegada: La orden de venta ya ha sido facturada";
                }
                else if (Cot_vender.IdEstado == 40)
                {
                    dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Operación denegada: La orden de venta ya ha sido Anulada";
                }
                else if (Cot_vender.IdEstado == 59)
                {
                    dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Operación denegada: La orden de venta ya es una Orden de Trabajo";
                }
                else
                {
                    if (wu.OrdenVentaDetalle.ContarDetalleOrdenVentaMayorStock(int.Parse(dgOrdenesVenta.GetRowValues(e.VisibleIndex, "Id").ToString())) == 0)
                    {
                        Cot_vender.IdEstado = 48;
                        wu.OrdenVenta.Actualizar(Cot_vender);
                        try
                        {
                            wu.Grabar();
                            dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Operación realizada con éxito";
                        }
                        catch (Exception ex) { dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "error:" + ex.InnerException.Message; }
                        cargarOrdenVentaes();
                    }
                    else
                    {
                        dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Operación denegada: No hay suficientes unidades en stock";
                    }
                }
                break;

            case "btnToOt":
                OrdenVenta ordenv = wu.OrdenVenta.ObtenerPorId(int.Parse(dgOrdenesVenta.GetRowValues(e.VisibleIndex, "Id").ToString()));
                if (ordenv.IdEstado == 48)
                {
                    dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Operación denegada: La orden de venta ya ha sido facturada";
                }
                else if (ordenv.IdEstado == 40)
                {
                    dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Operación denegada: La orden de venta ya ha sido Anulada";
                }
                else if (ordenv.IdEstado == 59)
                {
                    dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Operación denegada: La orden de venta ya es una Orden de Trabajo";
                }
                else if (ordenv.TipoOrdenVenta.Contains("Directa"))
                {
                    dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Operación denegada: Este tipo de orden de venta no puede convertirse en orden de trabajo";
                }
                else
                {
                    try
                    {
                        if (wu.OrdenVenta.ConvertirOrdenVenta_OrdenTrabajo(ordenv.Id, Session["IdUserActive"] != null ? int.Parse(Session["IdUserActive"].ToString()) : 1) == "")
                        {
                            ordenv.IdEstado = 59;
                            wu.OrdenVenta.Actualizar(ordenv);
                            wu.Grabar();
                            cargarOrdenVentaes();
                            dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Operación realizada correctamente";
                        }
                    }
                    catch (Exception ex)
                    {
                        dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "Error: " + ex.Message;
                    }
                }
                break;

            case "showReport":
                OrdenVenta ov = wu.OrdenVenta.ObtenerPorId(int.Parse(dgOrdenesVenta.GetRowValues(e.VisibleIndex, "Id").ToString()));
                if (ov.IdEstado != 48)
                {
                    dgOrdenesVenta.JSProperties["cpOperacionesGrid"] = "La orden de venta " + ov.Id + " aún no tiene comprobante";
                }
                else
                {
                    int IdCv            = wu.ComprobanteVenta.ObtenerComprobanteId_OrdenVenta(ov.Id);
                    ComprobanteVenta cv = wu.ComprobanteVenta.ObtenerPorId(IdCv);
                    switch (cv.IdTipoDocumento)
                    {
                    case 1:         //Factura
                        Session["ItemClickeado"] = "Factura";
                        break;

                    case 2:         //Boleta
                        Session["ItemClickeado"] = "Boleta";
                        break;

                    case 3:         //TicketVenta
                        Session["ItemClickeado"] = "TicketVenta";
                        break;
                    }
                    dgOrdenesVenta.JSProperties["cpRedireccion"] = "Reporte.aspx?cv=" + IdCv;
                }
                break;

            case "showProforma":
                Session["ItemClickeado"] = "Proforma";
                dgOrdenesVenta.JSProperties["cpRedireccion"] = "Reporte.aspx?ovp=" + int.Parse(dgOrdenesVenta.GetRowValues(e.VisibleIndex, "Id").ToString());
                break;
            }
        }