public void Guardar() { Funciones fn = new Funciones(); try { DataGrid dr = new DataGrid(); tblcertifmdp mdp = new tblcertifmdp(); mdp.Mdp = Encabezado.Credito == true?Int16.Parse("1") : Int16.Parse("0"); mdp.Ncertificado = this.Encabezado.Ncertificado; mdp.Puesto = Encabezado.Puesto; mdp.Idabono = 0; mdp.idpais = Encabezado.idpais; mdp.Cantidad = Encabezado.Total; mdp.Abono = 0; mdp.Saldonuevo = Encabezado.Total; mdp.Nend = false; mdp.Enviaplat = false; if (Encabezado.FormaPago == "-1") { mdp.Mdp = 10; mdp.Banco = Encabezado.AutorizacionBanco; } fn.ConnectionSql(); fn.BeginTransaction(); SqlCommand con = this.Encabezado.getComandQuery(fn._LocalC, TipoTransaccion.Insert); con.Transaction = fn._tr; con.ExecuteNonQuery(); string cAuto = fn.ValIni(Encabezado.idpais, "ConsumoAutomatico"); foreach (tblcertifdet det in this.Detalle) { if (det.Servicio != "CuentaRecargo") { SqlCommand cond = det.getComandQuery(fn._LocalC, TipoTransaccion.Insert); cond.Transaction = fn._tr; cond.ExecuteNonQuery(); det.Detalle = det.GetLasIdentity(fn._LocalC, fn._tr); if (cAuto == "1") { this.ProcesarInventario(ref fn, det); } } else { fn.RegistrarRecargo(this.Encabezado.Ncertificado, det.Local.ToString()); } } SqlCommand cmMdp = mdp.getComandQuery(fn._LocalC, TipoTransaccion.Insert); cmMdp.Transaction = fn._tr; cmMdp.ExecuteNonQuery(); fn.Incrementar_Correlativo(this.Encabezado.idpais, this.Encabezado.Puesto, "NCertificado"); //Se registra en auditoria fn.Auditoria(this.Detalle[0].Session, "Agregar Certificado", this.Encabezado.Ncertificado, this.Encabezado.idpais); fn._tr.Commit(); } catch (Exception ex) { fn._tr.Rollback(); fn._LocalC.Close(); throw ex; } finally { fn._tr.Dispose(); fn._LocalC.Close(); } }