Exemplo n.º 1
0
        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
            });
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        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));
        }