示例#1
0
        protected override Colosoft.Reports.IReportDocument LoadReport(ref LocalReport report, ref List <ReportParameter> lstParam,
                                                                       HttpRequest PageRequest, System.Collections.Specialized.NameValueCollection Request, object[] outrosParametros, LoginUsuario login, string diretorioLogotipos)
        {
            uint idPedido            = Glass.Conversoes.StrParaUint(Request["idPedido"]);
            TipoRelatorioPedido tipo = !String.IsNullOrEmpty(Request["tipo"]) ? (TipoRelatorioPedido)Glass.Conversoes.StrParaInt(Request["tipo"]) : TipoRelatorioPedido.Normal;

            Glass.Data.Model.Pedido pedido     = PedidoDAO.Instance.GetForRpt(idPedido.ToString(), tipo == TipoRelatorioPedido.Pcp)[0];
            ProdutosPedido[]        prodPedido = ProdutosPedidoDAO.Instance.GetForRpt(idPedido, tipo == TipoRelatorioPedido.Pcp, false);
            var             parcPedido         = ParcelasPedidoDAO.Instance.GetForRpt(idPedido);
            PedidoReposicao pedidoRepos        = PedidoReposicaoDAO.Instance.GetByPedido(idPedido);

            report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/ModeloPedidoReposicao/rptPedidoReposicao{0}.rdlc");

            lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogo(PageRequest, pedido.IdLoja)));
            lstParam.Add(new ReportParameter("TipoRpt", ((int)tipo).ToString()));

            report.DataSources.Add(new ReportDataSource("Pedido", new Glass.Data.Model.Pedido[] { pedido }));
            report.DataSources.Add(new ReportDataSource("PedidoReposicao", new PedidoReposicao[] { pedidoRepos }));
            report.DataSources.Add(new ReportDataSource("ParcelasPedido", parcPedido));
            report.DataSources.Add(new ReportDataSource("ProdutosReposicao", ProdutosReposicaoDAO.GetByProdutosPedido(prodPedido)));
            report.DataSources.Add(new ReportDataSource("TipoPerda", TipoPerdaDAO.Instance.GetByPedidoRepos(idPedido)));
            report.DataSources.Add(new ReportDataSource("TipoPerdaRepos", new TipoPerdaRepos[] { TipoPerdaReposDAO.GetByPedidoRepos(idPedido) }));

            return(null);
        }
示例#2
0
        public string ObterDadosPedido(string id)
        {
            try
            {
                StringBuilder str = new StringBuilder();

                uint idPedido = Glass.Conversoes.StrParaUint(id);

                Glass.Data.Model.Pedido pedido = PedidoDAO.Instance.GetElement(idPedido);

                str.Append(pedido.IdPedido + ";");
                str.Append(pedido.NomeCliente + ";");
                str.Append(pedido.NomeFunc + ";");
                str.Append(pedido.DescrTipoVenda + ";");
                str.Append("R$" + pedido.Total + ";");
                str.Append(pedido.TotM + ";");
                str.Append(pedido.QtdePecas + ";");
                str.Append(pedido.DataPedido.ToString("dd/MM/yyyy") + ";");
                str.Append(pedido.DescrSituacaoPedido + ";");

                return("ok\t" + str.ToString().Replace('\t', ' ').TrimEnd('|'));
            }
            catch (Exception ex)
            {
                return(Glass.MensagemAlerta.FormatErrorMsg("Erro\t", ex));
            }
        }
示例#3
0
        protected void ReposicaoButtons_DataBinding(object sender, EventArgs e)
        {
            if (((Button)sender).ID == "btnFinalizar" || ((Button)sender).ID == "btnSalvar")
            {
                ((Button)sender).Visible = (Request["idPedido"] != null);
                ((Label)dtvPedido.FindControl("lblErro")).Visible = !((Button)sender).Visible;
            }
            else if (((Button)sender).ID == "btnRepor")
            {
                ((Button)sender).Visible = (Request["idPedido"] == null);
                IEnumerator select = odsPedido.Select().GetEnumerator();
                select.Reset();
                select.MoveNext();
                Glass.Data.Model.Pedido atual = (Glass.Data.Model.Pedido)select.Current;
                uint?idReposicao = PedidoDAO.Instance.ObterIdPedidoAnterior(atual.IdPedido);

                if (atual.TipoVenda == 3 || idReposicao != null)
                {
                    ((Label)dtvPedido.FindControl("lblErro")).Text = atual.TipoVenda == 3 ?
                                                                     "Esse pedido já é um pedido de reposição." :
                                                                     "Já existe um pedido de reposição para este pedido (num. reposição: " + idReposicao.Value + ")";

                    ((Button)sender).Enabled = true;
                }
                else
                {
                    ((Label)dtvPedido.FindControl("lblErro")).Text = "";
                }
            }
        }
示例#4
0
        protected void btnConfirmar_Click(object sender, EventArgs e)
        {
            Glass.Data.Model.Pedido ped = PedidoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["IdPedido"]));

            // Concatena a observação do pedido já existente com o motivo do cancelamento
            string motivo = "Motivo do Cancelamento: " + txtMotivo.Text;

            try
            {
                if (ped.Importado)
                {
                    string urlSistema = ClienteDAO.Instance.ObtemUrlSistema(ped.IdCli);

                    if (!string.IsNullOrEmpty(urlSistema))
                    {
                        var urlService = string.Format("{0}{1}", urlSistema.ToLower().Substring(0, urlSistema.ToLower().LastIndexOf("/webglass")).TrimEnd('/'), "/service/wsexportacaopedido.asmx");

                        object[] parametros = new object[] { LojaDAO.Instance.ObtemCnpj(UserInfo.GetUserInfo.IdLoja), 2, Glass.Conversoes.StrParaInt(ped.CodCliente) };

                        object retorno = WebService.ChamarWebService(urlService, "SyncService", "CancelarPedido", parametros);

                        string[] dados = retorno as string[];

                        if (dados[0] == "1")
                        {
                            throw new Exception("Ocorreu um erro: " + dados[1] + ".");
                        }
                    }
                    else
                    {
                        throw new Exception("Atenção: Para pedidos importados é necessário o preenchimento da URL do sistema do cliente no cadastro do mesmo.");
                    }
                }

                PedidoDAO.Instance.CancelarPedidoComTransacao(ped.IdPedido, motivo, chkGerarCredito.Checked, false, ctrlDataEstorno.Data);
            }
            catch (Glass.Data.Exceptions.ComissaoGeradaException ex)
            {
                Page.ClientScript.RegisterClientScriptBlock(GetType(), "confirmar", "if (!confirm('" + Glass.MensagemAlerta.FormatErrorMsg(null, ex) + "')) closeWindow(); " +
                                                            "else confirmarCancelamento(" + ped.IdPedido + ", " + chkGerarCredito.Checked.ToString().ToLower() + ", '" + motivo + "', '" + ctrlDataEstorno.Data + "');", true);

                return;
            }
            catch (Exception ex)
            {
                Glass.MensagemAlerta.ErrorMsg(null, ex, Page);
                return;
            }

            ClientScript.RegisterClientScriptBlock(this.GetType(), "ok", "window.opener.location.href=window.opener.location.href;closeWindow();", true);
        }
