Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
 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);
     }
 }