· 8 years ago · Apr 23, 2018, 02:28 PM
1if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Man168_impr_lote_mandatos]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
2drop procedure [dbo].[Man168_impr_lote_mandatos]
3GO
4
5SET QUOTED_IDENTIFIER OFF
6GO
7SET ANSI_NULLS ON
8GO
9CREATE PROCEDURE Man168_impr_lote_mandatos
10 @pn_canmax int, @pc_tipo char(4),
11 @pvc_cod_comps varchar(500) = '', @pc_codoper char(10) = '', @pQue CHAR (1) = 'C',
12 @plDeposito bit = 0, @plPedVta tinyint = 0
13as
14
15
16/*
17/*
18drop table #detallereporte
19drop table #vencim
20*/
21
22declare @pn_canmax int, @pc_tipo char(4),
23 @pvc_cod_comps varchar(500), @pc_codoper char(10), @pQue CHAR (1),
24 @plDeposito bit = 0, @plPedVta tinyint
25
26set @pn_canmax=1
27set @pc_tipo=''
28set @pvc_cod_comps = ''
29set @pc_codoper = ' 10'
30set @pQue = 'D'
31set @plDeposito=0
32SET @plPedVta=2
33
34*/
35 /*
36
37 DESCRIPCION :
38
39 Genera los cursores para la impresion de comprobantes generados por facturaci¢n. En caso de no llegar un codigo de operación
40 puntual, genera los comprobantes con impresion en lotes pendientes de impresión. Para este ultimo caso, deben llegar con valores los parametros
41 @pn_canmax, @pc_tipo y @pvc_cod_comps.
42
43
44 PARAMETROS :
45
46 @pn_canmax : cantidad de comprobantes traidos.
47
48 @pc_tipo : contiene el codigo de reporte con el que va a imprimir y trae todos los comprobantes con impresion en lotes que lo usan.
49
50 @pvc_comps : es una cadena de comprobantes seleccionados separados de comas que vamos a imprimir. Dentro de los que usan el
51 reporte del parametro anterior, trae solo los comprobantes seleccionados aqui o todos si esta vac¡o.
52
53 @pc_codoper : si se imprime un comprobante puntual, usado gralmente cuando imprimimos desde el facturador un comprobante que
54 no tiene impresion en lotes.
55
56 @pQue : si es 'C' devuelve los datos para la consulta de comprobantes impresion en lotes, si es 'D' devuelve los datos para el detalle.
57
58 @plDeposito : trae detalles desde tablas del deposito.
59
60 @plPedVtas : trae detalles desde tablas del pedido de venta.
61
62 Cambios:
63
64 Gabriel: 11/12/08 Cambie la busqueda del bulto por defecto para mostrar
65 el bto de reposicion en el RTO de salida
66
67 Claudio: 03/11/10 Para que devuelva Ordenes de Pago
68
69 Gabriel: 10/12/12 Agregado de datos de CUIT y agente de percep IIBB del proveedor
70
71
72 EXEC almacor.dbo.Man168_impr_lote_mandatos 1, '', '', '_I9A4TMCGT', 'W', 0, 0
73 EXEC almacor.dbo.Man168_impr_lote_mandatos 1, 'MAND', '', ' 6', 'C', 0, 2
74 EXEC Man168_impr_lote_mandatos 1, '', '', ' 13', 'D', 0, 2
75
76 */
77
78 DECLARE @FormatoCtaCte bit
79 SET @FormatoCtaCte=0
80
81 SELECT @FormatoCtaCte=1
82 from comproba a, compproc b
83 where a.cod_form = @pc_tipo and a.cod_comp = b.cod_comp and
84 b.tipo in ('M','O','R')
85
86 IF @pc_codoper<>''
87 SET @FormatoCtaCte=0
88
89 DECLARE @Esmandataria bit
90 SET @Esmandataria = 0
91 SELECT @Esmandataria = CASE WHEN UPPER(LTRIM(CONT)) = 'T' THEN 1 ELSE 0 END
92 FROM PARSIS WHERE CODI = 'REFACTURAC'
93
94 /* Si en la factura de ventas se agregan automaticamente los componentes de una receta */
95 DECLARE @AgregaComp bit
96 SET @AgregaComp = 0
97 IF Exists(SELECT CODI FROM PARSIS WHERE CODI = 'FACTARTAGR' AND CONT = 'T')
98 SET @AgregaComp = 1
99
100 Declare @Macro varchar(5000)
101
102 IF @pQue = 'C' OR @pQue = 'F' -- desde impresor de pdf
103 BEGIN
104
105 SET @Macro = ''
106
107 IF @plDeposito = 1 -- desde el deposito
108 SET @Macro = '
109 SELECT dp.fecha, dp.tico, dp.ptovta+'' ''+dp.numero as comprobante, ag.codigo, ag.razo, 0 as neto, dp.operacion as cod_oper, ''C'' as codiva
110 ,''X'' as letra, '' '' as cod_suc
111 FROM Cabemovi dp,
112 Agenda ag
113 WHERE dp.operacion = ''' + @pc_codoper + ''' AND
114 ag.codigo = dp.destino '
115
116 IF @plPedVta = 1 -- desde el pedido de venta/presupuesto
117 SET @Macro = '
118 SELECT pe.fecha, ''PEDVTA'' as Cod_comp, pe.PtoVta+'' ''+pe.NroNp as comprobante, pe.codigo,
119 ag.razo, 0 as neto, pe.NroNp as cod_oper, LEFT(ISNULL(ag.timpu, ''C''), 1) as cod_iva
120 ,''X'' as letra, '' '' as cod_suc
121 FROM PEDVTA pe
122 LEFT JOIN Agenda ag ON pe.codigo = ag.codigo
123 WHERE pe.NroNp = ''' + @pc_codoper + ''''
124
125 IF @plPedVta = 2 -- desde movimientos de contenedores
126 SET @Macro = '
127 SELECT top 1 CONVERT(DATETIME, GETDATE(), 103) as fecha, ''REMITO'' as cod_comp, ''0000 ''+replace(str(c.NCODOPER,8),'' '',''0'') as comprobante,
128 c.cCodigo AS codigo, a.razo, 0 as neto, str(c.ncodoper,10) as cod_oper, LEFT(ISNULL(a.timpu, ''C''), 1) as cod_iva
129 ,''X'' as letra, '' '' as cod_suc
130 FROM contenedores_cabecera c
131 left join agenda a on a.codigo = c.cCodigo
132 where c.ncodoper = ' + @pc_codoper
133
134 IF @Macro = '' -- Normal desde el Compprim
135 BEGIN
136
137 IF @FormatoCtaCte=0
138 SET @Macro = '
139 SELECT DISTINCT TOP '+STR(@pn_canmax,10)+'
140 cp.fecha, cp.cod_comp, cp.ptovta+'' ''+ cp.numero as comprobante, cp.codigo, cp.razo, cp.neto, cp.cod_oper, cp.codiva
141 ,cp.letra, cp.cod_suc
142 FROM compprim cp,
143 comproba cb,
144 tiporepo tr
145 WHERE cb.cod_comp = cp.cod_comp and ' +
146 CASE WHEN @pQue = 'C' and LTRIM(@pc_codoper) = '' THEN 'Isnull(cp.impreso, 0) =0 AND ' Else '' END+
147 'Isnull(cp.oper_anul,'''') = '''' AND ' +
148 CASE WHEN LTRIM(@pc_codoper) = '' THEN ' cb.implotes = 1 AND ' ELSE ' cp.cod_oper = '''+@pc_codoper+''' AND ' END + '
149 '''+@pvc_cod_comps+''' like '''+Case When @pvc_cod_comps = '' THEN '%'+@pvc_cod_comps+'%''' ELSE '%''+cb.cod_comp+''%''' END + ' AND
150 tr.cod_rep = cb.cod_form and tr.cod_rep = '''+@pc_tipo+'''
151 ORDER BY cp.fecha, cp.codigo'
152 ELSE
153 SET @Macro = '
154 SELECT
155 cp.fecha, cp.cod_comp, cp.ptovta+'' ''+ cp.numero as comprobante, cp.codigo, cp.razo, cp.neto, cp.cod_oper, cp.codiva
156 ,cp.letra,cp.cod_suc
157 FROM compprim cp,
158 relfaman rf,
159 comproba cb,
160 tiporepo tr
161 WHERE cb.cod_comp = cp.cod_comp AND Isnull(cp.oper_anul,'''') = '''' AND
162 cp.cod_oper = rf.oper_mand and
163 '''+@pvc_cod_comps+''' like '''+Case When @pvc_cod_comps = '' THEN '%'+@pvc_cod_comps+'%''' ELSE '%''+rf.oper_fact+''%''' END + ' AND
164 tr.cod_rep = cb.cod_form and tr.cod_rep = '''+@pc_tipo+'''
165 ORDER BY cp.fecha, cp.razo, cp.codigo'
166
167
168 END
169
170 EXEC(@Macro)
171
172
173 SELECT 'Fecha','Compr.'+@pc_codoper, 'Número', 'Cód.Ag.', 'Razón Social@Mwidth=225', 'Importe', ''
174
175 SELECT 'Fecha, Razón Social, Código y Numero ## DTOS(fecha)+razo+codigo+comprobante' --,'N£mero ## comprobante', 'Importe ## str(Neto,20,3)'
176
177 RETURN
178
179 END
180
181
182 IF @pQue = '' -- TRAIGO DATOS PARA EL CONTROL DEL REPORTE
183 BEGIN
184
185 IF @plPedVta = 1
186 SELECT Isnull(tr.nom_arch,'') as nom_arch, Isnull(tr.linxdet,0) as linxdet,
187 Isnull(cb.cod_form,'') as cod_form, Isnull(tr.copias,0) as copias
188 FROM Comproba cb
189 LEFT JOIN tiporepo tr on tr.cod_rep = cb.cod_form
190 WHERE cb.cod_comp = 'PEDVTA'
191
192 IF @plPedVta = 2
193 SELECT Isnull(tr.nom_arch,'') as nom_arch, Isnull(tr.linxdet,0) as linxdet,
194 Isnull(cb.cod_form,'') as cod_form, Isnull(tr.copias,0) as copias
195 FROM Comproba cb
196 LEFT JOIN tiporepo tr on tr.cod_rep = cb.cod_form
197 WHERE cb.cod_comp = 'REMCTN'
198
199 IF @plDeposito = 1
200 SELECT Isnull(tr.nom_arch,'') as nom_arch, Isnull(tr.linxdet,0) as linxdet,
201 Isnull(cb.cod_form,'') as cod_form, Isnull(tr.copias,0) as copias
202 FROM cabemovi dp
203 LEFT JOIN comproba cb on cb.cod_comp = dp.tico
204 LEFT JOIN tiporepo tr on tr.cod_rep = cb.cod_form
205 WHERE dp.operacion = @pc_codoper
206
207
208
209 IF @plDeposito = 0 AND @plPedVta = 0
210 SELECT Isnull(tr.nom_arch,'') as nom_arch, Isnull(tr.linxdet,0) as linxdet,
211 Isnull(cb.cod_form,'') as cod_form, Isnull(tr.copias,0) as copias
212 FROM compprim cp
213 LEFT JOIN comproba cb on cb.cod_comp = cp.cod_comp
214 LEFT JOIN tiporepo tr on tr.cod_rep = cb.cod_form
215 WHERE cp.cod_oper = @pc_codoper
216
217 RETURN
218 END
219
220 /* ARMO DETALLE DE LA IMPRESION DE COMPROBANTES EN LOTES */
221
222 Create table #detallereporte ( fecha datetime, cod_comp char(6), ptovta char(4), numero char(8),
223 codigo char(13), razo char(50), NETO numeric (22,3), letra char(1), dire char(50), cuit char(13),
224 codiva char(1), cod_suc char(4), factura char(15), fec_prov char(12), proveedor char(70), cNotapedido char(25),
225 des_comp char(50), item int, item_c int, tipo_item char(1), dato char(10), bulto char(6), Costo char(20), vimpint char(20),
226 Dcto char(20), Pcio_Espec char(6), Pcio_Vta char(20), cantidad char(20), Importe char(20), Descri char(50), marca char(30), unimed char(7),
227 npro char(15), cod_oper char(10), cod_pago int, nom_arch char(8), linxdet int, cod_form char(4), copias int,
228 GRAV1 numeric (22,3), GRAV2 numeric (22,3),EXENTO numeric (22,3),
229 DESCU numeric (22,3),IMPU1 numeric (22,3),IMPU2 numeric (22,3),IMPU3 numeric (22,3),
230 IMPU4 numeric (22,3), IMPU5 numeric (22,3),IMPU6 numeric (22,3), IMPU7 numeric (22,3),
231 IMPU8 numeric (22,3), IMPU9 numeric (22,3), IMPU10 numeric (22,3),IMPU11 numeric (22,3),
232 IMPU12 numeric (22,3), RETEN1 numeric (22,3),RETEN2 numeric (22,3),RETEN3 numeric (22,3),
233 RETEN4 numeric (22,3), RETEN5 numeric (22,3), RETEN6 numeric (22,3) ,
234 alicuota1 NUMERIC(5,2) , alicuota2 NUMERIC(5,2) , alicuota3 NUMERIC(5,2), enganche char(10),
235 Localidad CHAR(25), Provincia CHAR(25), IngBrutos CHAR(12), CONDICION CHAR(50), barr numeric(13), Barrafip char(45),
236 NumAfip char(40), cod_depo CHAR(3), cusuario char(10), nPagina numeric(5),
237 cuit_prov CHAR(13), Ag_Percep_Ib CHAR(10), cCodAfip CHAR(3), cDesAfip CHAR(15), cBarraAfip CHAR(45) ,
238 cCae CHAR(14) , cFecVtoCae CHAR(10), tiva CHAR(50), nOrden INT IDENTITY(1,1) ,
239 nVendedor SMALLINT, cVendedor CHAR(35)
240 )
241
242 Create Table #Vencim (cod_oper char(10), vencim int, fech_vcto datetime)
243
244 /* variables para alicuotas si es deposito o pedido de venta */
245 DECLARE @Alicuota1 Numeric(7,2), @Alicuota2 Numeric(7,2), @Alicuota3 Numeric(7,2)
246 SET @Alicuota1 = 0 ; SET @Alicuota2 = 0 ; SET @Alicuota3 = 0
247
248 IF EXISTS(SELECT cod_oper FROM compprim WHERE cod_oper = @pc_codoper AND cod_comp IN ('PRESUP','CONPRE')
249 AND codiva <> 'C')
250 UPDATE compprim SET codiva='C' WHERE cod_oper = @pc_codoper
251
252
253 /* Cargo el detalle del comprobante */
254 /* Parche para blangino que toma la unidad de bulto original, ya que en detamovi estÂ
255 unitario y necesitamos el bulto para mostrar por bultos en el remito */
256 IF @plDeposito = 0 AND @plPedVta = 0
257 BEGIN
258
259 INSERT #detallereporte ( fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit ,
260 codiva , cod_suc , factura , fec_prov , proveedor , cNotapedido, des_comp , item , item_c , tipo_item , dato , bulto , Costo , vimpint,
261 Dcto , Pcio_Espec, Pcio_Vta , cantidad , Importe, Descri , marca , unimed , npro , cod_oper , cod_pago, nom_arch , linxdet ,
262 cod_form , copias , GRAV1, GRAV2 ,EXENTO , DESCU ,IMPU1 ,IMPU2 ,IMPU3 , IMPU4 , IMPU5 ,IMPU6 , IMPU7 , IMPU8 , IMPU9 , IMPU10 ,
263 IMPU11 , IMPU12 ,RETEN1 ,RETEN2 ,RETEN3 , RETEN4 ,RETEN5 , RETEN6 , alicuota1 , alicuota2 , alicuota3, enganche ,
264 Localidad , Provincia , IngBrutos , CONDICION , barr , Barrafip , NumAfip , cod_depo, cusuario, nPagina ,
265 cCodAfip, cDesAfip, cBarraAfip, cCae, cFecVtoCae, nVendedor, cVendedor )
266 SELECT cp.fecha, cp.cod_comp, cp.ptovta, cp.numero, cp.codigo, cp.razo, cp.neto,
267 cp.letra, cp.dire, cp.cuit, cp.codiva, cp.cod_suc,'','','','', cb.des_comp, de.item,
268 dc.item, de.tipo_item, de.dato,
269 CASE WHEN ( cp.cod_comp='REMVTA' AND left(Isnull(tr.nom_arch,''),7)='DESPBLA' ) OR (cp.cod_comp='PRESUP' AND Isnull(tr.nom_arch,'')='PresuBLA') THEN
270 (SELECT TOP 1 bultos FROM (
271 SELECT BULTOS,1 AS orden FROM bultos00 WHERE arti=ar.arti AND LEFT(LTRIM(STR(barr,14)),4)='1111'
272 UNION SELECT unibul AS bultos,2 AS orden FROM articulo WHERE arti=ar.arti
273 ) xx ORDER BY orden)
274 ELSE de.bulto END AS bulto,
275 STR(CASE WHEN cp.codiva IN ('C','E','N','M') THEN
276 CASE WHEN cc.tipo = 'C' THEN de.costo ELSE de.PCIO_VTA END
277 + de.impu1 + de.impu2 + de.impu3 + de.impu4 + de.dcto ELSE CASE WHEN cc.tipo = 'C' THEN de.costo ELSE de.PCIO_VTA END END,20,2),
278 str(de.impu4,20,2),
279 -- para blangino y yofre norte mostramos el descuento en%
280 CASE WHEN cp.cod_comp='PRESUP' AND (Isnull(tr.nom_arch,'') IN ('PresuBLA', 'PresuYOF')) THEN str((abs(dcto)/(pcio_vta)*100),6,2)+'%' ELSE
281 CASE WHEN cp.codiva IN ('C','E','N','M') THEN '0%' ELSE STR(de.dcto,3,1)+'%' END END, de.pcio_espec,
282
283 CASE WHEN cp.cod_comp='PRESUP' OR cp.cod_comp = 'CONPRE' then de.pcio_vta + de.impu1 + de.impu2 + de.impu3 + de.impu4 + de.dcto else de.pcio_vta END,
284 CASE WHEN ( cp.cod_comp='REMVTA' AND LEFT(Isnull(tr.nom_arch,''),7)='DESPBLA') OR ( cp.cod_comp='PRESUP' AND Isnull(tr.nom_arch,'')IN ('PresuBLA')) THEN
285 STR(CONVERT(NUMERIC(15,3),cantidad)/CONVERT(INT,(SELECT TOP 1 bultos FROM (
286 SELECT BULTOS,1 AS orden FROM bultos00 WHERE arti=ar.arti AND LEFT(LTRIM(STR(barr,14)),4)='1111'
287 UNION SELECT unibul AS bultos,2 AS orden FROM articulo WHERE arti=ar.arti
288 ) xx ORDER BY orden) ) ,20,3) ELSE
289 de.cantidad END AS cantidad,
290 STR(CASE WHEN cp.codiva IN ('C','E','N','M') THEN ( CASE WHEN cc.tipo = 'C' THEN de.costo ELSE de.PCIO_VTA END + de.impu1 + de.impu2 + de.impu3 + de.impu4 + de.dcto ) * de.cantidad * CONVERT(INT, de.bulto)
291 ELSE CASE WHEN @Esmandataria = 1 THEN de.importe else CASE WHEN cc.tipo = 'C' THEN de.costo + de.dcto ELSE de.PCIO_VTA + de.dcto END * de.cantidad * CONVERT(INT, de.bulto) END END ,20,3),
292 ISNULL(ar.descri, ISNULL(dc.Descri, '')), ISNULL(ar.marca, ''),
293 ISNULL(ar.unimed, ''), ISNULL(ar.npro, ''), cp.cod_oper, cp.cod_pago,
294 Isnull(tr.nom_arch,''), Isnull(tr.linxdet,0), cb.cod_form, Isnull(tr.copias,0),
295 cp.GRAV1, cp.GRAV2, cp.EXENTO, cp.DESCU, cp.IMPU1, cp.IMPU2, cp.IMPU3, cp.IMPU4, cp.IMPU5, cp.IMPU6,
296 cp.IMPU7, cp.IMPU8, cp.IMPU9, cp.IMPU10, cp.IMPU11, cp.IMPU12, cp.RETEN1, cp.RETEN2, cp.RETEN3,
297 cp.RETEN4, cp.RETEN5, cp.RETEN6,
298- CASE WHEN AR.TIMPU IS NULL THEN -- UN CONCEPTO
299 CASE WHEN DE.IMPU1 <> 0 THEN CP.ALICUOTA1 WHEN DE.IMPU2 <> 0 THEN CP.ALICUOTA2 WHEN DE.IMPU3 <> 0 THEN CP.ALICUOTA3 ELSE 0 END
300 ELSE
301 isnull((SELECT ax.valor FROM ANEXOS AX WHERE AX.TIP_CLF = 'IA' and ax.COD_CLF = 1 and ax.COD_ANX = 2 and AX.COD_DAT = AR.timpu), isnull(cp.Alicuota1, 0)) END
302 , isnull(cp.alicuota2, 0), isnull(cp.alicuota3, 0), cp.enganche, '', '', '',
303 '', ISNULL(ba.barr, 0),'','' , ' ',' ', 0
304 ,CASE WHEN cp.letra = 'B' THEN CASE WHEN SIGN(cp.neto) = 1 then '06' else '08' END ELSE rtrim(cb.cod_citi) END AS cCodAfip
305 ,cb.des_iva AS cDesAfip
306 , case when isnumeric(isnull(left(replace(cx.nro_tarj,'/',''),4), ''))=0 or isnumeric(cx.oper_micard) = 0 then ' ' else
307 LEFT(REPLACE((SELECT TOP 1 cont FROM parsis WHERE codi=' 34'),'-',''),11)+CASE WHEN cp.letra = 'B' THEN CASE WHEN SIGN(cp.neto) = 1 then '06' else '08' END ELSE rtrim(cb.cod_citi) END
308 +cp.PTOVTA+LEFT(ISNULL(cx.oper_micard,'00000000000000'),14)+LEFT(ISNULL(cx.nro_tarj,'20150101'),8)
309 +STR(.dbo.Funcion_Digito_Verificador(LEFT(REPLACE((SELECT TOP 1 cont FROM parsis WHERE codi=' 34'),'-',''),11)
310 +CASE WHEN cp.letra = 'B' THEN CASE WHEN SIGN(cp.neto) = 1 then '06' else '08' END ELSE rtrim(cb.cod_citi) END+cp.ptovta+LEFT(ISNULL(cx.oper_micard,'00000000000000'),14)+LEFT(ISNULL(cx.nro_tarj,'20150101'),8)),1)
311 end
312 AS cBarraAfip
313 , LEFT(ISNULL(cx.oper_micard,'00000000000000'),14) AS cCae
314 , case when isnumeric(isnull(left(replace(cx.nro_tarj,'/',''),4), ''))=0 then '' else SUBSTRING(ISNULL(cx.nro_tarj,'20150101'),7,2)+'/'+SUBSTRING(ISNULL(cx.nro_tarj,'20150101'),5,2)+'/'+SUBSTRING(ISNULL(cx.nro_tarj,'20150101'),1,4) end AS cFecVtoCae
315 , ISNULL(cp.vendedor,0) AS nVendedor
316 , ISNULL(ven.nomven_ven,SPACE(35)) AS cVendedor
317 FROM compprim cp
318 LEFT JOIN detacomp de
319 ON de.cod_oper = cp.cod_oper
320 LEFT JOIN articulo ar
321 ON ar.arti = de.dato
322 LEFT JOIN (Select arti, max(barr) as barr from codbarra group by arti) ba
323 ON ar.arti = ba.arti
324 LEFT JOIN detaconc dc
325 ON dc.cod_oper = de.cod_oper and dc.item_det = de.item
326 LEFT JOIN comproba cb
327 ON cb.cod_comp = cp.cod_comp
328 LEFT JOIN tiporepo tr
329 ON tr.cod_rep = cb.cod_form
330 LEFT JOIN (SELECT DISTINCT Tipo, cod_comp FROM COMPPROC) CC
331 ON cp.cod_comp = cc.cod_comp
332 LEFT JOIN compprimax cx
333 ON cp.cod_oper = cx.cod_oper
334 AND cx.nitem = 1
335 LEFT JOIN t_vendedor ven
336 ON cp.vendedor = ven.codven_ven
337 WHERE cp.cod_oper = @pc_codoper AND
338 ( @AgregaComp = 1 OR ( @AgregaComp = 0 AND NOT (de.tipo_item = 'A' AND de.importe = 0 ) ) )
339 ORDER BY CASE -- Ordenamiento segun definicion en el Comprobante
340 WHEN cb.nOrdImpre = 0 THEN str(de.item,10)+str(isnull(dc.item,0),10)
341 WHEN cb.nOrdImpre = 1 THEN de.dato+str(de.item,10)+str(isnull(dc.item,0),10)
342 WHEN cb.nOrdImpre = 2 THEN ISNULL(ar.npro,' ')+str(de.item,10)+str(isnull(dc.item,0),10)
343 WHEN cb.nOrdImpre = 3 THEN str(ISNULL(ba.barr,0),13)+str(de.item,10)+str(isnull(dc.item,0),10)
344 WHEN cb.nOrdImpre = 4 THEN ISNULL(ar.marca,SPACE(30))+str(de.item,10)+str(isnull(dc.item,0),10)
345 WHEN cb.nOrdImpre = 5 THEN ISNULL(ar.descri,SPACE(50))+str(de.item,10)+str(isnull(dc.item,0),10)
346 END
347
348
349
350 IF EXISTS(SELECT * FROM #detalleReporte WHERE impu11 <> 0)
351 BEGIN
352 -- Agregamos linea en blanco
353 /*
354 INSERT INTO #detalleReporte ( fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit ,
355 codiva , cod_suc , factura , fec_prov , proveedor , cNotapedido, des_comp , item , item_c , tipo_item , dato , bulto , Costo , vimpint,
356 Dcto , Pcio_Espec, Pcio_Vta , cantidad , Importe, Descri , marca , unimed , npro , cod_oper , cod_pago, nom_arch , linxdet ,
357 cod_form , copias , GRAV1, GRAV2 ,EXENTO , DESCU ,IMPU1 ,IMPU2 ,IMPU3 , IMPU4 , IMPU5 ,IMPU6 , IMPU7 , IMPU8 , IMPU9 , IMPU10 ,
358 IMPU11 , IMPU12 ,RETEN1 ,RETEN2 ,RETEN3 , RETEN4 ,RETEN5 , RETEN6 , alicuota1 , alicuota2 , alicuota3, enganche ,
359 Localidad , Provincia , IngBrutos , CONDICION , barr , Barrafip , NumAfip , cod_depo, cusuario, nPagina ,
360 cCodAfip, cDesAfip, cBarraAfip, cCae, cFecVtoCae )
361 SELECT TOP 1 fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit
362 , codiva, cod_suc, factura, fec_prov, proveedor, cNotapedido, des_comp
363 , 1000 AS item, 1 AS item_c, 'C' AS tipo_item, '' AS dato
364 , 1 AS bulto, STR(impu11,20,2) AS costo,'0.00' as vimpint, 0 AS dcto, 0 AS pcio_espec
365 , impu11 AS pcio_vta
366 , 1 AS cantidad, STR(impu11,20,3) AS importe, '' AS descri
367 , '' AS marca, '' AS unimed, '' AS npro, cod_oper, cod_pago,nom_arch,linxdet
368 , cod_form, copias
369 ,cp.GRAV1, cp.GRAV2, cp.EXENTO, cp.DESCU, cp.IMPU1, cp.IMPU2, cp.IMPU3, cp.IMPU4, cp.IMPU5, cp.IMPU6,
370 cp.IMPU7, cp.IMPU8, cp.IMPU9, cp.IMPU10, cp.IMPU11, cp.IMPU12, cp.RETEN1, cp.RETEN2, cp.RETEN3,
371 cp.RETEN4, cp.RETEN5, cp.RETEN6, cp.alicuota1, cp.alicuota2, cp.alicuota3, cp.enganche, '', '', '',
372 '', 0,'','' , ' ',' ', 0 ,
373 cp.cCodAfip, cp.cDesAfip, cp.cBarraAfip, cp.cCae, cp.cFecVtoCae
374 FROM #detallereporte cp
375 ORDER BY norden
376 */
377
378 INSERT INTO #detalleReporte ( fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit ,
379 codiva , cod_suc , factura , fec_prov , proveedor , cNotapedido, des_comp , item , item_c , tipo_item , dato , bulto , Costo , vimpint,
380 Dcto , Pcio_Espec, Pcio_Vta , cantidad , Importe, Descri , marca , unimed , npro , cod_oper , cod_pago, nom_arch , linxdet ,
381 cod_form , copias , GRAV1, GRAV2 ,EXENTO , DESCU ,IMPU1 ,IMPU2 ,IMPU3 , IMPU4 , IMPU5 ,IMPU6 , IMPU7 , IMPU8 , IMPU9 , IMPU10 ,
382 IMPU11 , IMPU12 ,RETEN1 ,RETEN2 ,RETEN3 , RETEN4 ,RETEN5 , RETEN6 , alicuota1 , alicuota2 , alicuota3, enganche ,
383 Localidad , Provincia , IngBrutos , CONDICION , barr , Barrafip , NumAfip , cod_depo, cusuario, nPagina ,
384 cCodAfip, cDesAfip, cBarraAfip, cCae, cFecVtoCae, nVendedor, cVendedor )
385 SELECT TOP 1 fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit
386 , codiva, cod_suc, factura, fec_prov, proveedor, cNotapedido, des_comp
387 , 1000 AS item, 1 AS item_c, 'C' AS tipo_item, '' AS dato
388 , 1 AS bulto, ' 0.000' AS costo,' ' as vimpint, 0 AS dcto, 0 AS pcio_espec
389 , ' 0.000' AS pcio_vta
390 , ' 0.000' AS cantidad, ' ' AS importe, '' AS descri
391 , '' AS marca, '' AS unimed, '' AS npro, cod_oper, cod_pago,nom_arch,linxdet
392 , cod_form, copias
393 ,cp.GRAV1, cp.GRAV2, cp.EXENTO, cp.DESCU, cp.IMPU1, cp.IMPU2, cp.IMPU3, cp.IMPU4, cp.IMPU5, cp.IMPU6,
394 cp.IMPU7, cp.IMPU8, cp.IMPU9, cp.IMPU10, cp.IMPU11, cp.IMPU12, cp.RETEN1, cp.RETEN2, cp.RETEN3,
395 cp.RETEN4, cp.RETEN5, cp.RETEN6, cp.alicuota1, cp.alicuota2, cp.alicuota3, cp.enganche, '', '', '',
396 '', 0,'','' , ' ',' ', 0 ,
397 cp.cCodAfip, cp.cDesAfip, cp.cBarraAfip, cp.cCae, cp.cFecVtoCae, cp.nVendedor, cp.cVendedor
398 FROM #detallereporte cp
399 ORDER BY norden
400
401
402 -- Agregamos linea con Comisión
403 INSERT INTO #detalleReporte ( fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit ,
404 codiva , cod_suc , factura , fec_prov , proveedor , cNotapedido, des_comp , item , item_c , tipo_item , dato , bulto , Costo , vimpint,
405 Dcto , Pcio_Espec, Pcio_Vta , cantidad , Importe, Descri , marca , unimed , npro , cod_oper , cod_pago, nom_arch , linxdet ,
406 cod_form , copias , GRAV1, GRAV2 ,EXENTO , DESCU ,IMPU1 ,IMPU2 ,IMPU3 , IMPU4 , IMPU5 ,IMPU6 , IMPU7 , IMPU8 , IMPU9 , IMPU10 ,
407 IMPU11 , IMPU12 ,RETEN1 ,RETEN2 ,RETEN3 , RETEN4 ,RETEN5 , RETEN6 , alicuota1 , alicuota2 , alicuota3, enganche ,
408 Localidad , Provincia , IngBrutos , CONDICION , barr , Barrafip , NumAfip , cod_depo, cusuario, nPagina ,
409 cCodAfip, cDesAfip, cBarraAfip, cCae, cFecVtoCae, nVendedor, cVendedor )
410 SELECT TOP 1 fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit
411 , codiva, cod_suc, factura, fec_prov, proveedor, cNotapedido, des_comp
412 , 1000 AS item, 1 AS item_c, 'C' AS tipo_item, 'COMISI' AS dato
413 , 1 AS bulto, STR(impu11,20,2) AS costo,'0.00' as vimpint, 0 AS dcto, 0 AS pcio_espec
414 , impu11 AS pcio_vta
415 , 1 AS cantidad, STR(impu11,20,3) AS importe
416 , LEFT('Comisión Gestión Coop.-Cat:' +
417 (SELECT ISNULL(RTRIM(descri)+' ('+LTRIM(STR(valor,6,2))+'%)','') AS categoria
418 FROM DATCLASI dc
419 LEFT JOIN anexos ax
420 ON dc.tip_clf = ax.tip_clf AND dc.cod_clf = ax.cod_clf AND LEFT(dc.cod_dat,1) = LEFT(ax.cod_dat,1)
421 WHERE dc.tip_clf ='CG' AND dc.cod_clf=1
422 AND LEFT(dc.cod_dat,1) IN (SELECT SUBSTRING(clasif,1,1) FROM agenda WHERE codigo=STR(cp.codigo,13)
423 )),50)
424 AS descri
425 , '' AS marca, '' AS unimed, '' AS npro, cod_oper, cod_pago,nom_arch,linxdet
426 , cod_form, copias
427 ,cp.GRAV1, cp.GRAV2, cp.EXENTO, cp.DESCU, cp.IMPU1, cp.IMPU2, cp.IMPU3, cp.IMPU4, cp.IMPU5, cp.IMPU6,
428 cp.IMPU7, cp.IMPU8, cp.IMPU9, cp.IMPU10, cp.IMPU11, cp.IMPU12, cp.RETEN1, cp.RETEN2, cp.RETEN3,
429 cp.RETEN4, cp.RETEN5, cp.RETEN6, cp.alicuota1, cp.alicuota2, cp.alicuota3, cp.enganche, '', '', '',
430 '', 0,'','' , ' ',' ',0,
431 cp.cCodAfip, cp.cDesAfip, cp.cBarraAfip, cp.cCae, cp.cFecVtoCae, cp.nVendedor, cp.cVendedor
432 FROM #detallereporte cp
433 ORDER BY norden
434
435 UPDATE #detallereporte SET grav1 = grav1 + impu11 , impu1 = impu1+impu12
436
437
438 END
439
440
441 END
442
443--DATE #Detallereporte SET cantidad = STR(CONVERT(NUMERIC(15,3),cantidad)/CONVERT(INT,bulto) ,20,3)
444
445 ELSE -- Alicuotas a mostrar si es por deposito o pedido de venta
446 SELECT @Alicuota1 = impuesto1, @Alicuota2 = impuesto2, @Alicuota3 = impuesto3
447 FROM DEFIIMPU
448 WHERE impuesto1<>0 and impuesto2 <> 0 and impuesto3 <> 0
449
450 IF @PlDeposito = 1
451 INSERT #detallereporte -- se consolidan las partidas para que salga 1 x art.
452 ( fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit ,
453 codiva , cod_suc , factura , fec_prov , proveedor , cNotapedido, des_comp , item , item_c , tipo_item , dato , bulto , Costo , vimpint,
454 Dcto , Pcio_Espec, Pcio_Vta , cantidad , Importe, Descri , marca , unimed , npro , cod_oper , cod_pago, nom_arch , linxdet ,
455 cod_form , copias , GRAV1, GRAV2 ,EXENTO , DESCU ,IMPU1 ,IMPU2 ,IMPU3 , IMPU4 , IMPU5 ,IMPU6 , IMPU7 , IMPU8 , IMPU9 , IMPU10 ,
456 IMPU11 , IMPU12 ,RETEN1 ,RETEN2 ,RETEN3 , RETEN4 ,RETEN5 , RETEN6 , alicuota1 , alicuota2 , alicuota3, enganche ,
457 Localidad , Provincia , IngBrutos , CONDICION , barr , Barrafip , NumAfip , COD_DEPO, cusuario, nPagina )
458 SELECT dp.fecha, dp.tico, dp.ptovta, dp.numero, ag.codigo, ag.razo, 0 as neto,
459 'X' as letra, ag.dire, ag.cuit, LEFT(ag.Timpu,1) AS codiva,
460 ' 0' as cod_suc,'','','','', cb.des_comp, 1 as item, 0 as itemc,
461 'A' AS tipo_item, de.articulo as dato, de.bulto, de.costou as costo,'0.00' as vimpint,
462 0 as dcto, 0 as pcio_espec, preciou as pcio_vta, sum(de.cantidad),
463 sum(de.cantidad) * de.costou * CONVERT(INT,de.bulto) as importe,
464 ISNULL(ar.descri,''), ISNULL(ar.marca, ''),
465 ISNULL(ar.unimed, ''), ISNULL(ar.npro, ''), dp.operacion as cod_oper,
466 0 as cod_pago, Isnull(tr.nom_arch,''), Isnull(tr.linxdet,0), cb.cod_form, Isnull(tr.copias,0),
467 0 as GRAV1, 0 as GRAV2, 0 as EXENTO, 0 as DESCU, 0 as IMPU1, 0 as IMPU2,
468 0 as IMPU3, 0 as IMPU4, 0 as IMPU5, 0 as IMPU6,
469 0 as IMPU7, 0 as IMPU8, 0 as IMPU9, 0 as IMPU10, 0 as IMPU11, 0 as IMPU12,
470 0 as RETEN1, 0 as RETEN2, 0 as RETEN3,
471 0 as RETEN4, 0 as RETEN5, 0 as RETEN6, @Alicuota1 as alicuota1, @Alicuota2 as alicuota2, @Alicuota3 as alicuota3,
472 '' as enganche, '', '', '', '',
473 case when ltrim(ISNULL(de.barra,'0'))='' then '0' else ISNULL(de.barra,'0') end,'','' ,
474 de.cod_depo, ' ', 0
475 FROM cabemovi dp
476 LEFT JOIN Agenda ag on ag.codigo = dp.destino
477 LEFT JOIN detamovi de on
478 DE.COD_DEPO = dp.COD_DEPO AND DE.TIPOCOMP = dp.TIPOCOMP AND
479 DE.FECHA = dp.FECHA AND DE.TICO = dp.TICO AND
480 DE.PTOVTA = dp.PTOVTA AND DE.NUMERO = dp.NUMERO AND
481 DE.PROVEEDOR = dp.PROVEEDOR
482 LEFT JOIN articulo ar on ar.arti = de.articulo
483 LEFT JOIN comproba cb on cb.cod_comp = dp.tico
484 LEFT JOIN tiporepo tr on tr.cod_rep = cb.cod_form
485 WHERE dp.operacion = @pc_codoper
486 GROUP BY dp.fecha, dp.tico, dp.ptovta, dp.numero, codigo, cuit, ag.timpu, razo, dire, cod_suc
487 ,des_comp, articulo, bulto, costou,de.preciou, operacion, cod_form, ar.descri
488 ,ar.marca, ar.npro, tr.nom_arch, tr.linxdet, ar.unimed, tr.copias, de.barra , de.cod_depo
489
490
491 IF @plPedVta = 1
492 INSERT #detallereporte
493 ( fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit ,
494 codiva , cod_suc , factura , fec_prov , proveedor , cNotapedido, des_comp , item , item_c , tipo_item , dato , bulto , Costo , vimpint,
495 Dcto , Pcio_Espec, Pcio_Vta , cantidad , Importe, Descri , marca , unimed , npro , cod_oper , cod_pago, nom_arch , linxdet ,
496 cod_form , copias , GRAV1, GRAV2 ,EXENTO , DESCU ,IMPU1 ,IMPU2 ,IMPU3 , IMPU4 , IMPU5 ,IMPU6 , IMPU7 , IMPU8 , IMPU9 , IMPU10 ,
497 IMPU11 , IMPU12 ,RETEN1 ,RETEN2 ,RETEN3 , RETEN4 ,RETEN5 , RETEN6 , alicuota1 , alicuota2 , alicuota3, enganche ,
498 Localidad , Provincia , IngBrutos , CONDICION , barr , Barrafip , NumAfip , cod_depo, cusuario, npagina )
499 SELECT pe.fecha, cb.cod_comp, pe.ptovta, pe.nronp as numero, pe.codigo, ag.razo, tot.neto,
500 'X' AS letra, ag.dire, ag.cuit, LEFT(Ag.timpu,1) AS codiva, ' 0' as cod_suc,
501 '','','','', cb.des_comp, 1 as item, 1 as itemc, 'A' AS tipo_item,
502 de.arti, de.bulto,
503 de.Precio,'0.00' as vimpint, 0 as dcto, 0 as pcio_espec, de.Precio, de.cantidad,
504 de.Precio * de.cantidad * CONVERT(INT, de.bulto),
505 ISNULL(ar.descri, 'NO EXISTE'), ISNULL(ar.marca, ''),
506 ISNULL(ar.unimed, ''), ISNULL(ar.npro, ''), @Pc_codoper as cod_oper,
507 0 as cod_pago, Isnull(tr.nom_arch,''), Isnull(tr.linxdet,0), cb.cod_form, Isnull(tr.copias,0),
508 tot.GRAV1, tot.GRAV2, tot.EXENTO, 0 as DESCU, tot.IMPU1, tot.IMPU2, tot.IMPU3, tot.IMPU4,
509 0 as IMPU5, 0 as IMPU6, 0 as IMPU7, 0 as IMPU8, 0 as IMPU9, 0 as IMPU10,
510 0 as IMPU11, 0 as IMPU12, 0 as RETEN1, 0 as RETEN2, 0 as RETEN3,
511 0 as RETEN4, 0 as RETEN5, 0 as RETEN6, @Alicuota1 as alicuota1, @Alicuota2 as alicuota2,
512 @Alicuota3 as alicuota3, '' as enganche, '', '', '', '', ISNULL(ba.barr,0),'','' , ' ', ' ' ,0
513 FROM PEDVDETA de
514 LEFT JOIN articulo ar on ar.arti = de.arti
515 LEFT JOIN (Select arti, max(barr) as barr from codbarra group by arti) ba on ar.arti = ba.arti
516 LEFT JOIN comproba cb on cb.cod_comp = 'PEDVTA'
517 LEFT JOIN tiporepo tr on tr.cod_rep = cb.cod_form
518 LEFT JOIN (
519 SELECT d1.nronp,
520 SUM(CASE WHEN a1.Timpu = 'G' THEN d1.Pcosi * d1.cantidad * CONVERT(INT, d1.bulto) ELSE 0 END) AS GRAV1,
521 SUM(CASE WHEN a1.Timpu = 'D' THEN d1.Pcosi * d1.cantidad * CONVERT(INT, d1.bulto) ELSE 0 END) AS GRAV2,
522 SUM(CASE WHEN d1.iva = 0 THEN d1.Pcosi * d1.cantidad * CONVERT(INT, d1.bulto) ELSE 0 END) AS EXENTO,
523 SUM(CASE WHEN a1.Timpu = 'G' THEN ( d1.Pcosi * (d1.Iva/100) ) * d1.cantidad * CONVERT(INT, d1.bulto) ELSE 0 END) AS IMPU1,
524 SUM(CASE WHEN a1.Timpu = 'D' THEN ( d1.Pcosi * (d1.Iva/100) ) * d1.cantidad * CONVERT(INT, d1.bulto) ELSE 0 END) AS IMPU2,
525 0 AS IMPU3,
526 SUM(d1.Vimpint) AS IMPU4,
527 SUM(d1.precio * d1.cantidad * convert(int, d1.bulto)) as neto
528 FROM PEDVDETA d1 LEFT JOIN ARTICULO a1 on d1.arti = a1.arti
529 WHERE d1.NRONP = @pc_codoper
530 GROUP BY d1.NRONP) tot ON de.NroNp = tot.nronp,
531 PedVta pe LEFT JOIN Agenda ag on pe.codigo = ag.codigo
532 WHERE pe.NroNp = @pc_codoper AND pe.Nronp = de.NroNp
533
534 -- ANULADO POR ERROR EN LA ESTRUCTURA DE DATOS
535 IF @plPedVta = 2
536 INSERT #detallereporte
537 ( fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit ,
538 codiva , cod_suc , factura , fec_prov , proveedor , cNotapedido, des_comp , item , item_c , tipo_item , dato , bulto , Costo , vimpint,
539 Dcto , Pcio_Espec, Pcio_Vta , cantidad , Importe, Descri , marca , unimed , npro , cod_oper , cod_pago, nom_arch , linxdet ,
540 cod_form , copias , GRAV1, GRAV2 ,EXENTO , DESCU ,IMPU1 ,IMPU2 ,IMPU3 , IMPU4 , IMPU5 ,IMPU6 , IMPU7 , IMPU8 , IMPU9 , IMPU10 ,
541 IMPU11 , IMPU12 ,RETEN1 ,RETEN2 ,RETEN3 , RETEN4 ,RETEN5 , RETEN6 , alicuota1 , alicuota2 , alicuota3, enganche ,
542 Localidad , Provincia , IngBrutos , CONDICION , barr , Barrafip , NumAfip , cod_depo, cusuario, npagina )
543 SELECT convert(datetime,getdate()), cb.cod_comp, CB.ptovta, replace(str(ca.ncodoper,8),' ','0') as numero,
544 ca.cCodigo, ag.razo, 0 as neto,
545 'X' AS letra, ag.dire, ag.cuit, LEFT(Ag.timpu,1) AS codiva, ' 0' as cod_suc,
546 '','','','', cb.des_comp, 1 as item, 1 as itemc, 'A' AS tipo_item,
547 str(ca.nTipo,10) as arti, ' 1' as bulto,
548 0 as Precio,'0.00' as vimpint, 0 as dcto, 0 as pcio_espec, 0 as Precio, abs(ca.nCantidad) as cantidad,
549 0 as importe, ISNULL(ct.des_cont, 'NO EXISTE'), ' ' ,
550 ' 1 UN', STR(ca.nTipo,2) AS npro, STR(CA.ncodoper,8) as cod_oper,
551 0 as cod_pago, Isnull(tr.nom_arch,''), Isnull(tr.linxdet,0), cb.cod_form, Isnull(tr.copias,0),
552 0 as GRAV1, 0 as GRAV2, 0 as EXENTO, 0 as DESCU, 0 as IMPU1, 0 as IMPU2, 0 as IMPU3, 0 as IMPU4,
553 0 as IMPU5, 0 as IMPU6, 0 as IMPU7, 0 as IMPU8, 0 as IMPU9, 0 as IMPU10,
554 0 as IMPU11, 0 as IMPU12, 0 as RETEN1, 0 as RETEN2, 0 as RETEN3,
555 0 as RETEN4, 0 as RETEN5, 0 as RETEN6, @Alicuota1 as alicuota1, @Alicuota2 as alicuota2,
556 @Alicuota3 as alicuota3, '' as enganche, '', '', '', '', '0',LEFT(ISNULL(og.cDescripcion,'MOVIMIENTO DESCONOCIDO'),40),
557 '' , ' ', ' ' ,0
558 FROM contenedores_movimientos ca
559 left join CONTENEDORES_CABECERA ce on ca.nCODOPER=ce.nCODOPER
560 left join CONTENEDORES_ORIGENES og on og.corigen = ce.cORIGEN
561 LEFT JOIN tipocont ct on ct.cod_cont = str(ca.nTipo,2)
562 LEFT JOIN comproba cb on cb.cod_comp = 'REMCTN'
563 LEFT JOIN tiporepo tr on tr.cod_rep = cb.cod_form
564 LEFT JOIN Agenda ag on ag.codigo = ca.cCodigo
565 WHERE ca.Ncodoper = @pc_codoper
566
567
568 -- datos para la cabecera
569 DECLARE @Codigo char(13), @cod_comp char(6), @enganche char(10), @oper_relf char(10), @Provincia char(25), @Localidad char(25)
570 , @IngBrutos char(25), @Ptovta char(4), @Letra char(1) , @cod_depo CHAR(3), @cUsuario char(10)
571
572 -- datos adicionales
573 DECLARE @factura char(50), @fec_prov char(12), @Proveedor char(70), @cNotapedido char(25), @Ped_Chq char(6)
574 , @Condicion char(50), @NumeroAfip varchar(40), @BarraAfip varchar(40)
575 , @Cuit_prov CHAR(13) , @Ag_Percep_Prov CHAR(10), @bGesCob bit
576
577 -- Pedido de Cheque
578 SELECT @Ped_Chq = cont FROM PARSIS WHERE CODI = 'CODCOMPECH'
579
580 -- Asigno variables adicionales de impresion
581 ----------------------------------------------------------------
582
583 SET @factura = ''; SET @fec_prov = ''; SET @oper_relf = '' ; SET @Proveedor = '' ; SET @cNotaPedido = ''
584 SET @Localidad = ''; SET @Provincia = '' ; SET @IngBrutos = ''
585 SET @Condicion = '' ; SET @cUsuario = ''
586
587
588 SELECT TOP 1 @Codigo = codigo, @cod_comp = cod_comp, @enganche = enganche, @Ptovta = ptovta, @Letra = letra FROM #detallereporte
589
590
591 /* Afip resolucion 170204 */
592 IF @plDeposito = 0 AND @plPedVta = 0 AND ISNUMERIC(@Ptovta) = 1
593 begin
594 exec [VESP_AFIP_RES170204] @cod_comp, @Ptovta, @Letra,
595 @NumeroAfip OUTPUT, -- cadena original
596 @BarraAfip OUTPUT -- cadena de caracteres especiales para barra
597 UPDATE #Detallereporte SET Barrafip = @BarraAfip, NumAfip = @NumeroAfip
598 end
599
600
601 IF @plDeposito = 0 -- Solo para comprobantes desde el compprim
602 BEGIN
603
604 select @cUsuario = dbo.funcion_encript(usuario) from subdiacb where cod_oper = @pc_codoper
605
606 -- factura y fecha del comprobante relacionado
607 IF @cod_comp = 'ND_PRI' OR @cod_comp = 'NC_PRV'
608 SELECT @factura = ptovta+'-'+numero, @fec_prov = CONVERT(Char(10),fecha, 103)
609 , @proveedor = '('+LTRIM(co.codigo)+') '+rtrim(razo)
610 , @Cuit_prov = co.cuit
611 , @Ag_Percep_Prov = pp.cNroAgPRIB
612 FROM compprim co
613 LEFT JOIN PerfProv pp
614 ON co.codigo = pp.codigo
615 WHERE cod_oper = @enganche
616 ELSE
617 BEGIN
618
619 -- Si es un mandato, muestra la factura del proveedor que lo genero, o el credito sobre que referencia se encuentra
620 SELECT @oper_relf = oper_fact FROM relfaman WHERE oper_mand = @pc_Codoper AND comp_fact <> @Ped_Chq
621 IF @cod_comp = 'MANCRE' OR @cod_comp = 'MANDEB'
622 SELECT @oper_relf = CASE WHEN ISNULL(enganche,'') = '' THEN @oper_relf ELSE enganche END
623 FROM compprim WHERE cod_oper = @oper_relf
624
625 -- Si es NC del proveedor con impresion (ALMACOR), busco el enganche o referencia que se le cargo
626 -- desde facturador
627 IF @cod_comp = 'NC_PRI'
628 SET @oper_relf = ISNULL(@enganche,'')
629
630 SELECT @factura = ptovta+'-'+numero , @fec_prov = CONVERT(Char(10),fecha, 103)
631 , @proveedor = '('+LTRIM(co.codigo)+') '+rtrim(razo)
632 , @Cuit_prov = co.cuit
633 , @Ag_Percep_Prov = pp.cNroAgPRIB
634 FROM compprim co
635 LEFT JOIN PerfProv pp
636 ON co.codigo = pp.codigo
637 WHERE cod_oper = @oper_relf
638
639 -- Nota de pedido relacionada, desde la factura del proveedor que lo genero
640 SELECT TOP 1 @cNotaPedido = CASE WHEN ISNULL(NRONP,'00000000') = '00000000' THEN '' ELSE NRONP END
641 FROM CABEMOVI WHERE REFERENCIA = @oper_relf
642
643 END
644 END
645
646 -- Datos de la Agenda a Agregar
647 SELECT @IngBrutos = ISNULL(Ag.nroIngBru,''), @Provincia = ISNULL(Pv.Descri,''), @Localidad = ISNULL(Lo.Localidad,'')
648 FROM Agenda Ag
649 LEFT JOIN ProvCias Pv ON Pv.Nacion = Ag.Nacion AND Pv.Pcia = Ag.Pcia
650 LEFT JOIN Postales Lo ON Lo.Nacion = Ag.Nacion AND Lo.Pcia = Ag.Pcia AND Lo.Post = Ag.Post AND Lo.SubPost = Ag.SubPost
651 WHERE Ag.Codigo = @Codigo
652
653 -- Descripcion de Condicion del comprobante
654 SELECT top 1 @Condicion = cn.descri
655 FROM conpagcb cn, #detallereporte de, compproc cc
656 WHERE de.cod_comp = cc.cod_comp and cc.tipo = cn.cod_tipo and de.cod_pago = cn.cod_pago
657 and ISNULL(cn.cod_ctacon,'') = '' AND de.cod_pago > 0
658
659
660 -- Caso Pymem, busca si está el comentario '&&'
661 IF EXISTS(SELECT * FROM #detallereporte WHERE descri LIKE '%&&%')
662 BEGIN
663 SELECT TOP 1 @factura = SUBSTRING(descri,3,50) FROM #detallereporte WHERE descri LIKE '%&&%'
664
665 ALTER TABLE #detallereporte ALTER COLUMN factura CHAR(50)
666
667 UPDATE #detallereporte SET descri = '' WHERE descri LIKE '%&&%'
668 END
669
670
671/*
672 -- Actualizo a la tabla los Valores particulares
673 UPDATE #Detallereporte SET factura = @factura, fec_prov = @fec_prov, proveedor = @proveedor, cNotapedido = @cNotaPedido,
674 Descri = REPLACE(Descri, CHAR(13)+CHAR(10), ' '), -- SACA LOS SALTOS DE CARRO
675 IngBrutos = @IngBrutos, Provincia = LEFT(@Provincia, 25), Localidad = LEFT(@Localidad, 25),
676 CONDICION = @Condicion,
677 cUsuario = @cUsuario,
678 cuit_prov = ISNULL(@Cuit_prov,''),
679 Ag_Percep_IB = ISNULL(@Ag_Percep_Prov,'')
680 */
681
682 -- Actualizo a la tabla los Valores particulares (Lo hago antes y despues, ya que necesito que estén datos antes y el despues es para completar)
683 if @plPedVta = 0
684 UPDATE #Detallereporte SET factura = @factura, fec_prov = @fec_prov, proveedor = @proveedor, cNotapedido = @cNotaPedido,
685 Descri = REPLACE(Descri, CHAR(13)+CHAR(10), ' '), -- SACA LOS SALTOS DE CARRO
686 IngBrutos = @IngBrutos, Provincia = LEFT(@Provincia, 25), Localidad = LEFT(@Localidad, 25),
687 CONDICION = @Condicion,
688 cUsuario = @cUsuario,
689 cuit_prov = ISNULL(@Cuit_prov,''),
690 Ag_Percep_IB = ISNULL(@Ag_Percep_Prov,''),
691 Barrafip = @BarraAfip,
692 NumAfip = @NumeroAfip
693
694
695 /* Impresion Percepcion de mandatos ************************************************************ */
696 if @pldeposito = 0 and EXISTS(SELECT * FROM #detalleReporte WHERE ( impu8 <> 0 or impu10 <> 0) and cod_comp in (select cod_comp from comproba where liva='V') )
697 BEGIN
698
699 set @bGesCob = 0
700 if exists(select dato from #detallereporte where dato = 'GESCOB')
701 set @bGesCob = 1
702
703 -- Agregamos linea en blanco
704 INSERT INTO #detalleReporte ( fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit ,
705 codiva , cod_suc , factura , fec_prov , proveedor , cNotapedido, des_comp , item , item_c , tipo_item , dato , bulto , Costo , vimpint,
706 Dcto , Pcio_Espec, Pcio_Vta , cantidad , Importe, Descri , marca , unimed , npro , cod_oper , cod_pago, nom_arch , linxdet ,
707 cod_form , copias , GRAV1, GRAV2 ,EXENTO , DESCU ,IMPU1 ,IMPU2 ,IMPU3 , IMPU4 , IMPU5 ,IMPU6 , IMPU7 , IMPU8 , IMPU9 , IMPU10 ,
708 IMPU11 , IMPU12 ,RETEN1 ,RETEN2 ,RETEN3 , RETEN4 ,RETEN5 , RETEN6 , alicuota1 , alicuota2 , alicuota3, enganche ,
709 Localidad , Provincia , IngBrutos , CONDICION , barr , Barrafip , NumAfip , cod_depo, cusuario, nPagina,
710 cCodAfip, cDesAfip, cBarraAfip, cCae, cFecVtoCae, nVendedor, cVendedor )
711 SELECT TOP 1 fecha , cod_comp, ptovta , numero , codigo , razo, NETO, letra , dire , cuit
712 , codiva, cod_suc, factura, fec_prov, proveedor, cNotapedido, des_comp
713 , 1001 AS item, 1 AS item_c, 'C' AS tipo_item, '' AS dato
714 , 1 AS bulto, STR(0,20,2) AS costo,'0.00' as vimpint, 0 AS dcto, 0 AS pcio_espec
715 , impu11 AS pcio_vta
716 , 1 AS cantidad, STR(0,20,3) AS importe, '' AS descri
717 , '' AS marca, '' AS unimed, '' AS npro, cod_oper, cod_pago,nom_arch,linxdet
718 , cod_form, copias
719 ,cp.GRAV1, cp.GRAV2, cp.EXENTO, cp.DESCU, cp.IMPU1, cp.IMPU2, cp.IMPU3, cp.IMPU4, cp.IMPU5, cp.IMPU6,
720 cp.IMPU7, cp.IMPU8, cp.IMPU9, cp.IMPU10, cp.IMPU11, cp.IMPU12, cp.RETEN1, cp.RETEN2, cp.RETEN3,
721 cp.RETEN4, cp.RETEN5, cp.RETEN6, cp.alicuota1, cp.alicuota2, cp.alicuota3, cp.enganche, '', '', '',
722 '', 0,'','' , ' ',' ', 0,
723 cp.cCodAfip, cp.cDesAfip, cp.cBarraAfip, cp.cCae, cp.cFecVtoCae, cp.nVendedor, cp.cVendedor
724 FROM #detallereporte cp
725 WHERE impu10<>0
726
727 -- Agregamos linea con Percepción Propia
728 INSERT INTO #detalleReporte ( fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit ,
729 codiva , cod_suc , factura , fec_prov , proveedor , cNotapedido, des_comp , item , item_c , tipo_item , dato , bulto , Costo , vimpint,
730 Dcto , Pcio_Espec, Pcio_Vta , cantidad , Importe, Descri , marca , unimed , npro , cod_oper , cod_pago, nom_arch , linxdet ,
731 cod_form , copias , GRAV1, GRAV2 ,EXENTO , DESCU ,IMPU1 ,IMPU2 ,IMPU3 , IMPU4 , IMPU5 ,IMPU6 , IMPU7 , IMPU8 , IMPU9 , IMPU10 ,
732 IMPU11 , IMPU12 ,RETEN1 ,RETEN2 ,RETEN3 , RETEN4 ,RETEN5 , RETEN6 , alicuota1 , alicuota2 , alicuota3, enganche ,
733 Localidad , Provincia , IngBrutos , CONDICION , barr , Barrafip , NumAfip , cod_depo, cusuario, nPagina,
734 cCodAfip, cDesAfip, cBarraAfip, cCae, cFecVtoCae, nVendedor, cVendedor )
735 SELECT TOP 1 fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit
736 , codiva, cod_suc, factura, fec_prov, proveedor, cNotapedido, des_comp
737 , 1002 AS item, 1 AS item_c, 'C' AS tipo_item, ' ' AS dato
738 , 1 AS bulto, STR(0,20,2) AS costo,'0.00' as vimpint, 0 AS dcto, 0 AS pcio_espec
739 , 0 AS pcio_vta
740 , 1 AS cantidad, STR(0,20,3) AS importe
741 , LEFT('Percepción IIBB - Coop. Prov.y Cred. Almacor Ltda.',50)
742 AS descri
743 , '' AS marca, '' AS unimed, '' AS npro, cod_oper, cod_pago,nom_arch,linxdet
744 , cod_form, copias
745 ,cp.GRAV1, cp.GRAV2, cp.EXENTO, cp.DESCU, cp.IMPU1, cp.IMPU2, cp.IMPU3, cp.IMPU4, cp.IMPU5, cp.IMPU6,
746 cp.IMPU7, cp.IMPU8, cp.IMPU9, cp.IMPU10, cp.IMPU11, cp.IMPU12, cp.RETEN1, cp.RETEN2, cp.RETEN3,
747 cp.RETEN4, cp.RETEN5, cp.RETEN6, cp.alicuota1, cp.alicuota2, cp.alicuota3, cp.enganche, '', '', '',
748 '', 0,'','' , ' ',' ',0,
749 cp.cCodAfip, cp.cDesAfip, cp.cBarraAfip, cp.cCae, cp.cFecVtoCae, cp.nVendedor, cp.cVendedor
750 FROM #detallereporte cp where impu10 <> 0
751 union
752 SELECT TOP 1 fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit
753 , codiva, cod_suc, factura, fec_prov, proveedor, cNotapedido, des_comp
754 , 1003 AS item, 1 AS item_c, 'C' AS tipo_item, ' ' AS dato
755 , 1 AS bulto, STR(0,20,2) AS costo,'0.00' as vimpint, 0 AS dcto, 0 AS pcio_espec
756 , 0 AS pcio_vta
757 , 1 AS cantidad, STR(0,20,3) AS importe
758 , LEFT(' Subt.$'+ltrim(str(case when cp.impu8 <> 0 then cp.impu11 else cp.grav1+cp.grav2+case when @bGesCob = 1 then 0 else cp.exento end+cp.descu+cp.impu9 end,20,2))+
759 ' - Percepción $'+replace(str(cp.impu10,50 - ( len(ltrim(str(case when cp.impu8 <> 0 then cp.impu11 else cp.grav1+cp.grav2+case when @bGesCob = 1 then 0 else cp.exento end end,20,2)))+22 ),2) ,' ','*'),50)
760 AS descri
761 , '' AS marca, '' AS unimed, '' AS npro, cod_oper, cod_pago,nom_arch,linxdet
762 , cod_form, copias
763 ,cp.GRAV1, cp.GRAV2, cp.EXENTO, cp.DESCU, cp.IMPU1, cp.IMPU2, cp.IMPU3, cp.IMPU4, cp.IMPU5, cp.IMPU6,
764 cp.IMPU7, cp.IMPU8, cp.IMPU9, cp.IMPU10, cp.IMPU11, cp.IMPU12, cp.RETEN1, cp.RETEN2, cp.RETEN3,
765 cp.RETEN4, cp.RETEN5, cp.RETEN6, cp.alicuota1, cp.alicuota2, cp.alicuota3, cp.enganche, '', '', '',
766 '', 0,'','' , ' ',' ',0,
767 cCodAfip, cDesAfip, cBarraAfip, cCae, cFecVtoCae, nVendedor, cVendedor
768 FROM #detallereporte cp where impu10 <> 0
769
770
771 INSERT INTO #detalleReporte ( fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit ,
772 codiva , cod_suc , factura , fec_prov , proveedor , cNotapedido, des_comp , item , item_c , tipo_item , dato , bulto , Costo , vimpint,
773 Dcto , Pcio_Espec, Pcio_Vta , cantidad , Importe, Descri , marca , unimed , npro , cod_oper , cod_pago, nom_arch , linxdet ,
774 cod_form , copias , GRAV1, GRAV2 ,EXENTO , DESCU ,IMPU1 ,IMPU2 ,IMPU3 , IMPU4 , IMPU5 ,IMPU6 , IMPU7 , IMPU8 , IMPU9 , IMPU10 ,
775 IMPU11 , IMPU12 ,RETEN1 ,RETEN2 ,RETEN3 , RETEN4 ,RETEN5 , RETEN6 , alicuota1 , alicuota2 , alicuota3, enganche ,
776 Localidad , Provincia , IngBrutos , CONDICION , barr , Barrafip , NumAfip , cod_depo, cusuario, nPagina,
777 cCodAfip, cDesAfip, cBarraAfip, cCae, cFecVtoCae, nVendedor, cVendedor )
778 SELECT TOP 1 fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit
779 , codiva, cod_suc, factura, fec_prov, proveedor, cNotapedido, des_comp
780 , 1004 AS item, 1 AS item_c, 'C' AS tipo_item, '' AS dato
781 , 1 AS bulto, STR(0,20,2) AS costo,'0.00' as vimpint, 0 AS dcto, 0 AS pcio_espec
782 , impu11 AS pcio_vta
783 , 1 AS cantidad, STR(0,20,3) AS importe, '' AS descri
784 , '' AS marca, '' AS unimed, '' AS npro, cod_oper, cod_pago,nom_arch,linxdet
785 , cod_form, copias
786 ,cp.GRAV1, cp.GRAV2, cp.EXENTO, cp.DESCU, cp.IMPU1, cp.IMPU2, cp.IMPU3, cp.IMPU4, cp.IMPU5, cp.IMPU6,
787 cp.IMPU7, cp.IMPU8, cp.IMPU9, cp.IMPU10, cp.IMPU11, cp.IMPU12, cp.RETEN1, cp.RETEN2, cp.RETEN3,
788 cp.RETEN4, cp.RETEN5, cp.RETEN6, cp.alicuota1, cp.alicuota2, cp.alicuota3, cp.enganche, '', '', '',
789 '', 0,'','' , ' ',' ', 0,
790 cp.cCodAfip, cp.cDesAfip, cp.cBarraAfip, cp.cCae, cp.cFecVtoCae , cp.nVendedor, cp.cVendedor
791 FROM #detallereporte cp
792 WHERE impu8<>0
793
794 --,charindex(')',proveedor)+1
795 INSERT INTO #detalleReporte ( fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit ,
796 codiva , cod_suc , factura , fec_prov , proveedor , cNotapedido, des_comp , item , item_c , tipo_item , dato , bulto , Costo , vimpint,
797 Dcto , Pcio_Espec, Pcio_Vta , cantidad , Importe, Descri , marca , unimed , npro , cod_oper , cod_pago, nom_arch , linxdet ,
798 cod_form , copias , GRAV1, GRAV2 ,EXENTO , DESCU ,IMPU1 ,IMPU2 ,IMPU3 , IMPU4 , IMPU5 ,IMPU6 , IMPU7 , IMPU8 , IMPU9 , IMPU10 ,
799 IMPU11 , IMPU12 ,RETEN1 ,RETEN2 ,RETEN3 , RETEN4 ,RETEN5 , RETEN6 , alicuota1 , alicuota2 , alicuota3, enganche ,
800 Localidad , Provincia , IngBrutos , CONDICION , barr , Barrafip , NumAfip , cod_depo, cusuario, nPagina ,
801 cCodAfip, cDesAfip, cBarraAfip, cCae, cFecVtoCae, nVendedor, cVendedor )
802 SELECT TOP 1 fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit
803 , codiva, cod_suc, factura, fec_prov, proveedor, cNotapedido, des_comp
804 , 1005 AS item, 1 AS item_c, 'C' AS tipo_item, ' ' AS dato
805 , 1 AS bulto, STR(0,20,2) AS costo,'0.00' as vimpint, 0 AS dcto, 0 AS pcio_espec
806 , 0 AS pcio_vta
807 , 1 AS cantidad, STR(0,20,3) AS importe
808 , LEFT('Traslado Perc.IIBB 443/04 - Prov.'+substring(proveedor,1,30),50)
809 AS descri
810 , '' AS marca, '' AS unimed, '' AS npro, cod_oper, cod_pago,nom_arch,linxdet
811 , cod_form, copias
812 ,cp.GRAV1, cp.GRAV2, cp.EXENTO, cp.DESCU, cp.IMPU1, cp.IMPU2, cp.IMPU3, cp.IMPU4, cp.IMPU5, cp.IMPU6,
813 cp.IMPU7, cp.IMPU8, cp.IMPU9, cp.IMPU10, cp.IMPU11, cp.IMPU12, cp.RETEN1, cp.RETEN2, cp.RETEN3,
814 cp.RETEN4, cp.RETEN5, cp.RETEN6, cp.alicuota1, cp.alicuota2, cp.alicuota3, cp.enganche, '', '', '',
815 '', 0,'','' , ' ',' ',0,
816 cp.cCodAfip, cp.cDesAfip, cp.cBarraAfip, cp.cCae, cp.cFecVtoCae, cp.nVendedor, cp.cVendedor
817 FROM #detallereporte cp where impu8 <> 0
818 union
819 SELECT TOP 1 fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit
820 , codiva, cod_suc, factura, fec_prov, proveedor, cNotapedido, des_comp
821 , 1006 AS item, 1 AS item_c, 'C' AS tipo_item, ' ' AS dato
822 , 1 AS bulto, STR(0,20,2) AS costo,'0.00' as vimpint, 0 AS dcto, 0 AS pcio_espec
823 , 0 AS pcio_vta
824 , 1 AS cantidad, STR(0,20,3) AS importe
825 , LEFT(' CUIT '+cp.cuit_prov+' N° Agente Percep '+cp.Ag_Percep_IB,50)
826 AS descri
827 , '' AS marca, '' AS unimed, '' AS npro, cod_oper, cod_pago,nom_arch,linxdet
828 , cod_form, copias
829 ,cp.GRAV1, cp.GRAV2, cp.EXENTO, cp.DESCU, cp.IMPU1, cp.IMPU2, cp.IMPU3, cp.IMPU4, cp.IMPU5, cp.IMPU6,
830 cp.IMPU7, cp.IMPU8, cp.IMPU9, cp.IMPU10, cp.IMPU11, cp.IMPU12, cp.RETEN1, cp.RETEN2, cp.RETEN3,
831 cp.RETEN4, cp.RETEN5, cp.RETEN6, cp.alicuota1, cp.alicuota2, cp.alicuota3, cp.enganche, '', '', '',
832 '', 0,'','' , ' ',' ',0,
833 cp.cCodAfip, cp.cDesAfip, cp.cBarraAfip, cp.cCae, cp.cFecVtoCae, cp.nVendedor, cp.cVendedor
834 FROM #detallereporte cp where impu8 <> 0
835 union
836 SELECT TOP 1 fecha , cod_comp, ptovta , numero , codigo , razo , NETO, letra , dire , cuit
837 , codiva, cod_suc, factura, fec_prov, proveedor, cNotapedido, des_comp
838 , 1007 AS item, 1 AS item_c, 'C' AS tipo_item, ' ' AS dato
839 , 1 AS bulto, STR(0,20,2) AS costo,'0.00' as vimpint, 0 AS dcto, 0 AS pcio_espec
840 , 0 AS pcio_vta
841 , 1 AS cantidad, STR(0,20,3) AS importe
842 , LEFT(' FA '+rtrim(factura)+' '+rtrim(fec_prov)+' Percepción $'+REPLACE(str(cp.impu8,9,2),' ','*'),50)
843 AS descri
844 , '' AS marca, '' AS unimed, '' AS npro, cod_oper, cod_pago,nom_arch,linxdet
845 , cod_form, copias
846 ,cp.GRAV1, cp.GRAV2, cp.EXENTO, cp.DESCU, cp.IMPU1, cp.IMPU2, cp.IMPU3, cp.IMPU4, cp.IMPU5, cp.IMPU6,
847 cp.IMPU7, cp.IMPU8, cp.IMPU9, cp.IMPU10, cp.IMPU11, cp.IMPU12, cp.RETEN1, cp.RETEN2, cp.RETEN3,
848 cp.RETEN4, cp.RETEN5, cp.RETEN6, cp.alicuota1, cp.alicuota2, cp.alicuota3, cp.enganche, '', '', '',
849 '', 0,'','' , ' ',' ',0,
850 cp.cCodAfip, cp.cDesAfip, cp.cBarraAfip, cp.cCae, cp.cFecVtoCae, cp.nVendedor, cp.cVendedor
851 FROM #detallereporte cp where impu8 <> 0
852
853 update #detallereporte set impu8 = impu8 + impu10, impu10 = 0
854
855 END
856
857 -- Trae el tipo de IVA del comprador
858 DECLARE @tiva CHAR(50)
859 SELECT TOP 1 @tiva =SUBSTRING(descri,3,50) from defiimpu WHERE iven = 'I' AND icom = (SELECT TOP 1 codiva FROM #detallereporte)
860 SET @tiva = ISNULL(@tiva,'Responsable Inscr.')
861
862 -- Actualizo a la tabla los Valores particulares
863 if @plPedVta = 0
864 UPDATE #Detallereporte
865 SET factura = @factura, fec_prov = @fec_prov, proveedor = @proveedor, cNotapedido = @cNotaPedido,
866 Descri = REPLACE(Descri, CHAR(13)+CHAR(10), ' '), -- SACA LOS SALTOS DE CARRO
867 IngBrutos = @IngBrutos, Provincia = LEFT(@Provincia, 25), Localidad = LEFT(@Localidad, 25),
868 CONDICION = @Condicion,
869 cUsuario = @cUsuario,
870 cuit_prov = ISNULL(@Cuit_prov,''),
871 Ag_Percep_IB = ISNULL(@Ag_Percep_Prov,''),
872 Barrafip = @BarraAfip,
873 NumAfip = @NumeroAfip,
874 tiva = @tiva
875
876 -- es texto continuacion (blanqueo datos porque duplica importes la consulta)
877 UPDATE #Detallereporte SET Costo = STR(0, 20, 3), Dcto = STR(0,20,3), Pcio_Espec=' 0',
878 Pcio_Vta= STR(0,20,3), cantidad = STR(0,20,3), Importe = STR(0,20,3)
879 WHERE item_c > 1
880
881 -- Si es remdev, cargamos la columna cod_depo para la impresion
882 IF @cod_comp ='REMDEV'
883 BEGIN
884 SELECT @cod_depo = cod_depo FROM cabemovi WHERE operacion = @pc_codoper
885
886 IF @cod_depo IS NOT NULL
887 UPDATE #detallereporte SET cod_depo = @cod_depo
888 END
889
890 -- Cargo los vencimientos del comprobante
891 -------------------------------------------------------------
892 INSERT INTO #Vencim SELECT @pc_codoper,vencim, fech_vcto
893 FROM ctasctes WHERE cod_oper = @pc_codoper
894
895 -- Si es Liquidacion Pecuaria de Afip
896 --------------------------------------
897 IF @cod_comp = 'LQDIGA'
898 BEGIN
899 -- Datos liquidacion columna CONDICION
900 -- 1-8 Fecha de Operacion
901 -- 9-16 Fecha de Faena
902 -- 17-26 Tropa
903 -- 27-34 Kgs Vivos
904 -- 35-50 Nro Resnpa
905
906 -- Columna
907 -- NRO DTE - Factura / Cabezas - Cantidad
908
909 DECLARE @porccondi varchar(25), @porccondi2 varchar(25), @porccondi3 varchar(25)
910 SET @Condicion = ''
911
912 SELECT @porccondi=convert(char(10),fecingreso,103), @porccondi2=convert(char(10),fecfaena,103), @porccondi3 = str(tropa,10)
913 from Tropascb WHERE opercompra = @pc_codoper
914 IF @porccondi is null or @porccondi2 is null
915 begin
916 set @porccondi = convert(char(10), getdate(),103)
917 set @porccondi2= @porccondi
918 end
919 SET @condicion = replace(@porccondi,'/','')+replace(@porccondi2,'/','')
920 if @porccondi3 is null
921 set @porccondi3 = '0000000000'
922 SET @condicion = rtrim(@condicion) + rtrim(@porccondi3)
923
924 set @Porccondi = NULL
925 SELECT @Porccondi=str(SUM(kg.kgsviv),10)
926 FROM
927 Tropascb tc
928 left join Tropaspr kg on kg.frigorifico=tc.frigorifico and kg.tropa=tc.tropa and kg.item=tc.item
929 WHERE tc.opercompra = @pc_codoper
930 if @Porccondi IS NULL
931 SET @Porccondi = ' 1'
932 SET @condicion = rtrim(@condicion) + rtrim(@Porccondi)
933
934 SET @Porccondi = NULL ; SET @porccondi2 = NULL ; SET @porccondi3 = NULL
935 SELECT @Porccondi = cremdev, @porccondi2 = cDteTropa, @porccondi3 = str(nCabTropa, 5)
936 FROM compprimax WHERE cod_oper = @pc_codoper AND nitem=1
937 if @Porccondi IS NULL
938 SET @Porccondi = '0000000000'
939 SET @condicion = rtrim(@condicion) + rtrim(replace(replace(@Porccondi,'.',''),'/',''))
940
941 UPDATE #detallereporte set condicion = @Condicion, factura = @porccondi2, cantidad = @porccondi3
942
943
944
945
946 END
947
948 -- Si es Web imprime el mismo desde la columna condicion
949 -------------------------------------------------------------
950 if @pQue = 'W'
951 BEGIN
952
953 -- Si es ALMACOR, Borra la cuota 50 (Percepcion)
954 IF DB_NAME()='ALMACOR'
955 DELETE #Vencim WHERE vencim = 50
956
957 DECLARE @cVencDate char(500), @dVtoCte datetime
958 SET @cVencDate = ''
959
960 -- Trae los vencimientos para concatenar
961 DECLARE #curvenc CURSOR STATIC FOR
962 SELECT fech_vcto
963 FROM #Vencim
964 OPEN #curvenc
965
966
967 -- Recorre cursor y concatena
968 FETCH NEXT FROM #curvenc INTO @dVtoCte
969 WHILE @@FETCH_STATUS = 0
970 BEGIN
971 SET @cVencDate = RTRIM(@cVencDate) + ' ' + CONVERT(Char(10), @dVtoCte, 103)
972 FETCH NEXT FROM #curvenc INTO @dVtoCte
973 END
974 CLOSE #curvenc
975 DEALLOCATE #curvenc
976
977 -- agrega la palabra vencimiento
978 SET @cVencDate = CASE WHEN LEN(RTRIM(@cVencDate)) > 14 THEN 'Vctos.' ELSE 'Vcto.' END +@cVencDate
979
980
981 -- Actualiza el reporte
982 UPDATE #Detallereporte SET CONDICION = LEFT(@cVencDate,50)
983
984 END
985
986
987 SELECT * FROM #detallereporte ORDER BY nOrden
988
989 if @pQue <> 'W'
990 SELECT * FROM #Vencim
991
992
993
994GO
995SET QUOTED_IDENTIFIER OFF
996GO
997SET ANSI_NULLS ON
998GO