示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
0
 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));
 }
示例#4
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));
        }
示例#5
0
        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);
        }