private bool CuentaEliminar(int iNivel, int iCuentaID) { // Se valida que no se tengan cuentas hijas o movimientos switch (iNivel) { case 2: // Cuenta de Mayor if (Datos.Exists <ContaCuentaAuxiliar>(c => c.ContaCuentaDeMayorID == iCuentaID)) { UtilLocal.MensajeError("La Cuenta seleccionada tiene Subcuentas asignadas. No se puede eliminar."); return(false); } // Se procede a eliminar la cuenta var oCuentaMay = Datos.GetEntity <ContaCuentaDeMayor>(c => c.ContaCuentaDeMayorID == iCuentaID); Datos.Eliminar <ContaCuentaDeMayor>(oCuentaMay); break; case 3: // Cuenta auxiliar if (Datos.Exists <ContaEgreso>(c => c.ContaCuentaAuxiliarID == iCuentaID)) { UtilLocal.MensajeError("La Cuenta seleccionada ha sido utilizado en varios movimientos. No se puede eliminar."); return(false); } // Se manda eliminar la cuenta ContaProc.CuentaAuxiliarEliminar(iCuentaID); break; } return(true); }
public static bool ValidarPermiso(int iUsuarioID, string sPermiso, bool bMostrarMensaje) { bool bValido = Datos.Exists <UsuariosPermisosView>(c => c.UsuarioID == iUsuarioID && c.Permiso == sPermiso); if (bValido) { return(true); } else { if (bMostrarMensaje) { var oPermiso = Datos.GetEntity <Permiso>(c => c.NombrePermiso == sPermiso); if (oPermiso == null) { UtilLocal.MensajeError("El Permiso especificado ni siquiera existe. ¡Échame la mano!"); } else { UtilLocal.MensajeAdvertencia(oPermiso.MensajeDeError); } } return(false); } }
private void DevolverControlCasco(int iDevolucionDetalleID, int iUsuarioID) { // Se obtiene el registro del control de casco var oDevDet = Datos.GetEntity <VentaDevolucionDetalle>(c => c.VentaDevolucionDetalleID == iDevolucionDetalleID && c.Estatus); var oDev = Datos.GetEntity <VentaDevolucion>(c => c.VentaDevolucionID == oDevDet.VentaDevolucionID && c.Estatus); for (int i = 0; i < oDevDet.Cantidad; i++) { int iCancelarVentaID = 0; var oCascoReg = Datos.GetEntity <CascoRegistro>(c => c.VentaID == oDev.VentaID && c.ParteID == oDevDet.ParteID); // Acción si no se recibió ningún casco if (oCascoReg.RecibidoCascoID == null) { iCancelarVentaID = oCascoReg.CobroVentaID.Valor(); } else { var oParte = Datos.GetEntity <Parte>(c => c.ParteID == oCascoReg.ParteID && c.Estatus); // Se registra la salida del inventario var oVentaV = Datos.GetEntity <VentasView>(c => c.VentaID == oDev.VentaID); var oCascoRecibidoPrecio = Datos.GetEntity <PartePrecio>(c => c.ParteID == oCascoReg.RecibidoCascoID.Value && c.Estatus); AdmonProc.AfectarExistenciaYKardex(oCascoReg.RecibidoCascoID.Valor(), GlobalClass.SucursalID, Cat.OperacionesKardex.SalidaInventario , oCascoReg.CascoRegistroID.ToString(), iUsuarioID, oVentaV.Cliente, "CONTROL DE CASCOS", oVentaV.Sucursal, -1, oCascoRecibidoPrecio.Costo.Valor() , Cat.Tablas.CascoRegistro, oCascoReg.CascoRegistroID); // Acciones si no se recibió el casco adecuado if (oCascoReg.RecibidoCascoID != oParte.RequiereCascoDe) { // Acción si hubo diferencia de importe entre el casco recibido y el esperado iCancelarVentaID = oCascoReg.CobroVentaID.Valor(); // Por si se realizó un cobro // Por si se generó un vale var oVale = Datos.GetEntity <NotaDeCredito>(c => c.OrigenID == Cat.OrigenesNotaDeCredito.CascoDeMayorValor && c.RelacionID == oCascoReg.CascoRegistroID); if (oVale != null) { VentasProc.CancelarNotaDeCredito(oVale.NotaDeCreditoID, "POR CANCELACIÓN DE VENTA CON CASCO"); } // Si se utilizarn importes de caso a favor, se liberan var oUsados = Datos.GetListOf <CascoRegistroImporte>(c => c.CascoRegistroID == oCascoReg.CascoRegistroID); foreach (var oReg in oUsados) { var oCascoImp = Datos.GetEntity <CascoImporte>(c => c.CascoImporteID == oReg.CascoImporteID); oCascoImp.ImporteUsado -= oReg.Importe.Valor(); Datos.Guardar <CascoImporte>(oCascoImp); Datos.Eliminar <CascoRegistroImporte>(oReg); } // Si se creó un importe de caso a favor, se cancela var oCascoImporte = Datos.GetEntity <CascoImporte>(c => c.OrigenID == oCascoReg.CascoRegistroID && c.Importe > 0); if (oCascoImporte != null) { // Se verifica si ha sido usado if (Datos.Exists <CascoRegistroImporte>(c => c.CascoImporteID == oCascoImporte.CascoImporteID)) { // Se mete un Casco Importe negativo, porque ya fue usado Datos.Guardar <CascoImporte>(new CascoImporte() { Fecha = DateTime.Now, OrigenID = oCascoReg.CascoRegistroID, Importe = (oCascoImporte.Importe * -1) }); } else { // Se elimina el importe a favor Datos.Eliminar <CascoImporte>(oCascoImporte); } } } } // Se cancela la venta del cobro de la diferencia (sólo lo correspondiente al cobro), si aplica if (iCancelarVentaID > 0) { int iDevParteID = Cat.Partes.DiferenciaDeCascos; if (oCascoReg.RecibidoCascoID == null) { var oParte = Datos.GetEntity <Parte>(c => c.ParteID == oCascoReg.ParteID && c.Estatus); iDevParteID = oParte.RequiereDepositoDe.Valor(); if (iDevParteID <= 0) { UtilLocal.MensajeError("El Artículo registrado en Control de Cascos no tiene un depósito asignado."); break; } } var oVentaDet = Datos.GetListOf <VentaDetalle>(c => c.VentaID == iCancelarVentaID && c.Estatus); if (oVentaDet.Count > 0) { var oParteDet = oVentaDet.FirstOrDefault(c => c.ParteID == iDevParteID); // Se obtiene la forma de pago var oPagoDetV = Datos.GetEntity <VentasPagosDetalleView>(c => c.VentaID == iCancelarVentaID); int iFormaDePagoID = (oPagoDetV.Fecha.Valor().Date == DateTime.Now.Date ? oPagoDetV.FormaDePagoID : Cat.FormasDePago.Efectivo); // Se general el registro de devolución var oDevolucion = new VentaDevolucion() { VentaID = iCancelarVentaID, Fecha = DateTime.Now, SucursalID = GlobalClass.SucursalID, MotivoID = Cat.VentaDevolucionMotivos.Otro, Observacion = "POR CANCELACIÓN DE VENTA CON CASCO", RealizoUsuarioID = iUsuarioID, TipoFormaPagoID = iFormaDePagoID, EsCancelacion = (oVentaDet.Count == 1) }; // Se genera el detalle de la devolución var oDetDev = new VentaDevolucionDetalle() { ParteID = iDevParteID, Cantidad = oParteDet.Cantidad, PrecioUnitario = oParteDet.PrecioUnitario, Iva = oParteDet.Iva, Costo = oParteDet.Costo, CostoConDescuento = oParteDet.CostoConDescuento }; // Se guarda la devolución int iValeClienteID = 0; if (iFormaDePagoID == Cat.FormasDePago.Vale) { var oVale = Datos.GetEntity <NotaDeCredito>(c => c.NotaDeCreditoID == oPagoDetV.NotaDeCreditoID && c.Estatus); iValeClienteID = oVale.ClienteID; } this.GuardarDevolucion(oDevolucion, new List <VentaDevolucionDetalle>() { oDetDev }, iValeClienteID); } } } }
public static void EnviarReporteASalida(string sParametro, Report oReporte, bool bUsarPreparado) { // Se abre el xml correspondiente al reporte var oXmlRep = new XmlDocument(); oXmlRep.Load(oReporte.FileName); // Se obtiene el tipo de salida, primero del xml del reporte, si no, de la base de datos string sTipoDeSalida = ""; if (oXmlRep.DocumentElement.Attributes["Cr_Salida"] == null) { sTipoDeSalida = Config.Valor(sParametro); } else { sTipoDeSalida = oXmlRep.DocumentElement.Attributes["Cr_Salida"].Value; } switch (sTipoDeSalida.ToLower()) { case "d": oReporte.Design(); break; case "p": if (bUsarPreparado) { oReporte.ShowPrepared(); } else { oReporte.Show(); } break; case "i": bool bDialogo = (oReporte.PrintSettings.Printer == ""); oReporte.PrintSettings.ShowDialog = bDialogo; // Se intenta mandar a imprimir try { if (bUsarPreparado) { oReporte.PrintPrepared(); } else { oReporte.Print(); } if (bDialogo) { if (UtilLocal.MensajePregunta("¿Deseas guardar los datos de impresión especificados como predeterminados para este reporte?") == DialogResult.Yes) { oReporte.PrintSettings.SavePrinterWithReport = true; oReporte.Save(oReporte.FileName); } } } catch (Exception e) { UtilLocal.MensajeError(e.Message); } break; } }
private void GuardarCaracteristicas() { Cargando.Mostrar(); LineaCaracteristica oReg; foreach (DataGridViewRow oFila in this.dgvCaracteristicas.Rows) { if (oFila.IsNewRow) { continue; } int iId = this.dgvCaracteristicas.ObtenerId(oFila); int iCambio = this.dgvCaracteristicas.ObtenerIdCambio(oFila); switch (iCambio) { case Cat.TiposDeAfectacion.Agregar: case Cat.TiposDeAfectacion.Modificar: if (iCambio == Cat.TiposDeAfectacion.Agregar) { oReg = new LineaCaracteristica(); } else { oReg = Datos.GetEntity <LineaCaracteristica>(c => c.LineaCaracteristicaID == iId); } // Se llenan los datos oReg.LineaID = this.Linea.LineaID; oReg.CaracteristicaID = Util.Entero(oFila.Cells["colCaracteristicaID"].Value); // Se valida que no exista ya if (iCambio == Cat.TiposDeAfectacion.Agregar) { if (Datos.Exists <LineaCaracteristica>(c => c.LineaID == this.Linea.LineaID && c.CaracteristicaID == oReg.CaracteristicaID)) { continue; } } // Se verifican los cambios a la característica en sí var oCaracteristica = Datos.GetEntity <Caracteristica>(c => c.CaracteristicaID == oReg.CaracteristicaID); if (oCaracteristica == null) { oCaracteristica = new Caracteristica() { Caracteristica1 = Util.Cadena((oFila.Cells["colCaracteristicaID"] as DataGridViewComboBoxCell).FormattedValue) } } ; // Se valida si cambiaron las opciones bool bOpcionEnUso = false; string sOpciones = Util.Cadena(oFila.Cells["colMultipleOpciones"].Value); if (oCaracteristica.MultipleOpciones != null && sOpciones != oCaracteristica.MultipleOpciones) { var oOpcionesAnt = oCaracteristica.MultipleOpciones.Split(','); var oOpciones = sOpciones.Split(','); var oDif = oOpcionesAnt.Except(oOpciones); foreach (var sOpcion in oDif) { if (Datos.Exists <ParteCaracteristica>(c => c.CaracteristicaID == oReg.CaracteristicaID && c.Valor == sOpcion)) { UtilLocal.MensajeError("Alguna de las características removidas está siendo usada. No se puede guardar."); bOpcionEnUso = true; break; } } } if (!bOpcionEnUso) { // oCaracteristica.MultipleOpciones = sOpciones; oCaracteristica.Multiple = (oCaracteristica.MultipleOpciones != ""); Datos.Guardar <Caracteristica>(oCaracteristica); // Se guarda oReg.CaracteristicaID = oCaracteristica.CaracteristicaID; Datos.Guardar <LineaCaracteristica>(oReg); } break; case Cat.TiposDeAfectacion.Borrar: oReg = Datos.GetEntity <LineaCaracteristica>(c => c.LineaCaracteristicaID == iId); Datos.Eliminar <LineaCaracteristica>(oReg); break; } } Cargando.Cerrar(); // this.CargarCaracteristicas(); }