//1 tipo cuenta 2 guia ,3 cuenta padre public void GenerarCuentasDefault(Compañia c, Usuario user) { var sql = "INSERT INTO accounts (account_name_id,father_account,company_id,account_type,account_guide,editable,updated_by) VALUES" + "(@account_name_id,@father_account,@company_id,@account_type,@account_guide,0,@updated_by);SELECT LAST_INSERT_ID();"; using var connect = new MySqlConnection(Manejador.GetConnectionString()); using MySqlCommand cmd = new MySqlCommand(sql, connect); var gestor = new Double[60]; for (int j = 1; j <= 57; j++) { MySqlDataAdapter da = new MySqlDataAdapter { SelectCommand = cmd }; var r = EstablecerHijos(gestor, j); if (r.Item3 == 0.0) { cmd.Parameters.AddWithValue("@father_account", null); } else { cmd.Parameters.AddWithValue("@father_account", r.Item3); } cmd.Parameters.AddWithValue("@account_name_id", r.Item4); cmd.Parameters.AddWithValue("@company_id", c.Codigo); cmd.Parameters.AddWithValue("@account_type", r.Item1); cmd.Parameters.AddWithValue("@account_guide", r.Item2); cmd.Parameters.AddWithValue("@updated_by", 1); gestor[j] = Convert.ToDouble(cmd.ExecuteScalar()); cmd.Parameters.Clear(); } }
public Cuenta Insert(string companyId, Cuenta cuenta, Cuenta cuentaPadre, int userId) { InsertName(cuenta.Nombre); using var connection = new MySqlConnection(Manejador.GetConnectionString()); using MySqlTransaction tr = manejador.GetConnection().BeginTransaction(IsolationLevel.Serializable); using MySqlCommand cmd = new MySqlCommand(SqlStringInsertAccount, tr.Connection, tr); cmd.CommandType = CommandType.Text; cmd.Parameters.AddWithValue("@name", cuenta.Nombre); cmd.Parameters.AddWithValue("@father_account", cuenta.Padre); cmd.Parameters.AddWithValue("@previous_balance_c", cuenta.SaldoAnteriorColones); cmd.Parameters.AddWithValue("@previous_balance_d", cuenta.SaldoAnteriorDolares); cmd.Parameters.AddWithValue("@company_id", companyId); cmd.Parameters.AddWithValue("@account_type", cuenta.TipoCuenta.TipoCuenta.ToString().Replace('_', ' ').ToUpper()); cmd.Parameters.AddWithValue("@editable", cuenta.Editable); cmd.Parameters.AddWithValue("@detail", cuenta.Detalle); cmd.Parameters.AddWithValue("@updated_by", userId); var newAccId = cmd.ExecuteScalar().ToString(); if (cuentaPadre.Indicador == IndicadorCuenta.Cuenta_Auxiliar) { ///Actualizamos todas las transacciones que se hayan hecho con esa cuenta ///pero solo en caso de la cuenta ser un auxiliar ///si la cuenta no es un auxiliar no tiene sentido ///las cuentas de mayor pueden heredar cuentas cuentas quieras ///sin tener que pasar el saldo var sqlForUpdateTransactions = SqlStringReplaceIdIntransactions + SqlStringUpdateAccountGuide; cmd.CommandText = sqlForUpdateTransactions; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@account_id", newAccId); cmd.Parameters.AddWithValue("@account_id_old", cuenta.Padre); cuentaPadre.Indicador = IndicadorCuenta.Cuenta_De_Mayor; cmd.ExecuteNonQuery(); } cuenta.Id = Convert.ToInt32(newAccId); tr.Commit(); return(cuenta); }