public static XDocument ProcesaMensajeXML(XDocument mensaje) { try { Transaccion transaccion = new Transaccion(mensaje); if (!transaccion.TieneError) { transaccion.Procesa(); //transaccion.Resultado = } return transaccion.GeneraMensaje(); } catch (Exception) { return GeneraMensaje(0, "PET", "", "ERROR_XML", "Mensaje XML mal formado", null); } }
protected void btnGuardar_Click(object sender, EventArgs e) { Transaccion.InsertaTelefono(this.txtRut.Text.Replace(".", ""), this.vigencia.SelectedValue, this.txttelefono.Text, this.txtcelular.Text, this.txtFax.Text, this.TipoTelefono.SelectedValue); this.Page.RegisterClientScriptBlock("Mensaje", "<script>alert('Datos guardados correctamente');</script>"); this.Cancela(); }
protected void btnActualizar_Click(object sender, EventArgs e) { Transaccion.ActualizarTelefono(this.CodCliente.Value, this.vigencia.SelectedValue, this.txttelefono.Text, this.txtcelular.Text, this.txtFax.Text, this.TipoTelefono.SelectedValue); this.Page.RegisterClientScriptBlock("Mensaje", "<script>alert('Datos actualizados correctamente');</script>"); this.Cancela(); }
private void btnAceptar_Click(object sender, System.EventArgs e) { #region "if (ChkBAbrir.Checked == true && cbxCamioneta.Checked == false)" if (ChkBAbrir.Checked == true && cbxCamioneta.Checked == false) { string Query = "select Folio,AñoAtt,NombreOperador,CategoriaOperador,Autotanque from vwSTCiclosAbiertos where FinicioRuta between '" + dtpCiclos.Value.ToShortDateString() + "'and '" + dtpCiclos.Value.ToShortDateString() + " 23:59:59'"; SqlDataAdapter da = new SqlDataAdapter(); SigaMetClasses.DataLayer.Conexion.Open(); da.SelectCommand = new SqlCommand(Query, SigaMetClasses.DataLayer.Conexion); DataTable dt = new DataTable("Autotanque"); da.Fill(dt); SigaMetClasses.DataLayer.Conexion.Close(); if (dt.Rows.Count > 0) { string _folios = "\r"; foreach (DataRow row in dt.Rows) // Loop over the rows. { _folios = _folios + "\r" + "Folio: " + row["Folio"].ToString() + " Camioneta: " + row["Autotanque"].ToString(); } MessageBox.Show("Usted ya generó los ciclos de los siguientes folios con la fecha especificada: " + _folios, "Generación de Ciclos Automáticos", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (MessageBox.Show("¿Desea usted abrir los ciclos?.", "Abrir Ciclos", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) { SigaMetClasses.DataLayer.Conexion.Close(); string Consulta = "select Autotanque,Ruta,TipoVehiculo,Celula from autotanque where tipoproducto = 2"; SqlDataAdapter daC = new SqlDataAdapter(); GeneraCiclosAutomaticos.Modulo.CnSigamet.Open(); daC.SelectCommand = new SqlCommand(Consulta, SigaMetClasses.DataLayer.Conexion); DataTable dtC = new DataTable("Autotanque"); daC.Fill(dtC); GeneraCiclosAutomaticos.Modulo.CnSigamet.Close(); System.Data.DataRow [] ConsultaC = dtC.Select(); SqlConnection Conexion = SigaMetClasses.DataLayer.Conexion; SqlTransaction Transaccion; foreach (System.Data.DataRow dr in ConsultaC) { try { Conexion.Open(); SqlCommand Comando = Conexion.CreateCommand(); Transaccion = Conexion.BeginTransaction(); Comando.Connection = Conexion; Comando.Transaction = Transaccion; SqlParameter Parametro; Parametro = Comando.Parameters.Add("@Ruta", System.Data.SqlDbType.SmallInt); Parametro.Value = dr["Ruta"]; Parametro = Comando.Parameters.Add("@Autotanque", System.Data.SqlDbType.SmallInt); Parametro.Value = dr["Autotanque"]; Parametro = Comando.Parameters.Add("@TipoVehiculo", System.Data.SqlDbType.TinyInt); Parametro.Value = dr["TipoVehiculo"]; Parametro = Comando.Parameters.Add("@Usuario", System.Data.SqlDbType.Char); Parametro.Value = _Usuario; Parametro = Comando.Parameters.Add("@FCiclos", System.Data.SqlDbType.DateTime); Parametro.Value = dtpCiclos.Value; Parametro = Comando.Parameters.Add("@Celula", System.Data.SqlDbType.TinyInt); Parametro.Value = dr["Celula"]; Comando.CommandType = CommandType.StoredProcedure; Comando.CommandText = "spSTAbreCiclosAutotamaticosST"; Comando.CommandTimeout = 300; Comando.ExecuteNonQuery(); Transaccion.Commit(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Conexion.Close(); //Conexion.Dispose (); this.Close(); } } MessageBox.Show("Ciclos Abiertos con Exito.", "Generación de Ciclos Automáticos", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } #endregion #region "if (ChkBCerrar.Checked == true && cbxCamioneta.Checked == false)" else if (ChkBCerrar.Checked == true && cbxCamioneta.Checked == false) { SigaMetClasses.DataLayer.Conexion.Close(); string QueryC = "select Folio,AñoAtt,NombreOperador,CategoriaOperador, Autotanque from vwSTCiclosAbiertos where statusLogistica = 'CIERRE' and FinicioRuta between '" + dtpCiclos.Value.ToShortDateString() + "'and '" + dtpCiclos.Value.ToShortDateString() + " 23:59:59'"; SqlDataAdapter daC = new SqlDataAdapter(); SigaMetClasses.DataLayer.Conexion.Open(); daC.SelectCommand = new SqlCommand(QueryC, SigaMetClasses.DataLayer.Conexion); DataTable dtC = new DataTable("AutotanqueC"); daC.Fill(dtC); SigaMetClasses.DataLayer.Conexion.Close(); if (dtC.Rows.Count > 0) { string _folios = "\r"; foreach (DataRow row in dtC.Rows) // Loop over the rows. { _folios = _folios + "\r" + "Folio: " + row["Folio"].ToString() + " Camioneta: " + row["Autotanque"].ToString(); } MessageBox.Show("Usted ya cerró los ciclos de los siguientes folios con la fecha especificada: " + _folios, "Generación de Ciclos Automáticos", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } else { if (MessageBox.Show("¿Desea usted cerrar los ciclos?.", "Cerrar Ciclos", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) { GeneraCiclosAutomaticos.Modulo.CnSigamet.Close(); string QueryD = "select Folio,AñoAtt,NombreOperador,CategoriaOperador from vwSTCiclosAbiertos where FinicioRuta between '" + dtpCiclos.Value.ToShortDateString() + "'and '" + dtpCiclos.Value.ToShortDateString() + " 23:59:59'"; SqlDataAdapter daD = new SqlDataAdapter(); GeneraCiclosAutomaticos.Modulo.CnSigamet.Open(); daD.SelectCommand = new SqlCommand(QueryD, Modulo.CnSigamet); DataTable dtD = new DataTable("Autotanque"); daD.Fill(dtD); GeneraCiclosAutomaticos.Modulo.CnSigamet.Close(); System.Data.DataRow [] Consulta = dtD.Select(); SqlConnection Conexion = SigaMetClasses.DataLayer.Conexion; SqlTransaction Transaccion; foreach (System.Data.DataRow dr in Consulta) { try { Conexion.Open(); SqlCommand Comando = Conexion.CreateCommand(); Transaccion = Conexion.BeginTransaction(); Comando.Connection = Conexion; Comando.Transaction = Transaccion; SqlParameter Parametro; Parametro = Comando.Parameters.Add("@Folio", System.Data.SqlDbType.Int); Parametro.Value = dr["Folio"]; Parametro = Comando.Parameters.Add("@AñoAtt", System.Data.SqlDbType.SmallInt); Parametro.Value = dr["AñoAtt"]; Parametro = Comando.Parameters.Add("@UsuarioCierre", System.Data.SqlDbType.VarChar); Parametro.Value = _Usuario; Parametro = Comando.Parameters.Add("@FCiclos", System.Data.SqlDbType.DateTime); Parametro.Value = dtpCiclos.Value; if (dr["NombreOperador"] == System.DBNull.Value) { Parametro = Comando.Parameters.Add("@Chofer", System.Data.SqlDbType.VarChar); Parametro.Value = "S/Técnico"; } else { Parametro = Comando.Parameters.Add("@Chofer", System.Data.SqlDbType.VarChar); Parametro.Value = dr["NombreOperador"]; } Parametro = Comando.Parameters.Add("@CategoriaOperador", System.Data.SqlDbType.TinyInt); Parametro.Value = dr["CAtegoriaOperador"]; Comando.CommandType = CommandType.StoredProcedure; Comando.CommandText = "spSTCierraCiclosAutotamaticosST"; Comando.CommandTimeout = 300; Comando.ExecuteNonQuery(); Transaccion.Commit(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Conexion.Close(); //Conexion.Dispose (); this.Close(); } } } MessageBox.Show("Ciclos Cerrados con Exito.", "Generación de Ciclos Automáticos", MessageBoxButtons.OK, MessageBoxIcon.Information); } } #endregion #region "if (ChkBAbrir.Checked == true && cbxCamioneta.Checked == true && Convert.ToInt32(cboCamioneta.SelectedValue) > 0)" else if (ChkBAbrir.Checked == true && cbxCamioneta.Checked == true && Convert.ToInt32(cboCamioneta.SelectedValue) > 0) { string Query = "select Folio,AñoAtt,NombreOperador,CategoriaOperador,Autotanque from vwSTCiclosAbiertos where FinicioRuta between '" + dtpCiclos.Value.ToShortDateString() + "'and '" + dtpCiclos.Value.ToShortDateString() + " 23:59:59' and Autotanque = " + cboCamioneta.SelectedValue.ToString(); SqlDataAdapter da = new SqlDataAdapter(); SigaMetClasses.DataLayer.Conexion.Open(); da.SelectCommand = new SqlCommand(Query, SigaMetClasses.DataLayer.Conexion); DataTable dt = new DataTable("Autotanque"); da.Fill(dt); SigaMetClasses.DataLayer.Conexion.Close(); if (dt.Rows.Count > 0) { string _folios = "\r"; foreach (DataRow row in dt.Rows) // Loop over the rows. { _folios = _folios + "\r" + "Folio: " + row["Folio"].ToString() + " Camioneta: " + row["Autotanque"].ToString(); } MessageBox.Show("Usted ya generó el ciclos para la camioneta " + cboCamioneta.SelectedValue.ToString() + "\r" + "con el siguiente folio en la fecha especificada: " + _folios, "Generación de Ciclos Automáticos", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (MessageBox.Show("¿Desea usted abrir el ciclo para la camioneta " + cboCamioneta.SelectedValue.ToString() + "?.", "Abrir Ciclos", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) { SigaMetClasses.DataLayer.Conexion.Close(); string Consulta = "select Autotanque,Ruta,TipoVehiculo,Celula from autotanque where tipoproducto = 2 And Autotanque = " + cboCamioneta.SelectedValue.ToString(); SqlDataAdapter daC = new SqlDataAdapter(); GeneraCiclosAutomaticos.Modulo.CnSigamet.Open(); daC.SelectCommand = new SqlCommand(Consulta, SigaMetClasses.DataLayer.Conexion); DataTable dtC = new DataTable("Autotanque"); daC.Fill(dtC); GeneraCiclosAutomaticos.Modulo.CnSigamet.Close(); System.Data.DataRow [] ConsultaC = dtC.Select(); SqlConnection Conexion = SigaMetClasses.DataLayer.Conexion; SqlTransaction Transaccion; foreach (System.Data.DataRow dr in ConsultaC) { try { Conexion.Open(); SqlCommand Comando = Conexion.CreateCommand(); Transaccion = Conexion.BeginTransaction(); Comando.Connection = Conexion; Comando.Transaction = Transaccion; SqlParameter Parametro; Parametro = Comando.Parameters.Add("@Ruta", System.Data.SqlDbType.SmallInt); Parametro.Value = dr["Ruta"]; Parametro = Comando.Parameters.Add("@Autotanque", System.Data.SqlDbType.SmallInt); Parametro.Value = dr["Autotanque"]; Parametro = Comando.Parameters.Add("@TipoVehiculo", System.Data.SqlDbType.TinyInt); Parametro.Value = dr["TipoVehiculo"]; Parametro = Comando.Parameters.Add("@Usuario", System.Data.SqlDbType.Char); Parametro.Value = _Usuario; Parametro = Comando.Parameters.Add("@FCiclos", System.Data.SqlDbType.DateTime); Parametro.Value = dtpCiclos.Value; Parametro = Comando.Parameters.Add("@Celula", System.Data.SqlDbType.TinyInt); Parametro.Value = dr["Celula"]; Comando.CommandType = CommandType.StoredProcedure; Comando.CommandText = "spSTAbreCiclosAutotamaticosST"; Comando.CommandTimeout = 300; Comando.ExecuteNonQuery(); Transaccion.Commit(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Conexion.Close(); //Conexion.Dispose (); this.Close(); } } MessageBox.Show("Ciclo abierto con éxito.", "Generación de Ciclos Automáticos", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } #endregion #region "if (ChkBCerrar.Checked == true && cbxCamioneta.Checked == true && Convert.ToInt32(cboCamioneta.SelectedValue) > 0)" else if (ChkBCerrar.Checked == true && cbxCamioneta.Checked == true && Convert.ToInt32(cboCamioneta.SelectedValue) > 0) { SigaMetClasses.DataLayer.Conexion.Close(); string QueryC = "select Folio,AñoAtt,NombreOperador,CategoriaOperador, Autotanque from vwSTCiclosAbiertos where statusLogistica = 'CIERRE' and FinicioRuta between '" + dtpCiclos.Value.ToShortDateString() + "'and '" + dtpCiclos.Value.ToShortDateString() + " 23:59:59' and Autotanque = " + cboCamioneta.SelectedValue.ToString(); SqlDataAdapter daC = new SqlDataAdapter(); SigaMetClasses.DataLayer.Conexion.Open(); daC.SelectCommand = new SqlCommand(QueryC, SigaMetClasses.DataLayer.Conexion); DataTable dtC = new DataTable("AutotanqueC"); daC.Fill(dtC); SigaMetClasses.DataLayer.Conexion.Close(); if (dtC.Rows.Count > 0) { string _folios = "\r"; foreach (DataRow row in dtC.Rows) // Loop over the rows. { _folios = _folios + "\r" + "Folio: " + row["Folio"].ToString() + " Camioneta: " + row["Autotanque"].ToString(); } MessageBox.Show("Usted ya cerró el ciclo de la camioneta " + cboCamioneta.SelectedValue.ToString() + " en la fecha especificada: " + _folios, "Generación de Ciclos Automáticos", MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } else { if (MessageBox.Show("¿Desea usted cerrar el ciclo de la camioneta " + cboCamioneta.SelectedValue.ToString() + "?.", "Cerrar Ciclos", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) { GeneraCiclosAutomaticos.Modulo.CnSigamet.Close(); string QueryD = "select Folio,AñoAtt,NombreOperador,CategoriaOperador from vwSTCiclosAbiertos where FinicioRuta between '" + dtpCiclos.Value.ToShortDateString() + "'and '" + dtpCiclos.Value.ToShortDateString() + " 23:59:59' and Autotanque = " + cboCamioneta.SelectedValue.ToString(); SqlDataAdapter daD = new SqlDataAdapter(); GeneraCiclosAutomaticos.Modulo.CnSigamet.Open(); daD.SelectCommand = new SqlCommand(QueryD, Modulo.CnSigamet); DataTable dtD = new DataTable("Autotanque"); daD.Fill(dtD); GeneraCiclosAutomaticos.Modulo.CnSigamet.Close(); System.Data.DataRow [] Consulta = dtD.Select(); SqlConnection Conexion = SigaMetClasses.DataLayer.Conexion; SqlTransaction Transaccion; foreach (System.Data.DataRow dr in Consulta) { try { Conexion.Open(); SqlCommand Comando = Conexion.CreateCommand(); Transaccion = Conexion.BeginTransaction(); Comando.Connection = Conexion; Comando.Transaction = Transaccion; SqlParameter Parametro; Parametro = Comando.Parameters.Add("@Folio", System.Data.SqlDbType.Int); Parametro.Value = dr["Folio"]; Parametro = Comando.Parameters.Add("@AñoAtt", System.Data.SqlDbType.SmallInt); Parametro.Value = dr["AñoAtt"]; Parametro = Comando.Parameters.Add("@UsuarioCierre", System.Data.SqlDbType.VarChar); Parametro.Value = _Usuario; Parametro = Comando.Parameters.Add("@FCiclos", System.Data.SqlDbType.DateTime); Parametro.Value = dtpCiclos.Value; if (dr["NombreOperador"] == System.DBNull.Value) { Parametro = Comando.Parameters.Add("@Chofer", System.Data.SqlDbType.VarChar); Parametro.Value = "S/Técnico"; } else { Parametro = Comando.Parameters.Add("@Chofer", System.Data.SqlDbType.VarChar); Parametro.Value = dr["NombreOperador"]; } Parametro = Comando.Parameters.Add("@CategoriaOperador", System.Data.SqlDbType.TinyInt); Parametro.Value = dr["CAtegoriaOperador"]; Comando.CommandType = CommandType.StoredProcedure; Comando.CommandText = "spSTCierraCiclosAutotamaticosST"; Comando.CommandTimeout = 300; Comando.ExecuteNonQuery(); Transaccion.Commit(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Conexion.Close(); //Conexion.Dispose (); this.Close(); } } } MessageBox.Show("Ciclo cerrados con éxito.", "Generación de Ciclos Automáticos", MessageBoxButtons.OK, MessageBoxIcon.Information); } } #endregion }
protected void btnGuardar_Click(object sender, EventArgs e) { if (!ValidarCampos()) { return; } string strIndicadorAbono = string.Empty; int intIdAbono = 0; decimal decMontoAbono = ALCSA.FWK.Web.Control.ExtraerValorComoDecimal(txtMontoAbono); decimal decTotalParcial = ALCSA.FWK.Web.Control.ExtraerValorComoDecimal(txtTotalParcial); decimal decSaldoAbono = Decimal.Zero; if (decTotalParcial > Decimal.Zero && decMontoAbono > Decimal.Zero) { strIndicadorAbono = "C"; decSaldoAbono = decTotalParcial - decMontoAbono; } DateTime datFechaMinima = new DateTime(1900, 1, 1); DateTime datFechaUltimoPago = BuscarFechaUltimoCheque(); DataTable objAbono = Transaccion.InsertaAbono( this.hiddidcobranza.Value, ALCSA.FWK.Web.Control.ExtraerValorComoDateTime(txtFecha, datFechaMinima).ToString("yyyyMMdd"), this.txtMontoAbono.Text, ALCSA.FWK.Web.Control.ExtraerValorComoEntero(ConceptoAbono).ToString(), ALCSA.FWK.Web.Control.ExtraerValorComoEntero(ddlFormaPago).ToString(), ALCSA.FWK.Web.Control.ExtraerValorComoEntero(banco).ToString(), datFechaUltimoPago.ToString("yyyyMMdd"), string.Empty, this.txtObservacion.Text, txtGirador.Enabled ? this.txtGirador.Text.Trim() : string.Empty, this.txtBoletaHonorarios.Text, string.Empty, ALCSA.FWK.Web.Control.ExtraerValorComoEntero(ddlNumeroCheques).ToString(), "1", this.Session["Usuario"].ToString(), this.TipoComprobante.SelectedValue, ALCSA.FWK.Web.Control.ExtraerValorComoEntero(ddlNumeroCheques) > 1 ? "S" : string.Empty, Consulta.Codigo_cuota_colegio(), txtGirador.Enabled ? txtnomgirador.Text.Trim() : string.Empty ); if (objAbono != null && objAbono.Rows.Count > 0) { intIdAbono = ALCSA.FWK.Texto.ConvertirTextoEnEntero(objAbono.Rows[0][0].ToString()); } if (strIndicadorAbono == "C") { Transaccion.UpdateAbonoParcialEstado(hiddidcobranza.Value.ToString(), intIdAbono.ToString()); } if (decSaldoAbono > Decimal.Zero) { Transaccion.InsertaAbonoParcial( hiddidcobranza.Value, "E", decSaldoAbono, Session["Usuario"].ToString() ); } DataTable objProductoJuicio = Consulta.ProductoJuicio(this.hiddidcobranza.Value.ToString()); string str7 = ""; string str8 = ""; if (objProductoJuicio != null && objProductoJuicio.Rows.Count > 0) { str7 = objProductoJuicio.Rows[0]["id_producto"].ToString(); str8 = objProductoJuicio.Rows[0]["tipocobranza"].ToString(); } if (str8 == "P") { this.marcarletrapagada(); } if (str8 == "J") { switch (str7) { case "1": this.marcarletrapagadamutuo(); break; case "2": this.marcarletrapagadadocupagare(); break; case "3": this.marcarletrapagadadocujuicio(); break; } } Transaccion.UpdateGastos(hiddidcobranza.Value); try { this.GuardarDesglose( intIdAbono.ToString(), hiddidcobranza.Value, txtGastos.Text ); } catch (Exception) { } GuardarCheques(intIdAbono); ClientScript.RegisterClientScriptBlock( typeof(Page), "alerta", string.Format("<script>alert('Datos guardados correctamente');location.href='pagoAbono.aspx?Codigo={0}';</script>", this.hiddidcobranza.Value)); }
/// <summary> /// Inserta un Detalle Impuesto /// </summary> /// <param name="id_impuesto"></param> /// <param name="id_tipo_detalle"></param> /// <param name="id_impuesto_retenido"></param> /// <param name="id_impuesto_trasladado"></param> /// <param name="tasa"></param> /// <param name="id_usuario"></param> /// <param name="id_comprobante"></param> /// <param name="id_conceptos"></param> /// <returns></returns> public static RetornoOperacion InsertaDetalleImpuesto(int id_impuesto, int id_tipo_detalle, int id_impuesto_retenido, int id_impuesto_trasladado, decimal tasa, int id_usuario, int id_comprobante, int[] id_conceptos) { //Declaramos Variable Impuesto int id_impuesto_registro = id_impuesto; int id_impuesto_detalle_registro = 0; //Declarando objeto de retorno RetornoOperacion resultado = new RetornoOperacion(0); //Creamos la transacción using (System.Transactions.TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Instanciamos Comprobante using (Comprobante objComprobante = new Comprobante(id_comprobante)) { //Validamos Existencia de Impuesto if (id_impuesto <= 0) { //Insertamos Impuesto resultado = Impuesto.InsertaImpuesto(id_comprobante, 0, 0, 0, 0, id_usuario); //Asignamod Id Impuesto id_impuesto_registro = resultado.IdRegistro; } //Validamos Resultado if (resultado.OperacionExitosa) { //Inserta Detalle de Impuesto resultado = InsertaDetalleImpuesto(id_impuesto_registro, id_tipo_detalle, id_impuesto_retenido, id_impuesto_trasladado, tasa, 0, 0, id_usuario); //Asignamod Id Impuesto id_impuesto_detalle_registro = resultado.IdRegistro; //Si se inserta el Detalle Impuestos if (resultado.OperacionExitosa) { //Validamos Existencia de Conceptos if (id_conceptos != null) { decimal impuesto_captura = 0, impuesto_nacional = 0, descuento_importe_moneda_nacional = 0, descuento_importe_moneda_captura = 0; //Guardamos cada uno de los Conceptos foreach (int id_concepto in id_conceptos) { //Si el resultado es Exitoso if (resultado.OperacionExitosa) { //Instanciamos Concepto using (Concepto objconcepto = new Concepto(id_concepto)) { //Obtenemos el Descuento Por Concepto objComprobante.ObtieneDescuentoPorConcepto(objconcepto.importe_moneda_captura, objconcepto.importe_moneda_nacional, out descuento_importe_moneda_captura, out descuento_importe_moneda_nacional); //Calculamos Impuesto Captura impuesto_captura = (objconcepto.importe_moneda_captura - descuento_importe_moneda_captura) * (tasa / 100); //Calculamos Impuesto Nacional impuesto_nacional = (objconcepto.importe_moneda_nacional - descuento_importe_moneda_nacional) * (tasa / 100); //Insertamos Concepto Detalle Impuesto resultado = ConceptoDetalleImpuesto.InsertarConceptoDetalleImpuesto(id_concepto, id_impuesto_detalle_registro, impuesto_captura, impuesto_nacional, id_usuario); } } else { break; } } } //Validamos Inserccion de Concepto Detalle Impuesto if (resultado.OperacionExitosa) { //Actualizamos Total Detalle Impuesto using (DetalleImpuesto objDetalleImpuesto = new DetalleImpuesto(id_impuesto_detalle_registro)) { //Actualizamos Total Detalles resultado = objDetalleImpuesto.ActualizaTotalDetalleImpuesto(id_usuario); } //Si se actualizo correctamente Detalle Impuesto if (resultado.OperacionExitosa) { //Instanciamos Impuesto using (Impuesto objImpuesto = new Impuesto(id_impuesto_registro)) { resultado = objImpuesto.ActualizaTotalImpuesto(id_usuario); } } //Si se actualizo correctamente el Impuesto if (resultado.OperacionExitosa) { //Actualizamos Instnacia Comprobante resultado = objComprobante.ActualizaImpuestosComprobante(id_impuesto_registro, id_usuario); } } } } } //Si no hay errores if (resultado.OperacionExitosa) { //Asignando Resultado general con Id de Detalle insertado resultado = new RetornoOperacion(id_impuesto_detalle_registro); //Finalizamos transaccion scope.Complete(); } } return(resultado); }
private void ConfirmarCancelacionOrden(Transaccion transaccion, DateTime fechaCancelacion) { ConcertadorOrdenes.CancelarOrden(transaccion, new NovedadFIXDTO { FechaCancelacion = fechaCancelacion }); }
public void ConfirmarRecepcionOrden(Transaccion transaccion, NovedadFIXDTO concertacion) { _dao.ExecuteQuery($"update ttr_transaccion set estado = 2, idFix = {concertacion.IdFix} where id_transaccion = {transaccion.ID}"); }
public bool Eliminar(Transaccion transaccion) { using (var conection = Database.CreateConnection()) { conection.Open(); using (var transaction = conection.BeginTransaction()) { try { #region Obtener Movimiento de Productos var movimientos = movimientoProductoRepository.GetByTransaccion(transaccion.IdTransaccion, transaction); #endregion #region Revertir ProductoStock foreach (var movimientoProducto in movimientos) { foreach (var movimientoProductoStock in movimientoProducto.MovimientoProductoStock) { movimientoProductoStock.SignoStock = -1 * movimientoProducto.SignoStock; movimientoProductoStock.IdPresentacion = movimientoProducto.IdPresentacion; movimientoProductoStock.UsuarioCreacion = movimientoProducto.UsuarioCreacion; movimientoProductoStock.TipoClasificacion = movimientoProducto.TipoClasificacion; } } if (transaccion.IdTransaccionReferencia == null) { productoStockRepository.UpdateProductoStock(movimientos, transaction); } else { productoStockRepository.UpdateProductoStockFisico(movimientos, transaction); } #endregion #region Eliminar Transaccion transaccionRepository.DeleteTransaccion(transaccion.IdTransaccion, (int)TipoEstado.Inactivo, transaccion.UsuarioModificacion, transaction); #endregion #region Actualizar Orden de Pedido if (transaccion.IdTransaccionReferencia != null) { transaccion.Estado = (int)TipoEstadoDocumento.Pendiente; transaccionRepository.UpdateReferenciaTransaccion(transaccion, transaction); } #endregion transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw new Exception(ex.Message, ex); } } } return(true); }
public bool Insertar(Transaccion transaccion) { using (var conection = Database.CreateConnection()) { conection.Open(); using (var transaction = conection.BeginTransaction()) { try { #region Transaccion transaccion.IdTransaccion = transaccionRepository.InsertTransaccion(transaccion, transaction); #endregion #region Movimiento Producto if (transaccion.IdTransaccionReferencia == null) { foreach (var movimientoProducto in transaccion.MovimientoProducto) { movimientoProducto.IdTransaccion = transaccion.IdTransaccion; var productos = productoStockRepository.GetByAlmacenPresentacion(movimientoProducto.IdAlmacen.Value, movimientoProducto.IdPresentacion, transaction); var stockTotal = productos.Sum(p => p.StockFisico); if (stockTotal < movimientoProducto.Cantidad) { throw new Exception(string.Format("No existe Stock suficiente para el producto {0}.", movimientoProducto.CodigoProducto)); } var costo = productoPrecioRepository.GetCostoByPresentacion(transaccion.IdEmpresa, transaccion.IdSucursal, movimientoProducto.IdPresentacion); movimientoProducto.Costo = costo; var cantidad = movimientoProducto.Cantidad; var secuencia = 0; foreach (var productoStock in productos) { cantidad -= productoStock.StockLogico; var movimientoProductoStock = new MovimientoProductoStock { Secuencia = ++secuencia, LoteSerie = productoStock.Lote, Cantidad = productoStock.StockLogico, IdAlmacen = movimientoProducto.IdAlmacen.Value, FechaVencimiento = productoStock.FechaVencimiento }; if (cantidad > 0) { movimientoProducto.MovimientoProductoStock.Add(movimientoProductoStock); } else if (cantidad == 0) { movimientoProducto.MovimientoProductoStock.Add(movimientoProductoStock); break; } else { cantidad = cantidad + productoStock.StockLogico; movimientoProductoStock.Cantidad = cantidad; movimientoProducto.MovimientoProductoStock.Add(movimientoProductoStock); break; } } } movimientoProductoRepository.InsertMovimientos(transaccion.MovimientoProducto, transaction); } else { foreach (var movimientoProducto in transaccion.MovimientoProducto) { movimientoProducto.IdTransaccion = transaccion.IdTransaccion; foreach (var movimientoProductoStock in movimientoProducto.MovimientoProductoStock) { var productoStock = productoStockRepository.GetByPresentacionAlmacenLote( movimientoProducto.IdPresentacion, movimientoProductoStock.IdAlmacen, movimientoProductoStock.LoteSerie); if (productoStock.StockFisico < movimientoProductoStock.Cantidad) { throw new Exception(string.Format("No existe Stock suficiente para el lote {0} del producto {1}.", movimientoProductoStock.LoteSerie, movimientoProducto.CodigoProducto)); } } } movimientoProductoRepository.InsertMovimientosFisico(transaccion.MovimientoProducto, transaction); } #endregion #region Impuestos foreach (var transaccionImpuesto in transaccion.TransaccionImpuesto) { transaccionImpuesto.IdTransaccion = transaccion.IdTransaccion; } transaccionImpuestoRepository.InsertImpuestos(transaccion.TransaccionImpuesto, transaction); #endregion #region Actualizar Serie Documento serieDocumentoRepository.UpdateSerieDocumento(transaccion.IdSerieDocumento, transaccion.IdSucursal, transaccion.UsuarioModificacion, transaction); #endregion #region Actualizar Orden de Pedido if (transaccion.IdTransaccionReferencia != null) { transaccion.Estado = (int)TipoEstadoDocumento.Aprobado; transaccionRepository.UpdateReferenciaTransaccion(transaccion, transaction); } #endregion transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw new Exception(ex.Message, ex); } } } return(true); }
public bool Actualizar(Transaccion transaccion) { using (var conection = Database.CreateConnection()) { conection.Open(); using (var transaction = conection.BeginTransaction()) { try { #region Obtener Movimiento de Productos var movimientosModificados = movimientoProductoRepository.GetByTransaccion(transaccion.IdTransaccion, transaction); #endregion #region Revertir ProductoStock foreach (var movimientoProducto in movimientosModificados) { foreach (var movimientoProductoStock in movimientoProducto.MovimientoProductoStock) { movimientoProductoStock.SignoStock = -1 * movimientoProducto.SignoStock; movimientoProductoStock.IdPresentacion = movimientoProducto.IdPresentacion; movimientoProductoStock.UsuarioCreacion = movimientoProducto.UsuarioCreacion; movimientoProductoStock.TipoClasificacion = movimientoProducto.TipoClasificacion; } } if (transaccion.IdTransaccionReferencia.HasValue) { productoStockRepository.UpdateProductoStockFisico(movimientosModificados, transaction); } else { productoStockRepository.UpdateProductoStock(movimientosModificados, transaction); } #endregion #region Eliminar MovimientoProducto movimientoProductoRepository.DeleteByTransaccion(transaccion.IdTransaccion, transaction); #endregion #region Eliminar Impuesto transaccionImpuestoRepository.DeleteByTransaccion(transaccion.IdTransaccion, transaction); #endregion #region Actualizar Transaccion transaccionRepository.UpdateTransaccion(transaccion, transaction); #endregion #region Movimiento Producto if (transaccion.IdTransaccionReferencia == null) { foreach (var movimientoProducto in transaccion.MovimientoProducto) { movimientoProducto.IdTransaccion = transaccion.IdTransaccion; var productos = productoStockRepository.GetByAlmacenPresentacion(movimientoProducto.IdAlmacen.Value, movimientoProducto.IdPresentacion, transaction); var cantidad = movimientoProducto.Cantidad; var secuencia = 0; foreach (var productoStock in productos) { cantidad -= productoStock.StockLogico; var movimientoProductoStock = new MovimientoProductoStock { Secuencia = ++secuencia, LoteSerie = productoStock.Lote, Cantidad = productoStock.StockLogico, IdAlmacen = movimientoProducto.IdAlmacen.Value, FechaVencimiento = productoStock.FechaVencimiento }; if (cantidad > 0) { movimientoProducto.MovimientoProductoStock.Add(movimientoProductoStock); } else if (cantidad == 0) { movimientoProducto.MovimientoProductoStock.Add(movimientoProductoStock); break; } else { movimientoProductoStock.Cantidad = cantidad + productoStock.StockLogico; movimientoProducto.MovimientoProductoStock.Add(movimientoProductoStock); break; } } } movimientoProductoRepository.InsertMovimientos(transaccion.MovimientoProducto, transaction); } else { foreach (var movimientoProducto in transaccion.MovimientoProducto) { movimientoProducto.IdTransaccion = transaccion.IdTransaccion; foreach (var movimientoProductoStock in movimientoProducto.MovimientoProductoStock) { var productoStock = productoStockRepository.GetByPresentacionAlmacenLote( movimientoProducto.IdPresentacion, movimientoProductoStock.IdAlmacen, movimientoProductoStock.LoteSerie); if (productoStock.StockFisico < movimientoProductoStock.Cantidad) { throw new Exception(string.Format("No existe Stock suficiente para el lote {0} del producto {1}.", movimientoProductoStock.LoteSerie, movimientoProducto.CodigoProducto)); } } } movimientoProductoRepository.InsertMovimientosFisico(transaccion.MovimientoProducto, transaction); } #endregion #region Impuestos foreach (var transaccionImpuesto in transaccion.TransaccionImpuesto) { transaccionImpuesto.IdTransaccion = transaccion.IdTransaccion; } transaccionImpuestoRepository.InsertImpuestos(transaccion.TransaccionImpuesto, transaction); #endregion #region Actualizar Orden de Pedido if (transaccion.IdTransaccionReferencia != null) { transaccion.Estado = (int)TipoEstadoDocumento.Aprobado; transaccionRepository.UpdateReferenciaTransaccion(transaccion, transaction); } #endregion transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw new Exception(ex.Message, ex); } } } return(true); }
/// <summary> /// Realiza la copia /// </summary> /// <param name="id_hoja_instruccion_original">Id de HI a copiar</param> /// <param name="descripcion_hoja_instruccion">Descripción de la Hoja de Instrucción</param> /// <param name="id_compania_emisor">Id de Compania del Emisor</param> /// <param name="id_cliente_receptor">Id de Cliente del Receptor</param> /// <param name="id_remitente">Id del Remitente</param> /// <param name="id_destinatario">Id del Destinatario</param> /// <param name="id_terminal_cobro">Id de la Terminal de Cobro</param> /// <param name="id_usuario">Id de Usuario</param> /// <returns></returns> public static RetornoOperacion CopiaHojaInstruccion(int id_hoja_instruccion_original, string descripcion_hoja_instruccion, int id_compania_emisor, int id_cliente_receptor, int id_remitente, int id_destinatario, int id_terminal_cobro, int id_usuario) { //Declarando objeto de resultado RetornoOperacion resultado = new RetornoOperacion(); //Creamos la transacción using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Realizando la inserción del nuevo registro HI resultado = InsertarHojaInstruccion(descripcion_hoja_instruccion, id_compania_emisor, id_cliente_receptor, id_remitente, id_destinatario, id_terminal_cobro, id_usuario); //Conservando Id de registro int id_hoja_instruccion_copia = resultado.IdRegistro; //Si no existe ningún error if (resultado.OperacionExitosa) { //Cargando Documentos de la HI using (DataTable documentos = HojaInstruccionDocumento.ObtieneHojaInstruccionDocumentos(id_hoja_instruccion_original)) { //SI existen registros que copiar if (Validacion.ValidaOrigenDatos(documentos)) { //Para cada uno de los documentos foreach (DataRow d in documentos.Rows) { //Insertando un nuevo documento a la nueva HI resultado = HojaInstruccionDocumento.InsertarHojaInstruccionDocumento(id_hoja_instruccion_copia, Convert.ToInt32(d["IdTipoDocumento"]), Convert.ToBoolean(d["*Evidencia"]), Convert.ToInt32(d["IdTipoEvento"]), Convert.ToInt32(d["IdRecepcionEntrega"]), Convert.ToInt32(d["IdCopiaOriginal"]), Convert.ToBoolean(d["*Sello"]), d["Observacion"].ToString(), id_usuario); //Si existe error if (!resultado.OperacionExitosa) { //Saliendo del ciclo break; } } //Si no existen errores if (resultado.OperacionExitosa) { //Cargando accesorios using (DataTable accesorios = HojaInstruccionAccesorio.ObtieneHojaInstruccionAccesorios(id_hoja_instruccion_original)) { //SI existen registros que copiar if (Validacion.ValidaOrigenDatos(accesorios)) { //Para cada uno de los accesorios foreach (DataRow a in accesorios.Rows) { //Insertando un nuevo documento a la nueva HI resultado = HojaInstruccionAccesorio.InsertarHojaInstruccionAccesorio(id_hoja_instruccion_copia, Convert.ToInt32(a["IdAccesorio"]), Convert.ToInt32(a["IdTipoEvento"]), a["Observacion"].ToString(), id_usuario); //Si existe error if (!resultado.OperacionExitosa) { //Saliendo del ciclo break; } } } } } } } } //Validamos Resultado if (resultado.OperacionExitosa) { //Reasignando Id de HI al resultado resultado = new RetornoOperacion(id_hoja_instruccion_copia); //Validamos Transacción scope.Complete(); } } //Devolviendo resultado return(resultado); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnAccionSustitucion_Click(object sender, EventArgs e) { //Obteniendo Control Button btn = (Button)sender; //Validando Comando switch (btn.CommandName) { case "Aceptar": { //Declarando Objeto de Retorno RetornoOperacion retorno = new RetornoOperacion(); int idUsuario = ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario; /** Validando que Tanto la Factura como el Servicio esten seleccionado **/ //Facturas if (gvFacturacionOtros.SelectedIndex != -1) { //Servicios if (gvServicios.SelectedIndex != -1) { //Inicializando Bloque Transaccional using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Instanciando Servicio, Facturacion Otros, Comprobantes y Facturados using (FacturacionOtros fo = new FacturacionOtros(Convert.ToInt32(gvFacturacionOtros.SelectedDataKey["IdFO"]))) using (Facturado fac_fo = new Facturado(Convert.ToInt32(gvFacturacionOtros.SelectedDataKey["IdFacturado"])), fac_serv = new Facturado(Convert.ToInt32(gvServicios.SelectedDataKey["IdFacturado"]))) using (SAT_CL.Documentacion.Servicio serv = new SAT_CL.Documentacion.Servicio(Convert.ToInt32(gvServicios.SelectedDataKey["IdServicio"]))) using (SAT_CL.FacturacionElectronica33.Comprobante cfdi = new SAT_CL.FacturacionElectronica33.Comprobante(Convert.ToInt32(gvFacturacionOtros.SelectedDataKey["IdCFDI"]))) { //Validando Facturacion de Otros if (fo.habilitar && fac_fo.habilitar) { //Validando Servicio if (serv.habilitar && fac_serv.habilitar) { //Validando Facturacion Electronica if (cfdi.habilitar) { //Validando Clientes if (fo.id_cliente_receptor == serv.id_cliente_receptor) { //Deshabilitando Facturación de Otros retorno = fo.DeshabilitaFacturacionOtros(idUsuario); //Validando Operación if (retorno.OperacionExitosa) { //Deshabilitando Facturado del Servicio retorno = fac_serv.DeshabilitaFactura(idUsuario); //Validando Operación if (retorno.OperacionExitosa) { //Actualizando Facturado (FO) en Facturado (Servicio) retorno = fac_fo.ActualizaServicio(serv.id_servicio, idUsuario); //Validando Operación if (retorno.OperacionExitosa) { //Actualizando Origen del CFDI retorno = cfdi.ActualizaOrigenComprobante(SAT_CL.FacturacionElectronica33.Comprobante.OrigenDatos.Facturado, idUsuario); } } } } else { //Instanciando Excepción retorno = new RetornoOperacion("Los Clientes no coinciden"); } } else { //Instanciando Excepción retorno = new RetornoOperacion("No se puede recuperar los Datos de Facturación Electrónica"); } } else { //Instanciando Excepción retorno = new RetornoOperacion("No se puede recuperar los Datos del Servicio"); } } else { //Instanciando Excepción retorno = new RetornoOperacion("No se puede recuperar los Datos de la Facturación de Otros"); } } //Validando Operación Final if (retorno.OperacionExitosa) { //Completando Operaciones scope.Complete(); } } } else { //Instanciando Excepción retorno = new RetornoOperacion("Debe seleccionar un Servicio"); } } else { //Instanciando Excepción retorno = new RetornoOperacion("Debe seleccionar una Factura"); } //Validando operación if (retorno.OperacionExitosa) { //Ocultando Ventana Modal alternaVentana(btn, "Sustitucion"); //Recargando Busquedas buscaFacturacion(); buscaServicios(); //Inicializando Indices Controles.InicializaIndices(gvFacturacionOtros); Controles.InicializaIndices(gvServicios); } //Mostrando Mensaje de la Operación ScriptServer.MuestraNotificacion(btn, retorno, ScriptServer.PosicionNotificacion.AbajoDerecha); break; } case "Cancelar": { //Ocultando Ventana Modal alternaVentana(btn, "Sustitucion"); //Inicializando Indices Controles.InicializaIndices(gvFacturacionOtros); Controles.InicializaIndices(gvServicios); break; } } }
public List <Transaccion> FindAll() { var Lista_Transacciones = new List <Transaccion>(); try { using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["BD_Financiamiento"].ToString())) { con.Open(); var query = new SqlCommand("select t.IDTransaccion as CodigoTransaccion,t.NTransaccion,t.MontoTransaccion,t.FechaTransaccion," + "d.IDDivisa as CodigoDivisa,d.NDivisa, m.IDMes as CodigoMes,m.NMes, u.IDUsuario as CodigoUsuario,u.Nombre,u.Apellidos,u.Email,u.Nickname,u.Celular," + "f.IDFrecuencia as CodigoFrecuencia,f.NFrecuencia,f.TDescripcion" + "from Transaccion t, Divisa d, Mes m, Usuario u, Frecuencia f " + "where t.IDDivisa=d.IDDivisa and t.IDMes=m.IDMes and t.IDUsuario=u.IDUsuario and t.IDFrecuencia=f.IDFrecuencia", con);//REVISAR -> q cosa pe using (var dr = query.ExecuteReader()) { while (dr.Read()) { var transaccion = new Transaccion(); var divisa = new Divisa(); var mes = new Mes(); var usuario = new Usuario(); var frecuencia = new Frecuencia(); transaccion.IDTransaccion = Convert.ToInt32(dr["IDTransaccion"]); transaccion.NTransaccion = (dr["NTransaccion"]).ToString(); transaccion.MontoTransaccion = Convert.ToDecimal(dr["MontoTransaccion"]); transaccion.FechaTransaccion = Convert.ToDateTime(dr["FechaTransaccion"]); divisa.IDDivisa = Convert.ToInt32(dr["IDDivisa"]); divisa.NDivisa = (dr["NDivisa"]).ToString(); transaccion.IDDivisa = divisa; mes.IDMes = Convert.ToInt32(dr["IDMes"]); mes.NMes = (dr["NMes"]).ToString(); transaccion.IDMes = mes; usuario.IDUsuario = Convert.ToInt32(dr["IDUsuario"]); usuario.Nombre = (dr["Nombre"]).ToString(); usuario.Apellidos = (dr["Apellidos"]).ToString(); usuario.Email = (dr["Email"]).ToString(); usuario.Nickname = (dr["Nickname"]).ToString(); usuario.Celular = Convert.ToInt32(dr["Celular"]); transaccion.IDUsuario = usuario; frecuencia.IDFrecuencia = Convert.ToInt32(dr["IDFrecuencia"]); frecuencia.NFrecuencia = (dr["NFrecuencia"]).ToString(); frecuencia.TDescripcion = (dr["TDescripcion"]).ToString(); transaccion.IDFrecuencia = frecuencia; Lista_Transacciones.Add(transaccion); } } } } catch (Exception ex) { throw ex; } return(Lista_Transacciones); }
/// <summary> /// Deshabilitamos un concepto /// </summary> /// <param name="id_usuario"></param> /// <returns></returns> public RetornoOperacion DeshabilitaConcepto(int id_usuario) { //Establecemos Objeto Resultado RetornoOperacion resultado = new RetornoOperacion(0); //Creamos la transacción using (System.Transactions.TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Validamos tipo de Concepto no sea Padre if ((TipoConcepto)this._id_tipo_concepto == TipoConcepto.ParteConcepto) { //Realizando actualizacion resultado = editaConcepto(this._id_comprobante, this._id_concepto_padre, this._id_tipo_concepto, this._cantidad, this._id_unidad, this._id_descripcion, this._descripcion_parte, this._numero_identificacion, this._valor_unitario, this._importe_moneda_captura, this._importe_moneda_nacional, id_usuario, false); } else { //Instanciamos Comprobante using (Comprobante objComprobante = new Comprobante(this._id_comprobante)) { //Validamos existencia de descuento if (objComprobante.descuento_moneda_nacional == 0 || objComprobante.descuento_moneda_captura == 0) { //Validamos Existencia de Conceptos Hijos if (Validacion.ValidaOrigenDatos(CargaConceptosPartes(this._id_concepto))) { //Inicialziando párametros object[] parametros = { 4, this._id_concepto, 0, 0, 0, 0, 0, 0, 0, "", 0, 0, 0, 0, false, "", "" }; //Realizando actualización using (DataSet ds = CapaDatos.m_capaDeDatos.EjecutaProcAlmacenadoDataSet(nombre_stored_procedure, parametros)) { //Validamos Origen de Datos if (Validacion.ValidaOrigenDatos(ds)) { //Validando actualziación múltiple resultado = RetornoOperacion.ValidaResultadoOperacionMultiple(ds); } } } //Validamos Deshabilitación hijos if (resultado.OperacionExitosa) { //Deshabilitamos Concepto Padre resultado = editaConcepto(this._id_comprobante, this._id_concepto_padre, this._id_tipo_concepto, this._cantidad, this._id_unidad, this._id_descripcion, this._descripcion_parte, this._numero_identificacion, this._valor_unitario, this._importe_moneda_captura, this._importe_moneda_nacional, id_usuario, false); //Recalcular Impuestos if (resultado.OperacionExitosa) { resultado = Impuesto.RecalcularImpuestos(id_comprobante, id_usuario); //Finalziamos transacción scope.Complete(); } } } else { resultado = new RetornoOperacion("No se puede deshabilitar un concepto, ya que existe un descuento"); } } } } return(resultado); }
protected object Ejecutar(object Sql, TipoRetorno TipoRetorno, Transaccion Transaccion, string CnnStrDB) { /* ESTE ES EL UNICO METODO QUE ACCEDE A LA BASE DE DATOS Y NO DEBE SER PUBLICO PARA QUE NO SEA INVOCADO NI DESDE LA CAPA DE REGLA DE NEGOCIO NI DE LA DE PRESENTACION Sql: 1) un string con una o mas instrucciones SQL. 2) un string array con uno o mas strings que contengan una o mas instrucciones SQL cada uno. TipoRetorno: 1) None: se ejecuta como un comando y no devuelve ningun resultado 2) CantReg: se ejecuta como un comando y devuelve un integer, o un integer array (uno por cada Sql string array), indicando la cantidad registros se vieron afectados. 3) Dv: devuelve un dataview o un dataview array (cada uno con una tabla), segun los datos obtenidos de la DB. 4) ds: devuelve un dataset con una o mas tablas segun los datos obtenidos de la DB. Transaccion: 1) Acepta: en el caso de recibir un Sql string array, activa la transaccion. 2) NoAcepta: no activa la trasaccion 3) Usa: activa la transaccion */ if (CnnStrDB != null && CnnStrDB.Contains("Microsoft.Jet.OLEDB")) { string StrConexion = CnnStrDB; OleDbConnection Conexion = new OleDbConnection(StrConexion); OleDbDataAdapter Adapter = new OleDbDataAdapter(Sql.ToString(), Conexion); OleDbCommandBuilder SQLComandos = new OleDbCommandBuilder(Adapter); switch (TipoRetorno) { case (TipoRetorno.None): case (TipoRetorno.CantReg): Conexion.Open(); Adapter.Fill(ds); cantReg[0] = ds.Tables[0].Rows.Count; Conexion.Close(); break; case (TipoRetorno.DS): case (TipoRetorno.DV): case (TipoRetorno.TB): Conexion.Open(); ds = new DataSet(); Adapter.Fill(ds); Conexion.Close(); switch (TipoRetorno) { case (TipoRetorno.DV): if (ds.Tables.Count > 0) { dv = new DataView[ds.Tables.Count]; for (i = 0; i < ds.Tables.Count; i++) { dv[i] = ds.Tables[i].DefaultView; } } break; case (TipoRetorno.TB): if (ds.Tables.Count > 0) { tb = new DataTable[ds.Tables.Count]; for (i = 0; i < ds.Tables.Count; i++) { tb[i] = ds.Tables[i]; } } break; default: break; } break; } switch(TipoRetorno) { case TipoRetorno.None: return new System.Object(); case TipoRetorno.CantReg: return cantReg; case TipoRetorno.DS: return ds; case TipoRetorno.TB: switch(ds.Tables.Count) { case 0: return new DataTable(); case 1: return tb[0]; default: return tb; } default: //case TipoRetorno.Dv: switch(ds.Tables.Count) { case 0: return new DataView(); case 1: return dv[0]; default: return dv; } } } else //SQL Server { switch(Sql.GetType().FullName.ToString()) { case "System.String[]": sqls = (string[])Sql; break; default: //case "System.String": sqls = new String[] { (string)Sql }; break; } cantReg = new int[sqls.Length]; try { sqlConexion = new SqlConnection(CnnStrDB); sqlConexion.Open(); switch(Transaccion) { case (Transaccion.Acepta): usaTransaccion = (sqls.Length > 1); break; case (Transaccion.NoAcepta): usaTransaccion = false; break; default: //(Transaccion.Usa): usaTransaccion = true; break; } if(usaTransaccion) sqlTransaccion = sqlConexion.BeginTransaction(); switch(TipoRetorno) { case (TipoRetorno.None): case (TipoRetorno.CantReg): sqlCommand = new SqlCommand(); sqlCommand.Connection = sqlConexion; sqlCommand.CommandTimeout = 90; if(usaTransaccion) { sqlCommand.Transaction = sqlTransaccion; } for(i = 0; i < sqls.Length; i++) { sqlCommand.CommandText = sqls[i]; System.Diagnostics.Debug.WriteLine(sqlCommand.CommandText); cantReg[i] = sqlCommand.ExecuteNonQuery(); } break; case (TipoRetorno.DS): case (TipoRetorno.DV): case (TipoRetorno.TB): ds = new DataSet(); for(i = 0; i < sqls.Length; i++) { System.Diagnostics.Debug.WriteLine(sqls[i]); sqlAdapter = new SqlDataAdapter(sqls[i], sqlConexion); if(usaTransaccion) { sqlAdapter.SelectCommand.Transaction = sqlTransaccion; } sqlAdapter.SelectCommand.CommandTimeout = 90; if(i == 0) { sqlAdapter.Fill(ds); } else { ds.Tables.Add(); sqlAdapter.Fill(ds.Tables[ds.Tables.Count - 1]); } } switch(TipoRetorno) { case (TipoRetorno.DV): if(ds.Tables.Count > 0) { dv = new DataView[ds.Tables.Count]; for(i = 0; i < ds.Tables.Count; i++) { dv[i] = ds.Tables[i].DefaultView; } } break; case (TipoRetorno.TB): if(ds.Tables.Count > 0) { tb = new DataTable[ds.Tables.Count]; for(i = 0; i < ds.Tables.Count; i++) { tb[i] = ds.Tables[i]; } } break; default: break; } break; } if(usaTransaccion) { sqlTransaccion.Commit(); } sqlConexion.Close(); switch(TipoRetorno) { case TipoRetorno.None: return new System.Object(); case TipoRetorno.CantReg: if(sqls.Length > 1) { return cantReg; } else { return cantReg[0]; } case TipoRetorno.DS: return ds; case TipoRetorno.TB: switch(ds.Tables.Count) { case 0: return new DataTable(); case 1: return tb[0]; default: return tb; } default: //case TipoRetorno.Dv: switch(ds.Tables.Count) { case 0: return new DataView(); case 1: return dv[0]; default: return dv; } } } catch(System.Data.SqlClient.SqlException ex1) { if(((System.Data.SqlClient.SqlException)(ex1)).Procedure == "ConnectionOpen (Connect()).") { throw new CondecoEX.db.Conexion(ex1); } else { if(usaTransaccion) { try { sqlTransaccion.Rollback(); throw new CondecoEX.db.EjecucionConRollback(ex1); } catch (CondecoEX.db.EjecucionConRollback) { throw new CondecoEX.db.EjecucionConRollback(ex1); } catch { throw new CondecoEX.db.Rollback(ex1); } } else { throw new CondecoEX.db.Ejecucion(ex1); } } } } }
/// <summary> /// Método encargado de Importar el Archvio XML /// </summary> /// <returns></returns> private RetornoOperacion guardaXML() { RetornoOperacion resultado = new RetornoOperacion(); int idFacturadoProveedor = 0; if (Session["XML"] != null) { XDocument factura = (XDocument)Session["XML"]; XNamespace nsCFDI = factura.Root.GetNamespaceOfPrefix("cfdi"); XNamespace nsTFD = CapaNegocio.m_capaNegocio.RegresaVariableCatalogoBD("Namespace TimbreFiscalDigital"); switch ((Pagina.Estatus)Session["estatus"]) { default: { using (TransactionScope transaccionFactura = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Validando versión switch (factura.Root.Attribute("version") != null ? factura.Root.Attribute("version").Value : factura.Root.Attribute("Version").Value) { case "3.2": { ScriptServer.MuestraNotificacion(this.Page, "La versión 3.2 ya no es soportada", ScriptServer.NaturalezaNotificacion.Alerta, ScriptServer.PosicionNotificacion.AbajoDerecha); break; } case "3.3": { //Insertando CFDI 3.3 usando el tipo de servicio de la compañia using (SAT_CL.Global.CompaniaEmisorReceptor compania = new SAT_CL.Global.CompaniaEmisorReceptor(((UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor)) resultado = FacturadoProveedor.ImportaComprobanteVersion33(compania.id_compania_emisor_receptor, compania.id_tipo_servicio, Session["XMLFileName"].ToString(), factura, ((Usuario)Session["usuario"]).id_usuario); break; } } if (resultado.OperacionExitosa) { transaccionFactura.Complete(); } } break; } } } else { //Instanciando Excepción resultado = new RetornoOperacion("Cargue su archivo XML para importar"); } //Validando que exista if (resultado.OperacionExitosa) { //Reasignando Id de registro resultado = new RetornoOperacion(idFacturadoProveedor); //Establecemos el id del registro Session["id_registro"] = resultado.IdRegistro; //Establecemos el estatus de la forma Session["estatus"] = Pagina.Estatus.Lectura; //Eliminando Contenido en Sessión del XML Session["XML"] = Session["XMLFileName"] = null; //Inicializamos la forma //inicializaPagina(); //Actualizamos la etiqueta de errores ScriptServer.MuestraNotificacion(this, resultado.Mensaje, ScriptServer.NaturalezaNotificacion.Exito, ScriptServer.PosicionNotificacion.AbajoDerecha); } //Devolviendo resultado Obtenido return(resultado); }
public ResultadoEntidad GuardarProducto(AlmacenEntidad AlmacenObjetoEntidad) { string CadenaConexion = string.Empty; ResultadoEntidad Resultado = new ResultadoEntidad(); ResultadoEntidad ResultadoValidacion = new ResultadoEntidad(); AlmacenAcceso AlmacenAcceso = new AlmacenAcceso(); SqlTransaction Transaccion; SqlConnection Conexion = new SqlConnection(SeleccionarConexion(ConstantePrograma.DefensoriaDB_Almacen)); CadenaConexion = SeleccionarConexion(ConstantePrograma.DefensoriaDB_Almacen); // Si es una actualización se lleva a cabo sin transacción if (AlmacenObjetoEntidad.ProductoId != "") { Resultado = AlmacenAcceso.ActualizarProducto(AlmacenObjetoEntidad, CadenaConexion); return(Resultado); } if (BuscarProductoDuplicada(AlmacenObjetoEntidad)) { Resultado.ErrorId = (int)ConstantePrograma.Producto.ProductoTieneRegistroDuplicado; Resultado.DescripcionError = TextoError.ProductoConNombreDuplicado; return(Resultado); } // Si es un producto nuevo hay que manejar transacción Conexion.Open(); Transaccion = Conexion.BeginTransaction(); try { AlmacenObjetoEntidad.ProductoId = Guid.NewGuid().ToString(); // Primero se guarda la información del producto Resultado = AlmacenAcceso.InsertarProducto(Conexion, Transaccion, AlmacenObjetoEntidad); if (Resultado.ErrorId != (int)ConstantePrograma.Producto.ProductoGuardadoCorrectamente) { Transaccion.Rollback(); Conexion.Close(); return(Resultado); } // Luego la información de la existencia AlmacenAcceso.InsertarProductoExistencia(Conexion, Transaccion, AlmacenObjetoEntidad); if (AlmacenAcceso.ErrorId == 0) { Transaccion.Commit(); } else { Transaccion.Rollback(); Resultado.ErrorId = AlmacenAcceso.ErrorId; Resultado.DescripcionError = AlmacenAcceso.DescripcionError; } Conexion.Close(); return(Resultado); } catch (Exception Exception) { Resultado.ErrorId = (int)TextoError.Error.Generico; Resultado.DescripcionError = Exception.Message; if (Conexion.State == ConnectionState.Open) { Transaccion.Rollback(); Conexion.Close(); } return(Resultado); } }
public void ConfirmarRecepcionYConcertarOrden(Transaccion transaccion, NovedadFIXDTO concertacion) { ConfirmarRecepcionOrden(transaccion, concertacion); Concertar(transaccion, concertacion); }
protected void btnEliminar_Click(object sender, EventArgs e) { Transaccion.EliminarDeudor(this.txtRut.Text.Replace(".", "")); this.Page.RegisterClientScriptBlock("Mensaje", "<script>alert('Deudor eliminado correctamente');</script>"); this.Cancela(); }
private void ProcesarExecutionReportParaEnvio(ExecutionReport reporteEjecucion, Transaccion transaccion, char executionType, DateTime fecha) { switch (executionType) { case ExecType.NEW: var idTransaccionContraparte = ObtenerIdTransaccionContraparte(reporteEjecucion); var idFix = ObtenerIdFix(reporteEjecucion); _interfacePresenter.MostrarMensaje($"ORDER NEW. ID Contraparte: {idTransaccionContraparte}"); ConcertadorOrdenes.ConfirmarRecepcionOrden(transaccion, new NovedadFIXDTO { IdTransaccionContraparte = idTransaccionContraparte, IdFix = idFix }); break; case ExecType.CANCELED: _interfacePresenter.MostrarMensaje( $"CANCELACIÓN PROCESADA PARA ORDEN {transaccion.ID}, ID Contraparte: {transaccion.IDFix}"); ConfirmarCancelacionOrden(transaccion, fecha); break; case ExecType.REJECTED: break; case ExecType.EXPIRED: _interfacePresenter.MostrarMensaje($"OFERTA EXPIRADA PARA ORDEN {transaccion.ID}, ID Contraparte: {transaccion.IDFix}"); ConfirmarCancelacionOrden(transaccion, fecha); break; case ExecType.TRADE: var precio = reporteEjecucion.LastPx.getValue(); var cantidad = reporteEjecucion.LastQty.getValue(); var partida = ObtenerPartida(reporteEjecucion); _interfacePresenter.MostrarMensaje($"NUEVA CONCERTACIÓN (partida {partida}."); _interfacePresenter.MostrarMensaje($"TRADE: Transacción nº{transaccion.ID}, {cantidad} partes a ${precio}"); ConcertadorOrdenes.ConfirmarRecepcionYConcertarOrden(transaccion, new NovedadFIXDTO { FechaConcertacion = fecha, Cantidad = cantidad, Precio = precio, Partida = partida, IdTransaccionContraparte = ObtenerIdTransaccionContraparte(reporteEjecucion), IdFix = ObtenerIdFix(reporteEjecucion) }); break; case ExecType.TRADE_CANCEL: var partesRevertidas = reporteEjecucion.LeavesQty.getValue(); var simbolo = reporteEjecucion.Symbol.getValue(); var mensaje = $"REVERSIÓN: Transacción nº{transaccion.ID}, {partesRevertidas} partes."; _interfacePresenter.MostrarMensaje(mensaje); break; case ExecType.ORDER_STATUS: ProcesarEstadoOrden(reporteEjecucion); break; case ExecType.RESTATED: var cantidadRestated = reporteEjecucion.LastQty.getValue(); var simboloRestated = reporteEjecucion.Symbol.getValue(); break; default: throw new NotImplementedException($"Tipo de ejecución {executionType} no soportado."); } }
public bool Actualizar(Transaccion transaccion) { using (var conection = Database.CreateConnection()) { conection.Open(); using (var transaction = conection.BeginTransaction()) { try { #region Obtener Movimiento de Productos var movimientosPorModificar = movimientoProductoRepository.GetByTransaccion(transaccion.IdTransaccion, transaction); #endregion #region Revertir ProductoStock foreach (var movimientoProducto in movimientosPorModificar) { foreach (var movimientoProductoStock in movimientoProducto.MovimientoProductoStock) { movimientoProductoStock.SignoStock = -1 * movimientoProducto.SignoStock; movimientoProductoStock.IdPresentacion = movimientoProducto.IdPresentacion; movimientoProductoStock.UsuarioCreacion = movimientoProducto.UsuarioCreacion; movimientoProductoStock.TipoClasificacion = movimientoProducto.TipoClasificacion; } } productoStockRepository.UpdateProductoStock(movimientosPorModificar, transaction); #endregion #region Eliminar MovimientoProducto movimientoProductoRepository.DeleteByTransaccion(transaccion.IdTransaccion, transaction); #endregion #region Actualizar Transaccion transaccionRepository.UpdateTransaccion(transaccion, transaction); #endregion #region Movimiento Producto var movimientos = transaccion.MovimientoProducto.ToList(); foreach (var movimientoProducto in movimientos) { movimientoProducto.IdTransaccion = transaccion.IdTransaccion; } movimientoProductoRepository.InsertMovimientos(movimientos, transaction); #endregion transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw new Exception(ex.Message, ex); } } } return(true); }
/// <summary> /// Deshabilita Detalle Impuesto ligado a una transacción /// </summary> /// <param name="id_usuario"></param> /// <returns></returns> public RetornoOperacion DeshabiltaDetalleImpuesto(int id_usuario) { //Declaramos Variable Retorno RetornoOperacion resultado = new RetornoOperacion(0); //Id de registro actualizado int id_detalle_impuesto = 0; //Creamos la transacción using (System.Transactions.TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Cargamos los Conceptos Detalles Impuesto ligado a un detalle de Impuesto using (DataTable mit = ConceptoDetalleImpuesto.RecuperaConceptosDetalles(this._id_detalle_impuesto)) { //Validamos Origen de Datos if (Validacion.ValidaOrigenDatos(mit)) { //RRecorremos cada uno de los conceptos detalle Impuesto foreach (DataRow r in mit.Rows) { //Validamos Resultado if (resultado.OperacionExitosa) { //Instanciamos Concepto Detalle Impuesto using (ConceptoDetalleImpuesto objConceptoDetalleImpuesto = new ConceptoDetalleImpuesto(r.Field <int>("Id"))) { //Deshabilitamos Registro resultado = objConceptoDetalleImpuesto.DeshabilitaConceptoDetalleImpuesto(id_usuario); } } else { break; } } } } //Si el resultado es exitosos if (resultado.OperacionExitosa) { //Realizando actualizacion resultado = editaDetalleImpuesto(this._id_impuesto, this._id_tipo_detalle, this._id_impuesto_retenido, this._id_impuesto_trasladado, this._tasa, this._importe_moneda_captura, this._importe_moneda_nacional, id_usuario, false); //Si se Deshabilito el Detalle de Impuesto if (resultado.OperacionExitosa) { //Asignando Id de resultado exitoso id_detalle_impuesto = resultado.IdRegistro; //Actualizamos Total Impuesto using (Impuesto objImpuesto = new Impuesto(this._id_impuesto)) { resultado = objImpuesto.ActualizaTotalImpuesto(id_usuario); //Si se actualizo Impuesto if (resultado.OperacionExitosa) { //Actualizo comprobante using (Comprobante objcomprobante = new Comprobante(objImpuesto.id_comprobante)) { resultado = objcomprobante.ActualizaImpuestosComprobante(objImpuesto.id_impuesto, id_usuario); } } } } } //Si no hay errores if (resultado.OperacionExitosa) //Reasignando resultado general { resultado = new RetornoOperacion(id_detalle_impuesto); //Finalizamos transacción scope.Complete(); } } return(resultado); }
private void button1_Click(object sender, EventArgs e) { if (this.camposVacios()) { MessageBox.Show("Se han encontrado campos vacios. Por favor completelos e intentelo nuevamente", "Campos vacios", MessageBoxButtons.OK, MessageBoxIcon.Error); } else if (this.identRepetido()) { MessageBox.Show("Ya existe un crucero con ese identificador", "Identificador existente", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { // Extraigo fabricante Filtro filtroNombre = FiltroFactory.Exacto("nombre", comboBox2.Text); var returnFabricante = conexion.ConsultaPlana(Tabla.Fabricante, new List <string> { "id" }, new List <Filtro> { filtroNombre }); var id = returnFabricante["id"][0]; Transaccion tr = conexion.IniciarTransaccion(); Dictionary <string, object> crucero = new Dictionary <string, object>(); crucero.Add("modelo", textBox1.Text); crucero.Add("fabricante_id", id); crucero.Add("identificador", textBox2.Text); crucero.Add("baja_fuera_de_servicio", false); crucero.Add("baja_vida_util", false); crucero.Add("fecha_de_alta", ConfigurationHelper.FechaActual); int pkCrucero = tr.Insertar(Tabla.Crucero, crucero); Dictionary <string, object> piso = new Dictionary <string, object>(); for (int i = 0; i < dataGridView1.Rows.Count - 1; i++) { var row = dataGridView1.Rows[i]; piso["Nro_piso"] = row.Cells["nroPiso"].Value; piso["id_crucero"] = pkCrucero; piso["id_tipo"] = row.Cells["tipoPiso"].Value.ToString(); var tipo = row.Cells["tipoPiso"].Value.ToString(); Filtro filtroTipo = FiltroFactory.Exacto("tipo", tipo); var returnAsqueroso = conexion.ConsultaPlana(Tabla.Tipo, new List <string>() { "ID" }, new List <Filtro> { filtroTipo }); piso["id_tipo"] = returnAsqueroso["ID"][0]; piso["cant_cabina"] = row.Cells["cantCabinasPiso"].Value; tr.Insertar(Tabla.Piso, piso); } tr.Commit(); MessageBox.Show("Crucero dado de alta exitosamente. Felicidades :D", "Crucero creado", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult = DialogResult.OK; } }
protected void btnGuardar_Click(object sender, EventArgs e) { try { string domicilioSeleccionado = this.domicilio.SelectedValue; if ("No se ubican nuevos bienes".Equals(domicilioSeleccionado)) { domicilioSeleccionado = "0"; } if (Consulta.BuscaBienRaizDuplicado(domicilioSeleccionado, this.txtRut.Text) == null) { //Jbaez:subir documento if (this.filesubir.PostedFile.ContentLength > 0) { string nomArchivo = ""; string strRutCliente = null; string path = base.Server.MapPath(@"~\DIGITALIZADOS"); nomArchivo = this.filesubir.PostedFile.FileName;// +Path.GetExtension(this.filesubir.PostedFile.FileName); string str4 = UTIL.SubirArchivo(this.filesubir, path, nomArchivo); if (!(str4 == "OK")) { this.Page.RegisterClientScriptBlock("Mensaje", "<script>alert('" + str4.ToString() + "');</script>"); } else if (!string.IsNullOrEmpty(nomArchivo)) { DataTable tabla = new DataTable(); tabla = Consulta.InformeBienesRaicesDeudor(null, txtRut.Text); if (tabla.Rows.Count > 0) { strRutCliente = tabla.Rows[0]["RutCliente"].ToString(); } else { strRutCliente = "ALCSA"; } Transaccion.InsertaDocBienesDigitalizado(txtRut.Text, nomArchivo, txtFojaInsc.Text, strRutCliente, "64"); this.Page.RegisterClientScriptBlock("Mensaje", "<script>alert('Documento digitalizado exitosamente');</script>"); this.filesubir.Focus(); } } if (!"0".Equals(domicilioSeleccionado)) { Transaccion.InsertaBienRaiz(this.txtRut.Text.Replace(".", ""), this.txtFojaInsc.Text, this.txtNroInsc.Text, this.txtAnioInsc.Text, this.txtFoja1hip.Text, this.txtNro1hip.Text, this.txtanio1hip.Text, this.txtFoj2hip.Text, this.txtNro2hip.Text, this.txtAnio2hip.Text, this.txtfojaproh1.Text, this.txtNroProh1.Text, this.txtAnioProh1.Text, this.txtFojaProh2.Text, this.txtNroProh2.Text, this.txtAnioProh2.Text, this.regioncbr.SelectedValue, this.comunacbr.SelectedValue, this.conservador.SelectedValue, this.regionnotaria.SelectedValue, this.comunanotaria.SelectedValue, this.notaria.SelectedValue, this.txtRolAvaluo.Text, this.txtFechaEscritura.Text, this.vigencia.SelectedValue, this.fuente.SelectedValue, this.Limitaciones.SelectedValue, this.domicilio.SelectedValue, this.tipofojainsc.SelectedValue, this.tipofojahip1.SelectedValue, this.tipofojahip2.SelectedValue, this.tipofojaproh1.SelectedValue, this.tipofojaproh2.SelectedValue); } Transaccion.ActualizarDeudorDicomBienRaiz( this.txtRut.Text.Replace(".", ""), Cbx_SinBienes.Checked ? "1" : "0", ALCSA.FWK.Web.Control.ExtraerValorComoDateTime(txt_FechaActual).ToString("yyyyMMdd")); this.Page.RegisterClientScriptBlock("Mensaje", "<script>alert('Datos guardados correctamente');</script>"); this.Deshabilitar(); this.Cancela(); this.CargaRegiComunaDefecto(); } else { this.Page.RegisterClientScriptBlock("Mensaje", "<script>alert('Bien Raiz ya se encuentra registrado');</script>"); this.txtFojaInsc.Focus(); } } catch (Exception) { this.Page.RegisterClientScriptBlock("Mensaje", "<script>alert('Revise bien la informaci\x00f3n e intentelo de nuevo');</script>"); } }
/// <summary> /// Método encargado de Editar las Devoluciones Faltantes /// </summary> /// <param name="id_compania_emisora">Compania Emisora</param> /// <param name="consecutivo_compania">Número Consecutivo por Compania</param> /// <param name="id_servicio">Servicio</param> /// <param name="id_movimiento">Movimiento</param> /// <param name="id_parada">Parada</param> /// <param name="tipo">Tipo</param> /// <param name="estatus">Estatus</param> /// <param name="fecha_captura">Fecha de Captura</param> /// <param name="fecha_devolucion_faltante">Fecha de Devolución</param> /// <param name="observacion">Observación</param> /// <param name="id_usuario">Usuario que Actualiza el Registro</param> /// <returns></returns> public RetornoOperacion EditaDevolucionesFaltantes(int id_compania_emisora, int consecutivo_compania, int id_servicio, int id_movimiento, int id_parada, TipoDevolucion tipo, EstatusDevolucion estatus, DateTime fecha_captura, DateTime fecha_devolucion_faltante, string observacion, int id_usuario) { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Declarando Variable Auxiliar int idDevolucion = 0; //Inicializando Bloque Transaccional using (TransactionScope trans = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Invocando Método de Actualización result = this.actualizaRegistrosBD(id_compania_emisora, consecutivo_compania, id_servicio, id_movimiento, id_parada, (byte)tipo, (byte)estatus, fecha_captura, fecha_devolucion_faltante, observacion, id_usuario, this._habilitar); //Validando Operación Exitosa if (result.OperacionExitosa) { //Asignando Devolución idDevolucion = result.IdRegistro; //Validando Estatus if ((EstatusDevolucion)this._id_estatus != estatus) { //Obteniendo Detalles using (DataTable dtDetalles = DevolucionFaltanteDetalle.ObtieneDetallesDevolucion(this._id_devolucion_faltante)) { //Validando que Existan Detalles if (Validacion.ValidaOrigenDatos(dtDetalles)) { //Recorriendo Detalles foreach (DataRow dr in dtDetalles.Rows) { //Instanciando Detalles using (DevolucionFaltanteDetalle detalle = new DevolucionFaltanteDetalle(Convert.ToInt32(dr["Id"]))) { //Validando que exista el Detalle if (detalle.habilitar) { //Actualizando Estatus del Detalle result = detalle.ActualizaEstatusDevolucionFaltanteDetalle((DevolucionFaltanteDetalle.EstatusDevolucionDetalle)((byte)estatus), id_usuario); //Validando si hubo Error if (!result.OperacionExitosa) { //Terminando Ciclo break; } } } } } } } } //Validando Operación Exitosa if (result.OperacionExitosa) { //Instanciando Devolución result = new RetornoOperacion(idDevolucion); //Completando Transacción trans.Complete(); } } //Devolviendo Resultado Obtenido return(result); }
/// <summary> /// Método encargado de eralizar las ediciones de las evidencias de acuerdo a la deshabilitacion de parada en despacho /// </summary> /// <param name="id_servicio"></param> /// <param name="id_segmento_anterior"></param> /// <param name="id_segmento_posterior"></param> /// <param name="id_usuario"></param> /// <returns></returns> public static RetornoOperacion SegmentoControlEvidenciaDeshabilitaParada(int id_servicio, int id_segmento_anterior, int id_segmento_posterior, int id_usuario) { //Declaramos objeto Resultado RetornoOperacion res = new RetornoOperacion(0); //declaramos avriables para almacenar la HI int hi_segmento_segmento_anterior = 0; //Creamos la transacción using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Instanciamos Servicio Control Evidencia using (ServicioControlEvidencia objServicioCE = new ServicioControlEvidencia(ServicioControlEvidencia.TipoConsulta.IdServicio, id_servicio)) { //Validamos que exista el Servicio Control Evidencia if (objServicioCE.id_servicio_control_evidencia > 0) { //En caso de ser segmento en medio if (id_segmento_posterior != 0 && id_segmento_anterior != 0) { //Establcemos valor hi_segmento_segmento_anterior = res.IdRegistro; //Obtenemos HI correspondiente al Segmento anterior res = Despacho.SegmentoCarga.ObteniendoHISegmento(id_segmento_anterior); //Validamos que exista HI para el segmento anterior if (res.OperacionExitosa) { //Establecemos valor hi_segmento_segmento_anterior = res.IdRegistro; //Instanciamos Control Evidencia Segmento using (SegmentoControlEvidencia objSegmentoControlEvidencia = new SegmentoControlEvidencia(TipoConsulta.IdSegmento, id_segmento_anterior)) { //Carga Control Evidencia Documentos ligado al Segmento Control Evidencia Documento res = ControlEvidenciaDocumento.CancelaControlEvidenciaDocumento(objSegmentoControlEvidencia.id_segmento_control_evidencia, objSegmentoControlEvidencia, id_usuario); //Insertamos Segmento Control Evidencia para el posterior Segmento //Validamos Resultado if (res.OperacionExitosa) { //Instanciamos Control Evidencia Segmento Posterior using (SegmentoControlEvidencia objSegmentoControlEvidenciaP = new SegmentoControlEvidencia(TipoConsulta.IdSegmento, id_segmento_posterior)) { //Carga Control Evidencia Documentos ligado al Segmento Control Evidencia Documento res = ControlEvidenciaDocumento.CancelaControlEvidenciaDocumento(objSegmentoControlEvidenciaP.id_segmento_control_evidencia, objSegmentoControlEvidenciaP, id_usuario); //Validamos resulado if (res.OperacionExitosa) { //Insertamos Segmento Control Evidencia res = SegmentoControlEvidencia.InsertaSegmentoControlEvidencia(objServicioCE.id_servicio_control_evidencia, id_segmento_anterior, hi_segmento_segmento_anterior, id_usuario); } } } } } } //En caso de Ser Segmento Al final else if (id_segmento_posterior == 0) { if (objServicioCE.id_servicio_control_evidencia > 0) { //Instanciamos Control Evidencia Segmento using (SegmentoControlEvidencia objSegmentoControlEvidencia = new SegmentoControlEvidencia(TipoConsulta.IdSegmento, id_segmento_anterior)) { //Carga Control Evidencia Documentos ligado al Segmento Control Evidencia Documento res = ControlEvidenciaDocumento.CancelaControlEvidenciaDocumento(objSegmentoControlEvidencia.id_segmento_control_evidencia, objSegmentoControlEvidencia, id_usuario); } } } //Validamos Resultado if (res.OperacionExitosa) { //anteriorizamos Estatus del Servicio Control Evidencia res = objServicioCE.ActualizaEstatusGeneralServicioControlEvidencia(id_usuario); } } } //Validamos Resultado if (res.OperacionExitosa) { //Finalizamos Transacción scope.Complete(); } } //Devolvemos resultado return(res); }
protected object Ejecutar(object Sql, TipoRetorno TipoRetorno, Transaccion Transaccion, string CnnStrDB, int CommandTimeOut) { commandTimeOut=CommandTimeOut; return Ejecutar(Sql, TipoRetorno, Transaccion, CnnStrDB); }
protected void btnEliminar_Click(object sender, EventArgs e) { Transaccion.EliminarTelefono(this.CodCliente.Value); this.Page.RegisterClientScriptBlock("Mensaje", "<script>alert('Tel\x00e9fono eliminado correctamente');</script>"); this.Cancela(); }
protected object Ejecutar(object Sql, TipoRetorno TipoRetorno, Transaccion Transaccion, string CnnStrDB) { /* ESTE ES EL UNICO METODO QUE ACCEDE A LA BASE DE DATOS Y NO DEBE SER PUBLICO PARA QUE NO SEA INVOCADO NI DESDE LA CAPA DE REGLA DE NEGOCIO NI DE LA DE PRESENTACION Sql: 1) un string con una o mas instrucciones SQL. 2) un string array con uno o mas strings que contengan una o mas instrucciones SQL cada uno. TipoRetorno: 1) None: se ejecuta como un comando y no devuelve ningun resultado 2) CantReg: se ejecuta como un comando y devuelve un integer, o un integer array (uno por cada Sql string array), indicando la cantidad registros se vieron afectados. 3) DV: devuelve un dataview o un dataview array (cada uno con una tabla), segun los datos obtenidos de la DB. 4) DS: devuelve un dataset con una o mas tablas segun los datos obtenidos de la DB. Transaccion: 1) Acepta: en el caso de recibir un Sql string array, activa la transaccion. 2) NoAcepta: no activa la trasaccion 3) Usa: activa la transaccion */ TesteoConexion(CnnStrDB); switch (Sql.GetType().FullName.ToString()) { case "System.String[]": Sqls = (string[]) Sql; break; default: //case "System.String": Sqls = new String[] {(string) Sql}; break; } CantReg = new int [ Sqls.Length ]; try { if (m_MySqlConnection != null) { m_MySqlConnection.Open(); } else { m_SqlConexion = new SqlConnection(CnnStrDB); m_SqlConexion.Open(); } switch (Transaccion) { case (Transaccion.Acepta): UsaTransaccion = (Sqls.Length > 1); break; case (Transaccion.NoAcepta): UsaTransaccion = false; break; default: //(Transaccion.Usa): UsaTransaccion = true; break; } if (UsaTransaccion) m_SqlTransaccion = m_SqlConexion.BeginTransaction(); switch (TipoRetorno) { case (TipoRetorno.None): case (TipoRetorno.CantReg): if (m_MySqlConnection != null) { m_MySqlCommand = new SqlCommand(); m_MySqlCommand.Connection = m_MySqlConnection; m_MySqlCommand.CommandTimeout = commandTimeOut; if (UsaTransaccion) { m_MySqlCommand.Transaction = m_MySqlTransaction; } for (i = 0; i < Sqls.Length; i++) { m_MySqlCommand.CommandText = Sqls[i]; System.Diagnostics.Debug.WriteLine(m_MySqlCommand.CommandText); CantReg[i] = m_MySqlCommand.ExecuteNonQuery(); } } else { m_SqlCommand = new SqlCommand(); m_SqlCommand.Connection = m_SqlConexion; m_SqlCommand.CommandTimeout = commandTimeOut; if (UsaTransaccion) { m_SqlCommand.Transaction = m_SqlTransaccion; } for (i = 0; i < Sqls.Length; i++) { m_SqlCommand.CommandText = Sqls[i]; System.Diagnostics.Debug.WriteLine(m_SqlCommand.CommandText); CantReg[i] = m_SqlCommand.ExecuteNonQuery(); } } break; case (TipoRetorno.DS): case (TipoRetorno.DV): case (TipoRetorno.TB): DS = new DataSet(); for (i = 0; i<Sqls.Length; i++) { System.Diagnostics.Debug.WriteLine(Sqls[i]); if (m_MySqlConnection != null) { m_MySqlDataAdapter = new SqlDataAdapter(Sqls[i], m_MySqlConnection); if (UsaTransaccion) { m_MySqlDataAdapter.SelectCommand.Transaction = m_MySqlTransaction; } m_MySqlDataAdapter.SelectCommand.CommandTimeout = commandTimeOut; if (i == 0) { m_MySqlDataAdapter.Fill(DS); } else { DS.Tables.Add(); m_MySqlDataAdapter.Fill(DS.Tables[DS.Tables.Count - 1]); } } else { m_SqlAdapter = new SqlDataAdapter(Sqls[i], m_SqlConexion); if (UsaTransaccion) { m_SqlAdapter.SelectCommand.Transaction = m_SqlTransaccion; } m_SqlAdapter.SelectCommand.CommandTimeout = commandTimeOut; if (i == 0) { m_SqlAdapter.Fill(DS); } else { DS.Tables.Add(); m_SqlAdapter.Fill(DS.Tables[DS.Tables.Count - 1]); } } } switch (TipoRetorno) { case (TipoRetorno.DV): if (DS.Tables.Count > 0) { DV = new DataView[DS.Tables.Count]; for (i = 0; i<DS.Tables.Count; i++) { DV[i] = DS.Tables[i].DefaultView; } } break; case (TipoRetorno.TB): if (DS.Tables.Count > 0) { TB = new DataTable[DS.Tables.Count]; for (i = 0; i<DS.Tables.Count; i++) { TB[i] = DS.Tables[i]; } } break; default: break; } break; }//end switch if (UsaTransaccion) {m_SqlTransaccion.Commit();} if (m_MySqlConnection != null) { m_MySqlConnection.Close(); } else { m_SqlConexion.Close(); } switch (TipoRetorno) { case TipoRetorno.None: return new System.Object(); case TipoRetorno.CantReg: if (Sqls.Length > 1) { return CantReg; } else { return CantReg[0]; } case TipoRetorno.DS: return DS; case TipoRetorno.TB: switch (DS.Tables.Count) { case 0: return new DataTable(); case 1: return TB[0]; default: return TB; } default: //case TipoRetorno.DV: switch (DS.Tables.Count) { case 0: return new DataView(); case 1: return DV[0]; default: return DV; } } } catch (System.Data.SqlClient.SqlException ex1) { if (((System.Data.SqlClient.SqlException)(ex1)).Procedure=="ConnectionOpen (Connect()).") { throw new Cedeira.Ex.db.Conexion(ex1); } else { if (UsaTransaccion) { try { m_SqlTransaccion.Rollback(); throw new Cedeira.Ex.db.EjecucionConRollback(ex1); } catch (Cedeira.Ex.db.EjecucionConRollback) { throw new Cedeira.Ex.db.EjecucionConRollback(ex1); } catch { throw new Cedeira.Ex.db.Rollback(ex1); } } else { throw new Cedeira.Ex.db.Ejecucion(ex1) ; } } } }
/// <summary> /// Busca los viajes en la bbdd /// </summary> /// <param name="baseDeDatos">Base de datos usada</param> /// <param name="destino">Destino a buscar</param> /// <param name="dia">Dia de la semana</param> /// <param name="viajes">Esta lista se llenara con los resultados</param> /// <returns>Si es false, hubo un error; si es true, se realizo correctamente</returns> public Boolean buscarLista(BaseDatos baseDeDatos, String destino, DiasSemana dia, Boolean incluirEliminados, out List <Viaje> viajes) { viajes = new List <Viaje>(); int intentos = 5; Transaccion transaccion = null; while (transaccion == null && intentos > 0) { try { transaccion = baseDeDatos.crearTransaccion(); } catch (LimiteCantidadTransaccionesException) { intentos--; } } if (transaccion != null) { bool exito = false; intentos = 5; while (intentos > 0 && !exito) { try { List <Object> condicion = new List <object>(); condicion.Add(dia); condicion.Add(destino); baseDeDatos.bloquear(transaccion, new CondicionViaje(0, dia, destino), BaseDeDatos.ControlConcurrencia.TipoBloqueo.BLOQUEO_LECTURA); List <Tupla> lista = baseDeDatos.leerLista(new TablaViaje(), new Archivo.ComparadorTuplas(delegate(Tupla tupla) { Viaje elemento = (Viaje)tupla; return(elemento.Destino == destino && elemento.Dia == dia && (!elemento.Eliminado || incluirEliminados)); } )); baseDeDatos.commit(transaccion); viajes.AddRange( lista.ConvertAll <Viaje>(new Converter <Tupla, Viaje> (delegate(Tupla t) { return((Viaje)t); }) ) ); return(true); } catch (AbortarEsperarMorirException) { intentos--; if (intentos > 0) { baseDeDatos.reiniciarTransaccin(transaccion); } } } } return(false); }
public void CancelarOrden(Transaccion transaccion, NovedadFIXDTO concertacion) { _dao.ExecuteQuery($"update ttr_transaccion set estado = 5 where id_transaccion = {transaccion.ID}"); }
protected object EjecutarODBC(object Sql, TipoRetorno TipoRetorno, Transaccion Transaccion, string CnnStrDB, string nombreODBC) { switch (Sql.GetType().FullName.ToString()) { case "System.String[]": sqls = (string[])Sql; break; default: //case "System.String": sqls = new String[] { (string)Sql }; break; } cantReg = new int[sqls.Length]; switch (Transaccion) { case (Transaccion.Acepta): usaTransaccion = (sqls.Length > 1); break; case (Transaccion.NoAcepta): usaTransaccion = false; break; default: //(Transaccion.Usa): usaTransaccion = true; break; } if (usaTransaccion) ODBCTransaccion = ODBCConexion.BeginTransaction(); try { ODBCConexion = new OdbcConnection("dsn=" + nombreODBC + ";uid=" + sesion.Usuario.Id + ";pwd=" + sesion.Usuario.Password + ";"); ODBCConexion.Open(); ODBCComando = new OdbcCommand(Sql.ToString(), ODBCConexion); ds = new DataSet(); for(i = 0; i < sqls.Length; i++) { System.Diagnostics.Debug.WriteLine(sqls[i]); ODBCAdapter = new OdbcDataAdapter(sqls[i], ODBCConexion); if(usaTransaccion) { ODBCAdapter.SelectCommand.Transaction = ODBCTransaccion; } ODBCAdapter.SelectCommand.CommandTimeout = 90; if(i == 0) { ODBCAdapter.Fill(ds); } else { ds.Tables.Add(); ODBCAdapter.Fill(ds.Tables[ds.Tables.Count - 1]); } } return ds; } catch (Exception ex) { throw new CondecoEX.db.Conexion(ex); } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lnkSeleccionarPago_Click(object sender, EventArgs e) { if (gvPagosEgreso.DataKeys.Count > 0) { LinkButton lnk = (LinkButton)sender; Controles.SeleccionaFila(gvPagosEgreso, lnk, "lnk", false); switch (lnk.CommandName) { case "Abrir": { try { using (DataTable dtDocumentos = PagoFacturado.ObtieneDocumentos(Convert.ToInt32(gvPagosEgreso.SelectedDataKey["IdTPF"]))) { if (Validacion.ValidaOrigenDatos(dtDocumentos)) { Controles.CargaGridView(gvDocumentosPago, dtDocumentos, "IdTDP-IdPF", "IdTDP"); } else { Controles.InicializaGridview(gvDocumentosPago); } } } catch { ScriptServer.MuestraNotificacion(this.Page, "No hay Documentos coincidentes", ScriptServer.NaturalezaNotificacion.Error, ScriptServer.PosicionNotificacion.AbajoDerecha); } break; } case "Ligar": { decimal totalSaldoDocumentos = 0; int idCompania = ((UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor; int idUsuario = ((Usuario)Session["usuario"]).id_usuario; RetornoOperacion resultado = new RetornoOperacion(); try { //Volver a obtener los Documentos Relacionados del Pago using (DataTable dtDocumentos = PagoFacturado.ObtieneDocumentos(Convert.ToInt32(gvPagosEgreso.SelectedDataKey["IdTPF"]))) { if (Validacion.ValidaOrigenDatos(dtDocumentos)) { //Revisar si el total de los saldos pagados de todos los Documentos Relacionados, coincide con el monto del Pago foreach (DataRow rowDocumento in dtDocumentos.Rows) { totalSaldoDocumentos += Convert.ToDecimal(rowDocumento["ImportePagTDP"]); } using (PagoFacturado pago = new PagoFacturado(Convert.ToInt32(gvPagosEgreso.SelectedDataKey["IdTPF"]))) { if (totalSaldoDocumentos == pago.monto) { //Crear ficha entre el Egreso seleccionado y la factura del Documento Relacionado using (TransactionScope transaccionFactura = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { resultado = FE33.EgresoIngresoComprobante.InsertaEgresoIngresoComprobante( Convert.ToInt32(gvEgresos.SelectedDataKey["IdTEI"]), 2, //Tipo Operacion: Egreso pago.idFacturadoProveedor, 1, //Estatus: Capturada 0, //No reemplaza idUsuario); if (resultado.OperacionExitosa) { int idEgresoIngresoComp = resultado.IdRegistro; foreach (DataRow rowDocumento in dtDocumentos.Rows) { //Instanciar por el UUID del Documento Relacionado using (FacturadoProveedor facturado = new FacturadoProveedor(rowDocumento["UUIDTDP"].ToString(), idCompania)) { if (facturado.habilitar) { DataTable listaAplicaciones = FichaIngresoAplicacion.ObtieneAplicacionesFacturas(72, facturado.id_factura, Convert.ToInt32(gvEgresos.SelectedDataKey["IdTEI"])); int idFichaAplicacion = ( from DataRow rowAplicacion in listaAplicaciones.Rows where rowAplicacion.Field <int>("IdRegistro") == facturado.id_factura select rowAplicacion.Field <int>("Id")).FirstOrDefault(); resultado = FE33.ComprobantePagoDocumentoRelacionado.InsertarComprobantePagoDocumentoRelacionado( FE33.ComprobantePagoDocumentoRelacionado.TipoOperacion.Egreso, pago.idFacturadoProveedor, FE33.ComprobantePagoDocumentoRelacionado.TipoOperacionDocumento.Egreso, facturado.id_factura, Convert.ToInt32(gvEgresos.SelectedDataKey["IdTEI"]), idFichaAplicacion, Convert.ToDecimal(rowDocumento["ImporteSalAntTDP"]), Convert.ToDecimal(rowDocumento["ImportePagTDP"]), Convert.ToByte(rowDocumento["NoParcialidadTDP"]), idEgresoIngresoComp, idUsuario); } else { resultado = new RetornoOperacion($"La factura con UUID: {rowDocumento["UUIDTDP"].ToString()} no se encuentra en el sistema.", false); break; } } } } //Cambiar estatus al Pago a Ligado if (resultado.OperacionExitosa) { resultado = pago.ActualizaEstatus(PagoFacturado.EstatusPago.Ligado, idUsuario); } if (resultado.OperacionExitosa) { transaccionFactura.Complete(); } } } else { resultado = new RetornoOperacion("Los Importes de los Documentos Relacionados, no coinciden con el monto del Pago.", false); } } } else { resultado = new RetornoOperacion("El Pago no contiene Documentos Relacionados", false); } } } catch { ScriptServer.MuestraNotificacion(this.Page, "No hay Pagos coincidentes", ScriptServer.NaturalezaNotificacion.Error, ScriptServer.PosicionNotificacion.AbajoDerecha); } ScriptServer.MuestraNotificacion(this.Page, resultado.Mensaje, ScriptServer.NaturalezaNotificacion.Error, ScriptServer.PosicionNotificacion.AbajoDerecha); break; } } } }