示例#5
0
        protected void chkSel_DataBinding(object sender, EventArgs e)
        {
            GridViewRow linha = ((CheckBox)sender).Parent.Parent as GridViewRow;

            Glass.Data.Model.Pedido p = linha != null ? linha.DataItem as Glass.Data.Model.Pedido : null;

            if (p == null)
            {
                return;
            }

            ((CheckBox)sender).Attributes.Add("ValorPagoComissao", p.ValorPagoComissao.ToString().Replace(",", "."));
            ((CheckBox)sender).Attributes.Add("ValorPedido", p.Total.ToString().Replace(",", "."));
            ((CheckBox)sender).Attributes.Add("IdPedido", p.IdPedido.ToString().Replace(",", "."));
        }
示例#6
0
        public string VerificarDescontoPermitido(string idPedido, string tipoVenda, string tipoEntrega, string idParcela)
        {
            var isAdministrador = UserInfo.GetUserInfo.IsAdministrador;
            var idFuncDesc      = Geral.ManterDescontoAdministrador ? PedidoDAO.Instance.ObtemIdFuncDesc(null, idPedido.StrParaUint()).GetValueOrDefault() : 0;

            var pedido = new Glass.Data.Model.Pedido();

            pedido             = PedidoDAO.Instance.GetElementByPrimaryKey(idPedido.StrParaUint());
            pedido.TipoVenda   = tipoVenda.StrParaInt();
            pedido.TipoEntrega = idPedido.StrParaInt();
            pedido.IdParcela   = idPedido.StrParaUint();

            return(isAdministrador && !PedidoDAO.Instance.DescontoPermitido(null, pedido) ?
                   $"1|O funcionário {FuncionarioDAO.Instance.GetNome(idFuncDesc)} aplicou um desconto maior do que o desconto máximo configurado para esta alteração." +
                   " Tem certeza que deseja alterar o pedido?" : "0|Deseja atualizar os dados do pedido?");
        }
示例#7
0
        protected void grdPedido_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType != DataControlRowType.DataRow)
            {
                return;
            }

            Glass.Data.Model.Pedido item = e.Row.DataItem as Glass.Data.Model.Pedido;
            if (item == null)
            {
                return;
            }

            if (item.IdPedido == 0)
            {
                foreach (TableCell c in e.Row.Cells)
                {
                    c.ForeColor = System.Drawing.Color.Red;
                }

                e.Row.Cells[7].Text = "Aberto";
            }

            if (item.CorLinhaLista != Color.Black)
            {
                foreach (TableCell c in e.Row.Cells)
                {
                    c.ForeColor = item.CorLinhaLista;

                    // Alteração no pcp não deve ser vista pelo cliente
                    if (c.ForeColor == Color.Red)
                    {
                        continue;
                    }

                    foreach (Control c1 in c.Controls)
                    {
                        if (c1 is WebControl)
                        {
                            ((WebControl)c1).ForeColor = c.ForeColor;
                        }
                    }
                }
            }
        }
示例#8
0
        public string GetPedido(string idPedido)
        {
            try
            {
                Glass.Data.Model.Pedido pedido = PedidoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(idPedido));
                Cliente cliente = ClienteDAO.Instance.GetElementByPrimaryKey(pedido.IdCli);

                if (pedido.IdPedido == 0)
                {
                    return("Erro\tPedido não encontrado.");
                }

                if (pedido.Situacao != Glass.Data.Model.Pedido.SituacaoPedido.EmConferencia &&
                    pedido.Situacao != Glass.Data.Model.Pedido.SituacaoPedido.AtivoConferencia)
                {
                    return("Erro\tEste pedido não está em conferência.");
                }

                PedidoConferencia pedConf = PedidoConferenciaDAO.Instance.GetElementByPrimaryKey(pedido.IdPedido);

                if (pedConf.Situacao == (int)PedidoConferencia.SituacaoConferencia.EmAndamento)
                {
                    return("Erro\tA conferência deste pedido já está em andamento.");
                }

                if (pedConf.Situacao == (int)PedidoConferencia.SituacaoConferencia.Finalizada)
                {
                    return("Erro\tA conferência deste pedido já está finalizada.");
                }

                StringBuilder str = new StringBuilder();
                str.Append("ok\t" + pedido.IdPedido + "\t");
                str.Append(LojaDAO.Instance.GetElementByPrimaryKey(pedido.IdLoja).NomeFantasia.Replace("'", "").Replace("|", "").Replace(";", "") + "\t");
                str.Append(cliente.Nome.Replace("|", "").Replace(";", "") + "\t");
                str.Append(cliente.Telefone.Replace("|", "").Replace(";", "") + "\t");
                str.Append(pedido.LocalizacaoObra.Replace("|", "").Replace(";", "") + "\t");
                str.Append(pedido.DataEntrega != null ? pedido.DataEntrega.Value.ToString("dd/MM/yyyy") : String.Empty);

                return(str.ToString());
            }
            catch (Exception ex)
            {
                return(Glass.MensagemAlerta.FormatErrorMsg("Erro\tFalha ao carregar pedidos.", ex));
            }
        }
示例#9
0
        protected void chkSel_DataBinding(object sender, EventArgs e)
        {
            GridViewRow linha = ((CheckBox)sender).Parent.Parent as GridViewRow;

            Glass.Data.Model.Pedido p = linha != null ? linha.DataItem as Glass.Data.Model.Pedido : null;

            if (p == null)
            {
                return;
            }

            // Só habilita o checkbox se houver comissão a pagar
            ((CheckBox)sender).Enabled = p.ComissaoAPagar;

            // Salva alguns atributos ao checkbox para utilização no JavaScript
            ((CheckBox)sender).Attributes.Add("ValorComissao", p.ValorComissaoPagar.ToString().Replace(",", "."));
            ((CheckBox)sender).Attributes.Add("ValorPedido", p.Total.ToString().Replace(",", "."));
            ((CheckBox)sender).Attributes.Add("IdPedido", p.IdPedido.ToString().Replace(",", "."));
            ((CheckBox)sender).Attributes.Add("ValorBaseCalcComissao", p.ValorBaseCalcComissao.ToString().Replace(",", "."));
        }
