public static string ProcessarMudanca(TRegistro_LanMudanca val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LanMudanca qtb_mud = new TCD_LanMudanca(); try { if (banco == null) { st_transacao = qtb_mud.CriarBanco_Dados(true); } else { qtb_mud.Banco_Dados = banco; } //Gravar Duplicata if (val.lDup.Count > 0) { TCN_LanDuplicata.GravarDuplicata(val.lDup, false, qtb_mud.Banco_Dados); val.Nr_lancto = val.lDup[0].Nr_lancto; } //Gravar lançamento almoxarifado val.lMaterialMud.ForEach(p => { //Buscar Almoxarifado CamadaDados.Almoxarifado.TList_CadAlmoxarifado lAlmox = new CamadaDados.Almoxarifado.TCD_CadAlmoxarifado().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_amx_almox_x_empresa x " + "where x.id_almox = a.id_almox " + "and x.cd_empresa = '" + val.Cd_empresa.Trim() + "')" } }, 1, string.Empty); if (lAlmox.Count == 0) { throw new Exception("Não existe configuração de almoxarifado para a empresa!"); } //Criar registro movimentação CamadaDados.Almoxarifado.TRegistro_Movimentacao rMov = new CamadaDados.Almoxarifado.TRegistro_Movimentacao(); rMov.Ds_observacao = "PRODUTO RETIRADO PELO MÓDULO MUDANÇA"; rMov.Cd_empresa = val.Cd_empresa; rMov.Id_almoxstr = lAlmox[0].Id_almoxString; rMov.Cd_produto = p.Cd_produto; rMov.Quantidade = p.Quantidade; rMov.Vl_unitario = CamadaNegocio.Almoxarifado.TCN_SaldoAlmoxarifado.Vl_Custo_Almox_Prod(val.Cd_empresa, lAlmox[0].Id_almoxString, p.Cd_produto, qtb_mud.Banco_Dados); rMov.Tp_movimento = "S"; rMov.LoginAlmoxarife = Utils.Parametros.pubLogin; rMov.Dt_movimento = CamadaDados.UtilData.Data_Servidor(); rMov.St_registro = "A"; //Gravar Movimentação CamadaNegocio.Almoxarifado.TCN_Movimentacao.Gravar(rMov, qtb_mud.Banco_Dados); //Gravar Material mudança p.Id_movimento = rMov.Id_movimento; TCN_MaterialMud.Gravar(p, qtb_mud.Banco_Dados); }); val.St_registro = "4";//Processada //Gravar processamento mudança qtb_mud.Gravar(val); if (st_transacao) { qtb_mud.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_mud.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro Gravar registro: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_mud.deletarBanco_Dados(); } } }
public static string Gravar(TRegistro_LanMudanca val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LanMudanca qtb_mud = new TCD_LanMudanca(); try { if (banco == null) { st_transacao = qtb_mud.CriarBanco_Dados(true); } else { qtb_mud.Banco_Dados = banco; } val.Id_mudancastr = CamadaDados.TDataQuery.getPubVariavel(qtb_mud.Gravar(val), "@P_ID_MUDANCA"); //Excluir Itens Mudança val.lItensMudDel.ForEach(p => TCN_LanItensMud.Excluir(p, qtb_mud.Banco_Dados)); //Gravar Itens Mudança val.lItensMud.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_mudanca = val.Id_mudanca; TCN_LanItensMud.Gravar(p, qtb_mud.Banco_Dados); }); //Excluir Serviços Mudança val.lServicosMudDel.ForEach(p => TCN_LanServicosMud.Excluir(p, qtb_mud.Banco_Dados)); //Gravar Serviços Mudança val.lServicosMud.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_mudanca = val.Id_mudanca; TCN_LanServicosMud.Gravar(p, qtb_mud.Banco_Dados); }); //Excluir Parcelas Mudança val.lParcelasMudDel.ForEach(p => TCN_ParcelasMud.Excluir(p, qtb_mud.Banco_Dados)); //Gravar Parcelas Mudança val.lParcelasMud.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_mudanca = val.Id_mudanca; TCN_ParcelasMud.Gravar(p, qtb_mud.Banco_Dados); }); //Excluir Material Mudança val.lMaterialMudDel.ForEach(p => TCN_MaterialMud.Excluir(p, qtb_mud.Banco_Dados)); //Gravar Material Mudança val.lMaterialMud.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_mudanca = val.Id_mudanca; TCN_MaterialMud.Gravar(p, qtb_mud.Banco_Dados); }); //Excluir Ajudantes Mudança val.lAjudantesMudDel.ForEach(p => TCN_AjudantesMud.Excluir(p, qtb_mud.Banco_Dados)); //Gravar Ajudantes Mudança val.lAjudantesMud.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_mudanca = val.Id_mudanca; TCN_AjudantesMud.Gravar(p, qtb_mud.Banco_Dados); }); //Gravar Orcamento val.lOrcamento.ForEach(p => { p.Id_mudancastr = val.Id_mudancastr; p.St_registro = "1"; TCN_Orcamento.Gravar(p, qtb_mud.Banco_Dados); TCN_LanMudanca.AprovarMudanca(val, qtb_mud.Banco_Dados); }); if (st_transacao) { qtb_mud.Banco_Dados.Commit_Tran(); } return(val.Id_mudancastr); } catch (Exception ex) { if (st_transacao) { qtb_mud.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar mudança: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_mud.deletarBanco_Dados(); } } }