コード例 #1
0
        private void alterarOPToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (bsOrdemProduzir.Current != null)
            {
                if (!(bsOrdemProduzir.Current as TRegistro_OrdemProducao).Status.Equals("ABERTA"))
                {
                    MessageBox.Show("Apenas é possível alterar ordem de produção com sts. ABERTA.", "Informativo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                using (TFOrdemProducao fOrdem = new TFOrdemProducao())
                {
                    fOrdem.Text   = "ALTERANDO ORDEM PRODUÇÃO Nº " + (bsOrdemProduzir.Current as TRegistro_OrdemProducao).Id_ordem.Value.ToString();
                    fOrdem.rOrdem = bsOrdemProduzir.Current as TRegistro_OrdemProducao;
                    if (fOrdem.ShowDialog() == DialogResult.OK)
                    {
                        if (fOrdem.rOrdem != null)
                        {
                            try
                            {
                                TCN_OrdemProducao.Gravar(fOrdem.rOrdem, null);
                                MessageBox.Show("Ordem Produção alterada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                bbBuscarOrdem_Click(this, new EventArgs());
                            }
                            catch (Exception ex)
                            { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                        }
                    }
                    bbBuscarOrdem_Click(this, new EventArgs());
                }
            }
        }
コード例 #2
0
        private void afterAltera()
        {
            if (bsOrdemProducao.Current != null)
            {
                if (!(bsOrdemProducao.Current as TRegistro_OrdemProducao).Status.Equals("ABERTA"))
                {
                    MessageBox.Show("Apenas é possível alterar ordem de produção com sts. ABERTA.", "Informativo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                using (TFOrdemProducao fOrdem = new TFOrdemProducao())
                {
                    fOrdem.Text   = "ALTERANDO ORDEM PRODUÇÃO Nº " + (bsOrdemProducao.Current as TRegistro_OrdemProducao).Id_ordem.Value.ToString();
                    fOrdem.rOrdem = bsOrdemProducao.Current as TRegistro_OrdemProducao;
                    if (fOrdem.ShowDialog() == DialogResult.OK)
                    {
                        if (fOrdem.rOrdem != null)
                        {
                            try
                            {
                                TCN_OrdemProducao.Gravar(fOrdem.rOrdem, null);
                                MessageBox.Show("Ordem Produção alterada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                LimparFiltros();
                                id_ordem.Text = fOrdem.rOrdem.Id_ordem.Value.ToString();
                                afterBusca();
                            }
                            catch (Exception ex)
                            { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                        }
                    }
                    afterBusca();
                }
            }
        }
コード例 #3
0
        private void afterBusca()
        {
            string status = string.Empty;
            string virg   = string.Empty;

            if (cbAberta.Checked)
            {
                status = "'A'";
                virg   = ",";
            }
            if (cbProducao.Checked)
            {
                status = "'P'";
            }
            bsOrdemProducao.DataSource = TCN_OrdemProducao.Buscar(id_ordem.Text,
                                                                  cd_empresa_busca.Text,
                                                                  cd_produto.Text,
                                                                  id_formulacao.Text,
                                                                  nr_pedido.Text,
                                                                  status,
                                                                  rbPrevIniProd.Checked ? "PI" :
                                                                  rbPrevFinProd.Checked ? "PF":
                                                                  rbIniProd.Checked ? "IP":
                                                                  rbFinProd.Checked ? "FP": string.Empty,
                                                                  DT_Inicial.Text,
                                                                  DT_Final.Text,
                                                                  st_parcial.Checked,
                                                                  st_produzida.Checked,
                                                                  cbAtrazoIni.Checked,
                                                                  cbAtrazoFin.Checked,
                                                                  null);
            bsOrdemProducao_PositionChanged(this, new EventArgs());
        }
コード例 #4
0
 private void excluirOPToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (bsOrdemProduzir.Current != null)
     {
         if (MessageBox.Show("Confirma exclusão do registro?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
             == DialogResult.Yes)
         {
             try
             {
                 TCN_OrdemProducao.Excluir(bsOrdemProduzir.Current as TRegistro_OrdemProducao, null);
                 MessageBox.Show("Ordem Produção excluida com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 bbBuscarOrdem_Click(this, new EventArgs());
             }
             catch (Exception ex)
             { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
         }
     }
 }
コード例 #5
0
 private void afterExclui()
 {
     if (bsOrdemProducao.Current != null)
     {
         if (MessageBox.Show("Confirma exclusão do registro?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
             == DialogResult.Yes)
         {
             try
             {
                 TCN_OrdemProducao.Excluir(bsOrdemProducao.Current as TRegistro_OrdemProducao, null);
                 MessageBox.Show("Ordem Produção excluida com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 LimparFiltros();
                 afterBusca();
             }
             catch (Exception ex)
             { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
         }
     }
 }
コード例 #6
0
 private void estornarIniProdToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (bsOrdemProduzir.Current != null)
     {
         if ((bsOrdemProduzir.Current as TRegistro_OrdemProducao).Status.Trim().ToUpper().Equals("EM PRODUÇÃO"))
         {
             try
             {
                 TCN_OrdemProducao.EstornarIniProducao(bsOrdemProduzir.Current as TRegistro_OrdemProducao, null);
                 MessageBox.Show("Inicio produção estornada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 bbBuscarOrdem_Click(this, new EventArgs());
             }
             catch (Exception ex)
             { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information); }
         }
         else
         {
             MessageBox.Show("Permitido estornar somente ordem com status <EM PRODUÇÃO>.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
     }
 }
コード例 #7
0
 private void EstornarIniProd()
 {
     if (bsOrdemProducao.Current != null)
     {
         if ((bsOrdemProducao.Current as TRegistro_OrdemProducao).Status.Trim().ToUpper().Equals("EM PRODUÇÃO"))
         {
             try
             {
                 TCN_OrdemProducao.EstornarIniProducao(bsOrdemProducao.Current as TRegistro_OrdemProducao, null);
                 MessageBox.Show("Inicio produção estornada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 afterBusca();
             }
             catch (Exception ex)
             { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information); }
         }
         else
         {
             MessageBox.Show("Permitido estornar somente ordem com status <EM PRODUÇÃO>.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
     }
 }
コード例 #8
0
 private void afterNovo()
 {
     using (TFOrdemProducao fOrdem = new TFOrdemProducao())
     {
         fOrdem.Text = "NOVA ORDEM PRODUÇÃO";
         if (fOrdem.ShowDialog() == DialogResult.OK)
         {
             if (fOrdem.rOrdem != null)
             {
                 try
                 {
                     TCN_OrdemProducao.Gravar(fOrdem.rOrdem, null);
                     MessageBox.Show("Ordem Produção gravada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     LimparFiltros();
                     id_ordem.Text = fOrdem.rOrdem.Id_ordem.Value.ToString();
                     afterBusca();
                 }
                 catch (Exception ex)
                 { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
             }
         }
     }
 }
コード例 #9
0
 private void bbAddOrdem_Click(object sender, EventArgs e)
 {
     using (TFOrdemProducao fOrdem = new TFOrdemProducao())
     {
         if (fOrdem.ShowDialog() == DialogResult.OK)
         {
             if (fOrdem.rOrdem != null)
             {
                 try
                 {
                     for (int i = 0; i < fOrdem.rOrdem.Qt_replicarOP; i++)
                     {
                         TCN_OrdemProducao.Gravar(fOrdem.rOrdem, null);
                         fOrdem.rOrdem.Id_ordem = null;
                     }
                     MessageBox.Show("Ordem produção gravada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     bbBuscarOrdem_Click(this, new EventArgs());
                 }
                 catch (Exception ex)
                 { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
             }
         }
     }
 }
コード例 #10
0
 private void bbProduzir_Click(object sender, EventArgs e)
 {
     if (bsOrdemProduzir.Current != null)
     {
         if ((bsOrdemProduzir.Current as TRegistro_OrdemProducao).St_registro.Trim().ToUpper() != "A")
         {
             MessageBox.Show("Permitido INICIAR PRODUÇÃO somente de ordem com status ABERTA.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         try
         {
             bool st_serie = CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_Bool("GERAR_SERIE_APONTAMENTO",
                                                                                  (bsOrdemProduzir.Current as TRegistro_OrdemProducao).Cd_empresa, null).Equals("S") &&
                             new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarEscalar(
                 new Utils.TpBusca[]
             {
                 new Utils.TpBusca {
                     vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = "'" + (bsOrdemProduzir.Current as TRegistro_OrdemProducao).Cd_produto.Trim() + "'"
                 },
                 new Utils.TpBusca {
                     vNM_Campo = "isnull(a.st_exigirserie, 'N')", vOperador = "=", vVL_Busca = "'S'"
                 }
             }, "1") != null;
             if (st_serie)
             {
                 using (TFSerieProduto fSerie = new TFSerieProduto())
                 {
                     object obj = new TCD_SerieProduto().BuscarEscalar(
                         new Utils.TpBusca[]
                     {
                         new Utils.TpBusca()
                         {
                             vNM_Campo = "ISNUMERIC(a.nr_serie)",
                             vOperador = "=",
                             vVL_Busca = "1"
                         }
                     }, "max(nr_serie)");
                     decimal numeroserie = decimal.Zero;
                     try
                     {
                         if (obj == null ? false : !string.IsNullOrEmpty(obj.ToString()))
                         {
                             numeroserie = decimal.Parse(obj.ToString());
                         }
                         for (int i = 0; (bsOrdemProduzir.Current as TRegistro_OrdemProducao).Qtd_saldoproduzir > i; i++)
                         {
                             fSerie.lSerie.Add(new TRegistro_SerieProduto()
                             {
                                 Cd_empresa = (bsOrdemProduzir.Current as TRegistro_OrdemProducao).Cd_empresa,
                                 Cd_produto = (bsOrdemProduzir.Current as TRegistro_OrdemProducao).Cd_produto,
                                 Ds_produto = (bsOrdemProduzir.Current as TRegistro_OrdemProducao).Ds_produto,
                                 Nr_serie   = (numeroserie += 1).ToString()
                             });
                         }
                     }
                     catch
                     {
                         fSerie.lSerie.Add(
                             new TRegistro_SerieProduto
                         {
                             Cd_empresa = (bsOrdemProduzir.Current as TRegistro_OrdemProducao).Cd_empresa,
                             Cd_produto = (bsOrdemProduzir.Current as TRegistro_OrdemProducao).Cd_produto,
                             Ds_produto = (bsOrdemProduzir.Current as TRegistro_OrdemProducao).Ds_produto
                         });
                     }
                     if (fSerie.ShowDialog() == DialogResult.OK)
                     {
                         if (fSerie.lSerie != null)
                         {
                             if (fSerie.lSerie.Count > 0)
                             {
                                 (bsOrdemProduzir.Current as TRegistro_OrdemProducao).lSerie = fSerie.lSerie;
                             }
                         }
                     }
                     else
                     {
                         MessageBox.Show("Obrigatório informar Nº Série!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         return;
                     }
                 }
             }
             TCN_OrdemProducao.IniciarProducao(bsOrdemProduzir.Current as TRegistro_OrdemProducao, null);
             if (st_serie)
             {
                 ImprimirFichaProducao();
             }
             bbBuscarOrdem_Click(this, new EventArgs());
         }
         catch (Exception ex)
         {
             bbBuscarOrdem_Click(this, new EventArgs());
             MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }
コード例 #11
0
        public static string Gravar2(TRegistro_ApontamentoProducao val,
                                     BancoDados.TObjetoBanco banco)
        {
            bool st_transacao = false;
            TCD_ApontamentoProducao qtb_ap = new TCD_ApontamentoProducao();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_ap.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_ap.Banco_Dados = banco;
                }
                //Gravar apontamento
                val.St_registro    = "1";
                val.Id_apontamento = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(qtb_ap.Gravar(val), "@P_ID_APONTAMENTO"));
                decimal custo = decimal.Zero;
                //Baixar estoque ficha tecnica
                TCN_Ordem_MPrima.Buscar(val.Id_ordemstr, qtb_ap.Banco_Dados)
                .ForEach(v =>
                {
                    //Incluir apontamento
                    TCN_Apontamento_MPrima.Gravar(
                        new TRegistro_Apontamento_MPrima
                    {
                        Id_apontamento = val.Id_apontamento.Value,
                        Cd_produto     = v.Cd_produto,
                        Cd_unidade     = v.Cd_unidade,
                        Cd_local       = v.Cd_local,
                        Qtd_produto    = v.Qtd_produto,
                        Pc_quebratec   = v.Pc_quebratec
                    }, qtb_ap.Banco_Dados);
                    //Gravar estoque
                    TRegistro_LanEstoque rEstoque = new TRegistro_LanEstoque();
                    rEstoque.Cd_empresa           = v.CD_Empresa;
                    rEstoque.Cd_local             = v.Cd_local;
                    rEstoque.Cd_produto           = v.Cd_produto;
                    rEstoque.Ds_observacao        = "ESTOQUE GRAVADO AUTOMATICAMENTE PELO APONTAMENTO DE PRODUCAO";
                    rEstoque.Dt_lancto            = val.Dt_apontamento;
                    rEstoque.Tp_movimento         = "S";
                    rEstoque.Qtd_entrada          = decimal.Zero;
                    rEstoque.Qtd_saida            = v.Qtd_produto;
                    rEstoque.Vl_unitario          = TCN_LanEstoque.BuscarVlEstoqueUltimaCompra(v.CD_Empresa, v.Cd_produto, qtb_ap.Banco_Dados);
                    rEstoque.Vl_subtotal          = v.Qtd_produto * rEstoque.Vl_unitario;
                    rEstoque.Tp_lancto            = "N";
                    custo += rEstoque.Vl_subtotal;
                    TCN_LanEstoque.GravarEstoque(rEstoque, qtb_ap.Banco_Dados);
                    //Apontamento x estoque
                    TCN_Apontamento_Estoque.GravarApontamentoEstoque(
                        new TRegistro_Apontamento_Estoque
                    {
                        Id_apontamento   = val.Id_apontamento,
                        Cd_empresa       = rEstoque.Cd_empresa,
                        Cd_produto       = rEstoque.Cd_produto,
                        Id_lanctoestoque = rEstoque.Id_lanctoestoque,
                        Vl_custocontabil = rEstoque.Vl_subtotal
                    }, qtb_ap.Banco_Dados);
                });
                //Dar entrada estoque produto acabado
                TRegistro_OrdemProducao rOrdem =
                    TCN_OrdemProducao.Buscar(val.Id_ordemstr,
                                             val.Cd_empresa,
                                             string.Empty,
                                             string.Empty,
                                             string.Empty,
                                             string.Empty,
                                             string.Empty,
                                             string.Empty,
                                             string.Empty,
                                             false,
                                             false,
                                             false,
                                             false,
                                             qtb_ap.Banco_Dados)[0];
                TRegistro_LanEstoque rEstAcab = new TRegistro_LanEstoque();
                rEstAcab.Cd_empresa    = rOrdem.Cd_empresa;
                rEstAcab.Cd_local      = rOrdem.Cd_local;
                rEstAcab.Cd_produto    = rOrdem.Cd_produto;
                rEstAcab.Ds_observacao = "ESTOQUE GRAVADO AUTOMATICAMENTE PELO APONTAMENTO DE PRODUCAO";
                rEstAcab.Dt_lancto     = val.Dt_apontamento;
                rEstAcab.Tp_movimento  = "E";
                rEstAcab.Qtd_entrada   = rOrdem.Qtd_saldoproduzir;
                rEstAcab.Qtd_saida     = decimal.Zero;
                rEstAcab.Vl_unitario   = Math.Round(decimal.Divide(custo, rOrdem.Qtd_saldoproduzir), 7, MidpointRounding.AwayFromZero);
                rEstAcab.Vl_subtotal   = custo;
                rEstAcab.Tp_lancto     = "N";
                TCN_LanEstoque.GravarEstoque(rEstAcab, qtb_ap.Banco_Dados);
                //Apontamento x estoque
                TCN_Apontamento_Estoque.GravarApontamentoEstoque(
                    new TRegistro_Apontamento_Estoque
                {
                    Id_apontamento   = val.Id_apontamento,
                    Cd_empresa       = rEstAcab.Cd_empresa,
                    Cd_produto       = rEstAcab.Cd_produto,
                    Id_lanctoestoque = rEstAcab.Id_lanctoestoque,
                    Vl_custocontabil = custo
                }, qtb_ap.Banco_Dados);
                //Gravar Ordem x Apontamento
                TCN_OrdemProducao_X_Apontamento.Gravar(
                    new TRegistro_OrdemProducao_X_Apontamento
                {
                    Id_apontamento = val.Id_apontamento,
                    Id_ordem       = val.Id_ordem
                }, qtb_ap.Banco_Dados);
                //Alterar status serie para P-Processada
                TCN_SerieProduto.Buscar(string.Empty,
                                        string.Empty,
                                        string.Empty,
                                        val.Id_ordemstr,
                                        qtb_ap.Banco_Dados)
                .ForEach(p => { p.St_registro = "P"; TCN_SerieProduto.Gravar(p, qtb_ap.Banco_Dados); });
                //Gravar custo total materia prima
                val.Vl_custo_mpd = custo;
                qtb_ap.Gravar(val);
                if (st_transacao)
                {
                    qtb_ap.Banco_Dados.Commit_Tran();
                }
                return(val.Id_apontamentostr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_ap.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar apontamento: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_ap.deletarBanco_Dados();
                }
            }
        }
コード例 #12
0
 private void IniciarProducao()
 {
     if (bsOrdemProducao.Current != null)
     {
         if ((bsOrdemProducao.Current as TRegistro_OrdemProducao).St_registro.Trim().ToUpper() != "A")
         {
             MessageBox.Show("Permitido INICIAR PRODUÇÃO somente de ordem com status ABERTA.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         try
         {
             bool st_serie = CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_Bool("GERAR_SERIE_APONTAMENTO",
                                                                                  (bsOrdemProducao.Current as TRegistro_OrdemProducao).Cd_empresa, null).Equals("S");
             if (st_serie)
             {
                 using (TFSerieProduto fSerie = new TFSerieProduto())
                 {
                     object obj = new TCD_SerieProduto().BuscarEscalar(
                         new Utils.TpBusca[]
                     {
                         new Utils.TpBusca()
                         {
                             vNM_Campo = "a.Nr_serie",
                             vOperador = "<>",
                             vVL_Busca = "SEM SÉRIE"
                         }
                     }, "max(nr_serie)");
                     decimal numeroserie = decimal.Zero;
                     if (obj == null ? false : !string.IsNullOrEmpty(obj.ToString()))
                     {
                         numeroserie = decimal.Parse(obj.ToString());
                     }
                     for (int i = 0; (bsOrdemProducao.Current as TRegistro_OrdemProducao).Qtd_saldoproduzir > i; i++)
                     {
                         fSerie.lSerie.Add(new TRegistro_SerieProduto()
                         {
                             Cd_empresa = (bsOrdemProducao.Current as TRegistro_OrdemProducao).Cd_empresa,
                             Cd_produto = (bsOrdemProducao.Current as TRegistro_OrdemProducao).Cd_produto,
                             Ds_produto = (bsOrdemProducao.Current as TRegistro_OrdemProducao).Ds_produto,
                             Nr_serie   = (numeroserie += 1).ToString()
                         });
                     }
                     if (fSerie.ShowDialog() == DialogResult.OK)
                     {
                         if (fSerie.lSerie != null)
                         {
                             if (fSerie.lSerie.Count > 0)
                             {
                                 (bsOrdemProducao.Current as TRegistro_OrdemProducao).lSerie = fSerie.lSerie;
                             }
                         }
                     }
                     else
                     {
                         MessageBox.Show("Obrigatório informar Nº Série!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         return;
                     }
                 }
             }
             TCN_OrdemProducao.IniciarProducao(bsOrdemProducao.Current as TRegistro_OrdemProducao, null);
             if (st_serie)
             {
                 TCN_OrdemProducao.GerarExcel(bsOrdemProducao.Current as TRegistro_OrdemProducao);
             }
             MessageBox.Show("Ordem Produção iniciada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             afterBusca();
         }
         catch (Exception ex)
         { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
     }
 }