public static string AgregarMovimiento(int IdCuentaBancaria, int IdTipoMovimiento, string FechaMovimiento, decimal Monto, string Referencia, int IdOrganizacion, int IdFlujoCaja, decimal TipoCambio, int IdTipoMoneda) { JObject Respuesta = new JObject(); CUtilerias.DelegarAccion(delegate(CConexion pConexion, int Error, string DescripcionError, CUsuario UsuarioSesion) { if (Error == 0) { CMovimiento Movimiento = new CMovimiento(); Movimiento.IdCuentaBancaria = IdCuentaBancaria; Movimiento.IdTipoMovimiento = IdTipoMovimiento; Movimiento.FechaAlta = DateTime.Now; Movimiento.FechaMovimiento = Convert.ToDateTime(FechaMovimiento); Movimiento.IdOrganizacion = IdOrganizacion; Movimiento.IdFlujoCaja = IdFlujoCaja; Movimiento.Monto = Monto * TipoCambio; Movimiento.Referencia = Referencia; Movimiento.IdUsuarioAlta = UsuarioSesion.IdUsuario; Movimiento.IdTipoMoneda = IdTipoMoneda; Movimiento.TipoCambio = TipoCambio; Movimiento.Baja = false; string validacion = ValidarMovimiento(Movimiento); if (validacion == "") { CSelectEspecifico Consulta = new CSelectEspecifico(); Consulta.StoredProcedure.CommandText = "sp_Movimiento_BuscarUltimoMovimiento"; Consulta.StoredProcedure.Parameters.Add("IdCuentaBancaria", SqlDbType.Int).Value = Movimiento.IdCuentaBancaria; Consulta.Llena(pConexion); decimal SaldoInicial = 0; if (Consulta.Registros.Read()) { SaldoInicial = Convert.ToDecimal(Consulta.Registros["Saldo"]); } Consulta.CerrarConsulta(); Movimiento.SaldoInicial = SaldoInicial; CTipoMovimientos TipoMovimiento = new CTipoMovimientos(); TipoMovimiento.LlenaObjeto(Movimiento.IdTipoMovimiento, pConexion); Movimiento.SaldoFinal = SaldoInicial + (Movimiento.Monto * TipoMovimiento.Afectacion); Movimiento.Agregar(pConexion); //Afectar cuentas por cobrar y cuentas por pagar } else { DescripcionError = validacion; Error = 1; } } Respuesta.Add("Error", Error); Respuesta.Add("Descripcion", DescripcionError); }); return(Respuesta.ToString()); }
public static string ObtenerFormaAgregarMovimiento() { JObject Respuesta = new JObject(); CUtilerias.DelegarAccion(delegate(CConexion pConexion, int Error, string DescripcionError, CUsuario UsuarioSesion) { if (Error == 0) { JObject Modelo = new JObject(); CBanco Bancos = new CBanco(); Dictionary <string, object> pParametros = new Dictionary <string, object>(); pParametros.Add("Baja", 0); JArray cmbBancos = new JArray(); foreach (CBanco Banco in Bancos.LlenaObjetosFiltros(pParametros, pConexion)) { JObject Opcion = new JObject(); Opcion.Add("Valor", Banco.IdBanco); Opcion.Add("Descripcion", Banco.Banco); cmbBancos.Add(Opcion); } Modelo.Add("Bancos", cmbBancos); CTipoMovimientos TipoMovimientos = new CTipoMovimientos(); JArray cmbTipoMovimientos = new JArray(); foreach (CTipoMovimientos TipoMovimiento in TipoMovimientos.LlenaObjetosFiltros(pParametros, pConexion)) { JObject Opcion = new JObject(); Opcion.Add("Valor", TipoMovimiento.IdTipoMovimientos); Opcion.Add("Descripcion", TipoMovimiento.TipoMovimiento); cmbTipoMovimientos.Add(Opcion); } Modelo.Add("TipoMovimientos", cmbTipoMovimientos); CFlujoCaja FlujosCaja = new CFlujoCaja(); JArray cmbFlujoCaja = new JArray(); foreach (CFlujoCaja FlujoCaja in FlujosCaja.LlenaObjetosFiltros(pParametros, pConexion)) { JObject Opcion = new JObject(); Opcion.Add("Valor", FlujoCaja.IdFlujoCaja); Opcion.Add("Descripcion", FlujoCaja.FlujoCaja); cmbFlujoCaja.Add(Opcion); } Modelo.Add("FlujoCaja", cmbFlujoCaja); CSelectEspecifico Consulta = new CSelectEspecifico(); Consulta.StoredProcedure.CommandText = "sp_Movimiento_TipoCambioDiarioOficial"; Consulta.Llena(pConexion); if (Consulta.Registros.Read()) { Modelo.Add("Dolares", Convert.ToDecimal(Consulta.Registros["TipoCambio"])); } Consulta.CerrarConsulta(); Respuesta.Add("Modelo", Modelo); } Respuesta.Add("Descripcion", DescripcionError); Respuesta.Add("Error", Error); }); return(Respuesta.ToString()); }