//Obtener el agente que se ajusta de a partir del monto del documento public DET_AGENTECA detAgenteLimite(List <DET_AGENTECA> lag, decimal monto, int step, FLUJO flujo)//MGC 19-10-2018 Cambio a detonador { List <DET_AGENTECA> lr = new List <DET_AGENTECA>(); //MGC 19-10-2018 Cambio a detonador if (lag.Count == 0 & step == 0) { WFARTHAEntities db = new WFARTHAEntities(); //Obtener el usuario al que se le creo la orden DET_AGENTECC dc = new DET_AGENTECC(); dc = db.DET_AGENTECC.Where(dtc => dtc.VERSION == flujo.RUTA_VERSION && dtc.USUARIOC_ID == flujo.USUARIOA_ID && dtc.ID_RUTA_AGENTE == flujo.ID_RUTA_A).FirstOrDefault(); DET_AGENTECA dt = new DET_AGENTECA(); dt.ID_RUTA_AGENTE = flujo.ID_RUTA_A; dt.VERSION = Convert.ToInt32(flujo.RUTA_VERSION); dt.STEP_FASE = 0; dt.STEP_ACCION = 0; dt.LIM_SUP = Convert.ToDecimal(99999999999.00); dt.AGENTE_SIG = dc.USUARIOA_ID; lr.Add(dt); } //MGC 19-10-2018 Cambio a detonador else { //Funcionamiento en cadena foreach (DET_AGENTECA ag in lag) { if (monto < ag.LIM_SUP) { lr.Add(ag); } } } //Se obtuvieron los registros que pueden validar el monto DET_AGENTECA rv = new DET_AGENTECA(); rv = lr.OrderBy(ll => ll.LIM_SUP).FirstOrDefault(); return(rv); }
//public ActionResult Edit([Bind(Include = "ID_RUTA_AGENTE,VERSION,STEP_FASE_STEP_ACCION,LIM_SUP,AGENTE_SIG,OVERRIDE")] DET_AGENTECA dET_AGENTECA) public ActionResult Edit([Bind(Include = "USUARIOC_ID,ID_RUTA_AGENTE,USUARIOA_ID, LDET_ACA")] CadenaAutorizacion cadenaAutorizacion) { bool error = false; //Obtener usuario creador y solicitante (Con la última versión y número de ruta) DET_AGENTECCV agcc = new DET_AGENTECCV(); agcc = db.DET_AGENTECCV.Where(cc => cc.USUARIOC_ID == cadenaAutorizacion.USUARIOC_ID && cc.ID_RUTA_AGENTE == cadenaAutorizacion.ID_RUTA_AGENTE).FirstOrDefault(); int version = 0; string ruta = ""; //Ya existe una cadena, agregar una nueva versión if (agcc != null) { DET_AGENTECC agccn = new DET_AGENTECC(); agccn.VERSION = agcc.VERSION + 1; agccn.USUARIOC_ID = agcc.USUARIOC_ID; agccn.ID_RUTA_AGENTE = agcc.ID_RUTA_AGENTE; agccn.USUARIOA_ID = agcc.USUARIOA_ID; agccn.FECHAC = DateTime.Now; db.DET_AGENTECC.Add(agccn); try { //Guardar la cabecera db.SaveChanges(); version = agccn.VERSION; ruta = agccn.ID_RUTA_AGENTE; } catch (Exception e) { error = true; } } //Guardar el detalle en DET_AGENTECA try { if (!error) { for (int j = 0; j < cadenaAutorizacion.LDET_ACA.Count; j++) { DET_AGENTECA ca = new DET_AGENTECA(); ca.ID_RUTA_AGENTE = ruta; ca.VERSION = version; ca.STEP_FASE = cadenaAutorizacion.LDET_ACA[j].STEP_FASE; ca.STEP_ACCION = 1; ca.LIM_SUP = 99999999999.00M; ca.AGENTE_SIG = cadenaAutorizacion.LDET_ACA[j].AGENTE_SIG; try { db.DET_AGENTECA.Add(ca); db.SaveChanges(); } catch { } } } } catch { } if (error) { ViewBag.Error = "Ocurrio un error al taratar de ingresar registro"; int pagina = 673; //ID EN BASE DE DATOS FnCommon.ObtenerConfPage(db, pagina, User.Identity.Name, this.ControllerContext.Controller); CadenaAutorizacion obj = new CadenaAutorizacion(); return(View(obj)); } else { return(RedirectToAction("Details", new { VERSION = version, ID_RUTA_AGENTE = ruta })); } //try //{ // //var CadenaAutorizacion1 = db.DET_AGENTECA.Where(a => a.VERSION == dET_AGENTECA.VERSION && a.ID_RUTA_AGENTE == dET_AGENTECA.ID_RUTA_AGENTE); // //var step = CadenaAutorizacion1.Count(); // //var version = dET_AGENTECA.VERSION; // //var ruta = dET_AGENTECA.ID_RUTA_AGENTE; // //dET_AGENTECA.STEP_FASE = step + 1; // //dET_AGENTECA.STEP_ACCION = 1; // //dET_AGENTECA.LIM_SUP = 99999999999; // //db.DET_AGENTECA.Add(dET_AGENTECA); // //db.SaveChanges(); // return RedirectToAction("Details", new { VERSION = version, ID_RUTA_AGENTE = ruta }); //} //catch (Exception e) //{ //} return(RedirectToAction("Index")); }
public ActionResult Create([Bind(Include = "USUARIOC_ID,ID_RUTA_AGENTE,USUARIOA_ID, LDET_ACA")] CadenaAutorizacion cadenaAutorizacion) { bool error = false; //Obtener usuario creador y solicitante (Con la última versión y número de ruta) DET_AGENTECCV agcc = new DET_AGENTECCV(); agcc = db.DET_AGENTECCV.Where(cc => cc.USUARIOC_ID == cadenaAutorizacion.USUARIOC_ID && cc.USUARIOA_ID == cadenaAutorizacion.USUARIOA_ID).FirstOrDefault(); int version = 0; string ruta = ""; //Ya existe una cadena, agregar una nueva versión if (agcc != null) { DET_AGENTECC agccn = new DET_AGENTECC(); agccn.VERSION = agcc.VERSION + 1; agccn.USUARIOC_ID = agcc.USUARIOC_ID; agccn.ID_RUTA_AGENTE = agcc.ID_RUTA_AGENTE; agccn.USUARIOA_ID = agcc.USUARIOA_ID; agccn.FECHAC = DateTime.Now; db.DET_AGENTECC.Add(agccn); try { //Guardar la cabecera db.SaveChanges(); version = agccn.VERSION; ruta = agccn.ID_RUTA_AGENTE; }catch (Exception e) { error = true; } } else { //No existe la cadena //Agregar una nueva try { List <string> id_ruta = new List <string>(); id_ruta = db.DET_AGENTECC.Select(a => a.ID_RUTA_AGENTE).ToList(); if (id_ruta != null && id_ruta.Count > 0) { List <int> id_rutai = new List <int>(); int id_rutav = 0; id_rutai = id_ruta.Select(int.Parse).ToList(); id_rutav = id_rutai.Max(); id_rutav++; try { DET_AGENTECC u = new DET_AGENTECC(); version = 1; u.VERSION = version; u.USUARIOC_ID = cadenaAutorizacion.USUARIOC_ID; u.ID_RUTA_AGENTE = id_rutav + ""; ruta = u.ID_RUTA_AGENTE; u.USUARIOA_ID = cadenaAutorizacion.USUARIOA_ID; u.FECHAC = DateTime.Now; db.DET_AGENTECC.Add(u); db.SaveChanges(); } catch { error = true; } } } catch { error = true; } } //Guardar el detalle en DET_AGENTECA try { if (!error) { for (int j = 0; j < cadenaAutorizacion.LDET_ACA.Count; j++) { DET_AGENTECA ca = new DET_AGENTECA(); ca.ID_RUTA_AGENTE = ruta; ca.VERSION = version; ca.STEP_FASE = cadenaAutorizacion.LDET_ACA[j].STEP_FASE; ca.STEP_ACCION = 1; ca.LIM_SUP = 99999999999.00M; ca.AGENTE_SIG = cadenaAutorizacion.LDET_ACA[j].AGENTE_SIG; try { db.DET_AGENTECA.Add(ca); db.SaveChanges(); } catch { } } } } catch { } if (error) { ViewBag.Error = "Ocurrio un error al taratar de ingresar registro"; int pagina = 673; //ID EN BASE DE DATOS FnCommon.ObtenerConfPage(db, pagina, User.Identity.Name, this.ControllerContext.Controller); CadenaAutorizacion obj = new CadenaAutorizacion(); return(View(obj)); } else { return(RedirectToAction("Details", new { VERSION = version, ID_RUTA_AGENTE = ruta })); } //var st = false; //var version = 1; //var ruta = cadenaAutorizacion.ID_RUTA_AGENTE; //string displayName = null; //var keyValue = db.DET_AGENTECC.FirstOrDefault(a => a.ID_RUTA_AGENTE == cadenaAutorizacion.ID_RUTA_AGENTE); //if (keyValue != null) //{ // var reg = db.DET_AGENTECC.Where(a => a.ID_RUTA_AGENTE == cadenaAutorizacion.ID_RUTA_AGENTE); // version = reg.Count() + 1; //} //DateTime fechaR = DateTime.Today; //try //{ // DET_AGENTECC u = new DET_AGENTECC(); // u.VERSION = version; // u.USUARIOC_ID = cadenaAutorizacion.USUARIOC_ID; // u.ID_RUTA_AGENTE = cadenaAutorizacion.ID_RUTA_AGENTE; // u.DESCRIPCION = ""; // u.FECHAC = fechaR; // u.USUARIOA_ID = cadenaAutorizacion.USUARIOA_ID; // db.DET_AGENTECC.Add(u); // db.SaveChanges(); // DET_AGENTECA c = new DET_AGENTECA(); // c.ID_RUTA_AGENTE = cadenaAutorizacion.ID_RUTA_AGENTE; // c.VERSION = version; // c.STEP_FASE = 1; // c.STEP_ACCION = 1; // c.LIM_SUP = 99999999999; // c.AGENTE_SIG = cadenaAutorizacion.USUARIOA_ID; // db.DET_AGENTECA.Add(c); // db.SaveChanges(); // return RedirectToAction("Details", new { VERSION = version, ID_RUTA_AGENTE = ruta }); // //return RedirectToAction("Index"); //} //catch (Exception e) //{ // ViewBag.Error = "Ocurrio un error al taratar de ingresar registro"; // int pagina = 673; //ID EN BASE DE DATOS // FnCommon.ObtenerConfPage(db, pagina, User.Identity.Name, this.ControllerContext.Controller); // CadenaAutorizacion obj = new CadenaAutorizacion(); // return View(obj); //} }