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 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)); }
public JsonResult UpdateSimplifiedRequisition([FromBody] SimplifiedRequisitionViewModel item) { SimplifiedRequisitionViewModel result = new SimplifiedRequisitionViewModel(); try { item.RegistrationDate = DateTime.Now.ToString("dd/MM/yyyy"); if (item != null) { RequisiçõesSimplificadas CLocation = DBSimplifiedRequisitions.GetById(item.RequisitionNo); CLocation.Estado = item.Status; CLocation.DataHoraRequisição = item.RequisitionDate != "" && item.RequisitionDate != null?DateTime.Parse(item.RequisitionDate) : (DateTime?)null; CLocation.DataRegisto = item.RegistrationDate != "" && item.RegistrationDate != null?DateTime.Parse(item.RegistrationDate) : (DateTime?)null; CLocation.CódLocalização = item.LocationCode; CLocation.CódigoRegião = item.RegionCode; CLocation.CódigoÁreaFuncional = item.FunctionalAreaCode; CLocation.CódigoCentroResponsabilidade = item.ResponsabilityCenterCode; CLocation.NºProjeto = item.ProjectNo; CLocation.TipoRefeição = item.MealType; CLocation.DataHoraAprovação = item.ApprovalDate != "" && item.ApprovalDate != null?DateTime.Parse(item.ApprovalDate) : (DateTime?)null; CLocation.DataHoraEnvio = item.ShipDate != "" && item.ShipDate != null?DateTime.Parse(item.ShipDate) : (DateTime?)null; CLocation.DataHoraDisponibilização = item.AvailabilityDate != "" && item.AvailabilityDate != null?DateTime.Parse(item.AvailabilityDate) : (DateTime?)null; CLocation.ResponsávelCriação = item.CreateResponsible; CLocation.ResponsávelAprovação = item.ApprovalResponsible; CLocation.ResponsávelEnvio = item.ShipResponsible; CLocation.ResponsávelReceção = item.ReceiptResponsible; CLocation.Imprimir = item.Print; CLocation.Anexo = item.Atach; CLocation.NºFuncionário = item.EmployeeNo; CLocation.Urgente = item.Urgent; CLocation.NºUnidadeProdutiva = item.ProductivityNo; CLocation.Observações = item.Observations; CLocation.Terminada = item.Finished; CLocation.ResponsávelVisar = item.AimResponsible; CLocation.DataHoraVisar = item.AimDate != "" && item.AimDate != null?DateTime.Parse(item.AimDate) : (DateTime?)null; CLocation.Autorizada = item.Authorized; CLocation.ResponsávelAutorização = item.AuthorizedResponsible; CLocation.DataHoraAutorização = item.AuthorizedDate != "" && item.AuthorizedDate != null?DateTime.Parse(item.AuthorizedDate) : (DateTime?)null; CLocation.Visadores = item.Visor; CLocation.DataReceçãoLinhas = item.ReceiptLinesDate; CLocation.RequisiçãoNutrição = item.NutritionRequisition; CLocation.DataReceçãoEsperada = string.IsNullOrEmpty(item.ReceiptPreviewDate) ? (DateTime?)null : DateTime.Parse(item.ReceiptPreviewDate); CLocation.RequisiçãoModelo = item.ModelRequisition; CLocation.DataHoraModificação = DateTime.Now; CLocation.UtilizadorModificação = User.Identity.Name; if (CLocation.DataHoraRequisição != null) { CLocation.DataHoraRequisição = CLocation.DataHoraRequisição.Value.Date; CLocation.DataHoraRequisição = CLocation.DataHoraRequisição.Value.Add(TimeSpan.Parse(item.RequisitionTime)); } if (CLocation.DataHoraAprovação != null) { CLocation.DataHoraAprovação = CLocation.DataHoraAprovação.Value.Date; CLocation.DataHoraAprovação = CLocation.DataHoraAprovação.Value.Add(TimeSpan.Parse(item.ApprovalTime)); } if (CLocation.DataHoraEnvio != null) { CLocation.DataHoraEnvio = CLocation.DataHoraEnvio.Value.Date; CLocation.DataHoraEnvio = CLocation.DataHoraEnvio.Value.Add(TimeSpan.Parse(item.ShipTime)); } if (CLocation.DataHoraDisponibilização != null) { CLocation.DataHoraDisponibilização = CLocation.DataHoraDisponibilização.Value.Date; CLocation.DataHoraDisponibilização = CLocation.DataHoraDisponibilização.Value.Add(TimeSpan.Parse(item.AvailabilityTime)); } if (CLocation.DataHoraVisar != null) { CLocation.DataHoraVisar = CLocation.DataHoraVisar.Value.Date; CLocation.DataHoraVisar = CLocation.DataHoraVisar.Value.Add(TimeSpan.Parse(item.AimTime)); } if (CLocation.DataHoraAutorização != null) { CLocation.DataHoraAutorização = CLocation.DataHoraAutorização.Value.Date; CLocation.DataHoraAutorização = CLocation.DataHoraAutorização.Value.Add(TimeSpan.Parse(item.AuthorizedTime)); } result = DBSimplifiedRequisitions.ParseToViewModel(DBSimplifiedRequisitions.Update(CLocation)); if (result != null) { List <LinhasRequisiçõesSimplificadas> lines = DBSimplifiedRequisitionLines.GetById(CLocation.NºRequisição); lines.ForEach(x => { x.NºProjeto = CLocation.NºProjeto; x.TipoRefeição = CLocation.TipoRefeição; x.CódLocalização = CLocation.CódLocalização; x.CódigoRegião = CLocation.CódigoRegião; x.CódigoÁreaFuncional = CLocation.CódigoÁreaFuncional; x.CódigoCentroResponsabilidade = CLocation.CódigoCentroResponsabilidade; DBSimplifiedRequisitionLines.Update(x); }); return(Json(DBSimplifiedRequisitionLines.ParseToViewModel(lines))); } else { return(null); } } } catch (Exception) { return(null); } return(null); }