public JsonResult DisapproveSimplifiedRequisition([FromBody] List <SimplifiedRequisitionLineViewModel> items) { bool disapprove = true; foreach (var item in items) { if (item.QuantityReceipt != 0 && item.QuantityReceipt != null) { disapprove = false; mensage.eReasonCode = 101; mensage.eMessage = "Impossivel desaprovar a requisição nº" + item.RequisitionNo; break; } } if (disapprove == true) { SimplifiedRequisitionViewModel requisitionSimpli = DBSimplifiedRequisitions.ParseToViewModel(DBSimplifiedRequisitions.GetById(items[0].RequisitionNo)); requisitionSimpli.Status = 1; requisitionSimpli.ApprovalResponsible = ""; requisitionSimpli.ApprovalDate = ""; requisitionSimpli.ApprovalTime = ""; DBSimplifiedRequisitions.Update(DBSimplifiedRequisitions.ParseToDatabase(requisitionSimpli)); foreach (var item in items) { item.Status = 1; item.QuantityApproved = 0; DBSimplifiedRequisitionLines.Update(DBSimplifiedRequisitionLines.ParseToDatabase(item)); } mensage.eReasonCode = 100; mensage.eMessage = "Requisição desaprovada com Sucesso"; } return(Json(mensage)); }
public JsonResult FinishSimplifiedRequisition([FromBody] List <SimplifiedRequisitionLineViewModel> items) { if (items != null && items.Count > 0) { mensage.eReasonCode = 100; foreach (var item in items) { UnidadeDeArmazenamento product = DBStockkeepingUnit.GetById(item.Code); if (product.Bloqueado == true) { mensage.eReasonCode = 101; mensage.eMessage = "A linha Nº:" + item.LineNo + " contem o produto " + item.Description + " bloqueado"; break; } item.QuantityApproved = item.QuantityToRequire; item.Status = 2; } if (mensage.eReasonCode == 100) { items.ForEach(x => { x.QuantityApproved = x.QuantityToRequire; x.Status = 2; DBSimplifiedRequisitionLines.Update(DBSimplifiedRequisitionLines.ParseToDatabase(x)); }); SimplifiedRequisitionViewModel requisitionSimpli = DBSimplifiedRequisitions.ParseToViewModel(DBSimplifiedRequisitions.GetById(items[0].RequisitionNo)); requisitionSimpli.Status = 2; requisitionSimpli.Finished = true; requisitionSimpli.ApprovalResponsible = User.Identity.Name; requisitionSimpli.ApprovalDate = DateTime.Now.ToString(); requisitionSimpli.ApprovalTime = DateTime.Now.ToString("HH:mm:ss"); DBSimplifiedRequisitions.Update(DBSimplifiedRequisitions.ParseToDatabase(requisitionSimpli)); mensage.eReasonCode = 100; mensage.eMessage = "Requisição terminada com Sucesso"; } } else { mensage.eReasonCode = 101; mensage.eMessage = "Nessecita de linhas de requisição ao terminar!!"; } return(Json(mensage)); }
public JsonResult HistorySimplifiedRequisition([FromBody] List <SimplifiedRequisitionLineViewModel> items) { if (items != null) { SimplifiedRequisitionViewModel requisitionSimpli = DBSimplifiedRequisitions.ParseToViewModel(DBSimplifiedRequisitions.GetById(items[0].RequisitionNo)); requisitionSimpli.Status = 3; DBSimplifiedRequisitions.Update(DBSimplifiedRequisitions.ParseToDatabase(requisitionSimpli)); foreach (var item in items) { item.Status = 3; DBSimplifiedRequisitionLines.Update(DBSimplifiedRequisitionLines.ParseToDatabase(item)); } mensage.eReasonCode = 100; mensage.eMessage = "Requisição arquivada com Sucesso"; } else { mensage.eReasonCode = 101; mensage.eMessage = "Erro na arquivação"; } return(Json(mensage)); }
public JsonResult CreateSimplifiedRequisition([FromBody] SimplifiedRequisitionViewModel item) { if (item != null) { item.CreateUser = User.Identity.Name; item.CreateResponsible = User.Identity.Name; item.RequisitionDate = DateTime.Now.ToString(); item.RegistrationDate = DateTime.Now.ToString("dd/MM/yyyy"); item.RequisitionTime = DateTime.Now.ToString("HH:mm:ss"); if (DBSimplifiedRequisitions.GetById(item.RequisitionNo) != null) { item.eReasonCode = 101; item.eMessage = "O Nº " + item.RequisitionNo + " já existe!"; } else { if (DBSimplifiedRequisitions.Create(DBSimplifiedRequisitions.ParseToDatabase(item)) != null) { //Update Last Numeration Used Configuração conf = DBConfigurations.GetById(1); int entityNumerationConfId = conf.NumeraçãoRequisiçõesSimplificada.Value; ConfiguraçãoNumerações ConfigNumerations = DBNumerationConfigurations.GetById(entityNumerationConfId); ConfigNumerations.ÚltimoNºUsado = item.RequisitionNo; ConfigNumerations.UtilizadorModificação = User.Identity.Name; DBNumerationConfigurations.Update(ConfigNumerations); item.eReasonCode = 100; item.eMessage = "Requisição Simplificada criada com sucesso."; } else { item.eReasonCode = 101; item.eMessage = "Ocorreu um erro ao criar a Requisição Simplificada."; } } } return(Json(item)); }
public JsonResult RegisterRequisition([FromBody] List <SimplifiedRequisitionLineViewModel> items) { string dataRegisto; bool historyRequisition = true; SimplifiedRequisitionViewModel requisitionSimpli = DBSimplifiedRequisitions.ParseToViewModel(DBSimplifiedRequisitions.GetById(items[0].RequisitionNo)); List <ProjectDiaryViewModel> ListDp = new List <ProjectDiaryViewModel>(); //Receipt Lines Date if (requisitionSimpli.ReceiptLinesDate == true && requisitionSimpli.RegistrationDate != null) { dataRegisto = requisitionSimpli.RegistrationDate; } else { dataRegisto = DateTime.Now.ToString(); } foreach (var item in items) { if (item.QuantityReceipt == 0 || item.QuantityReceipt == null) { Task <WSGenericCodeUnit.FxGetStock_ItemLocation_Result> TGetNavLocationProduct = WSGeneric.GetNAVProductQuantityInStockFor(item.Code, item.LocationCode, configws); TGetNavLocationProduct.Wait(); if (TGetNavLocationProduct.IsCompletedSuccessfully) { if (TGetNavLocationProduct.Result.return_value > 0 && TGetNavLocationProduct.Result.return_value >= item.QuantityApproved) { //Update Simplified Requisition lines item.QuantityReceipt = item.QuantityApproved; DBSimplifiedRequisitionLines.Update(DBSimplifiedRequisitionLines.ParseToDatabase(item)); //Create Diary Project DiárioDeProjeto newdp = new DiárioDeProjeto() { NºProjeto = requisitionSimpli.ProjectNo, Data = requisitionSimpli.RegistrationDate == "" || requisitionSimpli.RegistrationDate == null ? (DateTime?)null : DateTime.Parse(requisitionSimpli.RegistrationDate), TipoMovimento = 1, //Consumo Tipo = item.Type, Código = item.Code, Descrição = item.Description, Quantidade = item.QuantityApproved, CódUnidadeMedida = item.MeasureUnitNo, CódLocalização = item.LocationCode, //GrupoContabProjeto = x.ProjectContabGroup, CódigoRegião = item.RegionCode, CódigoÁreaFuncional = item.FunctionAreaCode, CódigoCentroResponsabilidade = item.ResponsabilityCenterCode, Utilizador = User.Identity.Name, CustoUnitário = item.UnitCost, CustoTotal = item.TotalCost, //PreçoUnitário = x.UnitPrice, //PreçoTotal = x.TotalPrice, //Faturável = x.Billable, Registado = true, //FaturaANºCliente = x.InvoiceToClientNo, //Moeda = x.Currency, //ValorUnitárioAFaturar = x.UnitValueToInvoice, TipoRefeição = item.MealType, //CódGrupoServiço = x.ServiceGroupCode, //NºGuiaResíduos = x.ResidueGuideNo, //NºGuiaExterna = x.ExternalGuideNo, //DataConsumo = x.ConsumptionDate == "" || x.ConsumptionDate == null ? (DateTime?)null : DateTime.Parse(x.ConsumptionDate), //CódServiçoCliente = x.ServiceClientCode }; newdp.Faturada = false; newdp.DataHoraCriação = DateTime.Now; newdp.UtilizadorCriação = User.Identity.Name; //Insert List Regist Project ListDp.Add(DBProjectDiary.ParseToViewModel(newdp)); } else { historyRequisition = false; requisitionSimpli.eReasonCode = 101; requisitionSimpli.eMessage = requisitionSimpli.eMessage + " Quantidade existente em stock: " + TGetNavLocationProduct.Result.return_value + ", no Produto " + item.Description + " \r\n"; } } } } //Register diary project if (ListDp.Count() != 0) { register.UpdateProjectDiaryRequisition(ListDp, requisitionSimpli.RequisitionNo, User.Identity.Name); } if (historyRequisition == true) { //Register lines of diary project ListDp.Clear(); items.ForEach(x => { x.Status = 3; DBSimplifiedRequisitionLines.Update(DBSimplifiedRequisitionLines.ParseToDatabase(x)); DiárioDeProjeto newdp = new DiárioDeProjeto() { NºProjeto = requisitionSimpli.ProjectNo, Data = requisitionSimpli.RegistrationDate == "" || requisitionSimpli.RegistrationDate == null ? (DateTime?)null : DateTime.Parse(requisitionSimpli.RegistrationDate), TipoMovimento = 1, //Consumo Tipo = x.Type, Código = x.Code, Descrição = x.Description, Quantidade = x.QuantityApproved, CódUnidadeMedida = x.MeasureUnitNo, CódLocalização = x.LocationCode, //GrupoContabProjeto = x.ProjectContabGroup, CódigoRegião = x.RegionCode, CódigoÁreaFuncional = x.FunctionAreaCode, CódigoCentroResponsabilidade = x.ResponsabilityCenterCode, Utilizador = User.Identity.Name, CustoUnitário = x.UnitCost, CustoTotal = x.TotalCost, //PreçoUnitário = x.UnitPrice, //PreçoTotal = x.TotalPrice, //Faturável = x.Billable, Registado = true, //FaturaANºCliente = x.InvoiceToClientNo, //Moeda = x.Currency, //ValorUnitárioAFaturar = x.UnitValueToInvoice, TipoRefeição = x.MealType, //CódGrupoServiço = x.ServiceGroupCode, //NºGuiaResíduos = x.ResidueGuideNo, //NºGuiaExterna = x.ExternalGuideNo, //DataConsumo = x.ConsumptionDate == "" || x.ConsumptionDate == null ? (DateTime?)null : DateTime.Parse(x.ConsumptionDate), //CódServiçoCliente = x.ServiceClientCode }; newdp.Faturada = false; newdp.DataHoraCriação = DateTime.Now; newdp.UtilizadorCriação = User.Identity.Name; //Insert List Regist Project ListDp.Add(DBProjectDiary.ParseToViewModel(newdp)); }); register.RegisterDiaryLinesRequisition(ListDp, User.Identity.Name); //Update Simplified Requisition Header requisitionSimpli.Status = 3; requisitionSimpli.RegistrationDate = DateTime.Now.ToString(); requisitionSimpli.ReceiptResponsible = User.Identity.Name; DBSimplifiedRequisitions.Update(DBSimplifiedRequisitions.ParseToDatabase(requisitionSimpli)); requisitionSimpli.eReasonCode = 100; requisitionSimpli.eMessage = "Registo em Diário de Projeto com sucesso"; } return(Json(requisitionSimpli)); }