private void VerTicketGarantia() { string sFolio = this.txtReimpresion.Text; var oVenta = Datos.GetEntity <Venta>(c => c.Folio == sFolio && c.Estatus); if (oVenta == null) { UtilLocal.MensajeAdvertencia("La venta especificada no existe."); return; } // Se obtiene la garantía a reimprimir var oGarantias = Datos.GetListOf <VentasGarantiasView>(c => c.VentaID == oVenta.VentaID); int iGarantiaID = 0; if (oGarantias.Count == 0) { UtilLocal.MensajeAdvertencia("La venta especificada no tiene garantías."); return; } else if (oGarantias.Count > 1) { var frmListado = new SeleccionListado(oGarantias); frmListado.Text = "Selecciona una Garantía"; frmListado.MostrarColumnas("Fecha", "VentaGarantiaID", "Total"); frmListado.dgvListado.Columns["VentaGarantiaID"].HeaderText = "Folio Gar."; frmListado.dgvListado.Columns["Total"].FormatoMoneda(); if (frmListado.ShowDialog(Principal.Instance) == DialogResult.OK) { iGarantiaID = Util.Entero(frmListado.Seleccion["VentaGarantiaID"]); } frmListado.Dispose(); } else { iGarantiaID = oGarantias[0].VentaGarantiaID; } // Se manda reimprimir if (iGarantiaID > 0) { VentasLoc.GenerarTicketGarantia(iGarantiaID); this.txtReimpresion.Clear(); } }
private bool AgregarGarantia() { // Se valida la parte de detalle if (!this.ctlDetalle.Validar()) { return(false); } // Se valida la parte de búsqueda if (!this.ctlBusqueda.Validar()) { return(false); } // Se valida que sólo esté seleccionada una parte if (this.ctlDetalle.ProductosSel().Count > 1) { UtilLocal.MensajeAdvertencia("Debes seleccionar sólo un producto al hacer una garantía."); return(false); } // Se verifica si se creará vale, para pedir el cliente en caso de que no haya var oGarantia = this.ctlBusqueda.GenerarGarantia(); int iVentaID = this.ctlBusqueda.VentaID; var oVentaV = Datos.GetEntity <VentasView>(q => q.VentaID == iVentaID); int iValeClienteID = oVentaV.ClienteID; if ((oGarantia.AccionID == Cat.VentasGarantiasAcciones.ArticuloNuevo || oGarantia.AccionID == Cat.VentasGarantiasAcciones.NotaDeCredito) && iValeClienteID == Cat.Clientes.Mostrador) { iValeClienteID = VentasLoc.ObtenerClienteID("Selecciona el cliente para crear el Vale:", false); if (iValeClienteID == 0) { return(false); } } // Se pregunta el usuario que realiza la devolución int iUsuarioID = 0; var ResU = UtilLocal.ValidarObtenerUsuario("Ventas.Garantia.Agregar"); if (ResU.Error) { return(false); } iUsuarioID = ResU.Respuesta.UsuarioID; // Se solicita la autorización int iAutorizoID = 0; ResU = UtilLocal.ValidarObtenerUsuario("Autorizaciones.Ventas.Garantia.Agregar", "Autorización"); if (ResU.Exito) { iAutorizoID = ResU.Respuesta.UsuarioID; } // Se procede a guardar los cambios DateTime dAhora = DateTime.Now; // Se genera la garantía oGarantia.Fecha = dAhora; oGarantia.RealizoUsuarioID = iUsuarioID; oGarantia.EstatusGenericoID = Cat.EstatusGenericos.Recibido; // Se llenan los datos de la parte var oProducto = this.ctlDetalle.ProductosSel()[0]; oGarantia.ParteID = oProducto.ParteID; oGarantia.Costo = oProducto.Costo; oGarantia.CostoConDescuento = oProducto.CostoConDescuento; oGarantia.PrecioUnitario = oProducto.PrecioUnitario; oGarantia.Iva = oProducto.Iva; // Se guarda la garantía Guardar.VentaGarantia(oGarantia); // Si queda a revisión del proveedor, ya no se hace nada más que mandar el ticket if (oGarantia.AccionID != Cat.VentasGarantiasAcciones.RevisionDeProveedor) { this.CompletarAccionGarantia(oGarantia.VentaGarantiaID, iValeClienteID); } // Se mete un registro en kárdex, en cero, sólo para mantener historial de la operación var oKardex = new ParteKardex() { ParteID = oGarantia.ParteID, OperacionID = Cat.OperacionesKardex.VentaCancelada, SucursalID = oGarantia.SucursalID, Folio = oVentaV.Folio, Fecha = dAhora, RealizoUsuarioID = iUsuarioID, Entidad = oVentaV.Cliente, Origen = oVentaV.Sucursal, Destino = "GARANTÍA RECIBIDA", Cantidad = 0, Importe = (oGarantia.PrecioUnitario + oGarantia.Iva), RelacionTabla = Cat.Tablas.VentaGarantia, RelacionID = oGarantia.VentaGarantiaID }; AdmonProc.RegistrarKardex(oKardex); // Se guarda la autorización, si aplica VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.Garantia, Cat.Tablas.VentaGarantia, oGarantia.VentaGarantiaID, iAutorizoID); // Se genera el ticket correspondiente VentasLoc.GenerarTicketGarantia(oGarantia.VentaGarantiaID); return(true); }
private bool CompletarGarantia() { // Se valida la parte de búsqueda if (!this.ctlBusqueda.ValidarPendiente()) { return(false); } // int iGarantiaID = this.ctlBusqueda.SeleccionGarantiaID; var oGarantia = Datos.GetEntity <VentaGarantia>(c => c.VentaGarantiaID == iGarantiaID && c.Estatus); var oVentaV = Datos.GetEntity <VentasView>(c => c.VentaID == oGarantia.VentaID); // Se verifica si se creará vale, para pedir el cliente en caso de que no haya int iValeClienteID = oVentaV.ClienteID; if ((this.ctlBusqueda.IdAccionPosterior == Cat.VentasGarantiasAcciones.ArticuloNuevo || this.ctlBusqueda.IdAccionPosterior == Cat.VentasGarantiasAcciones.NotaDeCredito) && iValeClienteID == Cat.Clientes.Mostrador) { iValeClienteID = VentasLoc.ObtenerClienteID("Selecciona el cliente para crear el Vale:", false); if (iValeClienteID == 0) { return(false); } } // Se pregunta el usuario que realiza la devolución int iUsuarioID = 0; var ResU = UtilLocal.ValidarObtenerUsuario("Ventas.Garantia.Agregar"); if (ResU.Error) { return(false); } iUsuarioID = ResU.Respuesta.UsuarioID; // Se solicita la autorización int iAutorizoID = 0; ResU = UtilLocal.ValidarObtenerUsuario("Autorizaciones.Ventas.Garantia.Agregar", "Autorización"); if (ResU.Exito) { iAutorizoID = ResU.Respuesta.UsuarioID; } // Se procede a guardar los cambios DateTime dAhora = DateTime.Now; // Se completan los datos de la garantía oGarantia.AccionID = this.ctlBusqueda.IdAccionPosterior; oGarantia.FechaCompletado = dAhora; oGarantia.EstatusGenericoID = Cat.EstatusGenericos.Completada; if (this.ctlBusqueda.AccionObservacion != "") { oGarantia.ObservacionCompletado += (" - " + this.ctlBusqueda.AccionObservacion); } // Se guardan los datos Datos.Guardar <VentaGarantia>(oGarantia); // Si queda a revisión del proveedor, ya no se hace nada más que mandar el ticket if (oGarantia.AccionID != Cat.VentasGarantiasAcciones.NoProcede) { // Se borra la parte de la venta, pues ya se hizo válida la garantia var oParteVenta = Datos.GetEntity <VentaDetalle>(q => q.Estatus && q.VentaID == oGarantia.VentaID && q.ParteID == oGarantia.ParteID && q.PrecioUnitario == oGarantia.PrecioUnitario && q.Iva == oGarantia.Iva); if (oParteVenta.Cantidad > 1) { oParteVenta.Cantidad--; Datos.Guardar <VentaDetalle>(oParteVenta); } else { Datos.Eliminar <VentaDetalle>(oParteVenta, true); } // this.CompletarAccionGarantia(iGarantiaID, iValeClienteID); } // Se guarda la autorización, si aplica VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.Garantia, Cat.Tablas.VentaGarantia, oGarantia.VentaGarantiaID, iAutorizoID); // Se genera el ticket correspondiente VentasLoc.GenerarTicketGarantia(oGarantia.VentaGarantiaID); return(true); }