Class: NexusLink::NAX::PedidoVenta

Inherits:
WIN32OLE
  • Object
show all
Defined in:
lib/nexus_link/nax/pedido_venta.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializePedidoVenta

Returns a new instance of PedidoVenta.



73
74
75
76
77
# File 'lib/nexus_link/nax/pedido_venta.rb', line 73

def initialize
  @progid = "NAX.Albaran"
  super @progid
  @attributes = {}
end

Instance Attribute Details

#attributesObject

Returns the value of attribute attributes.



4
5
6
# File 'lib/nexus_link/nax/pedido_venta.rb', line 4

def attributes
  @attributes
end

Class Method Details

.circuitObject



6
7
8
# File 'lib/nexus_link/nax/pedido_venta.rb', line 6

def self.circuit
  @circuit
end

.circuit=(value) ⇒ Object



10
11
12
# File 'lib/nexus_link/nax/pedido_venta.rb', line 10

def self.circuit=(value)
  @circuit = value
end

.create(attrs) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/nexus_link/nax/pedido_venta.rb', line 16

def self.create(attrs)
  attrs.reject! { |k, v| v.nil? }
  NAX.open
  fecha = attrs['FCHA'] || Time.now.strftime('%d/%m/%Y')
  codcli = attrs['CODCLI']
  result = NAX::PedidoVenta.new
  result.attributes = attrs.clone
  result.Iniciar
  NAX.check
  result.Nuevo(fecha, codcli , self.circuit == :compra)
  NAX.check
  attrs['IDALBV'] = result.AsStringCab['IDALBV']
  result.refresh_attrs(attrs)
  result
end

Instance Method Details

#add_line(line) ⇒ Object



52
53
54
55
56
# File 'lib/nexus_link/nax/pedido_venta.rb', line 52

def add_line(line)
  self.NuevaLinea
  NAX.check
  save_line(line)
end

#AsStringCabObject



79
80
81
# File 'lib/nexus_link/nax/pedido_venta.rb', line 79

def AsStringCab
  OLEProperty.new(self, 15, [VT_BSTR], [VT_BSTR, VT_BSTR])
end

#AsStringLinObject



83
84
85
# File 'lib/nexus_link/nax/pedido_venta.rb', line 83

def AsStringLin
  OLEProperty.new(self, 19, [VT_BSTR], [VT_BSTR, VT_BSTR])
end

#refresh_attrs(delta = {}) ⇒ Object



47
48
49
50
# File 'lib/nexus_link/nax/pedido_venta.rb', line 47

def refresh_attrs(delta={})
  attributes.keys.each { |key| attributes[key] = self.AsStringCab[key.to_s]   }
  attributes.merge! delta
end

#saveObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/nexus_link/nax/pedido_venta.rb', line 32

def save
  attributes.each do |key, val| 
    old_val = self.AsStringCab[key.to_s]
    unless  val == old_val
      val = '' if val.nil?
      self.AsStringCab[key.to_s] = val
    end
  end
  self.Anade
  self.Acabar
  NAX.check
  refresh_attrs
  self
end

#save_line(attrs) ⇒ Object



64
65
66
67
68
69
70
71
# File 'lib/nexus_link/nax/pedido_venta.rb', line 64

def save_line(attrs)
  attrs.each{|key, val|
    val = val.to_f if val.is_a? BigDecimal
    self.AsStringLin[key.to_s] = val if val
  }
  self.AnadirLinea;
  NAX.check
end

#update_line(rec_id, delta) ⇒ Object



58
59
60
61
62
# File 'lib/nexus_link/nax/pedido_venta.rb', line 58

def update_line(rec_id, delta)
  self.EditarLinea(rec_id)
  NAX.check
  save_line(delta)
end