示例#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 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));
        }
示例#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));
        }