public static void GerarPedidoPecas(ref CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed, CamadaDados.Servicos.TRegistro_LanServico rOs, List <CamadaDados.Servicos.TRegistro_LanServicosPecas> lPecas, CamadaDados.Servicos.Cadastros.TRegistro_OSE_ParamOS rParam) { if (!string.IsNullOrEmpty(rParam.Cfg_pedido_item)) { if (rPed == null) { rPed = new CamadaDados.Faturamento.Pedido.TRegistro_Pedido(); rPed.CD_Empresa = rOs != null ? rOs.Cd_empresa : string.Empty; rPed.DT_Pedido = DateTime.Now; rPed.CFG_Pedido = rParam.Cfg_pedido_item; rPed.Cd_vendedor = rOs != null?rOs.lEvolucao.Exists(p => !string.IsNullOrEmpty(p.Cd_tecnico)) ? rOs.lEvolucao.FindLast(p => !string.IsNullOrEmpty(p.Cd_tecnico)).Cd_tecnico : string.Empty : string.Empty; rPed.TP_Movimento = "S"; //Pedido de saida rPed.ST_Pedido = "F"; //Pedido fechado rPed.ST_Registro = "F"; //Pedido fechado rPed.CD_Clifor = rOs != null ? rOs.Cd_clifor : string.Empty; rPed.CD_Endereco = rOs != null ? rOs.Cd_endereco : string.Empty; rPed.Cd_moeda = rParam.Cd_moeda; rPed.CD_TRANSPORTADORA = rParam.Cd_transportadora; rPed.CD_ENDERECOTRANSP = rParam.Cd_enderecoTransp; } foreach (CamadaDados.Servicos.TRegistro_LanServicosPecas p in lPecas) { CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item reg = new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item(); reg.Cd_Empresa = p.Cd_empresa; reg.Cd_local = p.Cd_local; reg.Cd_vendedor = p.Cd_tecnico; reg.Cd_produto = p.Cd_produto; reg.Ds_produto = p.Ds_produto; reg.Cd_unidade_est = p.Cd_unidproduto; reg.Cd_unidade_valor = p.Cd_unidproduto; reg.Quantidade = p.Qtd_faturar > decimal.Zero ? p.Qtd_faturar : p.Quantidade; if (rParam.St_sum_d_a_unitbool) { reg.Vl_unitario = p.Vl_unitario - decimal.Round(decimal.Divide(p.Vl_desconto, p.Quantidade), 5, MidpointRounding.AwayFromZero) + decimal.Round(decimal.Divide(p.Vl_acrescimo, p.Quantidade), 5, MidpointRounding.AwayFromZero); reg.Vl_subtotal = reg.Vl_unitario * p.Qtd_faturar > decimal.Zero ? p.Qtd_faturar : p.Quantidade; reg.Vl_desc = decimal.Zero; reg.Vl_acrescimo = decimal.Zero; } else { reg.Vl_unitario = p.Vl_unitario; reg.Vl_subtotal = p.Vl_unitario * (p.Qtd_faturar > decimal.Zero ? p.Qtd_faturar : p.Quantidade); reg.Vl_desc = p.Vl_desconto; reg.Vl_acrescimo = p.Vl_acrescimo; } reg.Tp_pedOS = "IT"; reg.lPecaOS.Add(p); rPed.Pedido_Itens.Add(reg); } } else { throw new Exception("Não existe configuracao para emitir pedido de peças para o tipo de ordem " + rOs.Tp_ordemstr); } }
public static void GerarPedidoGarantia(ref CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed, CamadaDados.Servicos.TRegistro_LanServico rOs, List <CamadaDados.Servicos.TRegistro_LanServicosPecas> lPecas, CamadaDados.Servicos.Cadastros.TRegistro_OSE_ParamOS rParam) { if (!string.IsNullOrEmpty(rParam.Cfg_pedido_garantia)) { if (rPed == null) { rPed = new CamadaDados.Faturamento.Pedido.TRegistro_Pedido(); rPed.CD_Empresa = rOs.Cd_empresa; rPed.DT_Pedido = DateTime.Now; rPed.CFG_Pedido = rParam.Cfg_pedido_garantia; rPed.TP_Movimento = "S"; //Pedido de saida rPed.ST_Pedido = "F"; //Pedido fechado rPed.ST_Registro = "F"; //Pedido fechado rPed.CD_Clifor = rOs.Cd_clifor; rPed.CD_Endereco = rOs.Cd_endereco; rPed.Cd_moeda = rParam.Cd_moeda; rPed.CD_TRANSPORTADORA = rParam.Cd_transportadora; rPed.CD_ENDERECOTRANSP = rParam.Cd_enderecoTransp; } foreach (CamadaDados.Servicos.TRegistro_LanServicosPecas p in lPecas) { CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item reg = new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item(); reg.Cd_Empresa = rOs.Cd_empresa; reg.Cd_local = p.Cd_local; reg.Cd_vendedor = p.Cd_tecnico; reg.Cd_produto = p.Cd_produto; reg.Ds_produto = p.Ds_produto; reg.Cd_unidade_est = p.Cd_unidproduto; reg.Cd_unidade_valor = p.Cd_unidproduto; reg.Quantidade = p.Quantidade; reg.Vl_unitario = p.Vl_unitario; reg.Vl_subtotal = p.Vl_subtotal; reg.Vl_desc = p.Vl_desconto; reg.Vl_acrescimo = p.Vl_acrescimo; reg.Tp_pedOS = "GR"; reg.lPecaOS.Add(p); rPed.Pedido_Itens.Add(reg); } } else { throw new Exception("Não existe configuracao para emitir pedido de garantia para o tipo de ordem " + rOs.Tp_ordemstr); } }