public List <CXP_013_Info> get_list(int IdEmpresa, decimal IdRetencion) { try { List <CXP_013_Info> Lista; using (Entities_reportes Context = new Entities_reportes()) { Lista = (from q in Context.VWCXP_013 where q.IdEmpresa == IdEmpresa && q.IdRetencion == IdRetencion select new CXP_013_Info { IdEmpresa = q.IdEmpresa, IdRetencion = q.IdRetencion, Idsecuencia = q.Idsecuencia, re_TipoRet = q.re_TipoRet, co_factura = q.co_factura, NumRetencion = q.NumRetencion, TipoComprobante = q.TipoComprobante, FechaDeEmision = q.FechaDeEmision, EjercicioFiscal = q.EjercicioFiscal, re_baseRetencion = q.re_baseRetencion, re_Porcen_retencion = q.re_Porcen_retencion, re_valor_retencion = q.re_valor_retencion, NombreProveedor = q.NombreProveedor, pr_direccion = q.pr_direccion, pe_cedulaRuc = q.pe_cedulaRuc, pr_correo = q.pr_correo, pr_telefonos = q.pr_telefonos, NAutorizacion = q.NAutorizacion, Fecha_Autorizacion = q.Fecha_Autorizacion, Su_Descripcion = q.Su_Descripcion, co_FechaFactura = q.co_FechaFactura }).ToList(); } if (Lista.Count > 0) { var Detalle = Lista[0]; if (!string.IsNullOrEmpty(Detalle.NumRetencion) && string.IsNullOrEmpty(Detalle.NAutorizacion)) { tb_empresa_Data odataEmpresa = new tb_empresa_Data(); tb_sis_Documento_Tipo_Talonario_Data odataTalonario = new tb_sis_Documento_Tipo_Talonario_Data(); string[] Array = Detalle.NumRetencion.Split('-'); if (Array.Count() == 3) { string ClaveAcceso = odataTalonario.GeneraClaveAcceso(Detalle.FechaDeEmision, "07", odataEmpresa.get_info(IdEmpresa).em_ruc, Array[0] + Array[1], Array[2]); Lista.ForEach(q => q.NAutorizacion = ClaveAcceso); } } } return(Lista); } catch (Exception) { throw; } }
public Boolean guardarDB(cp_retencion_Info info) { Boolean res = true; tb_sis_Documento_Tipo_Talonario_Data odata_talonario = new tb_sis_Documento_Tipo_Talonario_Data(); var info_documento = odata_talonario.GetUltimoNoUsadoFacElec(info.IdEmpresa, cl_enumeradores.eTipoDocumento.RETEN.ToString(), info.serie1, info.serie2); try { using (Entities_cuentas_por_pagar Context = new Entities_cuentas_por_pagar()) { var lstf = Context.cp_retencion.Where(q => q.IdEmpresa_Ogiro == info.IdEmpresa && q.IdTipoCbte_Ogiro == info.IdTipoCbte_Ogiro && q.IdCbteCble_Ogiro == info.IdCbteCble_Ogiro).FirstOrDefault(); if (lstf != null) { return(false); } Context.cp_retencion.Add(new cp_retencion { IdEmpresa = info.IdEmpresa, IdEmpresa_Ogiro = info.IdEmpresa_Ogiro, IdCbteCble_Ogiro = info.IdCbteCble_Ogiro, IdTipoCbte_Ogiro = info.IdTipoCbte_Ogiro, IdRetencion = info.IdRetencion = get_id(info.IdEmpresa), CodDocumentoTipo = info.CodDocumentoTipo, serie1 = info_documento.Establecimiento, serie2 = info_documento.PuntoEmision, NumRetencion = info_documento.NumDocumento, NAutorizacion = info.NAutorizacion, observacion = info.observacion, fecha = info.fecha.Date, re_Tiene_RTiva = info.re_Tiene_RTiva, re_Tiene_RFuente = info.re_Tiene_RFuente, re_EstaImpresa = info.re_EstaImpresa, Estado = "A", Fecha_Transac = DateTime.Now, IdUsuario = info.IdUsuario, }); int Secuencia = 1; foreach (var item in info.detalle) { Context.cp_retencion_det.Add(new cp_retencion_det { IdEmpresa = info.IdEmpresa, IdRetencion = info.IdRetencion, Idsecuencia = Secuencia++, re_tipoRet = item.re_tipoRet, re_Codigo_impuesto = item.re_Codigo_impuesto, re_baseRetencion = (double)item.re_baseRetencion, re_Porcen_retencion = (double)item.re_Porcen_retencion, re_valor_retencion = (double)item.re_valor_retencion, IdCodigo_SRI = item.IdCodigo_SRI, IdUsuario = info.IdUsuario, re_estado = "A" }); } Context.SaveChanges(); if (Math.Round((double)info.detalle.Sum(q => q.re_valor_retencion), 2) > 0.01) { ct_cbtecble_Data odata_ct = new ct_cbtecble_Data(); var param = Context.cp_parametros.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault(); var diario = odata_ct.armar_info(info.info_comprobante.lst_ct_cbtecble_det, info.IdEmpresa, info.IdSucursal, (int)param.pa_IdTipoCbte_x_Retencion, 0, "Comprobante contable de retención #" + info.serie1 + " " + info.serie2 + " " + info.NumRetencion , info.fecha); odata_ct.guardarDB(diario); Context.cp_retencion_x_ct_cbtecble.Add(new cp_retencion_x_ct_cbtecble { rt_IdEmpresa = info.IdEmpresa, rt_IdRetencion = info.IdRetencion, ct_IdEmpresa = diario.IdEmpresa, ct_IdTipoCbte = diario.IdTipoCbte, ct_IdCbteCble = diario.IdCbteCble, Observacion = "Relacion" }); Context.SaveChanges(); } } return(res); } catch (Exception) { throw; } }
public bool modificarDB(cp_retencion_Info info) { try { int sec = 1; using (Entities_cuentas_por_pagar Context = new Entities_cuentas_por_pagar()) { var contact = Context.cp_retencion.FirstOrDefault(minfo => minfo.IdEmpresa == info.IdEmpresa && minfo.IdRetencion == info.IdRetencion); if (contact != null) { if (string.IsNullOrEmpty(contact.NumRetencion)) { tb_sis_Documento_Tipo_Talonario_Data odata_talonario = new tb_sis_Documento_Tipo_Talonario_Data(); var info_documento = odata_talonario.GetUltimoNoUsadoFacElec(info.IdEmpresa, cl_enumeradores.eTipoDocumento.RETEN.ToString(), info.serie1, info.serie2); contact.serie1 = info.serie1 = info_documento.Establecimiento; contact.serie2 = info.serie2 = info_documento.PuntoEmision; contact.NumRetencion = info.NumRetencion = info_documento.NumDocumento; } contact.fecha = info.fecha; contact.observacion = info.observacion; contact.IdUsuarioUltMod = info.IdUsuarioUltMod; contact.Fecha_UltMod = info.Fecha_UltMod; contact.ip = info.ip; if (info.detalle != null) { var lista = Context.cp_retencion_det.Where(minfo => minfo.IdEmpresa == info.IdEmpresa && minfo.IdRetencion == info.IdRetencion); Context.cp_retencion_det.RemoveRange(lista); foreach (var item in info.detalle) { cp_retencion_det Entity = new cp_retencion_det { IdEmpresa = info.IdEmpresa, IdRetencion = info.IdRetencion, Idsecuencia = sec, re_tipoRet = item.re_tipoRet, re_baseRetencion = (double)item.re_baseRetencion, IdCodigo_SRI = item.IdCodigo_SRI, re_Codigo_impuesto = item.re_Codigo_impuesto, re_valor_retencion = Math.Round((double)item.re_valor_retencion, 2, MidpointRounding.AwayFromZero), re_Porcen_retencion = (double)item.re_Porcen_retencion, re_estado = "A" }; Context.cp_retencion_det.Add(Entity); sec++; } } Context.SaveChanges(); if (Math.Round((double)info.detalle.Sum(q => q.re_valor_retencion), 2) > 0.01) { ct_cbtecble_Data odata_ct = new ct_cbtecble_Data(); var param = Context.cp_parametros.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault(); var diario = odata_ct.armar_info(info.info_comprobante.lst_ct_cbtecble_det, info.IdEmpresa, info.IdSucursal, (info.info_comprobante.IdTipoCbte == 0 ? Convert.ToInt32(param.pa_IdTipoCbte_x_Retencion) : info.info_comprobante.IdTipoCbte), 0, "Comprobante contable de retención #" + info.serie1 + " " + info.serie2 + " " + info.NumRetencion, info.fecha); if (diario != null) { var rel = Context.cp_retencion_x_ct_cbtecble.Where(q => q.rt_IdEmpresa == info.IdEmpresa && q.rt_IdRetencion == info.IdRetencion).FirstOrDefault(); if (rel == null) { if (odata_ct.guardarDB(diario)) { Context.cp_retencion_x_ct_cbtecble.Add(new cp_retencion_x_ct_cbtecble { rt_IdEmpresa = info.IdEmpresa, rt_IdRetencion = info.IdRetencion, ct_IdEmpresa = diario.IdEmpresa, ct_IdTipoCbte = diario.IdTipoCbte, ct_IdCbteCble = diario.IdCbteCble, Observacion = "Relacion" }); Context.SaveChanges(); } } else { diario.IdCbteCble = rel.ct_IdCbteCble; odata_ct.modificarDB(diario); } } } } } return(true); } catch (Exception) { throw; } }
public Boolean guardarDB(cp_retencion_Info info) { Boolean res = true; tb_sis_Documento_Tipo_Talonario_Info info_documento = new tb_sis_Documento_Tipo_Talonario_Info(); tb_sis_Documento_Tipo_Talonario_Data data_talonario = new tb_sis_Documento_Tipo_Talonario_Data(); var punto_venta = odata_pto.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta ?? 0); if (punto_venta != null) { if (punto_venta.EsElectronico == true) { info_documento = odata_talonario.GetUltimoNoUsado(info.IdEmpresa, punto_venta.codDocumentoTipo, punto_venta.Su_CodigoEstablecimiento, punto_venta.cod_PuntoVta, punto_venta.EsElectronico, true); info.NAutorizacion = null; info.Fecha_Autorizacion = null; } else { info_documento.IdEmpresa = info.IdEmpresa; info_documento.CodDocumentoTipo = info.CodDocumentoTipo; info_documento.Establecimiento = info.serie1; info_documento.PuntoEmision = info.serie2; info_documento.NumDocumento = info.NumRetencion; info_documento.IdSucursal = info.IdSucursal; info_documento.Usado = true; data_talonario.modificar_estado_usadoDB(info_documento); } } try { using (Entities_cuentas_por_pagar Context = new Entities_cuentas_por_pagar()) { var lstf = Context.cp_retencion.Where(q => q.IdEmpresa_Ogiro == info.IdEmpresa && q.IdTipoCbte_Ogiro == info.IdTipoCbte_Ogiro && q.IdCbteCble_Ogiro == info.IdCbteCble_Ogiro).FirstOrDefault(); if (lstf != null) { return(false); } Context.cp_retencion.Add(new cp_retencion { IdEmpresa = info.IdEmpresa, IdEmpresa_Ogiro = info.IdEmpresa_Ogiro, IdCbteCble_Ogiro = info.IdCbteCble_Ogiro, IdTipoCbte_Ogiro = info.IdTipoCbte_Ogiro, IdRetencion = info.IdRetencion = get_id(info.IdEmpresa), CodDocumentoTipo = info.CodDocumentoTipo = "RETEN", serie1 = info.serie1 = info_documento == null ? null : info_documento.Establecimiento, serie2 = info.serie2 = info_documento == null ? null : info_documento.PuntoEmision, NumRetencion = info.NumRetencion = info_documento == null ? null : info_documento.NumDocumento, NAutorizacion = info.NAutorizacion, observacion = info.observacion = info.observacion + info.serie1 + "-" + info.serie2 + "-" + info.NumRetencion, fecha = info.fecha.Date, Estado = "A", IdPuntoVta = info.IdPuntoVta, IdSucursal = info.IdSucursal, Fecha_Transac = DateTime.Now, IdUsuario = info.IdUsuario, }); int Secuencia = 1; foreach (var item in info.detalle) { Context.cp_retencion_det.Add(new cp_retencion_det { IdEmpresa = info.IdEmpresa, IdRetencion = info.IdRetencion, Idsecuencia = Secuencia++, re_tipoRet = item.re_tipoRet, re_Codigo_impuesto = item.re_Codigo_impuesto, re_baseRetencion = (double)item.re_baseRetencion, re_Porcen_retencion = (double)item.re_Porcen_retencion, re_valor_retencion = (double)item.re_valor_retencion, IdCodigo_SRI = item.IdCodigo_SRI, IdUsuario = info.IdUsuario, re_estado = "A" }); } Context.SaveChanges(); if (Math.Round((double)info.detalle.Sum(q => q.re_valor_retencion), 2) > 0.01) { ct_cbtecble_Data odata_ct = new ct_cbtecble_Data(); var param = Context.cp_parametros.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault(); var diario = odata_ct.armar_info(info.info_comprobante.lst_ct_cbtecble_det, info.IdEmpresa, info.IdSucursal, (int)param.pa_IdTipoCbte_x_Retencion, 0, info.observacion, info.fecha); odata_ct.guardarDB(diario); Context.cp_retencion_x_ct_cbtecble.Add(new cp_retencion_x_ct_cbtecble { rt_IdEmpresa = info.IdEmpresa, rt_IdRetencion = info.IdRetencion, ct_IdEmpresa = diario.IdEmpresa, ct_IdTipoCbte = diario.IdTipoCbte, ct_IdCbteCble = diario.IdCbteCble, Observacion = "Relacion" }); Context.SaveChanges(); } } return(res); } catch (Exception ex) { tb_LogError_Data LogData = new tb_LogError_Data(); LogData.GuardarDB(new tb_LogError_Info { Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "cp_retencion_Data", Metodo = "guardarDB", IdUsuario = info.IdUsuario }); return(false); } }
public List <FAC_020_Info> get_list(int IdEmpresa, int IdSucursal, int IdBodega, decimal IdGuiaRemision) { try { List <FAC_020_Info> Lista; using (Entities_reportes Context = new Entities_reportes()) { Lista = (from q in Context.VWFAC_020 where q.gi_IdEmpresa == IdEmpresa && q.gi_IdSucursal == IdSucursal && q.gi_IdBodega == IdBodega && q.gi_IdGuiaRemision == IdGuiaRemision select new FAC_020_Info { fa_IdEmpresa = q.fa_IdEmpresa, fa_IdSucursal = q.fa_IdSucursal, fa_IdBodega = q.fa_IdBodega, fa_IdCbteVta = q.fa_IdCbteVta, gi_IdEmpresa = q.gi_IdEmpresa, gi_IdSucursal = q.gi_IdSucursal, gi_IdBodega = q.gi_IdBodega, gi_IdGuiaRemision = q.gi_IdGuiaRemision, Secuencia = q.Secuencia, IdProducto = q.IdProducto, pr_codigo = q.pr_codigo, pr_descripcion = q.pr_descripcion, gi_cantidad = q.gi_cantidad, gi_detallexItems = q.gi_detallexItems, pe_nombreCompleto = q.pe_nombreCompleto, pe_cedulaRuc = q.pe_cedulaRuc, CodDocumentoTipo = q.CodDocumentoTipo, NumGuia_Preimpresa = q.NumGuia_Preimpresa, CodGuiaRemision = q.CodGuiaRemision, NUAutorizacion = q.NUAutorizacion, Fecha_Autorizacion = q.Fecha_Autorizacion, IdCliente = q.IdCliente, IdTransportista = q.IdTransportista, gi_fecha = q.gi_fecha, gi_FechaFinTraslado = q.gi_FechaFinTraslado, gi_FechaInicioTraslado = q.gi_FechaInicioTraslado, gi_Observacion = q.gi_Observacion, placa = q.placa, Direccion_Origen = q.Direccion_Origen, Direccion_Destino = q.Direccion_Destino, Estado = q.Estado, tr_Descripcion = q.tr_Descripcion, NumComprobanteVenta = q.NumComprobanteVenta, CedulaTransportista = q.CedulaTransportista, NombreTransportista = q.NombreTransportista, vt_fecha = q.vt_fecha, vt_autorizacion = q.vt_autorizacion, Su_Direccion = q.Su_Direccion, Su_Descripcion = q.Su_Descripcion }).ToList(); } if (Lista.Count > 0) { var Detalle = Lista[0]; if (!string.IsNullOrEmpty(Detalle.NumGuia_Preimpresa) && string.IsNullOrEmpty(Detalle.NUAutorizacion)) { tb_empresa_Data odataEmpresa = new tb_empresa_Data(); tb_sis_Documento_Tipo_Talonario_Data odataTalonario = new tb_sis_Documento_Tipo_Talonario_Data(); string[] Array = Detalle.NumGuia_Preimpresa.Split('-'); if (Array.Count() == 3) { string ClaveAcceso = odataTalonario.GeneraClaveAcceso(Detalle.gi_fecha, "06", odataEmpresa.get_info(IdEmpresa).em_ruc, Array[0] + Array[1], Array[2]); Lista.ForEach(q => q.NUAutorizacion = ClaveAcceso); } } } return(Lista); } catch (Exception) { throw; } }
public bool guardarDB(fa_guia_remision_Info info) { fa_TerminoPago_Info termino_pago = new fa_TerminoPago_Info(); fa_PuntoVta_Info punto_venta = new fa_PuntoVta_Info(); termino_pago = data_tpago.get_info(info.vt_tipo_venta); punto_venta = data_puntovta.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta_Fact); try { int secuencia = 1; using (Entities_facturacion Context = new Entities_facturacion()) { fa_guia_remision Entity = new fa_guia_remision { IdEmpresa = info.IdEmpresa, IdSucursal = info.IdSucursal, IdPuntoVta = info.IdPuntoVta, IdBodega = info.IdBodega, IdGuiaRemision = info.IdGuiaRemision = get_id(info.IdEmpresa), CodGuiaRemision = info.CodGuiaRemision, CodDocumentoTipo = info.CodDocumentoTipo, Serie1 = info.Serie1, Serie2 = info.Serie2, NumGuia_Preimpresa = info.NumGuia_Preimpresa, NUAutorizacion = info.NUAutorizacion, Fecha_Autorizacion = info.Fecha_Autorizacion, IdCliente = info.IdCliente, IdTransportista = info.IdTransportista, gi_fecha = info.gi_fecha.Date, gi_plazo = info.gi_plazo, gi_fech_venc = info.gi_fech_venc, gi_Observacion = info.gi_Observacion, gi_FechaInicioTraslado = info.gi_FechaInicioTraslado.Date, gi_FechaFinTraslado = info.gi_FechaFinTraslado.Date, placa = info.placa, Direccion_Destino = info.Direccion_Destino, Direccion_Origen = info.Direccion_Origen, IdMotivoTraslado = info.IdMotivoTraslado, Estado = info.Estado = true, IdUsuarioCreacion = info.IdUsuarioCreacion, FechaCreacion = info.FechaCreacion = DateTime.Now, IdCbteVta = info.IdCbteVta, IdContacto = (info.IdContacto == 0 ? null : info.IdContacto) }; foreach (var item in info.lst_detalle) { Context.fa_guia_remision_det.Add(new fa_guia_remision_det { IdEmpresa = info.IdEmpresa, IdSucursal = info.IdSucursal, IdBodega = info.IdBodega, IdGuiaRemision = info.IdGuiaRemision, Secuencia = secuencia, IdProducto = item.IdProducto, gi_cantidad = item.gi_cantidad, gi_detallexItems = item.gi_detallexItems, gi_precio = item.gi_precio, gi_por_desc = item.gi_por_desc, gi_descuentoUni = item.gi_descuentoUni, gi_PrecioFinal = item.gi_PrecioFinal, gi_Subtotal = item.gi_Subtotal, IdCod_Impuesto = item.IdCod_Impuesto, gi_por_iva = item.gi_por_iva, gi_Iva = item.gi_Iva, gi_Total = item.gi_Total, IdCentroCosto = item.IdCentroCosto, IdEmpresa_pf = item.IdEmpresa_pf, IdSucursal_pf = item.IdSucursal_pf, IdProforma = item.IdProforma, Secuencia_pf = item.Secuencia_pf }); if (item.IdCbteVta != null && item.IdCbteVta != 0) { Context.fa_guia_remision_det_x_factura.Add(new fa_guia_remision_det_x_factura { IdEmpresa_fact = info.IdEmpresa, IdSucursal_fact = info.IdSucursal, IdBodega_fact = info.IdBodega, IdCbteVta_fact = Convert.ToDecimal(item.IdCbteVta), IdGuiaRemision_guia = info.IdGuiaRemision, Secuencia_fact = Convert.ToInt32(item.Secuencia_fact), Secuencia_guia = secuencia, IdBodega_guia = info.IdBodega, IdSucursal_guia = info.IdSucursal, IdEmpresa_guia = info.IdEmpresa }); } secuencia++; } foreach (var item in info.lst_detalle_x_factura) { if (item.IdCbteVta != null && item.IdCbteVta != 0) { Context.fa_factura_x_fa_guia_remision.Add(new fa_factura_x_fa_guia_remision { fa_IdEmpresa = info.IdEmpresa, fa_IdSucursal = info.IdSucursal, fa_IdBodega = info.IdBodega, fa_IdCbteVta = item.IdCbteVta, gi_IdEmpresa = info.IdEmpresa, gi_IdSucursal = info.IdSucursal, gi_IdBodega = info.IdBodega, gi_IdGuiaRemision = info.IdGuiaRemision }); } } #region Talonario fa_PuntoVta_Info info_puntovta = new fa_PuntoVta_Info(); tb_sis_Documento_Tipo_Talonario_Info info_talonario = new tb_sis_Documento_Tipo_Talonario_Info(); tb_sis_Documento_Tipo_Talonario_Info ultimo_talonario = new tb_sis_Documento_Tipo_Talonario_Info(); tb_sis_Documento_Tipo_Talonario_Data data_talonario = new tb_sis_Documento_Tipo_Talonario_Data(); info_puntovta = data_puntovta.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta); if (info_puntovta != null) { if (info_puntovta.EsElectronico == true) { ultimo_talonario = data_talonario.GetUltimoNoUsado(info.IdEmpresa, info_puntovta.codDocumentoTipo, info_puntovta.Su_CodigoEstablecimiento, info_puntovta.cod_PuntoVta, info_puntovta.EsElectronico, true); if (ultimo_talonario != null) { Entity.Serie1 = info.Serie1 = ultimo_talonario.Establecimiento; Entity.Serie2 = info.Serie2 = ultimo_talonario.PuntoEmision; Entity.NumGuia_Preimpresa = info.NumGuia_Preimpresa = ultimo_talonario.NumDocumento; Entity.NUAutorizacion = null; Entity.Fecha_Autorizacion = null; } } else { info_talonario.IdEmpresa = info.IdEmpresa; info_talonario.CodDocumentoTipo = info.CodDocumentoTipo; info_talonario.Establecimiento = info.Serie1; info_talonario.PuntoEmision = info.Serie2; info_talonario.NumDocumento = info.NumGuia_Preimpresa; info_talonario.IdSucursal = info.IdSucursal; info_talonario.Usado = true; Entity.NUAutorizacion = info_talonario.NumAutorizacion; Entity.Fecha_Autorizacion = DateTime.Now.Date; data_talonario.modificar_estado_usadoDB(info_talonario); } } #endregion #region Factura if (info.GenerarFactura == true && (info.IdCbteVta == null || info.IdCbteVta == 0)) { fa_factura_Info info_fact = new fa_factura_Info(); info_fact.lst_det = new List <fa_factura_det_Info>(); info_fact.lst_cuota = new List <fa_cuotas_x_doc_Info>(); List <fa_guia_remision_det_x_factura_Info> info_guia_x_factura = new List <fa_guia_remision_det_x_factura_Info>(); int secuencia_fact = 1; if (termino_pago != null && termino_pago.IdTerminoPago != "") { info.vt_fech_venc = info.gi_fecha.AddDays(termino_pago.Dias_Vct); } if (punto_venta != null && punto_venta.IdPuntoVta != 0) { info.IdCaja = punto_venta.IdCaja; } info_fact.IdEmpresa = info_fact.IdEmpresa = info.IdEmpresa; info_fact.IdSucursal = info_fact.IdSucursal = info.IdSucursal; info_fact.IdBodega = info_fact.IdBodega = info.IdBodega; info_fact.vt_tipoDoc = cl_enumeradores.eTipoDocumento.FACT.ToString(); info_fact.vt_serie1 = info.vt_serie1; info_fact.vt_serie2 = info.vt_serie2; info_fact.vt_NumFactura = info.vt_NumFactura; info_fact.Fecha_Autorizacion = DateTime.Now; info_fact.vt_autorizacion = null; info_fact.vt_fecha = info.gi_fecha.Date; info_fact.vt_fech_venc = info.vt_fech_venc; /*depende de la termino de pago*/ info_fact.IdCliente = info.IdCliente; info_fact.IdContacto = info.IdContacto; info_fact.IdVendedor = info.IdVendedor; info_fact.vt_plazo = termino_pago.Dias_Vct; /**depende de la termino de pago*/ info_fact.vt_Observacion = string.IsNullOrEmpty(info.ObservacionFactura) ? "" : info.ObservacionFactura; info_fact.IdCatalogo_FormaPago = info.IdCatalogo_FormaPago; info_fact.vt_tipo_venta = info.vt_tipo_venta; info_fact.IdCaja = info.IdCaja; /*depende del punto de venta*/ info_fact.IdPuntoVta = info.IdPuntoVta_Fact; info_fact.fecha_primera_cuota = null; info_fact.Fecha_Transaccion = DateTime.Now; info_fact.Estado = info.Estado == true ? "A" : "I"; info_fact.esta_impresa = null; info_fact.valor_abono = null; info_fact.IdUsuario = info.IdUsuarioCreacion; info_fact.IdNivel = 1; info_fact.CodCbteVta = info.CodGuiaRemision; var lst_detalle_factura = info.lst_detalle.Where(q => q.SeFactura == true); foreach (var item in info.lst_detalle) { fa_factura_det_Info info_fact_detalle = new fa_factura_det_Info { IdEmpresa = info_fact.IdEmpresa, IdSucursal = info_fact.IdSucursal, IdBodega = info_fact.IdBodega, Secuencia = secuencia_fact++, IdProducto = item.IdProducto, vt_cantidad = item.gi_cantidad, vt_Precio = item.gi_precio, vt_PorDescUnitario = item.gi_por_desc, vt_DescUnitario = item.gi_descuentoUni, vt_PrecioFinal = item.gi_PrecioFinal, vt_Subtotal = item.gi_Subtotal, vt_por_iva = item.gi_por_iva, IdCod_Impuesto_Iva = item.IdCod_Impuesto, vt_iva = item.gi_Iva, vt_total = item.gi_Total, vt_detallexItems = item.gi_detallexItems, IdEmpresa_pf = item.IdEmpresa_pf, IdSucursal_pf = item.IdSucursal_pf, IdProforma = item.IdProforma, Secuencia_pf = item.Secuencia_pf, IdCentroCosto = item.IdCentroCosto, IdPunto_Cargo = item.IdPunto_cargo, IdPunto_cargo_grupo = item.IdPunto_cargo_grupo, }; info_fact.lst_det.Add(info_fact_detalle); } var SubtotalConDscto = (decimal)Math.Round(info.lst_detalle.Sum(q => q.gi_Subtotal), 2, MidpointRounding.AwayFromZero); var SubtotalIVASinDscto = (decimal)Math.Round(info_fact.lst_det.Where(q => q.vt_por_iva != 0).Sum(q => q.vt_cantidad * q.vt_Precio), 2, MidpointRounding.AwayFromZero); var SubtotalSinIVASinDscto = (decimal)Math.Round(info_fact.lst_det.Where(q => q.vt_por_iva == 0).Sum(q => q.vt_cantidad * q.vt_Precio), 2, MidpointRounding.AwayFromZero); var Descuento = (decimal)Math.Round(info_fact.lst_det.Sum(q => q.vt_DescUnitario * q.vt_cantidad), 2, MidpointRounding.AwayFromZero); var SubtotalIVAConDscto = (decimal)Math.Round(info_fact.lst_det.Where(q => q.vt_por_iva != 0).Sum(q => q.vt_Subtotal), 2, MidpointRounding.AwayFromZero); var SubtotalSinIVAConDscto = (decimal)Math.Round(info_fact.lst_det.Where(q => q.vt_por_iva == 0).Sum(q => q.vt_Subtotal), 2, MidpointRounding.AwayFromZero); var ValorIVA = (decimal)Math.Round(info_fact.lst_det.Sum(q => q.vt_iva), 2, MidpointRounding.AwayFromZero); var SubtotalSinDscto = SubtotalIVASinDscto + SubtotalSinIVASinDscto; var Total = SubtotalConDscto + ValorIVA; info_fact.info_resumen = new fa_factura_resumen_Info { IdEmpresa = info.IdEmpresa, IdSucursal = info.IdSucursal, IdBodega = info.IdBodega, // IdCbteVta = IdCbteVta, SubtotalConDscto = SubtotalConDscto, SubtotalIVAConDscto = SubtotalIVAConDscto, SubtotalIVASinDscto = SubtotalIVASinDscto, SubtotalSinDscto = SubtotalSinDscto, SubtotalSinIVAConDscto = SubtotalSinIVAConDscto, SubtotalSinIVASinDscto = SubtotalSinIVASinDscto, Total = Total, Descuento = Descuento, ValorEfectivo = 0, ValorIVA = ValorIVA, Cambio = Total, }; data_fact.guardarDB(info_fact); Entity.IdCbteVta = info_fact.IdCbteVta; #region Relacion Guia Context.fa_factura_x_fa_guia_remision.Add(new fa_factura_x_fa_guia_remision { fa_IdEmpresa = info.IdEmpresa, fa_IdSucursal = info.IdSucursal, fa_IdBodega = info.IdBodega, fa_IdCbteVta = info_fact.IdCbteVta, gi_IdEmpresa = info.IdEmpresa, gi_IdSucursal = info.IdSucursal, gi_IdBodega = info.IdBodega, gi_IdGuiaRemision = info.IdGuiaRemision }); secuencia = 1; foreach (var item in info.lst_detalle) { Context.fa_guia_remision_det_x_factura.Add(new fa_guia_remision_det_x_factura { IdEmpresa_fact = info.IdEmpresa, IdSucursal_fact = info.IdSucursal, IdBodega_fact = info.IdBodega, IdCbteVta_fact = info_fact.IdCbteVta, Secuencia_fact = secuencia, IdEmpresa_guia = info.IdEmpresa, IdSucursal_guia = info.IdSucursal, IdBodega_guia = info.IdBodega, IdGuiaRemision_guia = info.IdGuiaRemision, Secuencia_guia = secuencia++, }); } #endregion } #endregion Context.fa_guia_remision.Add(Entity); Context.SaveChanges(); } return(true); } catch (Exception ex) { tb_LogError_Data LogData = new tb_LogError_Data(); LogData.GuardarDB(new tb_LogError_Info { Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.InnerException.Message, Clase = "fa_guia_remision_Data", Metodo = "guardarDB", IdUsuario = info.IdUsuarioCreacion }); return(false); } }
public List <FAC_002_Info> get_list(int IdEmpresa, int IdSucursal, int IdBodega, decimal IdNota) { try { List <FAC_002_Info> Lista = new List <FAC_002_Info>(); using (Entities_reportes Context = new Entities_reportes()) { Lista = (from q in Context.VWFAC_002 where q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.IdBodega == IdBodega && q.IdNota == IdNota select new FAC_002_Info { Fecha_Autorizacion = q.Fecha_Autorizacion, IdBodega = q.IdBodega, IdEmpresa = q.IdEmpresa, IdProducto = q.IdProducto, IdSucursal = q.IdSucursal, pr_descripcion = q.pr_descripcion, Secuencia = q.Secuencia, Celular = q.Celular, CodDocumentoTipo = q.CodDocumentoTipo, Correo = q.Correo, CreDeb = q.CreDeb, DetalleAdicional = q.DetalleAdicional, Direccion = q.Direccion, DocumentoAplicado = q.DocumentoAplicado, FechaDocumentoAplica = q.FechaDocumentoAplica, IdNota = q.IdNota, no_fecha = q.no_fecha, NumAutorizacion = q.NumAutorizacion, NumNota_Impresa = q.NumNota_Impresa, pe_cedulaRuc = q.pe_cedulaRuc, pe_nombreCompleto = q.pe_nombreCompleto, pr_codigo = q.pr_codigo, sc_iva = q.sc_iva, sc_observacion = q.sc_observacion, sc_precioFinal = q.sc_precioFinal, sc_subtotal = q.sc_subtotal, sc_total = q.sc_total, Serie1 = q.Serie1, Serie2 = q.Serie2, SubtotalAntesDescuento = q.SubtotalAntesDescuento, SubtotalIva = q.SubtotalIva, SubtotalSinIva = q.SubtotalSinIva, Telefono = q.Telefono, TotalDescuento = q.TotalDescuento, sc_cantidad = q.sc_cantidad }).ToList(); } if (Lista.Count > 0) { var Detalle = Lista[0]; if (!string.IsNullOrEmpty(Detalle.NumNota_Impresa) && string.IsNullOrEmpty(Detalle.NumAutorizacion)) { tb_empresa_Data odataEmpresa = new tb_empresa_Data(); tb_sis_Documento_Tipo_Talonario_Data odataTalonario = new tb_sis_Documento_Tipo_Talonario_Data(); string[] Array = Detalle.NumNota_Impresa.Split('-'); string ClaveAcceso = odataTalonario.GeneraClaveAcceso(Detalle.no_fecha, Detalle.CreDeb == "C" ? "04" : "05", odataEmpresa.get_info(IdEmpresa).em_ruc, Detalle.Serie1 + Detalle.Serie2, Array[2]); Lista.ForEach(q => q.NumAutorizacion = ClaveAcceso); } } return(Lista); } catch (Exception) { throw; } }
public List <CXP_020_Info> GetList(int IdEmpresa, int IdTipoCbte, decimal IdCbteCble) { try { List <CXP_020_Info> Lista = new List <CXP_020_Info>(); using (Entities_reportes db = new Entities_reportes()) { var lst = db.VWCXP_020.Where(q => q.IdEmpresa == IdEmpresa && q.IdTipoCbte_Ogiro == IdTipoCbte && q.IdCbteCble_Ogiro == IdCbteCble).ToList(); foreach (var item in lst) { Lista.Add(new CXP_020_Info { IdEmpresa = item.IdEmpresa, IdTipoCbte_Ogiro = item.IdTipoCbte_Ogiro, IdCbteCble_Ogiro = item.IdCbteCble_Ogiro, NomDocumento = item.NomDocumento, co_serie = item.co_serie, co_factura = item.co_factura, Num_Autorizacion = item.Num_Autorizacion, fecha_autorizacion = item.fecha_autorizacion, Su_Descripcion = item.Su_Descripcion, Su_Direccion = item.Su_Direccion, pe_nombreCompleto = item.pe_nombreCompleto, pe_cedulaRuc = item.pe_cedulaRuc, co_FechaFactura = item.co_FechaFactura, co_observacion = item.co_observacion, IdFormaPago = item.IdFormaPago, nom_FormaPago = item.nom_FormaPago, co_subtotal_iva = item.co_subtotal_iva, co_subtotal_siniva = item.co_subtotal_siniva, co_subtotal = item.co_subtotal, co_total = item.co_total, co_valoriva = item.co_valoriva, pr_descripcion = item.pr_descripcion, pr_codigo = item.pr_codigo, Subtotal = item.Subtotal, Descuento = item.Descuento, TotalDetalle = item.TotalDetalle, ValorIva = item.ValorIva, pr_direccion = item.pr_direccion, pr_correo = item.pr_correo, Cantidad = item.Cantidad, CostoUni = item.CostoUni }); } } if (Lista.Count > 0) { var Detalle = Lista[0]; if (!string.IsNullOrEmpty(Detalle.co_factura) && (string.IsNullOrEmpty(Detalle.Num_Autorizacion) || Detalle.Num_Autorizacion == "1234567890")) { tb_empresa_Data odataEmpresa = new tb_empresa_Data(); tb_sis_Documento_Tipo_Talonario_Data odataTalonario = new tb_sis_Documento_Tipo_Talonario_Data(); string[] Array = Detalle.co_serie.Split('-'); if (Array.Count() == 3) { string ClaveAcceso = odataTalonario.GeneraClaveAcceso(Detalle.co_FechaFactura, "06", odataEmpresa.get_info(IdEmpresa).em_ruc, Array[0] + Array[1], Detalle.co_factura); Lista.ForEach(q => q.Num_Autorizacion = ClaveAcceso); } } } return(Lista); } catch (Exception) { throw; } }
public bool guardarDB(fa_notaCreDeb_Info info) { try { #region Variables int Secuencia = 1; ct_cbtecble_Data odata_ct = new ct_cbtecble_Data(); cxc_cobro_Data odata_cobr = new cxc_cobro_Data(); #endregion using (Entities_facturacion db_f = new Entities_facturacion()) { #region Nota de debito credito #region Cabecera fa_notaCreDeb Entity = new fa_notaCreDeb //db_f.fa_notaCreDeb.Add(new fa_notaCreDeb { IdEmpresa = info.IdEmpresa, IdSucursal = info.IdSucursal, IdBodega = info.IdBodega, IdNota = info.IdNota = get_id(info.IdEmpresa, info.IdSucursal, info.IdBodega), IdPuntoVta = info.IdPuntoVta, CodNota = info.CodNota, CreDeb = info.CreDeb.Trim(), CodDocumentoTipo = info.CodDocumentoTipo, Serie1 = info.Serie1, Serie2 = info.Serie2, NumNota_Impresa = info.NumNota_Impresa, NumAutorizacion = info.NumAutorizacion, Fecha_Autorizacion = info.Fecha_Autorizacion, IdCliente = info.IdCliente, no_fecha = info.no_fecha.Date, no_fecha_venc = info.no_fecha_venc.Date, IdTipoNota = info.IdTipoNota, sc_observacion = info.sc_observacion, Estado = info.Estado = "A", NaturalezaNota = info.NaturalezaNota, IdCtaCble_TipoNota = info.IdCtaCble_TipoNota, IdUsuario = info.IdUsuario }; #endregion #region Detalle foreach (var item in info.lst_det) { db_f.fa_notaCreDeb_det.Add(new fa_notaCreDeb_det { IdEmpresa = info.IdEmpresa, IdSucursal = info.IdSucursal, IdBodega = info.IdBodega, IdNota = info.IdNota, Secuencia = Secuencia++, IdProducto = item.IdProducto, sc_cantidad = item.sc_cantidad, sc_cantidad_factura = item.sc_cantidad_factura, sc_Precio = item.sc_Precio, sc_descUni = item.sc_descUni, sc_PordescUni = item.sc_PordescUni, sc_precioFinal = item.sc_precioFinal, vt_por_iva = item.vt_por_iva, sc_iva = item.sc_iva, IdCod_Impuesto_Iva = item.IdCod_Impuesto_Iva, sc_subtotal = item.sc_subtotal, sc_total = item.sc_total, IdCentroCosto = item.IdCentroCosto, IdPunto_Cargo = item.IdPunto_Cargo, IdPunto_cargo_grupo = item.IdPunto_cargo_grupo }); } #endregion #region Cruce Secuencia = 1; foreach (var item in info.lst_cruce) { db_f.fa_notaCreDeb_x_fa_factura_NotaDeb.Add(new fa_notaCreDeb_x_fa_factura_NotaDeb { IdEmpresa_nt = info.IdEmpresa, IdSucursal_nt = info.IdSucursal, IdBodega_nt = info.IdBodega, IdNota_nt = info.IdNota, secuencia = Secuencia++, IdEmpresa_fac_nd_doc_mod = item.IdEmpresa_fac_nd_doc_mod, IdSucursal_fac_nd_doc_mod = item.IdSucursal_fac_nd_doc_mod, IdBodega_fac_nd_doc_mod = item.IdBodega_fac_nd_doc_mod, IdCbteVta_fac_nd_doc_mod = item.IdCbteVta_fac_nd_doc_mod, vt_tipoDoc = item.vt_tipoDoc, Valor_Aplicado = item.Valor_Aplicado, fecha_cruce = DateTime.Now, }); } #endregion #region Talonario fa_PuntoVta_Data data_puntovta = new fa_PuntoVta_Data(); tb_sis_Documento_Tipo_Talonario_Data data_talonario = new tb_sis_Documento_Tipo_Talonario_Data(); fa_PuntoVta_Info info_puntovta = new fa_PuntoVta_Info(); tb_sis_Documento_Tipo_Talonario_Info ultimo_talonario = new tb_sis_Documento_Tipo_Talonario_Info(); tb_sis_Documento_Tipo_Talonario_Info info_talonario = new tb_sis_Documento_Tipo_Talonario_Info(); info_puntovta = data_puntovta.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta); if (info_puntovta != null && info.NaturalezaNota == "SRI") { if (info_puntovta.EsElectronico == true) { ultimo_talonario = data_talonario.GetUltimoNoUsado(info.IdEmpresa, info_puntovta.codDocumentoTipo, info_puntovta.Su_CodigoEstablecimiento, info_puntovta.cod_PuntoVta, info_puntovta.EsElectronico, true); if (ultimo_talonario != null) { Entity.Serie1 = info.Serie1 = ultimo_talonario.Establecimiento; Entity.Serie2 = info.Serie2 = ultimo_talonario.PuntoEmision; Entity.NumNota_Impresa = info.NumNota_Impresa = ultimo_talonario.NumDocumento; } } else { info_talonario.IdEmpresa = info.IdEmpresa; info_talonario.CodDocumentoTipo = info.CodDocumentoTipo; info_talonario.Establecimiento = info.Serie1; info_talonario.PuntoEmision = info.Serie2; info_talonario.NumDocumento = info.NumNota_Impresa; info_talonario.IdSucursal = info.IdSucursal; info_talonario.Usado = true; data_talonario.modificar_estado_usadoDB(info_talonario); } } else { Entity.Serie1 = null; Entity.Serie2 = null; Entity.NumNota_Impresa = null; } #endregion db_f.fa_notaCreDeb.Add(Entity); db_f.SaveChanges(); #endregion #region Parametros var parametros = db_f.fa_parametro.Where(q => q.IdEmpresa == info.IdEmpresa).FirstOrDefault(); var cliente = db_f.fa_cliente.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdCliente == info.IdCliente).FirstOrDefault(); #endregion #region Contabilidad if (parametros != null) { ct_cbtecble_Info diario = armar_diario(info, info.CreDeb.Trim() == "C" ? (int)parametros.IdTipoCbteCble_NC : (int)parametros.IdTipoCbteCble_ND, cliente.IdCtaCble_cxc_Credito, info.IdCtaCble_TipoNota); if (diario != null) { if (odata_ct.guardarDB(diario)) { db_f.fa_notaCreDeb_x_ct_cbtecble.Add(new fa_notaCreDeb_x_ct_cbtecble { no_IdEmpresa = info.IdEmpresa, no_IdSucursal = info.IdSucursal, no_IdBodega = info.IdBodega, no_IdNota = info.IdNota, ct_IdEmpresa = diario.IdEmpresa, ct_IdTipoCbte = diario.IdTipoCbte, ct_IdCbteCble = diario.IdCbteCble, observacion = info.CodDocumentoTipo + (info.NaturalezaNota == "SRI" ? ("-" + info.Serie1 + "-" + info.Serie2 + "-" + info.NumNota_Impresa) : info.IdNota.ToString("000000000")) }); db_f.SaveChanges(); } } } #endregion #region Cobranza if (info.CreDeb.Trim() == "C" && info.lst_cruce.Count != 0) { cxc_cobro_Info cobro = armar_cobro(info); if (cobro != null) { if (odata_cobr.guardarDB(cobro)) { db_f.fa_notaCreDeb_x_cxc_cobro.Add(new fa_notaCreDeb_x_cxc_cobro { IdEmpresa_nt = info.IdEmpresa, IdSucursal_nt = info.IdSucursal, IdBodega_nt = info.IdBodega, IdNota_nt = info.IdNota, IdEmpresa_cbr = cobro.IdEmpresa, IdSucursal_cbr = cobro.IdSucursal, IdCobro_cbr = cobro.IdCobro, Valor_cobro = Math.Round(info.lst_cruce.Sum(q => q.Valor_Aplicado), 2, MidpointRounding.AwayFromZero) }); db_f.SaveChanges(); } } } #endregion } return(true); } catch (Exception ex) { tb_LogError_Data LogData = new tb_LogError_Data(); LogData.GuardarDB(new tb_LogError_Info { Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "fa_notaCreDeb_Data", Metodo = "guardarDB", IdUsuario = info.IdUsuario }); return(false); } }
public List <FAC_007_Info> get_list(int IdEmpresa, int IdSucursal, int IdBodega, decimal IdCbteVta) { try { List <FAC_007_Info> Lista; using (Entities_reportes Context = new Entities_reportes()) { Lista = (from q in Context.VWFAC_007 where q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.IdBodega == IdBodega && q.IdCbteVta == IdCbteVta select new FAC_007_Info { cli_cedulaRuc = q.cli_cedulaRuc, cli_correo = q.cli_correo, cli_direccion = q.cli_direccion, cli_Nombre = q.cli_Nombre, cli_Telefonos = q.cli_Telefonos, DescuentoTotal = q.DescuentoTotal, Fecha_Autorizacion = q.Fecha_Autorizacion, FormaPago = q.FormaPago, FormaDePago = q.FormaDePago, nom_FormaPago = q.nom_FormaPago, IdBodega = q.IdBodega, IdCatalogo_FormaPago = q.IdCatalogo_FormaPago, IdCbteVta = q.IdCbteVta, IdEmpresa = q.IdEmpresa, IdProducto = q.IdProducto, IdSucursal = q.IdSucursal, pr_descripcion = q.pr_descripcion, Secuencia = q.Secuencia, SubtotalConDscto = q.SubtotalConDscto, SubtotalIVA = q.SubtotalIVA, SubtotalSinDscto = q.SubtotalSinDscto, SubtotalSinIVA = q.SubtotalSinIVA, Su_Descripcion = q.Su_Descripcion, Su_Direccion = q.Su_Direccion, Su_Telefonos = q.Su_Telefonos, vt_autorizacion = q.vt_autorizacion, Cambio = q.Cambio, vt_cantidad = q.vt_cantidad, vt_fecha = q.vt_fecha, vt_iva = q.vt_iva, vt_NumFactura = q.vt_NumFactura, vt_por_iva = q.vt_por_iva, vt_Precio = q.vt_Precio, Total = q.Total, ValorEfectivo = q.ValorEfectivo, vt_Observacion = q.vt_Observacion, Descuento = q.Descuento, SubtotalIVAConDscto = q.SubtotalIVAConDscto, SubtotalIVASinDscto = q.SubtotalIVASinDscto, SubtotalSinIVAConDscto = q.SubtotalSinIVAConDscto, SubtotalSinIVASinDscto = q.SubtotalSinIVASinDscto, T_SubtotalConDscto = q.T_SubtotalConDscto, T_SubtotalSinDscto = q.T_SubtotalSinDscto, ValorIVA = q.ValorIVA, vt_total = q.vt_total, vt_detallexItems = q.vt_detallexItems, vt_plazo = q.vt_plazo }).ToList(); } if (Lista.Count > 0) { var Detalle = Lista[0]; if (string.IsNullOrEmpty(Detalle.vt_autorizacion)) { tb_empresa_Data odataEmpresa = new tb_empresa_Data(); tb_sis_Documento_Tipo_Talonario_Data odataTalonario = new tb_sis_Documento_Tipo_Talonario_Data(); string[] Array = Detalle.vt_NumFactura.Split('-'); if (Array.Count() == 3) { string ClaveAcceso = odataTalonario.GeneraClaveAcceso(Detalle.vt_fecha, "01", odataEmpresa.get_info(IdEmpresa).em_ruc, Array[0] + Array[1], Array[2]); Lista.ForEach(q => q.vt_autorizacion = ClaveAcceso); } } } return(Lista); } catch (Exception) { throw; } }
public bool guardarDB(fa_guia_remision_Info info) { fa_PuntoVta_Info punto_venta = new fa_PuntoVta_Info(); punto_venta = data_puntovta.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta); try { int secuencia = 1; using (Entities_facturacion Context = new Entities_facturacion()) { fa_guia_remision Entity = new fa_guia_remision { IdEmpresa = info.IdEmpresa, IdSucursal = info.IdSucursal, IdPuntoVta = info.IdPuntoVta, IdBodega = info.IdBodega, IdGuiaRemision = info.IdGuiaRemision = get_id(info.IdEmpresa), CodGuiaRemision = info.CodGuiaRemision, CodDocumentoTipo = info.CodDocumentoTipo, Serie1 = info.Serie1, Serie2 = info.Serie2, NumGuia_Preimpresa = info.NumGuia_Preimpresa, NUAutorizacion = info.NUAutorizacion, Fecha_Autorizacion = info.Fecha_Autorizacion, IdCliente = info.IdCliente, IdTransportista = info.IdTransportista, gi_fecha = info.gi_fecha.Date, gi_plazo = info.gi_plazo, gi_fech_venc = info.gi_fech_venc, gi_Observacion = info.gi_Observacion, gi_FechaInicioTraslado = info.gi_FechaInicioTraslado.Date, gi_FechaFinTraslado = info.gi_FechaFinTraslado.Date, placa = info.placa, Direccion_Destino = info.Direccion_Destino, Direccion_Origen = info.Direccion_Origen, IdMotivoTraslado = info.IdMotivoTraslado, Estado = info.Estado = true, IdUsuarioCreacion = info.IdUsuarioCreacion, FechaCreacion = info.FechaCreacion = DateTime.Now }; foreach (var item in info.lst_detalle) { Context.fa_guia_remision_det.Add(new fa_guia_remision_det { IdEmpresa = info.IdEmpresa, IdSucursal = info.IdSucursal, IdBodega = info.IdBodega, IdGuiaRemision = info.IdGuiaRemision, Secuencia = secuencia, IdProducto = item.IdProducto, gi_cantidad = item.gi_cantidad, gi_detallexItems = item.gi_detallexItems, gi_precio = item.gi_precio, gi_por_desc = item.gi_por_desc, gi_descuentoUni = item.gi_descuentoUni, gi_PrecioFinal = item.gi_PrecioFinal, gi_Subtotal = item.gi_Subtotal, IdCod_Impuesto = item.IdCod_Impuesto, gi_por_iva = item.gi_por_iva, gi_Iva = item.gi_Iva, gi_Total = item.gi_Total }); if (item.IdCbteVta != null && item.IdCbteVta != 0) { Context.fa_guia_remision_det_x_factura.Add(new fa_guia_remision_det_x_factura { IdEmpresa_fact = info.IdEmpresa, IdSucursal_fact = info.IdSucursal, IdBodega_fact = info.IdBodega, IdCbteVta_fact = Convert.ToDecimal(item.IdCbteVta), IdGuiaRemision_guia = info.IdGuiaRemision, Secuencia_fact = Convert.ToInt32(item.Secuencia_fact), Secuencia_guia = secuencia, IdBodega_guia = info.IdBodega, IdSucursal_guia = info.IdSucursal, IdEmpresa_guia = info.IdEmpresa }); } secuencia++; } foreach (var item in info.lst_detalle_x_factura) { if (item.IdCbteVta != 0) { Context.fa_factura_x_fa_guia_remision.Add(new fa_factura_x_fa_guia_remision { fa_IdEmpresa = info.IdEmpresa, fa_IdSucursal = info.IdSucursal, fa_IdBodega = info.IdBodega, fa_IdCbteVta = item.IdCbteVta, gi_IdEmpresa = info.IdEmpresa, gi_IdSucursal = info.IdSucursal, gi_IdBodega = info.IdBodega, gi_IdGuiaRemision = info.IdGuiaRemision }); } } #region Talonario fa_PuntoVta_Info info_puntovta = new fa_PuntoVta_Info(); tb_sis_Documento_Tipo_Talonario_Info info_talonario = new tb_sis_Documento_Tipo_Talonario_Info(); tb_sis_Documento_Tipo_Talonario_Info ultimo_talonario = new tb_sis_Documento_Tipo_Talonario_Info(); tb_sis_Documento_Tipo_Talonario_Data data_talonario = new tb_sis_Documento_Tipo_Talonario_Data(); info_puntovta = data_puntovta.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta); if (info_puntovta != null) { if (info_puntovta.EsElectronico == true) { ultimo_talonario = data_talonario.GetUltimoNoUsado(info.IdEmpresa, info_puntovta.codDocumentoTipo, info_puntovta.Su_CodigoEstablecimiento, info_puntovta.cod_PuntoVta, info_puntovta.EsElectronico, true); if (ultimo_talonario != null) { Entity.Serie1 = info.Serie1 = ultimo_talonario.Establecimiento; Entity.Serie2 = info.Serie2 = ultimo_talonario.PuntoEmision; Entity.NumGuia_Preimpresa = info.NumGuia_Preimpresa = ultimo_talonario.NumDocumento; } } else { info_talonario.IdEmpresa = info.IdEmpresa; info_talonario.CodDocumentoTipo = info.CodDocumentoTipo; info_talonario.Establecimiento = info.Serie1; info_talonario.PuntoEmision = info.Serie2; info_talonario.NumDocumento = info.NumGuia_Preimpresa; info_talonario.IdSucursal = info.IdSucursal; info_talonario.Usado = true; data_talonario.modificar_estado_usadoDB(info_talonario); } } #endregion Context.fa_guia_remision.Add(Entity); Context.SaveChanges(); } return(true); } catch (Exception ex) { tb_LogError_Data LogData = new tb_LogError_Data(); LogData.GuardarDB(new tb_LogError_Info { Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "fa_guia_remision_Data", Metodo = "guardarDB", IdUsuario = info.IdUsuarioCreacion }); return(false); } }