Пример #1
0
 private bool AmbienteEMaoDeObra(AmbientePedido ambientePedido)
 {
     return(ambientePedido.IdProd.HasValue &&
            ambientePedido.Altura.HasValue &&
            ambientePedido.Largura.HasValue &&
            ambientePedido.Qtde.HasValue);
 }
        private void ConverterDtoParaModelo(AmbientePedido destino)
        {
            destino.Acrescimo     = this.cadastro.Acrescimo?.Valor ?? destino.Acrescimo;
            destino.TipoAcrescimo = this.cadastro.Acrescimo?.Tipo ?? destino.TipoAcrescimo;
            destino.Desconto      = this.cadastro.Desconto?.Valor ?? destino.Desconto;
            destino.TipoDesconto  = this.cadastro.Desconto?.Tipo ?? destino.TipoDesconto;
            destino.Descricao     = this.cadastro.ObterValorNormalizado(c => c.Descricao, destino.Descricao);
            destino.Ambiente      = this.cadastro.ObterValorNormalizado(c => c.Nome, destino.Ambiente);

            this.ConverterDadosProdutoMaoDeObra(destino);
        }
        private void ConverterDadosProdutoMaoDeObra(AmbientePedido destino)
        {
            if (this.cadastro.ProdutoMaoDeObra == null)
            {
                return;
            }

            destino.Altura      = (int?)this.cadastro.ProdutoMaoDeObra.ObterValorNormalizado(c => c.Altura, destino.Altura);
            destino.IdAplicacao = (uint?)this.cadastro.ProdutoMaoDeObra.ObterValorNormalizado(c => c.IdAplicacao, (int?)destino.IdAplicacao);
            destino.CodInterno  = this.cadastro.ProdutoMaoDeObra.ObterValorNormalizado(c => c.CodigoInterno, destino.CodInterno);
            destino.IdProd      = (uint?)this.cadastro.ProdutoMaoDeObra.ObterValorNormalizado(c => c.Id, (int?)destino.IdProd);
            destino.Largura     = this.cadastro.ProdutoMaoDeObra.ObterValorNormalizado(c => c.Largura, destino.Largura);
            destino.IdProcesso  = (uint?)this.cadastro.ProdutoMaoDeObra.ObterValorNormalizado(c => c.IdProcesso, (int?)destino.IdProcesso);
            destino.Qtde        = (int?)this.cadastro.ProdutoMaoDeObra.ObterValorNormalizado(c => c.Quantidade, destino.Qtde);
            destino.Redondo     = this.cadastro.ProdutoMaoDeObra.ObterValorNormalizado(c => c.Redondo, destino.Redondo);
        }
Пример #4
0
        /// <summary>
        /// Inicia uma nova instância da classe <see cref="ListaDto"/>.
        /// </summary>
        /// <param name="ambientePedido">A model de ambiente de pedido.</param>
        internal ListaDto(AmbientePedido ambientePedido)
        {
            this.Id      = (int)ambientePedido.IdAmbientePedido;
            this.Projeto = !ambientePedido.IdItemProjeto.HasValue
                ? null
                : new DadosProjetoDto
            {
                IdItemProjeto = (int)ambientePedido.IdItemProjeto.Value,
                Descricao     = ambientePedido.DescrObsProj,
            };

            this.Nome             = ambientePedido.Ambiente;
            this.ProdutoMaoDeObra = !this.AmbienteEMaoDeObra(ambientePedido)
                ? null
                : new ProdutoMaoDeObraDto
            {
                Id            = (int)ambientePedido.IdProd.Value,
                CodigoInterno = ambientePedido.CodInterno,
                Altura        = ambientePedido.Altura.Value,
                Largura       = ambientePedido.Largura.Value,
                Quantidade    = ambientePedido.Qtde.Value,
                Redondo       = ambientePedido.Redondo,
                Aplicacao     = this.RecuperaDadosProcessoAplicacao((int?)ambientePedido.IdAplicacao, ambientePedido.CodAplicacao),
                Processo      = this.RecuperaDadosProcessoAplicacao((int?)ambientePedido.IdProcesso, ambientePedido.CodProcesso),
            };

            this.Descricao     = ambientePedido.Descricao;
            this.TotalProdutos = ambientePedido.TotalProdutos;
            this.Acrescimo     = new AcrescimoDescontoDto
            {
                Tipo  = ambientePedido.TipoAcrescimo,
                Valor = ambientePedido.Acrescimo,
            };

            this.Desconto = new AcrescimoDescontoDto
            {
                Tipo  = ambientePedido.TipoDesconto,
                Valor = ambientePedido.Desconto,
            };

            this.Permissoes = new PermissoesDto
            {
                LogAlteracoes = LogAlteracaoDAO.Instance.TemRegistro(LogAlteracao.TabelaAlteracao.AmbientePedido, ambientePedido.IdAmbientePedido, null),
            };
        }