示例#10
0
        public string GetDadosPedido(string idPedido)
        {
            try
            {
                if (!PedidoDAO.Instance.PedidoExists(Glass.Conversoes.StrParaUint(idPedido)))
                {
                    throw new Exception("Pedido não encontrado.");
                }

                Glass.Data.Model.Pedido pedido = PedidoDAO.Instance.GetElement(Glass.Conversoes.StrParaUint(idPedido));
                decimal total = !PedidoEspelhoDAO.Instance.ExisteEspelho(pedido.IdPedido) ? pedido.Total : pedido.TotalEspelho;

                return("Ok#" + pedido.NomeCliente + "#" + pedido.CodCliente + "#" + pedido.NomeFunc + "#" +
                       pedido.DataEntrega.Value.ToString("dd/MM/yyyy") + "#" + total.ToString("C"));
            }
            catch (Exception ex)
            {
                return("Erro;" + Glass.MensagemAlerta.FormatErrorMsg("Falha ao recuperar dados do pedido.", ex));
            }
        }
示例#11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtNumPedido.Text) || !PedidoDAO.Instance.PedidoExists(Glass.Conversoes.StrParaUint(txtNumPedido.Text)))
            {
                tbInfPedido.Visible    = false;
                tbInfAdicional.Visible = false;
                lnkImprimir.Visible    = false;

                if (!string.IsNullOrEmpty(txtNumPedido.Text))
                {
                    MensagemAlerta.ShowMsg("O pedido informado não existe.", Page);
                }

                return;
            }

            if (!string.IsNullOrEmpty(txtNumPedido.Text) && Glass.Conversoes.StrParaInt(txtNumPedido.Text) > 0)
            {
                Glass.Data.Model.Pedido ped = PedidoDAO.Instance.GetElement(Glass.Conversoes.StrParaUint(txtNumPedido.Text));

                if (ped == null)
                {
                    return;
                }

                lblCli.Text  = ped.NomeCliente;
                lblVend.Text = ped.NomeFunc;
                lblOrca.Text = ped.IdOrcamento.ToString();
                lblPed.Text  = ped.IdPedido.ToString();

                tbInfPedido.Visible    = true;
                tbInfAdicional.Visible = true;
                lnkImprimir.Visible    = true;
            }
            else
            {
                tbInfPedido.Visible    = false;
                tbInfAdicional.Visible = false;
                lnkImprimir.Visible    = false;
            }
        }
