public JsonResult Det_Aprob2(string bukrs, string puesto, string spras) { TAT001Entities db = new TAT001Entities(); int p = Int16.Parse(puesto); DET_APROBH dh = db.DET_APROBH.Where(a => a.SOCIEDAD_ID.Equals(bukrs) & a.PUESTOC_ID == p).OrderByDescending(a => a.VERSION).FirstOrDefault(); if (dh != null) { var c = (from N in db.DET_APROBP join St in db.PUESTOTs on N.PUESTOA_ID equals St.PUESTO_ID where N.SOCIEDAD_ID.Equals(bukrs) & N.PUESTOC_ID.Equals(p) & St.SPRAS_ID.Equals(spras) & N.VERSION.Equals(dh.VERSION) //where N.BUKRS.Equals(bukrs) select new { N.POS, N.PUESTOA_ID.Value, St.TXT50, N.MONTO, PRESUPUESTO = (bool)N.PRESUPUESTO.Value }).ToList(); TAX_LAND tl = db.TAX_LAND.Where(a => a.SOCIEDAD_ID.Equals(bukrs) & a.ACTIVO == true).FirstOrDefault(); if (tl != null) { var col = (from St in db.PUESTOTs where St.PUESTO_ID == 9 & St.SPRAS_ID.Equals(spras) //where N.BUKRS.Equals(bukrs) select new { POS = 98, Value = St.PUESTO_ID, St.TXT50, MONTO = (decimal?)decimal.Parse("-1"), PRESUPUESTO = false }); c.AddRange(col); } var ca = c.OrderBy(a => a.POS); JsonResult cc = Json(ca, JsonRequestBehavior.AllowGet); return(cc); } else { return(null); } }
public ActionResult DeleteConfirmed(TAX_LAND id) { TAX_LAND tAX_LAND = db.TAX_LAND.Where(t => t.SOCIEDAD_ID == id.SOCIEDAD_ID).FirstOrDefault(); tAX_LAND.PAIS_ID = tAX_LAND.PAI.LAND; tAX_LAND.ACTIVO = false; db.Entry(tAX_LAND).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "SOCIEDAD_ID,PAIS_ID,ACTIVO")] TAX_LAND tAX_LAND) { if (ModelState.IsValid) { db.Entry(tAX_LAND).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.PAIS_ID = new SelectList(db.PAIS, "LAND", "SPRAS", tAX_LAND.PAIS_ID); return(View(tAX_LAND)); }
// GET: Txl/Details/5 public ActionResult Details(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } TAX_LAND tAX_LAND = db.TAX_LAND.Find(id); if (tAX_LAND == null) { return(HttpNotFound()); } return(View(tAX_LAND)); }
// GET: Txl/Create public ActionResult Create() { int pagina = 812; //ID EN BASE DE DATOS using (TAT001Entities db = new TAT001Entities()) { string u = User.Identity.Name; //string u = "admin"; var user = db.USUARIOs.Where(a => a.ID.Equals(u)).FirstOrDefault(); ViewBag.permisos = db.PAGINAVs.Where(a => a.ID.Equals(user.ID)).ToList(); ViewBag.carpetas = db.CARPETAVs.Where(a => a.USUARIO_ID.Equals(user.ID)).ToList(); ViewBag.usuario = user; ViewBag.returnUrl = Request.Url.PathAndQuery;; ViewBag.rol = user.PUESTO.PUESTOTs.Where(a => a.SPRAS_ID.Equals(user.SPRAS_ID)).FirstOrDefault().TXT50; ViewBag.Title = db.PAGINAs.Where(a => a.ID.Equals(pagina)).FirstOrDefault().PAGINATs.Where(b => b.SPRAS_ID.Equals(user.SPRAS_ID)).FirstOrDefault().TXT50; ViewBag.warnings = db.WARNINGVs.Where(a => (a.PAGINA_ID.Equals(pagina) || a.PAGINA_ID.Equals(0)) && a.SPRAS_ID.Equals(user.SPRAS_ID)).ToList(); ViewBag.textos = db.TEXTOes.Where(a => (a.PAGINA_ID.Equals(811) || a.PAGINA_ID.Equals(0)) && a.SPRAS_ID.Equals(user.SPRAS_ID)).ToList(); try { string p = Session["pais"].ToString(); ViewBag.pais = p + ".svg"; } catch { //ViewBag.pais = "mx.svg"; //return RedirectToAction("Pais", "Home"); } Session["spras"] = user.SPRAS_ID; ViewBag.lan = user.SPRAS_ID; } //Solo añadire a una tercer lista las sociedades disponibles List <TAX_LAND> lstT = db.TAX_LAND.ToList(); List <SOCIEDAD> lstS = db.SOCIEDADs.ToList(); List <SOCIEDAD> lstSoc = new List <SOCIEDAD>(); for (int y = 0; y < lstS.Count; y++) { //SOCIEDAD sc = lstT.Where(x => x.SOCIEDAD_ID == lstS[y].BUKRS).FirstOrDefault(); TAX_LAND sc = lstT.Where(x => x.SOCIEDAD_ID == lstS[y].BUKRS).FirstOrDefault(); if (sc == null) { lstSoc.Add(lstS[y]); } } //ViewBag.Sociedad = new SelectList(lstSoc, "BUKRS", "BUKRS"); ViewBag.SOCIEDAD_ID = new SelectList(db.SOCIEDADs, "BUKRS", "BUTXT"); ViewBag.PAIS_ID = new SelectList(db.PAIS, "LAND", "LANDX"); return(View()); }
// GET: Txl/Edit/5 public ActionResult Edit(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } TAX_LAND tAX_LAND = db.TAX_LAND.Find(id); if (tAX_LAND == null) { return(HttpNotFound()); } ViewBag.PAIS_ID = new SelectList(db.PAIS, "LAND", "SPRAS", tAX_LAND.PAIS_ID); return(View(tAX_LAND)); }
public ActionResult Create([Bind(Include = "SOCIEDAD_ID,PAIS_ID,ACTIVO")] TAX_LAND tAX_LAND) { if (ModelState.IsValid) { tAX_LAND.SOCIEDAD_ID = tAX_LAND.SOCIEDAD_ID; tAX_LAND.PAIS_ID = tAX_LAND.PAIS_ID; tAX_LAND.ACTIVO = true; db.TAX_LAND.Add(tAX_LAND); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.SOCIEDAD_ID = new SelectList(db.SOCIEDADs, "BUKRS", "BUTXT", tAX_LAND.SOCIEDAD_ID); ViewBag.PAIS_ID = new SelectList(db.PAIS, "LAND", "LAND", tAX_LAND.PAIS_ID); return(View(tAX_LAND)); }
// GET: Txl/Delete/5 public ActionResult Delete(string sid, string pid) { int pagina = 813; //ID EN BASE DE DATOS using (TAT001Entities db = new TAT001Entities()) { string u = User.Identity.Name; //string u = "admin"; var user = db.USUARIOs.Where(a => a.ID.Equals(u)).FirstOrDefault(); ViewBag.permisos = db.PAGINAVs.Where(a => a.ID.Equals(user.ID)).ToList(); ViewBag.carpetas = db.CARPETAVs.Where(a => a.USUARIO_ID.Equals(user.ID)).ToList(); ViewBag.usuario = user; ViewBag.returnUrl = Request.Url.PathAndQuery;; ViewBag.rol = user.PUESTO.PUESTOTs.Where(a => a.SPRAS_ID.Equals(user.SPRAS_ID)).FirstOrDefault().TXT50; ViewBag.Title = db.PAGINAs.Where(a => a.ID.Equals(pagina)).FirstOrDefault().PAGINATs.Where(b => b.SPRAS_ID.Equals(user.SPRAS_ID)).FirstOrDefault().TXT50; ViewBag.warnings = db.WARNINGVs.Where(a => (a.PAGINA_ID.Equals(pagina) || a.PAGINA_ID.Equals(0)) && a.SPRAS_ID.Equals(user.SPRAS_ID)).ToList(); ViewBag.textos = db.TEXTOes.Where(a => (a.PAGINA_ID.Equals(811) || a.PAGINA_ID.Equals(0)) && a.SPRAS_ID.Equals(user.SPRAS_ID)).ToList(); try { string p = Session["pais"].ToString(); ViewBag.pais = p + ".svg"; } catch { //ViewBag.pais = "mx.svg"; //return RedirectToAction("Pais", "Home"); } Session["spras"] = user.SPRAS_ID; ViewBag.lan = user.SPRAS_ID; } if (sid == null && pid == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } TAX_LAND tAX_LAND = db.TAX_LAND.Where(x => x.SOCIEDAD_ID == sid && x.PAIS_ID == pid).FirstOrDefault(); if (tAX_LAND == null) { return(HttpNotFound()); } return(View(tAX_LAND)); }
public string procesa(FLUJO f, string recurrente) { string correcto = String.Empty; TAT001Entities db = new TAT001Entities(); FLUJO actual = new FLUJO(); if (f.ESTATUS.Equals("I"))//---------------------------NUEVO REGISTRO { actual.NUM_DOC = f.NUM_DOC; DOCUMENTO d = db.DOCUMENTOes.Find(actual.NUM_DOC); actual.COMENTARIO = f.COMENTARIO; actual.ESTATUS = f.ESTATUS; actual.FECHAC = f.FECHAC; actual.FECHAM = f.FECHAM; actual.LOOP = f.LOOP; actual.NUM_DOC = f.NUM_DOC; actual.POS = f.POS; //DET_AGENTEC dah = db.DET_AGENTEC.Where(a => a.USUARIOC_ID.Equals(d.USUARIOD_ID) & a.PAIS_ID == d.PAIS_ID & // a.VKORG.Equals(d.VKORG) & a.VTWEG.Equals(d.VTWEG) & a.SPART.Equals(d.SPART) & a.KUNNR.Equals(d.PAYER_ID)) // .OrderByDescending(a => a.VERSION).FirstOrDefault(); CLIENTEF cf = db.CLIENTEFs.Where(a => a.VKORG.Equals(d.VKORG) & a.VTWEG.Equals(d.VTWEG) & a.SPART.Equals(d.SPART) & a.KUNNR.Equals(d.PAYER_ID) ).OrderByDescending(a => a.VERSION).FirstOrDefault(); actual.DETPOS = 1; actual.DETVER = cf.VERSION; actual.USUARIOA_ID = f.USUARIOA_ID; actual.USUARIOD_ID = f.USUARIOD_ID; actual.WF_POS = f.WF_POS; actual.WF_VERSION = f.WF_VERSION; actual.WORKF_ID = f.WORKF_ID; f.ESTATUS = "A"; actual.ESTATUS = f.ESTATUS; db.FLUJOes.Add(actual); WORKFP paso_a = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS.Equals(actual.WF_POS)).FirstOrDefault(); int next_step_a = 0; if (paso_a.NEXT_STEP != null) { next_step_a = (int)paso_a.NEXT_STEP; } WORKFP next = new WORKFP(); if (recurrente != "X") { next = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS == next_step_a).FirstOrDefault(); } else { WORKFP autoriza = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.ACCION_ID == 5).FirstOrDefault(); next = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS == autoriza.NS_ACCEPT).FirstOrDefault(); } if (next.NEXT_STEP.Equals(99))//--------FIN DEL WORKFLOW { d.ESTATUS_WF = "A"; if (paso_a.EMAIL.Equals("X")) { correcto = "2"; } } else { //DOCUMENTO d = db.DOCUMENTOes.Find(actual.NUM_DOC); FLUJO nuevo = new FLUJO(); nuevo.WORKF_ID = next.ID; nuevo.WF_VERSION = next.VERSION; nuevo.WF_POS = next.POS; nuevo.NUM_DOC = actual.NUM_DOC; nuevo.POS = actual.POS + 1; nuevo.LOOP = 1; if (next.ACCION.TIPO == "E") { nuevo.USUARIOA_ID = null; nuevo.DETPOS = 0; nuevo.DETVER = 0; } else { if (recurrente != "X") { FLUJO detA = determinaAgenteI(cf); nuevo.USUARIOA_ID = detA.USUARIOA_ID; nuevo.USUARIOD_ID = nuevo.USUARIOA_ID; DateTime fecha = DateTime.Now.Date; DELEGAR del = db.DELEGARs.Where(a => a.USUARIO_ID.Equals(nuevo.USUARIOD_ID) & a.FECHAI <= fecha & a.FECHAF >= fecha & a.ACTIVO == true).FirstOrDefault(); if (del != null) { nuevo.USUARIOA_ID = del.USUARIOD_ID; } else { nuevo.USUARIOA_ID = nuevo.USUARIOD_ID; } nuevo.DETPOS = detA.DETPOS; nuevo.DETVER = cf.VERSION; } else { nuevo.USUARIOA_ID = null; nuevo.DETPOS = 0; nuevo.DETVER = 0; } } nuevo.ESTATUS = "P"; nuevo.FECHAC = DateTime.Now; nuevo.FECHAM = DateTime.Now; if (paso_a.EMAIL.Equals("X")) { correcto = "1"; } d.ESTATUS_WF = "P"; db.FLUJOes.Add(nuevo); db.Entry(d).State = EntityState.Modified; db.SaveChanges(); } } else if (f.ESTATUS.Equals("A")) //---------------------EN PROCESO DE APROBACIÓN { actual = db.FLUJOes.Where(a => a.NUM_DOC.Equals(f.NUM_DOC) & a.POS == f.POS).OrderByDescending(a => a.POS).FirstOrDefault(); if (!actual.ESTATUS.Equals("P")) { return("1");//-----------------YA FUE PROCESADA } else { var wf = actual.WORKFP; actual.ESTATUS = f.ESTATUS; actual.FECHAM = f.FECHAM; actual.COMENTARIO = f.COMENTARIO; actual.USUARIOA_ID = f.USUARIOA_ID; db.Entry(actual).State = EntityState.Modified; WORKFP paso_a = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS.Equals(actual.WF_POS)).FirstOrDefault(); bool ban = true; while (ban) //--------------PARA LOOP { int next_step_a = 0; int next_step_r = 0; if (paso_a.NEXT_STEP != null) { next_step_a = (int)paso_a.NEXT_STEP; } if (paso_a.NS_ACCEPT != null) { next_step_a = (int)paso_a.NS_ACCEPT; } if (paso_a.NS_REJECT != null) { next_step_r = (int)paso_a.NS_REJECT; } WORKFP next = new WORKFP(); if (paso_a.ACCION.TIPO == "A" | paso_a.ACCION.TIPO == "N" | paso_a.ACCION.TIPO == "R" | paso_a.ACCION.TIPO == "T" | paso_a.ACCION.TIPO == "E" | paso_a.ACCION.TIPO == "B" | paso_a.ACCION.TIPO == "M") //Si está en proceso de aprobación { if (f.ESTATUS.Equals("A") | f.ESTATUS.Equals("N") | f.ESTATUS.Equals("M")) //APROBAR SOLICITUD { DOCUMENTO d = db.DOCUMENTOes.Find(actual.NUM_DOC); next = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS == next_step_a).FirstOrDefault(); FLUJO nuevo = new FLUJO(); nuevo.WORKF_ID = paso_a.ID; nuevo.WF_VERSION = paso_a.VERSION; nuevo.WF_POS = next.POS; nuevo.NUM_DOC = actual.NUM_DOC; nuevo.POS = actual.POS + 1; nuevo.LOOP = 1; FLUJO detA = new FLUJO(); if (paso_a.ACCION.TIPO == "N") { actual.DETPOS = actual.DETPOS - 1; } int sop = 99; if (next.ACCION.TIPO == "S") { sop = 98; } //detA = determinaAgente(d, actual.USUARIOA_ID, actual.USUARIOD_ID, actual.DETPOS, next.LOOPS, sop); CLIENTEF cf = db.CLIENTEFs.Where(a => a.VKORG.Equals(d.VKORG) & a.VTWEG.Equals(d.VTWEG) & a.SPART.Equals(d.SPART) & a.KUNNR.Equals(d.PAYER_ID) ).OrderByDescending(a => a.VERSION).FirstOrDefault(); detA = determinaAgenteC(d, cf, actual.DETPOS, sop, paso_a.ACCION.TIPO); //nuevo.USUARIOA_ID = detA.USUARIOA_ID; nuevo.USUARIOD_ID = detA.USUARIOA_ID; DateTime fecha = DateTime.Now.Date; DELEGAR del = db.DELEGARs.Where(a => a.USUARIO_ID.Equals(nuevo.USUARIOD_ID) & a.FECHAI <= fecha & a.FECHAF >= fecha & a.ACTIVO == true).FirstOrDefault(); if (del != null) { nuevo.USUARIOA_ID = del.USUARIOD_ID; } else { nuevo.USUARIOA_ID = nuevo.USUARIOD_ID; } nuevo.DETPOS = detA.DETPOS; nuevo.DETVER = actual.DETVER; if (paso_a.ACCION.TIPO == "N") { nuevo.DETPOS = nuevo.DETPOS + 1; actual.DETPOS = actual.DETPOS + 1; } if (d.DOCUMENTORECs.Count > 0) { recurrente = "X"; } if (nuevo.DETPOS == 0 | nuevo.DETPOS == 99) { next = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS == next_step_a).FirstOrDefault(); if (recurrente == "X" & next.ACCION.TIPO.Equals("P")) { next = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS == next_step_a).FirstOrDefault(); if (next.NEXT_STEP != null) { next_step_a = (int)next.NEXT_STEP; } if (next.NS_ACCEPT != null) { next_step_a = (int)next.NS_ACCEPT; } next = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS == next_step_a).FirstOrDefault(); } if (next.NEXT_STEP.Equals(99))//--------FIN DEL WORKFLOW { //DOCUMENTO d = db.DOCUMENTOes.Find(actual.NUM_DOC); d.ESTATUS_WF = "A"; if (paso_a.EMAIL.Equals("X")) { correcto = "2"; } if (recurrente == "X") { FLUJO nuevos = new FLUJO(); nuevos.WORKF_ID = paso_a.ID; nuevos.WF_VERSION = paso_a.VERSION; nuevos.WF_POS = next.POS; nuevos.NUM_DOC = actual.NUM_DOC; nuevos.POS = actual.POS + 1; nuevos.ESTATUS = "A"; nuevos.FECHAC = DateTime.Now; nuevos.FECHAM = DateTime.Now; d.ESTATUS = "A"; db.FLUJOes.Add(nuevos); //db.SaveChanges(); ban = false; } } else { //DOCUMENTO d = db.DOCUMENTOes.Find(actual.NUM_DOC); //FLUJO nuevo = new FLUJO(); nuevo.WORKF_ID = next.ID; nuevo.WF_VERSION = next.VERSION; nuevo.WF_POS = next.POS + detA.POS; nuevo.NUM_DOC = actual.NUM_DOC; nuevo.POS = actual.POS + 1; nuevo.LOOP = 1;//----------------------------------- //FLUJO detA = determinaAgente(d, actual.USUARIOA_ID, actual.USUARIOD_ID, 0); //nuevo.USUARIOA_ID = "admin"; //nuevo.DETPOS = 1; bool finR = false; d.ESTATUS_WF = "P"; if (next.ACCION.TIPO.Equals("T")) { TAX_LAND tl = db.TAX_LAND.Where(a => a.SOCIEDAD_ID.Equals(d.SOCIEDAD_ID) & a.PAIS_ID.Equals(d.PAIS_ID) & a.ACTIVO == true).FirstOrDefault(); if (tl != null & cf.USUARIO7_ID != null) { nuevo.USUARIOA_ID = db.DET_TAXEOC.Where(a => a.USUARIOC_ID.Equals(d.USUARIOD_ID) & a.PAIS_ID.Equals(d.PAIS_ID) & a.KUNNR == d.PAYER_ID & a.ACTIVO == true).FirstOrDefault().USUARIOA_ID; nuevo.USUARIOA_ID = cf.USUARIO7_ID; d.ESTATUS_WF = "T"; } else { nuevo.WF_POS = nuevo.WF_POS + 1; nuevo.USUARIOA_ID = null; d.ESTATUS_WF = "A"; d.ESTATUS_SAP = "P"; if (recurrente == "X") { nuevo.WF_POS++; d.ESTATUS_SAP = ""; finR = true; } } } else if (paso_a.ACCION.TIPO == "E") { nuevo.USUARIOA_ID = null; } else { if (nuevo.DETPOS == 0) { nuevo.USUARIOA_ID = null; d.ESTATUS_WF = "A"; d.ESTATUS_SAP = "P"; } } nuevo.ESTATUS = "P"; nuevo.FECHAC = DateTime.Now; nuevo.FECHAM = DateTime.Now; if (finR) { nuevo.ESTATUS = "A"; d.ESTATUS = "A"; } db.FLUJOes.Add(nuevo); if (paso_a.EMAIL.Equals("X")) { correcto = "1"; } } } //else if(nuevo.DETPOS == 99) //{ // next = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS == next_step_a).FirstOrDefault(); //} else { //nuevo.USUARIOD_ID nuevo.ESTATUS = "P"; nuevo.FECHAC = DateTime.Now; nuevo.FECHAM = DateTime.Now; nuevo.WF_POS = nuevo.WF_POS + detA.POS; db.FLUJOes.Add(nuevo); if (paso_a.EMAIL.Equals("X")) { correcto = "1"; } d.ESTATUS_WF = "P"; } if (nuevo.DETPOS.Equals(98)) { d.ESTATUS_WF = "S"; } db.Entry(d).State = EntityState.Modified; db.SaveChanges(); ban = false; } } else if (paso_a.ACCION.TIPO == "P") { if (f.ESTATUS.Equals("A") | f.ESTATUS.Equals("N"))//APROBAR SOLICITUD { DOCUMENTO d = db.DOCUMENTOes.Find(actual.NUM_DOC); ArchivoContable sa = new ArchivoContable(); string file = sa.generarArchivo(d.NUM_DOC, 0); if (file == "") { next = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS == next_step_a).FirstOrDefault(); FLUJO nuevo = new FLUJO(); nuevo.WORKF_ID = paso_a.ID; nuevo.WF_VERSION = paso_a.VERSION; nuevo.WF_POS = next.POS; nuevo.NUM_DOC = actual.NUM_DOC; nuevo.POS = actual.POS + 1; nuevo.ESTATUS = "A"; nuevo.FECHAC = DateTime.Now; nuevo.FECHAM = DateTime.Now; d.ESTATUS = "A"; correcto = file; db.FLUJOes.Add(nuevo); db.SaveChanges(); ban = false; } else { ban = false; correcto = file; } } } else if (paso_a.ACCION.TIPO == "S") { if (f.ESTATUS.Equals("A") | f.ESTATUS.Equals("N"))//APROBAR SOLICITUD { DOCUMENTO d = db.DOCUMENTOes.Find(actual.NUM_DOC); next = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS == next_step_a).FirstOrDefault(); FLUJO nuevo = new FLUJO(); nuevo.WORKF_ID = paso_a.ID; nuevo.WF_VERSION = paso_a.VERSION; nuevo.WF_POS = next.POS; nuevo.NUM_DOC = actual.NUM_DOC; nuevo.POS = actual.POS + 1; nuevo.LOOP = 1;//-----------------------------------cc //int loop = db.FLUJOes.Where(a => a.WORKF_ID.Equals(next.ID) & a.WF_VERSION.Equals(next.VERSION) & a.WF_POS == next.POS & a.NUM_DOC.Equals(actual.NUM_DOC) & a.ESTATUS.Equals("A")).Count(); //if (loop >= next.LOOPS) //{ // paso_a = next; // continue; //} //if (loop != 0) // nuevo.LOOP = loop + 1; //else // nuevo.LOOP = 1; if (paso_a.ACCION.TIPO == "N") { actual.DETPOS = actual.DETPOS - 1; } //FLUJO detA = determinaAgente(d, actual.USUARIOA_ID, actual.USUARIOD_ID, 98, next.LOOPS, 98); CLIENTEF cf = db.CLIENTEFs.Where(a => a.VKORG.Equals(d.VKORG) & a.VTWEG.Equals(d.VTWEG) & a.SPART.Equals(d.SPART) & a.KUNNR.Equals(d.PAYER_ID) ).OrderByDescending(a => a.VERSION).FirstOrDefault(); FLUJO detA = determinaAgenteC(d, cf, 98, 98, "S"); nuevo.USUARIOD_ID = detA.USUARIOA_ID; DateTime fecha = DateTime.Now.Date; DELEGAR del = db.DELEGARs.Where(a => a.USUARIO_ID.Equals(nuevo.USUARIOD_ID) & a.FECHAI <= fecha & a.FECHAF >= fecha & a.ACTIVO == true).FirstOrDefault(); if (del != null) { nuevo.USUARIOA_ID = del.USUARIOD_ID; } else { nuevo.USUARIOA_ID = nuevo.USUARIOD_ID; } nuevo.DETPOS = detA.DETPOS; nuevo.DETVER = actual.DETVER; if (paso_a.ACCION.TIPO == "N") { nuevo.DETPOS = nuevo.DETPOS + 1; actual.DETPOS = actual.DETPOS + 1; } if (nuevo.DETPOS == 0 | nuevo.DETPOS == 99) { next = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS == next_step_a).FirstOrDefault(); if (next.NEXT_STEP.Equals(99))//--------FIN DEL WORKFLOW { //DOCUMENTO d = db.DOCUMENTOes.Find(actual.NUM_DOC); d.ESTATUS_WF = "A"; if (paso_a.EMAIL.Equals("X")) { correcto = "2"; } } else { //DOCUMENTO d = db.DOCUMENTOes.Find(actual.NUM_DOC); //FLUJO nuevo = new FLUJO(); nuevo.WORKF_ID = next.ID; nuevo.WF_VERSION = next.VERSION; nuevo.WF_POS = next.POS + detA.POS; nuevo.NUM_DOC = actual.NUM_DOC; nuevo.POS = actual.POS + 1; nuevo.LOOP = 1; //----------------------------------- //int loop1 = db.FLUJOes.Where(a => a.WORKF_ID.Equals(next.ID) & a.WF_VERSION.Equals(next.VERSION) & a.WF_POS == next.POS & a.NUM_DOC.Equals(actual.NUM_DOC) & a.ESTATUS.Equals("A")).Count(); //if (loop1 >= next.LOOPS) //{ // paso_a = next; // continue; //} //if (loop1 != 0) // nuevo.LOOP = loop1 + 1; //else // nuevo.LOOP = 1; //FLUJO detA = determinaAgente(d, actual.USUARIOA_ID, actual.USUARIOD_ID, 0); //nuevo.USUARIOA_ID = "admin"; //nuevo.DETPOS = 1; d.ESTATUS_WF = "P"; if (nuevo.DETPOS == 0) { nuevo.USUARIOA_ID = null; d.ESTATUS_WF = "A"; d.ESTATUS_SAP = "P"; } nuevo.ESTATUS = "P"; nuevo.FECHAC = DateTime.Now; nuevo.FECHAM = DateTime.Now; db.FLUJOes.Add(nuevo); if (paso_a.EMAIL.Equals("X")) { correcto = "1"; } } } //else if(nuevo.DETPOS == 99) //{ // next = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS == next_step_a).FirstOrDefault(); //} else { //nuevo.USUARIOD_ID nuevo.ESTATUS = "P"; nuevo.FECHAC = DateTime.Now; nuevo.FECHAM = DateTime.Now; nuevo.WF_POS = nuevo.WF_POS + detA.POS; db.FLUJOes.Add(nuevo); if (paso_a.EMAIL.Equals("X")) { correcto = "1"; } d.ESTATUS_WF = "P"; } db.Entry(d).State = EntityState.Modified; db.SaveChanges(); ban = false; } } } } } else if (f.ESTATUS.Equals("R"))//Rechazada { actual = db.FLUJOes.Where(a => a.NUM_DOC.Equals(f.NUM_DOC)).OrderByDescending(a => a.POS).FirstOrDefault(); WORKFP paso_a = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS.Equals(actual.WF_POS)).FirstOrDefault(); int next_step_a = 0; int next_step_r = 0; if (paso_a.NEXT_STEP != null) { next_step_a = (int)paso_a.NEXT_STEP; } if (paso_a.NS_ACCEPT != null) { next_step_a = (int)paso_a.NS_ACCEPT; } if (paso_a.NS_REJECT != null) { next_step_r = (int)paso_a.NS_REJECT; } WORKFP next = new WORKFP(); next = db.WORKFPs.Where(a => a.ID.Equals(actual.WORKF_ID) & a.VERSION.Equals(actual.WF_VERSION) & a.POS == next_step_r).FirstOrDefault(); correcto = "3"; actual.ESTATUS = f.ESTATUS; actual.FECHAM = f.FECHAM; actual.COMENTARIO = f.COMENTARIO; FLUJO nuevo = new FLUJO(); nuevo.WORKF_ID = next.ID; nuevo.WF_VERSION = next.VERSION; nuevo.WF_POS = next.POS; nuevo.NUM_DOC = actual.NUM_DOC; nuevo.POS = actual.POS + 1; nuevo.DETPOS = 1; nuevo.DETVER = actual.DETVER; nuevo.LOOP = 1;//----------------------------------- DOCUMENTO d = db.DOCUMENTOes.Find(actual.NUM_DOC); nuevo.USUARIOD_ID = d.USUARIOD_ID; DateTime fecha = DateTime.Now.Date; DELEGAR del = db.DELEGARs.Where(a => a.USUARIO_ID.Equals(nuevo.USUARIOD_ID) & a.FECHAI <= fecha & a.FECHAF >= fecha & a.ACTIVO == true).FirstOrDefault(); if (del != null) { nuevo.USUARIOA_ID = del.USUARIOD_ID; } else { nuevo.USUARIOA_ID = nuevo.USUARIOD_ID; } //nuevo.USUARIOD_ID nuevo.ESTATUS = "P"; nuevo.FECHAC = DateTime.Now; nuevo.FECHAM = DateTime.Now; db.FLUJOes.Add(nuevo); db.Entry(actual).State = EntityState.Modified; d.ESTATUS_WF = "R"; if (next.ACCION.TIPO == "S") { d.ESTATUS = "R"; d.ESTATUS_WF = "S"; } db.SaveChanges(); } //-------------------------------------------------------------------------------------------------------------------------------// //-------------------------------------------------------------------------------------------------------------------------------// //-------------------------------------------------------------------------------------------------------------------------------// //-------------------------------------------------------------------------------------------------------------------------------// //-------------------------------------------------------------------------------------------------------------------------------// if (correcto.Equals("")) { FLUJO conta = db.FLUJOes.Where(x => x.NUM_DOC == f.NUM_DOC).Include(x => x.WORKFP).OrderByDescending(x => x.POS).FirstOrDefault(); string corr = ""; if (conta.WORKFP.ACCION.TIPO == "P") { conta.ESTATUS = "A"; conta.FECHAM = DateTime.Now; corr = procesa(conta, recurrente); } if (corr == "") { if (f.DOCUMENTO.DOCUMENTO_REF != null) { f.DOCUMENTO.TSOL = db.DOCUMENTOes.Where(x => x.NUM_DOC == f.NUM_DOC).FirstOrDefault().TSOL; if (f.DOCUMENTO.TSOL.REVERSO == false) { DOCUMENTO rel = db.DOCUMENTOes.Where(x => x.DOCUMENTO_REF == f.DOCUMENTO.DOCUMENTO_REF & x.TSOL.REVERSO == true).FirstOrDefault(); if (rel != null) { FLUJO rev = db.FLUJOes.Where(x => x.NUM_DOC == rel.NUM_DOC).Include(x => x.WORKFP).OrderByDescending(x => x.POS).FirstOrDefault(); rev.ESTATUS = "A"; rev.FECHAM = DateTime.Now; corr = procesa(rev, recurrente); } } } } } //else if (correcto.Equals("1")) //{ // FLUJO conta = db.FLUJOes.Where(x => x.NUM_DOC == f.NUM_DOC).Include(x => x.WORKFP).OrderByDescending(x => x.POS).FirstOrDefault(); // string corr = ""; // if (conta.WORKFP.ACCION.TIPO == "B") // { // Email em = new Email(); // em.enviaMailC(f.NUM_DOC, false, null, ) // } //} return(correcto); }
public ActionResult AgregarRol(USUARIO u) { int rol = Int32.Parse(Request.Form["txt_rol"].ToString()); string soc = Request.Form["txt_soc"].ToString(); string pais = Request.Form["txt_pai"].ToString(); MIEMBRO m = db.MIEMBROS.Where(a => a.USUARIO_ID.Equals(u.ID) & a.ROL_ID == rol).FirstOrDefault(); if (m == null) { m = new MIEMBRO(); m.ROL_ID = rol; m.USUARIO_ID = u.ID; m.ACTIVO = true; db.MIEMBROS.Add(m); } //List<DET_APROB> dd = db.DET_APROB.Where(a => a.PUESTOC_ID == u.PUESTO_ID & a.BUKRS.Equals(soc)).ToList(); GAUTORIZACION ga = new GAUTORIZACION(); ga.LAND = pais; ga.BUKRS = soc; ga.CLAVE = pais; ga.NOMBRE = soc; //db.GAUTORIZACIONs.Add(ga); USUARIO user = db.USUARIOs.Find(u.ID); user.GAUTORIZACIONs.Add(ga); db.Entry(user).State = EntityState.Modified; db.SaveChanges(); ////foreach (DET_APROB d in dd) ////{ //// DET_AGENTE da = new DET_AGENTE(); //// da.PUESTOC_ID = (int)u.PUESTO_ID; //// da.USUARIOC = u.ID; //// da.POS = d.POS; //// da.PUESTOA_ID = d.PUESTOA_ID; //// da.USUARIOA = Request.Form["txt_p-" + d.PUESTOA_ID].ToString(); //// da.ACTIVO = true; //// da.AGROUP_ID = ga.ID; //// da.MONTO = d.MONTO; //// da.PRESUPUESTO = d.PRESUPUESTO; //// db.DET_AGENTE.Add(da); //// string us = Request.Form["txt_p-" + d.PUESTOA_ID].ToString(); //// USUARIO uu = db.USUARIOs.Find(us); //// uu.GAUTORIZACIONs.Add(ga); //// db.Entry(uu).State = EntityState.Modified; //// MIEMBRO mi = db.MIEMBROS.Where(a => a.USUARIO_ID.Equals(uu.ID) & a.ROL_ID == 2).FirstOrDefault(); //// if (mi == null) //// { //// mi = new MIEMBRO(); //// mi.ROL_ID = 2; //// mi.USUARIO_ID = uu.ID; //// mi.ACTIVO = true; //// db.MIEMBROS.Add(mi); //// } //// db.SaveChanges(); ////} //string rol = Request.Form["txt_p-3"].ToString(); DET_APROBH dh = db.DET_APROBH.Where(a => a.SOCIEDAD_ID.Equals(soc) & a.PUESTOC_ID == u.PUESTO_ID).OrderByDescending(a => a.VERSION).FirstOrDefault(); if (dh != null) { DET_AGENTEH dah = new DET_AGENTEH(); dah.SOCIEDAD_ID = dh.SOCIEDAD_ID; dah.PUESTOC_ID = (int)u.PUESTO_ID; dah.VERSION = dh.VERSION; dah.AGROUP_ID = (int)ga.ID; dah.USUARIOC_ID = u.ID; dah.ACTIVO = true; db.DET_AGENTEH.Add(dah); db.SaveChanges(); List <DET_APROBP> ddp = db.DET_APROBP.Where(a => a.SOCIEDAD_ID.Equals(soc) & a.PUESTOC_ID == u.PUESTO_ID & a.VERSION == dh.VERSION).ToList(); foreach (DET_APROBP dp in ddp) { DET_AGENTEP dap = new DET_AGENTEP(); dap.SOCIEDAD_ID = dah.SOCIEDAD_ID; dap.PUESTOC_ID = dah.PUESTOC_ID; dap.VERSION = dah.VERSION; dap.AGROUP_ID = dah.AGROUP_ID; dap.POS = dp.POS; dap.PUESTOA_ID = dp.PUESTOA_ID; dap.USUARIOA_ID = Request.Form["txt_p-" + dp.PUESTOA_ID].ToString(); dap.MONTO = dp.MONTO; dap.PRESUPUESTO = dp.PRESUPUESTO; dap.ACTIVO = true; dah.DET_AGENTEP.Add(dap); //dgp.Add(dap); ////string us = dap.USUARIOA_ID; ////USUARIO uu = db.USUARIOs.Find(us); ////uu.GAUTORIZACIONs.Add(ga); ////db.Entry(uu).State = EntityState.Modified; ////MIEMBRO mi = db.MIEMBROS.Where(a => a.USUARIO_ID.Equals(uu.ID) & a.ROL_ID == 2).FirstOrDefault(); ////if (mi == null) ////{ //// mi = new MIEMBRO(); //// mi.ROL_ID = 2; //// mi.USUARIO_ID = uu.ID; //// mi.ACTIVO = true; //// db.MIEMBROS.Add(mi); ////} } TAX_LAND tl = db.TAX_LAND.Where(a => a.SOCIEDAD_ID.Equals(soc) & a.ACTIVO == true).FirstOrDefault(); if (tl != null) { DET_TAXEO dt = new DET_TAXEO(); dt.SOCIEDAD_ID = soc; dt.PAIS_ID = pais; dt.PUESTOC_ID = dah.PUESTOC_ID; dt.USUARIOC_ID = dah.USUARIOC_ID; dt.VERSION = dah.VERSION; dt.PUESTOA_ID = 9; dt.USUARIOA_ID = Request.Form["txt_p-9"].ToString(); dt.ACTIVO = true; db.DET_TAXEO.Add(dt); } db.SaveChanges(); } return(RedirectToAction("Details", new { id = u.ID })); }