public static IGuiaFactura GetGuiaFactura() { GuiaFactura guiaFactura = new GuiaFactura(); return((IGuiaFactura)guiaFactura); }
public bool GuardarTraspaso() { using (SqlConnection conexion = new SqlConnection()) { SqlTransaction transaccion = null; conexion.ConnectionString = Config.ConnectionString; try { conexion.Open(); transaccion = conexion.BeginTransaction(); /* Dejar log del traspaso. */ Config.Conexion.EjecutarSinResultados(transaccion, "GuiaPasajeACtaCteINS", Utiles.BaseDatos.IntToSql(this.GuiaID), Utiles.BaseDatos.IntToSql(this.FacturaID), this.ClienteIDNuevo, Utiles.BaseDatos.IntToSql(this.clienteIDAnt), Utiles.BaseDatos.StrToSql(this.PersonaSolicitante), Utiles.BaseDatos.StrToSql(this.Observaciones), this.UsuarioID, Utiles.BaseDatos.IntToSql((int)NegociosSisPackInterface.SisPack.TipoOperacionGuiaPasajeID.Traspaso), Utiles.BaseDatos.IntToSql(AgenciaID), Impreso); if (this.GuiaID == 0 && this.FacturaID == 0) { throw new Exception("No se puede realizar el traspaso, no se obtienen los datos de la guía/factura correctamente."); } /* Modificar datos en base. */ if (this.GuiaID > 0) { /* Remito en tabla GuiaFactura. */ GuiaFactura guiaCliente = new GuiaFactura(); guiaCliente.GuiaID = this.GuiaID; if (this.AgenteGuiaPagoID == (int)NegociosSisPackInterface.SisPack.TipoAgenteGuia.Destinatario) { guiaCliente.DestinatarioCliente = this.ClienteIDNuevo; } else if (this.AgenteGuiaPagoID == (int)NegociosSisPackInterface.SisPack.TipoAgenteGuia.Remitente) { guiaCliente.RemitenteCliente = this.ClienteIDNuevo; } else { throw new Exception("No se puede realizar el traspaso, la guía no tiene un agente de pago correcto."); } guiaCliente.ModificarCliente(transaccion); guiaCliente = null; } else { /* Remito en tabla Factura. */ Factura factura = new Factura(); factura.FacturaID = this.FacturaID; factura.ClienteID = this.ClienteIDNuevo; factura.ModificarCliente(transaccion); factura = null; } // decremento el crédito de las autorizaciones (si existen) DsAutorizacionesCreditoCliente ds = new DsAutorizacionesCreditoCliente(); SqlParameter pClienteID = new SqlParameter("@ClienteID", this.ClienteIDNuevo); Config.Conexion.LlenarTypeDataSet(ds.Datos, System.Data.CommandType.StoredProcedure, "AutorizacionClienteCreditoSEL", pClienteID); double importe = 0; bool parar = false; if (ds.Datos.Rows.Count > 0) { // recorro cada autorizacion y la decremento foreach (DsAutorizacionesCreditoCliente.DatosRow dr in ds.Datos.Rows) { importe = Convert.ToDouble(Config.Conexion.EjecutarResultadoUnico(transaccion, "DecrementarCreditoAutorizacionClienteUPD", dr.AutorizacionClienteID, importe, this.GuiaID)); if (importe < 0) { parar = true; break; } } if (!parar) { Config.Conexion.EjecutarSinResultados(transaccion, "DecrementarCreditoUPD", Utiles.BaseDatos.IntToSql(this.ClienteIDNuevo), Utiles.BaseDatos.DoubleToSql(this.ImporteGuia)); } } else { Config.Conexion.EjecutarSinResultados(transaccion, "DecrementarCreditoUPD", Utiles.BaseDatos.IntToSql(this.ClienteIDNuevo), Utiles.BaseDatos.DoubleToSql(this.ImporteGuia)); } Config.Conexion.EjecutarSinResultados(transaccion, "DecrementarCreditoUPD", Utiles.BaseDatos.IntToSql(this.ClienteIDAnt), Utiles.BaseDatos.DoubleToSql(this.ImporteGuia * -1)); transaccion.Commit(); return(true); } catch (Exception ex) { transaccion.Rollback(); throw ex; } } }