public override bool ValidateFile() { if (isValid()) { var connB1 = B1Connection.Instance(); if (!connB1.connectedtoHana) { addError("Error en SAP", "No se puedo conectar con SAP B1, es posible que algunas validaciones cruzadas con SAP no sean ejecutadas"); } bool v1 = VerifyBP(1, 2, process.BranchesId, user); bool v2 = VerifyColumnValueIn(3, _context.Dependencies.Where(x => x.BranchesId == this.process.BranchesId).Select(x => x.Cod).ToList(), comment: "Esta Dependencia no es Válida"); var pei = connB1.getCostCenter(B1Connection.Dimension.PEI).Cast <string>().ToList(); bool v3 = VerifyColumnValueIn(4, pei, comment: "Este PEI no existe en SAP."); bool v4 = VerifyLength(5, 50); bool v5 = VerifyLength(6, 50); bool v6 = VerifyColumnValueIn(7, new List <string> { "CC_ACADEMICA", "CC_SOCIAL", "CC_DEPORTIVA", "CC_CULTURAL", "CC_PASTORAL", "CC_OTROS", "CC_TEMPORAL" }, comment: "No existe este tipo de Cuenta Asignada."); bool v7 = VerifyTotal(); bool v8 = true; foreach (var i in new List <int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }) { v8 = VerifyNotEmpty(i) && v8; } return(v1 && v2 && v3 && v4 && v5 && v6 && v7 && v8); } return(false); }
public override bool ValidateFile() { var connB1 = B1Connection.Instance(); if (!connB1.connectedtoHana) { addError("Error en SAP", "No se puedo conectar con SAP B1, es posible que algunas validaciones cruzadas con SAP no sean ejecutadas"); } int brId = Int32.Parse(this.segmentoOrigen); bool v1 = VerifyPerson(ci: 1, CUNI: 16, fullname: 2, personActive: false); bool v2 = VerifyColumnValueIn(6, _context.TipoEmpleadoDists.Select(x => x.Name).ToList(), comment: "Este Tipo empleado no es valido."); bool v3 = VerifyParalel(cod: 19, periodo: 7, sigla: 8, paralelo: 9, dependency: 17, branch: brId); bool v4 = VerifyColumnValueIn(12, new List <string> { "PA", "PI", "TH" }); var pei = connB1.getCostCenter(B1Connection.Dimension.PEI, mes: this.mes, gestion: this.gestion).Cast <string>().ToList(); pei.Add("0"); bool v5 = VerifyColumnValueIn(18, pei, comment: "Este PEI no existe en SAP."); bool v6 = VerifyColumnValueIn(11, new List <string> { "0" }, comment: "Este valor no puede ser 0", notin: true); bool v7 = VerifyColumnValueIn(15, new List <string> { "0" }, comment: "Este valor no puede ser 0", notin: true); bool v0 = isValid(); var xx = valid; //return v0 && v1 && v2 && v4 && v7 && v8 && v6 && v5;//v3 return(v0 && v1 && v2 && v3 && v4 && v5 && v6 && v7); }
public ContractController() { _context = new ApplicationDbContext(); auth = new ValidateAuth(); B1 = B1Connection.Instance(); AD = new ADClass(); }
public IHttpActionResult addalltoSAP() { var date = new DateTime(2017, 1, 1); List <People> person = _context.ContractDetails.Include(x => x.People).Include(x => x.Positions). Where(y => (y.EndDate > date || y.EndDate == null) && y.DependencyId == 189 ).Select(x => x.People).Distinct().ToList(); //string query = "SELECT p.* FROM ADMNALRRHH.\"People\" p\r\ninner join ucatolica.ocrd bp\r\non concat(\'R\', p.cuni) = bp.\"CardCode\""; //List<People> person = _context.Database.SqlQuery<People>(query).ToList(); //person = person.Where(x => x.CUNI == "RFA940908").ToList(); B1Connection b1 = B1Connection.Instance(); var usr = auth.getUser(Request); int i = 0; foreach (var p in person) { i++; var X = b1.AddOrUpdatePerson(usr.Id, p); if (X.Contains("ERROR")) { X = ""; } } return(Ok()); }
public PeopleController() { _context = new ApplicationDbContext(); validator = new ValidatePerson(_context); auth = new ValidateAuth(); activeDirectory = new ADClass(); B1 = B1Connection.Instance(); }
private bool verifyproject(int dependency, int sheet = 1) { string commnet = "Este proyecto no existe en SAP."; var connB1 = B1Connection.Instance(); var br = _context.Branch.FirstOrDefault(x => x.Id == process.BranchesId); var list = connB1.getProjects("*").Where(x => x.U_Sucursal == br.Abr).Select(x => new { x.PrjCode, x.U_UORGANIZA }).ToList(); int index = 6; int tipoproy = 11; bool res = true; IXLRange UsedRange = wb.Worksheet(sheet).RangeUsed(); for (int i = headerin + 1; i <= UsedRange.LastRow().RowNumber(); i++) { var strproject = index != -1 ? wb.Worksheet(sheet).Cell(i, index).Value.ToString() : null; var strdependency = dependency != -1 ? wb.Worksheet(sheet).Cell(i, dependency).Value.ToString() : null; var dep = _context.Dependencies.Where(x => x.BranchesId == br.Id).Include(x => x.OrganizationalUnit).FirstOrDefault(x => x.Cod == strdependency); //------------------------------------Valida existencia del proyecto-------------------------------- //Si no existe en esta rama un proyecto que haga match con el proyecto del excel if (!list.Exists(x => string.Equals(x.PrjCode.ToString(), strproject, StringComparison.OrdinalIgnoreCase))) { //Si el tipo de proyecto, no es de los siguientes tipos y el codigo del proyecto no viene vacío if (!( ( wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() == "CC_EC" || wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() == "CC_FC" || wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() == "CC_SA" ) && wb.Worksheet(sheet).Cell(i, index).Value.ToString() == "" )) { res = false; paintXY(index, i, XLColor.Red, commnet); } } else { //como ya sabemos que existe el proyecto, ahora preguntamos de la UO //dep es de la celda correcta var row = list.FirstOrDefault(x => x.PrjCode == strproject); string UO = row.U_UORGANIZA.ToString(); string UOName = _context.OrganizationalUnits.FirstOrDefault(x => x.Cod == UO).Name; if (!string.Equals(dep.OrganizationalUnit.Cod.ToString(), row.U_UORGANIZA.ToString(), StringComparison.OrdinalIgnoreCase)) { //Si la UO para esta fila es diferente de la UO registrada en SAP, marcamos error res = false; paintXY(dependency, i, XLColor.Red, "Este proyecto debe tener una dependencia asociada a la Unidad Org: " + row.U_UORGANIZA + " " + UOName); } } } valid = valid && res; if (!res) { addError("Valor no valido", "Proyecto o proyectos no validos en la columna: " + index, false); } return(res); }
public override bool ValidateFile() { var connB1 = B1Connection.Instance(); bool v1 = VerifyPerson(ci: 1, fullname: 2, CUNI: 8, date: this.gestion + "-" + this.mes + "-01", personActive: false); bool v2 = VerifyColumnValueIn(7, connB1.getCostCenter(B1Connection.Dimension.PlanAcademico, mes: this.mes, gestion: this.gestion).Cast <string>().ToList(), comment: "Este Plan de Estudio no existe en SAP."); int brId = Int32.Parse(this.segmentoOrigen); bool v3 = VerifyColumnValueIn(9, _context.Dependencies.Where(x => x.BranchesId == brId).Select(m => m.Cod).Distinct().ToList()); return(isValid() && v1 && v2 && v3); }
public override bool ValidateFile() { var connB1 = B1Connection.Instance(); bool v1 = VerifyPerson(ci: 1, fullname: 2, CUNI: 8, date: this.gestion + "-" + this.mes + "-01", personActive: false); bool v2 = VerifyColumnValueIn(7, connB1.getCostCenter(B1Connection.Dimension.PlanAcademico, mes: this.mes, gestion: this.gestion).Cast <string>().ToList(), comment: "Este Plan de Estudio no existe en SAP."); int brId = Int32.Parse(this.segmentoOrigen); bool v3 = VerifyCareer(cod: 7, branch: brId, dependency: 9, sheet: 1);//esto no esta bien return(isValid() && v1 && v2 && v3); }
public override bool ValidateFile() { var connB1 = B1Connection.Instance(); bool v1 = VerifyColumnValueIn(1, connB1.getBusinessPartners().Cast <string>().ToList(), comment: "Este Codigo de Socio de Negocio no existe en SAP."); bool v2 = VerifyColumnValueIn(2, connB1.getBusinessPartners(col: "CardName").Cast <string>().ToList(), comment: "Este nombre de Socio de Negocio no existe en SAP."); bool v3 = VerifyColumnValueIn(3, new List <string> { "D_ANTI", "D_REND", "D_OTR", "D_PCOB", "D_RCIVA" }, comment: "Tipo de deducción no valido"); return(isValid() && v1 && v2 && v3); }
// GET /B1 public IHttpActionResult Get() { var B1con = B1Connection.Instance(); // B1con.ConnectB1(); // General error;258 insufficient privilege: Not authorized // var id = B1con.addVoucher(); // var id = B1con.updatePersonInBP(_context.Person.FirstOrDefault(x => x.CUNI == "RFA940908")); // var id = B1con.addPersonToB1(_context.Person.FirstOrDefault(x => x.CUNI == "RFA940908")); return(Ok(" **** " + B1con.getLastError())); }
public bool VerifyCareer(int cod, int branch, int dependency, int sheet = 1) { var B1conn = B1Connection.Instance(); int branchId = Convert.ToInt16(branch); var branchName = _context.Branch.FirstOrDefault(x => x.Id == branchId).Abr; List <dynamic> list = B1conn.getCareers(); var filteredList = list.Where(x => x.segmento == branchName); bool res = true; IXLRange UsedRange = wb.Worksheet(sheet).RangeUsed(); for (int i = headerin + 1; i <= UsedRange.LastRow().RowNumber(); i++) { var strcod = cod != -1 ? wb.Worksheet(sheet).Cell(i, cod).Value.ToString() : null; var strdependency = dependency != -1 ? wb.Worksheet(sheet).Cell(i, dependency).Value.ToString() : null; var dep = _context.Dependencies.Where(x => x.BranchesId == branch).Include(x => x.OrganizationalUnit).FirstOrDefault(x => x.Cod == strdependency); if (dep == null) { //Si no existe la dependencia entonces no podemos validar paintXY(dependency, i, XLColor.Red, "Esta dependencia no existe en la base de Datos Nacional"); res = false; } else { //Si no existe un match del código de la carrera if (!filteredList.Any(x => x.cod == strcod && x.OU == dep.OrganizationalUnit.Cod)) { res = false; if (filteredList.Any(x => x.cod == strcod)) { var row = filteredList.FirstOrDefault(x => x.cod == strcod); // Verifica UO if (dep.OrganizationalUnit.Cod.ToString() != row.OU.ToString()) { string UO = row.OU.ToString(); string UOName = _context.OrganizationalUnits.FirstOrDefault(x => x.Cod == UO).Name; paintXY(dependency, i, XLColor.Red, "Esta carrera debería tener una dependencia asociada a la UO: " + UOName); } } else { paintXY(cod, i, XLColor.Red, "Esta carrera no existe, al menos para esta regional"); } } } } valid = valid && res; if (!res) { addError("Datos Carrera", "Algunos datos de la carrera no coinciden o no existen en SAP B1."); } return(res); }
private bool verifyDates(int dependency, int sheet = 1) { string commnet;//especifica el error var connB1 = B1Connection.Instance(); var br = _context.Branch.FirstOrDefault(x => x.Id == process.BranchesId); //todos los proyectos de esa rama var list = connB1.getProjects("*").Where(x => x.U_Sucursal == br.Abr).Select(x => new { x.PrjCode, x.U_Tipo, x.ValidFrom, x.ValidTo, x.U_UORGANIZA }).ToList(); //columnas del excel int index = 6; bool res = true; IXLRange UsedRange = wb.Worksheet(sheet).RangeUsed(); var l = UsedRange.LastRow().RowNumber(); for (int i = headerin + 1; i <= UsedRange.LastRow().RowNumber(); i++) { if (list.Exists(x => string.Equals(x.PrjCode.ToString(), wb.Worksheet(sheet).Cell(i, index).Value.ToString(), StringComparison.OrdinalIgnoreCase))) { var strproject = index != -1 ? wb.Worksheet(sheet).Cell(i, index).Value.ToString() : null; var row = list.FirstOrDefault(x => x.PrjCode == strproject); string UO = row.U_UORGANIZA.ToString(); var strdependency = dependency != -1 ? wb.Worksheet(sheet).Cell(i, dependency).Value.ToString() : null; var dep = _context.Dependencies.Where(x => x.BranchesId == br.Id).Include(x => x.OrganizationalUnit).FirstOrDefault(x => x.Cod == strdependency); //Si la UO hace match también if (row.U_UORGANIZA == dep.OrganizationalUnit.Cod) { //-----------------------------Validaciones de la fecha del proyecto-------------------------------- var projectInitialDate = list.Where(x => x.PrjCode == wb.Worksheet(sheet).Cell(i, index).Value.ToString()).FirstOrDefault().ValidFrom.ToString(); DateTime parsedIni = Convert.ToDateTime(projectInitialDate); var projectFinalDate = list.Where(x => x.PrjCode == wb.Worksheet(sheet).Cell(i, index).Value.ToString()).FirstOrDefault().ValidTo.ToString(); DateTime parsedFin = Convert.ToDateTime(projectFinalDate); //si el tiempo actual es menor al inicio del proyecto en SAP ó si el tiempo actual es mayor a la fecha límite del proyectoSAP if (System.DateTime.Now < parsedIni || System.DateTime.Now > parsedFin) { res = false; commnet = "La fecha de este proyecto ya está cerrada, estuvo disponible del " + parsedIni + " al " + parsedFin; paintXY(index, i, XLColor.Red, commnet); } } } } valid = valid && res; if (!res) { addError("Valor no valido", "Proyecto/s con fechas no válidas en la columna:" + index, false); } return(res); }
private bool verifyDates(int dependency, int sheet = 1) { string commnet;//especifica el error // se inicializa la instancia del SDK para obtener la lista de proyectos var connB1 = B1Connection.Instance(); // filtrado de proyectos por regional del proceso SALOMON int branchId = Convert.ToInt16(segmentoOrigen); var branch = _context.Branch.FirstOrDefault(x => x.Id == branchId).Abr; // proyectos para la regional del proceso var list = connB1.getProjects("*").Where(x => x.U_Sucursal == branch).Select(x => new { x.PrjCode, x.U_Tipo, x.ValidFrom, x.ValidTo, x.U_UORGANIZA }).ToList(); int index = 15; bool res = true; IXLRange UsedRange = wb.Worksheet(sheet).RangeUsed(); var l = UsedRange.LastRow().RowNumber(); //recorriendo el excel desde la fil for (int i = headerin + 1; i <= UsedRange.LastRow().RowNumber(); i++) { //Si el proyecto de la celda en la lista de proyectos filtrados en SAP ahí validamos fechas if (list.Exists(x => string.Equals(x.PrjCode.ToString(), wb.Worksheet(sheet).Cell(i, index).Value.ToString(), StringComparison.OrdinalIgnoreCase))) { var strproject = index != -1 ? wb.Worksheet(sheet).Cell(i, index).Value.ToString() : null; //-----------------------------Validaciones de la fecha del proyecto-------------------------------- var projectInitialDate = list.Where(x => x.PrjCode == strproject).FirstOrDefault().ValidFrom.ToString(); DateTime parsedIni = Convert.ToDateTime(projectInitialDate); var projectFinalDate = list.Where(x => x.PrjCode == strproject).FirstOrDefault().ValidTo.ToString(); DateTime parsedFin = Convert.ToDateTime(projectFinalDate); //si el tiempo actual es menor al inicio del proyecto en SAP ó si el tiempo actual es mayor a la fecha límite del proyectoSAP if (System.DateTime.Now < parsedIni || System.DateTime.Now > parsedFin) { res = false; commnet = "La fecha de este proyecto ya está cerrada, estuvo disponible del " + parsedIni + " al " + parsedFin; paintXY(index, i, XLColor.Red, commnet); } } } valid = valid && res; if (!res) { addError("Valor no valido", "Proyecto/s con fechas no válidas en la columna:" + index, false); } return(res); }
public override bool ValidateFile() { if (isValid()) { var connB1 = B1Connection.Instance(); if (!connB1.connectedtoHana) { addError("ErrorenSAP", "No se puede conectar con SAP B1, es posible que algunas validaciones cruzadas con SAP no sean ejecutadas"); } bool v1 = VerifyBP(1, 2, process.BranchesId, user); bool v2 = VerifyColumnValueIn(3, _context.Dependencies.Where(x => x.BranchesId == this.process.BranchesId).Select(x => x.Cod).ToList(), comment: "Esta Dependencia no es Válida"); var pei = connB1.getCostCenter(B1Connection.Dimension.PEI).Cast <string>().ToList(); bool v3 = VerifyColumnValueIn(4, pei, comment: "Este PEI no existe en SAP."); bool v4 = VerifyLength(5, 50); var brs = _context.Branch.FirstOrDefault(x => x.Id == process.BranchesId); var carrera = connB1.getCostCenter(B1Connection.Dimension.PlanAcademico).Cast <string>().ToList().Where(x => x.Contains(brs.Abr)).ToList(); bool v5 = VerifyColumnValueIn(6, carrera, comment: "Esta Carrera no existe en SAP."); bool v6 = VerifyLength(8, 38); bool v7 = VerifyColumnValueIn(9, new List <string> { "TG", "REL", "LEC", "REV", "PAN", "EXA", "OTR", "RRR", "PROF", "REC", "DDA", "MCT", "MT" }, comment: "No existe esta tipo de Tarea Asignada."); bool v8 = VerifyColumnValueIn(10, new List <string> { "CC_TEMPORAL" }, comment: "No existe este tipo de Cuenta Asignada."); bool v9 = VerifyTotal(); bool v11 = VerifyCareer(cod: 6, branch: process.BranchesId, dependency: 3, sheet: 1); bool v10 = true; foreach (var i in new List <int>() { 1, 2, 3, 4, 5, 6, /* 7, */ 8, 9, 10, 11, 12, 13, 14 }) { v10 = VerifyNotEmpty(i) && v10; } return(v1 && v2 && v3 && v4 && v5 && v6 && v7 && v8 && v10 && v11 && v9); } return(false); }
public override bool ValidateFile() { if (isValid()) { var connB1 = B1Connection.Instance(); if (!connB1.connectedtoHana) { addError("Error en SAP", "No se puedo conectar con SAP B1, es posible que algunas validaciones cruzadas con SAP no sean ejecutadas"); } bool v1 = VerifyBP(1, 2, process.BranchesId, user); bool v2 = VerifyColumnValueIn(3, _context.Dependencies.Where(x => x.BranchesId == this.process.BranchesId).Select(x => x.Cod).ToList(), comment: "Esta Dependencia no es Válida"); var pei = connB1.getCostCenter(B1Connection.Dimension.PEI).Cast <String>().ToList(); bool v3 = VerifyColumnValueIn(4, pei, comment: "Este PEI no existe en SAP."); bool v4 = VerifyLength(5, 50); bool v5 = verifyproject(); var periodo = connB1.getCostCenter(B1Connection.Dimension.Periodo).Cast <string>().ToList(); bool v6 = VerifyColumnValueIn(9, periodo, comment: "Este Periodo no existe en SAP."); bool v7 = VerifyColumnValueIn(10, new List <string> { "PROF", "TG", "REL", "LEC", "REV", "PAN", "OTR" }, comment: "No existe este tipo de Tarea Asignada."); bool v8 = VerifyColumnValueIn(11, new List <string> { "CC_POST", "CC_EC", "CC_FC", "CC_INV", "CC_SA" }, comment: "No existe este tipo de Cuenta Asignada."); bool v9 = true; foreach (var i in new List <int>() { 1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 14, 15 }) { v9 = VerifyNotEmpty(i) && v9; } return(v1 && v2 && v3 && v4 && v5 && v6 && v7 && v8 && v9); } return(false); }
public override bool ValidateFile() { var connB1 = B1Connection.Instance(); //bool v1 = VerifyColumnValueIn(6, connB1.getProjects(col: "PrjName").ToList(), comment: "Este Proyecto no existe en SAP."); int brId = Int32.Parse(this.segmentoOrigen); bool v2 = VerifyColumnValueIn(9, _context.Dependencies.Where(x => x.BranchesId == brId).Select(m => m.Cod).Distinct().ToList(), comment: "No existe esta dependencia."); bool v3 = VerifyColumnValueIn(11, _context.TipoEmpleadoDists.Select(x => x.Name).ToList().Where(x => new List <string> { "POST", "EC", "INV", "FC", "SA" }.Contains(x)).ToList(), comment: "No existe este tipo de proyecto."); bool v4 = VerifyColumnValueIn(12, new List <string> { "PROF", "TG", "REL", "LEC", "REV", "OTR", "PAN" }, comment: "No existe este tipo de tarea asignada."); bool v5 = VerifyColumnValueIn(13, connB1.getCostCenter(B1Connection.Dimension.PEI, mes: this.mes, gestion: this.gestion).Cast <string>().ToList(), comment: "Este PEI no existe en SAP."); bool v6 = VerifyColumnValueIn(14, connB1.getCostCenter(B1Connection.Dimension.Periodo, mes: this.mes, gestion: this.gestion).Cast <string>().ToList(), comment: "Este periodo no existe en SAP."); //bool v7 = VerifyColumnValueIn(15, connB1.getProjects(), comment: "Este proyecto no existe en SAP."); bool v7 = verifyproject(); bool v8 = VerifyPerson(ci: 1, fullname: 2, CUNI: 10, date: gestion + "-" + mes + "-01", personActive: false); return(isValid() && v2 && v3 && v4 && v8 && v5 && v6 && v7); }
private bool verifyproject(int sheet = 1) { string commnet = "Este proyecto no existe en SAP."; var connB1 = B1Connection.Instance(); var br = _context.Branch.FirstOrDefault(x => x.Id == process.BranchesId); var list = connB1.getProjects("*").Where(x => x.U_Sucursal == br.Abr).Select(x => x.PrjCode).ToList(); int index = 6; int tipoproy = 11; bool res = true; IXLRange UsedRange = wb.Worksheet(sheet).RangeUsed(); var l = UsedRange.LastRow().RowNumber(); for (int i = headerin + 1; i <= UsedRange.LastRow().RowNumber(); i++) { if (!list.Exists(x => string.Equals(x.ToString(), wb.Worksheet(sheet).Cell(i, index).Value.ToString(), StringComparison.OrdinalIgnoreCase))) { var a1 = wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString(); var a2 = wb.Worksheet(sheet).Cell(i, index).Value.ToString(); if (!( ( wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() == "CC_EC" || wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() == "CC_FC" || wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() == "CC_SA" ) && wb.Worksheet(sheet).Cell(i, index).Value.ToString() == "" )) { res = false; paintXY(index, i, XLColor.Red, commnet); } } } valid = valid && res; if (!res) { addError("Valor no valido", "Valor o valores no validos en la columna: " + index, false); } return(res); }
public override bool ValidateFile() { var connB1 = B1Connection.Instance(); bool v1 = VerifyColumnValueIn(6, _context.Branch.Select(x => x.Abr).ToList(), comment: "Esta Regional No existe"); bool v2 = VerifyPerson(ci: 1, CUNI: 8, fullname: 2, personActive: false); //Dim1 OU //var D1 = connB1.getCostCenter(B1Connection.Dimension.OrganizationalUnit, mes: this.mes, gestion: this.gestion).Cast<string>().ToList(); var D1 = _context.Dependencies.Select(x => x.Cod).ToList(); D1.Add(""); bool v8 = VerifyColumnValueIn(9, D1, comment: "Esta Unidad Organizacional no existe en SAP."); // PEI var pei = connB1.getCostCenter(B1Connection.Dimension.PEI, mes: this.mes, gestion: this.gestion).Cast <string>().ToList(); pei.Add(""); bool v3 = VerifyColumnValueIn(10, pei, comment: "Este PEI no existe en SAP."); //Plan Acad var planacad = connB1.getCostCenter(B1Connection.Dimension.PlanAcademico, mes: this.mes, gestion: this.gestion).Cast <string>().ToList(); planacad.Add(""); bool v4 = VerifyColumnValueIn(11, planacad, comment: "Este plan de estudios no existe en SAP."); //paralelo var paralelo = connB1.getCostCenter(B1Connection.Dimension.Paralelo, mes: this.mes, gestion: this.gestion).Cast <string>().ToList(); paralelo.Add(""); bool v5 = VerifyColumnValueIn(12, paralelo, comment: "Este paralelo no existe en SAP."); //periodo var periodo = connB1.getCostCenter(B1Connection.Dimension.Periodo, mes: this.mes, gestion: this.gestion).Cast <string>().ToList(); periodo.Add(""); bool v6 = VerifyColumnValueIn(13, periodo, comment: "Este periodo no existe en SAP."); //proyectos var projects = connB1.getProjects().Cast <String>().ToList(); projects.Add(""); bool v7 = VerifyColumnValueIn(14, projects, comment: "Este proyecto no existe en SAP."); return(isValid() && v1 && v2 && v3 && v4 && v5 && v6 && v7 && v8); }
private bool verifyproject(int sheet = 1) { string commnet = "Este proyecto no existe en SAP."; var connB1 = B1Connection.Instance(); List <string> list = connB1.getProjects().Cast <String>().ToList(); int index = 15; int tipoproy = 11; bool res = true; IXLRange UsedRange = wb.Worksheet(sheet).RangeUsed(); var l = UsedRange.LastRow().RowNumber(); for (int i = headerin + 1; i <= UsedRange.LastRow().RowNumber(); i++) { if (!list.Exists(x => string.Equals(x, wb.Worksheet(sheet).Cell(i, index).Value.ToString(), StringComparison.OrdinalIgnoreCase))) { var a1 = wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString(); var a2 = wb.Worksheet(sheet).Cell(i, index).Value.ToString(); if (!( ( wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() == "EC" || wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() == "FC" || wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() == "SA" ) && wb.Worksheet(sheet).Cell(i, index).Value.ToString() == "" )) { res = false; paintXY(index, i, XLColor.Red, commnet); } } } valid = valid && res; if (!res) { addError("Valor no valido", "Valor o valores no validos en la columna: " + index, false); } return(res); }
public override bool ValidateFile() { if (isValid()) { var connB1 = B1Connection.Instance(); if (!connB1.connectedtoHana) { addError("Error en SAP", "No se puedo conectar con SAP B1, es posible que algunas validaciones cruzadas con SAP no sean ejecutadas"); } bool v1 = VerifyBP(1, 2, process.BranchesId, user); bool v2 = VerifyColumnValueIn(3, _context.Dependencies.Where(x => x.BranchesId == this.process.BranchesId).Select(x => x.Cod).ToList(), comment: "Esta Dependencia no es Válida"); var pei = connB1.getCostCenter(B1Connection.Dimension.PEI).Cast <string>().ToList(); bool v3 = VerifyColumnValueIn(4, pei, comment: "Este PEI no existe en SAP."); bool v4 = VerifyLength(5, 50); var periodo = connB1.getCostCenter(B1Connection.Dimension.Periodo).Cast <string>().ToList(); bool v5 = VerifyColumnValueIn(6, periodo, comment: "Este Periodo no existe en SAP."); bool v6 = VerifyParalel(cod: 9, periodo: 6, sigla: 7, paralelo: 8, dependency: 3, branch: this.process.BranchesId);//esta dependencia debe estar en 3, no 17 bool v7 = VerifyColumnValueIn(10, new List <string> { "CC_TEMPORAL" }, comment: "No existe este tipo de Cuenta Asignada."); bool v8 = VerifyTotal(); bool v9 = true; foreach (var i in new List <int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }) { v9 = VerifyNotEmpty(i) && v9; } return(v1 && v2 && v3 && v4 && v5 && v6 && v7 && v8 && v9); } return(false); }
private bool verifyproject(int dependency, int sheet = 1) { string commnet = "Este proyecto no existe en SAP."; var connB1 = B1Connection.Instance(); int branchId = Convert.ToInt16(segmentoOrigen); var branch = _context.Branch.FirstOrDefault(x => x.Id == branchId).Abr; var list = connB1.getProjects("*").Where(x => x.U_Sucursal == branch).Select(x => new { x.PrjCode, x.U_UORGANIZA }).ToList(); int index = 15; int tipoproy = 11; bool res = true; IXLRange UsedRange = wb.Worksheet(sheet).RangeUsed(); var l = UsedRange.LastRow().RowNumber(); for (int i = headerin + 1; i <= UsedRange.LastRow().RowNumber(); i++) { var strdependency = dependency != -1 ? wb.Worksheet(sheet).Cell(i, dependency).Value.ToString() : null; var strproject = index != -1 ? wb.Worksheet(sheet).Cell(i, index).Value.ToString() : null; var dep = _context.Dependencies.Where(x => x.BranchesId == branchId).Include(x => x.OrganizationalUnit).FirstOrDefault(x => x.Cod == strdependency); if (!list.Exists(x => string.Equals(x.PrjCode.ToString(), strproject, StringComparison.OrdinalIgnoreCase))) //Si el proyecto no existe en la lista de proyectos SAP. Solo entrará si está vacío o es un proyecto no registrado segun Codigo y su UO correspondiente { var a1 = wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString(); var a2 = wb.Worksheet(sheet).Cell(i, index).Value.ToString(); if (!( ( //Estos tipos de proyecto pueden no tener codigo de proyecto //POST e INV siempre deben estar con un codigo de proyecto wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() == "EC" || wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() == "FC" || wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() == "SA" || wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() == "CAP" || wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() == "PAS" ) && wb.Worksheet(sheet).Cell(i, index).Value.ToString() == "" )) { res = false; paintXY(index, i, XLColor.Red, commnet); } } else { //como ya sabemos que existe el proyecto, ahora preguntamos de la UO var row = list.FirstOrDefault(x => x.PrjCode == strproject); string UO = row.U_UORGANIZA.ToString(); string UOName = _context.OrganizationalUnits.FirstOrDefault(x => x.Cod == UO).Name; if (!string.Equals(dep.OrganizationalUnit.Cod.ToString(), row.U_UORGANIZA.ToString(), StringComparison.OrdinalIgnoreCase)) { //Si la UO para esta fila es diferente de la UO registrada en SAP, marcamos error res = false; paintXY(dependency, i, XLColor.Red, "Este proyecto debe tener una dependencia asociada a la Unidad Org: " + UOName); } } } valid = valid && res; if (!res) { addError("Valor no valido", "Proyecto o proyectos no válidos en la columna: " + index, false); } return(res); }
public IHttpActionResult BusinessPartners() { var B1con = B1Connection.Instance(); return(Ok(B1con.getBusinessPartners("*"))); }
public bool VerifyParalel(int cod, int periodo, int sigla, int paralelo, int dependency, int branch, int sheet = 1) { var B1conn = B1Connection.Instance(); bool res = true; IXLRange UsedRange = wb.Worksheet(sheet).RangeUsed(); int branchId = Convert.ToInt16(branch); var branchName = _context.Branch.FirstOrDefault(x => x.Id == branchId).Abr; List <dynamic> list = B1conn.getParalels(); var filteredList = list.Where(x => x.segmento == branchName); for (int i = headerin + 1; i <= UsedRange.LastRow().RowNumber(); i++) { var strcod = cod != -1 ? wb.Worksheet(sheet).Cell(i, cod).Value.ToString() : null; var strperiodo = periodo != -1 ? wb.Worksheet(sheet).Cell(i, periodo).Value.ToString() : null; var strsigla = sigla != -1 ? wb.Worksheet(sheet).Cell(i, sigla).Value.ToString() : null; var strparalelo = paralelo != -1 ? wb.Worksheet(sheet).Cell(i, paralelo).Value.ToString() : null; //para hacer las validaciones de UO var strdependency = dependency != -1 ? wb.Worksheet(sheet).Cell(i, dependency).Value.ToString() : null; var dep = _context.Dependencies.Where(x => x.BranchesId == branch).Include(x => x.OrganizationalUnit) .FirstOrDefault(x => x.Cod == strdependency); if (dep == null) { paintXY(dependency, i, XLColor.Red, "Esta dependencia no existe en la Base de Datos Nacional."); res = false; } else { //Solo se valida si existe la dep //Si no existe un match del código del paralelo en SAP, el periodo, la sigla y el paralelo del excel con Datos Maestros, especificamos el error... //A´demás de lo validado en el comentario previo, se revisa si hay match con la UO correcta, ya sea de la col OU o de la tabla auxiliar. Debajo se valida la OU if (!filteredList.Any(x => (x.cod == strcod && x.periodo == strperiodo && x.sigla == strsigla && x.paralelo == strparalelo) && (x.OU == dep.OrganizationalUnit.Cod || x.auxiliar == dep.OrganizationalUnit.Cod))) { res = false; if (filteredList.Any(x => x.cod == strcod))//si hay match con el código del paralelo, especificamos cual fue el elemento que no hizo match { var row = filteredList.FirstOrDefault(x => x.cod == strcod); if (row.sigla != strsigla) { paintXY(sigla, i, XLColor.Red, "Esta Sigla no es correcta."); } if (row.periodo != strperiodo) { paintXY(periodo, i, XLColor.Red, "Este Periodo no es correcto."); } if (row.paralelo != strparalelo) { paintXY(paralelo, i, XLColor.Red, "Este Paralelo no es correcto."); } // Verificar UO: si este paralelo tiene una UO auxiliar, esa es la que manda, sino validar con la columna OU if (row.auxiliar != "") { if (dep.OrganizationalUnit.Cod.ToString() != row.auxiliar.ToString()) { string UO = row.auxiliar.ToString(); string UOName = _context.OrganizationalUnits.FirstOrDefault(x => x.Cod == UO).Name; paintXY(dependency, i, XLColor.Red, "Este paralelo debería tener una dependencia asociada a la UO: " + UOName); } } else { if (dep.OrganizationalUnit.Cod.ToString() != row.OU.ToString()) { string UO = row.OU.ToString(); string UOName = _context.OrganizationalUnits.FirstOrDefault(x => x.Cod == UO).Name; paintXY(dependency, i, XLColor.Red, "Este paralelo debería tener una dependencia asociada a la UO: " + UOName); } } } else { paintXY(cod, i, XLColor.Red, "Este código de paralelo no existe en SAP, al menos para esta regional"); } } } } valid = valid && res; if (!res) { addError("Datos Paralelos", "Algunos datos de paralelos no coinciden o no existen en SAP B1."); } return(res); }
public IHttpActionResult ToSAP(int id, JObject webdata) { if (webdata == null || webdata["date"] == null) { return(BadRequest()); } var B1 = B1Connection.Instance(); HttpResponseMessage response = new HttpResponseMessage(); var user = auth.getUser(Request); var processes = _context.ServProcesses.Include(x => x.Branches).Where(f => f.Id == id && f.State == ServProcess.Serv_FileState.PendingApproval); if (processes.Count() == 0) { return(NotFound()); } processes = auth.filerByRegional(processes, user).Cast <ServProcess>(); var process = processes.FirstOrDefault(); if (process == null) { return(Unauthorized()); } DateTime date = DateTime.Parse(webdata["date"].ToString()); process.InSAPAt = date; var data = process.getVoucherData(_context); var memos = data.Select(x => x.Memo).Distinct().ToList(); foreach (var memo in memos) { //remove special chars var goodMemo = Regex.Replace(memo, "[^\\w\\._]", ""); //remove new line characters goodMemo = Regex.Replace(goodMemo, @"\t|\n|\r", ""); var ppagar = data.Where(g => g.Concept == "PPAGAR" && g.Memo == memo).Select(g => new Serv_Voucher() { CardName = g.CardName, CardCode = g.CardCode, OU = g.OU, PEI = g.PEI, Carrera = g.Carrera, Paralelo = g.Paralelo, Periodo = g.Periodo, ProjectCode = g.ProjectCode, Memo = g.Memo, LineMemo = g.LineMemo, Concept = g.Concept, //AssignedAccount=g.AssignedAccount, Account = g.Account, Credit = g.Credit, Debit = g.Debit }).ToList(); List <Serv_Voucher> rest = data.Where(g => g.Concept != "PPAGAR" && g.Memo == memo).GroupBy(g => new { g.CardCode, g.OU, g.PEI, g.Carrera, g.Paralelo, g.Periodo, g.ProjectCode, g.Memo, g.LineMemo, g.Concept, //g.AssignedAccount, g.Account, }).Select(g => new Serv_Voucher() { CardName = "", CardCode = g.Key.CardCode, OU = g.Key.OU, PEI = g.Key.PEI, Carrera = g.Key.Carrera, Paralelo = g.Key.Paralelo, Periodo = g.Key.Periodo, ProjectCode = g.Key.ProjectCode, Memo = g.Key.Memo, LineMemo = g.Key.LineMemo, Concept = g.Key.Concept, //AssignedAccount=g.Key.AssignedAccount, Account = g.Key.Account, Credit = g.Sum(s => s.Credit), Debit = g.Sum(s => s.Debit) }).ToList(); List <Serv_Voucher> dist1 = ppagar.Union(rest).OrderBy(z => z.Debit == 0.00M ? 1 : 0).ThenBy(z => z.Account).ToList(); B1.addServVoucher(user.Id, dist1.ToList(), process); } if (memos.Count() > 1) { process.SAPId = "Multiples."; } process.State = ServProcess.Serv_FileState.INSAP; process.LastUpdatedBy = user.Id; _context.ServProcesses.AddOrUpdate(process); _context.SaveChanges(); return(Ok(process.SAPId)); }
public CostCentersController() { B1conn = B1Connection.Instance(); _context = new ApplicationDbContext(); }
public override bool ValidateFile() { var connB1 = B1Connection.Instance(); if (!connB1.connectedtoHana) { addError("Error en SAP", "No se puedo conectar con SAP B1, es posible que algunas validaciones cruzadas con SAP no sean ejecutadas"); } this.segmentInt = Int32.Parse(this.segmentoOrigen); bool v1 = VerifyColumnValueIn(13, connB1.getBusinessPartners().Cast <string>().ToList(), comment: "Esta AFP no esta registrada como un Bussines Partner en SAP"); bool v2 = VerifyColumnValueIn(20, _context.TipoEmpleadoDists.Select(x => x.Name).ToList(), comment: "Este Tipo empleado no es valido.\n"); bool v3 = VerifyColumnValueIn(21, connB1.getCostCenter(B1Connection.Dimension.PEI, mes: this.mes, gestion: this.gestion).Cast <string>().ToList(), comment: "Este PEI no existe en SAP.\n"); bool v4 = VerifyColumnValueIn(23, _context.Dependencies.Where(x => x.BranchesId == this.segmentInt).Select(m => m.Cod).Distinct().ToList(), comment: "Esta Dependencia no existe en la Base de Datos Nacional.\n"); bool v5 = VerifyPerson(ci: 1, CUNI: 19, fullname: 2, personActive: true, branchesId: this.segmentInt, date: this.gestion + "-" + this.mes + "-01", dependency: 23, paintdep: true, tipo: 20); bool v6 = VerifyColumnValueIn(25, connB1.getBusinessPartners().Cast <string>().ToList(), comment: "Este seguro no esta registrado como un Bussines Partner en SAP"); bool v7 = ValidateLiquidoPagable(); bool v8 = ValidatenoZero(); bool v9 = validateAllPeopleInPayroll(); // HB bool v10 = ValidateNoNegative(6); // Bono bool v11 = ValidateNoNegative(7); // Otros Ingresos bool v12 = ValidateNoNegative(8); // Ingresos Docencia bool v13 = ValidateNoNegative(9); // Ingresos Otras Actividades Academicas bool v14 = ValidateNoNegative(10); // Reintegro bool v15 = ValidateNoNegative(11); // Total Ganado bool v16 = ValidateNoNegative(12); // Aporte AFP bool v17 = ValidateNoNegative(14); // IVA bool v18 = ValidateNoNegative(15); // Descuentos bool v19 = ValidateNoNegative(16); // Total Descuentos bool v20 = ValidateNoNegative(17); // Liquido Pagable bool v21 = ValidateNoNegative(18); // Horas Trabajadas bool v22 = ValidateNoNegative(22); // Aporte Patronal AFP bool v23 = ValidateNoNegative(24); // Aporte Patronal SCP bool v24 = ValidateNoNegative(26); // Provision Aguinaldo bool v25 = ValidateNoNegative(27); // Provision Prima bool v26 = ValidateNoNegative(28); // Provision Indeminizacion bool v27 = ValidateNoNegative(29); // Socio de Negocio AFP bool v28 = ValidateSN(13); // Socio de Negocio SSU bool v29 = ValidateSN(25); bool Negativos = v10 && v11 && v12 && v13 && v14 && v15 && v16 && v17 && v18 && v19 && v20 && v21 && v22 && v23 && v24 && v25 && v26 && v27; // Cheque or Banco bool v30 = VerifyColumnValueIn(30, new List <string>() { "CHQ", "BCO" }, comment: "Este no es un tipo valido de modo de pago"); return(isValid() && v1 && v2 && v3 && v4 && v5 && v6 && v7 && v8 && v9 && Negativos && v28 && v29 && v30); }
public IHttpActionResult CivilbyBranch(int id) { var B1 = B1Connection.Instance(); if (id != 0) { // we get the Branches from SAP var query = "select c.\"Id\", c.\"FullName\",c.\"SAPId\",c.\"NIT\",c.\"Document\",c.\"CreatedBy\",ocrd.\"BranchesId\" " + "from " + CustomSchema.Schema + ".\"Civil\" c" + " inner join " + " (select ocrd.\"CardCode\", br.\"Id\" \"BranchesId\"" + " from " + ConfigurationManager.AppSettings["B1CompanyDB"] + ".ocrd" + " inner join " + ConfigurationManager.AppSettings["B1CompanyDB"] + ".crd8" + " on ocrd.\"CardCode\" = crd8.\"CardCode\"" + " inner join " + CustomSchema.Schema + ".\"Branches\" br" + " on br.\"CodigoSAP\" = crd8.\"BPLId\"" + " where ocrd.\"validFor\" = \'Y\'" + " and crd8.\"DisabledBP\" = \'N\') ocrd" + " on c.\"SAPId\" = ocrd.\"CardCode\"" + " where ocrd.\"BranchesId\"=" + id + ";"; var rawresult = _context.Database.SqlQuery <Civil>(query); var user = auth.getUser(Request); var res = auth.filerByRegional(rawresult.AsQueryable(), user); return(Ok(res)); } else { var user = auth.getUser(Request); var brs = AD.getUserBranches(user); var brsIds = brs.Select(x => x.Id); string StrIds = ""; int n = brsIds.Count(); int i = 0; foreach (var brid in brsIds) { i++; StrIds += brid + "" + (i == n?"":", "); } var query = "select c.\"Id\", c.\"FullName\",c.\"SAPId\",c.\"NIT\",c.\"Document\",c.\"CreatedBy\",ocrd.\"BranchesId\" " + "from " + CustomSchema.Schema + ".\"Civil\" c" + " inner join " + " (select ocrd.\"CardCode\", br.\"Id\" \"BranchesId\"" + " from " + ConfigurationManager.AppSettings["B1CompanyDB"] + ".ocrd" + " inner join " + ConfigurationManager.AppSettings["B1CompanyDB"] + ".crd8" + " on ocrd.\"CardCode\" = crd8.\"CardCode\"" + " inner join " + CustomSchema.Schema + ".\"Branches\" br" + " on br.\"CodigoSAP\" = crd8.\"BPLId\"" + " where ocrd.\"validFor\" = \'Y\'" + " and crd8.\"DisabledBP\" = \'N\') ocrd" + " on c.\"SAPId\" = ocrd.\"CardCode\"" + " where ocrd.\"BranchesId\" in (" + StrIds + ");"; var rawresult = _context.Database.SqlQuery <Civil>(query); var res = auth.filerByRegional(rawresult.AsQueryable(), user); return(Ok(res)); } }
private bool verifyAcount(int dependency, int sheet = 1) { bool res = true; string commnet = ""; int index = 15; int tipoproy = 11; int badType = 0; int badAccount = 0; var connB1 = B1Connection.Instance(); int branchId = Convert.ToInt16(segmentoOrigen); var branch = _context.Branch.FirstOrDefault(x => x.Id == branchId).Abr; // la lista de proyectos segun la regional del proceso SAP var listParams = connB1.getProjects("*").Where(x => x.U_Sucursal == branch).Select(x => new { x.PrjCode, x.U_Tipo, x.U_UORGANIZA }).ToList(); IXLRange UsedRange = wb.Worksheet(sheet).RangeUsed(); for (int i = headerin + 1; i <= UsedRange.LastRow().RowNumber(); i++) { //Si el proyecto existe en SAP ahí validamos los tipos de proyecto y cuentas asignadas var strproject = index != -1 ? wb.Worksheet(sheet).Cell(i, index).Value.ToString() : null; if (listParams.Exists(x => string.Equals(x.PrjCode.ToString(), strproject, StringComparison.OrdinalIgnoreCase))) { //CAP se deja pasar, no validamos ese tipo de proyecto if (wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString() != "CAP") { //-----------------------------Validacion del tipo-------------------------------- var projectType = listParams.Where(x => x.PrjCode == wb.Worksheet(sheet).Cell(i, index).Value.ToString()).FirstOrDefault().U_Tipo.ToString(); //tipo de proyecto de la celda excel string tipo = projectType; // lista de tipos de proyectos que son validos var tiposBD = _context.TableOfTableses.Where(x => x.Type.Equals("TIPOS_P&C_SALOMON")).Select(x => x.Value).ToList(); var typeExists = tiposBD.Exists(x => string.Equals(x.Split(':')[0], tipo, StringComparison.OrdinalIgnoreCase)); if (!typeExists) { //si el proyecto tiene un U_Tipo en SAP y no lo tenemos en personas, entonces no es válido. //Pasa para los proyectos con U_Tipo 'I', ESOS NUNCA ENTRAN EN PLANILLAS, este If es una formalidad commnet = "El tipo de proyecto: " + tipo + " no es válido."; paintXY(index, i, XLColor.Red, commnet); badType++; res = false; } else { //-----------------------------Validacion de la cuenta asignada-------------------------------- // el tipo de proyecto en SAP var projectAccount = wb.Worksheet(sheet).Cell(i, tipoproy).Value.ToString(); //la cuenta asignada a ese tipo de proyecto segun el tipo de proyecto var assignedAccount = tiposBD.Where(x => x.Split(':')[0].Equals(tipo)).FirstOrDefault().ToString().Split(':')[1]; if (projectAccount != assignedAccount) { commnet = "La cuenta asignada es incorrecta, debería ser: " + assignedAccount; paintXY(tipoproy, i, XLColor.Red, commnet); badAccount++; res = false; } } } } } valid = valid && res; if (!res && badAccount > 0 && badType > 0) { addError("Valor no valido", "Tipos de proyectos no válidos en la columna: " + index + " y cuentas asignadas no válidas en la columna: " + tipoproy, false); } else if (!res && badAccount > 0 && badType == 0) { addError("Valor no valido", "Cuentas asignadas no válidas en la columna: " + tipoproy, false); } else if (!res && badAccount == 0 && badType > 0) { addError("Valor no valido", "Tipos de proyectos no válidos en la columna: " + index, false); } return(res); }
public AltasContratosController() { _context = new ApplicationDbContext(); B1 = B1Connection.Instance(); }
public bool VerifyParalel(int cod, int periodo, int sigla, int paralelo, int dependency, int sheet = 1) { var B1conn = B1Connection.Instance(); bool res = true; IXLRange UsedRange = wb.Worksheet(sheet).RangeUsed(); var c = new ApplicationDbContext(); List <dynamic> list = B1conn.getParalels(); for (int i = headerin + 1; i <= UsedRange.LastRow().RowNumber(); i++) { var strcod = cod != -1 ? wb.Worksheet(sheet).Cell(i, cod).Value.ToString() : null; var strperiodo = periodo != -1 ? wb.Worksheet(sheet).Cell(i, periodo).Value.ToString() : null; var strsigla = sigla != -1 ? wb.Worksheet(sheet).Cell(i, sigla).Value.ToString() : null; var strparalelo = paralelo != -1 ? wb.Worksheet(sheet).Cell(i, paralelo).Value.ToString() : null; var strdependency = dependency != -1 ? wb.Worksheet(sheet).Cell(i, dependency).Value.ToString() : null; var dep = _context.Dependencies.Include(x => x.OrganizationalUnit) .FirstOrDefault(x => x.Cod == strdependency); if (/*dep == null ||*/ !list.Any(x => x.cod == strcod && x.periodo == strperiodo && x.sigla == strsigla && x.paralelo == strparalelo /* && x.OU == dep.OrganizationalUnit.Cod*/)) { res = false; if (list.Any(x => x.cod == strcod)) { var row = list.FirstOrDefault(x => x.cod == strcod); if (row.sigla != strsigla) { paintXY(sigla, i, XLColor.Red, "Esta Sigla no es correcta."); } if (row.periodo != strperiodo) { paintXY(periodo, i, XLColor.Red, "Este Periodo no es correcto."); } if (row.paralelo != strparalelo) { paintXY(paralelo, i, XLColor.Red, "Este Paralelo no es correcto."); } // Verify dependency /*if (dep == null || row.OU != dep.OrganizationalUnit.Cod) * { * paintXY(dependency, i, XLColor.Red, "Esta dependencia no esta asociada a este paralelo." + row.OU + "->" + dep.OrganizationalUnit.Cod ); * }*/ } else { paintXY(cod, i, XLColor.Red, "Este Codigo no es correcto."); paintXY(periodo, i, XLColor.Red, "No es posible validar este Periodo."); paintXY(sigla, i, XLColor.Red, "No es posible validar esta Sigla."); paintXY(paralelo, i, XLColor.Red, "No es posible validar este Paralelo."); } } } valid = valid && res; if (!res) { addError("Datos Paralelos", "Algunos datos de paralelos no coinciden o no existen en SAP B1."); } return(res); }