public static ProjectDiaryViewModel ParseToViewModel(DiárioDeProjeto x) { return(new ProjectDiaryViewModel() { LineNo = x.NºLinha, ProjectNo = x.NºProjeto, Date = !x.Data.HasValue ? String.Empty : x.Data.Value.ToString("yyyy-MM-dd"), MovementType = x.TipoMovimento, Type = x.Tipo, Code = x.Código, Description = x.Descrição, Quantity = x.Quantidade, MeasurementUnitCode = x.CódUnidadeMedida, LocationCode = x.CódLocalização, ProjectContabGroup = x.GrupoContabProjeto, RegionCode = x.CódigoRegião, FunctionalAreaCode = x.CódigoÁreaFuncional, ResponsabilityCenterCode = x.CódigoCentroResponsabilidade, User = x.Utilizador, UnitCost = x.CustoUnitário, TotalCost = x.CustoTotal, UnitPrice = x.PreçoUnitário, TotalPrice = x.PreçoTotal, Billable = x.Faturável, Registered = x.Registado, Billed = x.Faturada.HasValue ? x.Faturada.Value : false, Currency = x.Moeda, UnitValueToInvoice = x.ValorUnitárioAFaturar, MealType = x.TipoRefeição, ServiceGroupCode = x.CódGrupoServiço, ResidueGuideNo = x.NºGuiaResíduos, ExternalGuideNo = x.NºGuiaExterna, ConsumptionDate = !x.DataConsumo.HasValue ? "" : x.DataConsumo.Value.ToString("yyyy-MM-dd"), InvoiceToClientNo = x.FaturaANºCliente, ServiceClientCode = x.CódServiçoCliente, AdjustedPrice = x.AcertoDePreços, ResidueFinalDestinyCode = x.CódDestinoFinalResíduos, AutorizatedInvoiceData = x.DataAutorizaçãoFaturação.HasValue ? "" : x.DataAutorizaçãoFaturação.Value.ToString("yyyy-MM-dd"), AdjustedDocumentData = x.DataDocumentoCorrigido.HasValue ? "" : x.DataDocumentoCorrigido.Value.ToString("yyyy-MM-dd"), CreateDate = x.DataHoraCriação, AdjustedDocument = x.DocumentoCorrigido, OriginalDocument = x.DocumentoOriginal, AutorizatedInvoice = x.FaturaçãoAutorizada, Driver = x.Motorista, DocumentNo = x.NºDocumento, FolhaHoras = x.NºFolhaHoras, EmployeeNo = x.NºFuncionário, RequestLineNo = x.NºLinhaRequisição, RequestNo = x.NºRequisição, QuantityReturned = (decimal)x.QuantidadeDevolvida, InternalRequest = x.RequisiçãoInterna, ResourceType = x.TipoRecurso, CreateUser = x.UtilizadorCriação }); }
public static bool Delete(DiárioDeProjeto ObjectToDelete) { try { using (var ctx = new SuchDBContext()) { ctx.DiárioDeProjeto.Remove(ObjectToDelete); ctx.SaveChanges(); } return(true); } catch (Exception ex) { return(false); } }
public static DiárioDeProjeto Update(DiárioDeProjeto ObjectToUpdate) { try { using (var ctx = new SuchDBContext()) { ctx.DiárioDeProjeto.Update(ObjectToUpdate); ctx.SaveChanges(); } return(ObjectToUpdate); } catch (Exception ex) { return(null); } }
public static DiárioDeProjeto Create(DiárioDeProjeto ObjectToCreate) { try { using (var ctx = new SuchDBContext()) { ObjectToCreate.DataHoraCriação = DateTime.Now; if (!ObjectToCreate.Faturável.HasValue) { ObjectToCreate.Faturável = false; } ctx.DiárioDeProjeto.Add(ObjectToCreate); ctx.SaveChanges(); } return(ObjectToCreate); } catch (Exception ex) { return(null); } }
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)); }