Пример #5
0
        protected void grdAmbiente_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "ViewProd")
            {
                // Mostra os produtos relacionado ao ambiente selecionado
                hdfIdAmbiente.Value = e.CommandArgument.ToString();
                grdProdutos.Visible = true;
                grdProdutos.DataBind();

                // Mostra no label qual ambiente está sendo incluido produtos
                bool           maoDeObra = IsPedidoMaoDeObra();
                AmbientePedido ambiente  = AmbientePedidoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(hdfIdAmbiente.Value));
                lblAmbiente.Text         = "<br />" + ambiente.Ambiente;
                hdfAlturaAmbiente.Value  = !maoDeObra ? "" : ambiente.Altura.Value.ToString();
                hdfLarguraAmbiente.Value = !maoDeObra ? "" : ambiente.Largura.Value.ToString();
                hdfQtdeAmbiente.Value    = !maoDeObra ? "1" : ambiente.Qtde.Value.ToString();
                hdfRedondoAmbiente.Value = !maoDeObra ? "" : ambiente.Redondo.ToString().ToLower();
            }
        }
Пример #6
0
        protected void btnConfirmar_Click(object sender, EventArgs e)
        {
            try
            {
                var idPedido = Glass.Conversoes.StrParaUint(Request["idPedido"]);
                var pcp      = !string.IsNullOrEmpty(Request["pcp"]) ? Request["pcp"] == "true" : false;

                // Recupera os dados da mão de obra
                var idProdMaoObra   = Glass.Conversoes.StrParaUint(hdfIdProdMaoObra.Value);
                int qtdeMaoObra     = Glass.Conversoes.StrParaInt(txtQtdeMaoObra.Text);
                var valorMaoObra    = Glass.Conversoes.StrParaDecimal(txtValorUnitMaoObra.Text);
                var tipoCalcMaoObra = Glass.Conversoes.StrParaInt(hdfTipoCalcMaoObra.Value);
                var alturaBenef     = !string.IsNullOrEmpty(drpAltBenef.SelectedValue) ? Glass.Conversoes.StrParaInt(drpAltBenef.SelectedValue) : 0;
                var larguraBenef    = !string.IsNullOrEmpty(drpLargBenef.SelectedValue) ? Glass.Conversoes.StrParaInt(drpLargBenef.SelectedValue) : 0;
                var espBenef        = !string.IsNullOrEmpty(txtEspBenef.Text) ? (int?)Glass.Conversoes.StrParaInt(txtEspBenef.Text) : null;

                for (var i = 1; i <= 10; i++)
                {
                    var idProdAmbiente = (HiddenField)Master.FindControl("pagina").FindControl("hdfAmbIdProd" + i) != null?
                                         Glass.Conversoes.StrParaUint(((HiddenField)Master.FindControl("pagina").FindControl("hdfAmbIdProd" + i)).Value) : 0;

                    if (idProdAmbiente == 0)
                    {
                        continue;
                    }

                    var codAmbiente = (TextBox)Master.FindControl("pagina").FindControl("txtCodAmb" + i) != null ?
                                      ((TextBox)Master.FindControl("pagina").FindControl("txtCodAmb" + i)).Text : "";

                    var descrAmbiente = (HiddenField)Master.FindControl("pagina").FindControl("hdfDescrAmb" + i) != null ?
                                        ((HiddenField)Master.FindControl("pagina").FindControl("hdfDescrAmb" + i)).Value : "";

                    var qtdeAmbiente = (TextBox)Master.FindControl("pagina").FindControl("txtQtde" + i) != null?
                                       Glass.Conversoes.StrParaInt(((TextBox)Master.FindControl("pagina").FindControl("txtQtde" + i)).Text) : 0;

                    var alturaAmbiente = (TextBox)Master.FindControl("pagina").FindControl("txtAltura" + i) != null?
                                         Glass.Conversoes.StrParaInt(((TextBox)Master.FindControl("pagina").FindControl("txtAltura" + i)).Text) : 0;

                    var larguraAmbiente = (TextBox)Master.FindControl("pagina").FindControl("txtLargura" + i) != null?
                                          Glass.Conversoes.StrParaInt(((TextBox)Master.FindControl("pagina").FindControl("txtLargura" + i)).Text) : 0;

                    var idAplicacao = (HiddenField)Master.FindControl("pagina").FindControl("hdfIdAplicacao" + i) != null?
                                      Glass.Conversoes.StrParaUintNullable(((HiddenField)Master.FindControl("pagina").FindControl("hdfIdAplicacao" + i)).Value) : 0;

                    var idProcesso = (HiddenField)Master.FindControl("pagina").FindControl("hdfIdProcesso" + i) != null?
                                     Glass.Conversoes.StrParaUintNullable(((HiddenField)Master.FindControl("pagina").FindControl("hdfIdProcesso" + i)).Value) : 0;

                    var redondoAmbiente = (CheckBox)Master.FindControl("pagina").FindControl("chkRedondo" + i) != null ?
                                          ((CheckBox)Master.FindControl("pagina").FindControl("chkRedondo" + i)).Checked : false;

                    var idAmbiente = new uint();

                    // Insere o ambiente
                    if (!pcp)
                    {
                        var novo = new AmbientePedido();
                        novo.IdPedido    = idPedido;
                        novo.IdProd      = idProdAmbiente;
                        novo.Ambiente    = descrAmbiente;
                        novo.Altura      = alturaAmbiente;
                        novo.Largura     = larguraAmbiente;
                        novo.Qtde        = qtdeAmbiente;
                        novo.IdAplicacao = idAplicacao;
                        novo.IdProcesso  = idProcesso;
                        novo.Redondo     = redondoAmbiente;

                        if (novo.Altura != novo.Largura && redondoAmbiente)
                        {
                            throw new Exception("O beneficiamento Redondo pode ser marcado somente em peças de medidas iguais.");
                        }

                        idAmbiente = AmbientePedidoDAO.Instance.InsertComTransacao(novo);
                    }
                    else
                    {
                        var novo = new AmbientePedidoEspelho();
                        novo.IdPedido = idPedido;
                        novo.IdProd   = idProdAmbiente;
                        novo.Ambiente = descrAmbiente;
                        novo.Altura   = alturaAmbiente;
                        novo.Largura  = larguraAmbiente;
                        novo.Qtde     = qtdeAmbiente;
                        novo.Redondo  = redondoAmbiente;

                        if (novo.Altura != novo.Largura && redondoAmbiente)
                        {
                            throw new Exception("O beneficiamento Redondo pode ser marcado somente em peças de medidas iguais.");
                        }

                        idAmbiente = AmbientePedidoEspelhoDAO.Instance.InsertComTransacao(novo);
                    }

                    if (idAmbiente <= 0)
                    {
                        throw new Exception("Ambiente não cadastrado.");
                    }

                    // Insere a mão de obra no ambiente
                    if (!pcp)
                    {
                        ProdutosPedido prod = new ProdutosPedido();
                        prod.IdPedido         = idPedido;
                        prod.IdAmbientePedido = idAmbiente;
                        prod.IdProd           = idProdMaoObra;
                        prod.Qtde             = qtdeMaoObra;
                        prod.ValorVendido     = valorMaoObra;

                        if (tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.M2 || tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.M2Direto ||
                            tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.Perimetro)
                        {
                            prod.Altura  = alturaAmbiente;
                            prod.Largura = larguraAmbiente;
                        }

                        prod.Espessura      = ProdutoDAO.Instance.ObtemEspessura((int)prod.IdProd);
                        prod.AlturaBenef    = alturaBenef;
                        prod.LarguraBenef   = larguraBenef;
                        prod.EspessuraBenef = espBenef;
                        prod.IdGrupoProd    = (uint)ProdutoDAO.Instance.ObtemIdGrupoProd((int)prod.IdProd);
                        prod.IdSubgrupoProd = (uint)ProdutoDAO.Instance.ObtemIdSubgrupoProd((int)prod.IdProd).GetValueOrDefault(0);

                        ProdutosPedidoDAO.Instance.Insert(prod);
                    }
                    else
                    {
                        ProdutosPedidoEspelho prod = new ProdutosPedidoEspelho();
                        prod.IdPedido         = idPedido;
                        prod.IdAmbientePedido = idAmbiente;
                        prod.IdProd           = idProdMaoObra;
                        prod.Qtde             = qtdeMaoObra * qtdeAmbiente;
                        prod.ValorVendido     = valorMaoObra;

                        if (tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.M2 || tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.M2Direto ||
                            tipoCalcMaoObra == (int)Glass.Data.Model.TipoCalculoGrupoProd.Perimetro)
                        {
                            prod.Altura  = alturaAmbiente;
                            prod.Largura = larguraAmbiente;
                        }

                        prod.Espessura      = ProdutoDAO.Instance.ObtemEspessura((int)prod.IdProd);
                        prod.AlturaBenef    = alturaBenef;
                        prod.LarguraBenef   = larguraBenef;
                        prod.EspessuraBenef = espBenef;
                        prod.IdGrupoProd    = (uint)ProdutoDAO.Instance.ObtemIdGrupoProd((int)prod.IdProd);
                        prod.IdSubgrupoProd = (uint)ProdutoDAO.Instance.ObtemIdSubgrupoProd((int)prod.IdProd).GetValueOrDefault(0);

                        ProdutosPedidoEspelhoDAO.Instance.InsertComTransacao(prod);
                    }
                }

                // Limpa os controles dos ambientes
                for (var i = 1; i <= 10; i++)
                {
                    if ((TextBox)Master.FindControl("pagina").FindControl("txtCodAmb" + i) != null)
                    {
                        ((TextBox)Master.FindControl("pagina").FindControl("txtCodAmb" + i)).Text = "";
                    }

                    if ((HiddenField)Master.FindControl("pagina").FindControl("hdfAmbIdProd" + i) != null)
                    {
                        ((HiddenField)Master.FindControl("pagina").FindControl("hdfAmbIdProd" + i)).Value = "";
                    }

                    if ((Label)Master.FindControl("pagina").FindControl("lblDescrAmb" + i) != null)
                    {
                        ((Label)Master.FindControl("pagina").FindControl("lblDescrAmb" + i)).Text = "";
                    }

                    if ((HiddenField)Master.FindControl("pagina").FindControl("hdfDescrAmb" + i) != null)
                    {
                        ((HiddenField)Master.FindControl("pagina").FindControl("hdfDescrAmb" + i)).Value = "";
                    }

                    if ((TextBox)Master.FindControl("pagina").FindControl("txtQtde" + i) != null)
                    {
                        ((TextBox)Master.FindControl("pagina").FindControl("txtQtde" + i)).Text = "";
                    }

                    if ((TextBox)Master.FindControl("pagina").FindControl("txtAltura" + i) != null)
                    {
                        ((TextBox)Master.FindControl("pagina").FindControl("txtAltura" + i)).Text = "";
                    }

                    if ((TextBox)Master.FindControl("pagina").FindControl("txtLargura" + i) != null)
                    {
                        ((TextBox)Master.FindControl("pagina").FindControl("txtLargura" + i)).Text = "";
                    }

                    if ((TextBox)Master.FindControl("pagina").FindControl("txtProcIns" + i) != null)
                    {
                        ((TextBox)Master.FindControl("pagina").FindControl("txtProcIns" + i)).Text = "";
                    }

                    if ((HiddenField)Master.FindControl("pagina").FindControl("hdfIdProcesso" + i) != null)
                    {
                        ((HiddenField)Master.FindControl("pagina").FindControl("hdfIdProcesso" + i)).Value = "";
                    }

                    if ((TextBox)Master.FindControl("pagina").FindControl("txtAplIns" + i) != null)
                    {
                        ((TextBox)Master.FindControl("pagina").FindControl("txtAplIns" + i)).Text = "";
                    }

                    if ((HiddenField)Master.FindControl("pagina").FindControl("hdfIdAplicacao" + i) != null)
                    {
                        ((HiddenField)Master.FindControl("pagina").FindControl("hdfIdAplicacao" + i)).Value = "";
                    }

                    if ((CheckBox)Master.FindControl("pagina").FindControl("chkRedondo" + i) != null)
                    {
                        ((CheckBox)Master.FindControl("pagina").FindControl("chkRedondo" + i)).Checked = false;
                    }
                }

                // Atualiza a tela do pedido e exibe a mensagem de sucesso na tela
                ClientScript.RegisterClientScriptBlock(GetType(), "atualizar", "window.opener.redirectUrl(window.opener.location.href);\n", true);
                ClientScript.RegisterStartupScript(GetType(), "foco", "FindControl('txtCodAmb1', 'input').focus();\n", true);
                Glass.MensagemAlerta.ShowMsg("Produtos inseridos com sucesso!", Page);
            }
            catch (Exception ex)
            {
                Glass.MensagemAlerta.ErrorMsg("Falha ao inserir produtos no pedido.", ex, Page);
            }
        }
        /// <summary>
        /// Inicia uma nova instância da classe <see cref="ConverterCadastroAtualizacaoParaAmbientePedido"/>.
        /// </summary>
        /// <param name="cadastro">O DTO de cadastro, enviado para o endpoint.</param>
        /// <param name="atual">O ambiente de pedido atual (opcional), para que sejam aproveitados os valores, se necessário.</param>
        public ConverterCadastroAtualizacaoParaAmbientePedido(CadastroAtualizacaoDto cadastro, AmbientePedido atual = null)
        {
            this.cadastro       = cadastro;
            this.ambientePedido = new Lazy <AmbientePedido>(() =>
            {
                var destino = atual ?? new AmbientePedido();
                this.ConverterDtoParaModelo(destino);

                return(destino);
            });
        }
