private void btnGuardar_Click(object sender, EventArgs e) { if (!Validaciones()) return; var caracteristicas = new StringBuilder(); /* int id; if (int.TryParse(cboLinea.SelectedValue.ToString(), out id)) { //Validaciones para las caracteristicas segun la linea var lineaId = Util.ConvertirEntero(this.cboLinea.SelectedValue); var linea = General.GetEntity<Linea>(l => l.LineaID.Equals(lineaId)); if (linea != null) { if (linea.Alto.Equals(true) && this.txtAlto.Text == "") caracteristicas.Append("Alto, "); if (linea.Diametro.Equals(true) && this.txtDiametro.Text == "") caracteristicas.Append("Diametro, "); if (linea.Largo.Equals(true) && this.txtLargo.Text == "") caracteristicas.Append("Largo, "); if (linea.Dientes.Equals(true) && this.txtDientes.Text == "") caracteristicas.Append("Dientes, "); if (linea.Astrias.Equals(true) && this.txtAstrias.Text == "") caracteristicas.Append("Astrias, "); if (linea.Sistema.Equals(true) && Util.ConvertirEntero(this.cboParteSistema.SelectedValue).Equals(1)) caracteristicas.Append("Sistema, "); if (linea.Amperaje.Equals(true) && this.txtAmperes.Text == "") caracteristicas.Append("Amperaje, "); if (linea.Voltaje.Equals(true) && this.txtVoltios.Text == "") caracteristicas.Append("Voltaje, "); if (linea.Watts.Equals(true) && this.txtWatts.Text == "") caracteristicas.Append("Watts, "); if (linea.Ubicacion.Equals(true) && Util.ConvertirEntero(this.cboParteUbicacion.SelectedValue).Equals(1)) caracteristicas.Append("Ubicacion, "); if (linea.Terminales.Equals(true) && this.txtTerminales.Text == "") caracteristicas.Append("Terminales, "); } } */ var mensaje = string.Empty; if (string.IsNullOrEmpty(caracteristicas.ToString())) { mensaje = "¿Está seguro de que la información es correcta?"; } else { mensaje = string.Format("{0}{1}{2}", "Faltan características por llenar, (", caracteristicas.ToString().Substring(0, caracteristicas.ToString().Length - 2), ") ¿Está seguro de que la información es correcta?"); } var res = Util.MensajePregunta(mensaje, GlobalClass.NombreApp); if (res == DialogResult.No) return; object oMotivoFijoCero = null; if (this.VerMaxMinFijoCero()) { oMotivoFijoCero = UtilLocal.ObtenerValor("Indica el motivo por el cuál se especificó un MaxMin de cero:", "", MensajeObtenerValor.Tipo.TextoLargo); if (oMotivoFijoCero == null) return; } try { SplashScreen.Show(new Splash()); this.btnGuardar.Enabled = false; PartePrecio oPartePrecio; if (this.EsNuevo) { this.oParte = new Parte(); oPartePrecio = new PartePrecio(); } else //Modificación { oPartePrecio = Datos.GetEntity<PartePrecio>(c => c.ParteID == this.oParte.ParteID && c.Estatus); } // Se llenan los datos oParte.NumeroParte = txtNumeroParte.Text; oParte.NombreParte = txtNombreParte.Text; oParte.LineaID = Util.Entero(cboLinea.SelectedValue); oParte.MarcaParteID = Util.Entero(cboMarca.SelectedValue); oParte.SubsistemaID = Util.Entero(cboSubsistema.SelectedValue); oParte.ProveedorID = Util.Entero(cboProveedor.SelectedValue); oParte.MedidaID = Util.Entero(cboMedida.SelectedValue); oParte.ParteEstatusID = Util.Entero(cboEstatus.SelectedValue); oParte.AplicaComision = chkAplicaComision.Checked; /* Parte.Alto = Util.ConvertirEntero(txtAlto.Text); Parte.Largo = Util.ConvertirEntero(txtLargo.Text); Parte.Diametro = Util.ConvertirEntero(txtDiametro.Text); Parte.Dientes = Util.ConvertirEntero(txtDientes.Text); Parte.Astrias = Util.ConvertirEntero(txtAstrias.Text); Parte.Amperes = Util.ConvertirEntero(txtAmperes.Text); Parte.Voltios = Util.ConvertirEntero(txtVoltios.Text); Parte.Watts = Util.ConvertirEntero(txtWatts.Text); Parte.Terminales = Util.ConvertirEntero(txtTerminales.Text); Parte.Litros = Util.ConvertirEntero(txtLitros.Text); */ oParte.ParteSistemaID = Util.Entero(cboParteSistema.SelectedValue); oParte.ParteUbicacionID = Util.Entero(cboParteUbicacion.SelectedValue); // Control de Cascos this.oParte.EsCasco = (this.cmbEsCascoPara.SelectedValue != null); this.oParte.EsCascoPara = (this.oParte.EsCasco.Valor() ? (int?)Util.Entero(this.cmbEsCascoPara.SelectedValue) : null); this.oParte.RequiereCascoDe = (this.cmbRequiereCascoDe.SelectedValue == null ? null : (int?)Util.Entero(this.cmbRequiereCascoDe.SelectedValue)); this.oParte.RequiereDepositoDe = (this.txtRequiereDepositoDe.Tag == null ? null : (int?)Util.Entero(this.txtRequiereDepositoDe.Tag)); oParte.Es9500 = chk9500.Checked; oParte.EsServicio = chkServicio.Checked; // Parte.TipoCilindroID = Util.ConvertirEntero(this.cmbCar01.SelectedValue); oParte.TipoGarantiaID = Util.Entero(this.cboTipoGarantia.SelectedValue); oParte.Etiqueta = this.chkSiEtiqueta.Checked; oParte.SoloUnaEtiqueta = this.chkSoloUna.Checked; oParte.CodigoBarra = this.txtCodigoBarra.Text; oParte.TiempoReposicion = Util.Decimal(this.txtTiempoReposicion.Text); oParte.UnidadEmpaque = Util.Decimal(this.txtUnidadEmpaque.Text); oParte.AGranel = this.chkAGranel.Checked; oParte.EsPar = this.chkEsPar.Checked; // Se llenan los datos del precio if (oPartePrecio != null) { oPartePrecio.Costo = Util.Decimal(txtCosto.Text); oPartePrecio.PorcentajeUtilidadUno = Util.Decimal(txtPorcentaje1.Text); oPartePrecio.PorcentajeUtilidadDos = Util.Decimal(txtPorcentaje2.Text); oPartePrecio.PorcentajeUtilidadTres = Util.Decimal(txtPorcentaje3.Text); oPartePrecio.PorcentajeUtilidadCuatro = Util.Decimal(txtPorcentaje4.Text); oPartePrecio.PorcentajeUtilidadCinco = Util.Decimal(txtPorcentaje5.Text); oPartePrecio.PrecioUno = Util.Decimal(txtPrecio1.Text); oPartePrecio.PrecioDos = Util.Decimal(txtPrecio2.Text); oPartePrecio.PrecioTres = Util.Decimal(txtPrecio3.Text); oPartePrecio.PrecioCuatro = Util.Decimal(txtPrecio4.Text); oPartePrecio.PrecioCinco = Util.Decimal(txtPrecio5.Text); } // Se guarda la Parte if (this.EsNuevo) { Guardar.Parte(this.oParte, oPartePrecio); } else { Datos.Guardar<Parte>(this.oParte); Datos.Guardar<PartePrecio>(oPartePrecio); } // Se mandan guardar las características this.GuardarCaracteristicas(); // Se guardan las existencias y los datos de máximos y mínimos foreach (DataGridViewRow row in dgvExistencias.Rows) { var sucursalId = Util.Entero(row.Cells["SucursalID"].Value); var parteExistencia = Datos.GetEntity<ParteExistencia>(p => p.ParteID.Equals(oParte.ParteID) && p.SucursalID.Equals(sucursalId)); if (parteExistencia != null) { parteExistencia.SucursalID = sucursalId; parteExistencia.Maximo = Util.Entero(row.Cells["Max"].Value); parteExistencia.Minimo = Util.Entero(row.Cells["Min"].Value); // parteExistencia.UnidadEmpaque = Util.ConvertirEntero(row.Cells["UEmp"].Value); parteExistencia.UsuarioID = GlobalClass.UsuarioGlobal.UsuarioID; parteExistencia.FechaModificacion = DateTime.Now; parteExistencia.Estatus = true; parteExistencia.Actualizar = true; Datos.SaveOrUpdate<ParteExistencia>(parteExistencia); } // Se guardan los datos de MaxMin, si fueron modificados bool bMaxMinFijo = Util.Logico(row.Cells["MaxMinFijo"].Value); if (bMaxMinFijo) { var oParteMaxMin = Datos.GetEntity<ParteMaxMin>(q => q.ParteID == oParte.ParteID && q.SucursalID == sucursalId); oParteMaxMin.Fijo = bMaxMinFijo; oParteMaxMin.Maximo = Util.Entero(row.Cells["Max"].Value); oParteMaxMin.Minimo = Util.Entero(row.Cells["Min"].Value); Datos.Guardar<ParteMaxMin>(oParteMaxMin); // Se verifica si fue max min 0, para guardar histórico if (oMotivoFijoCero != null && oParteMaxMin.Maximo == 0 && oParteMaxMin.Minimo == 0) { var oFijoHist = new ParteMaxMinFijoHistorico() { ParteID = this.oParte.ParteID, SucursalID = sucursalId, Fecha = DateTime.Now, Motivo = Util.Cadena(oMotivoFijoCero) }; Datos.Guardar<ParteMaxMinFijoHistorico>(oFijoHist); } } } // Se verifica el máximo, para guardar como 9500 o no this.oParte.Es9500 = AdmonProc.VerGuardar9500(this.oParte.ParteID); // Si es nuevo, se carga la parte, para que ya no sea nuevo if (this.EsNuevo) this.CargarParte(this.oParte.ParteID); SplashScreen.Close(); this.btnGuardar.Enabled = true; new Notificacion("Parte Guardada exitosamente", 2 * 1000).Mostrar(Principal.Instance); // this.IniciarActualizarListado(); } catch (Exception ex) { SplashScreen.Close(); this.btnGuardar.Enabled = true; Util.MensajeError(ex.Message, GlobalClass.NombreApp); } }
private void GuardarMaxMin() { // Se valida que todas las filas tengan máximo una sola condición bool bError = false; foreach (DataGridViewRow oFila in this.dgvDetalle.Rows) { if (Util.Cadena(oFila.Cells["Condiciones"].Value).Contains(",")) { bError = true; break; } } if (bError) { UtilLocal.MensajeAdvertencia("Existe una o más partes que coinciden con más de una regla. Verificar."); return; } // Se valida que si hay fijos en cero, se ponga el motivo bError = false; foreach (DataGridViewRow oFila in this.dgvDetalle.Rows) { oFila.Cells["MotivoFijoCero"].ErrorText = ""; if (Util.Logico(oFila.Cells["Fijo"].Value) && Util.Decimal(oFila.Cells["Maximo"].Value) == 0 && Util.Decimal(oFila.Cells["Minimo"].Value) == 0 && Util.Cadena(oFila.Cells["MotivoFijoCero"].Value) == "") { oFila.Cells["MotivoFijoCero"].ErrorText = "Debes especificar un motivo"; bError = true; } } if (bError) { UtilLocal.MensajeAdvertencia("Por favor indica todos los motivos en donde se especificó un Max Min de cero."); return; } if (UtilLocal.MensajePregunta("¿Estás seguro que deseas guardar los Máximos y Mínimos mostrados?") != DialogResult.Yes) return; Cargando.Mostrar(); // Se procede a guardar los máximos y mínimos int iSucursalID = Util.Entero(this.cmbSucursal.SelectedValue); DateTime dAhora = DateTime.Now; foreach (DataGridViewRow Fila in this.dgvDetalle.Rows) { // Si no está marcado, no se guarda if (!Fila.Visible || !Util.Logico(Fila.Cells["colProcesar"].Value)) continue; int iParteID = Util.Entero(Fila.Cells["ParteID"].Value); var oParteMaxMin = Datos.GetEntity<ParteMaxMin>(q => q.ParteID == iParteID && q.SucursalID == iSucursalID); // Se supone que no puede pasar que el registro no exista, pues aquí sólo aparecen los que tengan "ParteMaxMin.Calcular" = 1 oParteMaxMin.Fijo = Util.Logico(Fila.Cells["Fijo"].Value); oParteMaxMin.Maximo = Util.Decimal(Fila.Cells["Maximo"].Value); oParteMaxMin.Minimo = Util.Decimal(Fila.Cells["Minimo"].Value); oParteMaxMin.FechaCalculo = dAhora; oParteMaxMin.ParteMaxMinReglaID = ((oParteMaxMin.Fijo.Valor() || Util.Entero(Fila.Cells["Condiciones"].Value) == 0) ? null : (int?)Util.Entero(Fila.Cells["Condiciones"].Value)); Datos.Guardar<ParteMaxMin>(oParteMaxMin); // Se verifica si aplica para 9500 y se guarda el dato Es9500 AdmonProc.VerGuardar9500(iParteID); // Se guardan los datos de fijos históricos, si aplican if (oParteMaxMin.Fijo.Valor() && oParteMaxMin.Maximo == 0 && oParteMaxMin.Minimo == 0) { var oFijoHist = new ParteMaxMinFijoHistorico() { ParteID = iParteID, SucursalID = iSucursalID, Fecha = dAhora, Motivo = Util.Cadena(Fila.Cells["MotivoFijoCero"].Value) }; Datos.Guardar<ParteMaxMinFijoHistorico>(oFijoHist); } } Cargando.Cerrar(); UtilLocal.MostrarNotificacion("Proceso completado correctamente."); }