Merge branch 'master' of https://github.com/kivitendo/kivitendo-erp
[kivitendo-erp.git] / js / kivi.CustomerVendor.js
1 namespace('kivi.CustomerVendor', function(ns) {
2
3   this.selectShipto = function(params) {
4     var shiptoId = $('#shipto_shipto_id').val();
5
6     if( shiptoId ) {
7       var url = 'controller.pl?action=CustomerVendor/ajaj_get_shipto&id='+ $('#cv_id').val() +'&db='+ $('#db').val() +'&shipto_id='+ shiptoId;
8
9       $.getJSON(url, function(data) {
10         for(var key in data)
11           $(document.getElementById('shipto_'+ key)).val(data[key]);
12
13         $('#action_delete_shipto').show();
14
15         if( params.onFormSet )
16           params.onFormSet();
17       });
18     }
19     else {
20       $('#shipto :input').not(':button, :submit, :reset, :hidden').val('');
21
22       $('#action_delete_shipto').hide();
23
24       if( params.onFormSet )
25         params.onFormSet();
26     }
27   };
28
29   this.selectDelivery = function(fromDate, toDate) {
30     var deliveryId = $('#delivery_id').val();
31
32     if( !deliveryId )
33       $("#delivery").empty();
34     else {
35       var url = 'controller.pl?action=CustomerVendor/get_delivery&id='+ $('#cv_id').val() +'&db='+ $('#db').val() +'&shipto_id='+ $('#delivery_id').val();
36
37       if( fromDate && toDate )
38         url += '&delivery_from='+ fromDate +'&delivery_to='+ toDate;
39
40       $('#delivery').load(url);
41     }
42   };
43
44   this.selectContact = function(params) {
45     var contactId = $('#contact_cp_id').val();
46
47     if( contactId ) {
48       var url = 'controller.pl?action=CustomerVendor/ajaj_get_contact&id='+ $('#cv_id').val() +'&db='+ $('#db').val() +'&contact_id='+ contactId;
49
50       $.getJSON(url, function(data) {
51         var contact = data.contact;
52         for(var key in contact)
53           $(document.getElementById('contact_'+ key)).val(contact[key])
54
55         var cvars = data.contact_cvars;
56         for(var key in cvars)
57           $(document.getElementById('contact_cvar_'+ key)).val(cvars[key]);
58
59         $('#action_delete_contact').show();
60
61         if( params.onFormSet )
62           params.onFormSet();
63       });
64     }
65     else {
66       $('#contacts :input').not(':button, :submit, :reset, :hidden').val('').removeAttr('checked').removeAttr('selected');
67
68       $('#action_delete_contact').hide();
69
70       if( params.onFormSet )
71         params.onFormSet();
72     }
73
74     $('#contact_cp_title_select, #contact_cp_abteilung_select').val('');
75   };
76
77   var mapSearchStmts = [
78     '#street',
79     ', ',
80     '#zipcode',
81     ' ',
82     '#city',
83     ', ',
84     '#country'
85   ];
86
87   this.MapWidget = function(prefix)
88   {
89     var $mapSearchElements = [];
90     var $widgetWrapper;
91
92     var init = function() {
93       if( $mapSearchElements.length > 0 )
94         return;
95
96       for(var i in mapSearchStmts) {
97         var stmt = mapSearchStmts[i];
98         if( stmt.charAt(0) == '#' ) {
99           var $elem = $('#'+ prefix + stmt.substring(1));
100           if( $elem )
101             $mapSearchElements.push($elem);
102         }
103       }
104     };
105
106     var isNotEmpty = function() {
107       for(var i in $mapSearchElements)
108         if( $mapSearchElements[i].val() == '' )
109           return false;
110       return true;
111     };
112
113     var showMap = function() {
114       var searchString = "";
115
116       for(var i in mapSearchStmts) {
117         var stmt = mapSearchStmts[i];
118         if( stmt.charAt(0) == '#' ) {
119           var val = $('#'+ prefix + stmt.substring(1)).val();
120           if( val )
121             searchString += val;
122         }
123         else
124           searchString += stmt;
125       }
126
127       var url = 'https://maps.google.com/maps?q='+ encodeURIComponent(searchString);
128
129       window.open(url, '_blank');
130       window.focus();
131     };
132
133     var render = function(widgetWrapper) {
134       init();
135
136       $widgetWrapper = $(widgetWrapper);
137
138       $widgetWrapper
139         .html('<img src="image/map.png" alt="'+ kivi.t8("Map") +'" title="'+ kivi.t8("Map") +'" />')
140         .click(function() {
141           showMap();
142         });
143       for(var i in $mapSearchElements)
144         $mapSearchElements[i].keyup(function() {
145           testInputs();
146         });
147       this.testInputs();
148     };
149
150     var testInputs = function() {
151       init();
152
153       if( isNotEmpty() )
154         $widgetWrapper.show();
155       else
156         $widgetWrapper.hide();
157     };
158
159     this.render = render;
160     this.testInputs = testInputs;
161   };
162
163   this.showHistoryWindow = function(id) {
164     var xPos = (screen.width - 800) / 2;
165     var yPos = (screen.height - 500) / 2;
166     var parm = "left="+ xPos +",top="+ yPos +",width=800,height=500,status=yes,scrollbars=yes";
167     var url = "common.pl?INPUT_ENCODING=UTF-8&action=show_history&longdescription=&input_name="+ encodeURIComponent(id);
168     window.open(url, "_new_generic", parm);
169   };
170 });