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); } } }
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; } }
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; } }