示例#12
0
        protected override Colosoft.Reports.IReportDocument LoadReport(ref LocalReport report, ref List <ReportParameter> lstParam,
                                                                       HttpRequest PageRequest, System.Collections.Specialized.NameValueCollection Request, object[] outrosParametros, LoginUsuario login, string diretorioLogotipos)
        {
            // Verifica qual relatório será chamado
            switch (Request["rel"])
            {
            case "imagemProjeto":
                report.ReportPath = NomeArquivoRelatorioImagemProjeto;

                // Identifica se foi selecionado para imprimir alumínios e ferragens.
                bool imprAlumFerr = Request["imprAlumFerr"] == "true";

                uint                       idProjeto   = !String.IsNullOrEmpty(Request["idProjeto"]) ? Glass.Conversoes.StrParaUint(Request["idProjeto"]) : 0;
                var                        projeto     = idProjeto > 0 ? ProjetoDAO.Instance.GetElement(idProjeto) : new Data.Model.Projeto();
                ItemProjeto[]              itemProjeto = ItemProjetoDAO.Instance.GetByString(Request["idItemProjeto"]);
                List <PecaItemProjeto>     lstPeca     = new List <PecaItemProjeto>();
                List <MaterialItemProjeto> lstMaterial = new List <MaterialItemProjeto>();
                List <Imagem>              lstImagens  = new List <Imagem>();
                List <MedidaItemProjeto>   lstMedidas  = new List <MedidaItemProjeto>();

                // Busca o pedido, se houver, relacionado à este projeto
                projeto.IdPedido = ProjetoDAO.Instance.GetIdPedidoByProjeto(idProjeto);

                if (projeto.IdPedido == 0)
                {
                    // Tenta buscar o pedido pelo item projeto.
                    if (itemProjeto[0].IdPedido > 0)
                    {
                        projeto.IdPedido = itemProjeto[0].IdPedido.Value;
                    }
                    else if (itemProjeto[0].IdPedidoEspelho > 0)
                    {
                        projeto.IdPedido = itemProjeto[0].IdPedidoEspelho.Value;
                    }
                    else if (itemProjeto[0].IdOrcamento > 0)
                    {
                        projeto.IdPedido = PedidoDAO.Instance.GetIdPedidoByOrcamento(itemProjeto[0].IdOrcamento.Value);
                    }
                }

                if (projeto.IdPedido > 0)
                {
                    var idCliente = PedidoDAO.Instance.ObtemIdCliente(null, projeto.IdPedido);

                    projeto.NomeCliente  = ClienteDAO.Instance.GetNome(idCliente);
                    projeto.Rota         = RotaDAO.Instance.ObtemCodRota(idCliente);
                    projeto.NomeFunc     = FuncionarioDAO.Instance.GetNome(PedidoDAO.Instance.ObtemIdFunc(null, projeto.IdPedido));
                    projeto.DataCad      = PedidoDAO.Instance.ObtemDataPedido(null, projeto.IdPedido);
                    projeto.TipoEntrega  = PedidoDAO.Instance.ObtemTipoEntrega(null, projeto.IdPedido);
                    projeto.Obs          = PedidoDAO.Instance.ObtemObs(null, projeto.IdPedido);
                    projeto.ObsLiberacao = PedidoDAO.Instance.ObtemObsLiberacao(projeto.IdPedido);
                }

                for (int i = 0; i < itemProjeto.Length; i++)
                {
                    var           pcp    = itemProjeto[i].IdPedidoEspelho.HasValue;
                    ProjetoModelo modelo = ProjetoModeloDAO.Instance.GetElementByPrimaryKey(itemProjeto[i].IdProjetoModelo);
                    lstPeca.AddRange(PecaItemProjetoDAO.Instance.GetByItemProjetoRpt(itemProjeto[i].IdItemProjeto, itemProjeto[i].IdProjetoModelo, pcp));

                    // Caso a imagem da peça tenha sido editada então a impressão não deve exibir se a peça possui arquivo de otimização.
                    for (var x = 0; x < lstPeca.Count; x++)
                    {
                        var pecaPossuiFiguraAssociada  = PecaItemProjetoDAO.Instance.PossuiFiguraAssociada(null, lstPeca[x].IdPecaItemProj);
                        var pecaPossuiEdicaoCadProject = lstPeca[x].IdProdPed != null ? lstPeca[x].ImagemEditada && ProdutosPedidoEspelhoDAO.Instance.PossuiEdicaoCadProject((uint)lstPeca[x].IdProdPed, pcp):false;
                        var produtoPossuiImagemEditada = pcp && ProdutosPedidoEspelhoDAO.Instance.PossuiImagemAssociada(null, (uint)lstPeca[x]?.IdProdPed.GetValueOrDefault());

                        if (lstPeca[x].IdArquivoMesaCorte > 0 && lstPeca[x].TipoArquivoMesaCorte > 0)
                        {
                            if ((produtoPossuiImagemEditada || lstPeca[x].ImagemEditada || pecaPossuiFiguraAssociada) &&
                                lstPeca[x].TipoArquivoMesaCorte != (int)TipoArquivoMesaCorte.FMLBasico && !pecaPossuiEdicaoCadProject)
                            {
                                lstPeca[x].IdArquivoMesaCorte   = null;
                                lstPeca[x].TipoArquivoMesaCorte = null;
                            }
                        }
                    }

                    int atual = lstMaterial.Count;
                    lstMaterial.AddRange(MaterialItemProjetoDAO.Instance.GetForRptItemProjeto(itemProjeto[i].IdItemProjeto, false));
                    int numeroMateriais = lstMaterial.Count - atual;

                    // Verifica se os materiais do itemProjeto deverão ser impressos também
                    itemProjeto[i].MostrarMateriais = imprAlumFerr && numeroMateriais > 0;

                    // Pega a imagem do projeto com as medidas já desenhadas e o modelo da imagem
                    if (modelo.IdGrupoModelo != (uint)UtilsProjeto.GrupoModelo.Outros)
                    {
                        itemProjeto[i].ImagemProjeto = Data.Helper.Utils.GetImageFromRequest(UtilsProjeto.GetFiguraAssociadaUrl(itemProjeto[i].IdItemProjeto, modelo));

                        // Salva a imagem na memória, recupera os bytes e os salva na propriedade ImagemProjetoModelo.
                        // Chamado 50315 - o nome da imagem deve ser recuperado dentro do try para não retornar erro quando o mesmo for null.
                        try
                        {
                            var arquivo = System.IO.Path.Combine(Glass.Data.Helper.Utils.ModelosProjetoPath(Context), modelo.NomeFigura);
                            if (System.IO.File.Exists(arquivo))
                            {
                                using (var image = new Bitmap(arquivo))
                                    using (var ms = new System.IO.MemoryStream())
                                    {
                                        image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                                        itemProjeto[i].ImagemProjetoModelo = ms.ToArray();
                                    }
                            }
                        }
                        catch { }

                        itemProjeto[i].ImagemProjetoModelo = Data.Helper.Utils.GetImageFromRequest("../../Handlers/LoadImage.ashx?path=" + Data.Helper.Utils.ModelosProjetoPath(Context) +
                                                                                                   modelo.NomeFigura + "&altura=" + modelo.AlturaFigura + "&largura=" + modelo.LarguraFigura);
                    }

                    // Copia o idPedidoEspelho para o idPedido
                    if (itemProjeto[i].IdPedido == null)
                    {
                        itemProjeto[i].IdPedido = itemProjeto[i].IdPedidoEspelho;
                    }

                    lstImagens.AddRange(ImagemDAO.Instance.GetPecasAlteradas(itemProjeto[i].IdItemProjeto,
                                                                             Glass.Configuracoes.ProjetoConfig.RelatorioImagemProjeto.PercentualTamanhoImagemRelatorio));
                    lstMedidas.AddRange(MedidaItemProjetoDAO.Instance.GetListByItemProjeto(itemProjeto[i].IdItemProjeto));
                }

                lstParam.Add(new ReportParameter("Pedido_PedCli", projeto.IdPedido > 0 ? PedidoDAO.Instance.ObtemPedCli(null, projeto.IdPedido) : string.Empty));
                lstParam.Add(new ReportParameter("FastDelivery", PedidoDAO.Instance.IsFastDelivery(null, projeto.IdPedido).ToString()));
                lstParam.Add(new ReportParameter("ExibirImagemModelo", (true).ToString()));
                lstParam.Add(new ReportParameter("CorObs", Glass.Configuracoes.ProjetoConfig.RelatorioImagemProjeto.CorObsNoRelatorio));
                lstParam.Add(new ReportParameter("TemEdicaoCadProject", "true"));
                lstParam.Add(new ReportParameter("ImagensPecasIndividuais", "true"));
                lstParam.Add(new ReportParameter("AgruparBeneficiamentos", PedidoConfig.RelatorioPedido.AgruparBenefRelatorio.ToString()));

                report.DataSources.Add(new ReportDataSource("Projeto", new Data.Model.Projeto[] { projeto }));
                report.DataSources.Add(new ReportDataSource("ItemProjeto", itemProjeto));
                report.DataSources.Add(new ReportDataSource("PecaItemProjeto", lstPeca.ToArray()));
                report.DataSources.Add(new ReportDataSource("MaterialItemProjeto", lstMaterial.ToArray()));
                report.DataSources.Add(new ReportDataSource("Imagem", lstImagens.ToArray()));
                report.DataSources.Add(new ReportDataSource("MedidaItemProjeto", lstMedidas.ToArray()));
                break;

            case "totaisProjeto":
                report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Projeto/rptTotaisProjeto{0}.rdlc");
                bool exibirCusto = UserInfo.GetUserInfo.TipoUsuario == (uint)Data.Helper.Utils.TipoFuncionario.Administrador ||
                                   UserInfo.GetUserInfo.TipoUsuario == (uint)Data.Helper.Utils.TipoFuncionario.Gerente;

                string titulo      = String.Empty;
                string nomeCliente = String.Empty;
                string tipoEntrega = String.Empty;
                float  taxaPrazo   = 0;

                uint idProjeto_Totais       = Glass.Conversoes.StrParaUint(Request["idProjeto"]);
                uint idOrcamento_Totais     = Glass.Conversoes.StrParaUint(Request["idOrcamento"]);
                uint idPedido_Totais        = Glass.Conversoes.StrParaUint(Request["idPedido"]);
                uint idPedidoEspelho_Totais = Glass.Conversoes.StrParaUint(Request["idPedidoEspelho"]);

                if (idProjeto_Totais > 0)
                {
                    var projeto_Totais = ProjetoDAO.Instance.GetElementByPrimaryKey(idProjeto_Totais);
                    titulo      = "Impressão Projeto N.º " + idProjeto_Totais;
                    nomeCliente = projeto_Totais.IdCliente > 0 ? ClienteDAO.Instance.GetNome(projeto_Totais.IdCliente.Value) : projeto_Totais.NomeCliente;
                    tipoEntrega = projeto_Totais.DescrTipoEntrega;
                    taxaPrazo   = projeto_Totais.TaxaPrazo;
                }
                else if (idOrcamento_Totais > 0)
                {
                    var orcamento_Totais = OrcamentoDAO.Instance.GetElementByPrimaryKey(idOrcamento_Totais);
                    titulo      = "Impressão dos Projetos do Orçamento N.º " + idOrcamento_Totais;
                    nomeCliente = orcamento_Totais.IdCliente > 0 ? orcamento_Totais.IdCliente + " - " + ClienteDAO.Instance.GetNome(orcamento_Totais.IdCliente.Value) : orcamento_Totais.NomeCliente;
                    tipoEntrega = orcamento_Totais.DescrTipoEntrega;
                    taxaPrazo   = orcamento_Totais.TaxaPrazo;
                }
                else if (idPedido_Totais > 0 || idPedidoEspelho_Totais > 0)
                {
                    Glass.Data.Model.Pedido pedido_Totais = PedidoDAO.Instance.GetElementByPrimaryKey(idPedido_Totais > 0 ? idPedido_Totais : idPedidoEspelho_Totais);
                    titulo = idPedido_Totais > 0 ? "Impressão dos Projetos do Pedido N.º " + idPedido_Totais :
                             "Impressão dos Projetos da Conferência do Pedido N.º " + idPedidoEspelho_Totais;
                    nomeCliente = pedido_Totais.IdCli + " - " + ClienteDAO.Instance.GetNome(pedido_Totais.IdCli);
                    tipoEntrega = pedido_Totais.DescrTipoEntrega;
                    taxaPrazo   = pedido_Totais.TaxaPrazo;
                }

                lstParam.Add(new ReportParameter("Titulo", titulo));
                lstParam.Add(new ReportParameter("NomeCliente", nomeCliente));
                lstParam.Add(new ReportParameter("TipoEntrega", tipoEntrega));
                lstParam.Add(new ReportParameter("TaxaPrazo", taxaPrazo.ToString()));
                lstParam.Add(new ReportParameter("ExibirCusto", exibirCusto.ToString()));
                lstParam.Add(new ReportParameter("ExibirJuros", "false"));
                lstParam.Add(new ReportParameter("ExibirLinhaVermelhaSaida", "true"));

                List <MaterialItemProjeto> lstMaterial_Totais = MaterialItemProjetoDAO.Instance.GetForRptTotaisItens(idProjeto_Totais,
                                                                                                                     idOrcamento_Totais, idPedido_Totais, idPedidoEspelho_Totais);

                report.DataSources.Add(new ReportDataSource("MaterialItemProjeto", lstMaterial_Totais.ToArray()));
                break;

            case "ImpressaoModeloProjeto":
                report.ReportPath = "Relatorios/Projeto/rptImpressaoModeloProjeto.rdlc";

                ProjetoModelo projModelo = ProjetoModeloDAO.Instance.GetByCodigo(Request["projModeloCod"]);

                if (projModelo.IdGrupoModelo != (uint)UtilsProjeto.GrupoModelo.Outros)
                {
                    // Salva a imagem na memória, recupera os bytes e os salva na propriedade ImagemProjetoModelo.
                    // Chamado 50315 - o nome da imagem deve ser recuperado dentro do try para não retornar erro quando o mesmo for null.
                    try
                    {
                        var arquivo = System.IO.Path.Combine(Glass.Data.Helper.Utils.ModelosProjetoPath(Context), projModelo.NomeFigura);
                        if (System.IO.File.Exists(arquivo))
                        {
                            using (var image = new Bitmap(arquivo))
                                using (var ms = new System.IO.MemoryStream())
                                {
                                    image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                                    projModelo.ImagemProjetoModelo = ms.ToArray();
                                }
                        }
                    }
                    catch { }
                }

                report.DataSources.Add(new ReportDataSource("ProjetoModelo", new ProjetoModelo[] { projModelo }));

                PecaProjetoModelo[] pecasModelo = PecaProjetoModeloDAO.Instance.GetByModelo(projModelo.IdProjetoModelo).ToArray();
                report.DataSources.Add(new ReportDataSource("PecaProjetoModelo", pecasModelo));

                MaterialProjetoModelo[] materialModelo = MaterialProjetoModeloDAO.Instance.GetByProjetoModelo(projModelo.IdProjetoModelo, null).ToArray();
                report.DataSources.Add(new ReportDataSource("MaterialProjetoModelo", materialModelo));

                MedidaProjetoModelo[] medidaModelo = MedidaProjetoModeloDAO.Instance.GetByProjetoModelo(projModelo.IdProjetoModelo, false).ToArray();
                report.DataSources.Add(new ReportDataSource("MedidaProjetoModelo", medidaModelo));

                Imagem[] imagensPecasModelo = ImagemDAO.Instance.GetPecasModelo(projModelo.IdProjetoModelo);
                report.DataSources.Add(new ReportDataSource("Imagem", imagensPecasModelo));
                break;

            case "LstModeloProjeto":
                report.ReportPath = "Relatorios/Projeto/rptLstModeloProjeto.rdlc";
                Imagem[] imagensProjModelo = ImagemDAO.Instance.GetProjetosModelo(Request["cod"], Request["desc"],
                                                                                  Glass.Conversoes.StrParaUint(Request["grupo"]), Request["situacao"].StrParaInt());
                report.DataSources.Add(new ReportDataSource("Imagem", imagensProjModelo));
                break;
            }

            // Atribui parâmetros ao relatório
            lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogo(PageRequest)));
            lstParam.Add(new ReportParameter("TextoRodape", Geral.TextoRodapeRelatorio(login.Nome)));
            lstParam.Add(new ReportParameter("CorRodape", "DimGray"));

            return(null);
        }
