Esempio n. 1
0
        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);
        }