Пример #8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Config.PossuiPermissao(Config.FuncaoMenuPedido.GerarReposicao))
            {
                Response.Redirect("~/Listas/LstPedidos.aspx");
                Response.End();
                return;
            }

            Ajax.Utility.RegisterTypeForAjax(typeof(Glass.UI.Web.Cadastros.CadPedidoReposicao));
            Ajax.Utility.RegisterTypeForAjax(typeof(MetodosAjax));

            // Se a empresa não possuir acesso ao módulo PCP, esconde colunas Apl e Proc
            if (!Geral.ControlePCP)
            {
                grdProdutos.Columns[9].Visible  = false;
                grdProdutos.Columns[10].Visible = false;
            }

            if (Request["idPedido"] != null)
            {
                panFiltro.Visible           = false;
                dtvPedido.Visible           = true;
                lkbAdicionarProduto.Visible = true;
                dtvPedidoRepos.Visible      = true;

                if (!IsPostBack)
                {
                    // Mostra os produtos relacionado ao ambiente selecionado
                    AmbientePedido ambiente = AmbientePedidoDAO.Instance.GetForReposicaoPedido(Glass.Conversoes.StrParaUint(Request["idPedido"]));
                    hdfIdAmbiente.Value = ambiente != null?ambiente.IdAmbientePedido.ToString() : "";

                    grdProdutos.Visible = true;
                    grdProdutos.DataBind();
                }
            }

            hdfComissaoVisible.Value = PedidoConfig.Comissao.ComissaoPedido.ToString().ToLower();
            divProduto.Visible       = dtvPedido.CurrentMode == DetailsViewMode.ReadOnly;
            grdProdutos.Visible      = divProduto.Visible;

            grdProdutos.Columns[3].Visible = Glass.Configuracoes.ProducaoConfig.ReporApenasProduzidos;
            grdProdutos.Columns[4].Visible = Glass.Configuracoes.ProducaoConfig.ReporApenasProduzidos;
            grdProdutos.Columns[5].Visible = !Glass.Configuracoes.ProducaoConfig.ReporApenasProduzidos;

            if (!Geral.NaoVendeVidro())
            {
                // Esconde colunas Apl, Proc e V. Benef.
                grdProdutos.Columns[10].Visible = false;
                grdProdutos.Columns[11].Visible = false;
            }
            else
            {
                grdProdutos.Columns[grdProdutos.Columns.Count - 2].Visible = false;
                grdProdutos.Columns[grdProdutos.Columns.Count - 3].Visible = false;
            }

            // Se a empresa trabalha com ambiente de pedido e não houver nenhum ambiente cadastrado, esconde grid de produtos
            grdProdutos.Visible = ((PedidoConfig.DadosPedido.AmbientePedido && !String.IsNullOrEmpty(hdfIdAmbiente.Value) &&
                                    hdfIdAmbiente.Value != "0") || !PedidoConfig.DadosPedido.AmbientePedido) && (Request["idPedido"] != null);
        }
