public static string Gravar(TRegistro_CargaAvulsa val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CargaAvulsa qtb_carga = new TCD_CargaAvulsa(); try { if (banco == null) { st_transacao = qtb_carga.CriarBanco_Dados(true); } else { qtb_carga.Banco_Dados = banco; } val.Id_cargastr = CamadaDados.TDataQuery.getPubVariavel(qtb_carga.Gravar(val), "@P_ID_CARGA"); //Buscar Local Arm object obj = new CamadaDados.Estoque.Cadastros.TCD_CadLocalArm_X_Empresa(qtb_carga.Banco_Dados).BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" } }, "a.CD_Local"); if (obj == null) { throw new Exception("Não existe Local de armazenagem configurado para Empresa" + val.Cd_empresa.Trim() + "!"); } //Item Carga val.lItensDel.ForEach(p => { //Cancelar Estoque new CamadaDados.Estoque.TCD_LanEstoque(qtb_carga.Banco_Dados).Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + p.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = "'" + p.Cd_produto.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.id_lanctoestoque", vOperador = "=", vVL_Busca = p.Id_lanctoEstoqueS.ToString() } }, 0, string.Empty, string.Empty, string.Empty).ForEach(x => Estoque.TCN_LanEstoque.CancelarEstoque(x, qtb_carga.Banco_Dados)); TCN_ItensCargaAvulsa.Excluir(p, qtb_carga.Banco_Dados); }); val.lItens.FindAll(p => p.Id_lanctoEstoqueS == null).ForEach(p => { //Buscar Vl.Médio decimal vl_unit = Estoque.TCN_LanEstoque.Valor_Medio_Est_Produto(val.Cd_empresa, p.Cd_produto, qtb_carga.Banco_Dados); //Gravar Estoque string ret_est = Estoque.TCN_LanEstoque.GravarEstoque( new CamadaDados.Estoque.TRegistro_LanEstoque() { Cd_empresa = val.Cd_empresa, Cd_produto = p.Cd_produto, Cd_local = obj.ToString(), Dt_lancto = CamadaDados.UtilData.Data_Servidor(), Tp_movimento = "S", Qtd_entrada = decimal.Zero, Qtd_saida = p.Quantidade, Vl_unitario = vl_unit, Vl_subtotal = vl_unit * p.Quantidade, Tp_lancto = "N", St_registro = "A", Ds_observacao = "SAÍDA DE PRODUTOS CARGA Nº " + val.Id_cargastr, }, qtb_carga.Banco_Dados); p.Id_lanctoEstoqueS = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_est, "@@P_ID_LANCTOESTOQUE")); p.Cd_empresa = val.Cd_empresa; p.Id_carga = val.Id_carga; TCN_ItensCargaAvulsa.Gravar(p, qtb_carga.Banco_Dados); }); if (st_transacao) { qtb_carga.Banco_Dados.Commit_Tran(); } return(val.Id_cargastr); } catch (Exception ex) { if (st_transacao) { qtb_carga.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar Carga: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_carga.deletarBanco_Dados(); } } }
public static string Excluir(TRegistro_CargaAvulsa val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CargaAvulsa qtb_carga = new TCD_CargaAvulsa(); try { if (banco == null) { st_transacao = qtb_carga.CriarBanco_Dados(true); } else { qtb_carga.Banco_Dados = banco; } val.lItensDel.ForEach(p => TCN_ItensCargaAvulsa.Excluir(p, qtb_carga.Banco_Dados)); val.lItens.ForEach(p => { //Cancelar Estoque - Saída if (p.Id_lanctoEstoqueS.HasValue) { new CamadaDados.Estoque.TCD_LanEstoque(qtb_carga.Banco_Dados).Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + p.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = "'" + p.Cd_produto.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.id_lanctoestoque", vOperador = "=", vVL_Busca = p.Id_lanctoEstoqueS.ToString() } }, 0, string.Empty, string.Empty, string.Empty).ForEach(x => Estoque.TCN_LanEstoque.CancelarEstoque(x, qtb_carga.Banco_Dados)); } //Cancelar Estoque - Devolução if (p.Id_lanctoEstoqueD.HasValue) { new CamadaDados.Estoque.TCD_LanEstoque(qtb_carga.Banco_Dados).Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + p.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = "'" + p.Cd_produto.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.id_lanctoestoque", vOperador = "=", vVL_Busca = p.Id_lanctoEstoqueD.ToString() } }, 0, string.Empty, string.Empty, string.Empty).ForEach(x => Estoque.TCN_LanEstoque.CancelarEstoque(x, qtb_carga.Banco_Dados)); } //Excluir Item TCN_ItensCargaAvulsa.Excluir(p, qtb_carga.Banco_Dados); }); qtb_carga.Excluir(val); if (st_transacao) { qtb_carga.Banco_Dados.Commit_Tran(); } return(val.Id_cargastr); } catch (Exception ex) { if (st_transacao) { qtb_carga.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir Carga: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_carga.deletarBanco_Dados(); } } }