private void Cancelar9500(int i9500ID) { var o9500 = Datos.GetEntity <Cotizacion9500>(q => q.Cotizacion9500ID == i9500ID && q.Estatus); // Se valida que ya se haya cobrado la venta del anticipo var oVenta = Datos.GetEntity <Venta>(q => q.VentaID == o9500.AnticipoVentaID && q.Estatus); if (oVenta.VentaEstatusID == Cat.VentasEstatus.Realizada) { UtilLocal.MensajeAdvertencia("El 9500 seleccionado no ha sido cobrado. Para cancelarlo, cancela la Venta del anticipo desde Ventas por Cobrar."); return; } if (UtilLocal.MensajePregunta("¿Estás seguro que deseas cancelar el 9500 seleccionado?") == DialogResult.Yes) { var oMotivo = UtilLocal.ObtenerValor("¿Cuál es el motivo de la baja?", "", MensajeObtenerValor.Tipo.TextoLargo); if (oMotivo == null) { return; } var oResU = UtilLocal.ValidarObtenerUsuario(); if (oResU.Error) { return; } Cargando.Mostrar(); // Se cancela el 9500 VentasProc.Cancelar9500(i9500ID, Util.Cadena(oMotivo), oResU.Respuesta.UsuarioID); Cargando.Cerrar(); this.CargarLista9500(); } }
private void btnNcAgregar_Click(object sender, EventArgs e) { // Se solicita el concepto e importe de la nota de crédito string sConcepto = Util.Cadena(UtilLocal.ObtenerValor("Concepto de la Nota de Crédito:", "", MensajeObtenerValor.Tipo.TextoLargo)); if (sConcepto == "") { return; } decimal mImporte = Util.Decimal(UtilLocal.ObtenerValor("Importe de la Nota de Crédito:", "0.00", MensajeObtenerValor.Tipo.Decimal)); if (mImporte == 0) { return; } // Se solicita la autorización var ResAut = UtilLocal.ValidarObtenerUsuario("Autorizaciones.Ventas.NotasDeCredito.Agregar", "Autorización"); // Se genera la nota, si todo fue bien if (ResAut.Exito) { var ResNC = VentasProc.GenerarNotaDeCredito(this.Cliente.ClienteID, mImporte, sConcepto, Cat.OrigenesNotaDeCredito.Directo, ResAut.Respuesta.UsuarioID); // Se manda a crear la póliza contable correspondiente (AfeConta) var oVale = Datos.GetEntity <NotaDeCredito>(c => c.NotaDeCreditoID == ResNC.Respuesta && c.Estatus); ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.ValeDirecto, oVale.NotaDeCreditoID, this.Cliente.Nombre, oVale.Observacion); // Se guarda la autorización VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.NotaDeCreditoCrear, Cat.Tablas.NotaDeCredito, ResNC.Respuesta, ResAut.Respuesta.UsuarioID); // Se manda imprimir el ticket correspondiente VentasLoc.GenerarTicketNotaDeCredito(ResNC.Respuesta); // UtilLocal.MostrarNotificacion("Nota de Crédito generada correctamente."); this.NcAplicarFiltro(); } }
private void VerCambioCaracteristica() { int iCaracteristicaID = Util.Entero(this.dgvCaracteristicas.CurrentRow.Cells["colCaracteristicaID"].Value); if (iCaracteristicaID == -1) { // Se pregunta por la nueva característica var oCaracteristica = UtilLocal.ObtenerValor("Indica el nombre de la Característica:", "", MensajeObtenerValor.Tipo.Texto); if (oCaracteristica != null) { // Se obtiene el valor correspondiente var oListaCaracteristicas = (this.colCaracteristicaID.DataSource as List <LineasCaracteristicasView>); int iValorSig = oListaCaracteristicas.Min(c => c.CaracteristicaID); iValorSig--; // oListaCaracteristicas.Add(new LineasCaracteristicasView() { CaracteristicaID = iValorSig, Caracteristica = Util.Cadena(oCaracteristica) }); this.dgvCaracteristicas.CurrentRow.Cells["colCaracteristicaID"].Value = iValorSig; } } else { var oCaracteristica = Datos.GetEntity <Caracteristica>(c => c.CaracteristicaID == iCaracteristicaID); if (oCaracteristica != null) { this.dgvCaracteristicas.CurrentRow.Cells["colMultipleOpciones"].Value = oCaracteristica.MultipleOpciones; } } }
private void EditarDescripcion(DataGridViewRow oFila) { if (UtilLocal.ValidarPermiso("Ventas.Ticket.EditarDescripcionPartes")) { var oProd = (oFila.DataBoundItem as ProductoVenta); var oValor = UtilLocal.ObtenerValor("Indica la Descripción a utilizar:", oProd.NombreDeParte, MensajeObtenerValor.Tipo.TextoLargo); if (oValor != null) { oProd.NombreDeParte = Util.Cadena(oValor); oFila.Cells["Descripcion"].Value = oValor; } } }
// Se cargan los datos por el método "ActualizarDatos", que es llamado desde el "Load" de la base. protected override void btnNuevo_Click(object sender, EventArgs e) { object oNombre = UtilLocal.ObtenerValor("Indica el nombre del Consumible:", "", MensajeObtenerValor.Tipo.Texto); if (Util.Cadena(oNombre) != "") { var oRegistro = new ContaConsumible() { Consumible = Util.Cadena(oNombre) }; Datos.Guardar <ContaConsumible>(oRegistro); this.ActualizarDatos(); } }
protected override void btnNuevo_Click(object sender, EventArgs e) { object Banco = UtilLocal.ObtenerValor("Indica el nombre del banco:", "", MensajeObtenerValor.Tipo.Texto); if (Util.Cadena(Banco) != "") { var oBanco = new Banco() { NombreBanco = Util.Cadena(Banco) }; Datos.Guardar <Banco>(oBanco); this.ActualizarDatos(); } }
// Se cargan los datos por el método "ActualizarDatos", que es llamado desde el "Load" de la base. protected override void btnNuevo_Click(object sender, EventArgs e) { object oValor = UtilLocal.ObtenerValor("Indica el nombre del Gasto:", "", MensajeObtenerValor.Tipo.Texto); string sValor = Util.Cadena(oValor); if (sValor != "") { var oEgreso = new CajaTipoEgreso() { NombreTipoEgreso = sValor, Seleccionable = true }; Datos.Guardar <CajaTipoEgreso>(oEgreso); this.ActualizarDatos(); } }
private void dgvNotasDeCredito_KeyDown(object sender, KeyEventArgs e) { if (this.dgvNotasDeCredito.CurrentRow == null) { return; } if (e.KeyCode == Keys.Delete) { // Se verifica la nota de crédito seleccionada int iNotaDeCreditoID = Util.Entero(this.dgvNotasDeCredito.CurrentRow.Cells["ncNotaDeCreditoID"].Value); var oNota = Datos.GetEntity <NotaDeCredito>(q => q.NotaDeCreditoID == iNotaDeCreditoID && q.Estatus); if (oNota.Valida == false) { UtilLocal.MensajeAdvertencia("La nota de crédito seleccionada ya no es válida. No se puede continuar."); return; } if (UtilLocal.MensajePregunta("¿Estás seguro que deseas dar de baja la nota de crédito seleccionada?") == DialogResult.Yes) { // Se solicita el motivo var oMotivo = UtilLocal.ObtenerValor("Indica el motivo de la baja", "", MensajeObtenerValor.Tipo.TextoLargo); if (oMotivo != null) { // Se solicita la validación de usuario var ResU = UtilLocal.ValidarObtenerUsuario("Ventas.NotasDeCredito.Baja"); if (ResU.Exito) { oNota.Valida = false; oNota.MotivoBaja = Util.Cadena(oMotivo); Datos.Guardar <NotaDeCredito>(oNota); this.NcAplicarFiltro(); } else { if (ResU.Respuesta != null) { UtilLocal.MensajeAdvertencia("No tienes permisos para realizar la operación solicitada."); } } } } } }
protected override void btnModificar_Click(object sender, EventArgs e) { if (this.dgvDatos.CurrentRow == null) { return; } string sValorAnt = Util.Cadena(this.dgvDatos.CurrentRow.Cells["NombreTipoEgreso"].Value); object oValor = UtilLocal.ObtenerValor("Indica el nombre del Gasto:", sValorAnt, MensajeObtenerValor.Tipo.Texto); string sValor = Util.Cadena(oValor); if (sValor != "" && sValor != sValorAnt) { int iEgresoID = Util.Entero(this.dgvDatos.CurrentRow.Cells["CajaTipoEgresoID"].Value); var oEgreso = Datos.GetEntity <CajaTipoEgreso>(q => q.CajaTipoEgresoID == iEgresoID && q.Estatus); oEgreso.NombreTipoEgreso = sValor; Datos.Guardar <CajaTipoEgreso>(oEgreso); this.ActualizarDatos(); } }
protected override void btnModificar_Click(object sender, EventArgs e) { if (this.dgvDatos.CurrentRow == null) { return; } string sNombreAnt = Util.Cadena(this.dgvDatos.CurrentRow.Cells["Consumible"].Value); object oNombre = UtilLocal.ObtenerValor("Indica el nombre del Consumible:", sNombreAnt, MensajeObtenerValor.Tipo.Texto); string sNombre = Util.Cadena(oNombre); if (sNombre != "" && sNombre != sNombreAnt) { int iRegistroID = Util.Entero(this.dgvDatos.CurrentRow.Cells["ContaConsumibleID"].Value); var oRegistro = Datos.GetEntity <ContaConsumible>(c => c.ContaConsumibleID == iRegistroID); oRegistro.Consumible = sNombre; Datos.Guardar <ContaConsumible>(oRegistro); this.ActualizarDatos(); } }
protected override void btnModificar_Click(object sender, EventArgs e) { if (this.dgvDatos.CurrentRow == null) { return; } string sBancoAnt = Util.Cadena(this.dgvDatos.CurrentRow.Cells["NombreBanco"].Value); object Banco = UtilLocal.ObtenerValor("Indica el nombre del banco:", sBancoAnt, MensajeObtenerValor.Tipo.Texto); string sBanco = Util.Cadena(Banco); if (sBanco != "" && sBanco != sBancoAnt) { int iBancoID = Util.Entero(this.dgvDatos.CurrentRow.Cells["BancoID"].Value); var oBanco = Datos.GetEntity <Banco>(q => q.BancoID == iBancoID && q.Estatus); oBanco.NombreBanco = sBanco; Datos.Guardar <Banco>(oBanco); this.ActualizarDatos(); } }
private void Ncf_CrearNotaDeCreditoFiscal() { // Se verifica si hay ventas seleccionadas if (this.dgvNcf_Facturas.ContarIncidencias("Ncf_Aplicar", true) == 0) { UtilLocal.MensajeAdvertencia("No hay ninguna venta seleccionada."); return; } // Se obtiene el concepto var oConcepto = UtilLocal.ObtenerValor("Concepto de Nota de Crédito:", "", MensajeObtenerValor.Tipo.TextoLargo); if (oConcepto == null) { return; } // Se valida el permiso var oResU = UtilLocal.ValidarObtenerUsuario("Ventas.NotasDeCreditoFiscales.Agregar"); if (oResU.Error) { return; } int iUsuarioID = oResU.Respuesta.UsuarioID; // Se solicita la validación de autorización var oResA = UtilLocal.ValidarObtenerUsuario("Autorizaciones.Ventas.NotasDeCreditoFiscales.Agregar", "Autorización"); int?iAutorizoID = (oResA.Respuesta == null ? null : (int?)oResA.Respuesta.UsuarioID); // Se genera el detalle de la nota de crédito, para mandar a hacer la factura decimal mTotal = 0; var oNotaDetalle = new List <ProductoVenta>(); oNotaDetalle.Add(new ProductoVenta() { NombreDeParte = Util.Cadena(oConcepto), UnidadDeMedida = "." }); // Se meten las facturas afectadas foreach (DataGridViewRow oFila in this.dgvNcf_Facturas.Rows) { if (!Util.Logico(oFila.Cells["Ncf_Aplicar"].Value)) { continue; } int iVentaID = Util.Entero(oFila.Cells["Ncf_VentaID"].Value); decimal mImporte = Util.Decimal(oFila.Cells["Ncf_Diferencia"].Value); mTotal += mImporte; var oVenta = Datos.GetEntity <Venta>(c => c.VentaID == iVentaID && c.Estatus); oNotaDetalle.Add(new ProductoVenta() { NumeroDeParte = iVentaID.ToString(), // Se usa para mete la VentaID NombreDeParte = string.Format("FACTURA: {0}", oVenta.Folio), // Se usa para mostrar la factura Cantidad = 1, PrecioUnitario = UtilTheos.ObtenerPrecioSinIva(mImporte), Iva = UtilTheos.ObtenerIvaDePrecio(mImporte), UnidadDeMedida = "." }); } if (mTotal == 0) { return; } Cargando.Mostrar(); // Se manda hacer la nota de crédito fiscal var oRes = VentasLoc.GenerarNotaDeCreditoFiscal(oNotaDetalle, this.Cliente.ClienteID, iUsuarioID); if (oRes.Error) { Cargando.Cerrar(); UtilLocal.MensajeAdvertencia(string.Format("Ocurrió un error al hacer la Nota de Crédito Fiscal\n\n{0}", oRes.Mensaje)); return; } // Se modifica el detalle de la Nota de Crédito Fiscal, con datos adicionales de las ventas afectadas var oNcVentas = Datos.GetListOf <NotaDeCreditoFiscalDetalle>(c => c.NotaDeCreditoFiscalID == oRes.Respuesta); foreach (DataGridViewRow oFila in this.dgvNcf_Facturas.Rows) { if (!Util.Logico(oFila.Cells["Ncf_Aplicar"].Value)) { continue; } int iVentaID = Util.Entero(oFila.Cells["Ncf_VentaID"].Value); int iListaPre = Util.Entero(oFila.Cells["Ncf_ListaDePrecios"].Value); var oVentaV = Datos.GetEntity <VentasView>(c => c.VentaID == iVentaID); var oNcVenta = oNcVentas.FirstOrDefault(c => c.VentaID == iVentaID); if (oNcVenta == null) { continue; } oNcVenta.ListaDePreciosUsada = iListaPre; oNcVenta.ImporteAntes = oVentaV.Total; Datos.Guardar <NotaDeCreditoFiscalDetalle>(oNcVenta); } // Se descuenta el importe en cada artículo de las ventas afectadas foreach (DataGridViewRow oFila in this.dgvNcf_Facturas.Rows) { if (!Util.Logico(oFila.Cells["Ncf_Aplicar"].Value)) { continue; } int iVentaID = Util.Entero(oFila.Cells["Ncf_VentaID"].Value); int iListaPre = Util.Entero(oFila.Cells["Ncf_ListaDePrecios"].Value); var oPartes = Datos.GetListOf <VentaDetalle>(c => c.VentaID == iVentaID && c.Estatus); decimal mPrecio = 0; foreach (var oReg in oPartes) { var oPrecio = Datos.GetEntity <PartePrecio>(c => c.ParteID == oReg.ParteID && c.Estatus); switch (iListaPre) { case 1: mPrecio = oPrecio.PrecioUno.Valor(); break; case 2: mPrecio = oPrecio.PrecioDos.Valor(); break; case 3: mPrecio = oPrecio.PrecioTres.Valor(); break; case 4: mPrecio = oPrecio.PrecioCuatro.Valor(); break; case 5: mPrecio = oPrecio.PrecioCinco.Valor(); break; } // Se calcula el Iva oReg.PrecioUnitario = UtilTheos.ObtenerPrecioSinIva(mPrecio); oReg.Iva = (mPrecio - oReg.PrecioUnitario); Datos.Guardar <VentaDetalle>(oReg); } } // Se crea la póliza contable correspondiente (AfeConta) // Una póliza por cada venta afectada var oNotaV = Datos.GetEntity <NotasDeCreditoFiscalesView>(c => c.NotaDeCreditoFiscalID == oRes.Respuesta); foreach (var oReg in oNcVentas) { ContaProc.CrearPolizaAfectacion(Cat.ContaAfectaciones.NotaDeCreditoDescuentoVenta, oReg.NotaDeCreditoFiscalDetalleID , (oNotaV.Serie + oNotaV.Folio), oNotaV.Cliente); } // Se guarda la autorización VentasProc.GenerarAutorizacion(Cat.AutorizacionesProcesos.NotaDeCreditoFiscalCrear, "NotaDeCreditoFiscal", oRes.Respuesta, iAutorizoID); Cargando.Cerrar(); this.NcfLlenarFacturas(); }
private void dgvDatos_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { if (e.Button != MouseButtons.Right) { return; } if (this.dgvDatos.CurrentCell == null) { return; } // Se desenfoca la celda de "Procesar" (si aplica), para que tome el cambio de esa celda if (this.dgvDatos.CurrentCell.OwningColumn.Name == "Procesar" && this.dgvDatos.CurrentCell.IsInEditMode) { this.dgvDatos.EndEdit(); } // Se procesa una acción, dependiendo de la columna seleccionada string sColumna = this.dgvDatos.Columns[e.ColumnIndex].Name; switch (sColumna) { case "Procesar": case "Comision": case "Servicio": case "Etiqueta": case "SoloUna": case "EsPar": this.AplicarCheck(sColumna); break; case "NumeroDeParte": case "Descripcion": this.BuscarReemplazar(sColumna); break; case "ProveedorID": case "MarcaID": case "LineaID": case "UnidadDeMedidaID": DataGridViewComboBoxColumn oCol; if (sColumna == "ProveedorID") { oCol = this.ProveedorID; } else if (sColumna == "MarcaID") { oCol = this.MarcaID; } else if (sColumna == "LineaID") { oCol = this.LineaID; } else { oCol = this.UnidadDeMedidaID; } this.AplicarCombo(sColumna, oCol.ValueMember, oCol.DisplayMember, oCol.DataSource); break; case "UnidadDeEmpaque": case "TiempoDeReposicion": string sMensaje = (sColumna == "UnidadDeEmpaque" ? "Indica la Unidad de Empaque:" : "Indica el tiempo de reposición:"); var oValor = UtilLocal.ObtenerValor(sMensaje, "1", MensajeObtenerValor.Tipo.Decimal); if (oValor != null) { this.AplicarCambio(sColumna, oValor); } break; case "Costo": case "Precio1": case "Precio2": case "Precio3": case "Precio4": case "Precio5": this.AplicarPrecio(sColumna); break; case "Por1": case "Por2": case "Por3": case "Por4": case "Por5": this.AplicarPorcentajes(); break; } }