Пример #9
0
        public string GerarPedido(string idCli, string tipoPedido, string tipoEntrega, string dataEntrega, string produtos, string espessura)
        {
            Glass.Data.Model.Pedido ped = new Glass.Data.Model.Pedido();
            ProdutosPedido          prodPed;

            uint idPedido = 0;

            try
            {
                LoginUsuario login = UserInfo.GetUserInfo;

                ped.IdCli = Glass.Conversoes.StrParaUint(idCli);

                if (ClienteDAO.Instance.GetSituacao(ped.IdCli) != (int)SituacaoCliente.Ativo)
                {
                    throw new Exception("O cliente não está ativo.");
                }

                ped.IdFunc              = login.CodUser;
                ped.IdLoja              = FuncionarioDAO.Instance.ObtemIdLoja(ped.IdFunc);
                ped.TipoVenda           = (int)Glass.Data.Model.Pedido.TipoVendaPedido.AVista;
                ped.TipoPedido          = Glass.Conversoes.StrParaInt(tipoPedido);
                ped.TipoEntrega         = Glass.Conversoes.StrParaInt(tipoEntrega);
                ped.FromOrcamentoRapido = true;
                ped.DataPedido          = DateTime.Now;
                ped.DataEntregaString   = dataEntrega;
                idPedido = PedidoDAO.Instance.Insert(ped);

                // Cria o ambiente, se a empresa usar
                uint?idAmbientePedido = null;
                if (PedidoConfig.DadosPedido.AmbientePedido)
                {
                    AmbientePedido ambiente = new AmbientePedido();
                    ambiente.IdPedido  = idPedido;
                    ambiente.Ambiente  = ((Glass.Data.Model.Pedido.TipoEntregaPedido)ped.TipoEntrega).ToString();
                    ambiente.Descricao = ambiente.Ambiente;

                    idAmbientePedido = AmbientePedidoDAO.Instance.Insert(ambiente);
                }

                produtos = produtos.Replace("\r\n", "\n");
                string[] vetProds = produtos.TrimEnd('\n').Split('\n');

                // Para cada produto do orçamento rápido
                foreach (string prod in vetProds)
                {
                    // [0]Id do produto [1]Valor produto (sem benef.) [2]Valor total [3]Qtd [4]Altura [5]AlturaCalc [6]Largura [7]Redondo [8]Area total
                    // [9]Descrição [10]Custo, [11]Valor tabela [12]Espessura [13]Perc. Desc. Qtde [14]ServicoInfo [15]Perc. Comissão [16]IdProcesso [17]IdAplicacao
                    string[] dadosProd = prod.Split('\t');

                    prodPed                  = new ProdutosPedido();
                    prodPed.IdPedido         = idPedido;
                    prodPed.IdAmbientePedido = idAmbientePedido;
                    prodPed.IdProd           = Glass.Conversoes.StrParaUint(dadosProd[0]);
                    prodPed.Qtde             = float.Parse(dadosProd[3].Replace('.', ','));

                    prodPed.PercDescontoQtde  = !String.IsNullOrEmpty(dadosProd[13]) ? float.Parse(dadosProd[13].Replace('.', ',')) : 0;
                    prodPed.ValorTabelaPedido = ProdutoDAO.Instance.GetValorTabela((int)prodPed.IdProd, ped.TipoEntrega, ped.IdCli, false, false, prodPed.PercDescontoQtde,
                                                                                   (int?)idPedido, null, null, !String.IsNullOrEmpty(dadosProd[5]) ? float.Parse(dadosProd[5]) : 0f);
                    prodPed.ValorVendido = decimal.Parse(dadosProd[1].Replace('.', ','), System.Globalization.NumberStyles.AllowDecimalPoint);

                    if (ProdutoDAO.Instance.IsPrecoTabela(prodPed.IdProd, prodPed.ValorVendido))
                    {
                        prodPed.ValorVendido = prodPed.ValorTabelaPedido;
                    }

                    prodPed.AlturaReal = !String.IsNullOrEmpty(dadosProd[4]) ? float.Parse(dadosProd[4]) : 0f;
                    prodPed.Altura     = !String.IsNullOrEmpty(dadosProd[5]) ? float.Parse(dadosProd[5]) : 0f;
                    prodPed.Largura    = !String.IsNullOrEmpty(dadosProd[6]) ? Glass.Conversoes.StrParaInt(dadosProd[6]) : 0;
                    prodPed.Redondo    = dadosProd[7] == "true";
                    if (!String.IsNullOrEmpty(dadosProd[8]) && !dadosProd[8].Contains("("))
                    {
                        prodPed.TotM = Single.Parse(dadosProd[8].Replace('.', ','), System.Globalization.NumberStyles.AllowDecimalPoint);
                    }
                    prodPed.Total = decimal.Parse(dadosProd[2].Replace('.', ','), System.Globalization.NumberStyles.AllowDecimalPoint);
                    if (!String.IsNullOrEmpty(espessura))
                    {
                        prodPed.Espessura = Glass.Conversoes.StrParaInt(espessura);
                    }
                    prodPed.CustoProd                 = decimal.Parse(dadosProd[10].Replace('.', ','));
                    prodPed.ValorTabelaOrcamento      = decimal.Parse(dadosProd[11].Replace('.', ','));
                    prodPed.TipoCalculoUsadoOrcamento = Glass.Data.DAL.GrupoProdDAO.Instance.TipoCalculo((int)prodPed.IdProd);
                    prodPed.TipoCalculoUsadoPedido    = prodPed.TipoCalculoUsadoOrcamento;
                    prodPed.Espessura                 = !String.IsNullOrEmpty(dadosProd[12]) ? Glass.Conversoes.StrParaFloat(dadosProd[12]) : 0;
                    prodPed.IdProcesso                = Glass.Conversoes.StrParaUintNullable(dadosProd[16]);
                    prodPed.IdAplicacao               = Glass.Conversoes.StrParaUintNullable(dadosProd[17]);

                    if (!String.IsNullOrEmpty(dadosProd[14]))
                    {
                        GenericBenefCollection benef = new GenericBenefCollection();
                        benef.AddBenefFromServicosInfo(dadosProd[14]);
                        prodPed.Beneficiamentos = benef;
                    }

                    prodPed.ValorComissao = prodPed.Total * (decimal)(Glass.Conversoes.StrParaFloat(dadosProd[15]) / 100);
                    uint idProdPed = ProdutosPedidoDAO.Instance.Insert(prodPed);
                }

                // Atualiza o total do pedido
                PedidoDAO.Instance.UpdateTotalPedido(idPedido);

                return("ok\tPedido Gerado com sucesso.\t" + idPedido);
            }
            catch (Exception ex)
            {
                PedidoDAO.Instance.DeleteByPrimaryKey(idPedido);

                return("Erro\t" + Glass.MensagemAlerta.FormatErrorMsg("Falha ao gerar pedido.", ex));
            }
        }
Пример #10
0
        private IHttpActionResult ValidarOperacaoId(GDASession sessao, int idPedido, int id, out AmbientePedido ambiente)
        {
            ambiente = null;

            var validacao = this.ValidarIdPedido(sessao, idPedido);

            if (validacao != null)
            {
                return(validacao);
            }

            if (id <= 0)
            {
                return(this.ErroValidacao("Número do ambiente deve ser maior que zero."));
            }

            ambiente = AmbientePedidoDAO.Instance.GetElementByPrimaryKey(sessao, id);

            if (ambiente == null)
            {
                return(this.NaoEncontrado(string.Format("Ambiente de pedido {0} não encontrado.", id)));
            }

            if (ambiente.IdPedido != idPedido)
            {
                return(this.NaoEncontrado(string.Format("Ambiente de pedido {0} não pertence ao pedido {1}.", id, idPedido)));
            }

            return(null);
        }