/// <summary> /// Inicia uma nova instância da classe <see cref="ListaDto"/>. /// </summary> /// <param name="retalhoProducao">A model de retalho de produção.</param> public ListaDto(RetalhoProducao retalhoProducao) { this.Id = retalhoProducao.IdRetalhoProducao; this.Produto = new ProdutoDto { Codigo = retalhoProducao.CodInterno, Descricao = retalhoProducao.Descricao, }; this.Medidas = new MedidasDto { Largura = retalhoProducao.Largura, Altura = retalhoProducao.Altura, MetroQuadrado = new MetroQuadradoDto { Total = (decimal)retalhoProducao.TotM, Usando = (decimal)retalhoProducao.TotMUsando, }, }; this.Datas = new DatasDto { Cadastro = retalhoProducao.DataCad, Uso = retalhoProducao.DataUso, }; this.Situacao = retalhoProducao.SituacaoString; this.CodigoEtiqueta = retalhoProducao.NumeroEtiqueta; this.NumeroNotaFiscal = retalhoProducao.NumeroNFe; this.Lote = retalhoProducao.Lote; this.CodigosEtiquetaUsandoRetalho = retalhoProducao.EtiquetaUsando; this.Funcionario = retalhoProducao.NomeFunc; this.Observacao = retalhoProducao.Obs; this.Permissoes = new PermissoesDto { Imprimir = Config.PossuiPermissao(Config.FuncaoMenuPCP.ImprimirEtiquetas) && retalhoProducao.CancelarVisible, Cancelar = retalhoProducao.CancelarVisible, MarcarPerda = retalhoProducao.PerdaVisible, ExibirEtiquetasUsando = !string.IsNullOrWhiteSpace(retalhoProducao.EtiquetaUsando), LogAlteracoes = LogAlteracaoDAO.Instance.TemRegistro(LogAlteracao.TabelaAlteracao.RetalhoProducao, (uint)retalhoProducao.IdRetalhoProducao, null), LogCancelamento = LogCancelamentoDAO.Instance.TemRegistro(LogCancelamento.TabelaCancelamento.RetalhoProducao, (uint)retalhoProducao.IdRetalhoProducao), }; }
/// <summary> /// Cria o Log de Cancelamento para um retalho de produção. /// </summary> /// <param name="retalho"></param> /// <param name="motivo"></param> /// <param name="manual"></param> public void LogRetalhoProducao(GDASession session, uint idFunc, RetalhoProducao retalho, string motivo, bool manual) { InserirLog(session, idFunc, LogCancelamento.TabelaCancelamento.RetalhoProducao, (uint)retalho.IdRetalhoProducao, retalho, motivo, manual); }
public void LogRetalhoProducao(uint idFunc, RetalhoProducao retalho, string motivo, bool manual) { LogRetalhoProducao(null, idFunc, retalho, motivo, manual); }
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) { // Pega idImpressão, se houver idImpressao = Glass.Conversoes.StrParaUint(Request["idImpressao"]).ToString(); numEtiqueta = Request["numEtiqueta"]; idProdPed = Glass.Conversoes.StrParaUint(Request["idProdPed"]); idProdNf = Glass.Conversoes.StrParaUint(Request["idProdNf"]); idAmbientePedido = Glass.Conversoes.StrParaUint(Request["idAmbientePedido"]); idRetalhoProducao = Glass.Conversoes.StrParaUint(Request["idRetalhoProducao"]); ProdutoImpressaoDAO.TipoEtiqueta?tipoEtiqueta = null; // Se for impressão individual, salva o idProdPed com qtd 1 no hiddenfield if (Request["ind"] == "1") { if (idProdPed > 0) { idImpressao = ProdutoImpressaoDAO.Instance.GetIdImpressaoByProdPed(idProdPed, true); } if (idProdNf > 0) { idImpressao = ProdutoImpressaoDAO.Instance.GetIdImpressaoByProdNf(idProdNf, true); } if (idAmbientePedido > 0) { idImpressao = ProdutoImpressaoDAO.Instance.GetIdImpressaoByAmbientePedido(idAmbientePedido, true); } if (idRetalhoProducao > 0) { idImpressao = ProdutoImpressaoDAO.Instance.GetIdImpressaoByRetalhoProducao(idRetalhoProducao, true); } if (idImpressao == "0" && !String.IsNullOrEmpty(idImpressao)) { throw new Exception("Esta etiqueta ainda não foi impressa pelo controle de impressão."); } if (idImpressao != "0" && !String.IsNullOrEmpty(idImpressao)) { idImpressao = ImpressaoEtiquetaDAO.Instance.GetAtivas(idImpressao); tipoEtiqueta = ImpressaoEtiquetaDAO.Instance.GetTipoImpressao(Glass.Conversoes.StrParaUint(idImpressao.Split(',')[0])); } if (!String.IsNullOrEmpty(numEtiqueta) && /* Chamado 15725. * Deve-se verificar se a etiqueta está impressa de acordo com o tipo correto da mesma. */ //!ProdutoImpressaoDAO.Instance.EstaImpressa(numEtiqueta.Replace("%2f", "/"), ProdutoImpressaoDAO.TipoEtiqueta.Pedido)) !ProdutoImpressaoDAO.Instance.EstaImpressa(numEtiqueta.Replace("%2f", "/"), tipoEtiqueta.GetValueOrDefault(ProdutoImpressaoDAO.TipoEtiqueta.Pedido))) { throw new Exception("Etiqueta não existe ou foi cancelada"); } if (String.IsNullOrEmpty(idImpressao)) { throw new Exception("Esta etiqueta ainda não foi impressa ou sua impressão foi cancelada."); } } else if (idImpressao != "0" && !String.IsNullOrEmpty(idImpressao)) { idImpressao = ImpressaoEtiquetaDAO.Instance.GetAtivas(idImpressao); tipoEtiqueta = ImpressaoEtiquetaDAO.Instance.GetTipoImpressao(Glass.Conversoes.StrParaUint(idImpressao.Split(',')[0])); } else { if (outrosParametros[1] != null && outrosParametros[1].ToString() != String.Empty) { tipoEtiqueta = (ProdutoImpressaoDAO.TipoEtiqueta)Glass.Conversoes.StrParaInt(outrosParametros[1].ToString()); } if ((outrosParametros[2] != null && outrosParametros[2].ToString() != string.Empty) && (outrosParametros[2].ToString().ToLower().Contains("cadreporpeca") || outrosParametros[2].ToString().ToLower().Contains("cadmarcarpecaproducao") || outrosParametros[2].ToString().ToLower().Contains("cadretalhoproducao") || outrosParametros[2].ToString().ToLower().Contains("cadperdachapavidro"))) { tipoEtiqueta = ProdutoImpressaoDAO.TipoEtiqueta.Retalho; } } if (tipoEtiqueta == null) { var excessao = new Exception("Não foi possível identificar o tipo de impressão de etiqueta."); ErroDAO.Instance.InserirFromException(string.Format("ImprimirEtiqueta - OutrosParametros: {0}, {1}, {2}, {3}", outrosParametros != null && outrosParametros.Length > 0 ? outrosParametros[0].ToString() : "ND", outrosParametros != null && outrosParametros.Length > 1 ? outrosParametros[1].ToString() : "ND", outrosParametros != null && outrosParametros.Length > 2 ? outrosParametros[2].ToString() : "ND", outrosParametros != null && outrosParametros.Length > 3 ? outrosParametros[3].ToString() : "ND"), excessao); throw excessao; } if ((!String.IsNullOrEmpty(outrosParametros[0].ToString()) || (idImpressao != "0" && !String.IsNullOrEmpty(idImpressao)) || idProdPed > 0) || (outrosParametros[2].ToString().ToLower().Contains("cadreporpeca") || outrosParametros[2].ToString().ToLower().Contains("cadmarcarpecaproducao") || outrosParametros[2].ToString().ToLower().Contains("cadretalhoproducao") || outrosParametros[2].ToString().ToLower().Contains("cadperdachapavidro")) && (outrosParametros[3] != null && outrosParametros[3].ToString() != String.Empty)) { Etiqueta[] lstEtiq = null; bool reImprimir = Request["ind"] == "1" || Request["idImpressao"] != null; // Busca etiquetas, salvando impressão realizada switch (tipoEtiqueta.Value) { #region ProdutoImpressaoDAO.TipoEtiqueta.Pedido case ProdutoImpressaoDAO.TipoEtiqueta.Pedido: string[] dadosRetalhos = outrosParametros[5] != null ? outrosParametros[5].ToString().Split('+') : new string[0]; if (hdfSomenteRetalhos.Value == "1") { List <string> usar = new List <string>(); int index; foreach (string dados in outrosParametros[0].ToString().Split('|')) { if (String.IsNullOrEmpty(dados)) { continue; } string[] dadosEtiqueta = dados.Split('\t'); if ((index = Array.FindIndex(dadosRetalhos, x => !String.IsNullOrEmpty(x) ? x.Split('|')[0] == dadosEtiqueta[0] : false)) > -1) { if (!dadosEtiqueta[0].Contains("R")) { dadosEtiqueta[2] = dadosRetalhos[index].Split('|')[1].Split(',').Length.ToString(); } usar.Add(String.Join("\t", dadosEtiqueta)); } } outrosParametros[0] = String.Join("|", usar.ToArray()); } int?idSolucaoOtimizacao = null; int id2 = 0; if (int.TryParse(outrosParametros[6]?.ToString(), out id2)) { idSolucaoOtimizacao = id2; } lstEtiq = EtiquetaDAO.Instance.GetListPedidoComTransacao(login.CodUser, idImpressao, idProdPed, idAmbientePedido, outrosParametros[0].ToString(), false, reImprimir, Request["numEtiqueta"], Request["apenasPlano"] == "true", dadosRetalhos, idSolucaoOtimizacao); break; #endregion #region ProdutoImpressaoDAO.TipoEtiqueta.NotaFiscal case ProdutoImpressaoDAO.TipoEtiqueta.NotaFiscal: lstEtiq = EtiquetaDAO.Instance.GetListNFe(login.CodUser, idImpressao, idProdNf, outrosParametros[0].ToString(), reImprimir, Request["numEtiqueta"]); break; #endregion #region ProdutoImpressaoDAO.TipoEtiqueta.Retalho case ProdutoImpressaoDAO.TipoEtiqueta.Retalho: var listaRetalhoProducao = new List <RetalhoProducao>(); if (idRetalhoProducao > 0) { listaRetalhoProducao.Add(RetalhoProducaoDAO.Instance.Obter(idRetalhoProducao)); } else { var retalhos = Newtonsoft.Json.JsonConvert.DeserializeObject <RetalhoProducaoAuxiliarCollection>(outrosParametros[3].ToString()); var ids = new List <uint>(); if (Request["numEtiqueta"] != null) { string[] numeroEtiqueta = Request["numEtiqueta"].ToString().Split(';'); foreach (var r in retalhos) { foreach (string n in numeroEtiqueta) { ids = RetalhoProducaoDAO.Instance.CriarRetalho(r.Altura.ToString(), r.Largura.ToString(), r.Quantidade.ToString(), r.Observacao.ToString(), n, login); foreach (uint id in ids) { RetalhoProducao ret = RetalhoProducaoDAO.Instance.Obter(id); listaRetalhoProducao.Add(ret); } } } } else if (Request["idProd"] != null) { var dados = Request["idProd"].ToString().Split(';'); uint idProd = dados.Length == 1 ? Conversoes.ConverteValor <uint>(dados[0]) : Conversoes.ConverteValor <uint>(dados[1]); uint idProdNF = dados.Length == 1 ? 0 : Conversoes.ConverteValor <uint>(dados[0]); ids = RetalhoProducaoDAO.Instance.CriarRetalho(retalhos.GetList(), idProd, idProdNF, login); foreach (uint id in ids) { RetalhoProducao ret = RetalhoProducaoDAO.Instance.Obter(id); listaRetalhoProducao.Add(ret); } } } lstEtiq = EtiquetaDAO.Instance.GetListRetalho(login.CodUser, idImpressao, listaRetalhoProducao, idRetalhoProducao, reImprimir); foreach (var etiqueta in lstEtiq) { if (string.IsNullOrEmpty(etiqueta.NomeCliente)) { etiqueta.NomeCliente = " "; } } break; #endregion } /* Chamado 43775. */ var idLojaPedido = EtiquetaConfig.RelatorioEtiqueta.ModeloEtiquetaPorLoja && lstEtiq != null && lstEtiq.Length > 0 && lstEtiq[0].IdPedido.StrParaInt() > 0 ? PedidoDAO.Instance.ObtemIdLoja(null, lstEtiq[0].IdPedido.StrParaUint()) : 0; if (Request["reposicao"] == "true") { report.ReportPath = NomeArquivoRelatorioReposicao((int)idLojaPedido); } else { report.ReportPath = EtiquetaConfig.RelatorioEtiqueta.NomeArquivoRelatorio((int)idLojaPedido, tipoEtiqueta.Value == ProdutoImpressaoDAO.TipoEtiqueta.NotaFiscal, tipoEtiqueta.Value == ProdutoImpressaoDAO.TipoEtiqueta.Retalho); } report.DataSources.Add(new ReportDataSource("Etiqueta", lstEtiq)); lstParam.Add(new ReportParameter("Logotipo", Logotipo.GetReportLogo())); lstParam.Add(new ReportParameter("IsRetalho", (tipoEtiqueta.Value == ProdutoImpressaoDAO.TipoEtiqueta.Retalho).ToString().ToLower())); } return(null); }