示例#13
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));
            }
        }
示例#14
0
        protected override Colosoft.Reports.IReportDocument LoadReport(ref LocalReport report, ref List <ReportParameter> lstParam,
                                                                       HttpRequest PageRequest, System.Collections.Specialized.NameValueCollection Request, object[] outrosParametros, LoginUsuario login, string diretorioLogotipos)
        {
            Glass.Data.RelModel.Recibo recibo;

            // Verifica qual relatório será chamado
            switch (Request["rel"])
            {
            case "recibo":
                if (string.IsNullOrEmpty(outrosParametros[0].ToString()) || string.IsNullOrEmpty(outrosParametros[1].ToString()))
                {
                    return(null);
                }

                var idOrcamento = Request["idOrcamento"] != "0" && Request["idOrcamento"] != "" ? Request["idOrcamento"].StrParaUint() : 0;
                var idPedido    = Request["idPedido"] != "0" && Request["idPedido"] != "" ? Request["idPedido"].StrParaUint() : 0;
                var idLiberacao = Request["idLiberacao"] != "0" && Request["idLiberacao"] != "" ? Request["idLiberacao"].StrParaUint() : 0;
                var idsContaR   = outrosParametros[1].ToString();

                if (idsContaR == null || idsContaR == "0")
                {
                    if (PedidoConfig.LiberarPedido)
                    {
                        var contasRec = ContasReceberDAO.Instance.GetByLiberacaoPedido(idLiberacao, true);
                        if (contasRec != null && contasRec.Count > 0)
                        {
                            idsContaR = string.Join(",", contasRec.Select(f => f.IdContaR.ToString()));
                        }
                    }
                    else
                    {
                        var contasRec = ContasReceberDAO.Instance.GetByPedido(null, idPedido, false, true);
                        if (contasRec != null && contasRec.Count > 0)
                        {
                            idsContaR = string.Join(",", contasRec.Select(f => f.IdContaR.ToString()));
                        }
                    }
                }

                var orcamento = new Data.Model.Orcamento();
                var pedido    = new Data.Model.Pedido();
                var liberacao = new LiberarPedido();

                var nomeCliente  = string.Empty;
                var nomeVendedor = string.Empty;
                var idLoja       = new uint();
                var total        = new decimal();

                #region Orçamento

                // Recupera os dados do orçamento.
                if (idOrcamento > 0)
                {
                    orcamento = OrcamentoDAO.Instance.GetElementByPrimaryKey(idOrcamento);

                    if (orcamento.IdCliente > 0)
                    {
                        nomeCliente = ClienteDAO.Instance.GetNome(orcamento.IdCliente.Value);
                    }
                    else
                    {
                        nomeCliente = orcamento.NomeCliente;
                    }

                    nomeVendedor = orcamento.IdFuncionario > 0 ? FuncionarioDAO.Instance.GetNome(orcamento.IdFuncionario.Value) : login.Nome;
                    idLoja       = orcamento.IdLoja > 0 ? orcamento.IdLoja.Value : login.IdLoja;
                    total        = orcamento.Total;

                    idPedido    = 0;
                    idLiberacao = 0;
                }

                #endregion

                #region Pedido

                // Recupera os dados do pedido.
                else if (idPedido > 0)
                {
                    pedido       = PedidoDAO.Instance.GetElementByPrimaryKey(idPedido);
                    nomeCliente  = ClienteDAO.Instance.GetNome(pedido.IdCli);
                    nomeVendedor = pedido.IdFunc > 0 ? FuncionarioDAO.Instance.GetNome(pedido.IdFunc) : login.Nome;
                    idLoja       = pedido.IdPedido > 0 ? pedido.IdLoja : login.IdLoja;
                    total        = pedido.Total;

                    // Se houver pcp, usa o total do mesmo
                    var totalEspelho = PedidoEspelhoDAO.Instance.ObtemTotal(idPedido);
                    if (totalEspelho > 0)
                    {
                        total = totalEspelho;
                    }

                    idLiberacao = 0;
                }

                #endregion

                #region Liberação

                // Recupera os dados da liberação.
                else if (idLiberacao > 0)
                {
                    liberacao    = LiberarPedidoDAO.Instance.GetElement(idLiberacao);
                    nomeCliente  = ClienteDAO.Instance.GetNome(liberacao.IdCliente);
                    nomeVendedor = !string.IsNullOrEmpty(liberacao.NomeFunc) ? liberacao.NomeFunc : login.Nome;
                    idLoja       = (uint)FuncionarioDAO.Instance.GetElementByPrimaryKey(liberacao.IdFunc).IdLoja;
                    total        = liberacao.Total;
                }

                #endregion

                recibo                 = new Data.RelModel.Recibo();
                recibo.Tipo            = Conversoes.StrParaInt(Request["referente"]);
                recibo.IdOrcamento     = orcamento.IdOrcamento;
                recibo.IdPedido        = pedido.IdPedido;
                recibo.IdLiberarPedido = liberacao.IdLiberarPedido;
                recibo.Cliente         = nomeCliente;
                recibo.IdLoja          = idLoja;
                recibo.SinalPedido     = pedido.IdPedido > 0 ? pedido.ValorEntrada + pedido.ValorPagamentoAntecipado : 0;
                recibo.Total           = total;
                recibo.Vendedor        = nomeVendedor;
                recibo.Items           = outrosParametros[0].ToString();
                recibo.NumParcelas     = idsContaR;
                recibo.ValorReferente  = Request["valorRef"];
                recibo.MotivoReferente = Request["motivoRef"];
                report.ReportPath      = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc");

                if (report.ReportPath == "Relatorios/Genericos/ModeloRecibo/rptReciboVidrosEVidros.rdlc")
                {
                    lstParam.Add(new ReportParameter("ImagemCabecalho",
                                                     "file:///" + PageRequest.PhysicalApplicationPath.Replace('\\', '/') + "Images/cabecalhoOrcamentoVivrosEVidros.jpg"));
                }

                if (ReciboConfig.Relatorio.UsarParcelasPedido && pedido.IdPedido > 0)
                {
                    report.DataSources.Add(new ReportDataSource("ParcelasPedido", pedido.NumParc > 0 ? ParcelasPedidoDAO.Instance.GetByPedido(pedido.IdPedido) :
                                                                new ParcelasPedido[0]));
                }

                report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo }));
                break;

            case "reciboPgAntec":
                Sinal   sinal       = SinalDAO.Instance.GetSinalDetails(Glass.Conversoes.StrParaUint(Request["idPgAntecipado"]));
                Cliente clientePgto = ClienteDAO.Instance.GetElementByPrimaryKey(sinal.IdCliente);

                recibo                 = new Data.RelModel.Recibo();
                recibo.Tipo            = Glass.Conversoes.StrParaInt(Request["referente"]);
                recibo.IdSinal         = sinal.IdSinal;
                recibo.Cliente         = clientePgto.Nome;
                recibo.IdLoja          = (uint)FuncionarioDAO.Instance.GetElementByPrimaryKey(sinal.UsuCad).IdLoja;
                recibo.Total           = sinal.TotalSinal;
                recibo.Vendedor        = FuncionarioDAO.Instance.GetNome(sinal.UsuCad);
                recibo.Items           = outrosParametros[0].ToString();
                recibo.NumParcelas     = outrosParametros[1].ToString();
                recibo.ValorReferente  = Request["valorRef"];
                recibo.MotivoReferente = Request["motivoRef"];
                report.ReportPath      = Glass.Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc");

                report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo }));
                break;

            case "reciboAcerto":

                uint idAcerto = Request["idAcerto"] != "0" && Request["idAcerto"] != "" ? Glass.Conversoes.StrParaUint(Request["idAcerto"]) : 0;

                if (idAcerto > 0 && !AcertoDAO.Instance.Exists(idAcerto))
                {
                    Response.Write("O acerto informado não existe.");
                    return(null);
                }

                Acerto acerto = AcertoDAO.Instance.GetByCliList(Convert.ToInt32(idAcerto), 0, 0, 0, null, null, 0, 0, 0, 0, null, 0, 10)[0];

                recibo                 = new Data.RelModel.Recibo();
                recibo.Tipo            = Glass.Conversoes.StrParaInt(Request["referente"]);
                recibo.IdAcerto        = acerto.IdAcerto;
                recibo.Cliente         = ClienteDAO.Instance.GetNome(acerto.IdCli);
                recibo.IdLoja          = (uint)FuncionarioDAO.Instance.GetElementByPrimaryKey(acerto.UsuCad).IdLoja;
                recibo.Total           = acerto.TotalAcerto;
                recibo.Vendedor        = FuncionarioDAO.Instance.GetNome(acerto.UsuCad);
                recibo.Items           = outrosParametros[0].ToString();
                recibo.NumParcelas     = outrosParametros[1].ToString();
                recibo.ValorReferente  = Request["valorRef"];
                recibo.MotivoReferente = Request["motivoRef"];
                report.ReportPath      = Glass.Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc");

                report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo }));

                break;

            case "termoaceitacao":
                if (!PedidoDAO.Instance.PedidoExists(Glass.Conversoes.StrParaUint(Request["ped"])))
                {
                    Response.Write("O pedido informado não existe.");
                    return(null);
                }

                Glass.Data.Model.Pedido pedTermo = PedidoDAO.Instance.GetElement(Glass.Conversoes.StrParaUint(Request["ped"]));

                if (pedTermo.IdOrcamento == null)
                {
                    pedTermo.IdOrcamento = 0;
                }

                pedTermo.InfoAdicional = Request["infAdic"]?.Replace("\\n", "\n") ?? string.Empty;

                report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/rptAceitacao{0}.rdlc");

                report.DataSources.Add(new ReportDataSource("PedidoRpt", PedidoRptDAL.Instance.CopiaLista(new Glass.Data.Model.Pedido[] { pedTermo }, PedidoRpt.TipoConstrutor.TermoAceitacao, false, login)));
                break;

            case "riscoquebra":
                // Verifica se pedido passado existe
                if (!PedidoDAO.Instance.PedidoExists(Glass.Conversoes.StrParaUint(Request["idPedido"])))
                {
                    Response.Write("O pedido informado não existe.");
                    return(null);
                }

                var risco = new Data.RelModel.RiscoQuebra();
                Glass.Data.Model.Pedido ped = PedidoDAO.Instance.GetElementByPrimaryKey(Glass.Conversoes.StrParaUint(Request["idPedido"]));
                Cliente cli = ClienteDAO.Instance.GetElementByPrimaryKey(ped.IdCli);
                cli.Cidade       = CidadeDAO.Instance.GetNome((uint?)cli.IdCidade);
                risco.IdPedido   = ped.IdPedido;
                risco.NomeLoja   = LojaDAO.Instance.GetElementByPrimaryKey(ped.IdLoja).NomeFantasia;
                risco.CidadeData = LojaDAO.Instance.GetElement(ped.IdLoja).Cidade + " " + Formatacoes.DataExtenso(DateTime.Now);
                risco.Cliente    = cli.Nome;
                risco.Endereco   = !string.IsNullOrEmpty(ped.LocalizacaoObra) ? ped.LocalizacaoObra : cli.EnderecoCompleto;
                risco.Telefone   = cli.Telefone;
                risco.Texto      = Request["texto"];

                report.ReportPath = Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/rptRiscoQuebra{0}.rdlc");

                report.DataSources.Add(new ReportDataSource("RiscoQuebra", new Data.RelModel.RiscoQuebra[] { risco }));
                break;

            case "reciboContaPagar":
            {
                var idContaPagar = Request["idContaPagar"] != "0" && Request["idContaPagar"] != "" ? Glass.Conversoes.StrParaInt(Request["idContaPagar"]) : 0;
                var contaPg      = ContasPagarDAO.Instance.GetPagasForRpt(idContaPagar, 0, null, 0, 0, 0, 0, null, null, null, null, null, null, null, null, 0, 0, 0, false, true, false, null, false,
                                                                          false, 0, 0, null, null);

                if (contaPg.Length == 0)
                {
                    throw new Exception("A conta a pagar informada não existe ou não está paga.");
                }

                recibo = new Data.RelModel.Recibo();
                recibo.IdContaPagar    = idContaPagar;
                recibo.IdLoja          = contaPg[0].IdLoja.GetValueOrDefault(0);
                recibo.Total           = contaPg[0].ValorPago;
                recibo.Cliente         = FornecedorDAO.Instance.GetElementByPrimaryKey(contaPg[0].IdFornec.GetValueOrDefault(0)).Nome;
                recibo.MotivoReferente = contaPg[0].DescrPlanoConta;

                report.ReportPath = Glass.Data.Helper.Utils.CaminhoRelatorio("Relatorios/Genericos/ModeloRecibo/rptRecibo{0}.rdlc");
                recibo.Tipo       = Glass.Conversoes.StrParaInt(Request["referente"]);

                report.DataSources.Add(new ReportDataSource("Recibo", new Data.RelModel.Recibo[] { recibo }));

                break;
            }
            }

            // Atribui parâmetros ao relatório
            lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogoColor(PageRequest)));
            lstParam.Add(new ReportParameter("TextoRodape", Geral.TextoRodapeRelatorio(login.Nome)));
            lstParam.Add(new ReportParameter("CorRodape", "DimGray"));

            return(null);
        }
