Created
April 7, 2014 23:22
-
-
Save gastonprieto/10072862 to your computer and use it in GitHub Desktop.
long_method
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public bool FormLleno | |
{ | |
get | |
{ | |
var ret = true; | |
if (!HayErrores.GetValueOrDefault(false) && TipoMovimientoSeleccionado != null) | |
{ | |
// No tiene errores y hay tipo de movimiento seleccionado. | |
var tipoMov = ObtenerTipo(TipoMovimientoSeleccionado).Value; | |
if (CodigoAjusteSeleccionado == null || CodigoAjusteSeleccionado.Elemento == null) return false; | |
if (Asociacion) | |
{ | |
if (PartidasEncontradas == null) return false; | |
// Se chequea que haya alguna asociación hecha. | |
if (tipoMov.Equals(TipoMovimiento.DirectoDeposito)) | |
{ | |
ret = ret && _window.PartidasEncontradasDataGrid.SelectedItem != null | |
&& Deposito.HasValue; | |
// Dependiendo del código de ajuste valido o no iva. | |
ret = ret && (!CodigoAjusteSeleccionado.Elemento.validarIva || Iva.HasValue); | |
} | |
else if (tipoMov.Equals(TipoMovimiento.DirectoCobranza)) | |
{ | |
ret = ret && _window.PartidasEncontradasDataGrid.SelectedItem != null | |
&& Cantidad.HasValue && Cobranza.HasValue; | |
// Dependiendo del código de ajuste valido o no comisión. | |
ret = ret && (!CodigoAjusteSeleccionado.Elemento.validarComision || Comision.HasValue); | |
} | |
else | |
{ | |
var relacionadas = PartidasParaAsociar(); | |
ret = ret && relacionadas.Any(); | |
foreach (var partidaWrapper in relacionadas) | |
{ | |
ret = ret && EntradaCompleta(partidaWrapper); | |
} | |
} | |
// Chequeo que la grilla de partidas no tenga campos erróneos. | |
// Esto debería validarse automáticamente por los bindeos, pero | |
// no se pudo hacer que los validators de la grilla disparen los | |
// handlers de errores definidos en la ventana. | |
var cells = _window.PartidasEncontradasDataGrid.GetCells(ValidarFila); | |
foreach (var cell in cells) | |
{ | |
if (cell != null && cell.Column.Visibility.Equals(Visibility.Visible)) | |
{ | |
ret = ret && WPFValidationUtils.IsValid(cell); | |
} | |
} | |
} | |
else | |
{ | |
// Chequeo de importes para cuando no hay asociación. | |
if (EsDeposito(tipoMov)) | |
{ | |
ret = ret && Deposito.HasValue; | |
if (EsApertura(tipoMov) && !EsConComputoDeInteres) | |
{ | |
ret = ret && Observacion != null; | |
} | |
// Dependiendo del código de ajuste valido o no iva. | |
ret = ret && (!CodigoAjusteSeleccionado.Elemento.validarIva || Iva.HasValue); | |
} | |
else | |
{ | |
// Movimiento de cobranza. | |
ret = ret && (Cantidad.HasValue && Cobranza.HasValue); | |
// Dependiendo del código de ajuste valido o no comisión. | |
ret = ret && (!CodigoAjusteSeleccionado.Elemento.validarComision || Comision.HasValue); | |
} | |
} | |
// En el caso apertura depósito sin cómputo de interes | |
// la observación es opcional. | |
if (tipoMov.Equals(TipoMovimiento.AperturaDeposito) && !EsConComputoDeInteres) | |
{ | |
ret = ret && Observacion != null; | |
} | |
// Si es de apertura tiene que tener fecha de saldo destino. | |
// Si es de imputación, tiene que tener entidad destino. | |
if (EsApertura(tipoMov) && !Asociacion) | |
{ | |
ret = ret && Fecha.HasValue && !Fecha.Value.Equals(_saldo.Content.fecha); | |
} | |
else if (EsImputacion(tipoMov)) | |
{ | |
ret = ret | |
&& MonedaSeleccionada != null; | |
if (!Asociacion) | |
{ | |
ret = ret && EntidadSeleccionada != null; | |
} | |
// La moneda o la entidad deben ser distintos a la del saldo. | |
if (EntidadSeleccionada != null) | |
{ | |
ret = ret && | |
!(EntidadSeleccionada.Elemento.codigo.Equals(_saldo.Content.entidad.codigo)); | |
} | |
if (PreferenciasGlobalesUtils.EsRapipago(_saldo.Content.empresa.codigo)) | |
{ | |
ret = ret && MonedaSeleccionada.codigo.Equals(_saldo.Content.moneda.codigo); | |
} | |
} | |
// Si se marca que se desea crear una partida o escasa sugerida | |
// tiene que estar el valor especificado. | |
if (CreoEscasa) | |
{ | |
ret = ret && ImporteEscasa.HasValue; | |
} | |
else if(CreoPartida) | |
{ | |
ret = ret && ImportePartida.HasValue && ObservacionPartida != null && CodigoPartidaSeleccionado != null; | |
} | |
} else | |
{ | |
ret = false; | |
} | |
return ret; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment