public void guardar(string aplicacion, string movimiento, string usuario) { try { //revisa si existe la tabla de cambios _SQL.CrearConexion(); _SQL.AbrirConexion(); string existe = "select COUNT(*) from sys.objects where type_desc = 'USER_TABLE' and name='VMX_SR_CAMBIOS'"; if (_SQL.executeScalar(existe) == "0") { //si no la crea string createtable = "CREATE TABLE VMX_SR_CAMBIOS(Fecha DateTime, Usuario varchar(50), Aplicacion varchar(50), Movimiento varchar(100)) "; _SQL.EjecutarDML(createtable); } //inserta el registro string insertar = string.Format("INSERT INTO VMX_SR_CAMBIOS(Fecha,Usuario,Aplicacion,Movimiento)VALUES(getdate(),'{0}','{1}','{2}')", usuario, aplicacion, movimiento); _SQL.EjecutarDML(insertar); _SQL.CerrarConexion(); _SQL.DestruirConexion(); } catch (Exception ex) { _ArchivoErrores.escribir("historicoCambios", "guardar", ex.InnerException + "--" + ex.Message); _SQL.DestruirConexion(); } }
public void createGJ(GJ oGJ) { string sCons = string.Empty; try { string query = MapeoQuerySql.ObtenerPorId("AdminGeneralJournal.createGJ"); sCons = string.Format(query , oGJ.ID, oGJ.GJ_DATE, oGJ.DESCRIPTION, oGJ.POSTING_DATE, oGJ.TOTAL_DR_AMOUNT , oGJ.TOTAL_CR_AMOUNT, oGJ.SELL_RATE, oGJ.BUY_RATE, oGJ.SITE_ID, oGJ.CREATE_DATE , oGJ.USER_ID, oGJ.CURRENCY_ID, oGJ.POST_ALL_TRACKING, oGJ.POST_AS_NATIVE, oGJ.USER_EXCH_RATE, oGJ.POSTING_CANDIDATE); _trace.AppendLine(sCons); _oSQL.EjecutarDML(sCons); } catch (Exception ex) { if (ex.Message.Contains("Violation of PRIMARY KEY constraint 'PK_GJ'")) { createGJ_cont_exSQL += 1; oGJ.getNext_ID(oGJ.SITE_ID, createGJ_cont_exSQL); if (createGJ_cont_exSQL < 10) { createGJ(oGJ); } } else { throw new Exception("Error al insertar en GJ. Detalle: " + ex.Message); } } if (createGJ_cont_exSQL != 0) { createGJ_cont_exSQL = 0; } }
public void setNext_GJ_ID(string site_id) { int nextNumber = 0; DataTable dtTblID_Poliza = new DataTable("NEXT_NUMBER_GEN"); Microsoft_SQL_Server objSQL = new Microsoft_SQL_Server(Global.Servidor, Global.BaseDatos, Global.Usuario, Global.Password); objSQL.CrearConexion(); objSQL.AbrirConexion(); // Este numero consecutivo NEXT_NUMBER es generado por Visual ERP string query = string.Format(MapeoQuerySql.ObtenerPorId("AdminGJ.getNext_GJ_ID"), site_id); dtTblID_Poliza = objSQL.EjecutarConsulta(query, "NEXT_NUMBER_GEN"); nextNumber = int.Parse(dtTblID_Poliza.Rows[0]["NEXT_NUMBER"].ToString()); query = MapeoQuerySql.ObtenerPorId("AdminGJ.setNext_GJ_ID"); // Actualizar el nuevo numero de poliza objSQL.EjecutarDML(string.Format(query, nextNumber + 1, site_id)); objSQL.CerrarConexion(); objSQL.DestruirConexion(); }
public void agregarPoliza(DataTable pdtTbl_Traspasos, string psTipoTraspaso, DataTable pdtTbl_VMX_IVATRASTEMP) { Microsoft_SQL_Server objSql = new Microsoft_SQL_Server(Global.Servidor, Global.BaseDatos, Global.Usuario, Global.Password); string sInsertGJ = string.Empty; string sInsertGJ_CURR = string.Empty; StringBuilder sGJ_DIST = new StringBuilder(); StringBuilder sGJ_LINE = new StringBuilder(); StringBuilder sVMX_CONTOLPOLIZA_LINE = new StringBuilder(); AdminCurrencyTracking oCurrencyTracking = new AdminCurrencyTracking(); _dtVMX_IVATRASTEMP = pdtTbl_Traspasos; _dtDetalla_IVA = pdtTbl_VMX_IVATRASTEMP; string query = string.Empty; try { _lstCurrencyTracking = oCurrencyTracking.getCurrencyTracking(_GJ_Date); objSql.CrearConexion(); objSql.AbrirConexion(); objSql.CrearTransaccion(); // General Journal sInsertGJ = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.GeneralJournal"); sInsertGJ = string.Format(sInsertGJ, _ID, _GJ_Date, _Description, _PostingDate, _Total_DR_Amount, _Total_CR_Amount, _Sell_Rate, _Buy_Rate, _EntityID, _Create_Date, _UserID, _CurrencyID, _Post_All_Tracking, _Post_As_Native, _User_Exch_Rate, _Posting_Candidate); // Insertar encabezado de Poliza objSql.EjecutarDML(sInsertGJ); // Almacenar el tipo de moneda y el monto de la poliza. sInsertGJ_CURR = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.Currency"); sInsertGJ_CURR = string.Format(sInsertGJ_CURR, _ID, _CurrencyID, _Total_CR_Amount, _Sell_Rate, _Buy_Rate); if (_lstCurrencyTracking.Count > 0) { string currencyTracking = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.Currency"); foreach (MonedaRastreo item in _lstCurrencyTracking) { sInsertGJ_CURR += string.Format(currencyTracking, _ID, item.ID, Math.Round((_Total_CR_Amount / item.SELL_RATE), 2), item.SELL_RATE, item.BUY_RATE); } } objSql.EjecutarDML(sInsertGJ_CURR); int iDistNo = 0; int iLineNo = 1; double dperdida = 0; double dganancia = 0; string sCtaGanancia = string.Empty; string sCtaPerdida = string.Empty; foreach (DataRow drRow_Traspasos in pdtTbl_Traspasos.Rows) { string DIST_NO = "1"; string NATIVE_AMOUNT = "0"; string POSTING_STATUS = "U"; string NATIVE = "Y"; string sCta_Origen = drRow_Traspasos["CUENTA_ORIGEN"].ToString(); string sCta_Destino = drRow_Traspasos["CUENTA_DESTINO"].ToString(); string sMontoTraspaso = drRow_Traspasos["MONTO"].ToString(); double dIVA_Factura = double.Parse(drRow_Traspasos["MONTO"].ToString()); double dIVA_Deposito = double.Parse(drRow_Traspasos["MONTO_IVA_DEPOSITO"].ToString()); double dGananciaPerdida = 0; string str_sql = string.Empty; // ganancia perdida DataRow[] result = pdtTbl_VMX_IVATRASTEMP.Select("VAT_GL_ACCT_ID = '" + sCta_Origen + "' AND TRASLADO = '" + sCta_Destino + "'"); foreach (DataRow item in pdtTbl_VMX_IVATRASTEMP.Rows) { dGananciaPerdida = double.Parse(item["PERDIDA_GANANCIA"].ToString()); if (item["VAT_GL_ACCT_ID"].ToString().Equals(sCta_Origen) && item["TRASLADO"].ToString().Equals(sCta_Destino) && dGananciaPerdida < 0) { dperdida += Math.Abs(dGananciaPerdida); sCtaPerdida = item["CUENTA_PER_GANANCIA"].ToString(); } else { dganancia += dGananciaPerdida; sCtaGanancia = item["CUENTA_PER_GANANCIA"].ToString(); } } // Encacbezado de poliza para control de CTECH query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.ControlCTech"); query = string.Format(query, _ID, sCta_Destino, sMontoTraspaso, _PostingDate, _Create_Date, _Create_Date, _UserID, psTipoTraspaso); objSql.EjecutarDML(query); // En caso de que el monto sea cero no se genera // ningun movimiento contable. if (dIVA_Factura > 0) { // Detalle de los movimientos de la poliza. // Nota:En caso de tener moneda de rastreo generar un registro automaticamente para esta moneda // CXC.- Cuentas por Cobrar // Verificar el caso en que la cuenta origen sea diferente a la cuenta destino if (psTipoTraspaso == "CXC") { // DR.- Debito query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC"); query = string.Format(query, _ID, DIST_NO, iDistNo, dIVA_Factura, "DR", sCta_Origen, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, _CurrencyID, NATIVE); sGJ_DIST.AppendLine(query); iDistNo++; // CR.- Credito query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC"); query = string.Format(query, _ID, DIST_NO, iDistNo.ToString(), dIVA_Deposito, "CR", sCta_Destino, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, _CurrencyID, NATIVE); sGJ_DIST.AppendLine(query); // Moneda rastreable foreach (MonedaRastreo moneda in _lstCurrencyTracking) { iDistNo++; // DR.- Debito query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC"); query = string.Format(query, _ID, DIST_NO, iDistNo, Math.Round((double.Parse(sMontoTraspaso) / moneda.SELL_RATE), 2), "DR", sCta_Destino, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, moneda.ID, "N"); sGJ_DIST.AppendLine(query); iDistNo++; // CR.- Credito query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC"); query = string.Format(query, _ID, DIST_NO, iDistNo, Math.Round((double.Parse(sMontoTraspaso) / moneda.SELL_RATE), 2), "CR", sCta_Destino, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, moneda.ID, "N"); sGJ_DIST.AppendLine(query); } } else { // CR.- Credito query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC"); query = string.Format(query, _ID, DIST_NO, iDistNo, sMontoTraspaso, "CR", sCta_Origen, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, _CurrencyID, NATIVE); sGJ_DIST.AppendLine(query); iDistNo++; // DR.- Debito query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC"); query = string.Format(query, _ID, DIST_NO, iDistNo, sMontoTraspaso, "DR", sCta_Destino, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, _CurrencyID, NATIVE); sGJ_DIST.AppendLine(query); // Moneda rastreable foreach (MonedaRastreo moneda in _lstCurrencyTracking) { iDistNo++; // CR.- Credito query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC"); query = string.Format(query, _ID, DIST_NO, iDistNo, Math.Round((double.Parse(sMontoTraspaso) / moneda.SELL_RATE), 2), "CR", sCta_Origen, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, moneda.ID, "N"); sGJ_DIST.AppendLine(query); iDistNo++; // DR.- Debito query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC"); query = string.Format(query, _ID, DIST_NO, iDistNo, Math.Round((double.Parse(sMontoTraspaso) / moneda.SELL_RATE), 2), "DR", sCta_Destino, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, moneda.ID, "N"); sGJ_DIST.AppendLine(query); } } iDistNo++; // Detalle de movimientos de la poliza // CXP.- Cuentas por Pagar if (psTipoTraspaso == "CXP") { query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxP"); query = string.Format(query, _ID, iLineNo, sCta_Destino, sMontoTraspaso, 0); sGJ_LINE.AppendLine(query); iLineNo++; query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxP"); query = string.Format(query, _ID, iLineNo, sCta_Origen, 0, sMontoTraspaso); sGJ_LINE.AppendLine(query); } else { query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxP"); query = string.Format(query, _ID, iLineNo, sCta_Origen, sMontoTraspaso, 0); sGJ_LINE.AppendLine(query); iLineNo++; query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxP"); query = string.Format(query, _ID, iLineNo, sCta_Destino, 0, sMontoTraspaso); sGJ_LINE.AppendLine(query); } iLineNo++; } foreach (DataRow dr_i in pdtTbl_VMX_IVATRASTEMP.Rows) { string BANK_ACCOUNT_ID = dr_i["BANK_ACCOUNT_ID"].ToString(); string CONTROL_NO = dr_i["CONTROL_NO"].ToString(); string VAT_AMOUNT = "0"; string SELL_RATE = dr_i["TC_FACTURA"].ToString(); string MONTO = dr_i["IVA_MXN_TRASLADAR_FACT"].ToString(); string CUENTA_ORIGEN = dr_i["VAT_GL_ACCT_ID"].ToString(); string DESCRIPCION = dr_i["DESCRIPCION"].ToString(); string CUENTA_DESTINO = dr_i["TRASLADO"].ToString(); string COD_CLIENTE = string.Empty; if (sCta_Destino == CUENTA_DESTINO && sCta_Origen == CUENTA_ORIGEN) { // CXC - CASH_RECEIPT if (psTipoTraspaso == "CXC") { COD_CLIENTE = dr_i["Cliente"].ToString(); query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CashReceiptCxC"); query = string.Format(query, _ID, BANK_ACCOUNT_ID, CONTROL_NO, VAT_AMOUNT, SELL_RATE, MONTO, CUENTA_ORIGEN, DESCRIPCION, CUENTA_DESTINO, CUENTA_DESTINO, psTipoTraspaso, COD_CLIENTE); sVMX_CONTOLPOLIZA_LINE.AppendLine(query); } else { // CXP - CASH_DISBURSEMENT query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CashDisbursementCxP"); query = string.Format(query, _ID, BANK_ACCOUNT_ID, CONTROL_NO, VAT_AMOUNT, SELL_RATE, MONTO, CUENTA_ORIGEN, DESCRIPCION, CUENTA_DESTINO, CUENTA_DESTINO, psTipoTraspaso); sVMX_CONTOLPOLIZA_LINE.AppendLine(query); } } } } // Guardar todos los traspasos en GJ_DIST objSql.EjecutarDML(sGJ_DIST.ToString()); // Guarddar todo los traspasos en GJ_LINE objSql.EjecutarDML(sGJ_LINE.ToString()); // Guardar los traspasos en tabla de CTECH objSql.EjecutarDML(sVMX_CONTOLPOLIZA_LINE.ToString()); // Actualizar el nuevo numero de poliza query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.ActualizaNumeroPoliza"); query = string.Format(query, ((int.Parse(_ID) + 1)).ToString()); objSql.EjecutarDML(query); objSql.TransCommit(); } catch (Exception ex) { objSql.TransRollback(); throw new Exception(string.Format("Ocurrió un error al generar la póliza.\nDetalle: {0}.", ex.Message)); } finally { objSql.DestruirTransaccion(); objSql.CerrarConexion(); objSql.DestruirConexion(); } }
private void bGuardar_Click(object sender, EventArgs e) { if (MessageBox.Show("¿Está seguro de aplicar los cambios?", "Configurar Perdida Ganancia Cambiaria", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { Cursor.Current = Cursors.WaitCursor; try { this.PG_intercambiada = cbPerdidaGanancia.Checked; //variable de retorno a frmPrincipal string pg = this.PG_intercambiada ? "True" : "False"; //revisa configuración anterior para realizar los cambios //if (ConfigurationManager.AppSettings["PG_Intercarmbiada"].ToString() != pg) //{ //cambiar archivo config Configuration config = ConfigurationManager.OpenExeConfiguration(Application.StartupPath + @"\VKIVA.exe"); AppSettingsSection aps = config.AppSettings; aps.Settings["PG_Intercarmbiada"].Value = pg; config.Save(ConfigurationSaveMode.Full); ConfigurationManager.RefreshSection("appSettings"); //cambiar las vistas if (PG_intercambiada) { //si se activa, las vistas se modifican al intercambio vistasIVA_PGactivado act = new vistasIVA_PGactivado(); _SQL.CrearConexion(); _SQL.AbrirConexion(); _SQL.EjecutarDML(act.vmx_iva_cxc_02.ToString()); _SQL.EjecutarDML(act.vmx_iva_trasl_cxp_01.ToString()); _SQL.EjecutarDML(act.vmx_iva_trasl_cxp_02.ToString()); _SQL.EjecutarDML(act.vmx_iva_trasl_cxp_03.ToString()); _SQL.CerrarConexion(); _SQL.DestruirConexion(); } else { //si no se activa, las vistas se modifican al no intercambio vistasIVA_PGdesactivado desact = new vistasIVA_PGdesactivado(); _SQL.CrearConexion(); _SQL.AbrirConexion(); _SQL.EjecutarDML(desact.vmx_iva_cxc_02.ToString()); _SQL.EjecutarDML(desact.vmx_iva_trasl_cxp_01.ToString()); _SQL.EjecutarDML(desact.vmx_iva_trasl_cxp_02.ToString()); _SQL.EjecutarDML(desact.vmx_iva_trasl_cxp_03.ToString()); _SQL.CerrarConexion(); _SQL.DestruirConexion(); } //almacenar registro de la actualización historicoCambios hc = new historicoCambios(_SQL); hc.guardar("TraspasoDeIva", "Intercambio Perdida Ganancia = " + pg, Usuario.userName); MessageBox.Show("Se ha actualizado la configuración de perdida/Ganancia cambiaria.\nDebe cerrar la ventana de traspaso de Iva para que los cambios surtan efecto.", "Configurar Perdida Ganancia Cambiaria", MessageBoxButtons.OK, MessageBoxIcon.Information); //} this.Close(); } catch (Exception ex) { MessageBox.Show("Ocurrió un error al actualizar la configuración de perdida/Ganancia cambiaria.\n" + ex.InnerException, "Configurar Perdida Ganancia Cambiaria", MessageBoxButtons.OK, MessageBoxIcon.Stop); _ArchivoErrores.escribir("frmPerdidaGanancia", "bGuardar_Click(object sender, EventArgs e)", ex.InnerException + "--" + ex.Message); this.Close(); } }//if }