public static string GenerarTraspaso(int IdCuentaBancariaOrigen, int IdTipoMonedaOrigen, decimal TipoCambioOrigen, decimal MontoOrigen, string ReferenciaOrigen, int IdCuentaBancariaDestino, int IdTipoMonedaDestino, decimal TipoCambioDestino, decimal MontoDestino, string ReferenciaDestino) { JObject Respuesta = new JObject(); CUtilerias.DelegarAccion(delegate(CConexion pConexion, int Error, string DescripcionError, CUsuario UsuarioSesion) { if (Error == 0) { JObject Modelo = new JObject(); CMovimiento MovimientoOrigen = new CMovimiento(); MovimientoOrigen.IdCuentaBancaria = IdCuentaBancariaOrigen; MovimientoOrigen.IdTipoMoneda = IdTipoMonedaOrigen; MovimientoOrigen.TipoCambio = TipoCambioOrigen; MovimientoOrigen.Monto = MontoOrigen; MovimientoOrigen.Referencia = ReferenciaOrigen; MovimientoOrigen.IdOrganizacion = 1415; MovimientoOrigen.IdFlujoCaja = 12; MovimientoOrigen.IdTipoMovimiento = 4; MovimientoOrigen.FechaMovimiento = DateTime.Now; MovimientoOrigen.FechaAlta = DateTime.Now; CSelectEspecifico ConsultaOrigen = new CSelectEspecifico(); ConsultaOrigen.StoredProcedure.CommandText = "sp_Movimiento_BuscarUltimoMovimiento"; ConsultaOrigen.StoredProcedure.Parameters.Add("IdCuentaBancaria", SqlDbType.Int).Value = MovimientoOrigen.IdCuentaBancaria; ConsultaOrigen.Llena(pConexion); decimal SaldoInicialOrigen = 0; if (ConsultaOrigen.Registros.Read()) { SaldoInicialOrigen = Convert.ToDecimal(ConsultaOrigen.Registros["Saldo"]); } ConsultaOrigen.CerrarConsulta(); MovimientoOrigen.SaldoInicial = SaldoInicialOrigen; MovimientoOrigen.SaldoFinal = SaldoInicialOrigen - MontoOrigen; MovimientoOrigen.Agregar(pConexion); CMovimiento MovimientoDestino = new CMovimiento(); MovimientoDestino.IdCuentaBancaria = IdCuentaBancariaDestino; MovimientoDestino.IdTipoMoneda = IdTipoMonedaDestino; MovimientoDestino.TipoCambio = TipoCambioDestino; MovimientoDestino.Monto = MontoDestino; MovimientoDestino.Referencia = ReferenciaDestino; MovimientoDestino.IdOrganizacion = 1415; MovimientoDestino.IdFlujoCaja = 2; MovimientoDestino.IdTipoMovimiento = 1; MovimientoDestino.FechaAlta = DateTime.Now; MovimientoDestino.FechaMovimiento = DateTime.Now; CSelectEspecifico ConsultaDestino = new CSelectEspecifico(); ConsultaDestino.StoredProcedure.CommandText = "sp_Movimiento_BuscarUltimoMovimiento"; ConsultaDestino.StoredProcedure.Parameters.Add("IdCuentaBancaria", SqlDbType.Int).Value = MovimientoDestino.IdCuentaBancaria; ConsultaDestino.Llena(pConexion); decimal SaldoInicialDestino = 0; if (ConsultaDestino.Registros.Read()) { SaldoInicialDestino = Convert.ToDecimal(ConsultaDestino.Registros["Saldo"]); } ConsultaDestino.CerrarConsulta(); MovimientoDestino.SaldoInicial = SaldoInicialDestino; MovimientoDestino.SaldoFinal = SaldoInicialDestino + MontoOrigen; MovimientoDestino.Agregar(pConexion); Respuesta.Add("Modelo", Modelo); } Respuesta.Add("Error", Error); Respuesta.Add("Descripcion", DescripcionError); }); return(Respuesta.ToString()); }
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()); }