| 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; |