/// <summary> /// Preenche um objeto proposta com todas as informações contidas na base de dados da Proposta e de todos os seus itens. /// </summary> /// <returns> Objeto Proposta </returns> private Proposta fillProposta() { Proposta proposta = null; objTransacoes = new BaseMobile(); daoProposta = new DaoProposta(); daoEmbalagem = new DaoEmbalagem(); try { //Carrega um list com informações gerais sobre a proposta atual na base Mobile. listInfoProposta = daoProposta.fillInformacoesProposta(); //carrega um obj Proposta com a atual proposta na base mobile //e com o item top 1 da proposta que ainda não esteja separado. proposta = daoProposta.fillPropostaWithTop1Item(); //Set o total de peças e o total de Itens para o objeto proposta proposta.setTotalValoresProposta(Convert.ToDouble(listInfoProposta[4]), Convert.ToDouble(listInfoProposta[3])); //Carrega informações de Embalagem para o produto que será trabalhado. proposta.ListObjItemProposta[0].Embalagens = daoEmbalagem.carregarEmbalagensProduto(proposta); //Set os valores para os atributos auxiliares. ProcedimentosLiberacao.inicializarProcedimentos(Convert.ToDouble(listInfoProposta[4]), Convert.ToDouble(listInfoProposta[3]), proposta.ListObjItemProposta[0].Quantidade, proposta.Volumes); //Carrega o formulário com as informações que serão manusueadas para a proposta e o item da proposta //this.fillCamposForm(proposta.Numero, (string)proposta.RazaoCliente, proposta.Totalpecas, proposta.TotalItens, (string)proposta.ListObjItemProposta[0].Partnumber, (string)proposta.ListObjItemProposta[0].Descricao, (string)proposta.ListObjItemProposta[0].NomeLocalLote, proposta.ListObjItemProposta[0].Quantidade.ToString()); this.fillCamposForm(proposta); //Retorna o objeto proposta o qual terá suas informações trabalhadas do processo de conferencia do item. return proposta; } catch (ArithmeticException ex) { StringBuilder sbMsg = new StringBuilder(); sbMsg.Append("Problemas durante o processamento de informações sobre a proposta.\n"); sbMsg.AppendFormat("Error : {0}", ex.Message); MainConfig.errorMessage(sbMsg.ToString(), "Operação Inválida!"); throw; //return null; } catch (Exception ex) { StringBuilder sbMsg = new StringBuilder(); sbMsg.Append("Problemas durante o processamento de informações sobre a proposta \n"); sbMsg.AppendFormat("Error : {0}", ex.Message); sbMsg.Append("Contate o Administrador do sistema."); MainConfig.errorMessage(sbMsg.ToString(), "Sistem Error!"); throw; //return null; } finally { //zera o obj transações objTransacoes = null; daoProposta = null; proposta = null; } }
/// <summary> /// Realiza todos os procedimentos nescessários para carregar o próximo item a ser separado. /// </summary> /// /// <returns> /// TRUE --> caso exista um próximo item a ser trabalhado /// FALSE --> caso não exista mais items para serem trabalhados. /// </returns> public static bool nextItemProposta(Proposta objProposta,FrmProposta frm) { bool hasItem = false; var daoItemProposta = new DaoProdutoProposta(); var daoEtiqueta = new DaoEtiqueta(); var objTransacoes = new BaseMobile(); try { frm.clearParaProximoItem(); tratarParaProximoItem(objProposta); //grava informações do item na base de dados mobile daoItemProposta.updateStatusItemProposta(objProposta.ListObjItemProposta[0]); //inseri informações das etiquetas referente ao produto liberado em formato Xml daoItemProposta.updateXmlItemProposta(montarXmlProcedimento(), objProposta.ListObjItemProposta[0].CodigoItemProposta); //carrega próximo item if (frm.temItensConferir()) { var prod = daoItemProposta.itemATrabalhar(); var daoEmbalagem = new DaoEmbalagem(); if (prod != null) { //Carrega informações de Embalagem para o produto que será trabalhado. prod.Embalagens = daoEmbalagem.carregarEmbalagensProduto(prod); hasItem = true; objProposta.setNextItemProposta(prod); } else { hasItem = false; } } else // CASO não tenha um próximo item { hasItem = false; } //Se existir um próximo item if (hasItem) { //seta Parametros para iniciar leitura do próximo item inicializarProcedimentosProximoItem(objProposta.ListObjItemProposta[0].Quantidade); //recarrega o form com as informações do próximo item. //frm.fillCamposForm(objProposta, TotalPecas, TotalItens); frm.fillCamposForm(objProposta); } else { frm.clearFormulario(true, true); } } catch (SqlCeException Ex) { MessageBox.Show(Ex.Message); } catch (Exception ex) { throw new Exception("Erro ao carregar próximo item!", ex); } finally { daoEtiqueta = null; daoItemProposta = null; objTransacoes = null; } return hasItem; }
/// <summary> /// Reliza todos os processos nescessários para efetuar a carga de dados na base Mobile. /// </summary> private void carregaBaseMobile() { objTransacoes = new BaseMobile(); objProposta = new Proposta(); daoItemProposta = new DaoProdutoProposta(); daoProposta = new DaoProposta(); daoProduto = new DaoProduto(); daoEmbalagem = new DaoEmbalagem(); try { //Limpa a Base. objTransacoes.clearBaseMobile(); //Carrega um objeto Proposta e inicia todo o procedimento. //Caso não exista propostas a serem liberadas gera um exception //onde será feito os tratamentos para evitar o travamento do sistema. if ((objProposta = daoProposta.fillTop1PropostaServidor()) != null) { daoProposta.InsertOrUpdatePickingMobile(objProposta, MainConfig.CodigoUsuarioLogado, Proposta.StatusLiberacao.TRABALHANDO, DateTime.Now); //recupera o codigoPickingMobile da proposta trabalhada. objProposta.CodigoPikingMobile = daoProposta.selectMaxCodigoPickingMobile(objProposta.Codigo); //Realiza o Insert na Base Mobile daoProposta.insertProposta(objProposta, MainConfig.CodigoUsuarioLogado); ////Recupera List com itens da proposta //this.listaProdutoProposta = daoItemProposta.fillListItensProposta((int)objProposta.Codigo).ToList<ProdutoProposta>(); ////Insert na Base Mobile tabela tb0002_ItensProsposta //daoItemProposta.insertItemProposta(listaProdutoProposta.ToList<ProdutoProposta>()); //Recupera List com itens da proposta //Insert na Base Mobile tabela tb0002_ItensProposta daoItemProposta.insertItemProposta(daoItemProposta.fillListItensProposta((int)objProposta.Codigo).ToList<ProdutoProposta>()); //Recupera informações sobre os produtos existentes na proposta //this.listaProduto = daoProduto.fillListProduto((int)objProposta.Codigo).ToList<Produto>(); //daoProduto.insertProdutoBaseMobile(listaProduto.ToList<Produto>()); //Insert na base Mobile tabela tb0003_Produtos //Recupera informações sobre os produtos existentes na proposta daoProduto.insertProdutoBaseMobile(daoProduto.fillListProduto((int)objProposta.Codigo).ToList<Produto>()); //Armazena informações de embalagens do produto na base mobile. daoEmbalagem.insertEmbalagemBaseMobile(daoEmbalagem.cargaEmbalagensProduto((int)objProposta.Codigo)); //Carrega Informações das Embalagens de Separação. ProcedimentosLiberacao.ListEmbalagensSeparacao = daoEmbalagem.carregarEmbalagensSeparacao(); } else { throw new NoNewPropostaException("Não existem novas propostas a serem liberadas!!"); } } catch (SqlQueryExceptions ex) { this.exitOnError(ex.Message, "Próxima Proposta"); } catch (NoNewPropostaException ex) { this.exitOnError(ex.Message, "Próxima Proposta"); } catch (SqlCeException sqlEx) { StringBuilder strBuilder = new StringBuilder(); strBuilder.Append("Ocorreram problemas durante a carga de dados na tabela tb0002_ItensProposta. \n"); strBuilder.Append("O procedimento não pode ser concluído"); strBuilder.AppendFormat("Erro : {0}", sqlEx.Errors); strBuilder.AppendFormat("Description : {0}", sqlEx.Message); MainConfig.errorMessage(strBuilder.ToString(), "SqlException!!"); } catch (Exception ex) { StringBuilder sbMsg = new StringBuilder(); sbMsg.Append("Ocorreram problemas durante a carga de dados para a Base Mobile \n"); sbMsg.AppendFormat("Error : {0}", ex.Message); sbMsg.Append("\nContate o Administrador do sistema."); MainConfig.errorMessage(sbMsg.ToString(), "Sistem Error!"); } finally { objTransacoes = null; objProposta = null; daoProposta = null; daoProduto = null; daoItemProposta = null; daoEmbalagem = null; } }
public static void finalizarProposta(Proposta objProposta,FrmProposta frmProposta) { try { FrmProposta.mostrarMensagem(TitaniumColector.Forms.FrmProposta.enumCor.BLUE, "Gravando informações na base de dados!", TitaniumColector.Forms.FrmProposta.enumCursor.WAIT); var daoItemProposta = new DaoProdutoProposta(); var daoProposta = new DaoProposta(); var daoEmbalagem = new DaoEmbalagem(); daoEmbalagem.salvarEmbalagensSeparacao(objProposta); daoProposta.updatePropostaTbPickingMobile(objProposta, Proposta.StatusLiberacao.FINALIZADO, true, true); daoItemProposta.updateItemPropostaRetorno(); daoProposta.updateVolumeProposta(objProposta.Codigo); daoProposta.retiraPropostaListaPrioridade(objProposta.Codigo, MainConfig.UserOn.Codigo); } catch (Exception ex) { throw new Exception("finalizarProposta()\n " + ex.Message); } finally { FrmAcao frm = new FrmAcao(); FrmProposta.mostrarMensagem(TitaniumColector.Forms.FrmProposta.enumCor.RED, "", TitaniumColector.Forms.FrmProposta.enumCursor.DEFAULT); frmProposta.Dispose(); frmProposta.Close(); frm.Show(); } }
public static Proposta carregarProposta(FrmProposta frm) { try { var proposta = new Proposta(); var ListInformacoesProposta = new List<string>(); var daoProposta = new DaoProposta(); var daoEmbalagem = new DaoEmbalagem(); //Carrega um list com informações gerais sobre a proposta atual na base Mobile. ListInformacoesProposta = daoProposta.fillInformacoesProposta(); //carrega um obj Proposta com a atual proposta na base mobile //e com o item top 1 da proposta. proposta = daoProposta.fillPropostaWithTop1Item(); //Set o total de peças e o total de Itens para o objeto proposta proposta.setTotalValoresProposta(Convert.ToDouble(ListInformacoesProposta[4]), Convert.ToDouble(ListInformacoesProposta[3])); //Carrega informações de Embalagem para o produto que será trabalhado. proposta.ListObjItemProposta[0].Embalagens = daoEmbalagem.carregarEmbalagensProduto(proposta); //Set os valores para os atributos auxiliares. ProcedimentosLiberacao.inicializarProcedimentos(Convert.ToDouble(ListInformacoesProposta[4]), Convert.ToDouble(ListInformacoesProposta[3]), proposta.ListObjItemProposta[0].Quantidade, proposta.Volumes); //Carrega o formulário com as informações que serão manusueadas para a proposta e o item da proposta //this.fillCamposForm(proposta.Numero, (string)proposta.RazaoCliente, proposta.Totalpecas, proposta.TotalItens, (string)proposta.ListObjItemProposta[0].Partnumber, (string)proposta.ListObjItemProposta[0].Descricao, (string)proposta.ListObjItemProposta[0].NomeLocalLote, proposta.ListObjItemProposta[0].Quantidade.ToString()); frm.fillCamposForm(proposta); //Retorna o objeto proposta o qual terá suas informações trabalhadas do processo de conferencia do item. return proposta; } catch (ArithmeticException ex) { throw ex; } catch (Exception ex) { throw ex; } }
/// <summary> /// Reliza todos os processos nescessários para efetuar a carga de dados na base Mobile. /// </summary> public static void carregaBaseMobile(FrmProposta frm) { var objTransacoes = new BaseMobile(); var objProposta = new Proposta(); var daoItemProposta = new DaoProdutoProposta(); var daoProposta = new DaoProposta(); var daoProduto = new DaoProduto(); var daoEmbalagem = new DaoEmbalagem(); //LIMPA INFORMAÇÕES RESULTANTE DE OUTROS PRODUTOS JÁ CONFERIDOS ProcedimentosLiberacao.limpar(); try { //Limpa a Base. objTransacoes.clearBaseMobile(); //Carrega um objeto Proposta e inicia todo o procedimento. //Caso não exista propostas a serem liberadas gera um exception //onde será feito os tratamentos para evitar o travamento do sistema. if ((objProposta = daoProposta.fillTop1PropostaServidor()) != null) { daoProposta.InsertOrUpdatePickingMobile(objProposta, MainConfig.UserOn.Codigo, Proposta.StatusLiberacao.TRABALHANDO, DateTime.Now); //recupera o codigoPickingMobile da proposta trabalhada. objProposta.CodigoPikingMobile = daoProposta.selectMaxCodigoPickingMobile(objProposta.Codigo); //Realiza o Insert na Base Mobile daoProposta.insertProposta(objProposta, MainConfig.UserOn.Codigo); //Recupera List com itens da proposta //Insert na Base Mobile tabela tb0002_ItensProposta daoItemProposta.carregarBaseMobileItens(daoItemProposta.fillListItensProposta((int)objProposta.Codigo).ToList<ProdutoProposta>()); //Insert na base Mobile tabela tb0003_Produtos //Recupera informações sobre os produtos existentes na proposta daoProduto.insertProdutoBaseMobile(daoProduto.fillListProduto((int)objProposta.Codigo).ToList<Produto>()); //Armazena informações de embalagens do produto na base mobile. daoEmbalagem.insertEmbalagemBaseMobile(daoEmbalagem.cargaEmbalagensProduto((int)objProposta.Codigo)); //Carrega Informações das Embalagens de Separação. //Carrega Quantidade das Embalagens utilizadas nos volumes da separação ProcedimentosLiberacao.ListEmbalagensSeparacao = daoEmbalagem.carregarInformacoesEmbalagensUtilizadas((Int32)objProposta.CodigoPikingMobile, daoEmbalagem.carregarEmbalagensSeparacao()); } else { throw new NoNewPropostaException("Não existem novas propostas a serem liberadas!!"); } } catch (SqlQueryExceptions ex) { frm.exitOnError(ex.Message, "Próxima Proposta", false); } catch (NoNewPropostaException ex) { frm.exitOnError(ex.Message, "Próxima Proposta", false); } catch (SqlCeException sqlEx) { ProcedimentosLiberacao.interromperLiberacao(objProposta); daoProposta.updatePropostaTbPickingMobile(objProposta, Proposta.StatusLiberacao.NAOFINALIZADO, true, false); StringBuilder strBuilder = new StringBuilder(); strBuilder.Append("O procedimento não pode ser concluído.\n"); strBuilder.AppendFormat("Erro : {0}", sqlEx.Errors); strBuilder.AppendFormat("Description : {0}", sqlEx.Message); frm.exitOnError(strBuilder.ToString(), "SqlException!!", false); } catch (Exception ex) { ProcedimentosLiberacao.interromperLiberacao(objProposta); daoProposta.updatePropostaTbPickingMobile(objProposta, Proposta.StatusLiberacao.NAOFINALIZADO, true, false); StringBuilder strBuilder = new StringBuilder(); strBuilder.Append("O procedimento não pode ser concluído.\n"); strBuilder.AppendFormat(" Descrição: {0}", ex.Message); strBuilder.Append("\nContate o Administrador do sistema."); frm.exitOnError(strBuilder.ToString(), "SqlException!!", false); } finally { objTransacoes = null; objProposta = null; daoProposta = null; daoProduto = null; daoItemProposta = null; daoEmbalagem = null; } }
/// <summary> /// Realiza os procedimentos nescessários de termino de conferência /// de um item de modo que não seja perdido nenhuma informação útil. /// </summary> /// <param name="showQuestion">Mostrar ou não a pergunta de confirmação ao usuário.</param> /// <returns>resposta do Dialog Result</returns> private DialogResult exitForm(bool showQuestion) { try { DialogResult resp; if (showQuestion) { resp = MessageBox.Show("Deseja salvar as altereções realizadas", "Exit", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); } else { resp = DialogResult.Yes; } Cursor.Current = Cursors.WaitCursor; if (resp == DialogResult.Yes) { var daoItemProposta = new DaoProdutoProposta(); var daoProposta = new DaoProposta(); var daoEmbalagem = new DaoEmbalagem(); ProcedimentosLiberacao.interromperLiberacao(objProposta); daoProposta.updatePropostaTbPickingMobile(objProposta, Proposta.StatusLiberacao.NAOFINALIZADO, true, true); daoItemProposta.updateItemPropostaRetorno(); daoEmbalagem.salvarEmbalagensSeparacao(objProposta); this.Dispose(); this.Close(); } else if (resp == DialogResult.No) { var daoProposta = new DaoProposta(); ProcedimentosLiberacao.interromperLiberacao(objProposta); daoProposta.updatePropostaTbPickingMobile(objProposta, Proposta.StatusLiberacao.NAOFINALIZADO, true, false); this.Dispose(); this.Close(); } return resp; } catch (Exception ex) { MainConfig.errorMessage("Não foi possível executar o comando solicitado.\n" + ex.Message, "Form Propostas"); return DialogResult.Yes; } finally { Cursor.Current = Cursors.Default; } }
/// <summary> /// Realiza os procedimentos nescessários de termino de conferência /// de um item de modo que não seja perdido nenhuma informação útil. /// </summary> /// <param name="formulario">Interface responsável por abrir um próximo formulário</param> /// <param name="retorno">Se o usuário terá ou não um mesnsagem de informativa após a conclusão do método.</param> /// <param name="showQuestion">Mostrar ou não a pergunta de confirmação ao usuário.</param> /// <returns>resposta do Dialog Result</returns> private DialogResult exitForm(ICall formulario, bool retorno, bool showQuestion) { try { DialogResult resp; //Verifica se irá ou não apresentar a pergunta ao usuário. if (showQuestion) { resp = MessageBox.Show("Deseja salvar as altereções realizadas", "Exit", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); } else { resp = DialogResult.Yes; } //Modifica o estado do cursor Cursor.Current = Cursors.WaitCursor; //realiza procedimentos nescessário para terminar a conferência do item if (resp == DialogResult.Yes) { //Classes para trabalhar com as bases de dados. var daoItemProposta = new DaoProdutoProposta(); var daoProposta = new DaoProposta(); var daoEmbalagem = new DaoEmbalagem(); ProcedimentosLiberacao.interromperLiberacao(objProposta); daoProposta.updatePropostaTbPickingMobile(objProposta, Proposta.StatusLiberacao.NAOFINALIZADO, true, true); daoItemProposta.updateItemPropostaRetorno(); daoEmbalagem.salvarEmbalagensSeparacao(objProposta); this.Dispose(); this.Close(); } else if (resp == DialogResult.No) { var daoProposta = new DaoProposta(); ProcedimentosLiberacao.interromperLiberacao(objProposta); daoProposta.updatePropostaTbPickingMobile(objProposta, Proposta.StatusLiberacao.NAOFINALIZADO, true, false); this.Dispose(); this.Close(); } return resp; } catch (Exception ex) { MainConfig.errorMessage("Não foi possível executar o comando solicitado.\n" + ex.Message,"Form Propostas"); return DialogResult.Yes; } finally { Cursor.Current = Cursors.Default; formulario.call(); } }