示例#1
0
        public string Insertar(DatosCierre Cierre, List <DatosDetalleCierre> Detalle, DatosAperturaCierre AperturaCierre)
        {
            string          respuesta     = "";
            MySqlConnection MySqlConexion = new MySqlConnection(); //MySQL

            try
            {
                //MySql
                MySqlConexion.ConnectionString = ConexionMySQL.cadenaConexion;
                MySqlConexion.Open();
                MySqlTransaction MySqlTransaccion = MySqlConexion.BeginTransaction();
                MySqlCommand     ComandoMySql     = new MySqlCommand();
                ComandoMySql.Connection  = MySqlConexion;
                ComandoMySql.Transaction = MySqlTransaccion;
                ComandoMySql.CommandText = "spInsertarCierre";
                ComandoMySql.CommandType = CommandType.StoredProcedure;

                MySqlParameter parametroIdcierre = new MySqlParameter();
                parametroIdcierre.ParameterName = "parIdCierre";
                parametroIdcierre.MySqlDbType   = MySqlDbType.Int32;
                parametroIdcierre.Direction     = ParameterDirection.Output;
                ComandoMySql.Parameters.Add(parametroIdcierre);

                MySqlParameter parametroIdCaja = new MySqlParameter();
                parametroIdCaja.ParameterName = "parIdCaja";
                parametroIdCaja.MySqlDbType   = MySqlDbType.Int32;
                parametroIdCaja.Value         = Cierre.IdCaja;
                ComandoMySql.Parameters.Add(parametroIdCaja);

                MySqlParameter parametroIdEmpleado = new MySqlParameter();
                parametroIdEmpleado.ParameterName = "parIdEmpleado";
                parametroIdEmpleado.MySqlDbType   = MySqlDbType.Int32;
                parametroIdEmpleado.Value         = Cierre.IdEmpleado;
                ComandoMySql.Parameters.Add(parametroIdEmpleado);

                MySqlParameter parametroFechaHora = new MySqlParameter();
                parametroFechaHora.ParameterName = "parFechaHora";
                parametroFechaHora.MySqlDbType   = MySqlDbType.DateTime;
                parametroFechaHora.Value         = Cierre.FechaHora;
                ComandoMySql.Parameters.Add(parametroFechaHora);

                MySqlParameter parametroMontoFinalSistema = new MySqlParameter();
                parametroMontoFinalSistema.ParameterName = "parMontoFinalSistema";
                parametroMontoFinalSistema.MySqlDbType   = MySqlDbType.Decimal;
                parametroMontoFinalSistema.Value         = Cierre.MontoFinalSistema;
                ComandoMySql.Parameters.Add(parametroMontoFinalSistema);

                MySqlParameter parametroMontoFinalReal = new MySqlParameter();
                parametroMontoFinalReal.ParameterName = "parMontoFinalReal";
                parametroMontoFinalReal.MySqlDbType   = MySqlDbType.Decimal;
                parametroMontoFinalReal.Value         = Cierre.MontoFinalReal;
                ComandoMySql.Parameters.Add(parametroMontoFinalReal);

                respuesta = ComandoMySql.ExecuteNonQuery() == 1 ? "OK" : "Ocurrió un error al intentar ingresar el registro. Intente nuevamente.";

                if (respuesta.Equals("OK"))
                {
                    IdCierre = Convert.ToInt32(ComandoMySql.Parameters["parIdCierre"].Value);
                    foreach (DatosDetalleCierre detalle in Detalle)
                    {
                        detalle.IdCierre = IdCierre;
                        respuesta        = detalle.Insertar(detalle, ref MySqlConexion, ref MySqlTransaccion);
                        if (!respuesta.Equals("OK"))
                        {
                            break;
                        }
                    }
                    if (respuesta.Equals("OK"))
                    {
                        AperturaCierre.IdCierre = IdCierre;
                        respuesta = AperturaCierre.Editar(AperturaCierre, ref MySqlConexion, ref MySqlTransaccion);
                    }
                }

                if (respuesta.Equals("OK"))
                {
                    DatosCaja Caja = new DatosCaja();
                    Caja.IdCaja = IdCaja;
                    respuesta   = Caja.Cerrar(Caja, ref MySqlConexion, ref MySqlTransaccion);
                }

                if (respuesta.Equals("OK"))
                {
                    MySqlTransaccion.Commit();
                }
                else
                {
                    MySqlTransaccion.Rollback();
                }
            }
            catch (Exception ex)
            {
                respuesta = ex.Message;
            }
            finally
            {
                if (MySqlConexion.State == ConnectionState.Open)
                {
                    MySqlConexion.Close();
                }
            }
            return(respuesta);
        }