144 | | |
145 | | CREATE OR REPLACE FUNCTION comp_mon_cotiz_base(integer) |
146 | | RETURNS double precision AS |
147 | | $BODY$--recibe id de comp de cliente y devuelve cotiz. de la moneda del comprobante |
148 | | select 1::float8$BODY$ |
149 | | LANGUAGE 'sql' IMMUTABLE; |
150 | | |
151 | | CREATE OR REPLACE FUNCTION art_comp_en_rd(integer, integer) |
152 | | RETURNS integer AS |
153 | | $BODY$select 0::int4$BODY$ |
154 | | LANGUAGE 'sql' IMMUTABLE; |
155 | | |
156 | | CREATE OR REPLACE FUNCTION cant_cd_rd_por_comp(integer, integer) |
157 | | RETURNS double precision AS |
158 | | 'SELECT 0::float8' |
159 | | LANGUAGE 'sql' IMMUTABLE; |
160 | | |
161 | | CREATE OR REPLACE FUNCTION cant_cd(integer, integer) |
162 | | RETURNS double precision AS |
163 | | 'SELECT 0::float8' |
164 | | LANGUAGE 'sql' IMMUTABLE; |
165 | | |
166 | | CREATE OR REPLACE FUNCTION art_rd_en_comp(integer, integer) |
167 | | RETURNS integer AS |
168 | | $BODY$select 0::int4$BODY$ |
169 | | LANGUAGE 'sql' STABLE; |
170 | | |
171 | | CREATE OR REPLACE FUNCTION art_rd_en_oc(integer, integer) |
172 | | RETURNS integer AS |
173 | | $BODY$select 0::int4$BODY$ |
174 | | LANGUAGE 'sql' STABLE; |
175 | | |
176 | | CREATE OR REPLACE FUNCTION cant_ocd_rd_por_rd(integer, integer) |
177 | | RETURNS double precision AS |
178 | | 'SELECT 0::float8' |
179 | | LANGUAGE 'sql' STABLE; |
180 | | |
181 | | CREATE OR REPLACE FUNCTION cant_rd(integer, integer) |
182 | | RETURNS double precision AS |
183 | | 'SELECT 0::float8' |
184 | | LANGUAGE 'sql' STABLE; |
185 | | |
186 | | CREATE OR REPLACE FUNCTION cant_cd_rd_por_rd(integer, integer) |
187 | | RETURNS double precision AS |
188 | | 'SELECT 0::float8' |
189 | | LANGUAGE 'sql' STABLE; |
190 | | |
191 | | /* Si el restore tiene nueve errores, está ok:WARNING: errors ignored on restore: 9 |
192 | | Son las 9 funcs. que ya existen. |
193 | | |
194 | | ASÍ EL RESTORE DEMORA 6 MINUTOS*/ |
195 | | |
196 | | '''Correr esto para agregar unos campos''' |
197 | | |
198 | | ALTER TABLE sujetos ADD COLUMN memo character varying(4096); |
199 | | DROP VIEW comp_v; |
200 | | CREATE OR REPLACE VIEW comp_v AS |
201 | | SELECT c.id_comp, c.letra, c.id_puesto, c.nro_comp, c.fecha, c.id_area, |
202 | | c.id_sujeto, c.obse, c.id_usuario, c.imp_total, |
203 | | c.obse_impre, c.id_moneda, c.estado_imp, c.fec_auto, c.obse_auto, |
204 | | c.id_usuario_auto, c.logcausas_auto, c.id_tipo_comp, |
205 | | c.pago, c.total_fiscal, c.id_vendedor, c.rem_fiscal, c.ult_modif, |
206 | | c.cotiz_base_comp, c.id_rubro_comp, c.nroz, |
207 | | c.id_comp_terceros, c.id_cp, ((COALESCE(ct.tc, ''::character |
208 | | varying)::text || COALESCE(c.letra, ''::character varying)::text) || |
209 | | '-'::text) |
210 | | || compdes(c.id_puesto, c.nro_comp)::text AS nro, m.moneda, m.signo, |
211 | | s.sujeto, a.area, s.doc AS cuit, s.direccion, s.memo, ci.condicion, |
212 | | ci.cod_cf AS id_cond_cf, ci.completra, ci.ci, l.localidad, |
213 | | sdt.tipo_doc_cf, ct.signo_comp, ct.tipo_comp, ct.tc, ct.esventa, |
214 | | cr.rubro_comp, |
215 | | s.cod_postal, p.provincia, a.id_tipo_comp_simple, cts.tipo_comp AS |
216 | | tipo_comp_simple, cp.descripcion AS descr_cp |
217 | | FROM comp c |
218 | | LEFT JOIN sujetos s ON c.id_sujeto = s.id_sujeto |
219 | | LEFT JOIN condiciones_iva ci ON s.id_condicion = ci.id_condicion |
220 | | LEFT JOIN localidades l ON s.cod_postal::text = l.id_localidad::text |
221 | | LEFT JOIN provincias p ON l.id_provincia = p.id_provincia |
222 | | LEFT JOIN areas a ON c.id_area = a.id_area |
223 | | LEFT JOIN monedas m ON c.id_moneda = m.id_moneda |
224 | | LEFT JOIN sujetos_doc_tipos sdt ON s.id_tipo_doc = sdt.id_tipo_doc |
225 | | LEFT JOIN comp_tipos ct ON c.id_tipo_comp = ct.id_tipo_comp |
226 | | LEFT JOIN comp_rubros cr ON c.id_rubro_comp = cr.id_rubro_comp |
227 | | LEFT JOIN comp_tipos cts ON a.id_tipo_comp_simple = cts.id_tipo_comp |
228 | | LEFT JOIN centros_productivos cp ON c.id_cp = cp.id_cp; |
229 | | |
230 | | |
231 | | |
232 | | |
233 | | |
234 | | /*Ejecutar después de restaurar*/ |
235 | | CREATE OR REPLACE FUNCTION comp_mon_cotiz_base(integer) |
236 | | RETURNS double precision AS |
237 | | $BODY$--recibe id de comp de cliente y devuelve cotiz. de la moneda del comprobante |
238 | | select cotiz_base_comp from comp where id_comp = $1$BODY$ |
239 | | LANGUAGE 'sql' STABLE; |
240 | | |
241 | | |
242 | | CREATE OR REPLACE FUNCTION art_comp_en_rd(integer, integer) |
243 | | RETURNS integer AS |
244 | | $BODY$select distinct rd.id_articulo from cd_rd |
245 | | left join remitos_detalles rd on cd_rd.id_rem = rd.id_remito and cd_rd.id_rem_det = rd.id_det |
246 | | where cd_rd.id_comp = $1 and cd_rd.id_comp_det = $2$BODY$ |
247 | | LANGUAGE 'sql' STABLE; |
248 | | COMMENT ON FUNCTION art_comp_en_rd(integer, integer) IS 'Dada una fila de comprobante devuelve los arts de los remitos det. asociados. Deberia ser un solo art. y el mismo que el del detalle del comp'; |
249 | | |
250 | | |
251 | | CREATE OR REPLACE FUNCTION cant_cd_rd_por_comp(integer, integer) |
252 | | RETURNS double precision AS |
253 | | 'SELECT coalesce(sum(coalesce(cant,0)),0) FROM cd_rd WHERE id_comp = $1 AND id_comp_det = $2' |
254 | | LANGUAGE 'sql' STABLE; |
255 | | |
256 | | CREATE OR REPLACE FUNCTION cant_cd(integer, integer) |
257 | | RETURNS double precision AS |
258 | | 'SELECT coalesce(cant,0) FROM comp_det WHERE id_comp = $1 AND id_det = $2' |
259 | | LANGUAGE 'sql' STABLE; |
260 | | |
261 | | CREATE OR REPLACE FUNCTION art_rd_en_comp(integer, integer) |
262 | | RETURNS integer AS |
263 | | $BODY$select distinct cd.id_articulo from cd_rd |
264 | | left join comp_det cd on cd_rd.id_comp = cd.id_comp and cd_rd.id_comp_det = cd.id_det |
265 | | where cd_rd.id_rem = $1 and cd_rd.id_rem_det = $2$BODY$ |
266 | | LANGUAGE 'sql' STABLE; |
267 | | COMMENT ON FUNCTION art_rd_en_comp(integer, integer) IS 'Dada una fila de remito devuelve los arts de comp_det asociados. Deberia ser un solo art. y el mismo que el del detalle del remito'; |
268 | | |
269 | | CREATE OR REPLACE FUNCTION art_rd_en_oc(integer, integer) |
270 | | RETURNS integer AS |
271 | | $BODY$select distinct ocd.id_articulo from ocd_rd |
272 | | left join ordenes_compra_det ocd on ocd_rd.id_oc = ocd.id_oc and ocd_rd.id_oc_det = ocd.id_det |
273 | | where ocd_rd.id_rem = $1 and ocd_rd.id_rem_det = $2$BODY$ |
274 | | LANGUAGE 'sql' STABLE; |
275 | | COMMENT ON FUNCTION art_rd_en_oc(integer, integer) IS 'Dada una fila de remito devuelve los arts de las ordenes_compra_det asociados. Deberia ser un solo art. y el mismo que el del detalle del remito'; |
276 | | |
277 | | CREATE OR REPLACE FUNCTION cant_ocd_rd_por_rd(integer, integer) |
278 | | RETURNS double precision AS |
279 | | 'SELECT coalesce(sum(coalesce(cant,0)),0) FROM ocd_rd WHERE id_rem = $1 AND id_rem_det = $2' |
280 | | LANGUAGE 'sql' STABLE; |
281 | | |
282 | | CREATE OR REPLACE FUNCTION cant_rd(integer, integer) |
283 | | RETURNS double precision AS |
284 | | 'SELECT coalesce(cant,0) FROM remitos_detalles WHERE id_remito = $1 and id_det = $2' |
285 | | LANGUAGE 'sql' STABLE; |
286 | | |
287 | | CREATE OR REPLACE FUNCTION cant_cd_rd_por_rd(integer, integer) |
288 | | RETURNS double precision AS |
289 | | 'SELECT coalesce(sum(coalesce(cant,0)),0) FROM cd_rd WHERE id_rem = $1 AND id_rem_det = $2' |
290 | | LANGUAGE 'sql' STABLE; |
291 | | |
292 | | |
293 | | |
294 | | |
295 | | DROP VIEW sujetos_v; |
296 | | CREATE OR REPLACE VIEW sujetos_v AS |
297 | | SELECT s.*, s.doc AS cuit, ci.condicion, ci.completra, |
298 | | ci.id_tipo_doc_pred, t.transporte, td.tipo_doc, l.localidad, |
299 | | le.localidad AS localidad_efec, rgt.afip_norm, l.id_provincia, |
300 | | p.provincia, ci.id_condicion_tercero, td.id_tipo_doc_tercero, |
301 | | lt.sujeto AS lug_tra, pl.listap AS listap_cli, ec.estado_civil, |
302 | | pr.profesion, c.calle AS dir_calle, pa.pais AS nacionalidad, ci.ci, |
303 | | lpad(s.id_sujeto::text, 13, 0::text) AS cod_barras |
304 | | FROM sujetos s |
305 | | LEFT JOIN localidades l ON s.cod_postal::text = l.id_localidad::text |
306 | | LEFT JOIN localidades le ON s.cod_postal_efec::text = le.id_localidad::text |
307 | | LEFT JOIN provincias p ON l.id_provincia = p.id_provincia |
308 | | LEFT JOIN transporte t ON s.id_transporte = t.id_transporte |
309 | | LEFT JOIN condiciones_iva ci ON s.id_condicion = ci.id_condicion |
310 | | LEFT JOIN ret_gan_tipos rgt ON rgt.id_rg = s.id_rg |
311 | | LEFT JOIN sujetos_doc_tipos td ON s.id_tipo_doc = td.id_tipo_doc |
312 | | LEFT JOIN sujetos lt ON s.id_lug_tra = lt.id_sujeto |
313 | | LEFT JOIN precios_listas pl ON s.id_listap_cli = pl.id_listap |
314 | | LEFT JOIN estados_civiles ec ON s.id_estado_civil = ec.id_estado_civil |
315 | | LEFT JOIN profesiones pr ON s.id_profesion = pr.id_profesion |
316 | | LEFT JOIN calles c ON s.id_calle = c.id_calle |
317 | | LEFT JOIN paises pa ON s.id_nacionalidad = pa.id_pais; |
318 | | |
319 | | |
320 | | |
321 | | |
322 | | CREATE OR REPLACE VIEW comp_combo_v AS |
323 | | SELECT NULL::integer AS id_comp, NULL::integer AS id_det, NULL::integer AS |
324 | | id_listap, NULL::integer AS id_articulo, NULL::character varying AS |
325 | | descripcion, NULL::character varying AS descrart, NULL::numeric AS precio, |
326 | | NULL::numeric AS cant, NULL::numeric AS p_unitario, NULL::numeric AS costo, |
327 | | NULL::numeric AS iva, NULL::numeric AS impint, NULL::double precision AS |
328 | | cant_en_combo, NULL::double precision AS subtotal; |
329 | | COMMENT ON VIEW comp_combo_v IS 'Tabla que se usa para enganiar al motor de |
330 | | regente para que nos cree el atributo info en el listado de componentes, es |
331 | | necesario para cuando se usan los combos y la habilidad para detallar las |
332 | | partes de los mismos'; |
333 | | CREATE OR REPLACE FUNCTION art_cant_en_combo(integer, integer) RETURNS |
334 | | double precision AS |
335 | | $BODY$--$1 idarticulo, $2 idcombo Devuelve la cantidad del art id_articulo($1) que participa en el combo $2 |
336 | | select cant from articulos_combos where id_articulo = $1 and |
337 | | id_art_combo =$2;$BODY$ |
338 | | LANGUAGE 'sql' STABLE; |
339 | | |
340 | | |
341 | | |
342 | | ALTER TABLE sujetos ADD COLUMN memo character varying(4096); |
343 | | DROP VIEW comp_v; |
344 | | CREATE OR REPLACE VIEW comp_v AS |
345 | | SELECT c.id_comp, c.letra, c.id_puesto, c.nro_comp, c.fecha, c.id_area, |
346 | | c.id_sujeto, c.obse, c.id_usuario, c.imp_total, |
347 | | c.obse_impre, c.id_moneda, c.estado_imp, c.fec_auto, c.obse_auto, |
348 | | c.id_usuario_auto, c.logcausas_auto, c.id_tipo_comp, |
349 | | c.pago, c.total_fiscal, c.id_vendedor, c.rem_fiscal, c.ult_modif, |
350 | | c.cotiz_base_comp, c.id_rubro_comp, c.nroz, |
351 | | c.id_comp_terceros, c.id_cp, ((COALESCE(ct.tc, ''::character |
352 | | varying)::text || COALESCE(c.letra, ''::character varying)::text) || |
353 | | '-'::text) |
354 | | || compdes(c.id_puesto, c.nro_comp)::text AS nro, m.moneda, m.signo, |
355 | | s.sujeto, a.area, s.doc AS cuit, s.direccion, s.memo, ci.condicion, |
356 | | ci.cod_cf AS id_cond_cf, ci.completra, ci.ci, l.localidad, |
357 | | sdt.tipo_doc_cf, ct.signo_comp, ct.tipo_comp, ct.tc, ct.esventa, |
358 | | cr.rubro_comp, |
359 | | s.cod_postal, p.provincia, a.id_tipo_comp_simple, cts.tipo_comp AS |
360 | | tipo_comp_simple, cp.descripcion AS descr_cp |
361 | | FROM comp c |
362 | | LEFT JOIN sujetos s ON c.id_sujeto = s.id_sujeto |
363 | | LEFT JOIN condiciones_iva ci ON s.id_condicion = ci.id_condicion |
364 | | LEFT JOIN localidades l ON s.cod_postal::text = l.id_localidad::text |
365 | | LEFT JOIN provincias p ON l.id_provincia = p.id_provincia |
366 | | LEFT JOIN areas a ON c.id_area = a.id_area |
367 | | LEFT JOIN monedas m ON c.id_moneda = m.id_moneda |
368 | | LEFT JOIN sujetos_doc_tipos sdt ON s.id_tipo_doc = sdt.id_tipo_doc |
369 | | LEFT JOIN comp_tipos ct ON c.id_tipo_comp = ct.id_tipo_comp |
370 | | LEFT JOIN comp_rubros cr ON c.id_rubro_comp = cr.id_rubro_comp |
371 | | LEFT JOIN comp_tipos cts ON a.id_tipo_comp_simple = cts.id_tipo_comp |
372 | | LEFT JOIN centros_productivos cp ON c.id_cp = cp.id_cp; |