示例#15
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Ajax.Utility.RegisterTypeForAjax(typeof(Glass.UI.Web.Cadastros.CadConfirmarPedido));
            Ajax.Utility.RegisterTypeForAjax(typeof(MetodosAjax));

            hdfDataTela.Value = DateTime.Now.ToString();

            if (!IsPostBack && Request["idPedido"] != null)
            {
                txtNumPedido.Text = Request["idPedido"];
                uint idPedido = Glass.Conversoes.StrParaUint(Request["idPedido"]);

                // Se o pedido não existir
                if (!PedidoDAO.Instance.PedidoExists(idPedido))
                {
                    grdProdutos.Visible = false;
                }
                else
                {
                    // Busca o pedido
                    Glass.Data.Model.Pedido pedido = PedidoDAO.Instance.GetElementByPrimaryKey(idPedido);

                    // Se o pedido já tiver sido cancelado, esconde os produtos
                    grdProdutos.Visible = pedido.Situacao != Glass.Data.Model.Pedido.SituacaoPedido.Cancelado;

                    if (pedido.Situacao == Glass.Data.Model.Pedido.SituacaoPedido.Ativo)
                    {
                        lblViewConfirm.Text += "Pedido está ativo. Só é possível confirmar pedidos conferidos.";
                        imgImprimir.Visible  = false;
                    }

                    // Se o pedido estiver confirmado, mostra quem confirmou e quando
                    if (pedido.Situacao == Glass.Data.Model.Pedido.SituacaoPedido.Confirmado)
                    {
                        lblViewConfirm.Text += "Pedido confirmado";

                        if (pedido.UsuConf != null)
                        {
                            lblViewConfirm.Text += " por " + BibliotecaTexto.GetTwoFirstNames(FuncionarioDAO.Instance.GetNome((uint)pedido.UsuConf.Value));
                        }

                        lblViewConfirm.Text += pedido.DataConf != null ? " no dia " + pedido.DataConf.Value.ToString("dd/MM/yy") + ". " : ". ";
                        imgImprimir.Visible  = true;
                    }

                    // Vendido para funcionário
                    if (pedido.VendidoFuncionario)
                    {
                        divFunc.Visible              = true;
                        divAVista.Visible            = false;
                        chkVerificarParcelas.Visible = false;
                        chkVerificarParcelas.Checked = false;
                        btnConfirmarPrazo.Visible    = false;
                        tbObra.Visible = false;

                        lblNomeFuncVenda.Text += "Funcionário comprador: " + PedidoDAO.Instance.ObtemNomeFuncVenda(idPedido);
                    }
                    // À Prazo
                    else if (pedido.TipoVenda == (int)Glass.Data.Model.Pedido.TipoVendaPedido.APrazo)
                    {
                        // Se tiver sido recebido o sinal, mostra quem recebeu
                        if (pedido.RecebeuSinal)
                        {
                            CaixaDiario caixa = CaixaDiarioDAO.Instance.GetPedidoSinal(pedido.IdPedido);
                            lblViewSinal.Text = "O sinal deste pedido no valor de " + pedido.ValorEntrada.ToString("F2") + " foi recebido por " + caixa.DescrUsuCad + " em " + caixa.DataCad.ToString("dd/MM/yy") + ".";
                        }

                        divAVista.Visible            = false;
                        chkVerificarParcelas.Checked = true;
                        btnConfirmarPrazo.Visible    = true;
                        divFunc.Visible = false;
                        tbObra.Visible  = false;
                    }
                    // À Vista
                    else if (pedido.TipoVenda == (int)Glass.Data.Model.Pedido.TipoVendaPedido.AVista)
                    {
                        decimal totalASerPago = pedido.Total;

                        #region Crédito cliente

                        decimal valorCredito = 0;
                        decimal credito      = ClienteDAO.Instance.GetCredito(pedido.IdCli);

                        valorCredito          = credito;
                        hdfValorCredito.Value = credito.ToString().Replace(',', '.');
                        hdfIdCliente.Value    = pedido.IdCli.ToString();

                        #endregion

                        divAVista.Visible            = true;
                        chkVerificarParcelas.Visible = false;
                        btnConfirmarPrazo.Visible    = false;
                        divFunc.Visible = false;
                        tbObra.Visible  = false;
                    }
                    else if (pedido.TipoVenda == (int)Glass.Data.Model.Pedido.TipoVendaPedido.Obra)
                    {
                        if (pedido.IdObra != null)
                        {
                            Obra obra = ObraDAO.Instance.GetElementByPrimaryKey(pedido.IdObra.Value);
                            lblDescrObra.Text   = obra.Descricao;
                            lblSaldoObra.Text   = obra.Saldo.ToString("C");
                            lblValorPedido.Text = pedido.Total.ToString("C");
                            hdfValorObra.Value  = (pedido.Total - obra.Saldo).ToString();
                            pagtoObra.Visible   = (pedido.Total - obra.Saldo) > 0;
                            hdfIdCliente.Value  = obra.IdCliente.ToString();
                        }

                        divAVista.Visible            = false;
                        chkVerificarParcelas.Visible = false;
                        btnConfirmarPrazo.Visible    = false;
                        divFunc.Visible = false;
                        tbObra.Visible  = true;
                    }

                    if (pedido.Situacao == Glass.Data.Model.Pedido.SituacaoPedido.Confirmado || pedido.Situacao == Glass.Data.Model.Pedido.SituacaoPedido.Ativo)
                    {
                        divAVista.Visible            = false;
                        grdProdutos.Visible          = true;
                        btnConfirmarPrazo.Visible    = false;
                        chkVerificarParcelas.Visible = false;
                        divFunc.Visible = false;
                        tbObra.Visible  = false;
                    }
                }
            }
            else if (!IsPostBack)
            {
                grdProdutos.Visible = false;
            }
        }