private bool Validado() { var cred = LocalData.GetNewPagosCaja(); bool validado = true; switch (((VentasDtos.PagosCaja)cboFormasPago.SelectedItem).FormaPago) { case "Credito": /// verificar cliente credito var cliente = creditB.GetClienteById(Convert.ToInt16(curCliente)); if (cliente != null) { if (cliente.Contado) { cboFormasPago.Focus(); errorContainer1.errorProvider1.SetError(cboFormasPago, "No se puede vender a crédito a este cliente"); validado = false; break; } } /// linea if (string.IsNullOrEmpty(cboLineasCredito.SelectedValue.ToString())) { cboLineasCredito.Focus(); errorContainer1.errorProvider1.SetError(cboLineasCredito, "Debe seleccionar una Línea de crédito"); validado = false; break; } /// frecuencia if (string.IsNullOrEmpty(cboFrecuencias.SelectedValue.ToString())) { cboFrecuencias.Focus(); errorContainer1.errorProvider1.SetError(cboFrecuencias, "Debe seleccionar una frecuencia de pago"); validado = false; break; } /// plazo if (string.IsNullOrEmpty(txtCreditoCuotas.Text)) { cboFrecuencias.Focus(); errorContainer1.errorProvider1.SetError(cboFrecuencias, "Debe seleccionar una frecuencia de pago"); validado = false; break; } break; case "Efectivo": case "Tarjeta": case "Cheque": /// si monto recibido menor o igual a cero if (string.IsNullOrEmpty(txtEfectivoMontoRecibido.Text) || Convert.ToDecimal(txtEfectivoMontoRecibido.Text) == 0) { txtEfectivoMontoRecibido.Focus(); errorContainer1.errorProvider1.SetError(txtEfectivoMontoRecibido, "Debe digitar un monto Válido"); validado = false; break; } /// si monto aplicado menor o igual a cero if (string.IsNullOrEmpty(txtEfectivoMontoAplicar.Text) || Convert.ToDecimal(txtEfectivoMontoAplicar.Text) == 0) { txtEfectivoMontoAplicar.Focus(); errorContainer1.errorProvider1.SetError(txtEfectivoMontoAplicar, "Debe digitar un monto Válido"); validado = false; break; } break; default: validado = true; break; } /// duplicados y otros switch (((VentasDtos.PagosCaja)cboFormasPago.SelectedItem).FormaPago) { case "Efectivo": /// solo un pago en efectivo var dupliList = (from p in curPagoRepo.PagosLines where p.FormaPago == "Efectivo" select p).Count(); if (dupliList > 0) { cboFormasPago.Focus(); errorContainer1.errorProvider1.SetError(cboFormasPago, "Solo puede haber un pago en efectivo"); validado = false; break; } break; case "Tarjeta": /// veficica documento if (string.IsNullOrEmpty(txtTarjetaChequeDocumento.Text)) { txtTarjetaChequeDocumento.Focus(); errorContainer1.errorProvider1.SetError(txtTarjetaChequeDocumento, "Debe digitar un Número de documento Válido"); validado = false; break; } /// banco if (string.IsNullOrEmpty(cboBancos.SelectedValue.ToString())) { cboBancos.Focus(); errorContainer1.errorProvider1.SetError(cboBancos, "Debe seleccionar una banco"); validado = false; break; } /// tarjeta if (string.IsNullOrEmpty(cboTarjetas.SelectedValue.ToString())) { cboTarjetas.Focus(); errorContainer1.errorProvider1.SetError(cboTarjetas, "Debe seleccionar una banco"); validado = false; break; } /// solo un pago pr banco y tarjeta y documento var dupliListTarj = (from p in curPagoRepo.PagosLines where p.FormaPago == "Tarjeta" && p.Banco == (int)cboBancos.SelectedValue && p.Tarjeta == (int)cboTarjetas.SelectedValue && p.Documento == txtTarjetaChequeDocumento.Text select p).Count(); if (dupliListTarj > 0) { txtTarjetaChequeDocumento.Focus(); errorContainer1.errorProvider1.SetError(txtTarjetaChequeDocumento, "Ya existe un pago con ese documento y banco y tarjeta"); validado = false; break; } break; case "Cheque": /// veficica documento if (string.IsNullOrEmpty(txtTarjetaChequeDocumento.Text)) { txtTarjetaChequeDocumento.Focus(); errorContainer1.errorProvider1.SetError(txtTarjetaChequeDocumento, "Debe digitar un Número de documento Válido"); validado = false; break; } /// banco if (string.IsNullOrEmpty(cboBancos.SelectedValue.ToString())) { cboBancos.Focus(); errorContainer1.errorProvider1.SetError(cboBancos, "Debe seleccionar una banco"); validado = false; break; } /// solo un pago pr banco y documento var dupliListCheq = (from p in curPagoRepo.PagosLines where p.FormaPago == "Cheque" && p.Banco == (int)cboBancos.SelectedValue && p.Documento == txtTarjetaChequeDocumento.Text select p).Count(); if (dupliListCheq > 0) { txtTarjetaChequeDocumento.Focus(); errorContainer1.errorProvider1.SetError(txtTarjetaChequeDocumento, "Ya existe un pago con ese documento y banco"); validado = false; break; } break; } return(validado); }