public static string Gravar(TRegistro_CargaEntrega val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CargaEntrega qtb_carga = new TCD_CargaEntrega(); 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"); //Item Carga val.lItensDel.ForEach(p => TCN_ItensCarga.Excluir(p, qtb_carga.Banco_Dados)); val.lItens.ForEach(p => { if (p.St_processar) { p.Id_carga = val.Id_carga; TCN_ItensCarga.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_CargaEntrega val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CargaEntrega qtb_carga = new TCD_CargaEntrega(); try { if (banco == null) { st_transacao = qtb_carga.CriarBanco_Dados(true); } else { qtb_carga.Banco_Dados = banco; } val.lItens.ForEach(p => { p.St_registro = "C"; p.Quantidade = decimal.Zero; TCN_ItensCarga.Gravar(p, qtb_carga.Banco_Dados); }); val.St_registro = "C"; qtb_carga.Gravar(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(); } } }
public static string ProcessarEntrega(TRegistro_CargaEntrega val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CargaEntrega qtb_carga = new TCD_CargaEntrega(); try { if (banco == null) { st_transacao = qtb_carga.CriarBanco_Dados(true); } else { qtb_carga.Banco_Dados = banco; } //Processar estoque dos itens Entrega val.lItens.ForEach(p => { if (p.St_processar) { //Buscar Local de Armazenagem object cd_local = new CamadaDados.Faturamento.Entrega.TCD_ItensRomaneio(qtb_carga.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.CD_empresa", vOperador = "=", vVL_Busca = "'" + p.Cd_empresa + "'" }, new Utils.TpBusca() { vNM_Campo = "a.ID_Romaneio", vOperador = "=", vVL_Busca = "'" + p.Id_romaneiostr + "'" }, new Utils.TpBusca() { vNM_Campo = "a.ID_ItemRomaneio", vOperador = "=", vVL_Busca = "'" + p.Id_itemromaneiostr + "'" } }, "a.cd_local"); //Buscar VL.Médio decimal vl_medio = CamadaNegocio.Estoque.TCN_LanEstoque.Valor_Medio_Est_Produto(p.Cd_empresa, p.Cd_produto, qtb_carga.Banco_Dados); //Criar objeto estoque CamadaDados.Estoque.TRegistro_LanEstoque rEstoque = new CamadaDados.Estoque.TRegistro_LanEstoque(); rEstoque.Cd_empresa = p.Cd_empresa; rEstoque.Cd_produto = p.Cd_produto; rEstoque.Cd_local = cd_local.ToString(); rEstoque.Dt_lancto = CamadaDados.UtilData.Data_Servidor(); rEstoque.Tp_movimento = "S"; rEstoque.Qtd_entrada = decimal.Zero; rEstoque.Qtd_saida = p.QTD_Saida; rEstoque.Vl_unitario = vl_medio; rEstoque.Vl_subtotal = p.QTD_Saida * vl_medio; rEstoque.Tp_lancto = "N"; rEstoque.St_registro = "A"; //Gravar Estoque CamadaNegocio.Estoque.TCN_LanEstoque.GravarEstoque(rEstoque, qtb_carga.Banco_Dados); p.Id_lanctoEstoque = rEstoque.Id_lanctoestoque; TCN_ItensCarga.Gravar(p, qtb_carga.Banco_Dados); } }); val.St_registro = "E"; qtb_carga.Gravar(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 Entregar Carga: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_carga.deletarBanco_Dados(); } } }
public static void EstornarProcEntrega(TRegistro_CargaEntrega val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CargaEntrega qtb_carga = new TCD_CargaEntrega(); try { if (banco == null) { st_transacao = qtb_carga.CriarBanco_Dados(true); } else { qtb_carga.Banco_Dados = banco; } val.lItens.ForEach(p => { if (p.Id_lanctoEstoque.HasValue) { CamadaNegocio.Estoque.TCN_LanEstoque.CancelarEstoque(CamadaNegocio.Estoque.TCN_LanEstoque.Busca(p.Cd_empresa, p.Cd_produto, string.Empty, string.Empty, string.Empty, p.Id_lanctoEstoque.Value.ToString(), string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 1, string.Empty, qtb_carga.Banco_Dados)[0], qtb_carga.Banco_Dados); } p.Qtd_entregue = decimal.Zero; p.Ds_observacao = string.Empty; TCN_ItensCarga.Gravar(p, qtb_carga.Banco_Dados); }); val.St_registro = "A"; qtb_carga.Gravar(val); if (st_transacao) { qtb_carga.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_carga.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro estornar processamento: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_carga.deletarBanco_Dados(); } } }
public static string ProcessarEntrega(TRegistro_CargaEntrega val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CargaEntrega qtb_carga = new TCD_CargaEntrega(); try { if (banco == null) { st_transacao = qtb_carga.CriarBanco_Dados(true); } else { qtb_carga.Banco_Dados = banco; } //Processar estoque dos itens Entrega val.lItens.ForEach(p => { //Verificar se empresa movimenta estoque e qtd entregar maior zero if (p.Qtd_entregue > decimal.Zero) { bool st_movestoque = true; //Buscar item romaneio TRegistro_ItensRomaneio rRomaneio = TCN_ItensRomaneio.Buscar(p.Cd_empresa, p.Id_romaneiostr, p.Id_itemromaneiostr, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, qtb_carga.Banco_Dados)[0]; if (rRomaneio.Id_prevenda.HasValue) { st_movestoque = new CamadaDados.Faturamento.Cadastros.TCD_CFGCupomFiscal(qtb_carga.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + rRomaneio.Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "isnull(a.st_movestoque, 'N')", vOperador = "=", vVL_Busca = "'S'" } }, "1") != null; } else if (rRomaneio.Nr_pedido.HasValue) { st_movestoque = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal(qtb_carga.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "isnull(d.st_geraEstoque, 'N')", vOperador = "=", vVL_Busca = "'S'" }, new Utils.TpBusca() { vNM_Campo = "a.tp_fiscal", vOperador = "=", vVL_Busca = "'NO'" }, new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_pedido x " + "where x.cfg_pedido = a.cfg_pedido " + "and x.nr_pedido = " + rRomaneio.Nr_pedido.Value.ToString() + ")" } }, "1") != null; } if (st_movestoque) { //Buscar VL.Médio decimal vl_medio = CamadaNegocio.Estoque.TCN_LanEstoque.Valor_Medio_Est_Produto(p.Cd_empresa, p.Cd_produto, qtb_carga.Banco_Dados); //Criar objeto estoque CamadaDados.Estoque.TRegistro_LanEstoque rEstoque = new CamadaDados.Estoque.TRegistro_LanEstoque(); rEstoque.Cd_empresa = p.Cd_empresa; rEstoque.Cd_produto = p.Cd_produto; rEstoque.Cd_local = rRomaneio.Cd_local; rEstoque.Dt_lancto = CamadaDados.UtilData.Data_Servidor(); rEstoque.Tp_movimento = "S"; rEstoque.Qtd_entrada = decimal.Zero; rEstoque.Qtd_saida = p.Qtd_entregue; rEstoque.Vl_unitario = vl_medio; rEstoque.Vl_subtotal = p.Qtd_entregue * vl_medio; rEstoque.Tp_lancto = "N"; rEstoque.St_registro = "A"; //Gravar Estoque CamadaNegocio.Estoque.TCN_LanEstoque.GravarEstoque(rEstoque, qtb_carga.Banco_Dados); p.Id_lanctoEstoque = rEstoque.Id_lanctoestoque; } } TCN_ItensCarga.Gravar(p, qtb_carga.Banco_Dados); }); val.St_registro = "E"; qtb_carga.Gravar(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 Entregar Carga: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_carga.deletarBanco_Dados(); } } }