public static string Excluir(TRegistro_SerieProduto val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_SerieProduto qtb_ordem = new TCD_SerieProduto(); try { if (banco == null) { st_transacao = qtb_ordem.CriarBanco_Dados(true); } else { qtb_ordem.Banco_Dados = banco; } //Cancelar val.St_registro = "C"; qtb_ordem.Gravar(val); if (st_transacao) { qtb_ordem.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_ordem.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir Nº Série: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_ordem.deletarBanco_Dados(); } } }
public static string Gravar(TRegistro_SerieProduto val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_SerieProduto qtb_ordem = new TCD_SerieProduto(); try { if (banco == null) { st_transacao = qtb_ordem.CriarBanco_Dados(true); } else { qtb_ordem.Banco_Dados = banco; } //Gravar Nº Série val.Id_serie = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(qtb_ordem.Gravar(val), "@P_ID_SERIE")); if (st_transacao) { qtb_ordem.Banco_Dados.Commit_Tran(); } return(val.Id_seriestr); } catch (Exception ex) { if (st_transacao) { qtb_ordem.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar Nº Série: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_ordem.deletarBanco_Dados(); } } }
public static string Gravar(TRegistro_ApontamentoProducao val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_ApontamentoProducao qtb_apontamento = new TCD_ApontamentoProducao(); try { if (banco == null) { st_transacao = qtb_apontamento.CriarBanco_Dados(true); } else { qtb_apontamento.Banco_Dados = banco; } if (val.LFormulaApontamento.Count < 1) { throw new Exception("Erro: Não existe formula apontamento para processar apontamento produção."); } //Verificar custo fixo string moeda_padrao = TCN_CadParamGer.BuscaVL_String_Empresa("CD_MOEDA_PADRAO", val.Cd_empresa, qtb_apontamento.Banco_Dados); if (moeda_padrao.Trim().Equals(string.Empty)) { throw new Exception("Erro gravar apontamento produção: falta configurar moeda padrão para realizar calculo do custo fixo."); } //Gravar apontamento producao val.St_registro = "1"; val.Id_apontamento = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(qtb_apontamento.Gravar(val), "@P_ID_APONTAMENTO")); List <TRegistro_CustoFixo_Direto> lCustoMoeda = val.LFormulaApontamento[0].LCustoFixo.FindAll(p => p.Cd_moeda.Trim() != moeda_padrao.Trim()); lCustoMoeda.ForEach(p => { //Verificar se existe cotacao para este custo object obj = new TCD_CotacaoMoeda(qtb_apontamento.Banco_Dados).BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_moeda", vOperador = "=", vVL_Busca = "'" + p.Cd_moeda.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_moedaresult", vOperador = "=", vVL_Busca = "'" + moeda_padrao.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.data", vOperador = "=", vVL_Busca = "'" + string.Format(new System.Globalization.CultureInfo("en-US", true), Convert.ToDateTime(val.Dt_apontamento.Value).ToString("yyyyMMdd")) + "'" } }, "1"); if (obj != null) { if (!obj.ToString().Equals("1")) { throw new Exception("Erro gravar apontamento produção: Não existe cotação para a moeda de origem " + p.Cd_moeda.Trim() + ", \r\n" + "moeda de destino " + moeda_padrao.Trim() + ", data de cotação " + val.Dt_apontamentostr.Trim()); } } else { throw new Exception("Erro gravar apontamento produção: Não existe cotação para a moeda de origem " + p.Cd_moeda.Trim() + ", \r\n" + "moeda de destino " + moeda_padrao.Trim() + ", data de cotação " + val.Dt_apontamentostr.Trim()); } }); CalcularCustoMPD(val, qtb_apontamento.Banco_Dados); //Processar estoque produto acabado ProcessarEstoqueProdutoAcabado(val, val.Qtd_batch, val.Vl_custo_mpd, qtb_apontamento.Banco_Dados); //Processar estoque materia-prima TCN_FichaTec_MPrima.ProcessarEstoqueFichaTec_MPrima(val.LFormulaApontamento[0].LFichaTec_MPrima, val.Qtd_batch, val.Dt_apontamento, val.LFormulaApontamento[0].St_decomposicao, qtb_apontamento.Banco_Dados).ForEach(p => val.LApontamentoEstoque.Add(p)); //Gravar apontamento X Estoque val.LApontamentoEstoque.ForEach(p => { p.Id_apontamento = val.Id_apontamento; TCN_Apontamento_Estoque.GravarApontamentoEstoque(p, qtb_apontamento.Banco_Dados); }); //Gravar apontamento X Custo Fixo val.LFormulaApontamento[0].LCustoFixo.ForEach(p => { TCN_Apontamento_CustoFixo.GravarApontamentoCustoFixo( new TRegistro_Apontamento_CustoFixo() { Id_apontamento = val.Id_apontamento, Id_custo = p.Id_custo, Vl_custo = p.Vl_custo_calculado, Indice_monetario = p.Indice_monetario }, qtb_apontamento.Banco_Dados); }); //Gravar Formula Materia Prima val.LFormulaApontamento[0].LFichaTec_MPrima.ForEach(p => TCN_Apontamento_MPrima.Gravar(new TRegistro_Apontamento_MPrima() { Id_apontamento = val.Id_apontamento.HasValue ? val.Id_apontamento.Value : decimal.Zero, Id_mprima = decimal.Zero, Cd_produto = p.Cd_produto, Cd_unidade = p.Cd_unidade, Cd_local = p.Cd_local, Qtd_produto = p.Qtd_produto, Pc_quebratec = p.Pc_quebra_tec, Id_apontamentomprima = p.Id_apontamentomprima }, qtb_apontamento.Banco_Dados)); if (val.Id_ordem != null) { //Gravar Apontamento X Ordem de Producao TCN_OrdemProducao_X_Apontamento.Gravar( new TRegistro_OrdemProducao_X_Apontamento() { Id_apontamento = val.Id_apontamento, Id_ordem = val.Id_ordem }, qtb_apontamento.Banco_Dados); } //Gravar Mov Rastreabilidade val.lMov.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_apontamento = val.Id_apontamento; TCN_MovRastreabilidade.Gravar(p, qtb_apontamento.Banco_Dados); }); if (val.Id_ordem.HasValue) { //Buscar Nº Série TList_SerieProduto lSerie = new TCD_SerieProduto(qtb_apontamento.Banco_Dados).Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.id_ordem", vOperador = "=", vVL_Busca = val.Id_ordemstr } }, 0, string.Empty); //Processar Numero se Serie if (lSerie.Count > 0) { lSerie.ForEach(p => { p.St_registro = "P"; TCN_SerieProduto.Gravar(p, qtb_apontamento.Banco_Dados); }); } } if (st_transacao) { qtb_apontamento.Banco_Dados.Commit_Tran(); } return(val.Id_apontamentostr); } catch (Exception ex) { if (st_transacao) { qtb_apontamento.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro: " + ex.Message); } finally { if (st_transacao) { qtb_apontamento.deletarBanco_Dados(); } } }
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); } } }
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); } } }