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()); } } }
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(); } } }
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()); }
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); } } } }
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); } } } }
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); } } }
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); } } }
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); } } } } }
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); } } } } }
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); } } }
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(); } } }
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); } } }