Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
 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();
 }
Beispiel #3
0
 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();
 }
Beispiel #4
0
        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
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        /// <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);
        }
Beispiel #7
0
 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}");
 }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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);
        }
Beispiel #12
0
        /// <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);
        }
Beispiel #13
0
        /// <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);
        }
Beispiel #15
0
        /// <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);
        }
Beispiel #16
0
 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();
 }
Beispiel #21
0
        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.");
            }
        }
Beispiel #22
0
        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);
        }
Beispiel #23
0
        /// <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>");
            }
        }
Beispiel #26
0
        /// <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);
        }
Beispiel #27
0
        /// <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);
        }
Beispiel #28
0
		protected object Ejecutar(object Sql, TipoRetorno TipoRetorno, Transaccion Transaccion, string CnnStrDB, int CommandTimeOut)
		{
			commandTimeOut=CommandTimeOut;
			return Ejecutar(Sql, TipoRetorno, Transaccion, CnnStrDB);
		}
Beispiel #29
0
 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();
 }
Beispiel #30
0
		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) ; 
					}
				}
			}
		}
Beispiel #31
0
        /// <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}");
 }
Beispiel #33
0
 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;
                }
                }
            }
        }